{"version":3,"file":"static/chunks/5061.8d9c7ce5dac9ec54.js","mappings":"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","sources":["webpack://_N_E/./node_modules/swiper/react/utils.js","webpack://_N_E/./node_modules/swiper/react/params-list.js","webpack://_N_E/./node_modules/swiper/react/get-params.js","webpack://_N_E/./node_modules/swiper/react/mount-swiper.js","webpack://_N_E/./node_modules/swiper/react/loop.js","webpack://_N_E/./node_modules/swiper/react/get-changed-params.js","webpack://_N_E/./node_modules/swiper/react/get-children.js","webpack://_N_E/./node_modules/swiper/react/update-swiper.js","webpack://_N_E/./node_modules/swiper/react/virtual.js","webpack://_N_E/./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack://_N_E/./node_modules/swiper/react/context.js","webpack://_N_E/./node_modules/swiper/react/swiper.js","webpack://_N_E/./node_modules/swiper/react/swiper-slide.js","webpack://_N_E/./node_modules/swiper/react/swiper-react.js","webpack://_N_E/./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://_N_E/./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://_N_E/./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/construct.js","webpack://_N_E/./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://_N_E/./node_modules/dom7/dom7.esm.js","webpack://_N_E/./node_modules/swiper/shared/dom.js","webpack://_N_E/./node_modules/swiper/shared/utils.js","webpack://_N_E/./node_modules/swiper/shared/get-support.js","webpack://_N_E/./node_modules/swiper/shared/get-device.js","webpack://_N_E/./node_modules/swiper/shared/get-browser.js","webpack://_N_E/./node_modules/swiper/core/modules/resize/resize.js","webpack://_N_E/./node_modules/swiper/core/modules/observer/observer.js","webpack://_N_E/./node_modules/swiper/core/events-emitter.js","webpack://_N_E/./node_modules/swiper/core/update/updateSize.js","webpack://_N_E/./node_modules/swiper/core/update/updateSlides.js","webpack://_N_E/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://_N_E/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://_N_E/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://_N_E/./node_modules/swiper/core/update/updateProgress.js","webpack://_N_E/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://_N_E/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://_N_E/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://_N_E/./node_modules/swiper/core/update/index.js","webpack://_N_E/./node_modules/swiper/core/translate/getTranslate.js","webpack://_N_E/./node_modules/swiper/core/translate/setTranslate.js","webpack://_N_E/./node_modules/swiper/core/translate/minTranslate.js","webpack://_N_E/./node_modules/swiper/core/translate/maxTranslate.js","webpack://_N_E/./node_modules/swiper/core/translate/translateTo.js","webpack://_N_E/./node_modules/swiper/core/translate/index.js","webpack://_N_E/./node_modules/swiper/core/transition/setTransition.js","webpack://_N_E/./node_modules/swiper/core/transition/transitionEmit.js","webpack://_N_E/./node_modules/swiper/core/transition/transitionStart.js","webpack://_N_E/./node_modules/swiper/core/transition/transitionEnd.js","webpack://_N_E/./node_modules/swiper/core/transition/index.js","webpack://_N_E/./node_modules/swiper/core/slide/slideTo.js","webpack://_N_E/./node_modules/swiper/core/slide/slideToLoop.js","webpack://_N_E/./node_modules/swiper/core/slide/slideNext.js","webpack://_N_E/./node_modules/swiper/core/slide/slidePrev.js","webpack://_N_E/./node_modules/swiper/core/slide/slideReset.js","webpack://_N_E/./node_modules/swiper/core/slide/slideToClosest.js","webpack://_N_E/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://_N_E/./node_modules/swiper/core/slide/index.js","webpack://_N_E/./node_modules/swiper/core/loop/loopCreate.js","webpack://_N_E/./node_modules/swiper/core/loop/loopFix.js","webpack://_N_E/./node_modules/swiper/core/loop/loopDestroy.js","webpack://_N_E/./node_modules/swiper/core/loop/index.js","webpack://_N_E/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://_N_E/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://_N_E/./node_modules/swiper/core/grab-cursor/index.js","webpack://_N_E/./node_modules/swiper/core/events/onTouchStart.js","webpack://_N_E/./node_modules/swiper/core/events/onTouchMove.js","webpack://_N_E/./node_modules/swiper/core/events/onTouchEnd.js","webpack://_N_E/./node_modules/swiper/core/events/onResize.js","webpack://_N_E/./node_modules/swiper/core/events/onClick.js","webpack://_N_E/./node_modules/swiper/core/events/onScroll.js","webpack://_N_E/./node_modules/swiper/core/events/index.js","webpack://_N_E/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://_N_E/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://_N_E/./node_modules/swiper/core/breakpoints/index.js","webpack://_N_E/./node_modules/swiper/core/classes/addClasses.js","webpack://_N_E/./node_modules/swiper/core/classes/removeClasses.js","webpack://_N_E/./node_modules/swiper/core/classes/index.js","webpack://_N_E/./node_modules/swiper/core/images/loadImage.js","webpack://_N_E/./node_modules/swiper/core/images/preloadImages.js","webpack://_N_E/./node_modules/swiper/core/images/index.js","webpack://_N_E/./node_modules/swiper/core/check-overflow/index.js","webpack://_N_E/./node_modules/swiper/core/defaults.js","webpack://_N_E/./node_modules/swiper/core/moduleExtendParams.js","webpack://_N_E/./node_modules/swiper/core/core.js","webpack://_N_E/./node_modules/swiper/modules/virtual/virtual.js","webpack://_N_E/./node_modules/swiper/modules/keyboard/keyboard.js","webpack://_N_E/./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack://_N_E/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://_N_E/./node_modules/swiper/modules/navigation/navigation.js","webpack://_N_E/./node_modules/swiper/shared/classes-to-selector.js","webpack://_N_E/./node_modules/swiper/modules/pagination/pagination.js","webpack://_N_E/./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack://_N_E/./node_modules/swiper/modules/parallax/parallax.js","webpack://_N_E/./node_modules/swiper/modules/zoom/zoom.js","webpack://_N_E/./node_modules/swiper/modules/lazy/lazy.js","webpack://_N_E/./node_modules/swiper/modules/controller/controller.js","webpack://_N_E/./node_modules/swiper/modules/a11y/a11y.js","webpack://_N_E/./node_modules/swiper/modules/history/history.js","webpack://_N_E/./node_modules/swiper/modules/hash-navigation/hash-navigation.js","webpack://_N_E/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://_N_E/./node_modules/swiper/modules/thumbs/thumbs.js","webpack://_N_E/./node_modules/swiper/modules/free-mode/free-mode.js","webpack://_N_E/./node_modules/swiper/modules/grid/grid.js","webpack://_N_E/./node_modules/swiper/modules/effect-cube/effect-cube.js","webpack://_N_E/./node_modules/swiper/shared/create-shadow.js","webpack://_N_E/./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack://_N_E/./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack://_N_E/./node_modules/swiper/modules/effect-creative/effect-creative.js","webpack://_N_E/./node_modules/swiper/modules/effect-cards/effect-cards.js","webpack://_N_E/./node_modules/swiper/swiper.esm.js","webpack://_N_E/./node_modules/swiper/modules/grid/grid.min.css","webpack://_N_E/./node_modules/swiper/modules/navigation/navigation.min.css","webpack://_N_E/./node_modules/swiper/modules/pagination/pagination.min.css","webpack://_N_E/./node_modules/swiper/modules/scrollbar/scrollbar.min.css","webpack://_N_E/./node_modules/swiper/swiper.min.css","webpack://_N_E/"],"sourcesContent":["function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).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 if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n Object.keys(obj).forEach(key => {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { mountSwiper };","import React from 'react';\nimport Swiper from 'swiper';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n modifiedSlides.forEach((child, index) => {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n const oldChildrenKeys = oldChildren.map(child => child.key);\n const childrenKeys = children.map(child => child.key);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import React from 'react';\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from './get-params.js';\nimport { mountSwiper } from './mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from './get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from './update-swiper.js';\nimport { renderVirtual, updateOnVirtualData } from './virtual.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren()));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","/**\n * Swiper React 8.2.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 1, 2022\n */\n\nimport { Swiper } from './swiper.js';\nimport { SwiperSlide } from './swiper-slide.js';\nexport { useSwiperSlide, useSwiper } from './context.js';\nexport { Swiper, SwiperSlide };","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\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 }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\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\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\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\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\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\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\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\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\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\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\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\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\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\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\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\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'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\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 } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\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\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nexport default function 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\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\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\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\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}","import { getWindow } from 'ssr-window';\nexport default function Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\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 (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\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\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","/* eslint-disable no-underscore-dangle */\nexport default {\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\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\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\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\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\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\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\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\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\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\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\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\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};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('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}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\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\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\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 = $wrapperEl.children(`.${swiper.params.slideClass}`);\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\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\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\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\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\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(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\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\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\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\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\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.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\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\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\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.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\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function 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\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(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 } // Find new height from highest slide in view\n\n\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 } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\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; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.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\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\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 } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\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\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\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\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('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\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\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; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\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\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\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\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function 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\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\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\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\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\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\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\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 } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = 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\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\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\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\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\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\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\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\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\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\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\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\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}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\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 = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\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\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // 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\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\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\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function 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 let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && 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\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\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\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\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\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\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\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\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\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\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\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\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\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\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\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\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}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 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 swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function 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\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\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\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\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\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\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\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\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\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\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\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\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\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","function 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}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\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.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\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\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\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 // 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: 0,\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 // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor() {\n let el;\n let params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\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\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\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\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\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 }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\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\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\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\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\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 // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\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: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\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'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\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\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\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\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(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\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n\n if (exact === void 0) {\n exact = false;\n }\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\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\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\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\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\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\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\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(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\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\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'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\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]);\nexport default Swiper;","import $ from '../../shared/dom.js';\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n const $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n }\n\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n emit('virtualUpdate');\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n\n return;\n }\n\n const prependIndexes = [];\n const appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n\n appendIndexes.forEach(index => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach(index => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n update(true);\n }\n\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function 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\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\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; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n\n const $el = swiper.$el;\n const swiperWidth = $el[0].clientWidth;\n const swiperHeight = $el[0].clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].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\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\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\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\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\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\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}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n }\n\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n\n function events(method) {\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function 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 $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\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 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\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\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\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\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\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.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](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 const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\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 paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\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 $el.html(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 $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\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 = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\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 (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](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 {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(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.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled'\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support\n } = swiper;\n const $el = scrollbar.$el;\n if (!$el) return;\n const target = $el[0];\n const activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n disableDraggable();\n }\n\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.scrollbar;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n init();\n updateSize();\n setTranslate();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nexport default function Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n };\n\n const setTranslate = () => {\n const {\n $el,\n slides,\n progress,\n snapGrid\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, slideProgress);\n });\n });\n };\n\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n\n const {\n $el\n } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { getTranslate } from '../../shared/utils.js';\nexport default function Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let gesturesEnabled;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n isScaling = true;\n }\n\n function onGestureChange(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function onGestureEnd(e) {\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n }\n\n function onTouchMove(e) {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n } // Toggle Zoom\n\n\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n const support = swiper.support;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return `.${swiper.params.slideClass}`;\n }\n\n function toggleGestures(method) {\n const {\n passiveListener\n } = getListeners();\n const slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const support = swiper.support;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = Math.ceil(slidesPerView);\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + spv; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n on('destroy', () => {\n if (!swiper.$el) return;\n swiper.$el.find(`.${swiper.params.lazy.loadingClass}`).removeClass(swiper.params.lazy.loadingClass);\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick } from '../../shared/utils.js';\nexport default function Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n $bulletEl.attr('aria-current', 'true');\n } else {\n $bulletEl.removeAttr('aria-current');\n }\n });\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n const handleFocus = e => {\n const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n\n const initSlides = () => {\n const params = swiper.params.a11y;\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n });\n };\n\n const init = () => {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n initSlides(); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.on('focus', handleFocus, true);\n };\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.off('focus', handleFocus, true);\n }\n\n on('beforeInit', () => {\n liveRegion = $(``);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","import { getWindow } from 'ssr-window';\nexport default function History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n const slide = swiper.slides.eq(index);\n let value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key}/${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n\n const currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n const destroy = () => {\n const window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');\n emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n\n if (hash) {\n const speed = 0;\n\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', onHashChange);\n }\n };\n\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import { now } from '../../shared/utils.js';\nexport default function freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchStart() {\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper; // Velocity\n\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper; // Time diff\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","export default function Grid(_ref) {\n let {\n swiper,\n extendParams\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup,\n spaceBetween\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid; // Set slides order\n\n let newSlideOrderIndex;\n let column;\n let row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : '');\n };\n\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n spaceBetween,\n centeredSlides,\n roundLengths\n } = swiper.params;\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`\n });\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push(...newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}","import $ from '../../shared/dom.js';\nimport effectInit from '../../shared/effect-init.js';\nexport default function EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n const createSlideShadows = ($slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n };\n\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.each(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows($(slideEl), progress, isHorizontal);\n });\n };\n\n const setTranslate = () => {\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: `${swiperWidth}px`\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n createSlideShadows($slideEl, progress, isHorizontal);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n\n const setTransition = duration => {\n const {\n $el,\n slides\n } = swiper;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n };\n\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n if (!$shadowEl.length) {\n $shadowEl = $(`
`);\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}","import $ from '../../shared/dom.js';\nimport createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n const createSlideShadows = ($slideEl, progress, params) => {\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n };\n\n const recreateShadows = () => {\n // Set shadows\n const params = swiper.params.flipEffect;\n swiper.slides.each(slideEl => {\n const $slideEl = $(slideEl);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n\n createSlideShadows($slideEl, progress, params);\n });\n };\n\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n createSlideShadows($slideEl, progress, params);\n }\n\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nexport default function EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth; // Each slide offset from center\n\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.coverflowEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n\n const setTranslate = () => {\n const {\n slides,\n $wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n }); // set rotates\n\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n if (custom && data.shadow || !custom) {\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.creativeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null,\n rotate: true\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -2 * progress;\n let tXAdd = 8 - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rotate : 0}deg)\n scale(${scaleString})\n `;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.cardsEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","/**\n * Swiper 8.2.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 1, 2022\n */\n\nexport { default as Swiper, default } from './core/core.js';\nexport { default as Virtual } from './modules/virtual/virtual.js';\nexport { default as Keyboard } from './modules/keyboard/keyboard.js';\nexport { default as Mousewheel } from './modules/mousewheel/mousewheel.js';\nexport { default as Navigation } from './modules/navigation/navigation.js';\nexport { default as Pagination } from './modules/pagination/pagination.js';\nexport { default as Scrollbar } from './modules/scrollbar/scrollbar.js';\nexport { default as Parallax } from './modules/parallax/parallax.js';\nexport { default as Zoom } from './modules/zoom/zoom.js';\nexport { default as Lazy } from './modules/lazy/lazy.js';\nexport { default as Controller } from './modules/controller/controller.js';\nexport { default as A11y } from './modules/a11y/a11y.js';\nexport { default as History } from './modules/history/history.js';\nexport { default as HashNavigation } from './modules/hash-navigation/hash-navigation.js';\nexport { default as Autoplay } from './modules/autoplay/autoplay.js';\nexport { default as Thumbs } from './modules/thumbs/thumbs.js';\nexport { default as FreeMode } from './modules/free-mode/free-mode.js';\nexport { default as Grid } from './modules/grid/grid.js';\nexport { default as Manipulation } from './modules/manipulation/manipulation.js';\nexport { default as EffectFade } from './modules/effect-fade/effect-fade.js';\nexport { default as EffectCube } from './modules/effect-cube/effect-cube.js';\nexport { default as EffectFlip } from './modules/effect-flip/effect-flip.js';\nexport { default as EffectCoverflow } from './modules/effect-coverflow/effect-coverflow.js';\nexport { default as EffectCreative } from './modules/effect-creative/effect-creative.js';\nexport { default as EffectCards } from './modules/effect-cards/effect-cards.js';","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","(self[\"webpackChunk_N_E\"] = self[\"webpackChunk_N_E\"] || []).push([[5061],{\n\n/***/ 86173:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"tq\": function() { return /* reexport */ Swiper; },\n \"o5\": function() { return /* reexport */ SwiperSlide; }\n});\n\n// UNUSED EXPORTS: useSwiper, useSwiperSlide\n\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules\nvar objectWithoutProperties = __webpack_require__(4730);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(67294);\n// EXTERNAL MODULE: ./node_modules/swiper/swiper.esm.js + 94 modules\nvar swiper_esm = __webpack_require__(5890);\n;// CONCATENATED MODULE: ./node_modules/swiper/react/utils.js\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n }).forEach(function (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 if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/params-list.js\n/* underscore in name -> watch for changes */\nvar paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/get-params.js\n\n\n\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var params = {\n on: {}\n };\n var events = {};\n var passedParams = {};\n extend(params, swiper_esm/* default.defaults */.ZP.defaults);\n extend(params, swiper_esm/* default.extendedDefaults */.ZP.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[\"\".concat(key[2].toLowerCase()).concat(key.substr(3))] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(function (key) {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest,\n events: events\n };\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/mount-swiper.js\n\n\nfunction mountSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl,\n swiper = _ref.swiper;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\n\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/toConsumableArray.js + 3 modules\nvar toConsumableArray = __webpack_require__(27812);\n;// CONCATENATED MODULE: ./node_modules/swiper/react/loop.js\n\n\n\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n var breakpoint = swiper_esm/* default.prototype.getBreakpoint */.ZP.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return /*#__PURE__*/react.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/react.cloneElement(child, {\n key: \"\".concat(child.key, \"-duplicate-\").concat(index, \"-\").concat(position),\n className: \"\".concat(child.props.className || '', \" \").concat(swiperParams.slideDuplicateClass)\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/react.createElement(\"div\", {\n className: \"\".concat(swiperParams.slideClass, \" \").concat(swiperParams.slideBlankClass)\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, (0,toConsumableArray/* default */.Z)(modifiedSlides), appendSlides);\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/get-changed-params.js\n\n\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/get-children.js\n\n\nfunction processChildren(c) {\n var slides = [];\n react.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(function (slide) {\n return slides.push(slide);\n });\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n react.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n var foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(function (slide) {\n return slides.push(slide);\n });\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides: slides,\n slots: slots\n };\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/update-swiper.js\n\n\nfunction updateSwiper(_ref) {\n var swiper = _ref.swiper,\n slides = _ref.slides,\n passedParams = _ref.passedParams,\n changedParams = _ref.changedParams,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n scrollbarEl = _ref.scrollbarEl,\n paginationEl = _ref.paginationEl;\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n var destroyModule = function destroyModule(mod) {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n var newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\n\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(59499);\n;// CONCATENATED MODULE: ./node_modules/swiper/react/virtual.js\n\n\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? (0,defineProperty/* default */.Z)({}, swiper.rtlTranslate ? 'right' : 'left', \"\".concat(virtualData.offset, \"px\")) : {\n top: \"\".concat(virtualData.offset, \"px\")\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return /*#__PURE__*/react.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/use-isomorphic-layout-effect.js\n\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (false) {}\n return (0,react.useLayoutEffect)(callback, deps);\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/context.js\n\nvar SwiperSlideContext = /*#__PURE__*/(0,react.createContext)(null);\nvar useSwiperSlide = function useSwiperSlide() {\n return useContext(SwiperSlideContext);\n};\nvar SwiperContext = /*#__PURE__*/(0,react.createContext)(null);\nvar useSwiper = function useSwiper() {\n return useContext(SwiperContext);\n};\n;// CONCATENATED MODULE: ./node_modules/swiper/react/swiper.js\n\nvar _excluded = [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"];\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Swiper = /*#__PURE__*/(0,react.forwardRef)(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = (0,objectWithoutProperties/* default */.Z)(_ref, _excluded);\n\n var eventsAssigned = false;\n\n var _useState = (0,react.useState)('swiper'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n\n var _useState2 = (0,react.useState)(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n\n var _useState3 = (0,react.useState)(false),\n breakpointChanged = _useState3[0],\n setBreakpointChanged = _useState3[1];\n\n var initializedRef = (0,react.useRef)(false);\n var swiperElRef = (0,react.useRef)(null);\n var swiperRef = (0,react.useRef)(null);\n var oldPassedParamsRef = (0,react.useRef)(null);\n var oldSlides = (0,react.useRef)(null);\n var nextElRef = (0,react.useRef)(null);\n var prevElRef = (0,react.useRef)(null);\n var paginationElRef = (0,react.useRef)(null);\n var scrollbarElRef = (0,react.useRef)(null);\n\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest,\n events = _getParams.events;\n\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n\n var initSwiper = function initSwiper() {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new swiper_esm/* default */.ZP(swiperParams);\n\n swiperRef.current.loopCreate = function () {};\n\n swiperRef.current.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n var extendWith = {\n cache: false,\n slides: slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n var attachEvents = function attachEvents() {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n var detachEvents = function detachEvents() {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n (0,react.useEffect)(function () {\n return function () {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n (0,react.useEffect)(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n attachEvents();\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides: slides,\n passedParams: passedParams,\n changedParams: changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return function () {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return /*#__PURE__*/react.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/react.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\".concat(containerClasses).concat(className ? \" \".concat(className) : ''))\n }, restProps), /*#__PURE__*/react.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/react.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/react.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/react.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/react.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/swiper-slide.js\n\nvar swiper_slide_excluded = [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\", \"virtualIndex\"];\n\nfunction swiper_slide_extends() {\n swiper_slide_extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return swiper_slide_extends.apply(this, arguments);\n}\n\n\n\n\n\nvar SwiperSlide = /*#__PURE__*/(0,react.forwardRef)(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n virtualIndex = _ref.virtualIndex,\n rest = (0,objectWithoutProperties/* default */.Z)(_ref, swiper_slide_excluded);\n\n var slideElRef = (0,react.useRef)(null);\n\n var _useState = (0,react.useState)('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(function () {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n var slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n\n var renderChildren = function renderChildren() {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/react.createElement(Tag, swiper_slide_extends({\n ref: slideElRef,\n className: uniqueClasses(\"\".concat(slideClasses).concat(className ? \" \".concat(className) : '')),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/react.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, zoom ? /*#__PURE__*/react.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren()));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\n;// CONCATENATED MODULE: ./node_modules/swiper/react/swiper-react.js\n/**\n * Swiper React 8.2.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 1, 2022\n */\n\n\n\n\n\n/***/ }),\n\n/***/ 5890:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"rj\": function() { return /* reexport */ Grid; },\n \"W_\": function() { return /* reexport */ Navigation; },\n \"tl\": function() { return /* reexport */ Pagination; },\n \"LW\": function() { return /* reexport */ Scrollbar; },\n \"ZP\": function() { return /* reexport */ core; }\n});\n\n// UNUSED EXPORTS: A11y, Autoplay, Controller, EffectCards, EffectCoverflow, EffectCreative, EffectCube, EffectFade, EffectFlip, FreeMode, HashNavigation, History, Keyboard, Lazy, Manipulation, Mousewheel, Parallax, Swiper, Thumbs, Virtual, Zoom\n\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/toConsumableArray.js + 3 modules\nvar toConsumableArray = __webpack_require__(27812);\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(92777);\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(82262);\n// EXTERNAL MODULE: ./node_modules/ssr-window/ssr-window.esm.js\nvar ssr_window_esm = __webpack_require__(85240);\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(10748);\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/inherits.js\nvar inherits = __webpack_require__(81531);\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(63553);\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(37247);\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/setPrototypeOf.js\nvar setPrototypeOf = __webpack_require__(90607);\n;// CONCATENATED MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/isNativeFunction.js\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n;// CONCATENATED MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/isNativeReflectConstruct.js\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/construct.js\n\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) (0,setPrototypeOf/* default */.Z)(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n;// CONCATENATED MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/wrapNativeSuper.js\n\n\n\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, (0,getPrototypeOf/* default */.Z)(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return (0,setPrototypeOf/* default */.Z)(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n;// CONCATENATED MODULE: ./node_modules/dom7/dom7.esm.js\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = dom7_esm_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0,getPrototypeOf/* default */.Z)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0,getPrototypeOf/* default */.Z)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0,possibleConstructorReturn/* default */.Z)(this, result); }; }\n\nfunction dom7_esm_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\n\n/* eslint-disable no-proto */\n\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n (0,inherits/* default */.Z)(Dom7, _Array);\n\n var _super = _createSuper(Dom7);\n\n function Dom7(items) {\n var _this;\n\n (0,classCallCheck/* default */.Z)(this, Dom7);\n\n if (typeof items === 'number') {\n _this = _super.call(this, items);\n } else {\n _this = _super.call.apply(_super, [this].concat((0,toConsumableArray/* default */.Z)(items || [])));\n makeReactive((0,assertThisInitialized/* default */.Z)(_this));\n }\n\n return (0,possibleConstructorReturn/* default */.Z)(_this);\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat() {\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, (0,toConsumableArray/* default */.Z)(arrayFlat(el)));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n} // eslint-disable-next-line\n\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction dom7_esm_$(selector, context) {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var _html = selector.trim();\n\n if (_html.indexOf('<') >= 0 && _html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (_html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\".concat(key));\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? \"\".concat(duration, \"ms\") : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if (dom7_esm_$(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = dom7_esm_$(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if (dom7_esm_$(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction dom7_esm_outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction dom7_esm_outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n\n var _scrollTop = el === window ? window.scrollY : el.scrollTop;\n\n var _scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n\n return {\n top: box.top + _scrollTop - clientTop,\n left: box.left + _scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return dom7_esm_$(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction dom7_esm_text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = dom7_esm_$(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return dom7_esm_$([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return dom7_esm_$([]);\n return dom7_esm_$([this[returnIndex]]);\n }\n\n return dom7_esm_$([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n dom7_esm_$(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n dom7_esm_$(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = dom7_esm_$(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = dom7_esm_$(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && dom7_esm_$(this[0].nextElementSibling).is(selector)) {\n return dom7_esm_$([this[0].nextElementSibling]);\n }\n\n return dom7_esm_$([]);\n }\n\n if (this[0].nextElementSibling) return dom7_esm_$([this[0].nextElementSibling]);\n return dom7_esm_$([]);\n }\n\n return dom7_esm_$([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return dom7_esm_$([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if (dom7_esm_$(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return dom7_esm_$(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && dom7_esm_$(el.previousElementSibling).is(selector)) {\n return dom7_esm_$([el.previousElementSibling]);\n }\n\n return dom7_esm_$([]);\n }\n\n if (el.previousElementSibling) return dom7_esm_$([el.previousElementSibling]);\n return dom7_esm_$([]);\n }\n\n return dom7_esm_$([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return dom7_esm_$([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if (dom7_esm_$(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return dom7_esm_$(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction dom7_esm_parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if (dom7_esm_$(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return dom7_esm_$(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if (dom7_esm_$(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return dom7_esm_$(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return dom7_esm_$([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return dom7_esm_$(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || dom7_esm_$(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return dom7_esm_$(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = dom7_esm_$(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n} // eslint-disable-next-line\n\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render() {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n} // eslint-disable-next-line\n\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n dom7_esm_$(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar dom7_esm_blur = shortcut('blur');\nvar dom7_esm_focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar dom7_esm_submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar dom7_esm_scroll = shortcut('scroll');\n/* harmony default export */ var dom7_esm = ((/* unused pure expression or super */ null && (dom7_esm_$)));\n\n;// CONCATENATED MODULE: ./node_modules/swiper/shared/dom.js\n\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: dom7_esm_outerWidth,\n outerHeight: dom7_esm_outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: dom7_esm_text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: dom7_esm_parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty(dom7_esm_$.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\n/* harmony default export */ var dom = (dom7_esm_$);\n// EXTERNAL MODULE: ./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(59499);\n;// CONCATENATED MODULE: ./node_modules/swiper/shared/utils.js\n\n\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction utils_nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction utils_now() {\n return Date.now();\n}\n\nfunction utils_getComputedStyle(el) {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction utils_getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = utils_getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\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\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction utils_isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if ( true && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (utils_isObject(to[nextKey]) && utils_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 (!utils_isObject(to[nextKey]) && utils_isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\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\n return to;\n}\n\nfunction utils_setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll(_ref) {\n var swiper = _ref.swiper,\n targetPosition = _ref.targetPosition,\n side = _ref.side;\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var startPosition = -swiper.translate;\n var startTime = null;\n var time;\n var duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n var dir = targetPosition > startPosition ? 'next' : 'prev';\n\n var isOutOfBound = function isOutOfBound(current, target) {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n var animate = function animate() {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n var currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo((0,defineProperty/* default */.Z)({}, side, currentPosition));\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(function () {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo((0,defineProperty/* default */.Z)({}, side, currentPosition));\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/shared/get-support.js\n\nvar support;\n\nfunction calcSupport() {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/shared/get-device.js\n\n\nvar deviceCached;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(\"\".concat(screenWidth, \"x\").concat(screenHeight)) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/shared/get-browser.js\n\nvar browser;\n\nfunction calcBrowser() {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\n\n;// CONCATENATED MODULE: ./node_modules/swiper/core/modules/resize/resize.js\n\nfunction Resize(_ref) {\n var swiper = _ref.swiper,\n on = _ref.on,\n emit = _ref.emit;\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var observer = null;\n var animationFrame = null;\n\n var resizeHandler = function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n var createObserver = function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(function (entries) {\n animationFrame = window.requestAnimationFrame(function () {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref2) {\n var contentBoxSize = _ref2.contentBoxSize,\n contentRect = _ref2.contentRect,\n target = _ref2.target;\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\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n var removeObserver = function removeObserver() {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n var orientationChangeHandler = function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', function () {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', function () {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/modules/observer/observer.js\n\nfunction Observer(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var observers = [];\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n\n var attach = function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (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 (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\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\n var init = function init() {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n var destroy = function destroy() {\n observers.forEach(function (observer) {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/events-emitter.js\n\n\n/* eslint-disable no-underscore-dangle */\n/* harmony default export */ var events_emitter = ({\n on: function on(events, handler, priority) {\n var self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (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: function emit() {\n var self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\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\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat((0,toConsumableArray/* default */.Z)(data)));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateSize.js\nfunction updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateSlides.js\n\n\nfunction updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\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\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\".concat(swiper.params.slideClass));\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n utils_setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n utils_setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n var gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n var slideSize;\n var shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(function (key) {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = \"\";\n }\n\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\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\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = \"\".concat(slideSize, \"px\");\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\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\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css((0,defineProperty/* default */.Z)({}, getDirectionLabel('width'), \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")));\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n var newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[_i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((0,defineProperty/* default */.Z)({}, key, \"\".concat(spaceBetween, \"px\")));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n utils_setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', \"\".concat(-snapGrid[0], \"px\"));\n utils_setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', \"\".concat(swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2, \"px\"));\n var addToSnapGrid = -swiper.snapGrid[0];\n var addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(function (v) {\n return v + addToSnapGrid;\n });\n swiper.slidesGrid = swiper.slidesGrid.map(function (v) {\n return v + addToSlidesGrid;\n });\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n var backFaceHiddenClass = \"\".concat(params.containerModifierClass, \"backface-hidden\");\n var hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateAutoHeight.js\n\nfunction updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || dom([])).each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var 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 } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', \"\".concat(newHeight, \"px\"));\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateSlidesOffset.js\nfunction updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateSlidesProgress.js\n\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate,\n snapGrid = swiper.snapGrid;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n var originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n var slideBefore = -(offsetCenter - slideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = dom(swiper.visibleSlides);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateProgress.js\nfunction updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateSlidesClasses.js\nfunction updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(\"\".concat(params.slideActiveClass, \" \").concat(params.slideNextClass, \" \").concat(params.slidePrevClass, \" \").concat(params.slideDuplicateActiveClass, \" \").concat(params.slideDuplicateNextClass, \" \").concat(params.slideDuplicatePrevClass));\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(activeIndex, \"\\\"]\"));\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\".concat(params.slideClass)).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\".concat(params.slideClass)).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateActiveIndex.js\nfunction updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var 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 } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/updateClickedSlide.js\n\nfunction updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = dom(e).closest(\".\".concat(params.slideClass))[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var 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\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(dom(slide).attr('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\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/update/index.js\n\n\n\n\n\n\n\n\n\n/* harmony default export */ var update = ({\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/translate/getTranslate.js\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = utils_getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/translate/setTranslate.js\nfunction setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\".concat(x, \"px, \").concat(y, \"px, \").concat(z, \"px)\"));\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/translate/minTranslate.js\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/translate/maxTranslate.js\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/translate/translateTo.js\n\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n var _wrapperEl$scrollTo;\n\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper: swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, (0,defineProperty/* default */.Z)(_wrapperEl$scrollTo, isH ? 'left' : 'top', -newTranslate), (0,defineProperty/* default */.Z)(_wrapperEl$scrollTo, \"behavior\", 'smooth'), _wrapperEl$scrollTo));\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\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\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/translate/index.js\n\n\n\n\n\n/* harmony default export */ var translate = ({\n getTranslate: getSwiperTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/transition/setTransition.js\nfunction setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/transition/transitionEmit.js\nfunction transitionEmit(_ref) {\n var swiper = _ref.swiper,\n runCallbacks = _ref.runCallbacks,\n direction = _ref.direction,\n step = _ref.step;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex;\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(\"transition\".concat(step));\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(\"slideResetTransition\".concat(step));\n return;\n }\n\n swiper.emit(\"slideChangeTransition\".concat(step));\n\n if (dir === 'next') {\n swiper.emit(\"slideNextTransition\".concat(step));\n } else {\n swiper.emit(\"slidePrevTransition\".concat(step));\n }\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/transition/transitionStart.js\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper: swiper,\n runCallbacks: runCallbacks,\n direction: direction,\n step: 'Start'\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/transition/transitionEnd.js\n\nfunction transitionEnd_transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper: swiper,\n runCallbacks: runCallbacks,\n direction: direction,\n step: 'End'\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/transition/index.js\n\n\n\n/* harmony default export */ var core_transition = ({\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd_transitionEnd\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/slide/slideTo.js\n\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\".concat(typeof index, \"] given.\"));\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\".concat(index, \"] given.\"));\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGrid = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\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 } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = rtl ? translate : -translate;\n\n if (speed === 0) {\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(function () {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n var _wrapperEl$scrollTo;\n\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper: swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, (0,defineProperty/* default */.Z)(_wrapperEl$scrollTo, isH ? 'left' : 'top', t), (0,defineProperty/* default */.Z)(_wrapperEl$scrollTo, \"behavior\", 'smooth'), _wrapperEl$scrollTo));\n }\n\n return true;\n }\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\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/slide/slideToLoop.js\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\".concat(index, \"] given.\"));\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/slide/slideNext.js\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var animating = swiper.animating,\n enabled = swiper.enabled,\n params = swiper.params;\n if (!enabled) return swiper;\n var perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/slide/slidePrev.js\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n var prevSnapIndex;\n snapGrid.forEach(function (snap, snapIndex) {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n var prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\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\n if (params.rewind && swiper.isBeginning) {\n var lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/slide/slideReset.js\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/slide/slideToClosest.js\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\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 var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\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 var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\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;// CONCATENATED MODULE: ./node_modules/swiper/core/slide/slideToClickedSlide.js\n\n\nfunction slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(dom(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(params.slideDuplicateClass, \")\")).eq(0).index();\n utils_nextTick(function () {\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 = $wrapperEl.children(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(params.slideDuplicateClass, \")\")).eq(0).index();\n utils_nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/slide/index.js\n\n\n\n\n\n\n\n/* harmony default export */ var slide = ({\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/loop/loopCreate.js\n\n\nfunction loopCreate() {\n var swiper = this;\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n var $selector = $wrapperEl.children().length > 0 ? dom($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass)).remove();\n var slides = $selector.children(\".\".concat(params.slideClass));\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = dom(document.createElement('div')).addClass(\"\".concat(params.slideClass, \" \").concat(params.slideBlankClass));\n $selector.append(blankNode);\n }\n\n slides = $selector.children(\".\".concat(params.slideClass));\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = dom(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $selector.append(dom(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $selector.prepend(dom(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/loop/loopFix.js\nfunction loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/loop/loopDestroy.js\nfunction loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \",.\").concat(params.slideClass, \".\").concat(params.slideBlankClass)).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/loop/index.js\n\n\n\n/* harmony default export */ var loop = ({\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/grab-cursor/setGrabCursor.js\nfunction setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js\nfunction unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/grab-cursor/index.js\n\n\n/* harmony default export */ var grab_cursor = ({\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/events/onTouchStart.js\n\n\n // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === (0,ssr_window_esm/* getDocument */.Me)() || el === (0,ssr_window_esm/* getWindow */.Jj)()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nfunction onTouchStart(event) {\n var swiper = this;\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = dom(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = dom(event.path[0]);\n }\n\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\".concat(params.noSwipingClass);\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\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 = utils_now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && dom(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/events/onTouchMove.js\n\n\n\nfunction onTouchMove(event) {\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!dom(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = utils_now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && 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\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && dom(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\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\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\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\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/events/onTouchEnd.js\n\nfunction onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n slidesGrid = swiper.slidesGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = utils_now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n var pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = utils_now();\n utils_nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\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\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos: currentPos\n });\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\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\n var rewindFirstIndex = null;\n var rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\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\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\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\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;// CONCATENATED MODULE: ./node_modules/swiper/core/events/onResize.js\nfunction onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 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 swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/events/onClick.js\nfunction onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/events/onScroll.js\nfunction onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/events/index.js\n\n\n\n\n\n\n\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nvar events = function events(swiper, method) {\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested;\n var domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n var swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\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\nfunction attachEvents() {\n var swiper = this;\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var params = swiper.params,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n var swiper = this;\n events(swiper, 'off');\n}\n\n/* harmony default export */ var core_events = ({\n attachEvents: attachEvents,\n detachEvents: detachEvents\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/breakpoints/setBreakpoint.js\n\n\nvar isGridEnabled = function isGridEnabled(swiper, params) {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nfunction setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = isGridEnabled(swiper, params);\n var isMultiRow = isGridEnabled(swiper, breakpointParams);\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(\"\".concat(params.containerModifierClass, \"grid \").concat(params.containerModifierClass, \"grid-column\"));\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(\"\".concat(params.containerModifierClass, \"grid\"));\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(\"\".concat(params.containerModifierClass, \"grid-column\"));\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(function (prop) {\n var wasModuleEnabled = params[prop] && params[prop].enabled;\n var isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/breakpoints/getBreakpoint.js\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \".concat(value, \"px)\")).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/breakpoints/index.js\n\n\n/* harmony default export */ var breakpoints = ({\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/classes/addClasses.js\n\n\nfunction prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (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}\n\nfunction addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\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.apply(classNames, (0,toConsumableArray/* default */.Z)(suffixes));\n $el.addClass((0,toConsumableArray/* default */.Z)(classNames).join(' '));\n swiper.emitContainerClasses();\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/classes/removeClasses.js\nfunction removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/classes/index.js\n\n\n/* harmony default export */ var classes = ({\n addClasses: addClasses,\n removeClasses: removeClasses\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/images/loadImage.js\n\n\nfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = (0,ssr_window_esm/* getWindow */.Jj)();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = dom(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/images/preloadImages.js\nfunction preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/images/index.js\n\n\n/* harmony default export */ var core_images = ({\n loadImage: loadImage,\n preloadImages: preloadImages\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/check-overflow/index.js\nfunction checkOverflow() {\n var swiper = this;\n var wasLocked = swiper.isLocked,\n params = swiper.params;\n var slidesOffsetBefore = params.slidesOffsetBefore;\n\n if (slidesOffsetBefore) {\n var lastSlideIndex = swiper.slides.length - 1;\n var 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\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\n/* harmony default export */ var check_overflow = ({\n checkOverflow: checkOverflow\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/defaults.js\n/* harmony default export */ var defaults = ({\n init: true,\n direction: 'horizontal',\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 // 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: 0,\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 // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n});\n;// CONCATENATED MODULE: ./node_modules/swiper/core/moduleExtendParams.js\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var moduleParamName = Object.keys(obj)[0];\n var moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/core/core.js\n\n\n\n\n/* eslint no-param-reassign: \"off\" */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar prototypes = {\n eventsEmitter: events_emitter,\n update: update,\n translate: translate,\n transition: core_transition,\n slide: slide,\n loop: loop,\n grabCursor: grab_cursor,\n events: core_events,\n breakpoints: breakpoints,\n checkOverflow: check_overflow,\n classes: classes,\n images: core_images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n (0,classCallCheck/* default */.Z)(this, Swiper);\n\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\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 = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && dom(params.el).length > 1) {\n var swipers = [];\n dom(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var 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 = (0,toConsumableArray/* default */.Z)(swiper.__modules__);\n\n if (params.modules && Array.isArray(params.modules)) {\n var _swiper$modules;\n\n (_swiper$modules = swiper.modules).push.apply(_swiper$modules, (0,toConsumableArray/* default */.Z)(params.modules));\n }\n\n var allModulesParams = {};\n swiper.modules.forEach(function (mod) {\n mod({\n swiper: 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 }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = dom; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: dom(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function 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 // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\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: utils_now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\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'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n (0,createClass/* default */.Z)(Swiper, [{\n key: \"enable\",\n value: function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n }, {\n key: \"disable\",\n value: function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n }, {\n key: \"setProgress\",\n value: function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }, {\n key: \"emitContainerClasses\",\n value: function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var cls = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n }, {\n key: \"getSlideClasses\",\n value: function getSlideClasses(slideEl) {\n var swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n }, {\n key: \"emitSlidesClasses\",\n value: function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n }, {\n key: \"slidesPerViewDynamic\",\n value: function slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n\n if (exact === void 0) {\n exact = false;\n }\n\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n slidesSizesGrid = swiper.slidesSizesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var 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\n for (var _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 (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n var slideInView = exact ? slidesGrid[_i2] + slidesSizesGrid[_i2] - slidesGrid[activeIndex] < swiperSize : slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (var _i3 = activeIndex - 1; _i3 >= 0; _i3 -= 1) {\n var _slideInView = slidesGrid[activeIndex] - slidesGrid[_i3] < swiperSize;\n\n if (_slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n }, {\n key: \"update\",\n value: function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n }, {\n key: \"changeDirection\",\n value: function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\".concat(swiper.params.containerModifierClass).concat(currentDirection)).addClass(\"\".concat(swiper.params.containerModifierClass).concat(newDirection));\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (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 }, {\n key: \"mount\",\n value: function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = dom(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\".concat((swiper.params.wrapperClass || '').trim().split(' ').join('.'));\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = dom(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n if (!$el.children) {\n return dom($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var wrapper = document.createElement('div');\n $wrapperEl = dom(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\".concat(swiper.params.slideClass)).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n }, {\n key: \"init\",\n value: function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n }, {\n key: \"destroy\",\n value: function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n }], [{\n key: \"extendDefaults\",\n value: function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n }, {\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }, {\n key: \"installModule\",\n value: function installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n var modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n/* harmony default export */ var core = (Swiper);\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/virtual/virtual.js\n\n\nfunction Virtual(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n var cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n var params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
\").concat(slide, \"
\"));\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n }\n\n function update(force) {\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n previousOffset = _swiper$virtual.offset;\n\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n emit('virtualUpdate');\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, \"\".concat(offset, \"px\"));\n }\n\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n\n return;\n }\n\n var prependIndexes = [];\n var appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(\".\".concat(swiper.params.slideClass)).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\".concat(swiper.params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(i, \"\\\"]\")).remove();\n }\n }\n }\n\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (_i >= from && _i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i);\n } else {\n if (_i > previousTo) appendIndexes.push(_i);\n if (_i < previousFrom) prependIndexes.push(_i);\n }\n }\n }\n\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, \"\".concat(offset, \"px\"));\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n update(true);\n }\n\n function prependSlide(slides) {\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', function () {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"virtual\"));\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', function () {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(function () {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', function () {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', \"\".concat(swiper.virtualSize, \"px\"));\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides,\n update: update\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/keyboard/keyboard.js\n/* eslint-disable consistent-return */\n\n\nfunction Keyboard(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var document = getDocument();\n var 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\n function handle(event) {\n if (!swiper.enabled) return;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\".concat(swiper.params.slideClass)).length > 0 && swiper.$el.parents(\".\".concat(swiper.params.slideActiveClass)).length === 0) {\n return undefined;\n }\n\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\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\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\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\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', function () {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', function () {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable: enable,\n disable: disable\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/mousewheel/mousewheel.js\n/* eslint-disable consistent-return */\n\n\n\nfunction Mousewheel(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n var timeout;\n var lastScrollTime = now();\n var lastEventBeforeSnap;\n var recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n }\n\n function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n if (!swiper.enabled) return;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var _prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = _newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n lastEventBeforeSnap = _newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n\n function events(method) {\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', function () {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', function () {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable: enable,\n disable: disable\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/shared/create-element-if-not-defined.js\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = swiper.$el.children(\".\".concat(checkProps[key]))[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/navigation/navigation.js\n\n\nfunction Navigation(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n var $el;\n\n if (el) {\n $el = dom(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n var params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\n\n function init() {\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl = getEl(params.nextEl);\n var $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', function () {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', function () {\n update();\n });\n on('destroy', function () {\n destroy();\n });\n on('enable disable', function () {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', function (_s, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !dom(targetEl).is($prevEl) && !dom(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n var enable = function enable() {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n var disable = function disable() {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable: enable,\n disable: disable,\n update: update,\n init: init,\n destroy: destroy\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/shared/classes-to-selector.js\nfunction classes_to_selector_classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\".concat(classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.'));\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/pagination/pagination.js\n\n\n\nfunction Pagination(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var 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: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: \"\".concat(pfx, \"-bullet\"),\n bulletActiveClass: \"\".concat(pfx, \"-bullet-active\"),\n modifierClass: \"\".concat(pfx, \"-\"),\n currentClass: \"\".concat(pfx, \"-current\"),\n totalClass: \"\".concat(pfx, \"-total\"),\n hiddenClass: \"\".concat(pfx, \"-hidden\"),\n progressbarFillClass: \"\".concat(pfx, \"-progressbar-fill\"),\n progressbarOppositeClass: \"\".concat(pfx, \"-progressbar-opposite\"),\n clickableClass: \"\".concat(pfx, \"-clickable\"),\n lockClass: \"\".concat(pfx, \"-lock\"),\n horizontalClass: \"\".concat(pfx, \"-horizontal\"),\n verticalClass: \"\".concat(pfx, \"-vertical\"),\n paginationDisabledClass: \"\".concat(pfx, \"-disabled\")\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n var bulletSize;\n var dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n var bulletActiveClass = swiper.params.pagination.bulletActiveClass;\n $bulletEl[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position))[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position, \"-\").concat(position));\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', \"\".concat(bulletSize * (params.dynamicMainBullets + 4), \"px\"));\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\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\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(function (suffix) {\n return \"\".concat(params.bulletActiveClass).concat(suffix);\n }).join(' '));\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = dom(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(\"\".concat(params.bulletActiveClass, \"-prev\"));\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', \"\".concat(bulletsOffset, \"px\"));\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classes_to_selector_classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classes_to_selector_classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classes_to_selector_classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\".concat(scaleX, \") scaleY(\").concat(scaleY, \")\")).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\".concat(params.bulletElement, \" class=\\\"\").concat(params.bulletClass, \"\\\">\");\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classes_to_selector_classesToSelector(params.bulletClass));\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 $el.html(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 $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = dom(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(function (el) {\n if (dom(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\".concat(params.modifierClass).concat(params.type, \"-dynamic\"));\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classes_to_selector_classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = dom(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classes_to_selector_classesToSelector(params.bulletClass));\n }\n }\n\n on('init', function () {\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', function () {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', function () {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', function () {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', function () {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', function () {\n destroy();\n });\n on('enable disable', function () {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', function () {\n update();\n });\n on('click', function (_s, e) {\n var targetEl = e.target;\n var $el = swiper.pagination.$el;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !dom(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n var enable = function enable() {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n var disable = function disable() {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable: enable,\n disable: disable,\n render: render,\n update: update,\n init: init,\n destroy: destroy\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/scrollbar/scrollbar.js\n\n\n\n\nfunction Scrollbar(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var document = (0,ssr_window_esm/* getDocument */.Me)();\n var isTouched = false;\n var timeout = null;\n var dragTimeout = null;\n var dragStartPos;\n var dragSize;\n var trackSize;\n var divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled'\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\".concat(newPos, \"px, 0, 0)\"));\n $dragEl[0].style.width = \"\".concat(newSize, \"px\");\n } else {\n $dragEl.transform(\"translate3d(0px, \".concat(newPos, \"px, 0)\"));\n $dragEl[0].style.height = \"\".concat(newSize, \"px\");\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = \"\".concat(dragSize, \"px\");\n } else {\n $dragEl[0].style.height = \"\".concat(dragSize, \"px\");\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el;\n var positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = utils_nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n if (!$el) return;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n var eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n var params = swiper.params.scrollbar;\n if (!params.el) return;\n var $el = dom(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\".concat(swiper.params.scrollbar.dragClass));\n\n if ($dragEl.length === 0) {\n $dragEl = dom(\"
\"));\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n disableDraggable();\n }\n\n on('init', function () {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', function () {\n updateSize();\n });\n on('setTranslate', function () {\n setTranslate();\n });\n on('setTransition', function (_s, duration) {\n setTransition(duration);\n });\n on('enable disable', function () {\n var $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', function () {\n destroy();\n });\n\n var enable = function enable() {\n swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n init();\n updateSize();\n setTranslate();\n };\n\n var disable = function disable() {\n swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.scrollbar, {\n enable: enable,\n disable: disable,\n updateSize: updateSize,\n setTranslate: setTranslate,\n init: init,\n destroy: destroy\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/parallax/parallax.js\n\nfunction Parallax(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n var setTransform = function setTransform(el, progress) {\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = \"\".concat(parseInt(x, 10) * progress * rtlFactor, \"%\");\n } else {\n x = \"\".concat(x * progress * rtlFactor, \"px\");\n }\n\n if (y.indexOf('%') >= 0) {\n y = \"\".concat(parseInt(y, 10) * progress, \"%\");\n } else {\n y = \"\".concat(y * progress, \"px\");\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\".concat(x, \", \").concat(y, \", 0px)\"));\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\".concat(x, \", \").concat(y, \", 0px) scale(\").concat(currentScale, \")\"));\n }\n };\n\n var setTranslate = function setTranslate() {\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n setTransform(el, progress);\n });\n slides.each(function (slideEl, slideIndex) {\n var slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n setTransform(el, slideProgress);\n });\n });\n };\n\n var setTransition = function setTransition(duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', function () {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', function () {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', function () {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', function (_swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/zoom/zoom.js\n\n\n\nfunction Zoom(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n var currentScale = 1;\n var isScaling = false;\n var gesturesEnabled;\n var fakeGestureTouched;\n var fakeGestureMoved;\n var gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n var image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n var velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n var slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n var support = swiper.support;\n var params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\".concat(swiper.params.slideClass));\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n isScaling = true;\n }\n\n function onGestureChange(e) {\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n }\n\n function onGestureEnd(e) {\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n var device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n }\n\n function onTouchMove(e) {\n var zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\".concat(image.currentX, \"px, \").concat(image.currentY, \"px,0)\"));\n }\n\n function onTouchEnd() {\n var zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\".concat(image.currentX, \"px, \").concat(image.currentY, \"px,0)\"));\n }\n\n function onTransitionEnd() {\n var zoom = swiper.zoom;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(\".\".concat(swiper.params.slideClass));\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideActiveClass));\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(\"\".concat(params.zoomedSlideClass));\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px,0)\"));\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n }\n\n function zoomOut() {\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideActiveClass));\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\".concat(params.zoomedSlideClass));\n gesture.$slideEl = undefined;\n } // Toggle Zoom\n\n\n function zoomToggle(e) {\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n var support = swiper.support;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener: passiveListener,\n activeListenerWithCapture: activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return \".\".concat(swiper.params.slideClass);\n }\n\n function toggleGestures(method) {\n var _getListeners = getListeners(),\n passiveListener = _getListeners.passiveListener;\n\n var slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var support = swiper.support;\n\n var _getListeners2 = getListeners(),\n passiveListener = _getListeners2.passiveListener,\n activeListenerWithCapture = _getListeners2.activeListenerWithCapture;\n\n var slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\".concat(swiper.params.zoom.containerClass), onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n zoom.enabled = false;\n\n var _getListeners3 = getListeners(),\n passiveListener = _getListeners3.passiveListener,\n activeListenerWithCapture = _getListeners3.activeListenerWithCapture;\n\n var slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\".concat(swiper.params.zoom.containerClass), onTouchMove, activeListenerWithCapture);\n }\n\n on('init', function () {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', function () {\n disable();\n });\n on('touchStart', function (_s, e) {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', function (_s, e) {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', function (_s, e) {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', function () {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', function () {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable: enable,\n disable: disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/lazy/lazy.js\n\n\nfunction Lazy(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n var scrollHandlerAttached = false;\n var initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\".concat(swiper.params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(index, \"\\\"]\")) : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\".concat(params.elementClass, \":not(.\").concat(params.loadedClass, \"):not(.\").concat(params.loadingClass, \")\"));\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\".concat(background, \"\\\")\"));\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\".concat(params.preloaderClass)).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\".concat(slideOriginalIndex, \"\\\"]:not(.\").concat(swiper.params.slideDuplicateClass, \")\"));\n loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(slideOriginalIndex, \"\\\"]\"));\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\".concat(swiperParams.slideClass, \"[data-swiper-slide-index=\\\"\").concat(index, \"\\\"]\")).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(\".\".concat(swiperParams.slideVisibleClass)).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = Math.ceil(slidesPerView);\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i = activeIndex + spv; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) loadInSlide(_i);\n } // Prev Slides\n\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\".concat(swiperParams.slideNextClass));\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\".concat(swiperParams.slidePrevClass));\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n var window = getWindow();\n if (!swiper || swiper.destroyed) return;\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n var isWindow = $scrollElement[0] === window;\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n var swiperOffset = swiper.$el.offset();\n var rtl = swiper.rtlTranslate;\n var inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', function () {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', function () {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', function () {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', function () {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', function () {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', function () {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', function () {\n var _swiper$params = swiper.params,\n lazy = _swiper$params.lazy,\n cssMode = _swiper$params.cssMode,\n watchSlidesProgress = _swiper$params.watchSlidesProgress,\n touchReleaseOnEdges = _swiper$params.touchReleaseOnEdges,\n resistanceRatio = _swiper$params.resistanceRatio;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n on('destroy', function () {\n if (!swiper.$el) return;\n swiper.$el.find(\".\".concat(swiper.params.lazy.loadingClass)).removeClass(swiper.params.lazy.loadingClass);\n });\n Object.assign(swiper.lazy, {\n load: load,\n loadInSlide: loadInSlide\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/controller/controller.js\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nfunction Controller(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', function () {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', function () {\n removeSpline();\n });\n on('resize', function () {\n removeSpline();\n });\n on('observerUpdate', function () {\n removeSpline();\n });\n on('setTranslate', function (_s, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', function (_s, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate: setTranslate,\n setTransition: setTransition\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/a11y/a11y.js\n\n\nfunction A11y(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n var liveRegion = null;\n\n function notify(message) {\n var notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var params = swiper.params.a11y;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n var params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n\n if ($bulletEl.is(\".\".concat(swiper.params.pagination.bulletActiveClass))) {\n $bulletEl.attr('aria-current', 'true');\n } else {\n $bulletEl.removeAttr('aria-current');\n }\n });\n }\n\n var initNavEl = function initNavEl($el, wrapperId, message) {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n var handleFocus = function handleFocus(e) {\n var slideEl = e.target.closest(\".\".concat(swiper.params.slideClass));\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n var isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n var isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n\n var initSlides = function initSlides() {\n var params = swiper.params.a11y;\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) {\n return !el.classList.contains(swiper.params.slideDuplicateClass);\n }).length : swiper.slides.length;\n swiper.slides.each(function (slideEl, index) {\n var $slideEl = $(slideEl);\n var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n });\n };\n\n var init = function init() {\n var params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = params.id || $wrapperEl.attr('id') || \"swiper-wrapper-\".concat(getRandomNumber(16));\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n initSlides(); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.on('focus', handleFocus, true);\n };\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.off('focus', handleFocus, true);\n }\n\n on('beforeInit', function () {\n liveRegion = $(\"\"));\n });\n on('afterInit', function () {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', function () {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', function () {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', function () {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', function () {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/history/history.js\n\nfunction History(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n var initialized = false;\n var paths = {};\n\n var slugify = function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n var getPathValues = function getPathValues(urlOverride) {\n var window = getWindow();\n var location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n };\n\n var setHistory = function setHistory(key, index) {\n var window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n var location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n var slide = swiper.slides.eq(index);\n var value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n var root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = \"\".concat(root, \"/\").concat(key, \"/\").concat(value);\n } else if (!location.pathname.includes(key)) {\n value = \"\".concat(key, \"/\").concat(value);\n }\n\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n\n var currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n };\n\n var scrollToSlide = function scrollToSlide(speed, value, runCallbacks) {\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n var setHistoryPopState = function setHistoryPopState() {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n\n var init = function init() {\n var window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n var destroy = function destroy() {\n var window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', function () {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', function () {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', function () {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', function () {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/hash-navigation/hash-navigation.js\n\n\nfunction HashNavigation(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n emit = _ref.emit,\n on = _ref.on;\n var initialized = false;\n var document = getDocument();\n var window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n var onHashChange = function onHashChange() {\n emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideClass, \"[data-hash=\\\"\").concat(newHash, \"\\\"]\")).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n var setHash = function setHash() {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\".concat(swiper.slides.eq(swiper.activeIndex).attr('data-hash')) || 0);\n emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n var init = function init() {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', onHashChange);\n }\n };\n\n var destroy = function destroy() {\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', function () {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', function () {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', function () {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', function () {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/autoplay/autoplay.js\n/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\n\n\nfunction Autoplay(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on,\n emit = _ref.emit;\n var timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', function () {\n if (swiper.params.autoplay.enabled) {\n start();\n var document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', function (_s, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', function () {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', function () {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', function () {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause: pause,\n run: run,\n start: start,\n stop: stop\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/thumbs/thumbs.js\n\n\nfunction Thumb(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n var initialized = false;\n var swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\".concat(slideToIndex, \"\\\"]\")).eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\".concat(slideToIndex, \"\\\"]\")).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n var thumbsParams = swiper.params.thumbs;\n if (initialized) return false;\n initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n var thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex, \"\\\"]\")).eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex, \"\\\"]\")).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex + i, \"\\\"]\")).addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n\n on('beforeInit', function () {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', function () {\n update();\n });\n on('setTransition', function (_s, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', function () {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init: init,\n update: update\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/free-mode/free-mode.js\n\nfunction freeMode(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n emit = _ref.emit,\n once = _ref.once;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchStart() {\n var translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n\n function onTouchMove() {\n var data = swiper.touchEventsData,\n touches = swiper.touches; // Velocity\n\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n\n function onTouchEnd(_ref2) {\n var currentPos = _ref2.currentPos;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n rtl = swiper.rtlTranslate,\n snapGrid = swiper.snapGrid,\n data = swiper.touchEventsData; // Time diff\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime;\n\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeMode.momentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd\n }\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/grid/grid.js\n\nfunction Grid(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n var slidesNumberEvenToRows;\n var slidesPerRow;\n var numFullColumns;\n\n var initSlides = function initSlides(slidesLength) {\n var slidesPerView = swiper.params.slidesPerView;\n var _swiper$params$grid = swiper.params.grid,\n rows = _swiper$params$grid.rows,\n fill = _swiper$params$grid.fill;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n var updateSlide = function updateSlide(i, slide, slidesLength, getDirectionLabel) {\n var _swiper$params = swiper.params,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n spaceBetween = _swiper$params.spaceBetween;\n var _swiper$params$grid2 = swiper.params.grid,\n rows = _swiper$params$grid2.rows,\n fill = _swiper$params$grid2.fill; // Set slides order\n\n var newSlideOrderIndex;\n var column;\n var row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (slidesPerGroup * rows));\n var slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && \"\".concat(spaceBetween, \"px\") : '');\n };\n\n var updateWrapperSize = function updateWrapperSize(slideSize, snapGrid, getDirectionLabel) {\n var _swiper$params2 = swiper.params,\n spaceBetween = _swiper$params2.spaceBetween,\n centeredSlides = _swiper$params2.centeredSlides,\n roundLengths = _swiper$params2.roundLengths;\n var rows = swiper.params.grid.rows;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css((0,defineProperty/* default */.Z)({}, getDirectionLabel('width'), \"\".concat(swiper.virtualSize + spaceBetween, \"px\")));\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n var newSlidesGrid = [];\n\n for (var i = 0; i < snapGrid.length; i += 1) {\n var slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push.apply(snapGrid, newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides: initSlides,\n updateSlide: updateSlide,\n updateWrapperSize: updateWrapperSize\n };\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-cube/effect-cube.js\n\n\nfunction EffectCube(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n var createSlideShadows = function createSlideShadows($slideEl, progress, isHorizontal) {\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\"));\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\"));\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n };\n\n var recreateShadows = function recreateShadows() {\n // create new ones\n var isHorizontal = swiper.isHorizontal();\n swiper.slides.each(function (slideEl) {\n var progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows($(slideEl), progress, isHorizontal);\n });\n };\n\n var setTranslate = function setTranslate() {\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size,\n browser = swiper.browser;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: \"\".concat(swiperWidth, \"px\")\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\".concat(isHorizontal ? 0 : -slideAngle, \"deg) rotateY(\").concat(isHorizontal ? slideAngle : 0, \"deg) translate3d(\").concat(tx, \"px, \").concat(ty, \"px, \").concat(tz, \"px)\");\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n createSlideShadows($slideEl, progress, isHorizontal);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\"),\n 'transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\")\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \".concat(swiperWidth / 2 + params.shadowOffset, \"px, \").concat(-swiperWidth / 2, \"px) rotateX(90deg) rotateZ(0deg) scale(\").concat(params.shadowScale, \")\"));\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\".concat(scale1, \", 1, \").concat(scale2, \") translate3d(0px, \").concat(swiperHeight / 2 + offset, \"px, \").concat(-swiperHeight / 2 / scale2, \"px) rotateX(-90deg)\"));\n }\n }\n\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\".concat(zFactor, \"px) rotateX(\").concat(swiper.isHorizontal() ? 0 : wrapperRotate, \"deg) rotateY(\").concat(swiper.isHorizontal() ? -wrapperRotate : 0, \"deg)\"));\n $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', \"\".concat(zFactor, \"px\"));\n };\n\n var setTransition = function setTransition(duration) {\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n };\n\n effectInit({\n effect: 'cube',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n recreateShadows: recreateShadows,\n getEffectParams: function getEffectParams() {\n return swiper.params.cubeEffect;\n },\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n }\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/shared/create-shadow.js\n\nfunction create_shadow_createShadow(params, $slideEl, side) {\n var shadowClass = \"swiper-slide-shadow\".concat(side ? \"-\".concat(side) : '');\n var $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n var $shadowEl = $shadowContainer.children(\".\".concat(shadowClass));\n\n if (!$shadowEl.length) {\n $shadowEl = $(\"
\"));\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-flip/effect-flip.js\n\n\n\n\n\nfunction EffectFlip(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n var createSlideShadows = function createSlideShadows($slideEl, progress, params) {\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n };\n\n var recreateShadows = function recreateShadows() {\n // Set shadows\n var params = swiper.params.flipEffect;\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n\n createSlideShadows($slideEl, progress, params);\n });\n };\n\n var setTranslate = function setTranslate() {\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n var params = swiper.params.flipEffect;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n createSlideShadows($slideEl, progress, params);\n }\n\n var transform = \"translate3d(\".concat(tx, \"px, \").concat(ty, \"px, 0px) rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg)\");\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.flipEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper: swiper,\n duration: duration,\n transformEl: transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n recreateShadows: recreateShadows,\n getEffectParams: function getEffectParams() {\n return swiper.params.flipEffect;\n },\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n };\n }\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js\n\n\n\nfunction EffectCoverflow(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n var setTranslate = function setTranslate() {\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n var offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\".concat(translateX, \"px,\").concat(translateY, \"px,\").concat(translateZ, \"px) rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg) scale(\").concat(scale, \")\");\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.coverflowEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n watchSlidesProgress: true\n };\n }\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-creative/effect-creative.js\n\n\n\n\nfunction EffectCreative(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n var getTranslateValue = function getTranslateValue(value) {\n if (typeof value === 'string') return value;\n return \"\".concat(value, \"px\");\n };\n\n var setTranslate = function setTranslate() {\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.creativeEffect;\n var multiplier = params.progressMultiplier;\n var isCenteredSlides = swiper.params.centeredSlides;\n\n if (isCenteredSlides) {\n var margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n $wrapperEl.transform(\"translateX(calc(50% - \".concat(margin, \"px))\"));\n }\n\n var _loop = function _loop(i) {\n var $slideEl = slides.eq(i);\n var slideProgress = $slideEl[0].progress;\n var progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n var originalProgress = progress;\n\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n }\n\n var offset = $slideEl[0].swiperSlideOffset;\n var t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n var r = [0, 0, 0];\n var custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n var data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach(function (value, index) {\n t[index] = \"calc(\".concat(value, \"px + (\").concat(getTranslateValue(data.translate[index]), \" * \").concat(Math.abs(progress * multiplier), \"))\");\n }); // set rotates\n\n r.forEach(function (value, index) {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n var translateString = t.join(', ');\n var rotateString = \"rotateX(\".concat(r[0], \"deg) rotateY(\").concat(r[1], \"deg) rotateZ(\").concat(r[2], \"deg)\");\n var scaleString = originalProgress < 0 ? \"scale(\".concat(1 + (1 - data.scale) * originalProgress * multiplier, \")\") : \"scale(\".concat(1 - (1 - data.scale) * originalProgress * multiplier, \")\");\n var opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n var transform = \"translate3d(\".concat(translateString, \") \").concat(rotateString, \" \").concat(scaleString); // Set shadows\n\n if (custom && data.shadow || !custom) {\n var $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n var shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n };\n\n for (var i = 0; i < slides.length; i += 1) {\n _loop(i);\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.creativeEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper: swiper,\n duration: duration,\n transformEl: transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'creative',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return swiper.params.creativeEffect.perspective;\n },\n overwriteParams: function overwriteParams() {\n return {\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n };\n }\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/modules/effect-cards/effect-cards.js\n\n\n\n\nfunction EffectCards(_ref) {\n var swiper = _ref.swiper,\n extendParams = _ref.extendParams,\n on = _ref.on;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null,\n rotate: true\n }\n });\n\n var setTranslate = function setTranslate() {\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var params = swiper.params.cardsEffect;\n var _swiper$touchEventsDa = swiper.touchEventsData,\n startTranslate = _swiper$touchEventsDa.startTranslate,\n isTouched = _swiper$touchEventsDa.isTouched;\n var currentTranslate = swiper.translate;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideProgress = $slideEl[0].progress;\n var progress = Math.min(Math.max(slideProgress, -4), 4);\n var offset = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(\"translateX(\".concat(swiper.minTranslate(), \"px)\"));\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n\n var tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n var tY = 0;\n var tZ = -100 * Math.abs(progress);\n var scale = 1;\n var rotate = -2 * progress;\n var tXAdd = 8 - Math.abs(progress) * 0.75;\n var slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n var isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n var isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n var subProgress = Math.pow(1 - Math.abs((Math.abs(progress) - 0.5) / 0.5), 0.5);\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = \"\".concat(-25 * subProgress * Math.abs(progress), \"%\");\n }\n\n if (progress < 0) {\n // next\n tX = \"calc(\".concat(tX, \"px + (\").concat(tXAdd * Math.abs(progress), \"%))\");\n } else if (progress > 0) {\n // prev\n tX = \"calc(\".concat(tX, \"px + (-\").concat(tXAdd * Math.abs(progress), \"%))\");\n } else {\n tX = \"\".concat(tX, \"px\");\n }\n\n if (!swiper.isHorizontal()) {\n var prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n var scaleString = progress < 0 ? \"\".concat(1 + (1 - scale) * progress) : \"\".concat(1 - (1 - scale) * progress);\n var transform = \"\\n translate3d(\".concat(tX, \", \").concat(tY, \", \").concat(tZ, \"px)\\n rotateZ(\").concat(params.rotate ? rotate : 0, \"deg)\\n scale(\").concat(scaleString, \")\\n \");\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.cardsEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper: swiper,\n duration: duration,\n transformEl: transformEl\n });\n };\n\n effectInit({\n effect: 'cards',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n };\n }\n });\n}\n;// CONCATENATED MODULE: ./node_modules/swiper/swiper.esm.js\n/**\n * Swiper 8.2.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 1, 2022\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ 11972:\n/***/ (function() {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ 21669:\n/***/ (function() {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ 36797:\n/***/ (function() {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ 91712:\n/***/ (function() {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ 21082:\n/***/ (function() {\n\n// extracted by mini-css-extract-plugin\n\n/***/ })\n\n}]);"],"names":["self","push","__unused_webpack_module","__webpack_exports__","__webpack_require__","d","Swiper","SwiperSlide","objectWithoutProperties","react","swiper_esm","isObject","o","constructor","Object","prototype","toString","call","slice","extend","target","src","noExtend","keys","filter","key","indexOf","forEach","length","__swiper__","needsNavigation","params","navigation","nextEl","prevEl","needsPagination","pagination","el","needsScrollbar","scrollbar","uniqueClasses","classNames","classes","split","map","c","trim","unique","join","paramsList","toConsumableArray","calcLoopedSlides","slides","swiperParams","slidesPerViewParams","slidesPerView","breakpoints","breakpoint","ZP","getBreakpoint","breakpointOnlyParams","undefined","loopedSlides","Math","ceil","parseFloat","loopAdditionalSlides","processChildren","Children","toArray","child","type","displayName","props","children","slide","defineProperty","useIsomorphicLayoutEffect","callback","deps","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","_excluded","_extends","assign","i","arguments","source","hasOwnProperty","apply","forwardRef","_temp","externalElRef","obj","events","passedParams","rest","allowedParams","slots","_ref","className","_ref$tag","tag","_ref$wrapperTag","wrapperTag","onSwiper","Z","eventsAssigned","_useState","useState","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","_useState3","breakpointChanged","setBreakpointChanged","initializedRef","useRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","on","defaults","extendedDefaults","_emitClasses","init","replace","search","concat","toLowerCase","substr","restProps","_getChildren","slot","foundSlides","onBeforeBreakpoint","_containerClasses","swiper","initSwiper","current","loopCreate","loopDestroy","loop","virtual","enabled","extendWith","cache","renderExternal","renderExternalUpdate","originalParams","attachEvents","eventName","detachEvents","off","useEffect","emitSlidesClasses","paginationEl","scrollbarEl","destroyed","destroy","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","changedParams","updateParams","currentParams","thumbs","destroyModule","getChangedParams","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","watchParams","newKeys","oldKeys","newKey","oldKey","includes","controller","control","mod","newValue","update","lazy","load","initialized","render","updateSize","setTranslate","allowSlideNext","allowSlidePrev","changeDirection","direction","updateSlides","updateProgress","updateSlidesClasses","parallax","createElement","ref","Provider","value","renderVirtual","style","isHorizontal","rtlTranslate","offset","top","index","from","to","cloneElement","renderLoop","modifiedSlides","duplicateSlide","position","slideDuplicateClass","loopFillGroupWithBlank","blankSlidesNum","slidesPerGroup","blankSlide","slideClass","slideBlankClass","prependSlides","appendSlides","Fragment","swiper_slide_excluded","swiper_slide_extends","externalRef","_ref$className","zoom","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","_s","getSlideClasses","slideData","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","Grid","Navigation","Pagination","Scrollbar","core","support","deviceCached","browser","classCallCheck","createClass","ssr_window_esm","assertThisInitialized","inherits","possibleConstructorReturn","getPrototypeOf","setPrototypeOf","_construct","Parent","args","Class","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","a","instance","Function","bind","_wrapNativeSuper","_cache","Map","fn","TypeError","has","get","set","Wrapper","create","enumerable","writable","configurable","Dom7","_Array","Derived","hasNativeReflectConstruct","_super","dom7_esm_isNativeReflectConstruct","result","Super","NewTarget","items","_this","proto","__proto__","Array","arrayFlat","arr","res","isArray","arrayFilter","dom7_esm_$","selector","context","window","Jj","document","Me","_html","toCreate","tempParent","innerHTML","childNodes","qsa","querySelectorAll","nodeType","arrayUnique","uniqueArray","noTrigger","shortcut","name","_len14","_key14","trigger","Methods","addClass","_len","_key","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","setAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","j","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","_event","dom7LiveListeners","proxyListener","addEventListener","event","dom7Listeners","_len6","_key6","handlers","handler","removeEventListener","splice","dom7proxy","_len9","_key9","CustomEvent","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","getPropertyValue","outerHeight","_styles2","offsetHeight","getComputedStyle","box","getBoundingClientRect","body","clientTop","clientLeft","_scrollTop","scrollY","scrollTop","_scrollLeft","scrollX","scrollLeft","left","css","_prop","each","html","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","methodName","utils_nextTick","delay","setTimeout","utils_now","Date","now","utils_isObject","isNode","node","HTMLElement","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","utils_setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","time","targetPosition","side","startPosition","translate","startTime","speed","wrapperEl","scrollSnapType","cancelAnimationFrame","cssModeFrameID","dir","isOutOfBound","animate","getTime","currentPosition","easeProgress","cos","progress","max","min","PI","scrollTo","overflow","requestAnimationFrame","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","transitionEmit","runCallbacks","step","activeIndex","previousIndex","emit","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","cssMode","loopFix","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","closestElement","base","__closestFrom","assignedSlot","getRootNode","host","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","focusableElements","nodeName","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","touchAngle","rtl","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","diffX","diffY","sqrt","pow","atan2","abs","touchMoveStopPropagation","nested","stopPropagation","startTranslate","getTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","updateActiveIndex","onTouchEnd","currentPos","slidesGrid","touchEndTime","timeDiff","pathTree","composedPath","updateClickedSlide","lastClickTime","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","_increment","rewindFirstIndex","rewindLastIndex","rewind","isBeginning","isEnd","ratio","increment","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","onResize","setBreakpoint","snapGrid","centeredSlides","autoplay","running","paused","run","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","method","touchEvents","device","domMethod","swiperMethod","start","passiveListeners","passive","move","end","cancel","updateOnWindowResize","ios","android","isGridEnabled","grid","rows","initialSlide","resizeObserver","createElements","width","height","userAgent","url","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopPreventsSlide","maxBackfaceHiddenSlides","containerModifierClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","prototypes","eventsEmitter","priority","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","$el","clientWidth","clientHeight","parseInt","Number","isNaN","size","slideSize","getDirectionLabel","property","getDirectionPropertyValue","label","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","_slide$","floor","swiperSlideSize","updateWrapperSize","newSlidesGrid","_i","slidesGridItem","_","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","nextSlide","prevSlide","newActiveIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","x","y","translateTo","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","onTranslateToWrapperTransitionEnd","transitionStart","initial","Error","indexAsNumber","isFinite","normalizedTranslate","normalizedGrid","normalizedGridNext","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerViewDynamic","_clientLeft","slidePrev","prevSnapIndex","normalize","val","normalizedSnapGrid","prevSnap","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","nextSnap","_currentSnap","slideToIndex","$selector","blankNode","cloneNode","_i2","snapTranslate","slideChanged","_slideChanged","moving","isLocked","cursor","unsetGrabCursor","_swiper$loopedSlides","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","prop","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","isEnabled","containerEl","currentHeight","innerHeight","points","point","sort","b","_points$i","matchMedia","wasLocked","lastSlideIndex","lastSlideRightEdge","addClasses","entries","prefix","resultClasses","suffixes","item","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","Image","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","_swiper$modules","swipers","newParams","getDevice","overrides","platform","ua","screenWidth","screenHeight","ipad","ipod","iphone","macos","navigator","screen","match","iPadScreens","os","getBrowser","isSafari","isWebView","test","modules","__modules__","allModulesParams","extendParams","moduleParamName","moduleParams","auto","desktop","$","velocity","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","view","exact","spv","breakLoop","slideInView","_i3","_slideInView","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","querySelector","options","wrapper","mount","deleteInstance","cleanStyles","object","newDefaults","module","m","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","createObserver","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","element","getEl","toggleEl","disabled","disabledClass","tagName","lockClass","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","navigationDisabledClass","_swiper$navigation3","isHidden","_swiper$navigation4","targetEl","clickable","classes_to_selector_classesToSelector","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","paginationHTML","numberOfBullets","dragStartPos","dragSize","trackSize","divider","timeout","dragTimeout","$dragEl","newSize","newPos","hide","clearTimeout","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","returnValue","onDragEnd","snapOnRelease","activeListener","eventMethod","$swiperEl","dragClass","dragEl","draggable","scrollbarDisabledClass","slidesNumberEvenToRows","slidesPerRow","numFullColumns","_swiper$params$grid","newSlideOrderIndex","column","row","_swiper$params","_swiper$params$grid2","groupIndex","slideIndexInGroup","columnsInGroup","order","_swiper$params2"],"sourceRoot":""}