{"version":3,"file":"swiper-home-stackdevconf.bundle.js","mappings":"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","sources":["webpack://developer.gov.sg/./node_modules/swiper/swiper-bundle.min.css","webpack://developer.gov.sg/./node_modules/css-loader/dist/runtime/api.js","webpack://developer.gov.sg/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://developer.gov.sg/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://developer.gov.sg/webpack/bootstrap","webpack://developer.gov.sg/webpack/runtime/compat get default export","webpack://developer.gov.sg/webpack/runtime/define property getters","webpack://developer.gov.sg/webpack/runtime/hasOwnProperty shorthand","webpack://developer.gov.sg/webpack/runtime/jsonp chunk loading","webpack://developer.gov.sg/webpack/runtime/nonce","webpack://developer.gov.sg/./node_modules/ssr-window/ssr-window.esm.js","webpack://developer.gov.sg/./node_modules/dom7/dom7.esm.js","webpack://developer.gov.sg/./node_modules/swiper/shared/dom.js","webpack://developer.gov.sg/./node_modules/swiper/shared/utils.js","webpack://developer.gov.sg/./node_modules/swiper/shared/get-support.js","webpack://developer.gov.sg/./node_modules/swiper/shared/get-device.js","webpack://developer.gov.sg/./node_modules/swiper/shared/get-browser.js","webpack://developer.gov.sg/./node_modules/swiper/core/events-emitter.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSize.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSlides.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateProgress.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/transitionEmit.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideTo.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideToLoop.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideNext.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slidePrev.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideReset.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideToClosest.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onTouchStart.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onTouchMove.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onTouchEnd.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onResize.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onClick.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onScroll.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://developer.gov.sg/./node_modules/swiper/core/classes/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/classes/addClasses.js","webpack://developer.gov.sg/./node_modules/swiper/core/classes/removeClasses.js","webpack://developer.gov.sg/./node_modules/swiper/core/defaults.js","webpack://developer.gov.sg/./node_modules/swiper/core/moduleExtendParams.js","webpack://developer.gov.sg/./node_modules/swiper/core/core.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/getTranslate.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/setTranslate.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/minTranslate.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/maxTranslate.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/translateTo.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/setTransition.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/transitionStart.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/transitionEnd.js","webpack://developer.gov.sg/./node_modules/swiper/core/loop/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/loop/loopCreate.js","webpack://developer.gov.sg/./node_modules/swiper/core/loop/loopFix.js","webpack://developer.gov.sg/./node_modules/swiper/core/loop/loopDestroy.js","webpack://developer.gov.sg/./node_modules/swiper/core/grab-cursor/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://developer.gov.sg/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://developer.gov.sg/./node_modules/swiper/core/breakpoints/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://developer.gov.sg/./node_modules/swiper/core/check-overflow/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/images/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/images/loadImage.js","webpack://developer.gov.sg/./node_modules/swiper/core/images/preloadImages.js","webpack://developer.gov.sg/./node_modules/swiper/core/modules/resize/resize.js","webpack://developer.gov.sg/./node_modules/swiper/core/modules/observer/observer.js","webpack://developer.gov.sg/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://developer.gov.sg/./node_modules/swiper/shared/classes-to-selector.js","webpack://developer.gov.sg/./node_modules/swiper/swiper-bundle.min.css?0fbc","webpack://developer.gov.sg/./apps/src/events/swiper-home-stackdevconf.js","webpack://developer.gov.sg/./node_modules/swiper/modules/pagination/pagination.js","webpack://developer.gov.sg/./node_modules/swiper/modules/navigation/navigation.js","webpack://developer.gov.sg/./node_modules/swiper/modules/autoplay/autoplay.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:application/font-woff;charset=utf-8;base64, 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\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/**\\n * Swiper 8.4.5\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2022 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: November 21, 2022\\n */\\n\\n@font-face{font-family:swiper-icons;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/swiper/swiper-bundle.min.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/**\\n * Swiper 8.4.5\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2022 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: November 21, 2022\\n */\\n\\n@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t673: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","__webpack_require__.nc = undefined;","/**\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","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\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\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\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\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...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\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","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};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = 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; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","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\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import 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 !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = 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\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = 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\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import 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}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = '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\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n 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\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import 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\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import 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\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\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\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = 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 loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import 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.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import 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\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { 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\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\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\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\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 (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","\n import API from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../css-loader/dist/cjs.js!./swiper-bundle.min.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../css-loader/dist/cjs.js!./swiper-bundle.min.css\";\n export default content && content.locals ? content.locals : undefined;\n","// import Swiper JS\nimport Swiper, { Pagination, Navigation, Autoplay } from \"swiper\";\n// import Swiper styles\nimport \"swiper/css/bundle\";\n\nconst carousel = new Swiper(\".swiper-home\", {\n modules: [Pagination, Navigation, Autoplay],\n // Optional parameters\n loop: true,\n slidesPerView: 1,\n allowTouchMove: true,\n autoplay: {\n delay: 5000,\n },\n pagination: {\n el: \".swiper-pagination-home\",\n type: \"bullets\",\n clickable: true,\n },\n\n navigation: {\n nextEl: \".swiper-button-next-home\",\n prevEl: \".swiper-button-prev-home\",\n },\n});\n","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.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 $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\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\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n if (!swiper.size) {\n swiper.autoplay.running = false;\n swiper.autoplay.paused = false;\n return;\n }\n\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}"],"names":["___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","url","options","String","__esModule","default","test","slice","hash","needQuotes","replace","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","insert","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","n","getter","d","a","definition","key","o","Object","defineProperty","enumerable","get","prop","prototype","hasOwnProperty","call","b","baseURI","self","location","href","nc","constructor","extend","src","keys","forEach","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelectorAll","getElementById","createEvent","initEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","host","hostname","origin","pathname","protocol","search","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","win","Dom7","Array","items","super","proto","__proto__","set","value","makeReactive","arrayFlat","arr","res","el","isArray","arrayFilter","filter","selector","context","html","trim","indexOf","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","fn","noTrigger","split","shortcut","name","args","trigger","on","Methods","addClass","classes","classNames","c","classList","add","removeClass","hasClass","className","contains","toggleClass","toggle","attr","attrs","arguments","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","parents","handleEvent","events","j","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","props","each","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","closest","find","foundElements","found","methodName","writable","delay","now","to","noExtend","nextSource","node","HTMLElement","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","priority","eventsListeners","destroyed","method","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","width","height","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","transitionEmit","runCallbacks","direction","step","slideTo","internal","initial","indexAsNumber","isFinite","animating","preventInteractionOnTransition","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","setTranslate","transitionStart","isH","t","_immediateVirtual","_swiperImmediateVirtual","behavior","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","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","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","getTranslate","allowMomentumBounce","grabCursor","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","newProgress","previousTranslate","dummyEventAttached","dummyEventListener","touchEvents","device","domMethod","swiperMethod","start","passiveListeners","passive","move","end","cancel","updateOnWindowResize","ios","android","attachEvents","bind","detachEvents","isGridEnabled","addClasses","suffixes","entries","prefix","resultClasses","prepareClasses","fill","emitContainerClasses","removeClasses","init","initialSlide","resizeObserver","createElements","virtualTranslate","breakpointsBase","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlidesLimit","loopFillGroupWithBlank","slideBlankClass","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","x","y","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","overrides","platform","ua","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getDevice","isSafari","toLowerCase","isWebView","calcBrowser","__modules__","mod","extendParams","swiperParams","defaults","passedParams","eventName","$","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","destroy","deleteInstance","cleanStyles","object","deleteProps","static","newDefaults","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","checkProps","pfx","bulletSize","pagination","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","position","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","_s","targetEl","isHidden","getEl","toggleEl","disabled","disabledClass","tagName","$nextEl","$prevEl","onPrevClick","onNextClick","navigationDisabledClass","timeout","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter"],"sourceRoot":""}