{"version":3,"file":"js/727-7faa3f65a3a94f960205.js","mappings":"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","sources":["webpack://app/./node_modules/swiper/shared/utils.mjs","webpack://app/./node_modules/swiper/modules/keyboard.mjs","webpack://app/./node_modules/swiper/shared/classes-to-selector.mjs","webpack://app/./node_modules/swiper/modules/pagination.mjs","webpack://app/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://app/./node_modules/swiper/modules/manipulation.mjs","webpack://app/./node_modules/swiper/shared/swiper-core.mjs","webpack://app/./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js","webpack://app/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://app/./node_modules/@rails/ujs/app/assets/javascripts/rails-ujs.esm.js"],"sourcesContent":["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 { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const realIndex = swiper.realIndex;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n const loopFix = dir => {\n const indexBeforeLoopFix = swiper.activeIndex;\n swiper.loopFix({\n direction: dir,\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n const indexAfterFix = swiper.activeIndex;\n if (indexBeforeLoopFix === indexAfterFix) {\n swiper.slideToLoop(realIndex, 0, false, true);\n }\n };\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n loopFix(newSlideIndex > currentSlideIndex ? 'next' : 'prev');\n } else if (swiper.params.centeredSlides) {\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (newSlideIndex < Math.floor(slidesPerView / 2)) {\n loopFix('prev');\n }\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","import { 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 if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\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 (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n 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 if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (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 } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (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 const allowLoopFix = swiper.swipeDirection === 'next' && swiper.allowSlideNext || swiper.swipeDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\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 && allowLoopFix && 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 && allowLoopFix && !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 && allowLoopFix && !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, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.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 const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n 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 (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n 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 (typeof params.slidesPerView === 'number') return params.slidesPerView;\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","var sparkMd5 = {\n exports: {}\n};\n\n(function(module, exports) {\n (function(factory) {\n {\n module.exports = factory();\n }\n })((function(undefined$1) {\n var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n function md5cycle(x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\", j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function() {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function(from, to) {\n var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n if (to !== undefined$1) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [], length = hex.length, x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function(str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function(contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length, i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function() {\n this._buff = \"\";\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.prototype.getState = function() {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n SparkMD5.prototype.setState = function(state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function() {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function(tail, length) {\n var i = length, tmp, lo, hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function(str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function(content, raw) {\n var hash = md51(content), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function() {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function() {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function() {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n }));\n})(sparkMd5);\n\nvar SparkMD5 = sparkMd5.exports;\n\nconst fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\nclass FileChecksum {\n static create(file, callback) {\n const instance = new FileChecksum(file);\n instance.create(callback);\n }\n constructor(file) {\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n create(callback) {\n this.callback = callback;\n this.md5Buffer = new SparkMD5.ArrayBuffer;\n this.fileReader = new FileReader;\n this.fileReader.addEventListener(\"load\", (event => this.fileReaderDidLoad(event)));\n this.fileReader.addEventListener(\"error\", (event => this.fileReaderDidError(event)));\n this.readNextChunk();\n }\n fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n const binaryDigest = this.md5Buffer.end(true);\n const base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n fileReaderDidError(event) {\n this.callback(`Error reading ${this.file.name}`);\n }\n readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n const start = this.chunkIndex * this.chunkSize;\n const end = Math.min(start + this.chunkSize, this.file.size);\n const bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n}\n\nfunction getMetaValue(name) {\n const element = findElement(document.head, `meta[name=\"${name}\"]`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nfunction findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n const elements = root.querySelectorAll(selector);\n return toArray(elements);\n}\n\nfunction findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n}\n\nfunction dispatchEvent(element, type, eventInit = {}) {\n const {disabled: disabled} = element;\n const {bubbles: bubbles, cancelable: cancelable, detail: detail} = eventInit;\n const event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n}\n\nfunction toArray(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n}\n\nclass BlobRecord {\n constructor(file, checksum, url, customHeaders = {}) {\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest;\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n Object.keys(customHeaders).forEach((headerKey => {\n this.xhr.setRequestHeader(headerKey, customHeaders[headerKey]);\n }));\n const csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n }\n get status() {\n return this.xhr.status;\n }\n get response() {\n const {responseType: responseType, response: response} = this.xhr;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n const {response: response} = this;\n const {direct_upload: direct_upload} = response;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n }\n toJSON() {\n const result = {};\n for (const key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n}\n\nclass BlobUpload {\n constructor(blob) {\n this.blob = blob;\n this.file = blob.file;\n const {url: url, headers: headers} = blob.directUploadData;\n this.xhr = new XMLHttpRequest;\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (const key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n requestDidLoad(event) {\n const {status: status, response: response} = this.xhr;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n }\n}\n\nlet id = 0;\n\nclass DirectUpload {\n constructor(file, url, delegate, customHeaders = {}) {\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n this.customHeaders = customHeaders;\n }\n create(callback) {\n FileChecksum.create(this.file, ((error, checksum) => {\n if (error) {\n callback(error);\n return;\n }\n const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders);\n notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create((error => {\n if (error) {\n callback(error);\n } else {\n const upload = new BlobUpload(blob);\n notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create((error => {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n }));\n }\n }));\n }));\n }\n}\n\nfunction notify(object, methodName, ...messages) {\n if (object && typeof object[methodName] == \"function\") {\n return object[methodName](...messages);\n }\n}\n\nclass DirectUploadController {\n constructor(input, file) {\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n start(callback) {\n const hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(((error, attributes) => {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n this.dispatch(\"end\");\n callback(error);\n }));\n }\n uploadRequestDidProgress(event) {\n const progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n get url() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n dispatch(name, detail = {}) {\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, `direct-upload:${name}`, {\n detail: detail\n });\n }\n dispatchError(error) {\n const event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n directUploadWillStoreFileWithXHR(xhr) {\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", (event => this.uploadRequestDidProgress(event)));\n }\n}\n\nconst inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\nclass DirectUploadsController {\n constructor(form) {\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter((input => input.files.length));\n }\n start(callback) {\n const controllers = this.createDirectUploadControllers();\n const startNextController = () => {\n const controller = controllers.shift();\n if (controller) {\n controller.start((error => {\n if (error) {\n callback(error);\n this.dispatch(\"end\");\n } else {\n startNextController();\n }\n }));\n } else {\n callback();\n this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n createDirectUploadControllers() {\n const controllers = [];\n this.inputs.forEach((input => {\n toArray(input.files).forEach((file => {\n const controller = new DirectUploadController(input, file);\n controllers.push(controller);\n }));\n }));\n return controllers;\n }\n dispatch(name, detail = {}) {\n return dispatchEvent(this.form, `direct-uploads:${name}`, {\n detail: detail\n });\n }\n}\n\nconst processingAttribute = \"data-direct-uploads-processing\";\n\nconst submitButtonsByForm = new WeakMap;\n\nlet started = false;\n\nfunction start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm, true);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n}\n\nfunction didClick(event) {\n const button = event.target.closest(\"button, input\");\n if (button && button.type === \"submit\" && button.form) {\n submitButtonsByForm.set(button.form, button);\n }\n}\n\nfunction didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n}\n\nfunction didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n}\n\nfunction handleFormSubmissionEvent(event) {\n const form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n const controller = new DirectUploadsController(form);\n const {inputs: inputs} = controller;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start((error => {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n }));\n }\n}\n\nfunction submitForm(form) {\n let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n const {disabled: disabled} = button;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n}\n\nfunction disable(input) {\n input.disabled = true;\n}\n\nfunction enable(input) {\n input.disabled = false;\n}\n\nfunction autostart() {\n if (window.ActiveStorage) {\n start();\n }\n}\n\nsetTimeout(autostart, 1);\n\nexport { DirectUpload, DirectUploadController, DirectUploadsController, dispatchEvent, start };\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","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/javascript\nReleased under the MIT license\n */\nconst linkClickSelector = \"a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]\";\n\nconst buttonClickSelector = {\n selector: \"button[data-remote]:not([form]), button[data-confirm]:not([form])\",\n exclude: \"form button\"\n};\n\nconst inputChangeSelector = \"select[data-remote], input[data-remote], textarea[data-remote]\";\n\nconst formSubmitSelector = \"form:not([data-turbo=true])\";\n\nconst formInputClickSelector = \"form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])\";\n\nconst formDisableSelector = \"input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled\";\n\nconst formEnableSelector = \"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled\";\n\nconst fileInputSelector = \"input[name][type=file]:not([disabled])\";\n\nconst linkDisableSelector = \"a[data-disable-with], a[data-disable]\";\n\nconst buttonDisableSelector = \"button[data-remote][data-disable-with], button[data-remote][data-disable]\";\n\nlet nonce = null;\n\nconst loadCSPNonce = () => {\n const metaTag = document.querySelector(\"meta[name=csp-nonce]\");\n return nonce = metaTag && metaTag.content;\n};\n\nconst cspNonce = () => nonce || loadCSPNonce();\n\nconst m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nconst matches = function(element, selector) {\n if (selector.exclude) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n};\n\nconst EXPANDO = \"_ujsData\";\n\nconst getData = (element, key) => element[EXPANDO] ? element[EXPANDO][key] : undefined;\n\nconst setData = function(element, key, value) {\n if (!element[EXPANDO]) {\n element[EXPANDO] = {};\n }\n return element[EXPANDO][key] = value;\n};\n\nconst $ = selector => Array.prototype.slice.call(document.querySelectorAll(selector));\n\nconst isContentEditable = function(element) {\n var isEditable = false;\n do {\n if (element.isContentEditable) {\n isEditable = true;\n break;\n }\n element = element.parentElement;\n } while (element);\n return isEditable;\n};\n\nconst csrfToken = () => {\n const meta = document.querySelector(\"meta[name=csrf-token]\");\n return meta && meta.content;\n};\n\nconst csrfParam = () => {\n const meta = document.querySelector(\"meta[name=csrf-param]\");\n return meta && meta.content;\n};\n\nconst CSRFProtection = xhr => {\n const token = csrfToken();\n if (token) {\n return xhr.setRequestHeader(\"X-CSRF-Token\", token);\n }\n};\n\nconst refreshCSRFTokens = () => {\n const token = csrfToken();\n const param = csrfParam();\n if (token && param) {\n return $('form input[name=\"' + param + '\"]').forEach((input => input.value = token));\n }\n};\n\nconst AcceptHeaders = {\n \"*\": \"*/*\",\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\",\n script: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n};\n\nconst ajax = options => {\n options = prepareOptions(options);\n var xhr = createXHR(options, (function() {\n const response = processResponse(xhr.response != null ? xhr.response : xhr.responseText, xhr.getResponseHeader(\"Content-Type\"));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : undefined;\n }));\n if (options.beforeSend && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n};\n\nvar prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === \"GET\" && options.data) {\n if (options.url.indexOf(\"?\") < 0) {\n options.url += \"?\" + options.data;\n } else {\n options.url += \"&\" + options.data;\n }\n }\n if (!(options.dataType in AcceptHeaders)) {\n options.dataType = \"*\";\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== \"*\") {\n options.accept += \", */*; q=0.01\";\n }\n return options;\n};\n\nvar createXHR = function(options, done) {\n const xhr = new XMLHttpRequest;\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader(\"Accept\", options.accept);\n if (typeof options.data === \"string\") {\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded; charset=UTF-8\");\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n};\n\nvar processResponse = function(response, type) {\n if (typeof response === \"string\" && typeof type === \"string\") {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n const script = document.createElement(\"script\");\n script.setAttribute(\"nonce\", cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n const parser = new DOMParser;\n type = type.replace(/;.+/, \"\");\n try {\n response = parser.parseFromString(response, type);\n } catch (error1) {}\n }\n }\n return response;\n};\n\nconst href = element => element.href;\n\nconst isCrossDomain = function(url) {\n const originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n const urlAnchor = document.createElement(\"a\");\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === \":\") && !urlAnchor.host || originAnchor.protocol + \"//\" + originAnchor.host === urlAnchor.protocol + \"//\" + urlAnchor.host);\n } catch (e) {\n return true;\n }\n};\n\nlet preventDefault;\n\nlet {CustomEvent: CustomEvent} = window;\n\nif (typeof CustomEvent !== \"function\") {\n CustomEvent = function(event, params) {\n const evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n ({preventDefault: preventDefault} = CustomEvent.prototype);\n CustomEvent.prototype.preventDefault = function() {\n const result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, \"defaultPrevented\", {\n get() {\n return true;\n }\n });\n }\n return result;\n };\n}\n\nconst fire = (obj, name, data) => {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n};\n\nconst stopEverything = e => {\n fire(e.target, \"ujs:everythingStopped\");\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n};\n\nconst delegate = (element, selector, eventType, handler) => element.addEventListener(eventType, (function(e) {\n let {target: target} = e;\n while (!!(target instanceof Element) && !matches(target, selector)) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n}));\n\nconst toArray = e => Array.prototype.slice.call(e);\n\nconst serializeElement = (element, additionalParam) => {\n let inputs = [ element ];\n if (matches(element, \"form\")) {\n inputs = toArray(element.elements);\n }\n const params = [];\n inputs.forEach((function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, \"fieldset[disabled] *\")) {\n return;\n }\n if (matches(input, \"select\")) {\n toArray(input.options).forEach((function(option) {\n if (option.selected) {\n params.push({\n name: input.name,\n value: option.value\n });\n }\n }));\n } else if (input.checked || [ \"radio\", \"checkbox\", \"submit\" ].indexOf(input.type) === -1) {\n params.push({\n name: input.name,\n value: input.value\n });\n }\n }));\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map((function(param) {\n if (param.name) {\n return `${encodeURIComponent(param.name)}=${encodeURIComponent(param.value)}`;\n } else {\n return param;\n }\n })).join(\"&\");\n};\n\nconst formElements = (form, selector) => {\n if (matches(form, \"form\")) {\n return toArray(form.elements).filter((el => matches(el, selector)));\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n};\n\nconst handleConfirmWithRails = rails => function(e) {\n if (!allowAction(this, rails)) {\n stopEverything(e);\n }\n};\n\nconst confirm = (message, element) => window.confirm(message);\n\nvar allowAction = function(element, rails) {\n let callback;\n const message = element.getAttribute(\"data-confirm\");\n if (!message) {\n return true;\n }\n let answer = false;\n if (fire(element, \"confirm\")) {\n try {\n answer = rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, \"confirm:complete\", [ answer ]);\n }\n return answer && callback;\n};\n\nconst handleDisabledElement = function(e) {\n const element = this;\n if (element.disabled) {\n stopEverything(e);\n }\n};\n\nconst enableElement = e => {\n let element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, buttonDisableSelector) || matches(element, formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, formSubmitSelector)) {\n return enableFormElements(element);\n }\n};\n\nconst disableElement = e => {\n const element = e instanceof Event ? e.target : e;\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, buttonDisableSelector) || matches(element, formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, formSubmitSelector)) {\n return disableFormElements(element);\n }\n};\n\nvar disableLinkElement = function(element) {\n if (getData(element, \"ujs:disabled\")) {\n return;\n }\n const replacement = element.getAttribute(\"data-disable-with\");\n if (replacement != null) {\n setData(element, \"ujs:enable-with\", element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener(\"click\", stopEverything);\n return setData(element, \"ujs:disabled\", true);\n};\n\nvar enableLinkElement = function(element) {\n const originalText = getData(element, \"ujs:enable-with\");\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, \"ujs:enable-with\", null);\n }\n element.removeEventListener(\"click\", stopEverything);\n return setData(element, \"ujs:disabled\", null);\n};\n\nvar disableFormElements = form => formElements(form, formDisableSelector).forEach(disableFormElement);\n\nvar disableFormElement = function(element) {\n if (getData(element, \"ujs:disabled\")) {\n return;\n }\n const replacement = element.getAttribute(\"data-disable-with\");\n if (replacement != null) {\n if (matches(element, \"button\")) {\n setData(element, \"ujs:enable-with\", element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, \"ujs:enable-with\", element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, \"ujs:disabled\", true);\n};\n\nvar enableFormElements = form => formElements(form, formEnableSelector).forEach((element => enableFormElement(element)));\n\nvar enableFormElement = function(element) {\n const originalText = getData(element, \"ujs:enable-with\");\n if (originalText != null) {\n if (matches(element, \"button\")) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, \"ujs:enable-with\", null);\n }\n element.disabled = false;\n return setData(element, \"ujs:disabled\", null);\n};\n\nvar isXhrRedirect = function(event) {\n const xhr = event.detail ? event.detail[0] : undefined;\n return xhr && xhr.getResponseHeader(\"X-Xhr-Redirect\");\n};\n\nconst handleMethodWithRails = rails => function(e) {\n const link = this;\n const method = link.getAttribute(\"data-method\");\n if (!method) {\n return;\n }\n if (isContentEditable(this)) {\n return;\n }\n const href = rails.href(link);\n const csrfToken$1 = csrfToken();\n const csrfParam$1 = csrfParam();\n const form = document.createElement(\"form\");\n let formContent = ``;\n if (csrfParam$1 && csrfToken$1 && !isCrossDomain(href)) {\n formContent += ``;\n }\n formContent += '';\n form.method = \"post\";\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = \"none\";\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n stopEverything(e);\n};\n\nconst isRemote = function(element) {\n const value = element.getAttribute(\"data-remote\");\n return value != null && value !== \"false\";\n};\n\nconst handleRemoteWithRails = rails => function(e) {\n let data, method, url;\n const element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, \"ajax:before\")) {\n fire(element, \"ajax:stopped\");\n return false;\n }\n if (isContentEditable(element)) {\n fire(element, \"ajax:stopped\");\n return false;\n }\n const withCredentials = element.getAttribute(\"data-with-credentials\");\n const dataType = element.getAttribute(\"data-type\") || \"script\";\n if (matches(element, formSubmitSelector)) {\n const button = getData(element, \"ujs:submit-button\");\n method = getData(element, \"ujs:submit-button-formmethod\") || element.getAttribute(\"method\") || \"get\";\n url = getData(element, \"ujs:submit-button-formaction\") || element.getAttribute(\"action\") || location.href;\n if (method.toUpperCase() === \"GET\") {\n url = url.replace(/\\?.*$/, \"\");\n }\n if (element.enctype === \"multipart/form-data\") {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, \"ujs:submit-button\", null);\n setData(element, \"ujs:submit-button-formmethod\", null);\n setData(element, \"ujs:submit-button-formaction\", null);\n } else if (matches(element, buttonClickSelector) || matches(element, inputChangeSelector)) {\n method = element.getAttribute(\"data-method\");\n url = element.getAttribute(\"data-url\");\n data = serializeElement(element, element.getAttribute(\"data-params\"));\n } else {\n method = element.getAttribute(\"data-method\");\n url = rails.href(element);\n data = element.getAttribute(\"data-params\");\n }\n ajax({\n type: method || \"GET\",\n url: url,\n data: data,\n dataType: dataType,\n beforeSend(xhr, options) {\n if (fire(element, \"ajax:beforeSend\", [ xhr, options ])) {\n return fire(element, \"ajax:send\", [ xhr ]);\n } else {\n fire(element, \"ajax:stopped\");\n return false;\n }\n },\n success(...args) {\n return fire(element, \"ajax:success\", args);\n },\n error(...args) {\n return fire(element, \"ajax:error\", args);\n },\n complete(...args) {\n return fire(element, \"ajax:complete\", args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== \"false\"\n });\n stopEverything(e);\n};\n\nconst formSubmitButtonClick = function(e) {\n const button = this;\n const {form: form} = button;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, \"ujs:submit-button\", {\n name: button.name,\n value: button.value\n });\n }\n setData(form, \"ujs:formnovalidate-button\", button.formNoValidate);\n setData(form, \"ujs:submit-button-formaction\", button.getAttribute(\"formaction\"));\n return setData(form, \"ujs:submit-button-formmethod\", button.getAttribute(\"formmethod\"));\n};\n\nconst preventInsignificantClick = function(e) {\n const link = this;\n const method = (link.getAttribute(\"data-method\") || \"GET\").toUpperCase();\n const data = link.getAttribute(\"data-params\");\n const metaClick = e.metaKey || e.ctrlKey;\n const insignificantMetaClick = metaClick && method === \"GET\" && !data;\n const nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n e.stopImmediatePropagation();\n }\n};\n\nconst Rails = {\n $: $,\n ajax: ajax,\n buttonClickSelector: buttonClickSelector,\n buttonDisableSelector: buttonDisableSelector,\n confirm: confirm,\n cspNonce: cspNonce,\n csrfToken: csrfToken,\n csrfParam: csrfParam,\n CSRFProtection: CSRFProtection,\n delegate: delegate,\n disableElement: disableElement,\n enableElement: enableElement,\n fileInputSelector: fileInputSelector,\n fire: fire,\n formElements: formElements,\n formEnableSelector: formEnableSelector,\n formDisableSelector: formDisableSelector,\n formInputClickSelector: formInputClickSelector,\n formSubmitButtonClick: formSubmitButtonClick,\n formSubmitSelector: formSubmitSelector,\n getData: getData,\n handleDisabledElement: handleDisabledElement,\n href: href,\n inputChangeSelector: inputChangeSelector,\n isCrossDomain: isCrossDomain,\n linkClickSelector: linkClickSelector,\n linkDisableSelector: linkDisableSelector,\n loadCSPNonce: loadCSPNonce,\n matches: matches,\n preventInsignificantClick: preventInsignificantClick,\n refreshCSRFTokens: refreshCSRFTokens,\n serializeElement: serializeElement,\n setData: setData,\n stopEverything: stopEverything\n};\n\nconst handleConfirm = handleConfirmWithRails(Rails);\n\nRails.handleConfirm = handleConfirm;\n\nconst handleMethod = handleMethodWithRails(Rails);\n\nRails.handleMethod = handleMethod;\n\nconst handleRemote = handleRemoteWithRails(Rails);\n\nRails.handleRemote = handleRemote;\n\nconst start = function() {\n if (window._rails_loaded) {\n throw new Error(\"rails-ujs has already been loaded!\");\n }\n window.addEventListener(\"pageshow\", (function() {\n $(formEnableSelector).forEach((function(el) {\n if (getData(el, \"ujs:disabled\")) {\n enableElement(el);\n }\n }));\n $(linkDisableSelector).forEach((function(el) {\n if (getData(el, \"ujs:disabled\")) {\n enableElement(el);\n }\n }));\n }));\n delegate(document, linkDisableSelector, \"ajax:complete\", enableElement);\n delegate(document, linkDisableSelector, \"ajax:stopped\", enableElement);\n delegate(document, buttonDisableSelector, \"ajax:complete\", enableElement);\n delegate(document, buttonDisableSelector, \"ajax:stopped\", enableElement);\n delegate(document, linkClickSelector, \"click\", preventInsignificantClick);\n delegate(document, linkClickSelector, \"click\", handleDisabledElement);\n delegate(document, linkClickSelector, \"click\", handleConfirm);\n delegate(document, linkClickSelector, \"click\", disableElement);\n delegate(document, linkClickSelector, \"click\", handleRemote);\n delegate(document, linkClickSelector, \"click\", handleMethod);\n delegate(document, buttonClickSelector, \"click\", preventInsignificantClick);\n delegate(document, buttonClickSelector, \"click\", handleDisabledElement);\n delegate(document, buttonClickSelector, \"click\", handleConfirm);\n delegate(document, buttonClickSelector, \"click\", disableElement);\n delegate(document, buttonClickSelector, \"click\", handleRemote);\n delegate(document, inputChangeSelector, \"change\", handleDisabledElement);\n delegate(document, inputChangeSelector, \"change\", handleConfirm);\n delegate(document, inputChangeSelector, \"change\", handleRemote);\n delegate(document, formSubmitSelector, \"submit\", handleDisabledElement);\n delegate(document, formSubmitSelector, \"submit\", handleConfirm);\n delegate(document, formSubmitSelector, \"submit\", handleRemote);\n delegate(document, formSubmitSelector, \"submit\", (e => setTimeout((() => disableElement(e)), 13)));\n delegate(document, formSubmitSelector, \"ajax:send\", disableElement);\n delegate(document, formSubmitSelector, \"ajax:complete\", enableElement);\n delegate(document, formInputClickSelector, \"click\", preventInsignificantClick);\n delegate(document, formInputClickSelector, \"click\", handleDisabledElement);\n delegate(document, formInputClickSelector, \"click\", handleConfirm);\n delegate(document, formInputClickSelector, \"click\", formSubmitButtonClick);\n document.addEventListener(\"DOMContentLoaded\", refreshCSRFTokens);\n document.addEventListener(\"DOMContentLoaded\", loadCSPNonce);\n return window._rails_loaded = true;\n};\n\nRails.start = start;\n\nif (typeof jQuery !== \"undefined\" && jQuery && jQuery.ajax) {\n if (jQuery.rails) {\n throw new Error(\"If you load both jquery_ujs and rails-ujs, use rails-ujs only.\");\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter((function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n }));\n}\n\nexport { Rails as default };\n"],"names":["deleteProps","obj","object","Object","keys","forEach","key","e","nextTick","callback","delay","setTimeout","now","Date","getTranslate","el","axis","window","matrix","curTransform","transformMatrix","curStyle","style","getComputedStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","split","length","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","parseFloat","m42","isObject","o","constructor","prototype","call","slice","extend","to","arguments","undefined","noExtend","i","nextSource","node","HTMLElement","nodeType","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cancelAnimationFrame","cssModeFrameID","dir","isOutOfBound","current","target","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","requestAnimationFrame","elementChildren","element","selector","children","matches","createElement","tag","classes","document","classList","add","Array","isArray","elementOffset","g","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementPrevAll","prevEls","previousElementSibling","prev","push","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementOuterSize","size","includeMargins","offsetWidth","Keyboard","extendParams","on","emit","handle","event","enabled","rtlTranslate","rtl","originalEvent","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","allowSlideNext","isHorizontal","isVertical","allowSlidePrev","shiftKey","altKey","ctrlKey","metaKey","activeElement","nodeName","toLowerCase","onlyInViewport","inView","slideClass","slideActiveClass","swiperWidth","clientWidth","swiperHeight","clientHeight","windowWidth","innerWidth","windowHeight","innerHeight","swiperOffset","swiperCoord","point","preventDefault","returnValue","slideNext","slidePrev","enable","addEventListener","disable","removeEventListener","assign","trim","Pagination","pfx","bulletSize","pagination","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","type","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","makeElementsArray","isPaginationDisabled","setSideBullets","bulletEl","position","onBulletClick","closest","index","slidesPerGroup","loop","realIndex","newSlideIndex","getSlideIndexByData","currentSlideIndex","loopFix","indexBeforeLoopFix","activeIndex","direction","activeSlideIndex","slideTo","slideToLoop","slides","loopedSlides","centeredSlides","slidesPerView","slidesPerViewDynamic","ceil","floor","update","previousIndex","slidesLength","virtual","total","snapGrid","previousRealIndex","snapIndex","previousSnapIndex","firstIndex","lastIndex","midIndex","subEl","classesToRemove","suffix","s","includes","flat","remove","bullet","bulletIndex","isElement","setAttribute","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","querySelectorAll","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","transitionDuration","innerHTML","watchOverflow","isLocked","render","paginationHTML","numberOfBullets","freeMode","init","originalParams","checkProps","createElements","auto","c","className","append","querySelector","uniqueNavElements","destroy","_s","targetEl","contains","navigation","nextEl","prevEl","isHidden","toggle","appendSlide","this","slidesEl","loopDestroy","appendElement","slideEl","tempDOM","recalcSlides","loopCreate","observer","prependSlide","newActiveIndex","prependElement","prepend","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","unshift","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","Manipulation","bind","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","userAgent","platform","navigator","ua","device","ios","android","screenWidth","screen","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","String","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","data","context","_len2","_key2","processLazyPreloader","imageEl","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","grid","rows","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","rewind","updateSize","parseInt","isNaN","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","cssMode","gridEnabled","slideSize","initSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","abs","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","addToSnapGrid","addToSlidesGrid","v","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","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","slideNextClass","slidePrevClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","step","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","newIndex","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","getSlideIndex","n","slideRealIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","currentSlideTranslate","diff","touches","touchEventsData","controller","control","loopParams","newSlidesOrder","swiperSlideIndex","onTouchStart","evCache","simulateTouch","pointerType","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","host","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","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","allowLoopFix","startTranslate","evt","CustomEvent","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopFixed","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","clearTimeout","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","resizeObserver","url","breakpointsBase","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","transition","transitionDelay","moving","__preventObserver__","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","points","minRatio","substr","value","sort","b","matchMedia","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","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","disconnect","sparkMd5","exports","undefined$1","hex_chr","md5cycle","k","d","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","second","result","byteLength","set","buffer","hexToBinaryString","bytes","SparkMD5","reset","clamp","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","hashBinary","content","factory","fileSlice","File","mozSlice","webkitSlice","FileChecksum","create","file","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","name","start","readAsArrayBuffer","findElement","root","eventInit","disabled","detail","createEvent","initEvent","toArray","BlobRecord","checksum","customHeaders","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","headerKey","csrfToken","head","getMetaValue","requestDidLoad","requestDidError","status","response","JSON","parse","send","stringify","blob","direct_upload","directUploadData","toJSON","BlobUpload","headers","id","DirectUpload","delegate","error","notify","upload","methodName","messages","DirectUploadController","input","directUpload","dispatch","hiddenInput","insertAdjacentElement","removeChild","dispatchError","signed_id","uploadRequestDidProgress","loaded","defaultPrevented","alert","directUploadWillCreateBlobWithXHR","directUploadWillStoreFileWithXHR","DirectUploadsController","form","inputs","files","controllers","createDirectUploadControllers","startNextController","shift","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","tagName","hasAttribute","get","focus","click","display","appendChild","delete","submitForm","ActiveStorage","src","ssrDocument","getElementById","childNodes","getElementsByTagName","createElementNS","importNode","location","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","history","replaceState","pushState","go","back","Image","getWindow","win","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","metaTag","cspNonce","Element","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","EXPANDO","getData","setData","$","isEditable","meta","csrfParam","CSRFProtection","token","refreshCSRFTokens","param","AcceptHeaders","text","html","xml","json","script","ajax","prepareOptions","createXHR","processResponse","responseText","getResponseHeader","success","statusText","beforeSend","readyState","OPENED","toUpperCase","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","parseFromString","error1","isCrossDomain","originAnchor","urlAnchor","initCustomEvent","Event","defineProperty","fire","stopEverything","eventType","serializeElement","additionalParam","elements","option","selected","checked","formElements","allowAction","rails","message","answer","confirm","handleDisabledElement","enableElement","isXhrRedirect","enableLinkElement","enableFormElement","enableFormElements","disableElement","disableLinkElement","disableFormElement","disableFormElements","replacement","originalText","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","Rails","fileInputSelector","handleConfirm","handleMethod","link","csrfToken$1","csrfParam$1","formContent","action","handleMethodWithRails","handleRemote","isRemote","enctype","FormData","handleRemoteWithRails","_rails_loaded","Error","jQuery","ajaxPrefilter","originalOptions"],"sourceRoot":""}