{"version":3,"file":"static/js/794.df218fbb.chunk.js","mappings":"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","sources":["../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/swiper/components-shared/utils.js","../node_modules/swiper/components-shared/params-list.js","../node_modules/swiper/react/get-children.js","../node_modules/swiper/react/use-isomorphic-layout-effect.js","../node_modules/swiper/react/context.js","../node_modules/swiper/react/swiper.js","../node_modules/swiper/components-shared/get-params.js","../node_modules/swiper/components-shared/mount-swiper.js","../node_modules/swiper/components-shared/get-changed-params.js","../node_modules/swiper/components-shared/update-swiper.js","../node_modules/swiper/components-shared/update-on-virtual-data.js","../node_modules/swiper/react/virtual.js","../node_modules/swiper/react/swiper-slide.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/swiper/shared/get-support.js","../node_modules/swiper/shared/get-device.js","../node_modules/swiper/shared/utils.js","../node_modules/swiper/shared/get-browser.js","../node_modules/swiper/core/events-emitter.js","../node_modules/swiper/shared/process-lazy-preloader.js","../node_modules/swiper/core/update/index.js","../node_modules/swiper/core/update/updateSize.js","../node_modules/swiper/core/update/updateSlides.js","../node_modules/swiper/core/update/updateAutoHeight.js","../node_modules/swiper/core/update/updateSlidesOffset.js","../node_modules/swiper/core/update/updateSlidesProgress.js","../node_modules/swiper/core/update/updateProgress.js","../node_modules/swiper/core/update/updateSlidesClasses.js","../node_modules/swiper/core/update/updateActiveIndex.js","../node_modules/swiper/core/update/updateClickedSlide.js","../node_modules/swiper/core/translate/index.js","../node_modules/swiper/core/translate/getTranslate.js","../node_modules/swiper/core/translate/setTranslate.js","../node_modules/swiper/core/translate/minTranslate.js","../node_modules/swiper/core/translate/maxTranslate.js","../node_modules/swiper/core/translate/translateTo.js","../node_modules/swiper/core/transition/transitionEmit.js","../node_modules/swiper/core/transition/index.js","../node_modules/swiper/core/transition/setTransition.js","../node_modules/swiper/core/transition/transitionStart.js","../node_modules/swiper/core/transition/transitionEnd.js","../node_modules/swiper/core/slide/index.js","../node_modules/swiper/core/slide/slideTo.js","../node_modules/swiper/core/slide/slideToLoop.js","../node_modules/swiper/core/slide/slideNext.js","../node_modules/swiper/core/slide/slidePrev.js","../node_modules/swiper/core/slide/slideReset.js","../node_modules/swiper/core/slide/slideToClosest.js","../node_modules/swiper/core/slide/slideToClickedSlide.js","../node_modules/swiper/core/loop/index.js","../node_modules/swiper/core/loop/loopCreate.js","../node_modules/swiper/core/loop/loopFix.js","../node_modules/swiper/core/loop/loopDestroy.js","../node_modules/swiper/core/events/onTouchStart.js","../node_modules/swiper/core/events/onTouchMove.js","../node_modules/swiper/core/events/onTouchEnd.js","../node_modules/swiper/core/events/onResize.js","../node_modules/swiper/core/events/onClick.js","../node_modules/swiper/core/events/onScroll.js","../node_modules/swiper/core/events/onLoad.js","../node_modules/swiper/core/events/index.js","../node_modules/swiper/core/breakpoints/setBreakpoint.js","../node_modules/swiper/core/breakpoints/index.js","../node_modules/swiper/core/breakpoints/getBreakpoint.js","../node_modules/swiper/core/check-overflow/index.js","../node_modules/swiper/core/defaults.js","../node_modules/swiper/core/moduleExtendParams.js","../node_modules/swiper/core/core.js","../node_modules/swiper/core/grab-cursor/index.js","../node_modules/swiper/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/core/classes/index.js","../node_modules/swiper/core/classes/addClasses.js","../node_modules/swiper/core/classes/removeClasses.js","../node_modules/swiper/core/modules/resize/resize.js","../node_modules/swiper/core/modules/observer/observer.js","../node_modules/swiper/modules/navigation/navigation.js","../node_modules/swiper/shared/create-element-if-not-defined.js","../node_modules/swiper/modules/autoplay/autoplay.js","../node_modules/swiper/modules/thumbs/thumbs.js","../node_modules/swiper/modules/free-mode/free-mode.js"],"sourcesContent":["import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\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}\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames = '') {\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}\nfunction attrToProp(attrName = '') {\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className = '') {\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses, attrToProp, wrapperClass };","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', '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', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\nexport { paramsList };","import React from 'react';\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\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}\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 (isChildSwiperSlide(child)) {\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 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}\nexport { getChildren };","import { useEffect, useLayoutEffect } from 'react';\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\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 ? Object.assign.bind() : 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); }\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend, wrapperClass } from '../components-shared/utils.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.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 const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new SwiperCore(passParams);\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 if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\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 const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\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);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\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 return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\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: wrapperClass(swiperParams.wrapperClass)\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 };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\nfunction getParams(obj = {}, splitEvents = true) {\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 const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\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 if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\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}\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\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 if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\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 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}\nexport { getChangedParams };","import { isObject, extend } from './utils.js';\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\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 let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\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 if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\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 const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\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 if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n swiper.el.shadowEl.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n swiper.el.shadowEl.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n swiper.el.shadowEl.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n swiper.el.shadowEl.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\nexport { updateSwiper };","export const 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 if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import React from 'react';\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: `slide-${index}`\n });\n });\n}\nexport { renderVirtual };","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/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 lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\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,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow, getDocument } from 'ssr-window';\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach(el => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty, getSlideTransformEl,\n// dom\nfindElementsInElements, createElement, elementChildren, elementOffset, elementPrevAll, elementNextAll, elementStyle, elementIndex, elementParents, elementTransitionEnd, elementOuterSize };","import { getWindow } from 'ssr-window';\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\n\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 once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit(...args) {\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 if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","export const processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nexport const preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};","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 { elementStyle } from '../../shared/utils.js';\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}","export 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 if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}","export default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","import { preload } from '../../shared/process-lazy-preloader.js';\nexport function getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","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};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","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 = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\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 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 { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import { elementChildren, nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}","export default function loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n} = {}) {\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n slideTo: false,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\n }\n }\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\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 if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n if (!data.isMoved) {\n if (isLoop) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) {\n const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","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 if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}","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';\nimport onLoad from './onLoad.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopedSlides: null,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, deleteProps, createElement, elementChildren, elementStyle, elementIndex } 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 checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader, preload } from '../shared/process-lazy-preloader.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};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: []\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.shadowEl) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement ? el : wrapperEl,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","export default function unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\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}\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.shadowRoot.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","import { createElement, elementChildren } from './utils.js';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}","/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit,\n params\n}) {\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime;\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n autoplayStartTime = new Date().getTime();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}","import { getDocument } from 'ssr-window';\nimport { elementChildren, isObject } from '../../shared/utils.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {\n // newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener('init', onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener('init', onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import { elementTransitionEnd, now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd({\n currentPos\n }) {\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","_objectWithoutPropertiesLoose","sourceKeys","isObject","o","constructor","toString","slice","extend","src","noExtend","__swiper__","needsNavigation","params","undefined","navigation","nextEl","prevEl","needsPagination","pagination","el","needsScrollbar","scrollbar","uniqueClasses","classes","split","map","c","trim","unique","join","wrapperClass","className","includes","concat","paramsList","isChildSwiperSlide","child","type","displayName","processChildren","slides","React","props","children","slide","getChildren","slots","slot","foundSlides","useIsomorphicLayoutEffect","callback","deps","window","useEffect","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","useSwiper","useContext","_extends","assign","bind","hasOwnProperty","this","Swiper","forwardRef","_temp","externalElRef","_ref","_ref$tag","tag","Tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","rest","_excluded","eventsAssigned","_useState","useState","_useState2","_slicedToArray","containerClasses","setContainerClasses","_useState3","_useState4","virtualData","setVirtualData","_useState5","_useState6","breakpointChanged","setBreakpointChanged","initializedRef","useRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","splitEvents","on","events","passedParams","_emitClasses","init","allowedParams","replace","plainObj","search","toLowerCase","substr","getParams","swiperParams","restProps","_getChildren","onBeforeBreakpoint","_containerClasses","swiper","initSwiper","passParams","_objectSpread","current","SwiperCore","virtual","enabled","extendWith","cache","renderExternal","renderExternalUpdate","originalParams","off","emitSlidesClasses","destroyed","paginationEl","scrollbarEl","mountSwiper","destroy","eventName","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","updateParams","currentParams","thumbs","controller","control","destroyModule","mod","isElement","remove","loop","newValue","update","document","createElement","classList","add","shadowEl","appendChild","render","updateSize","setTranslate","allowSlideNext","allowSlidePrev","changeDirection","direction","loopDestroy","loopCreate","updateSwiper","updateSlides","updateProgress","updateSlidesClasses","parallax","ref","Provider","getSlideIndex","index","slideIndex","style","isHorizontal","rtlTranslate","offset","top","from","to","loopFrom","loopTo","slidesToRender","renderVirtual","swiperSlideIndex","SwiperSlide","externalRef","_ref$className","zoom","lazy","virtualIndex","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","_s","classNames","getSlideClasses","slideData","isActive","isVisible","isPrev","isNext","renderChildren","onLoad","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","cancelAnimationFrame","id","getWindow","win","support","deviceCached","nextTick","now","getTranslate","matrix","curTransform","transformMatrix","axis","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","a","MozTransform","OTransform","MsTransform","msTransform","m41","parseFloat","m42","node","nextSource","HTMLElement","nodeType","keysArray","nextIndex","len","nextKey","desc","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","time","targetPosition","side","startPosition","translate","startTime","duration","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","elementChildren","element","selector","_toConsumableArray","matches","_el$classList","Array","isArray","elementStyle","prop","elementIndex","previousSibling","elementTransitionEnd","fireCallBack","e","elementOuterSize","size","includeMargins","offsetWidth","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","browser","getBrowser","needPerspectiveFix","isSafari","String","_ua$split$1$split$0$s","num","Number","_ua$split$1$split$0$s2","major","minor","isWebView","test","calcBrowser","handler","priority","self","eventsListeners","method","event","once","onceHandler","__emitterProxy","_len","args","_key","onAny","eventsAnyListeners","offAny","splice","eventHandler","emit","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","slideEl","closest","slideClass","lazyEl","lazyPreloaderClass","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","_","column","slideIndexLastInView","rewind","realIndex","clientWidth","clientHeight","isVertical","parseInt","isNaN","getDirectionLabel","property","getDirectionPropertyValue","label","slidesEl","swiperSize","rtl","wrongRTL","isVirtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","slideSize","gridEnabled","initSlides","shouldResetSlideSize","breakpoints","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","activeSlide","getFilteredSlide","slideActiveClass","slideNextClass","slidePrevClass","nextSlide","nextEls","nextElementSibling","next","elementNextAll","prevSlide","prevEls","previousElementSibling","prev","elementPrevAll","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","byController","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","_wrapperEl$scrollTo","onTranslateToWrapperTransitionEnd","transitionEmit","step","transitionDuration","transitionStart","transitionEnd","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","loopFix","_clientLeft","clientLeft","slidePrev","normalize","val","prevSnapIndex","normalizedSnapGrid","prevSnap","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","slideRealIndex","_ref$slideTo","activeSlideIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","append","recalcSlides","currentSlideTranslate","diff","touches","loopParams","newSlidesOrder","onTouchStart","touchEventsData","evCache","simulateTouch","pointerType","originalEvent","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","pow","touchAngle","atan2","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","loopFixed","isLoop","startTranslate","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","currentPos","touchEndTime","timeDiff","pathTree","lastClickTime","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","isEnabled","base","containerEl","currentHeight","innerHeight","points","point","minRatio","sort","b","_points$i","resizeObserver","createElements","url","uniqueNavElements","passiveListeners","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","transition","moving","isLocked","__preventObserver__","cursor","unsetGrabCursor","attachEvents","detachEvents","wasLocked","lastSlideRightEdge","addClasses","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","extendedDefaults","_classCallCheck","swipers","newParams","_swiper$modules","modules","__modules__","extendParams","defaults","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","_createClass","cls","updates","view","exact","spv","breakLoop","translated","complete","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","mount","deleteInstance","cleanStyles","deleteProps","newDefaults","get","module","m","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","parents","parent","parentElement","elementParents","disconnect","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","res","toggleEl","disabled","subEl","_subEl$classList","tagName","_swiper$navigation","onPrevClick","onNextClick","checkProps","createElementIfNotDefined","initButton","_swiper$navigation2","destroyButton","_el$classList2","_swiper$navigation3","_swiper$navigation4","clickable","isHidden","toggle","_swiper$el$classList2","_swiper$el$classList","Autoplay","timeout","raf","timeLeft","delay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","onTransitionEnd","calcTimeLeft","run","delayForce","currentSlideDelay","activeSlideEl","getSlideDelay","proceed","start","stop","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","Thumb","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","newThumbsIndex","currentThumbsIndex","newThumbsSlide","watchForThumbsToAppear","thumbsElement","onThumbsSwiper","detail","getThumbsElementAndInit","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","position","lastMoveEvent","pop","velocityEvent","distance","momentumDuration","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","j","moveDistance","currentSlideSize"],"sourceRoot":""}