PageSourceSearch

https://www.apla.ps/themes/default/assets/js/home/swiper/script.js?v=1776070433609578

js apla.ps collected 2026-10-06 17:05:26 UTC 417,485 bytes, 11,107 lines download raw bytes

1/******/ (() => { // webpackBootstrap
2/******/ 	"use strict";
3/******/ 	var __webpack_modules__ = ({
4
5/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[83].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[83].oneOf[1].use[2]!./node_modules/swiper/swiper-bundle.css":
6/*!***********************************************************************************************************************************************************************************************************!*\
7  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[83].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[83].oneOf[1].use[2]!./node_modules/swiper/swiper-bundle.css ***!
8  \***********************************************************************************************************************************************************************************************************/
9/***/ ((module, __webpack_exports__, __webpack_require__) => {
10
11__webpack_require__.r(__webpack_exports__);
12/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
14/* harmony export */ });
15/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
16/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
17// Imports
18
19var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
20// Module
21___CSS_LOADER_EXPORT___.push([module.id, "/**\n * Swiper 11.2.10\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2025 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 28, 2025\n */\n\n/* FONT_START */\n@font-face {\n  font-family: 'swiper-icons';\n  src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');\n  font-weight: 400;\n  font-style: normal;\n}\n/* FONT_END */\n:root {\n  --swiper-theme-color: #007aff;\n  /*\n  --swiper-preloader-color: var(--swiper-theme-color);\n  --swiper-wrapper-transition-timing-function: initial;\n  */\n}
21\n:host {\n  position: relative;\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  z-index: 1;\n}\n.swiper {\n  margin-left: auto;\n  margin-right: auto;\n  position: relative;\n  overflow: hidden;\n  list-style: none;\n  padding: 0;\n  /* Fix of Webkit flickering */\n  z-index: 1;\n  display: block;\n}\n.swiper-vertical > .swiper-wrapper {\n  flex-direction: column;\n}\n.swiper-wrapper {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  z-index: 1;\n  display: flex;\n  transition-property: transform;\n  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);\n  box-sizing: content-box;\n}\n.swiper-android .swiper-slide,\n.swiper-ios .swiper-slide,\n.swiper-wrapper {\n  transform: translate3d(0px, 0, 0);\n}\n.swiper-horizontal {\n  touch-action: pan-y;\n}\n.swiper-vertical {\n  touch-action: pan-x;\n}\n.swiper-slide {\n  flex-shrink: 0;\n  width: 100%;\n  height: 100%;\n  position: relative;\n  transition-property: transform;\n  display: block;\n}\n.swiper-slide-invisible-blank {\n  visibility: hidden;\n}\n/* Auto Height */\n.swiper-autoheight,\n.swiper-autoheight .swiper-slide {\n  height: auto;\n}\n.swiper-autoheight .swiper-wrapper {\n  align-items: flex-start;\n  transition-property: transform, height;\n}\n.swiper-backface-hidden .swiper-slide {\n  transform: translateZ(0);\n  backface-visibility: hidden;\n}\n/* 3D Effects */\n.swiper-3d.swiper-css-mode .swiper-wrapper {\n  perspective: 1200px;\n}\n.swiper-3d .swiper-wrapper {\n  transform-style: preserve-3d;\n}\n.swiper-3d {\n  perspective: 1200px;\n}\n.swiper-3d .swiper-slide,\n.swiper-3d .swiper-cube-shadow {\n  transform-style: preserve-3d;\n}\n/* CSS Mode */\n.swiper-css-mode > .swiper-wrapper {\n  overflow: auto;\n  scrollbar-width: none;\n  /* For Firefox */\n  -ms-overflow-style: none;\n  /* For Internet Explorer and Edge */\n}\n.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {\n  display: none;\n}\n.swiper-css-mode > .swiper-wrapper > .swiper-slide {\n  scroll-snap-align: start start;\n}\n.swiper-css-mode.swiper-horizontal > .swiper-wrapper {\n  scroll-snap-type: x mandatory;\n}\n.swiper-css-mode.swiper-vertical > .swiper-wrapper {\n  scroll-snap-type: y mandatory;\n}\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper {\n  scroll-snap-type: none;\n}\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {\n  scroll-snap-align: none;\n}\n.swiper-css-mode.swiper-centered > .swiper-wrapper::before {\n  content: '';\n  flex-shrink: 0;\n  order: 9999;\n}\n.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {\n  scroll-snap-align: center center;\n  scroll-snap-stop: always;\n}\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {\n  margin-inline-start: var(--swiper-centered-offset-before);\n}\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {\n  height: 100%;\n  min-height: 1px;\n  width: var(--swiper-centered-offset-after);\n}\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {\n  margin-block-start: var(--swiper-centered-offset-before);\n}\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {\n  width: 100%;\n  min-width: 1px;\n  height: var(--swiper-centered-offset-after);\n}\n/* Slide styles start */\n/* 3D Shadows */\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom,\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  pointer-events: none;\n  z-index: 10;\n}\n.swiper-3d .swiper-slide-shadow {\n  background: rgba(0, 0, 0, 0.15);\n}\n.swiper-3d .swiper-slide-shadow-left {\n  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-right {\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-top {\n  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-bottom {\n  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-lazy-preloader {\n  width: 42px;\n  height: 42px;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  margin-left: -21px;\n  margin-top: -21px;\n  z-index: 10;\n  transform-origin: 50%;\n  box-sizing: border-box;\n  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));\n  border-radius: 50%;\n  border-top-color: transparent;\n}\n.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,\n.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {\n  animation: swiper-preloader-spin 1s infinite linear;\n}\n.swiper-lazy-preloader-white {\n  --swiper-preloader-color: #fff;\n}\n.swiper-lazy-preloader-black {\n  --swiper-preloader-color: #000;\n}\n@keyframes swiper-preloader-spin {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n/* Slide styles end */\n.swiper-virtual .swiper-slide {\n  -webkit-backface-visibility: hidden;\n  transform: translateZ(0);\n}
21\n.swiper-virtual.swiper-css-mode .swiper-wrapper::after {\n  content: '';\n  position: absolute;\n  left: 0;\n  top: 0;\n  pointer-events: none;\n}\n.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {\n  height: 1px;\n  width: var(--swiper-virtual-size);\n}\n.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {\n  width: 1px;\n  height: var(--swiper-virtual-size);\n}\n:root {\n  --swiper-navigation-size: 44px;\n  /*\n  --swiper-navigation-top-offset: 50%;\n  --swiper-navigation-sides-offset: 10px;\n  --swiper-navigation-color: var(--swiper-theme-color);\n  */\n}\n.swiper-button-prev,\n.swiper-button-next {\n  position: absolute;\n  top: var(--swiper-navigation-top-offset, 50%);\n  width: calc(var(--swiper-navigation-size) / 44 * 27);\n  height: var(--swiper-navigation-size);\n  margin-top: calc(0px - (var(--swiper-navigation-size) / 2));\n  z-index: 10;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: var(--swiper-navigation-color, var(--swiper-theme-color));\n}\n.swiper-button-prev.swiper-button-disabled,\n.swiper-button-next.swiper-button-disabled {\n  opacity: 0.35;\n  cursor: auto;\n  pointer-events: none;\n}\n.swiper-button-prev.swiper-button-hidden,\n.swiper-button-next.swiper-button-hidden {\n  opacity: 0;\n  cursor: auto;\n  pointer-events: none;\n}\n.swiper-navigation-disabled .swiper-button-prev,\n.swiper-navigation-disabled .swiper-button-next {\n  display: none !important;\n}\n.swiper-button-prev svg,\n.swiper-button-next svg {\n  width: 100%;\n  height: 100%;\n  -o-object-fit: contain;\n     object-fit: contain;\n  transform-origin: center;\n}\n.swiper-rtl .swiper-button-prev svg,\n.swiper-rtl .swiper-button-next svg {\n  transform: rotate(180deg);\n}\n.swiper-button-prev,\n.swiper-rtl .swiper-button-next {\n  left: var(--swiper-navigation-sides-offset, 10px);\n  right: auto;\n}\n.swiper-button-next,\n.swiper-rtl .swiper-button-prev {\n  right: var(--swiper-navigation-sides-offset, 10px);\n  left: auto;\n}\n.swiper-button-lock {\n  display: none;\n}\n/* Navigation font start */\n.swiper-button-prev:after,\n.swiper-button-next:after {\n  font-family: swiper-icons;\n  font-size: var(--swiper-navigation-size);\n  text-transform: none !important;\n  letter-spacing: 0;\n  font-variant: initial;\n  line-height: 1;\n}\n.swiper-button-prev:after,\n.swiper-rtl .swiper-button-next:after {\n  
21content: 'prev';\n}\n.swiper-button-next,\n.swiper-rtl .swiper-button-prev {\n  right: var(--swiper-navigation-sides-offset, 10px);\n  left: auto;\n}\n.swiper-button-next:after,\n.swiper-rtl .swiper-button-prev:after {\n  content: 'next';\n}\n/* Navigation font end */\n:root {\n  /*\n  --swiper-pagination-color: var(--swiper-theme-color);\n  --swiper-pagination-left: auto;\n  --swiper-pagination-right: 8px;\n  --swiper-pagination-bottom: 8px;\n  --swiper-pagination-top: auto;\n  --swiper-pagination-fraction-color: inherit;\n  --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25);\n  --swiper-pagination-progressbar-size: 4px;\n  --swiper-pagination-bullet-size: 8px;\n  --swiper-pagination-bullet-width: 8px;\n  --swiper-pagination-bullet-height: 8px;\n  --swiper-pagination-bullet-border-radius: 50%;\n  --swiper-pagination-bullet-inactive-color: #000;\n  --swiper-pagination-bullet-inactive-opacity: 0.2;\n  --swiper-pagination-bullet-opacity: 1;\n  --swiper-pagination-bullet-horizontal-gap: 4px;\n  --swiper-pagination-bullet-vertical-gap: 6px;\n  */\n}\n.swiper-pagination {\n  position: absolute;\n  text-align: center;\n  transition: 300ms opacity;\n  transform: translate3d(0, 0, 0);\n  z-index: 10;\n}\n.swiper-pagination.swiper-pagination-hidden {\n  opacity: 0;\n}\n.swiper-pagination-disabled > .swiper-pagination,\n.swiper-pagination.swiper-pagination-disabled {\n  display: none !important;\n}\n/* Common Styles */\n.swiper-pagination-fraction,\n.swiper-pagination-custom,\n.swiper-horizontal > .swiper-pagination-bullets,\n.swiper-pagination-bullets.swiper-pagination-horizontal {\n  bottom: var(--swiper-pagination-bottom, 8px);\n  top: var(--swiper-pagination-top, auto);\n  left: 0;\n  width: 100%;\n}\n/* Bullets */\n.swiper-pagination-bullets-dynamic {\n  overflow: hidden;\n  font-size: 0;\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\n  transform: scale(0.33);\n  position: relative;\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {\n  transform: scale(1);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {\n  transform: scale(1);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {\n  transform: scale(0.66);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {\n  transform: scale(0.33);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {\n  transform: scale(0.66);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {\n  transform: scale(0.33);\n}\n.swiper-pagination-bullet {\n  width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));\n  height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));\n  display: inline-block;\n  border-radius: var(--swiper-pagination-bullet-border-radius, 50%);\n  background: var(--swiper-pagination-bullet-inactive-color, #000);\n  opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);\n}\nbutton.swiper-pagination-bullet {\n  border: none;\n  margin: 0;\n  padding: 0;\n  box-shadow: none;\n  -webkit-appearance: none;\n          -moz-appearance: none;\n       appearance: none;\n}\n.swiper-pagination-clickable .swiper-pagination-bullet {\n  cursor: pointer;\n}\n.swiper-pagination-bullet:only-child {\n  display: none !important;\n}\n.swiper-pagination-bullet-active {\n  opacity: var(--swiper-pagination-bullet-opacity, 1);\n  background: var(--swiper-pagination-color, var(--swiper-theme-color));\n}\n.swiper-vertical > .swiper-pagination-bullets,\n.swiper-pagination-vertical.swiper-pagination-bullets {\n  right: var(--swiper-pagination-right, 8px);\n  left: var(--swiper-pagination-left, auto);\n  top: 50%;\n  transform: translate3d(0px, -50%, 0);\n}\n.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet,\n.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet {\n  margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;\n  display: block;\n}\n.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,\n.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {\n  top: 50%;\n  transform: translateY(-50%);\n  width: 8px;\n}\n.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,\n.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\n  display: inline-block;\n  transition: 200ms transform,\n        200ms top;\n}\n.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,\n.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {\n  margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);\n}\n.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,\n.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {\n  left: 50%;\n  transform: translateX(-50%);\n  white-space: nowrap;\n}\n.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,\n.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\n  transition: 200ms transform,\n        200ms left;\n}\n.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\n  transition: 200ms transform,\n    200ms right;\n}\n/* Fraction */\n.swiper-pagination-fraction {\n  color: var(--swiper-pagination-fraction-color, inherit);\n}\n/* Progress */\n.swiper-pagination-progressbar {\n  background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25));\n  position: absolute;\n}\n.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {\n  background: var(--swiper-pagination-color, var(--swiper-theme-color));\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  transform: scale(0);\n  transform-origin: left top;\n}\n.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {\n  transform-origin: right top;\n}\n.swiper-horizontal > .swiper-pagination-progressbar,\n.swiper-pagination-progressbar.swiper-pagination-horizontal,\n.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,\n.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {\n  width: 100%;\n  height: var(--swiper-pagination-progressbar-size, 4px);\n  left: 0;\n  top: 0;\n}\n.swiper-vertical > .swiper-pagination-progressbar,\n.swiper-pagination-progressbar.swiper-pagination-vertical,\n.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,\n.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {\n  width: var(--swiper-pagination-progressbar-size, 4px);\n  height: 100%;\n  left: 0;\n  top: 0;\n}\n.swiper-pagination-lock {\n  display: none;\n}\n:root {\n  /*\n  --swiper-scrollbar-border-radius: 10px;\n  --swiper-scrollbar-top: auto;\n  --swiper-scrollbar-bottom: 4px;\n  --swiper-scrollbar-left: auto;\n  --swiper-scrollbar-right: 4px;\n  --swiper-scrollbar-sides-offset: 1%;\n  --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1);
21\n  --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5);\n  --swiper-scrollbar-size: 4px;\n  */\n}\n.swiper-scrollbar {\n  border-radius: var(--swiper-scrollbar-border-radius, 10px);\n  position: relative;\n  touch-action: none;\n  background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1));\n}\n.swiper-scrollbar-disabled > .swiper-scrollbar,\n.swiper-scrollbar.swiper-scrollbar-disabled {\n  display: none !important;\n}\n.swiper-horizontal > .swiper-scrollbar,\n.swiper-scrollbar.swiper-scrollbar-horizontal {\n  position: absolute;\n  left: var(--swiper-scrollbar-sides-offset, 1%);\n  bottom: var(--swiper-scrollbar-bottom, 4px);\n  top: var(--swiper-scrollbar-top, auto);\n  z-index: 50;\n  height: var(--swiper-scrollbar-size, 4px);\n  width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));\n}\n.swiper-vertical > .swiper-scrollbar,\n.swiper-scrollbar.swiper-scrollbar-vertical {\n  position: absolute;\n  left: var(--swiper-scrollbar-left, auto);\n  right: var(--swiper-scrollbar-right, 4px);\n  top: var(--swiper-scrollbar-sides-offset, 1%);\n  z-index: 50;\n  width: var(--swiper-scrollbar-size, 4px);\n  height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));\n}\n.swiper-scrollbar-drag {\n  height: 100%;\n  width: 100%;\n  position: relative;\n  background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5));\n  border-radius: var(--swiper-scrollbar-border-radius, 10px);\n  left: 0;\n  top: 0;\n}\n.swiper-scrollbar-cursor-drag {\n  cursor: move;\n}\n.swiper-scrollbar-lock {\n  display: none;\n}\n/* Zoom container styles start */\n.swiper-zoom-container {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n}\n.swiper-zoom-container > img,\n.swiper-zoom-container > svg,\n.swiper-zoom-container > canvas {\n  max-width: 100%;\n  max-height: 100%;\n  -o-object-fit: contain;\n     object-fit: contain;\n}\n/* Zoom container styles end */\n.swiper-slide-zoomed {\n  cursor: move;\n  touch-action: none;\n}\n/* a11y */\n.swiper .swiper-notification {\n  position: absolute;\n  left: 0;\n  top: 0;\n  pointer-events: none;\n  opacity: 0;\n  z-index: -1000;\n}\n.swiper-free-mode > .swiper-wrapper {\n  transition-timing-function: ease-out;\n  margin: 0 auto;\n}\n.swiper-grid > .swiper-wrapper {\n  flex-wrap: wrap;\n}\n.swiper-grid-column > .swiper-wrapper {\n  flex-wrap: wrap;\n  flex-direction: column;\n}\n.swiper-fade.swiper-free-mode .swiper-slide {\n  transition-timing-function: ease-out;\n}\n.swiper-fade .swiper-slide {\n  pointer-events: none;\n  transition-property: opacity;\n}\n.swiper-fade .swiper-slide .swiper-slide {\n  pointer-events: none;\n}\n.swiper-fade .swiper-slide-active {\n  pointer-events: auto;\n}\n.swiper-fade .swiper-slide-active .swiper-slide-active {\n  pointer-events: auto;\n}\n.swiper.swiper-cube {\n  overflow: visible;\n}\n.swiper-cube .swiper-slide {\n  pointer-events: none;\n  backface-visibility: hidden;\n  z-index: 1;\n  visibility: hidden;\n  transform-origin: 0 0;\n  width: 100%;\n  height: 100%;\n}\n.swiper-cube .swiper-slide .swiper-slide {\n  pointer-events: none;\n}\n.swiper-cube.swiper-rtl .swiper-slide {\n  transform-origin: 100% 0;\n}\n.swiper-cube .swiper-slide-active,\n.swiper-cube .swiper-slide-active .swiper-slide-active {\n  pointer-events: auto;\n}\n.swiper-cube .swiper-slide-active,\n.swiper-cube .swiper-slide-next,\n.swiper-cube .swiper-slide-prev {\n  pointer-events: auto;\n  visibility: visible;\n}\n.swiper-cube .swiper-cube-shadow {\n  position: absolute;\n  left: 0;\n  bottom: 0px;\n  width: 100%;\n  height: 100%;\n  opacity: 0.6;\n  z-index: 0;\n}\n.swiper-cube .swiper-cube-shadow:before {\n  content: '';\n  background: #000;\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  filter: blur(50px);\n}\n.swiper-cube .swiper-slide-next + .swiper-slide {\n  pointer-events: auto;\n  visibility: visible;\n}\n/* Cube slide shadows start */\n.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,\n.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,\n.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,\n.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right {\n  z-index: 0;\n  backface-visibility: hidden;\n}\n/* Cube slide shadows end */\n.swiper.swiper-flip {\n  overflow: visible;\n}\n.swiper-flip .swiper-slide {\n  pointer-events: none;\n  backface-visibility: hidden;\n  z-index: 1;\n}\n.swiper-flip .swiper-slide .swiper-slide {\n  pointer-events: none;\n}\n.swiper-flip .swiper-slide-active,\n.swiper-flip .swiper-slide-active .swiper-slide-active {\n  pointer-events: auto;\n}\n/* Flip slide shadows start */\n.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,\n.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,\n.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,\n.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right {\n  z-index: 0;\n  backface-visibility: hidden;\n}\n/* Flip slide shadows end */\n.swiper-creative .swiper-slide {\n  backface-visibility: hidden;\n  overflow: hidden;\n  transition-property: transform, opacity, height;\n}\n.swiper.swiper-cards {\n  overflow: visible;\n}\n.swiper-cards .swiper-slide {\n  transform-origin: center bottom;\n  backface-visibility: hidden;\n  overflow: hidden;\n}\n", ""]);
22// Exports
23/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_
23LOADER_EXPORT___);
24
25
26/***/ }),
27
vendor: 1,858 bytes, lines 28-102
28/***/ "./node_modules/css-loader/dist/runtime/api.js":
29/*!*****************************************************!*\
30  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
31  \*****************************************************/
32/***/ ((module) => {
33
34
35
36/*
37  MIT License http://www.opensource.org/licenses/mit-license.php
38  Author Tobias Koppers @sokra
39*/
40// css base code, injected by the css-loader
41// eslint-disable-next-line func-names
42module.exports = function (cssWithMappingToString) {
43  var list = []; // return the list of modules as css string
44
45  list.toString = function toString() {
46    return this.map(function (item) {
47      var content = cssWithMappingToString(item);
48
49      if (item[2]) {
50        return "@media ".concat(item[2], " {").concat(content, "}");
51      }
52
53      return content;
54    }).join("");
55  }; // import a list of modules into the list
56  // eslint-disable-next-line func-names
57
58
59  list.i = function (modules, mediaQuery, dedupe) {
60    if (typeof modules === "string") {
61      // eslint-disable-next-line no-param-reassign
62      modules = [[null, modules, ""]];
63    }
64
65    var alreadyImportedModules = {};
66
67    if (dedupe) {
68      for (var i = 0; i < this.length; i++) {
69        // eslint-disable-next-line prefer-destructuring
70        var id = this[i][0];
71
72        if (id != null) {
73          alreadyImportedModules[id] = true;
74        }
75      }
76    }
77
78    for (var _i = 0; _i < modules.length; _i++) {
79      var item = [].concat(modules[_i]);
80
81      if (dedupe && alreadyImportedModules[item[0]]) {
82        // eslint-disable-next-line no-continue
83        continue;
84      }
85
86      if (mediaQuery) {
87        if (!item[2]) {
88          item[2] = mediaQuery;
89        } else {
90          item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
91        }
92      }
93
94      list.push(item);
95    }
96  };
97
98  return list;
99};
100
101/***/ }),
102
vendor: 7,186 bytes, lines 103-380
103/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
104/*!****************************************************************************!*\
105  !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
106  \****************************************************************************/
107/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
108
109
110
111var isOldIE = function isOldIE() {
112  var memo;
113  return function memorize() {
114    if (typeof memo === 'undefined') {
115      // Test for IE <= 9 as proposed by Browserhacks
116      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
117      // Tests for existence of standard globals is to allow style-loader
118      // to operate correctly into non-standard environments
119      // @see https://github.com/webpack-contrib/style-loader/issues/177
120      memo = Boolean(window && document && document.all && !window.atob);
121    }
122
123    return memo;
124  };
125}();
126
127var getTarget = function getTarget() {
128  var memo = {};
129  return function memorize(target) {
130    if (typeof memo[target] === 'undefined') {
131      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
132
133      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
134        try {
135          // This will throw an exception if access to iframe is blocked
136          // due to cross-origin restrictions
137          styleTarget = styleTarget.contentDocument.head;
138        } catch (e) {
139          // istanbul ignore next
140          styleTarget = null;
141        }
142      }
143
144      memo[target] = styleTarget;
145    }
146
147    return memo[target];
148  };
149}();
150
151var stylesInDom = [];
152
153function getIndexByIdentifier(identifier) {
154  var result = -1;
155
156  for (var i = 0; i < stylesInDom.length; i++) {
157    if (stylesInDom[i].identifier === identifier) {
158      result = i;
159      break;
160    }
161  }
162
163  return result;
164}
165
166function modulesToDom(list, options) {
167  var idCountMap = {};
168  var identifiers = [];
169
170  for (var i = 0; i < list.length; i++) {
171    var item = list[i];
172    var id = options.base ? item[0] + options.base : item[0];
173    var count = idCountMap[id] || 0;
174    var identifier = "".concat(id, " ").concat(count);
175    idCountMap[id] = count + 1;
176    var index = getIndexByIdentifier(identifier);
177    var obj = {
178      css: item[1],
179      media: item[2],
180      sourceMap: item[3]
181    };
182
183    if (index !== -1) {
184      stylesInDom[index].references++;
185      stylesInDom[index].updater(obj);
186    } else {
187      stylesInDom.push({
188        identifier: identifier,
189        updater: addStyle(obj, options),
190        references: 1
191      });
192    }
193
194    identifiers.push(identifier);
195  }
196
197  return identifiers;
198}
199
200function insertStyleElement(options) {
201  var style = document.createElement('style');
202  var attributes = options.attributes || {};
203
204  if (typeof attributes.nonce === 'undefined') {
205    var nonce =  true ? __webpack_require__.nc : 0;
206
207    if (nonce) {
208      attributes.nonce = nonce;
209    }
210  }
211
212  Object.keys(attributes).forEach(function (key) {
213    style.setAttribute(key, attributes[key]);
214  });
215
216  if (typeof options.insert === 'function') {
217    options.insert(style);
218  } else {
219    var target = getTarget(options.insert || 'head');
220
221    if (!target) {
222      throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
223    }
224
225    target.appendChild(style);
226  }
227
228  return style;
229}
230
231function removeStyleElement(style) {
232  // istanbul ignore if
233  if (style.parentNode === null) {
234    return false;
235  }
236
237  style.parentNode.removeChild(style);
238}
239/* istanbul ignore next  */
240
241
242var replaceText = function replaceText() {
243  var textStore = [];
244  return function replace(index, replacement) {
245    textStore[index] = replacement;
246    return textStore.filter(Boolean).join('\n');
247  };
248}();
249
250function applyToSingletonTag(style, index, remove, obj) {
251  var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
252
253  /* istanbul ignore if  */
254
255  if (style.styleSheet) {
256    style.styleSheet.cssText = replaceText(index, css);
257  } else {
258    var cssNode = document.createTextNode(css);
259    var childNodes = style.childNodes;
260
261    if (childNodes[index]) {
262      style.removeChild(childNodes[index]);
263    }
264
265    if (childNodes.length) {
266      style.insertBefore(cssNode, childNodes[index]);
267    } else {
268      style.appendChild(cssNode);
269    }
270  }
271}
272
273function applyToTag(style, options, obj) {
274  var css = obj.css;
275  var media = obj.media;
276  var sourceMap = obj.sourceMap;
277
278  if (media) {
279    style.setAttribute('media', media);
280  } else {
281    style.removeAttribute('media');
282  }
283
284  if (sourceMap && typeof btoa !== 'undefined') {
285    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
286  } // For old IE
287
288  /* istanbul ignore if  */
289
290
291  if (style.styleSheet) {
292    style.styleSheet.cssText = css;
293  } else {
294    while (style.firstChild) {
295      style.removeChild(style.firstChild);
296    }
297
298    style.appendChild(document.createTextNode(css));
299  }
300}
301
302var singleton = null;
303var singletonCounter = 0;
304
305function addStyle(obj, options) {
306  var style;
307  var update;
308  var remove;
309
310  if (options.singleton) {
311    var styleIndex = singletonCounter++;
312    style = singleton || (singleton = insertStyleElement(options));
313    update = applyToSingletonTag.bind(null, style, styleIndex, false);
314    remove = applyToSingletonTag.bind(null, style, styleIndex, true);
315  } else {
316    style = insertStyleElement(options);
317    update = applyToTag.bind(null, style, options);
318
319    remove = function remove() {
320      removeStyleElement(style);
321    };
322  }
323
324  update(obj);
325  return function updateStyle(newObj) {
326    if (newObj) {
327      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
328        return;
329      }
330
331      update(obj = newObj);
332    } else {
333      remove();
334    }
335  };
336}
337
338module.exports = function (list, options) {
339  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
340  // tags it will allow on a page
341
342  if (!options.singleton && typeof options.singleton !== 'boolean') {
343    options.singleton = isOldIE();
344  }
345
346  list = list || [];
347  var lastIdentifiers = modulesToDom(list, options);
348  return function update(newList) {
349    newList = newList || [];
350
351    if (Object.prototype.toString.call(newList) !== '[object Array]') {
352      return;
353    }
354
355    for (var i = 0; i < lastIdentifiers.length; i++) {
356      var identifier = lastIdentifiers[i];
357      var index = getIndexByIdentifier(identifier);
358      stylesInDom[index].references--;
359    }
360
361    var newLastIdentifiers = modulesToDom(newList, options);
362
363    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
364      var _identifier = lastIdentifiers[_i];
365
366      var _index = getIndexByIdentifier(_identifier);
367
368      if (stylesInDom[_index].references === 0) {
369        stylesInDom[_index].updater();
370
371        stylesInDom.splice(_index, 1);
372      }
373    }
374
375    lastIdentifiers = newLastIdentifiers;
376  };
377};
378
379/***/ }),
380
vendor: 14,148 bytes, lines 381-774
381/***/ "./node_modules/swiper/modules/a11y.mjs":
382/*!**********************************************!*\
383  !*** ./node_modules/swiper/modules/a11y.mjs ***!
384  \**********************************************/
385/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
386
387__webpack_require__.r(__webpack_exports__);
388/* harmony export */ __webpack_require__.d(__webpack_exports__, {
389/* harmony export */   "default": () => (/* binding */ A11y)
390/* harmony export */ });
391/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
392/* harmony import */ var _shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/classes-to-selector.mjs */ "./node_modules/swiper/shared/classes-to-selector.mjs");
393/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
394
395
396
397
398function A11y(_ref) {
399  let {
400    swiper,
401    extendParams,
402    on
403  } = _ref;
404  extendParams({
405    a11y: {
406      enabled: true,
407      notificationClass: 'swiper-notification',
408      prevSlideMessage: 'Previous slide',
409      nextSlideMessage: 'Next slide',
410      firstSlideMessage: 'This is the first slide',
411      lastSlideMessage: 'This is the last slide',
412      paginationBulletMessage: 'Go to slide {{index}}',
413      slideLabelMessage: '{{index}} / {{slidesLength}}',
414      containerMessage: null,
415      containerRoleDescriptionMessage: null,
416      containerRole: null,
417      itemRoleDescriptionMessage: null,
418      slideRole: 'group',
419      id: null,
420      scrollOnFocus: true
421    }
422  });
423  swiper.a11y = {
424    clicked: false
425  };
426  let liveRegion = null;
427  let preventFocusHandler;
428  let focusTargetSlideEl;
429  let visibilityChangedTimestamp = new Date().getTime();
430  function notify(message) {
431    const notification = liveRegion;
432    if (notification.length === 0) return;
433    (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.s)(notification, message);
434  }
435  function getRandomNumber(size) {
436    if (size === void 0) {
437      size = 16;
438    }
439    const randomChar = () => Math.round(16 * Math.random()).toString(16);
440    return 'x'.repeat(size).replace(/x/g, randomChar);
441  }
442  function makeElFocusable(el) {
443    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
444    el.forEach(subEl => {
445      subEl.setAttribute('tabIndex', '0');
446    });
447  }
448  function makeElNotFocusable(el) {
449    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
450    el.forEach(subEl => {
451      subEl.setAttribute('tabIndex', '-1');
452    });
453  }
454  function addElRole(el, role) {
455    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
456    el.forEach(subEl => {
457      subEl.setAttribute('role', role);
458    });
459  }
460  function addElRoleDescription(el, description) {
461    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
462    el.forEach(subEl => {
463      subEl.setAttribute('aria-roledescription', description);
464    });
465  }
466  function addElControls(el, controls) {
467    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
468    el.forEach(subEl => {
469      subEl.setAttribute('aria-controls', controls);
470    });
471  }
472  function addElLabel(el, label) {
473    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
474    el.forEach(subEl => {
475      subEl.setAttribute('aria-label', label);
476    });
477  }
478  function addElId(el, id) {
479    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
480    el.forEach(subEl => {
481      subEl.setAttribute('id', id);
482    });
483  }
484  function addElLive(el, live) {
485    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
486    el.forEach(subEl => {
487      subEl.setAttribute('aria-live', live);
488    });
489  }
490  function disableEl(el) {
491    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
492    el.forEach(subEl => {
493      subEl.setAttribute('aria-disabled', true);
494    });
495  }
496  function enableEl(el) {
497    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
498    el.forEach(subEl => {
499      subEl.setAttribute('aria-disabled', false);
500    });
501  }
502  function onEnterOrSpaceKey(e) {
503    if (e.keyCode !== 13 && e.keyCode !== 32) return;
504    const params = swiper.params.a11y;
505    const targetEl = e.target;
506    if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {
507      if (!e.target.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) return;
508    }
509    if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {
510      const prevEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.prevEl);
511      const nextEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.nextEl);
512      if (nextEls.includes(targetEl)) {
513        if (!(swiper.isEnd && !swiper.params.loop)) {
514          swiper.slideNext();
515        }
516        if (swiper.isEnd) {
517          notify(params.lastSlideMessage);
518        } else {
519          notify(params.nextSlideMessage);
520        }
521      }
522      if (prevEls.includes(targetEl)) {
523        if (!(swiper.isBeginning && !swiper.params.loop)) {
524          swiper.slidePrev();
525        }
526        if (swiper.isBeginning) {
527          notify(params.firstSlideMessage);
528        } else {
529          notify(params.prevSlideMessage);
530        }
531      }
532    }
533    if (swiper.pagination && targetEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) {
534      targetEl.click();
535    }
536  }
537  function updateNavigation() {
538    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
539    const {
540      nextEl,
541      prevEl
542    } = swiper.navigation;
543    if (prevEl) {
544      if (swiper.isBeginning) {
545        disableEl(prevEl);
546        makeElNotFocusable(prevEl);
547      } else {
548        enableEl(prevEl);
549        makeElFocusable(prevEl);
550      }
551    }
552    if (nextEl) {
553      if (swiper.isEnd) {
554        disableEl(nextEl);
555        makeElNotFocusable(nextEl);
556      } else {
557        enableEl(nextEl);
558        makeElFocusable(nextEl);
559      }
560    }
561  }
562  function hasPagination() {
563    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
564  }
565  function hasClickablePagination() {
566    return hasPagination() && swiper.params.pagination.clickable;
567  }
568  function updatePagination() {
569    const params = swiper.params.a11y;
570    if (!hasPagination()) return;
571    swiper.pagination.bullets.forEach(bulletEl => {
572      if (swiper.params.pagination.clickable) {
573        makeElFocusable(bulletEl);
574        if (!swiper.params.pagination.renderBullet) {
575          addElRole(bulletEl, 'button');
576          addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.i)(bulletEl) + 1));
577        }
578      }
579      if (bulletEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletActiveClass))) {
580        bulletEl.setAttribute('aria-current', 'true');
581      } else {
582        bulletEl.removeAttribute('aria-current');
583      }
584    });
585  }
586  const initNavEl = (el, wrapperId, message) => {
587    makeElFocusable(el);
588    if (el.tagName !== 'BUTTON') {
589      addElRole(el, 'button');
590      el.addEventListener('keydown', onEnterOrSpaceKey);
591    }
592    addElLabel(el, message);
593    addElControls(el, wrapperId);
594  };
595  const handlePointerDown = e => {
596    if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {
597      preventFocusHandler = true;
598    }
599    swiper.a11y.clicked = true;
600  };
601  const handlePointerUp = () => {
602    preventFocusHandler = false;
603    requestAnimationFrame(() => {
604      requestAnimationFrame(() => {
605        if (!swiper.destroyed) {
606          swiper.a11y.clicked = false;
607        }
608      });
609    });
610  };
611  const onVisibilityChange = e => {
612    visibilityChangedTimestamp = new Date().getTime();
613  };
614  const handleFocus = e => {
615    if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;
616    if (new Date().getTime() - visibilityChangedTimestamp < 100) return;
617    const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
618    if (!slideEl || !swiper.slides.includes(slideEl)) return;
619    focusTargetSlideEl = slideEl;
620    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
621    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
622    if (isActive || isVisible) return;
623    if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
624    if (swiper.isHorizontal()) {
625      swiper.el.scrollLeft = 0;
626    } else {
627      swiper.el.scrollTop = 0;
628    }
629    requestAnimationFrame(() => {
630      if (preventFocusHandler) return;
631      if (swiper.params.loop) {
632        swiper.slideToLoop(swiper.getSlideIndexWhenGrid(parseInt(slideEl.getAttribute('data-swiper-slide-index'))), 0);
633      } else {
634        swiper.slideTo(swiper.getSlideIndexWhenGrid(swiper.slides.indexOf(slideEl)), 0);
635      }
636      preventFocusHandler = false;
637    });
638  };
639  const initSlides = () => {
640    const params = swiper.params.a11y;
641    if (params.itemRoleDescriptionMessage) {
642      addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);
643    }
644    if (params.slideRole) {
645      addElRole(swiper.slides, params.slideRole);
646    }
647    const slidesLength = swiper.slides.length;
648    if (params.slideLabelMessage) {
649      swiper.slides.forEach((slideEl, index) => {
650        const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;
651        const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
652        addElLabel(slideEl, ariaLabelMessage);
653      });
654    }
655  };
656  const init = () => {
657    const params = swiper.params.a11y;
658    swiper.el.append(liveRegion);
659
660    // Container
661    const containerEl = swiper.el;
662    if (params.containerRoleDescriptionMessage) {
663      addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);
664    }
665    if (params.containerMessage) {
666      addElLabel(containerEl, params.containerMessage);
667    }
668    if (params.containerRole) {
669      addElRole(containerEl, params.containerRole);
670    }
671
672    // Wrapper
673    const wrapperEl = swiper.wrapperEl;
674    const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;
675    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
676    addElId(wrapperEl, wrapperId);
677    addElLive(wrapperEl, live);
678
679    // Slide
680    initSlides();
681
682    // Navigation
683    let {
684      nextEl,
685      prevEl
686    } = swiper.navigation ? swiper.navigation : {};
687    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
688    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
689    if (nextEl) {
690      nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));
691    }
692    if (prevEl) {
693      prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));
694    }
695
696    // Pagination
697    if (hasClickablePagination()) {
698      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
699      paginationEl.forEach(el => {
700        el.addEventListener('keydown', onEnterOrSpaceKey);
701      });
702    }
703
704    // Tab focus
705    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
706    document.addEventListener('visibilitychange', onVisibilityChange);
707    swiper.el.addEventListener('focus', handleFocus, true);
708    swiper.el.addEventListener('focus', handleFocus, true);
709    swiper.el.addEventListener('pointerdown', handlePointerDown, true);
710    swiper.el.addEventListener('pointerup', handlePointerUp, true);
711  };
712  function destroy() {
713    if (liveRegion) liveRegion.remove();
714    let {
715      nextEl,
716      prevEl
717    } = swiper.navigation ? swiper.navigation : {};
718    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
719    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
720    if (nextEl) {
721      nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
722    }
723    if (prevEl) {
724      prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
725    }
726
727    // Pagination
728    if (hasClickablePagination()) {
729      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
730      paginationEl.forEach(el => {
731        el.removeEventListener('keydown', onEnterOrSpaceKey);
732      });
733    }
734    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
735    document.removeEventListener('visibilitychange', onVisibilityChange);
736    // Tab focus
737    if (swiper.el && typeof swiper.el !== 'string') {
738      swiper.el.removeEventListener('focus', handleFocus, true);
739      swiper.el.removeEventListener('pointerdown', handlePointerDown, true);
740      swiper.el.removeEventListener('pointerup', handlePointerUp, true);
741    }
742  }
743  on('beforeInit', () => {
744    liveRegion = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.c)('span', swiper.params.a11y.notificationClass);
745    liveRegion.setAttribute('aria-live', 'assertive');
746    liveRegion.setAttribute('aria-atomic', 'true');
747  });
748  on('afterInit', () => {
749    if (!swiper.params.a11y.enabled) return;
750    init();
751  });
752  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
753    if (!swiper.params.a11y.enabled) return;
754    initSlides();
755  });
756  on('fromEdge toEdge afterInit lock unlock', () => {
757    if (!swiper.params.a11y.enabled) return;
758    updateNavigation();
759  });
760  on('paginationUpdate', () => {
761    if (!swiper.params.a11y.enabled) return;
762    updatePagination();
763  });
764  on('destroy', () => {
765    if (!swiper.params.a11y.enabled) return;
766    destroy();
767  });
768}
769
770
771
772
773/***/ }),
774
vendor: 10,030 bytes, lines 775-1093
775/***/ "./node_modules/swiper/modules/autoplay.mjs":
776/*!**************************************************!*\
777  !*** ./node_modules/swiper/modules/autoplay.mjs ***!
778  \**************************************************/
779/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
780
781__webpack_require__.r(__webpack_exports__);
782/* harmony export */ __webpack_require__.d(__webpack_exports__, {
783/* harmony export */   "default": () => (/* binding */ Autoplay)
784/* harmony export */ });
785/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
786
787
788/* eslint no-underscore-dangle: "off" */
789/* eslint no-use-before-define: "off" */
790function Autoplay(_ref) {
791  let {
792    swiper,
793    extendParams,
794    on,
795    emit,
796    params
797  } = _ref;
798  swiper.autoplay = {
799    running: false,
800    paused: false,
801    timeLeft: 0
802  };
803  extendParams({
804    autoplay: {
805      enabled: false,
806      delay: 3000,
807      waitForTransition: true,
808      disableOnInteraction: false,
809      stopOnLastSlide: false,
810      reverseDirection: false,
811      pauseOnMouseEnter: false
812    }
813  });
814  let timeout;
815  let raf;
816  let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;
817  let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;
818  let autoplayTimeLeft;
819  let autoplayStartTime = new Date().getTime();
820  let wasPaused;
821  let isTouched;
822  let pausedByTouch;
823  let touchStartTimeout;
824  let slideChanged;
825  let pausedByInteraction;
826  let pausedByPointerEnter;
827  function onTransitionEnd(e) {
828    if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;
829    if (e.target !== swiper.wrapperEl) return;
830    swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);
831    if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {
832      return;
833    }
834    resume();
835  }
836  const calcTimeLeft = () => {
837    if (swiper.destroyed || !swiper.autoplay.running) return;
838    if (swiper.autoplay.paused) {
839      wasPaused = true;
840    } else if (wasPaused) {
841      autoplayDelayCurrent = autoplayTimeLeft;
842      wasPaused = false;
843    }
844    const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();
845    swiper.autoplay.timeLeft = timeLeft;
846    emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);
847    raf = requestAnimationFrame(() => {
848      calcTimeLeft();
849    });
850  };
851  const getSlideDelay = () => {
852    let activeSlideEl;
853    if (swiper.virtual && swiper.params.virtual.enabled) {
854      activeSlideEl = swiper.slides.find(slideEl => slideEl.classList.contains('swiper-slide-active'));
855    } else {
856      activeSlideEl = swiper.slides[swiper.activeIndex];
857    }
858    if (!activeSlideEl) return undefined;
859    const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);
860    return currentSlideDelay;
861  };
862  const run = delayForce => {
863    if (swiper.destroyed || !swiper.autoplay.running) return;
864    cancelAnimationFrame(raf);
865    calcTimeLeft();
866    let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;
867    autoplayDelayTotal = swiper.params.autoplay.delay;
868    autoplayDelayCurrent = swiper.params.autoplay.delay;
869    const currentSlideDelay = getSlideDelay();
870    if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {
871      delay = currentSlideDelay;
872      autoplayDelayTotal = currentSlideDelay;
873      autoplayDelayCurrent = currentSlideDelay;
874    }
875    autoplayTimeLeft = delay;
876    const speed = swiper.params.speed;
877    const proceed = () => {
878      if (!swiper || swiper.destroyed) return;
879      if (swiper.params.autoplay.reverseDirection) {
880        if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {
881          swiper.slidePrev(speed, true, true);
882          emit('autoplay');
883        } else if (!swiper.params.autoplay.stopOnLastSlide) {
884          swiper.slideTo(swiper.slides.length - 1, speed, true, true);
885          emit('autoplay');
886        }
887      } else {
888        if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {
889          swiper.slideNext(speed, true, true);
890          emit('autoplay');
891        } else if (!swiper.params.autoplay.stopOnLastSlide) {
892          swiper.slideTo(0, speed, true, true);
893          emit('autoplay');
894        }
895      }
896      if (swiper.params.cssMode) {
897        autoplayStartTime = new Date().getTime();
898        requestAnimationFrame(() => {
899          run();
900        });
901      }
902    };
903    if (delay > 0) {
904      clearTimeout(timeout);
905      timeout = setTimeout(() => {
906        proceed();
907      }, delay);
908    } else {
909      requestAnimationFrame(() => {
910        proceed();
911      });
912    }
913
914    // eslint-disable-next-line
915    return delay;
916  };
917  const start = () => {
918    autoplayStartTime = new Date().getTime();
919    swiper.autoplay.running = true;
920    run();
921    emit('autoplayStart');
922  };
923  const stop = () => {
924    swiper.autoplay.running = false;
925    clearTimeout(timeout);
926    cancelAnimationFrame(raf);
927    emit('autoplayStop');
928  };
929  const pause = (internal, reset) => {
930    if (swiper.destroyed || !swiper.autoplay.running) return;
931    clearTimeout(timeout);
932    if (!internal) {
933      pausedByInteraction = true;
934    }
935    const proceed = () => {
936      emit('autoplayPause');
937      if (swiper.params.autoplay.waitForTransition) {
938        swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);
939      } else {
940        resume();
941      }
942    };
943    swiper.autoplay.paused = true;
944    if (reset) {
945      if (slideChanged) {
946        autoplayTimeLeft = swiper.params.autoplay.delay;
947      }
948      slideChanged = false;
949      proceed();
950      return;
951    }
952    const delay = autoplayTimeLeft || swiper.params.autoplay.delay;
953    autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);
954    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;
955    if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;
956    proceed();
957  };
958  const resume = () => {
959    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;
960    autoplayStartTime = new Date().getTime();
961    if (pausedByInteraction) {
962      pausedByInteraction = false;
963      run(autoplayTimeLeft);
964    } else {
965      run();
966    }
967    swiper.autoplay.paused = false;
968    emit('autoplayResume');
969  };
970  const onVisibilityChange = () => {
971    if (swiper.destroyed || !swiper.autoplay.running) return;
972    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
973    if (document.visibilityState === 'hidden') {
974      pausedByInteraction = true;
975      pause(true);
976    }
977    if (document.visibilityState === 'visible') {
978      resume();
979    }
980  };
981  const onPointerEnter = e => {
982    if (e.pointerType !== 'mouse') return;
983    pausedByInteraction = true;
984    pausedByPointerEnter = true;
985    if (swiper.animating || swiper.autoplay.paused) return;
986    pause(true);
987  };
988  const onPointerLeave = e => {
989    if (e.pointerType !== 'mouse') return;
990    pausedByPointerEnter = false;
991    if (swiper.autoplay.paused) {
992      resume();
993    }
994  };
995  const attachMouseEvents = () => {
996    if (swiper.params.autoplay.pauseOnMouseEnter) {
997      swiper.el.addEventListener('pointerenter', onPointerEnter);
998      swiper.el.addEventListener('pointerleave', onPointerLeave);
999    }
1000  };
1001  const detachMouseEvents = () => {
1002    if (swiper.el && typeof swiper.el !== 'string') {
1003      swiper.el.removeEventListener('pointerenter', onPointerEnter);
1004      swiper.el.removeEventListener('pointerleave', onPointerLeave);
1005    }
1006  };
1007  const attachDocumentEvents = () => {
1008    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
1009    document.addEventListener('visibilitychange', onVisibilityChange);
1010  };
1011  const detachDocumentEvents = () => {
1012    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
1013    document.removeEventListener('visibilitychange', onVisibilityChange);
1014  };
1015  on('init', () => {
1016    if (swiper.params.autoplay.enabled) {
1017      attachMouseEvents();
1018      attachDocumentEvents();
1019      start();
1020    }
1021  });
1022  on('destroy', () => {
1023    detachMouseEvents();
1024    detachDocumentEvents();
1025    if (swiper.autoplay.running) {
1026      stop();
1027    }
1028  });
1029  on('_freeModeStaticRelease', () => {
1030    if (pausedByTouch || pausedByInteraction) {
1031      resume();
1032    }
1033  });
1034  on('_freeModeNoMomentumRelease', () => {
1035    if (!swiper.params.autoplay.disableOnInteraction) {
1036      pause(true, true);
1037    } else {
1038      stop();
1039    }
1040  });
1041  on('beforeTransitionStart', (_s, speed, internal) => {
1042    if (swiper.destroyed || !swiper.autoplay.running) return;
1043    if (internal || !swiper.params.autoplay.disableOnInteraction) {
1044      pause(true, true);
1045    } else {
1046      stop();
1047    }
1048  });
1049  on('sliderFirstMove', () => {
1050    if (swiper.destroyed || !swiper.autoplay.running) return;
1051    if (swiper.params.autoplay.disableOnInteraction) {
1052      stop();
1053      return;
1054    }
1055    isTouched = true;
1056    pausedByTouch = false;
1057    pausedByInteraction = false;
1058    touchStartTimeout = setTimeout(() => {
1059      pausedByInteraction = true;
1060      pausedByTouch = true;
1061      pause(true);
1062    }, 200);
1063  });
1064  on('touchEnd', () => {
1065    if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;
1066    clearTimeout(touchStartTimeout);
1067    clearTimeout(timeout);
1068    if (swiper.params.autoplay.disableOnInteraction) {
1069      pausedByTouch = false;
1070      isTouched = false;
1071      return;
1072    }
1073    if (pausedByTouch && swiper.params.cssMode) resume();
1074    pausedByTouch = false;
1075    isTouched = false;
1076  });
1077  on('slideChange', () => {
1078    if (swiper.destroyed || !swiper.autoplay.running) return;
1079    slideChanged = true;
1080  });
1081  Object.assign(swiper.autoplay, {
1082    start,
1083    stop,
1084    pause,
1085    resume
1086  });
1087}
1088
1089
1090
1091
1092/***/ }),
1093
vendor: 7,499 bytes, lines 1094-1299
1094/***/ "./node_modules/swiper/modules/controller.mjs":
1095/*!****************************************************!*\
1096  !*** ./node_modules/swiper/modules/controller.mjs ***!
1097  \****************************************************/
1098/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1099
1100__webpack_require__.r(__webpack_exports__);
1101/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1102/* harmony export */   "default": () => (/* binding */ Controller)
1103/* harmony export */ });
1104/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1105
1106
1107/* eslint no-bitwise: ["error", { "allow": [">>"] }] */
1108function Controller(_ref) {
1109  let {
1110    swiper,
1111    extendParams,
1112    on
1113  } = _ref;
1114  extendParams({
1115    controller: {
1116      control: undefined,
1117      inverse: false,
1118      by: 'slide' // or 'container'
1119    }
1120  });
1121
1122  swiper.controller = {
1123    control: undefined
1124  };
1125  function LinearSpline(x, y) {
1126    const binarySearch = function search() {
1127      let maxIndex;
1128      let minIndex;
1129      let guess;
1130      return (array, val) => {
1131        minIndex = -1;
1132        maxIndex = array.length;
1133        while (maxIndex - minIndex > 1) {
1134          guess = maxIndex + minIndex >> 1;
1135          if (array[guess] <= val) {
1136            minIndex = guess;
1137          } else {
1138            maxIndex = guess;
1139          }
1140        }
1141        return maxIndex;
1142      };
1143    }();
1144    this.x = x;
1145    this.y = y;
1146    this.lastIndex = x.length - 1;
1147    // Given an x value (x2), return the expected y2 value:
1148    // (x1,y1) is the known point before given value,
1149    // (x3,y3) is the known point after given value.
1150    let i1;
1151    let i3;
1152    this.interpolate = function interpolate(x2) {
1153      if (!x2) return 0;
1154
1155      // Get the indexes of x1 and x3 (the array indexes before and after given x2):
1156      i3 = binarySearch(this.x, x2);
1157      i1 = i3 - 1;
1158
1159      // We have our indexes i1 & i3, so we can calculate already:
1160      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
1161      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
1162    };
1163    return this;
1164  }
1165  function getInterpolateFunction(c) {
1166    swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
1167  }
1168  function setTranslate(_t, byController) {
1169    const controlled = swiper.controller.control;
1170    let multiplier;
1171    let controlledTranslate;
1172    const Swiper = swiper.constructor;
1173    function setControlledTranslate(c) {
1174      if (c.destroyed) return;
1175
1176      // this will create an Interpolate function based on the snapGrids
1177      // x is the Grid of the scrolled scroller and y will be the controlled scroller
1178      // it makes sense to create this only once and recall it for the interpolation
1179      // the function does a lot of value caching for performance
1180      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;
1181      if (swiper.params.controller.by === 'slide') {
1182        getInterpolateFunction(c);
1183        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
1184        // but it did not work out
1185        controlledTranslate = -swiper.controller.spline.interpolate(-translate);
1186      }
1187      if (!controlledTranslate || swiper.params.controller.by === 'container') {
1188        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
1189        if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {
1190          multiplier = 1;
1191        }
1192        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
1193      }
1194      if (swiper.params.controller.inverse) {
1195        controlledTranslate = c.maxTranslate() - controlledTranslate;
1196      }
1197      c.updateProgress(controlledTranslate);
1198      c.setTranslate(controlledTranslate, swiper);
1199      c.updateActiveIndex();
1200      c.updateSlidesClasses();
1201    }
1202    if (Array.isArray(controlled)) {
1203      for (let i = 0; i < controlled.length; i += 1) {
1204        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
1205          setControlledTranslate(controlled[i]);
1206        }
1207      }
1208    } else if (controlled instanceof Swiper && byController !== controlled) {
1209      setControlledTranslate(controlled);
1210    }
1211  }
1212  function setTransition(duration, byController) {
1213    const Swiper = swiper.constructor;
1214    const controlled = swiper.controller.control;
1215    let i;
1216    function setControlledTransition(c) {
1217      if (c.destroyed) return;
1218      c.setTransition(duration, swiper);
1219      if (duration !== 0) {
1220        c.transitionStart();
1221        if (c.params.autoHeight) {
1222          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.n)(() => {
1223            c.updateAutoHeight();
1224          });
1225        }
1226        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(c.wrapperEl, () => {
1227          if (!controlled) return;
1228          c.transitionEnd();
1229        });
1230      }
1231    }
1232    if (Array.isArray(controlled)) {
1233      for (i = 0; i < controlled.length; i += 1) {
1234        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
1235          setControlledTransition(controlled[i]);
1236        }
1237      }
1238    } else if (controlled instanceof Swiper && byController !== controlled) {
1239      setControlledTransition(controlled);
1240    }
1241  }
1242  function removeSpline() {
1243    if (!swiper.controller.control) return;
1244    if (swiper.controller.spline) {
1245      swiper.controller.spline = undefined;
1246      delete swiper.controller.spline;
1247    }
1248  }
1249  on('beforeInit', () => {
1250    if (typeof window !== 'undefined' && (
1251    // eslint-disable-line
1252    typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {
1253      const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];
1254      controlElements.forEach(controlElement => {
1255        if (!swiper.controller.control) swiper.controller.control = [];
1256        if (controlElement && controlElement.swiper) {
1257          swiper.controller.control.push(controlElement.swiper);
1258        } else if (controlElement) {
1259          const eventName = `${swiper.params.eventsPrefix}init`;
1260          const onControllerSwiper = e => {
1261            swiper.controller.control.push(e.detail[0]);
1262            swiper.update();
1263            controlElement.removeEventListener(eventName, onControllerSwiper);
1264          };
1265          controlElement.addEventListener(eventName, onControllerSwiper);
1266        }
1267      });
1268      return;
1269    }
1270    swiper.controller.control = swiper.params.controller.control;
1271  });
1272  on('update', () => {
1273    removeSpline();
1274  });
1275  on('resize', () => {
1276    removeSpline();
1277  });
1278  on('observerUpdate', () => {
1279    removeSpline();
1280  });
1281  on('setTranslate', (_s, translate, byController) => {
1282    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
1283    swiper.controller.setTranslate(translate, byController);
1284  });
1285  on('setTransition', (_s, duration, byController) => {
1286    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
1287    swiper.controller.setTransition(duration, byController);
1288  });
1289  Object.assign(swiper.controller, {
1290    setTranslate,
1291    setTransition
1292  });
1293}
1294
1295
1296
1297
1298/***/ }),
1299
vendor: 6,023 bytes, lines 1300-1446
1300/***/ "./node_modules/swiper/modules/effect-cards.mjs":
1301/*!******************************************************!*\
1302  !*** ./node_modules/swiper/modules/effect-cards.mjs ***!
1303  \******************************************************/
1304/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1305
1306__webpack_require__.r(__webpack_exports__);
1307/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1308/* harmony export */   "default": () => (/* binding */ EffectCards)
1309/* harmony export */ });
1310/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1311/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1312/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1313/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
1314/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1315
1316
1317
1318
1319
1320
1321function EffectCards(_ref) {
1322  let {
1323    swiper,
1324    extendParams,
1325    on
1326  } = _ref;
1327  extendParams({
1328    cardsEffect: {
1329      slideShadows: true,
1330      rotate: true,
1331      perSlideRotate: 2,
1332      perSlideOffset: 8
1333    }
1334  });
1335  const setTranslate = () => {
1336    const {
1337      slides,
1338      activeIndex,
1339      rtlTranslate: rtl
1340    } = swiper;
1341    const params = swiper.params.cardsEffect;
1342    const {
1343      startTranslate,
1344      isTouched
1345    } = swiper.touchEventsData;
1346    const currentTranslate = rtl ? -swiper.translate : swiper.translate;
1347    for (let i = 0; i < slides.length; i += 1) {
1348      const slideEl = slides[i];
1349      const slideProgress = slideEl.progress;
1350      const progress = Math.min(Math.max(slideProgress, -4), 4);
1351      let offset = slideEl.swiperSlideOffset;
1352      if (swiper.params.centeredSlides && !swiper.params.cssMode) {
1353        swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;
1354      }
1355      if (swiper.params.centeredSlides && swiper.params.cssMode) {
1356        offset -= slides[0].swiperSlideOffset;
1357      }
1358      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;
1359      let tY = 0;
1360      const tZ = -100 * Math.abs(progress);
1361      let scale = 1;
1362      let rotate = -params.perSlideRotate * progress;
1363      let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;
1364      const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;
1365      const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;
1366      const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;
1367      if (isSwipeToNext || isSwipeToPrev) {
1368        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
1369        rotate += -28 * progress * subProgress;
1370        scale += -0.5 * subProgress;
1371        tXAdd += 96 * subProgress;
1372        tY = `${-25 * subProgress * Math.abs(progress)}%`;
1373      }
1374      if (progress < 0) {
1375        // next
1376        tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;
1377      } else if (progress > 0) {
1378        // prev
1379        tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;
1380      } else {
1381        tX = `${tX}px`;
1382      }
1383      if (!swiper.isHorizontal()) {
1384        const prevY = tY;
1385        tY = tX;
1386        tX = prevY;
1387      }
1388      const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
1389
1390      /* eslint-disable */
1391      const transform = `
1392        translate3d(${tX}, ${tY}, ${tZ}px)
1393        rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)
1394        scale(${scaleString})
1395      `;
1396      /* eslint-enable */
1397
1398      if (params.slideShadows) {
1399        // Set shadows
1400        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
1401        if (!shadowEl) {
1402          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('cards', slideEl);
1403        }
1404        if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
1405      }
1406      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
1407      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1408      targetEl.style.transform = transform;
1409    }
1410  };
1411  const setTransition = duration => {
1412    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1413    transformElements.forEach(el => {
1414      el.style.transitionDuration = `${duration}ms`;
1415      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
1416        shadowEl.style.transitionDuration = `${duration}ms`;
1417      });
1418    });
1419    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1420      swiper,
1421      duration,
1422      transformElements
1423    });
1424  };
1425  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1426    effect: 'cards',
1427    swiper,
1428    on,
1429    setTranslate,
1430    setTransition,
1431    perspective: () => true,
1432    overwriteParams: () => ({
1433      _loopSwapReset: false,
1434      watchSlidesProgress: true,
1435      loopAdditionalSlides: swiper.params.cardsEffect.rotate ? 3 : 2,
1436      centeredSlides: true,
1437      virtualTranslate: !swiper.params.cssMode
1438    })
1439  });
1440}
1441
1442
1443
1444
1445/***/ }),
1446
vendor: 5,680 bytes, lines 1447-1568
1447/***/ "./node_modules/swiper/modules/effect-coverflow.mjs":
1448/*!**********************************************************!*\
1449  !*** ./node_modules/swiper/modules/effect-coverflow.mjs ***!
1450  \**********************************************************/
1451/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1452
1453__webpack_require__.r(__webpack_exports__);
1454/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1455/* harmony export */   "default": () => (/* binding */ EffectCoverflow)
1456/* harmony export */ });
1457/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1458/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1459/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1460/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1461
1462
1463
1464
1465
1466function EffectCoverflow(_ref) {
1467  let {
1468    swiper,
1469    extendParams,
1470    on
1471  } = _ref;
1472  extendParams({
1473    coverflowEffect: {
1474      rotate: 50,
1475      stretch: 0,
1476      depth: 100,
1477      scale: 1,
1478      modifier: 1,
1479      slideShadows: true
1480    }
1481  });
1482  const setTranslate = () => {
1483    const {
1484      width: swiperWidth,
1485      height: swiperHeight,
1486      slides,
1487      slidesSizesGrid
1488    } = swiper;
1489    const params = swiper.params.coverflowEffect;
1490    const isHorizontal = swiper.isHorizontal();
1491    const transform = swiper.translate;
1492    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
1493    const rotate = isHorizontal ? params.rotate : -params.rotate;
1494    const translate = params.depth;
1495    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.p)(swiper);
1496    // Each slide offset from center
1497    for (let i = 0, length = slides.length; i < length; i += 1) {
1498      const slideEl = slides[i];
1499      const slideSize = slidesSizesGrid[i];
1500      const slideOffset = slideEl.swiperSlideOffset;
1501      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
1502      const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
1503      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
1504      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
1505      // var rotateZ = 0
1506      let translateZ = -translate * Math.abs(offsetMultiplier);
1507      let stretch = params.stretch;
1508      // Allow percentage to make a relative stretch for responsive sliders
1509      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
1510        stretch = parseFloat(params.stretch) / 100 * slideSize;
1511      }
1512      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
1513      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
1514      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);
1515
1516      // Fix for ultra small values
1517      if (Math.abs(translateX) < 0.001) translateX = 0;
1518      if (Math.abs(translateY) < 0.001) translateY = 0;
1519      if (Math.abs(translateZ) < 0.001) translateZ = 0;
1520      if (Math.abs(rotateY) < 0.001) rotateY = 0;
1521      if (Math.abs(rotateX) < 0.001) rotateX = 0;
1522      if (Math.abs(scale) < 0.001) scale = 0;
1523      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;
1524      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1525      targetEl.style.transform = slideTransform;
1526      slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
1527      if (params.slideShadows) {
1528        // Set shadows
1529        let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1530        let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1531        if (!shadowBeforeEl) {
1532          shadowBeforeEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'left' : 'top');
1533        }
1534        if (!shadowAfterEl) {
1535          shadowAfterEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
1536        }
1537        if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
1538        if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
1539      }
1540    }
1541  };
1542  const setTransition = duration => {
1543    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
1544    transformElements.forEach(el => {
1545      el.style.transitionDuration = `${duration}ms`;
1546      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
1547        shadowEl.style.transitionDuration = `${duration}ms`;
1548      });
1549    });
1550  };
1551  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1552    effect: 'coverflow',
1553    swiper,
1554    on,
1555    setTranslate,
1556    setTransition,
1557    perspective: () => true,
1558    overwriteParams: () => ({
1559      watchSlidesProgress: true
1560    })
1561  });
1562}
1563
1564
1565
1566
1567/***/ }),
1568
vendor: 6,449 bytes, lines 1569-1733
1569/***/ "./node_modules/swiper/modules/effect-creative.mjs":
1570/*!*********************************************************!*\
1571  !*** ./node_modules/swiper/modules/effect-creative.mjs ***!
1572  \*********************************************************/
1573/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1574
1575__webpack_require__.r(__webpack_exports__);
1576/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1577/* harmony export */   "default": () => (/* binding */ EffectCreative)
1578/* harmony export */ });
1579/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1580/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1581/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1582/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
1583/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1584
1585
1586
1587
1588
1589
1590function EffectCreative(_ref) {
1591  let {
1592    swiper,
1593    extendParams,
1594    on
1595  } = _ref;
1596  extendParams({
1597    creativeEffect: {
1598      limitProgress: 1,
1599      shadowPerProgress: false,
1600      progressMultiplier: 1,
1601      perspective: true,
1602      prev: {
1603        translate: [0, 0, 0],
1604        rotate: [0, 0, 0],
1605        opacity: 1,
1606        scale: 1
1607      },
1608      next: {
1609        translate: [0, 0, 0],
1610        rotate: [0, 0, 0],
1611        opacity: 1,
1612        scale: 1
1613      }
1614    }
1615  });
1616  const getTranslateValue = value => {
1617    if (typeof value === 'string') return value;
1618    return `${value}px`;
1619  };
1620  const setTranslate = () => {
1621    const {
1622      slides,
1623      wrapperEl,
1624      slidesSizesGrid
1625    } = swiper;
1626    const params = swiper.params.creativeEffect;
1627    const {
1628      progressMultiplier: multiplier
1629    } = params;
1630    const isCenteredSlides = swiper.params.centeredSlides;
1631    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.p)(swiper);
1632    if (isCenteredSlides) {
1633      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;
1634      wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;
1635    }
1636    for (let i = 0; i < slides.length; i += 1) {
1637      const slideEl = slides[i];
1638      const slideProgress = slideEl.progress;
1639      const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);
1640      let originalProgress = progress;
1641      if (!isCenteredSlides) {
1642        originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);
1643      }
1644      const offset = slideEl.swiperSlideOffset;
1645      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];
1646      const r = [0, 0, 0];
1647      let custom = false;
1648      if (!swiper.isHorizontal()) {
1649        t[1] = t[0];
1650        t[0] = 0;
1651      }
1652      let data = {
1653        translate: [0, 0, 0],
1654        rotate: [0, 0, 0],
1655        scale: 1,
1656        opacity: 1
1657      };
1658      if (progress < 0) {
1659        data = params.next;
1660        custom = true;
1661      } else if (progress > 0) {
1662        data = params.prev;
1663        custom = true;
1664      }
1665      // set translate
1666      t.forEach((value, index) => {
1667        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
1668      });
1669      // set rotates
1670      r.forEach((value, index) => {
1671        let val = data.rotate[index] * Math.abs(progress * multiplier);
1672        r[index] = val;
1673      });
1674      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
1675      const translateString = t.join(', ');
1676      const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;
1677      const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
1678      const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;
1679      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;
1680
1681      // Set shadows
1682      if (custom && data.shadow || !custom) {
1683        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
1684        if (!shadowEl && data.shadow) {
1685          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('creative', slideEl);
1686        }
1687        if (shadowEl) {
1688          const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
1689          shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
1690        }
1691      }
1692      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1693      targetEl.style.transform = transform;
1694      targetEl.style.opacity = opacityString;
1695      if (data.origin) {
1696        targetEl.style.transformOrigin = data.origin;
1697      }
1698    }
1699  };
1700  const setTransition = duration => {
1701    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1702    transformElements.forEach(el => {
1703      el.style.transitionDuration = `${duration}ms`;
1704      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
1705        shadowEl.style.transitionDuration = `${duration}ms`;
1706      });
1707    });
1708    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1709      swiper,
1710      duration,
1711      transformElements,
1712      allSlides: true
1713    });
1714  };
1715  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1716    effect: 'creative',
1717    swiper,
1718    on,
1719    setTranslate,
1720    setTransition,
1721    perspective: () => swiper.params.creativeEffect.perspective,
1722    overwriteParams: () => ({
1723      watchSlidesProgress: true,
1724      virtualTranslate: !swiper.params.cssMode
1725    })
1726  });
1727}
1728
1729
1730
1731
1732/***/ }),
1733
vendor: 7,602 bytes, lines 1734-1923
1734/***/ "./node_modules/swiper/modules/effect-cube.mjs":
1735/*!*****************************************************!*\
1736  !*** ./node_modules/swiper/modules/effect-cube.mjs ***!
1737  \*****************************************************/
1738/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1739
1740__webpack_require__.r(__webpack_exports__);
1741/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1742/* harmony export */   "default": () => (/* binding */ EffectCube)
1743/* harmony export */ });
1744/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1745/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1746
1747
1748
1749function EffectCube(_ref) {
1750  let {
1751    swiper,
1752    extendParams,
1753    on
1754  } = _ref;
1755  extendParams({
1756    cubeEffect: {
1757      slideShadows: true,
1758      shadow: true,
1759      shadowOffset: 20,
1760      shadowScale: 0.94
1761    }
1762  });
1763  const createSlideShadows = (slideEl, progress, isHorizontal) => {
1764    let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1765    let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1766    if (!shadowBefore) {
1767      shadowBefore = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));
1768      slideEl.append(shadowBefore);
1769    }
1770    if (!shadowAfter) {
1771      shadowAfter = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));
1772      slideEl.append(shadowAfter);
1773    }
1774    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
1775    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
1776  };
1777  const recreateShadows = () => {
1778    // create new ones
1779    const isHorizontal = swiper.isHorizontal();
1780    swiper.slides.forEach(slideEl => {
1781      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
1782      createSlideShadows(slideEl, progress, isHorizontal);
1783    });
1784  };
1785  const setTranslate = () => {
1786    const {
1787      el,
1788      wrapperEl,
1789      slides,
1790      width: swiperWidth,
1791      height: swiperHeight,
1792      rtlTranslate: rtl,
1793      size: swiperSize,
1794      browser
1795    } = swiper;
1796    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(swiper);
1797    const params = swiper.params.cubeEffect;
1798    const isHorizontal = swiper.isHorizontal();
1799    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
1800    let wrapperRotate = 0;
1801    let cubeShadowEl;
1802    if (params.shadow) {
1803      if (isHorizontal) {
1804        cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');
1805        if (!cubeShadowEl) {
1806          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
1807          swiper.wrapperEl.append(cubeShadowEl);
1808        }
1809        cubeShadowEl.style.height = `${swiperWidth}px`;
1810      } else {
1811        cubeShadowEl = el.querySelector('.swiper-cube-shadow');
1812        if (!cubeShadowEl) {
1813          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
1814          el.append(cubeShadowEl);
1815        }
1816      }
1817    }
1818    for (let i = 0; i < slides.length; i += 1) {
1819      const slideEl = slides[i];
1820      let slideIndex = i;
1821      if (isVirtual) {
1822        slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);
1823      }
1824      let slideAngle = slideIndex * 90;
1825      let round = Math.floor(slideAngle / 360);
1826      if (rtl) {
1827        slideAngle = -slideAngle;
1828        round = Math.floor(-slideAngle / 360);
1829      }
1830      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
1831      let tx = 0;
1832      let ty = 0;
1833      let tz = 0;
1834      if (slideIndex % 4 === 0) {
1835        tx = -round * 4 * swiperSize;
1836        tz = 0;
1837      } else if ((slideIndex - 1) % 4 === 0) {
1838        tx = 0;
1839        tz = -round * 4 * swiperSize;
1840      } else if ((slideIndex - 2) % 4 === 0) {
1841        tx = swiperSize + round * 4 * swiperSize;
1842        tz = swiperSize;
1843      } else if ((slideIndex - 3) % 4 === 0) {
1844        tx = -swiperSize;
1845        tz = 3 * swiperSize + swiperSize * 4 * round;
1846      }
1847      if (rtl) {
1848        tx = -tx;
1849      }
1850      if (!isHorizontal) {
1851        ty = tx;
1852        tx = 0;
1853      }
1854      const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
1855      if (progress <= 1 && progress > -1) {
1856        wrapperRotate = slideIndex * 90 + progress * 90;
1857        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
1858      }
1859      slideEl.style.transform = transform;
1860      if (params.slideShadows) {
1861        createSlideShadows(slideEl, progress, isHorizontal);
1862      }
1863    }
1864    wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;
1865    wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;
1866    if (params.shadow) {
1867      if (isHorizontal) {
1868        cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;
1869      } else {
1870        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
1871        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
1872        const scale1 = params.shadowScale;
1873        const scale2 = params.shadowScale / multiplier;
1874        const offset = params.shadowOffset;
1875        cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;
1876      }
1877    }
1878    const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;
1879    wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;
1880    wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
1881  };
1882  const setTransition = duration => {
1883    const {
1884      el,
1885      slides
1886    } = swiper;
1887    slides.forEach(slideEl => {
1888      slideEl.style.transitionDuration = `${duration}ms`;
1889      slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {
1890        subEl.style.transitionDuration = `${duration}ms`;
1891      });
1892    });
1893    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {
1894      const shadowEl = el.querySelector('.swiper-cube-shadow');
1895      if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;
1896    }
1897  };
1898  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
1899    effect: 'cube',
1900    swiper,
1901    on,
1902    setTranslate,
1903    setTransition,
1904    recreateShadows,
1905    getEffectParams: () => swiper.params.cubeEffect,
1906    perspective: () => true,
1907    overwriteParams: () => ({
1908      slidesPerView: 1,
1909      slidesPerGroup: 1,
1910      watchSlidesProgress: true,
1911      resistanceRatio: 0,
1912      spaceBetween: 0,
1913      centeredSlides: false,
1914      virtualTranslate: true
1915    })
1916  });
1917}
1918
1919
1920
1921
1922/***/ }),
1923
vendor: 3,069 bytes, lines 1924-2007
1924/***/ "./node_modules/swiper/modules/effect-fade.mjs":
1925/*!*****************************************************!*\
1926  !*** ./node_modules/swiper/modules/effect-fade.mjs ***!
1927  \*****************************************************/
1928/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1929
1930__webpack_require__.r(__webpack_exports__);
1931/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1932/* harmony export */   "default": () => (/* binding */ EffectFade)
1933/* harmony export */ });
1934/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1935/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1936/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
1937/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1938
1939
1940
1941
1942
1943function EffectFade(_ref) {
1944  let {
1945    swiper,
1946    extendParams,
1947    on
1948  } = _ref;
1949  extendParams({
1950    fadeEffect: {
1951      crossFade: false
1952    }
1953  });
1954  const setTranslate = () => {
1955    const {
1956      slides
1957    } = swiper;
1958    const params = swiper.params.fadeEffect;
1959    for (let i = 0; i < slides.length; i += 1) {
1960      const slideEl = swiper.slides[i];
1961      const offset = slideEl.swiperSlideOffset;
1962      let tx = -offset;
1963      if (!swiper.params.virtualTranslate) tx -= swiper.translate;
1964      let ty = 0;
1965      if (!swiper.isHorizontal()) {
1966        ty = tx;
1967        tx = 0;
1968      }
1969      const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);
1970      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(params, slideEl);
1971      targetEl.style.opacity = slideOpacity;
1972      targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;
1973    }
1974  };
1975  const setTransition = duration => {
1976    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
1977    transformElements.forEach(el => {
1978      el.style.transitionDuration = `${duration}ms`;
1979    });
1980    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_2__.e)({
1981      swiper,
1982      duration,
1983      transformElements,
1984      allSlides: true
1985    });
1986  };
1987  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
1988    effect: 'fade',
1989    swiper,
1990    on,
1991    setTranslate,
1992    setTransition,
1993    overwriteParams: () => ({
1994      slidesPerView: 1,
1995      slidesPerGroup: 1,
1996      watchSlidesProgress: true,
1997      spaceBetween: 0,
1998      virtualTranslate: !swiper.params.cssMode
1999    })
2000  });
2001}
2002
2003
2004
2005
2006/***/ }),
2007
vendor: 5,302 bytes, lines 2008-2137
2008/***/ "./node_modules/swiper/modules/effect-flip.mjs":
2009/*!*****************************************************!*\
2010  !*** ./node_modules/swiper/modules/effect-flip.mjs ***!
2011  \*****************************************************/
2012/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2013
2014__webpack_require__.r(__webpack_exports__);
2015/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2016/* harmony export */   "default": () => (/* binding */ EffectFlip)
2017/* harmony export */ });
2018/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
2019/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
2020/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
2021/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
2022/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2023
2024
2025
2026
2027
2028
2029function EffectFlip(_ref) {
2030  let {
2031    swiper,
2032    extendParams,
2033    on
2034  } = _ref;
2035  extendParams({
2036    flipEffect: {
2037      slideShadows: true,
2038      limitRotation: true
2039    }
2040  });
2041  const createSlideShadows = (slideEl, progress) => {
2042    let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
2043    let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
2044    if (!shadowBefore) {
2045      shadowBefore = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
2046    }
2047    if (!shadowAfter) {
2048      shadowAfter = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
2049    }
2050    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
2051    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
2052  };
2053  const recreateShadows = () => {
2054    // Set shadows
2055    swiper.params.flipEffect;
2056    swiper.slides.forEach(slideEl => {
2057      let progress = slideEl.progress;
2058      if (swiper.params.flipEffect.limitRotation) {
2059        progress = Math.max(Math.min(slideEl.progress, 1), -1);
2060      }
2061      createSlideShadows(slideEl, progress);
2062    });
2063  };
2064  const setTranslate = () => {
2065    const {
2066      slides,
2067      rtlTranslate: rtl
2068    } = swiper;
2069    const params = swiper.params.flipEffect;
2070    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.p)(swiper);
2071    for (let i = 0; i < slides.length; i += 1) {
2072      const slideEl = slides[i];
2073      let progress = slideEl.progress;
2074      if (swiper.params.flipEffect.limitRotation) {
2075        progress = Math.max(Math.min(slideEl.progress, 1), -1);
2076      }
2077      const offset = slideEl.swiperSlideOffset;
2078      const rotate = -180 * progress;
2079      let rotateY = rotate;
2080      let rotateX = 0;
2081      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
2082      let ty = 0;
2083      if (!swiper.isHorizontal()) {
2084        ty = tx;
2085        tx = 0;
2086        rotateX = -rotateY;
2087        rotateY = 0;
2088      } else if (rtl) {
2089        rotateY = -rotateY;
2090      }
2091      slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
2092      if (params.slideShadows) {
2093        createSlideShadows(slideEl, progress);
2094      }
2095      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;
2096      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
2097      targetEl.style.transform = transform;
2098    }
2099  };
2100  const setTransition = duration => {
2101    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
2102    transformElements.forEach(el => {
2103      el.style.transitionDuration = `${duration}ms`;
2104      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
2105        shadowEl.style.transitionDuration = `${duration}ms`;
2106      });
2107    });
2108    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
2109      swiper,
2110      duration,
2111      transformElements
2112    });
2113  };
2114  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
2115    effect: 'flip',
2116    swiper,
2117    on,
2118    setTranslate,
2119    setTransition,
2120    recreateShadows,
2121    getEffectParams: () => swiper.params.flipEffect,
2122    perspective: () => true,
2123    overwriteParams: () => ({
2124      slidesPerView: 1,
2125      slidesPerGroup: 1,
2126      watchSlidesProgress: true,
2127      spaceBetween: 0,
2128      virtualTranslate: !swiper.params.cssMode
2129    })
2130  });
2131}
2132
2133
2134
2135
2136/***/ }),
2137
vendor: 9,227 bytes, lines 2138-2389
2138/***/ "./node_modules/swiper/modules/free-mode.mjs":
2139/*!***************************************************!*\
2140  !*** ./node_modules/swiper/modules/free-mode.mjs ***!
2141  \***************************************************/
2142/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2143
2144__webpack_require__.r(__webpack_exports__);
2145/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2146/* harmony export */   "default": () => (/* binding */ freeMode)
2147/* harmony export */ });
2148/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2149
2150
2151function freeMode(_ref) {
2152  let {
2153    swiper,
2154    extendParams,
2155    emit,
2156    once
2157  } = _ref;
2158  extendParams({
2159    freeMode: {
2160      enabled: false,
2161      momentum: true,
2162      momentumRatio: 1,
2163      momentumBounce: true,
2164      momentumBounceRatio: 1,
2165      momentumVelocityRatio: 1,
2166      sticky: false,
2167      minimumVelocity: 0.02
2168    }
2169  });
2170  function onTouchStart() {
2171    if (swiper.params.cssMode) return;
2172    const translate = swiper.getTranslate();
2173    swiper.setTranslate(translate);
2174    swiper.setTransition(0);
2175    swiper.touchEventsData.velocities.length = 0;
2176    swiper.freeMode.onTouchEnd({
2177      currentPos: swiper.rtl ? swiper.translate : -swiper.translate
2178    });
2179  }
2180  function onTouchMove() {
2181    if (swiper.params.cssMode) return;
2182    const {
2183      touchEventsData: data,
2184      touches
2185    } = swiper;
2186    // Velocity
2187    if (data.velocities.length === 0) {
2188      data.velocities.push({
2189        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
2190        time: data.touchStartTime
2191      });
2192    }
2193    data.velocities.push({
2194      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
2195      time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.f)()
2196    });
2197  }
2198  function onTouchEnd(_ref2) {
2199    let {
2200      currentPos
2201    } = _ref2;
2202    if (swiper.params.cssMode) return;
2203    const {
2204      params,
2205      wrapperEl,
2206      rtlTranslate: rtl,
2207      snapGrid,
2208      touchEventsData: data
2209    } = swiper;
2210    // Time diff
2211    const touchEndTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.f)();
2212    const timeDiff = touchEndTime - data.touchStartTime;
2213    if (currentPos < -swiper.minTranslate()) {
2214      swiper.slideTo(swiper.activeIndex);
2215      return;
2216    }
2217    if (currentPos > -swiper.maxTranslate()) {
2218      if (swiper.slides.length < snapGrid.length) {
2219        swiper.slideTo(snapGrid.length - 1);
2220      } else {
2221        swiper.slideTo(swiper.slides.length - 1);
2222      }
2223      return;
2224    }
2225    if (params.freeMode.momentum) {
2226      if (data.velocities.length > 1) {
2227        const lastMoveEvent = data.velocities.pop();
2228        const velocityEvent = data.velocities.pop();
2229        const distance = lastMoveEvent.position - velocityEvent.position;
2230        const time = lastMoveEvent.time - velocityEvent.time;
2231        swiper.velocity = distance / time;
2232        swiper.velocity /= 2;
2233        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
2234          swiper.velocity = 0;
2235        }
2236        // this implies that the user stopped moving a finger then released.
2237        // There would be no events with distance zero, so the last event is stale.
2238        if (time > 150 || (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.f)() - lastMoveEvent.time > 300) {
2239          swiper.velocity = 0;
2240        }
2241      } else {
2242        swiper.velocity = 0;
2243      }
2244      swiper.velocity *= params.freeMode.momentumVelocityRatio;
2245      data.velocities.length = 0;
2246      let momentumDuration = 1000 * params.freeMode.momentumRatio;
2247      const momentumDistance = swiper.velocity * momentumDuration;
2248      let newPosition = swiper.translate + momentumDistance;
2249      if (rtl) newPosition = -newPosition;
2250      let doBounce = false;
2251      let afterBouncePosition;
2252      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
2253      let needsLoopFix;
2254      if (newPosition < swiper.maxTranslate()) {
2255        if (params.freeMode.momentumBounce) {
2256          if (newPosition + swiper.maxTranslate() < -bounceAmount) {
2257            newPosition = swiper.maxTranslate() - bounceAmount;
2258          }
2259          afterBouncePosition = swiper.maxTranslate();
2260          doBounce = true;
2261          data.allowMomentumBounce = true;
2262        } else {
2263          newPosition = swiper.maxTranslate();
2264        }
2265        if (params.loop && params.centeredSlides) needsLoopFix = true;
2266      } else if (newPosition > swiper.minTranslate()) {
2267        if (params.freeMode.momentumBounce) {
2268          if (newPosition - swiper.minTranslate() > bounceAmount) {
2269            newPosition = swiper.minTranslate() + bounceAmount;
2270          }
2271          afterBouncePosition = swiper.minTranslate();
2272          doBounce = true;
2273          data.allowMomentumBounce = true;
2274        } else {
2275          newPosition = swiper.minTranslate();
2276        }
2277        if (params.loop && params.centeredSlides) needsLoopFix = true;
2278      } else if (params.freeMode.sticky) {
2279        let nextSlide;
2280        for (let j = 0; j < snapGrid.length; j += 1) {
2281          if (snapGrid[j] > -newPosition) {
2282            nextSlide = j;
2283            break;
2284          }
2285        }
2286        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
2287          newPosition = snapGrid[nextSlide];
2288        } else {
2289          newPosition = snapGrid[nextSlide - 1];
2290        }
2291        newPosition = -newPosition;
2292      }
2293      if (needsLoopFix) {
2294        once('transitionEnd', () => {
2295          swiper.loopFix();
2296        });
2297      }
2298      // Fix duration
2299      if (swiper.velocity !== 0) {
2300        if (rtl) {
2301          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
2302        } else {
2303          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
2304        }
2305        if (params.freeMode.sticky) {
2306          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
2307          // event, then durations can be 20+ seconds to slide one (or zero!) slides.
2308          // It's easy to see this when simulating touch with mouse events. To fix this,
2309          // limit single-slide swipes to the default slide duration. This also has the
2310          // nice side effect of matching slide speed if the user stopped moving before
2311          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
2312          // For faster swipes, also apply limits (albeit higher ones).
2313          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
2314          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
2315          if (moveDistance < currentSlideSize) {
2316            momentumDuration = params.speed;
2317          } else if (moveDistance < 2 * currentSlideSize) {
2318            momentumDuration = params.speed * 1.5;
2319          } else {
2320            momentumDuration = params.speed * 2.5;
2321          }
2322        }
2323      } else if (params.freeMode.sticky) {
2324        swiper.slideToClosest();
2325        return;
2326      }
2327      if (params.freeMode.momentumBounce && doBounce) {
2328        swiper.updateProgress(afterBouncePosition);
2329        swiper.setTransition(momentumDuration);
2330        swiper.setTranslate(newPosition);
2331        swiper.transitionStart(true, swiper.swipeDirection);
2332        swiper.animating = true;
2333        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(wrapperEl, () => {
2334          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
2335          emit('momentumBounce');
2336          swiper.setTransition(params.speed);
2337          setTimeout(() => {
2338            swiper.setTranslate(afterBouncePosition);
2339            (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(wrapperEl, () => {
2340              if (!swiper || swiper.destroyed) return;
2341              swiper.transitionEnd();
2342            });
2343          }, 0);
2344        });
2345      } else if (swiper.velocity) {
2346        emit('_freeModeNoMomentumRelease');
2347        swiper.updateProgress(newPosition);
2348        swiper.setTransition(momentumDuration);
2349        swiper.setTranslate(newPosition);
2350        swiper.transitionStart(true, swiper.swipeDirection);
2351        if (!swiper.animating) {
2352          swiper.animating = true;
2353          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(wrapperEl, () => {
2354            if (!swiper || swiper.destroyed) return;
2355            swiper.transitionEnd();
2356          });
2357        }
2358      } else {
2359        swiper.updateProgress(newPosition);
2360      }
2361      swiper.updateActiveIndex();
2362      swiper.updateSlidesClasses();
2363    } else if (params.freeMode.sticky) {
2364      swiper.slideToClosest();
2365      return;
2366    } else if (params.freeMode) {
2367      emit('_freeModeNoMomentumRelease');
2368    }
2369    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
2370      emit('_freeModeStaticRelease');
2371      swiper.updateProgress();
2372      swiper.updateActiveIndex();
2373      swiper.updateSlidesClasses();
2374    }
2375  }
2376  Object.assign(swiper, {
2377    freeMode: {
2378      onTouchStart,
2379      onTouchMove,
2380      onTouchEnd
2381    }
2382  });
2383}
2384
2385
2386
2387
2388/***/ }),
2389
vendor: 5,697 bytes, lines 2390-2558
2390/***/ "./node_modules/swiper/modules/grid.mjs":
2391/*!**********************************************!*\
2392  !*** ./node_modules/swiper/modules/grid.mjs ***!
2393  \**********************************************/
2394/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2395
2396__webpack_require__.r(__webpack_exports__);
2397/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2398/* harmony export */   "default": () => (/* binding */ Grid)
2399/* harmony export */ });
2400function Grid(_ref) {
2401  let {
2402    swiper,
2403    extendParams,
2404    on
2405  } = _ref;
2406  extendParams({
2407    grid: {
2408      rows: 1,
2409      fill: 'column'
2410    }
2411  });
2412  let slidesNumberEvenToRows;
2413  let slidesPerRow;
2414  let numFullColumns;
2415  let wasMultiRow;
2416  const getSpaceBetween = () => {
2417    let spaceBetween = swiper.params.spaceBetween;
2418    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
2419      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
2420    } else if (typeof spaceBetween === 'string') {
2421      spaceBetween = parseFloat(spaceBetween);
2422    }
2423    return spaceBetween;
2424  };
2425  const initSlides = slides => {
2426    const {
2427      slidesPerView
2428    } = swiper.params;
2429    const {
2430      rows,
2431      fill
2432    } = swiper.params.grid;
2433    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
2434    numFullColumns = Math.floor(slidesLength / rows);
2435    if (Math.floor(slidesLength / rows) === slidesLength / rows) {
2436      slidesNumberEvenToRows = slidesLength;
2437    } else {
2438      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
2439    }
2440    if (slidesPerView !== 'auto' && fill === 'row') {
2441      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
2442    }
2443    slidesPerRow = slidesNumberEvenToRows / rows;
2444  };
2445  const unsetSlides = () => {
2446    if (swiper.slides) {
2447      swiper.slides.forEach(slide => {
2448        if (slide.swiperSlideGridSet) {
2449          slide.style.height = '';
2450          slide.style[swiper.getDirectionLabel('margin-top')] = '';
2451        }
2452      });
2453    }
2454  };
2455  const updateSlide = (i, slide, slides) => {
2456    const {
2457      slidesPerGroup
2458    } = swiper.params;
2459    const spaceBetween = getSpaceBetween();
2460    const {
2461      rows,
2462      fill
2463    } = swiper.params.grid;
2464    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
2465    // Set slides order
2466    let newSlideOrderIndex;
2467    let column;
2468    let row;
2469    if (fill === 'row' && slidesPerGroup > 1) {
2470      const groupIndex = Math.floor(i / (slidesPerGroup * rows));
2471      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
2472      const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
2473      row = Math.floor(slideIndexInGroup / columnsInGroup);
2474      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
2475      newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
2476      slide.style.order = newSlideOrderIndex;
2477    } else if (fill === 'column') {
2478      column = Math.floor(i / rows);
2479      row = i - column * rows;
2480      if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
2481        row += 1;
2482        if (row >= rows) {
2483          row = 0;
2484          column += 1;
2485        }
2486      }
2487    } else {
2488      row = Math.floor(i / slidesPerRow);
2489      column = i - row * slidesPerRow;
2490    }
2491    slide.row = row;
2492    slide.column = column;
2493    slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;
2494    slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
2495    slide.swiperSlideGridSet = true;
2496  };
2497  const updateWrapperSize = (slideSize, snapGrid) => {
2498    const {
2499      centeredSlides,
2500      roundLengths
2501    } = swiper.params;
2502    const spaceBetween = getSpaceBetween();
2503    const {
2504      rows
2505    } = swiper.params.grid;
2506    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
2507    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
2508    if (!swiper.params.cssMode) {
2509      swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
2510    }
2511    if (centeredSlides) {
2512      const newSlidesGrid = [];
2513      for (let i = 0; i < snapGrid.length; i += 1) {
2514        let slidesGridItem = snapGrid[i];
2515        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
2516        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
2517      }
2518      snapGrid.splice(0, snapGrid.length);
2519      snapGrid.push(...newSlidesGrid);
2520    }
2521  };
2522  const onInit = () => {
2523    wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
2524  };
2525  const onUpdate = () => {
2526    const {
2527      params,
2528      el
2529    } = swiper;
2530    const isMultiRow = params.grid && params.grid.rows > 1;
2531    if (wasMultiRow && !isMultiRow) {
2532      el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
2533      numFullColumns = 1;
2534      swiper.emitContainerClasses();
2535    } else if (!wasMultiRow && isMultiRow) {
2536      el.classList.add(`${params.containerModifierClass}grid`);
2537      if (params.grid.fill === 'column') {
2538        el.classList.add(`${params.containerModifierClass}grid-column`);
2539      }
2540      swiper.emitContainerClasses();
2541    }
2542    wasMultiRow = isMultiRow;
2543  };
2544  on('init', onInit);
2545  on('update', onUpdate);
2546  swiper.grid = {
2547    initSlides,
2548    unsetSlides,
2549    updateSlide,
2550    updateWrapperSize
2551  };
2552}
2553
2554
2555
2556
2557/***/ }),
2558
vendor: 4,393 bytes, lines 2559-2667
2559/***/ "./node_modules/swiper/modules/hash-navigation.mjs":
2560/*!*********************************************************!*\
2561  !*** ./node_modules/swiper/modules/hash-navigation.mjs ***!
2562  \*********************************************************/
2563/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2564
2565__webpack_require__.r(__webpack_exports__);
2566/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2567/* harmony export */   "default": () => (/* binding */ HashNavigation)
2568/* harmony export */ });
2569/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
2570/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2571
2572
2573
2574function HashNavigation(_ref) {
2575  let {
2576    swiper,
2577    extendParams,
2578    emit,
2579    on
2580  } = _ref;
2581  let initialized = false;
2582  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
2583  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2584  extendParams({
2585    hashNavigation: {
2586      enabled: false,
2587      replaceState: false,
2588      watchState: false,
2589      getSlideIndex(_s, hash) {
2590        if (swiper.virtual && swiper.params.virtual.enabled) {
2591          const slideWithHash = swiper.slides.find(slideEl => slideEl.getAttribute('data-hash') === hash);
2592          if (!slideWithHash) return 0;
2593          const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
2594          return index;
2595        }
2596        return swiper.getSlideIndex((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]);
2597      }
2598    }
2599  });
2600  const onHashChange = () => {
2601    emit('hashChange');
2602    const newHash = document.location.hash.replace('#', '');
2603    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
2604    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';
2605    if (newHash !== activeSlideHash) {
2606      const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);
2607      if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;
2608      swiper.slideTo(newIndex);
2609    }
2610  };
2611  const setHash = () => {
2612    if (!initialized || !swiper.params.hashNavigation.enabled) return;
2613    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
2614    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';
2615    if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
2616      window.history.replaceState(null, null, `#${activeSlideHash}` || '');
2617      emit('hashSet');
2618    } else {
2619      document.location.hash = activeSlideHash || '';
2620      emit('hashSet');
2621    }
2622  };
2623  const init = () => {
2624    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;
2625    initialized = true;
2626    const hash = document.location.hash.replace('#', '');
2627    if (hash) {
2628      const speed = 0;
2629      const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);
2630      swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);
2631    }
2632    if (swiper.params.hashNavigation.watchState) {
2633      window.addEventListener('hashchange', onHashChange);
2634    }
2635  };
2636  const destroy = () => {
2637    if (swiper.params.hashNavigation.watchState) {
2638      window.removeEventListener('hashchange', onHashChange);
2639    }
2640  };
2641  on('init', () => {
2642    if (swiper.params.hashNavigation.enabled) {
2643      init();
2644    }
2645  });
2646  on('destroy', () => {
2647    if (swiper.params.hashNavigation.enabled) {
2648      destroy();
2649    }
2650  });
2651  on('transitionEnd _freeModeNoMomentumRelease', () => {
2652    if (initialized) {
2653      setHash();
2654    }
2655  });
2656  on('slideChange', () => {
2657    if (initialized && swiper.params.cssMode) {
2658      setHash();
2659    }
2660  });
2661}
2662
2663
2664
2665
2666/***/ }),
2667
vendor: 5,110 bytes, lines 2668-2824
2668/***/ "./node_modules/swiper/modules/history.mjs":
2669/*!*************************************************!*\
2670  !*** ./node_modules/swiper/modules/history.mjs ***!
2671  \*************************************************/
2672/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2673
2674__webpack_require__.r(__webpack_exports__);
2675/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2676/* harmony export */   "default": () => (/* binding */ History)
2677/* harmony export */ });
2678/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
2679
2680
2681function History(_ref) {
2682  let {
2683    swiper,
2684    extendParams,
2685    on
2686  } = _ref;
2687  extendParams({
2688    history: {
2689      enabled: false,
2690      root: '',
2691      replaceState: false,
2692      key: 'slides',
2693      keepQuery: false
2694    }
2695  });
2696  let initialized = false;
2697  let paths = {};
2698  const slugify = text => {
2699    return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
2700  };
2701  const getPathValues = urlOverride => {
2702    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2703    let location;
2704    if (urlOverride) {
2705      location = new URL(urlOverride);
2706    } else {
2707      location = window.location;
2708    }
2709    const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');
2710    const total = pathArray.length;
2711    const key = pathArray[total - 2];
2712    const value = pathArray[total - 1];
2713    return {
2714      key,
2715      value
2716    };
2717  };
2718  const setHistory = (key, index) => {
2719    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2720    if (!initialized || !swiper.params.history.enabled) return;
2721    let location;
2722    if (swiper.params.url) {
2723      location = new URL(swiper.params.url);
2724    } else {
2725      location = window.location;
2726    }
2727    const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : swiper.slides[index];
2728    let value = slugify(slide.getAttribute('data-history'));
2729    if (swiper.params.history.root.length > 0) {
2730      let root = swiper.params.history.root;
2731      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);
2732      value = `${root}/${key ? `${key}/` : ''}${value}`;
2733    } else if (!location.pathname.includes(key)) {
2734      value = `${key ? `${key}/` : ''}${value}`;
2735    }
2736    if (swiper.params.history.keepQuery) {
2737      value += location.search;
2738    }
2739    const currentState = window.history.state;
2740    if (currentState && currentState.value === value) {
2741      return;
2742    }
2743    if (swiper.params.history.replaceState) {
2744      window.history.replaceState({
2745        value
2746      }, null, value);
2747    } else {
2748      window.history.pushState({
2749        value
2750      }, null, value);
2751    }
2752  };
2753  const scrollToSlide = (speed, value, runCallbacks) => {
2754    if (value) {
2755      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
2756        const slide = swiper.slides[i];
2757        const slideHistory = slugify(slide.getAttribute('data-history'));
2758        if (slideHistory === value) {
2759          const index = swiper.getSlideIndex(slide);
2760          swiper.slideTo(index, speed, runCallbacks);
2761        }
2762      }
2763    } else {
2764      swiper.slideTo(0, speed, runCallbacks);
2765    }
2766  };
2767  const setHistoryPopState = () => {
2768    paths = getPathValues(swiper.params.url);
2769    scrollToSlide(swiper.params.speed, paths.value, false);
2770  };
2771  const init = () => {
2772    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2773    if (!swiper.params.history) return;
2774    if (!window.history || !window.history.pushState) {
2775      swiper.params.history.enabled = false;
2776      swiper.params.hashNavigation.enabled = true;
2777      return;
2778    }
2779    initialized = true;
2780    paths = getPathValues(swiper.params.url);
2781    if (!paths.key && !paths.value) {
2782      if (!swiper.params.history.replaceState) {
2783        window.addEventListener('popstate', setHistoryPopState);
2784      }
2785      return;
2786    }
2787    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
2788    if (!swiper.params.history.replaceState) {
2789      window.addEventListener('popstate', setHistoryPopState);
2790    }
2791  };
2792  const destroy = () => {
2793    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2794    if (!swiper.params.history.replaceState) {
2795      window.removeEventListener('popstate', setHistoryPopState);
2796    }
2797  };
2798  on('init', () => {
2799    if (swiper.params.history.enabled) {
2800      init();
2801    }
2802  });
2803  on('destroy', () => {
2804    if (swiper.params.history.enabled) {
2805      destroy();
2806    }
2807  });
2808  on('transitionEnd _freeModeNoMomentumRelease', () => {
2809    if (initialized) {
2810      setHistory(swiper.params.history.key, swiper.activeIndex);
2811    }
2812  });
2813  on('slideChange', () => {
2814    if (initialized && swiper.params.cssMode) {
2815      setHistory(swiper.params.history.key, swiper.activeIndex);
2816    }
2817  });
2818}
2819
2820
2821
2822
2823/***/ }),
2824
vendor: 5,305 bytes, lines 2825-2957
2825/***/ "./node_modules/swiper/modules/keyboard.mjs":
2826/*!**************************************************!*\
2827  !*** ./node_modules/swiper/modules/keyboard.mjs ***!
2828  \**************************************************/
2829/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2830
2831__webpack_require__.r(__webpack_exports__);
2832/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2833/* harmony export */   "default": () => (/* binding */ Keyboard)
2834/* harmony export */ });
2835/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
2836/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2837
2838
2839
2840/* eslint-disable consistent-return */
2841function Keyboard(_ref) {
2842  let {
2843    swiper,
2844    extendParams,
2845    on,
2846    emit
2847  } = _ref;
2848  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
2849  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2850  swiper.keyboard = {
2851    enabled: false
2852  };
2853  extendParams({
2854    keyboard: {
2855      enabled: false,
2856      onlyInViewport: true,
2857      pageUpDown: true
2858    }
2859  });
2860  function handle(event) {
2861    if (!swiper.enabled) return;
2862    const {
2863      rtlTranslate: rtl
2864    } = swiper;
2865    let e = event;
2866    if (e.originalEvent) e = e.originalEvent; // jquery fix
2867    const kc = e.keyCode || e.charCode;
2868    const pageUpDown = swiper.params.keyboard.pageUpDown;
2869    const isPageUp = pageUpDown && kc === 33;
2870    const isPageDown = pageUpDown && kc === 34;
2871    const isArrowLeft = kc === 37;
2872    const isArrowRight = kc === 39;
2873    const isArrowUp = kc === 38;
2874    const isArrowDown = kc === 40;
2875    // Directions locks
2876    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {
2877      return false;
2878    }
2879    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {
2880      return false;
2881    }
2882    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
2883      return undefined;
2884    }
2885    if (document.activeElement && (document.activeElement.isContentEditable || document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea'))) {
2886      return undefined;
2887    }
2888    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {
2889      let inView = false;
2890      // Check that swiper should be inside of visible area of window
2891      if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {
2892        return undefined;
2893      }
2894      const el = swiper.el;
2895      const swiperWidth = el.clientWidth;
2896      const swiperHeight = el.clientHeight;
2897      const windowWidth = window.innerWidth;
2898      const windowHeight = window.innerHeight;
2899      const swiperOffset = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(el);
2900      if (rtl) swiperOffset.left -= el.scrollLeft;
2901      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
2902      for (let i = 0; i < swiperCoord.length; i += 1) {
2903        const point = swiperCoord[i];
2904        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
2905          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
2906          inView = true;
2907        }
2908      }
2909      if (!inView) return undefined;
2910    }
2911    if (swiper.isHorizontal()) {
2912      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
2913        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
2914      }
2915      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
2916      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
2917    } else {
2918      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
2919        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
2920      }
2921      if (isPageDown || isArrowDown) swiper.slideNext();
2922      if (isPageUp || isArrowUp) swiper.slidePrev();
2923    }
2924    emit('keyPress', kc);
2925    return undefined;
2926  }
2927  function enable() {
2928    if (swiper.keyboard.enabled) return;
2929    document.addEventListener('keydown', handle);
2930    swiper.keyboard.enabled = true;
2931  }
2932  function disable() {
2933    if (!swiper.keyboard.enabled) return;
2934    document.removeEventListener('keydown', handle);
2935    swiper.keyboard.enabled = false;
2936  }
2937  on('init', () => {
2938    if (swiper.params.keyboard.enabled) {
2939      enable();
2940    }
2941  });
2942  on('destroy', () => {
2943    if (swiper.keyboard.enabled) {
2944      disable();
2945    }
2946  });
2947  Object.assign(swiper.keyboard, {
2948    enable,
2949    disable
2950  });
2951}
2952
2953
2954
2955
2956/***/ }),
2957
vendor: 5,841 bytes, lines 2958-3165
2958/***/ "./node_modules/swiper/modules/manipulation.mjs":
2959/*!******************************************************!*\
2960  !*** ./node_modules/swiper/modules/manipulation.mjs ***!
2961  \******************************************************/
2962/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2963
2964__webpack_require__.r(__webpack_exports__);
2965/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2966/* harmony export */   "default": () => (/* binding */ Manipulation)
2967/* harmony export */ });
2968/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2969
2970
2971function appendSlide(slides) {
2972  const swiper = this;
2973  const {
2974    params,
2975    slidesEl
2976  } = swiper;
2977  if (params.loop) {
2978    swiper.loopDestroy();
2979  }
2980  const appendElement = slideEl => {
2981    if (typeof slideEl === 'string') {
2982      const tempDOM = document.createElement('div');
2983      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.s)(tempDOM, slideEl);
2984      slidesEl.append(tempDOM.children[0]);
2985      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.s)(tempDOM, '');
2986    } else {
2987      slidesEl.append(slideEl);
2988    }
2989  };
2990  if (typeof slides === 'object' && 'length' in slides) {
2991    for (let i = 0; i < slides.length; i += 1) {
2992      if (slides[i]) appendElement(slides[i]);
2993    }
2994  } else {
2995    appendElement(slides);
2996  }
2997  swiper.recalcSlides();
2998  if (params.loop) {
2999    swiper.loopCreate();
3000  }
3001  if (!params.observer || swiper.isElement) {
3002    swiper.update();
3003  }
3004}
3005
3006function prependSlide(slides) {
3007  const swiper = this;
3008  const {
3009    params,
3010    activeIndex,
3011    slidesEl
3012  } = swiper;
3013  if (params.loop) {
3014    swiper.loopDestroy();
3015  }
3016  let newActiveIndex = activeIndex + 1;
3017  const prependElement = slideEl => {
3018    if (typeof slideEl === 'string') {
3019      const tempDOM = document.createElement('div');
3020      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.s)(tempDOM, slideEl);
3021      slidesEl.prepend(tempDOM.children[0]);
3022      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.s)(tempDOM, '');
3023    } else {
3024      slidesEl.prepend(slideEl);
3025    }
3026  };
3027  if (typeof slides === 'object' && 'length' in slides) {
3028    for (let i = 0; i < slides.length; i += 1) {
3029      if (slides[i]) prependElement(slides[i]);
3030    }
3031    newActiveIndex = activeIndex + slides.length;
3032  } else {
3033    prependElement(slides);
3034  }
3035  swiper.recalcSlides();
3036  if (params.loop) {
3037    swiper.loopCreate();
3038  }
3039  if (!params.observer || swiper.isElement) {
3040    swiper.update();
3041  }
3042  swiper.slideTo(newActiveIndex, 0, false);
3043}
3044
3045function addSlide(index, slides) {
3046  const swiper = this;
3047  const {
3048    params,
3049    activeIndex,
3050    slidesEl
3051  } = swiper;
3052  let activeIndexBuffer = activeIndex;
3053  if (params.loop) {
3054    activeIndexBuffer -= swiper.loopedSlides;
3055    swiper.loopDestroy();
3056    swiper.recalcSlides();
3057  }
3058  const baseLength = swiper.slides.length;
3059  if (index <= 0) {
3060    swiper.prependSlide(slides);
3061    return;
3062  }
3063  if (index >= baseLength) {
3064    swiper.appendSlide(slides);
3065    return;
3066  }
3067  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
3068  const slidesBuffer = [];
3069  for (let i = baseLength - 1; i >= index; i -= 1) {
3070    const currentSlide = swiper.slides[i];
3071    currentSlide.remove();
3072    slidesBuffer.unshift(currentSlide);
3073  }
3074  if (typeof slides === 'object' && 'length' in slides) {
3075    for (let i = 0; i < slides.length; i += 1) {
3076      if (slides[i]) slidesEl.append(slides[i]);
3077    }
3078    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
3079  } else {
3080    slidesEl.append(slides);
3081  }
3082  for (let i = 0; i < slidesBuffer.length; i += 1) {
3083    slidesEl.append(slidesBuffer[i]);
3084  }
3085  swiper.recalcSlides();
3086  if (params.loop) {
3087    swiper.loopCreate();
3088  }
3089  if (!params.observer || swiper.isElement) {
3090    swiper.update();
3091  }
3092  if (params.loop) {
3093    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
3094  } else {
3095    swiper.slideTo(newActiveIndex, 0, false);
3096  }
3097}
3098
3099function removeSlide(slidesIndexes) {
3100  const swiper = this;
3101  const {
3102    params,
3103    activeIndex
3104  } = swiper;
3105  let activeIndexBuffer = activeIndex;
3106  if (params.loop) {
3107    activeIndexBuffer -= swiper.loopedSlides;
3108    swiper.loopDestroy();
3109  }
3110  let newActiveIndex = activeIndexBuffer;
3111  let indexToRemove;
3112  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
3113    for (let i = 0; i < slidesIndexes.length; i += 1) {
3114      indexToRemove = slidesIndexes[i];
3115      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
3116      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
3117    }
3118    newActiveIndex = Math.max(newActiveIndex, 0);
3119  } else {
3120    indexToRemove = slidesIndexes;
3121    if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
3122    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
3123    newActiveIndex = Math.max(newActiveIndex, 0);
3124  }
3125  swiper.recalcSlides();
3126  if (params.loop) {
3127    swiper.loopCreate();
3128  }
3129  if (!params.observer || swiper.isElement) {
3130    swiper.update();
3131  }
3132  if (params.loop) {
3133    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
3134  } else {
3135    swiper.slideTo(newActiveIndex, 0, false);
3136  }
3137}
3138
3139function removeAllSlides() {
3140  const swiper = this;
3141  const slidesIndexes = [];
3142  for (let i = 0; i < swiper.slides.length; i += 1) {
3143    slidesIndexes.push(i);
3144  }
3145  swiper.removeSlide(slidesIndexes);
3146}
3147
3148function Manipulation(_ref) {
3149  let {
3150    swiper
3151  } = _ref;
3152  Object.assign(swiper, {
3153    appendSlide: appendSlide.bind(swiper),
3154    prependSlide: prependSlide.bind(swiper),
3155    addSlide: addSlide.bind(swiper),
3156    removeSlide: removeSlide.bind(swiper),
3157    removeAllSlides: removeAllSlides.bind(swiper)
3158  });
3159}
3160
3161
3162
3163
3164/***/ }),
3165
vendor: 15,995 bytes, lines 3166-3576
3166/***/ "./node_modules/swiper/modules/mousewheel.mjs":
3167/*!****************************************************!*\
3168  !*** ./node_modules/swiper/modules/mousewheel.mjs ***!
3169  \****************************************************/
3170/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3171
3172__webpack_require__.r(__webpack_exports__);
3173/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3174/* harmony export */   "default": () => (/* binding */ Mousewheel)
3175/* harmony export */ });
3176/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
3177/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3178
3179
3180
3181/* eslint-disable consistent-return */
3182function Mousewheel(_ref) {
3183  let {
3184    swiper,
3185    extendParams,
3186    on,
3187    emit
3188  } = _ref;
3189  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
3190  extendParams({
3191    mousewheel: {
3192      enabled: false,
3193      releaseOnEdges: false,
3194      invert: false,
3195      forceToAxis: false,
3196      sensitivity: 1,
3197      eventsTarget: 'container',
3198      thresholdDelta: null,
3199      thresholdTime: null,
3200      noMousewheelClass: 'swiper-no-mousewheel'
3201    }
3202  });
3203  swiper.mousewheel = {
3204    enabled: false
3205  };
3206  let timeout;
3207  let lastScrollTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
3208  let lastEventBeforeSnap;
3209  const recentWheelEvents = [];
3210  function normalize(e) {
3211    // Reasonable defaults
3212    const PIXEL_STEP = 10;
3213    const LINE_HEIGHT = 40;
3214    const PAGE_HEIGHT = 800;
3215    let sX = 0;
3216    let sY = 0; // spinX, spinY
3217    let pX = 0;
3218    let pY = 0; // pixelX, pixelY
3219
3220    // Legacy
3221    if ('detail' in e) {
3222      sY = e.detail;
3223    }
3224    if ('wheelDelta' in e) {
3225      sY = -e.wheelDelta / 120;
3226    }
3227    if ('wheelDeltaY' in e) {
3228      sY = -e.wheelDeltaY / 120;
3229    }
3230    if ('wheelDeltaX' in e) {
3231      sX = -e.wheelDeltaX / 120;
3232    }
3233
3234    // side scrolling on FF with DOMMouseScroll
3235    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {
3236      sX = sY;
3237      sY = 0;
3238    }
3239    pX = sX * PIXEL_STEP;
3240    pY = sY * PIXEL_STEP;
3241    if ('deltaY' in e) {
3242      pY = e.deltaY;
3243    }
3244    if ('deltaX' in e) {
3245      pX = e.deltaX;
3246    }
3247    if (e.shiftKey && !pX) {
3248      // if user scrolls with shift he wants horizontal scroll
3249      pX = pY;
3250      pY = 0;
3251    }
3252    if ((pX || pY) && e.deltaMode) {
3253      if (e.deltaMode === 1) {
3254        // delta in LINE units
3255        pX *= LINE_HEIGHT;
3256        pY *= LINE_HEIGHT;
3257      } else {
3258        // delta in PAGE units
3259        pX *= PAGE_HEIGHT;
3260        pY *= PAGE_HEIGHT;
3261      }
3262    }
3263
3264    // Fall-back if spin cannot be determined
3265    if (pX && !sX) {
3266      sX = pX < 1 ? -1 : 1;
3267    }
3268    if (pY && !sY) {
3269      sY = pY < 1 ? -1 : 1;
3270    }
3271    return {
3272      spinX: sX,
3273      spinY: sY,
3274      pixelX: pX,
3275      pixelY: pY
3276    };
3277  }
3278  function handleMouseEnter() {
3279    if (!swiper.enabled) return;
3280    swiper.mouseEntered = true;
3281  }
3282  function handleMouseLeave() {
3283    if (!swiper.enabled) return;
3284    swiper.mouseEntered = false;
3285  }
3286  function animateSlider(newEvent) {
3287    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {
3288      // Prevent if delta of wheel scroll delta is below configured threshold
3289      return false;
3290    }
3291    if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {
3292      // Prevent if time between scrolls is below configured threshold
3293      return false;
3294    }
3295
3296    // If the movement is NOT big enough and
3297    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):
3298    //   Don't go any further (avoid insignificant scroll movement).
3299    if (newEvent.delta >= 6 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)() - lastScrollTime < 60) {
3300      // Return false as a default
3301      return true;
3302    }
3303    // If user is scrolling towards the end:
3304    //   If the slider hasn't hit the latest slide or
3305    //   if the slider is a loop and
3306    //   if the slider isn't moving right now:
3307    //     Go to next slide and
3308    //     emit a scroll event.
3309    // Else (the user is scrolling towards the beginning) and
3310    // if the slider hasn't hit the first slide or
3311    // if the slider is a loop and
3312    // if the slider isn't moving right now:
3313    //   Go to prev slide and
3314    //   emit a scroll event.
3315    if (newEvent.direction < 0) {
3316      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {
3317        swiper.slideNext();
3318        emit('scroll', newEvent.raw);
3319      }
3320    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {
3321      swiper.slidePrev();
3322      emit('scroll', newEvent.raw);
3323    }
3324    // If you got here is because an animation has been triggered so store the current time
3325    lastScrollTime = new window.Date().getTime();
3326    // Return false as a default
3327    return false;
3328  }
3329  function releaseScroll(newEvent) {
3330    const params = swiper.params.mousewheel;
3331    if (newEvent.direction < 0) {
3332      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {
3333        // Return true to animate scroll on edges
3334        return true;
3335      }
3336    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {
3337      // Return true to animate scroll on edges
3338      return true;
3339    }
3340    return false;
3341  }
3342  function handle(event) {
3343    let e = event;
3344    let disableParentSwiper = true;
3345    if (!swiper.enabled) return;
3346
3347    // Ignore event if the target or its parents have the swiper-no-mousewheel class
3348    if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;
3349    const params = swiper.params.mousewheel;
3350    if (swiper.params.cssMode) {
3351      e.preventDefault();
3352    }
3353    let targetEl = swiper.el;
3354    if (swiper.params.mousewheel.eventsTarget !== 'container') {
3355      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
3356    }
3357    const targetElContainsTarget = targetEl && targetEl.contains(e.target);
3358    if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;
3359    if (e.originalEvent) e = e.originalEvent; // jquery fix
3360    let delta = 0;
3361    const rtlFactor = swiper.rtlTranslate ? -1 : 1;
3362    const data = normalize(e);
3363    if (params.forceToAxis) {
3364      if (swiper.isHorizontal()) {
3365        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;
3366      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;
3367    } else {
3368      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;
3369    }
3370    if (delta === 0) return true;
3371    if (params.invert) delta = -delta;
3372
3373    // Get the scroll positions
3374    let positions = swiper.getTranslate() + delta * params.sensitivity;
3375    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();
3376    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();
3377
3378    // When loop is true:
3379    //     the disableParentSwiper will be true.
3380    // When loop is false:
3381    //     if the scroll positions is not on edge,
3382    //     then the disableParentSwiper will be true.
3383    //     if the scroll on edge positions,
3384    //     then the disableParentSwiper will be false.
3385    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());
3386    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();
3387    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {
3388      // Register the new event in a variable which stores the relevant data
3389      const newEvent = {
3390        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(),
3391        delta: Math.abs(delta),
3392        direction: Math.sign(delta),
3393        raw: event
3394      };
3395
3396      // Keep the most recent events
3397      if (recentWheelEvents.length >= 2) {
3398        recentWheelEvents.shift(); // only store the last N events
3399      }
3400
3401      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
3402      recentWheelEvents.push(newEvent);
3403
3404      // If there is at least one previous recorded event:
3405      //   If direction has changed or
3406      //   if the scroll is quicker than the previous one:
3407      //     Animate the slider.
3408      // Else (this is the first time the wheel is moved):
3409      //     Animate the slider.
3410      if (prevEvent) {
3411        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {
3412          animateSlider(newEvent);
3413        }
3414      } else {
3415        animateSlider(newEvent);
3416      }
3417
3418      // If it's time to release the scroll:
3419      //   Return now so you don't hit the preventDefault.
3420      if (releaseScroll(newEvent)) {
3421        return true;
3422      }
3423    } else {
3424      // Freemode or scrollContainer:
3425
3426      // If we recently snapped after a momentum scroll, then ignore wheel events
3427      // to give time for the deceleration to finish. Stop ignoring after 500 msecs
3428      // or if it's a new scroll (larger delta or inverse sign as last event before
3429      // an end-of-momentum snap).
3430      const newEvent = {
3431        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(),
3432        delta: Math.abs(delta),
3433        direction: Math.sign(delta)
3434      };
3435      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;
3436      if (!ignoreWheelEvents) {
3437        lastEventBeforeSnap = undefined;
3438        let position = swiper.getTranslate() + delta * params.sensitivity;
3439        const wasBeginning = swiper.isBeginning;
3440        const wasEnd = swiper.isEnd;
3441        if (position >= swiper.minTranslate()) position = swiper.minTranslate();
3442        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();
3443        swiper.setTransition(0);
3444        swiper.setTranslate(position);
3445        swiper.updateProgress();
3446        swiper.updateActiveIndex();
3447        swiper.updateSlidesClasses();
3448        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {
3449          swiper.updateSlidesClasses();
3450        }
3451        if (swiper.params.loop) {
3452          swiper.loopFix({
3453            direction: newEvent.direction < 0 ? 'next' : 'prev',
3454            byMousewheel: true
3455          });
3456        }
3457        if (swiper.params.freeMode.sticky) {
3458          // When wheel scrolling starts with sticky (aka snap) enabled, then detect
3459          // the end of a momentum scroll by storing recent (N=15?) wheel events.
3460          // 1. do all N events have decreasing or same (absolute value) delta?
3461          // 2. did all N events arrive in the last M (M=500?) msecs?
3462          // 3. does the earliest event have an (absolute value) delta that's
3463          //    at least P (P=1?) larger than the most recent event's delta?
3464          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?
3465          // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration.
3466          // Snap immediately and ignore remaining wheel events in this scroll.
3467          // See comment above for "remaining wheel events in this scroll" determination.
3468          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.
3469          clearTimeout(timeout);
3470          timeout = undefined;
3471          if (recentWheelEvents.length >= 15) {
3472            recentWheelEvents.shift(); // only store the last N events
3473          }
3474
3475          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
3476          const firstEvent = recentWheelEvents[0];
3477          recentWheelEvents.push(newEvent);
3478          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {
3479            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.
3480            recentWheelEvents.splice(0);
3481          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {
3482            // We're at the end of the deceleration of a momentum scroll, so there's no need
3483            // to wait for more events. Snap ASAP on the next tick.
3484            // Also, because there's some remaining momentum we'll bias the snap in the
3485            // direction of the ongoing scroll because it's better UX for the scroll to snap
3486            // in the same direction as the scroll instead of reversing to snap.  Therefore,
3487            // if it's already scrolled more than 20% in the current direction, keep going.
3488            const snapToThreshold = delta > 0 ? 0.8 : 0.2;
3489            lastEventBeforeSnap = newEvent;
3490            recentWheelEvents.splice(0);
3491            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
3492              if (swiper.destroyed || !swiper.params) return;
3493              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
3494            }, 0); // no delay; move on next tick
3495          }
3496
3497          if (!timeout) {
3498            // if we get here, then we haven't detected the end of a momentum scroll, so
3499            // we'll consider a scroll "complete" when there haven't been any wheel events
3500            // for 500ms.
3501            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
3502              if (swiper.destroyed || !swiper.params) return;
3503              const snapToThreshold = 0.5;
3504              lastEventBeforeSnap = newEvent;
3505              recentWheelEvents.splice(0);
3506              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
3507            }, 500);
3508          }
3509        }
3510
3511        // Emit event
3512        if (!ignoreWheelEvents) emit('scroll', e);
3513
3514        // Stop autoplay
3515        if (swiper.params.autoplay && swiper.params.autoplay.disableOnInteraction) swiper.autoplay.stop();
3516        // Return page scroll on edge positions
3517        if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {
3518          return true;
3519        }
3520      }
3521    }
3522    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
3523    return false;
3524  }
3525  function events(method) {
3526    let targetEl = swiper.el;
3527    if (swiper.params.mousewheel.eventsTarget !== 'container') {
3528      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
3529    }
3530    targetEl[method]('mouseenter', handleMouseEnter);
3531    targetEl[method]('mouseleave', handleMouseLeave);
3532    targetEl[method]('wheel', handle);
3533  }
3534  function enable() {
3535    if (swiper.params.cssMode) {
3536      swiper.wrapperEl.removeEventListener('wheel', handle);
3537      return true;
3538    }
3539    if (swiper.mousewheel.enabled) return false;
3540    events('addEventListener');
3541    swiper.mousewheel.enabled = true;
3542    return true;
3543  }
3544  function disable() {
3545    if (swiper.params.cssMode) {
3546      swiper.wrapperEl.addEventListener(event, handle);
3547      return true;
3548    }
3549    if (!swiper.mousewheel.enabled) return false;
3550    events('removeEventListener');
3551    swiper.mousewheel.enabled = false;
3552    return true;
3553  }
3554  on('init', () => {
3555    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {
3556      disable();
3557    }
3558    if (swiper.params.mousewheel.enabled) enable();
3559  });
3560  on('destroy', () => {
3561    if (swiper.params.cssMode) {
3562      enable();
3563    }
3564    if (swiper.mousewheel.enabled) disable();
3565  });
3566  Object.assign(swiper.mousewheel, {
3567    enable,
3568    disable
3569  });
3570}
3571
3572
3573
3574
3575/***/ }),
3576
vendor: 7,408 bytes, lines 3577-3792
3577/***/ "./node_modules/swiper/modules/navigation.mjs":
3578/*!****************************************************!*\
3579  !*** ./node_modules/swiper/modules/navigation.mjs ***!
3580  \****************************************************/
3581/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3582
3583__webpack_require__.r(__webpack_exports__);
3584/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3585/* harmony export */   "default": () => (/* binding */ Navigation)
3586/* harmony export */ });
3587/* harmony import */ var _shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-element-if-not-defined.mjs */ "./node_modules/swiper/shared/create-element-if-not-defined.mjs");
3588/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3589
3590
3591
3592function Navigation(_ref) {
3593  let {
3594    swiper,
3595    extendParams,
3596    on,
3597    emit
3598  } = _ref;
3599  extendParams({
3600    navigation: {
3601      nextEl: null,
3602      prevEl: null,
3603      hideOnClick: false,
3604      disabledClass: 'swiper-button-disabled',
3605      hiddenClass: 'swiper-button-hidden',
3606      lockClass: 'swiper-button-lock',
3607      navigationDisabledClass: 'swiper-navigation-disabled'
3608    }
3609  });
3610  swiper.navigation = {
3611    nextEl: null,
3612    prevEl: null
3613  };
3614  function getEl(el) {
3615    let res;
3616    if (el && typeof el === 'string' && swiper.isElement) {
3617      res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);
3618      if (res) return res;
3619    }
3620    if (el) {
3621      if (typeof el === 'string') res = [...document.querySelectorAll(el)];
3622      if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {
3623        res = swiper.el.querySelector(el);
3624      } else if (res && res.length === 1) {
3625        res = res[0];
3626      }
3627    }
3628    if (el && !res) return el;
3629    // if (Array.isArray(res) && res.length === 1) res = res[0];
3630    return res;
3631  }
3632  function toggleEl(el, disabled) {
3633    const params = swiper.params.navigation;
3634    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
3635    el.forEach(subEl => {
3636      if (subEl) {
3637        subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));
3638        if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;
3639        if (swiper.params.watchOverflow && swiper.enabled) {
3640          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
3641        }
3642      }
3643    });
3644  }
3645  function update() {
3646    // Update Navigation Buttons
3647    const {
3648      nextEl,
3649      prevEl
3650    } = swiper.navigation;
3651    if (swiper.params.loop) {
3652      toggleEl(prevEl, false);
3653      toggleEl(nextEl, false);
3654      return;
3655    }
3656    toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);
3657    toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);
3658  }
3659  function onPrevClick(e) {
3660    e.preventDefault();
3661    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
3662    swiper.slidePrev();
3663    emit('navigationPrev');
3664  }
3665  function onNextClick(e) {
3666    e.preventDefault();
3667    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
3668    swiper.slideNext();
3669    emit('navigationNext');
3670  }
3671  function init() {
3672    const params = swiper.params.navigation;
3673    swiper.params.navigation = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
3674      nextEl: 'swiper-button-next',
3675      prevEl: 'swiper-button-prev'
3676    });
3677    if (!(params.nextEl || params.prevEl)) return;
3678    let nextEl = getEl(params.nextEl);
3679    let prevEl = getEl(params.prevEl);
3680    Object.assign(swiper.navigation, {
3681      nextEl,
3682      prevEl
3683    });
3684    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3685    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3686    const initButton = (el, dir) => {
3687      if (el) {
3688        el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
3689      }
3690      if (!swiper.enabled && el) {
3691        el.classList.add(...params.lockClass.split(' '));
3692      }
3693    };
3694    nextEl.forEach(el => initButton(el, 'next'));
3695    prevEl.forEach(el => initButton(el, 'prev'));
3696  }
3697  function destroy() {
3698    let {
3699      nextEl,
3700      prevEl
3701    } = swiper.navigation;
3702    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3703    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3704    const destroyButton = (el, dir) => {
3705      el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
3706      el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));
3707    };
3708    nextEl.forEach(el => destroyButton(el, 'next'));
3709    prevEl.forEach(el => destroyButton(el, 'prev'));
3710  }
3711  on('init', () => {
3712    if (swiper.params.navigation.enabled === false) {
3713      // eslint-disable-next-line
3714      disable();
3715    } else {
3716      init();
3717      update();
3718    }
3719  });
3720  on('toEdge fromEdge lock unlock', () => {
3721    update();
3722  });
3723  on('destroy', () => {
3724    destroy();
3725  });
3726  on('enable disable', () => {
3727    let {
3728      nextEl,
3729      prevEl
3730    } = swiper.navigation;
3731    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3732    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3733    if (swiper.enabled) {
3734      update();
3735      return;
3736    }
3737    [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));
3738  });
3739  on('click', (_s, e) => {
3740    let {
3741      nextEl,
3742      prevEl
3743    } = swiper.navigation;
3744    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3745    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3746    const targetEl = e.target;
3747    let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);
3748    if (swiper.isElement && !targetIsButton) {
3749      const path = e.path || e.composedPath && e.composedPath();
3750      if (path) {
3751        targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));
3752      }
3753    }
3754    if (swiper.params.navigation.hideOnClick && !targetIsButton) {
3755      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;
3756      let isHidden;
3757      if (nextEl.length) {
3758        isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);
3759      } else if (prevEl.length) {
3760        isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);
3761      }
3762      if (isHidden === true) {
3763        emit('navigationShow');
3764      } else {
3765        emit('navigationHide');
3766      }
3767      [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));
3768    }
3769  });
3770  const enable = () => {
3771    swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));
3772    init();
3773    update();
3774  };
3775  const disable = () => {
3776    swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));
3777    destroy();
3778  };
3779  Object.assign(swiper.navigation, {
3780    enable,
3781    disable,
3782    update,
3783    init,
3784    destroy
3785  });
3786}
3787
3788
3789
3790
3791/***/ }),
3792
vendor: 19,121 bytes, lines 3793-4269
3793/***/ "./node_modules/swiper/modules/pagination.mjs":
3794/*!****************************************************!*\
3795  !*** ./node_modules/swiper/modules/pagination.mjs ***!
3796  \****************************************************/
3797/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3798
3799__webpack_require__.r(__webpack_exports__);
3800/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3801/* harmony export */   "default": () => (/* binding */ Pagination)
3802/* harmony export */ });
3803/* harmony import */ var _shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/classes-to-selector.mjs */ "./node_modules/swiper/shared/classes-to-selector.mjs");
3804/* harmony import */ var _shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/create-element-if-not-defined.mjs */ "./node_modules/swiper/shared/create-element-if-not-defined.mjs");
3805/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3806
3807
3808
3809
3810function Pagination(_ref) {
3811  let {
3812    swiper,
3813    extendParams,
3814    on,
3815    emit
3816  } = _ref;
3817  const pfx = 'swiper-pagination';
3818  extendParams({
3819    pagination: {
3820      el: null,
3821      bulletElement: 'span',
3822      clickable: false,
3823      hideOnClick: false,
3824      renderBullet: null,
3825      renderProgressbar: null,
3826      renderFraction: null,
3827      renderCustom: null,
3828      progressbarOpposite: false,
3829      type: 'bullets',
3830      // 'bullets' or 'progressbar' or 'fraction' or 'custom'
3831      dynamicBullets: false,
3832      dynamicMainBullets: 1,
3833      formatFractionCurrent: number => number,
3834      formatFractionTotal: number => number,
3835      bulletClass: `${pfx}-bullet`,
3836      bulletActiveClass: `${pfx}-bullet-active`,
3837      modifierClass: `${pfx}-`,
3838      currentClass: `${pfx}-current`,
3839      totalClass: `${pfx}-total`,
3840      hiddenClass: `${pfx}-hidden`,
3841      progressbarFillClass: `${pfx}-progressbar-fill`,
3842      progressbarOppositeClass: `${pfx}-progressbar-opposite`,
3843      clickableClass: `${pfx}-clickable`,
3844      lockClass: `${pfx}-lock`,
3845      horizontalClass: `${pfx}-horizontal`,
3846      verticalClass: `${pfx}-vertical`,
3847      paginationDisabledClass: `${pfx}-disabled`
3848    }
3849  });
3850  swiper.pagination = {
3851    el: null,
3852    bullets: []
3853  };
3854  let bulletSize;
3855  let dynamicBulletIndex = 0;
3856  function isPaginationDisabled() {
3857    return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;
3858  }
3859  function setSideBullets(bulletEl, position) {
3860    const {
3861      bulletActiveClass
3862    } = swiper.params.pagination;
3863    if (!bulletEl) return;
3864    bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
3865    if (bulletEl) {
3866      bulletEl.classList.add(`${bulletActiveClass}-${position}`);
3867      bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
3868      if (bulletEl) {
3869        bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);
3870      }
3871    }
3872  }
3873  function getMoveDirection(prevIndex, nextIndex, length) {
3874    prevIndex = prevIndex % length;
3875    nextIndex = nextIndex % length;
3876    if (nextIndex === prevIndex + 1) {
3877      return 'next';
3878    } else if (nextIndex === prevIndex - 1) {
3879      return 'previous';
3880    }
3881    return;
3882  }
3883  function onBulletClick(e) {
3884    const bulletEl = e.target.closest((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletClass));
3885    if (!bulletEl) {
3886      return;
3887    }
3888    e.preventDefault();
3889    const index = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.i)(bulletEl) * swiper.params.slidesPerGroup;
3890    if (swiper.params.loop) {
3891      if (swiper.realIndex === index) return;
3892      const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);
3893      if (moveDirection === 'next') {
3894        swiper.slideNext();
3895      } else if (moveDirection === 'previous') {
3896        swiper.slidePrev();
3897      } else {
3898        swiper.slideToLoop(index);
3899      }
3900    } else {
3901      swiper.slideTo(index);
3902    }
3903  }
3904  function update() {
3905    // Render || Update Pagination bullets/items
3906    const rtl = swiper.rtl;
3907    const params = swiper.params.pagination;
3908    if (isPaginationDisabled()) return;
3909    let el = swiper.pagination.el;
3910    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3911    // Current/Total
3912    let current;
3913    let previousIndex;
3914    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
3915    const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
3916    if (swiper.params.loop) {
3917      previousIndex = swiper.previousRealIndex || 0;
3918      current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
3919    } else if (typeof swiper.snapIndex !== 'undefined') {
3920      current = swiper.snapIndex;
3921      previousIndex = swiper.previousSnapIndex;
3922    } else {
3923      previousIndex = swiper.previousIndex || 0;
3924      current = swiper.activeIndex || 0;
3925    }
3926    // Types
3927    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
3928      const bullets = swiper.pagination.bullets;
3929      let firstIndex;
3930      let lastIndex;
3931      let midIndex;
3932      if (params.dynamicBullets) {
3933        bulletSize = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);
3934        el.forEach(subEl => {
3935          subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
3936        });
3937        if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
3938          dynamicBulletIndex += current - (previousIndex || 0);
3939          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
3940            dynamicBulletIndex = params.dynamicMainBullets - 1;
3941          } else if (dynamicBulletIndex < 0) {
3942            dynamicBulletIndex = 0;
3943          }
3944        }
3945        firstIndex = Math.max(current - dynamicBulletIndex, 0);
3946        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
3947        midIndex = (lastIndex + firstIndex) / 2;
3948      }
3949      bullets.forEach(bulletEl => {
3950        const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();
3951        bulletEl.classList.remove(...classesToRemove);
3952      });
3953      if (el.length > 1) {
3954        bullets.forEach(bullet => {
3955          const bulletIndex = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.i)(bullet);
3956          if (bulletIndex === current) {
3957            bullet.classList.add(...params.bulletActiveClass.split(' '));
3958          } else if (swiper.isElement) {
3959            bullet.setAttribute('part', 'bullet');
3960          }
3961          if (params.dynamicBullets) {
3962            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
3963              bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));
3964            }
3965            if (bulletIndex === firstIndex) {
3966              setSideBullets(bullet, 'prev');
3967            }
3968            if (bulletIndex === lastIndex) {
3969              setSideBullets(bullet, 'next');
3970            }
3971          }
3972        });
3973      } else {
3974        const bullet = bullets[current];
3975        if (bullet) {
3976          bullet.classList.add(...params.bulletActiveClass.split(' '));
3977        }
3978        if (swiper.isElement) {
3979          bullets.forEach((bulletEl, bulletIndex) => {
3980            bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
3981          });
3982        }
3983        if (params.dynamicBullets) {
3984          const firstDisplayedBullet = bullets[firstIndex];
3985          const lastDisplayedBullet = bullets[lastIndex];
3986          for (let i = firstIndex; i <= lastIndex; i += 1) {
3987            if (bullets[i]) {
3988              bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));
3989            }
3990          }
3991          setSideBullets(firstDisplayedBullet, 'prev');
3992          setSideBullets(lastDisplayedBullet, 'next');
3993        }
3994      }
3995      if (params.dynamicBullets) {
3996        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
3997        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
3998        const offsetProp = rtl ? 'right' : 'left';
3999        bullets.forEach(bullet => {
4000          bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;
4001        });
4002      }
4003    }
4004    el.forEach((subEl, subElIndex) => {
4005      if (params.type === 'fraction') {
4006        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.currentClass)).forEach(fractionEl => {
4007          fractionEl.textContent = params.formatFractionCurrent(current + 1);
4008        });
4009        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.totalClass)).forEach(totalEl => {
4010          totalEl.textContent = params.formatFractionTotal(total);
4011        });
4012      }
4013      if (params.type === 'progressbar') {
4014        let progressbarDirection;
4015        if (params.progressbarOpposite) {
4016          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
4017        } else {
4018          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
4019        }
4020        const scale = (current + 1) / total;
4021        let scaleX = 1;
4022        let scaleY = 1;
4023        if (progressbarDirection === 'horizontal') {
4024          scaleX = scale;
4025        } else {
4026          scaleY = scale;
4027        }
4028        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.progressbarFillClass)).forEach(progressEl => {
4029          progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;
4030          progressEl.style.transitionDuration = `${swiper.params.speed}ms`;
4031        });
4032      }
4033      if (params.type === 'custom' && params.renderCustom) {
4034        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.s)(subEl, params.renderCustom(swiper, current + 1, total));
4035        if (subElIndex === 0) emit('paginationRender', subEl);
4036      } else {
4037        if (subElIndex === 0) emit('paginationRender', subEl);
4038        emit('paginationUpdate', subEl);
4039      }
4040      if (swiper.params.watchOverflow && swiper.enabled) {
4041        subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
4042      }
4043    });
4044  }
4045  function render() {
4046    // Render Container
4047    const params = swiper.params.pagination;
4048    if (isPaginationDisabled()) return;
4049    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;
4050    let el = swiper.pagination.el;
4051    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4052    let paginationHTML = '';
4053    if (params.type === 'bullets') {
4054      let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
4055      if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {
4056        numberOfBullets = slidesLength;
4057      }
4058      for (let i = 0; i < numberOfBullets; i += 1) {
4059        if (params.renderBullet) {
4060          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
4061        } else {
4062          // prettier-ignore
4063          paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
4064        }
4065      }
4066    }
4067    if (params.type === 'fraction') {
4068      if (params.renderFraction) {
4069        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
4070      } else {
4071        paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
4072      }
4073    }
4074    if (params.type === 'progressbar') {
4075      if (params.renderProgressbar) {
4076        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
4077      } else {
4078        paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
4079      }
4080    }
4081    swiper.pagination.bullets = [];
4082    el.forEach(subEl => {
4083      if (params.type !== 'custom') {
4084        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.s)(subEl, paginationHTML || '');
4085      }
4086      if (params.type === 'bullets') {
4087        swiper.pagination.bullets.push(...subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.bulletClass)));
4088      }
4089    });
4090    if (params.type !== 'custom') {
4091      emit('paginationRender', el[0]);
4092    }
4093  }
4094  function init() {
4095    swiper.params.pagination = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
4096      el: 'swiper-pagination'
4097    });
4098    const params = swiper.params.pagination;
4099    if (!params.el) return;
4100    let el;
4101    if (typeof params.el === 'string' && swiper.isElement) {
4102      el = swiper.el.querySelector(params.el);
4103    }
4104    if (!el && typeof params.el === 'string') {
4105      el = [...document.querySelectorAll(params.el)];
4106    }
4107    if (!el) {
4108      el = params.el;
4109    }
4110    if (!el || el.length === 0) return;
4111    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {
4112      el = [...swiper.el.querySelectorAll(params.el)];
4113      // check if it belongs to another nested Swiper
4114      if (el.length > 1) {
4115        el = el.find(subEl => {
4116          if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.b)(subEl, '.swiper')[0] !== swiper.el) return false;
4117          return true;
4118        });
4119      }
4120    }
4121    if (Array.isArray(el) && el.length === 1) el = el[0];
4122    Object.assign(swiper.pagination, {
4123      el
4124    });
4125    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4126    el.forEach(subEl => {
4127      if (params.type === 'bullets' && params.clickable) {
4128        subEl.classList.add(...(params.clickableClass || '').split(' '));
4129      }
4130      subEl.classList.add(params.modifierClass + params.type);
4131      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4132      if (params.type === 'bullets' && params.dynamicBullets) {
4133        subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);
4134        dynamicBulletIndex = 0;
4135        if (params.dynamicMainBullets < 1) {
4136          params.dynamicMainBullets = 1;
4137        }
4138      }
4139      if (params.type === 'progressbar' && params.progressbarOpposite) {
4140        subEl.classList.add(params.progressbarOppositeClass);
4141      }
4142      if (params.clickable) {
4143        subEl.addEventListener('click', onBulletClick);
4144      }
4145      if (!swiper.enabled) {
4146        subEl.classList.add(params.lockClass);
4147      }
4148    });
4149  }
4150  function destroy() {
4151    const params = swiper.params.pagination;
4152    if (isPaginationDisabled()) return;
4153    let el = swiper.pagination.el;
4154    if (el) {
4155      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4156      el.forEach(subEl => {
4157        subEl.classList.remove(params.hiddenClass);
4158        subEl.classList.remove(params.modifierClass + params.type);
4159        subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4160        if (params.clickable) {
4161          subEl.classList.remove(...(params.clickableClass || '').split(' '));
4162          subEl.removeEventListener('click', onBulletClick);
4163        }
4164      });
4165    }
4166    if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
4167  }
4168  on('changeDirection', () => {
4169    if (!swiper.pagination || !swiper.pagination.el) return;
4170    const params = swiper.params.pagination;
4171    let {
4172      el
4173    } = swiper.pagination;
4174    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4175    el.forEach(subEl => {
4176      subEl.classList.remove(params.horizontalClass, params.verticalClass);
4177      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4178    });
4179  });
4180  on('init', () => {
4181    if (swiper.params.pagination.enabled === false) {
4182      // eslint-disable-next-line
4183      disable();
4184    } else {
4185      init();
4186      render();
4187      update();
4188    }
4189  });
4190  on('activeIndexChange', () => {
4191    if (typeof swiper.snapIndex === 'undefined') {
4192      update();
4193    }
4194  });
4195  on('snapIndexChange', () => {
4196    update();
4197  });
4198  on('snapGridLengthChange', () => {
4199    render();
4200    update();
4201  });
4202  on('destroy', () => {
4203    destroy();
4204  });
4205  on('enable disable', () => {
4206    let {
4207      el
4208    } = swiper.pagination;
4209    if (el) {
4210      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4211      el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));
4212    }
4213  });
4214  on('lock unlock', () => {
4215    update();
4216  });
4217  on('click', (_s, e) => {
4218    const targetEl = e.target;
4219    const el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
4220    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
4221      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
4222      const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
4223      if (isHidden === true) {
4224        emit('paginationShow');
4225      } else {
4226        emit('paginationHide');
4227      }
4228      el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));
4229    }
4230  });
4231  const enable = () => {
4232    swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);
4233    let {
4234      el
4235    } = swiper.pagination;
4236    if (el) {
4237      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4238      el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));
4239    }
4240    init();
4241    render();
4242    update();
4243  };
4244  const disable = () => {
4245    swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);
4246    let {
4247      el
4248    } = swiper.pagination;
4249    if (el) {
4250      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4251      el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
4252    }
4253    destroy();
4254  };
4255  Object.assign(swiper.pagination, {
4256    enable,
4257    disable,
4258    render,
4259    update,
4260    init,
4261    destroy
4262  });
4263}
4264
4265
4266
4267
4268/***/ }),
4269
vendor: 4,684 bytes, lines 4270-4408
4270/***/ "./node_modules/swiper/modules/parallax.mjs":
4271/*!**************************************************!*\
4272  !*** ./node_modules/swiper/modules/parallax.mjs ***!
4273  \**************************************************/
4274/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4275
4276__webpack_require__.r(__webpack_exports__);
4277/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4278/* harmony export */   "default": () => (/* binding */ Parallax)
4279/* harmony export */ });
4280/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4281
4282
4283function Parallax(_ref) {
4284  let {
4285    swiper,
4286    extendParams,
4287    on
4288  } = _ref;
4289  extendParams({
4290    parallax: {
4291      enabled: false
4292    }
4293  });
4294  const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';
4295  const setTransform = (el, progress) => {
4296    const {
4297      rtl
4298    } = swiper;
4299    const rtlFactor = rtl ? -1 : 1;
4300    const p = el.getAttribute('data-swiper-parallax') || '0';
4301    let x = el.getAttribute('data-swiper-parallax-x');
4302    let y = el.getAttribute('data-swiper-parallax-y');
4303    const scale = el.getAttribute('data-swiper-parallax-scale');
4304    const opacity = el.getAttribute('data-swiper-parallax-opacity');
4305    const rotate = el.getAttribute('data-swiper-parallax-rotate');
4306    if (x || y) {
4307      x = x || '0';
4308      y = y || '0';
4309    } else if (swiper.isHorizontal()) {
4310      x = p;
4311      y = '0';
4312    } else {
4313      y = p;
4314      x = '0';
4315    }
4316    if (x.indexOf('%') >= 0) {
4317      x = `${parseInt(x, 10) * progress * rtlFactor}%`;
4318    } else {
4319      x = `${x * progress * rtlFactor}px`;
4320    }
4321    if (y.indexOf('%') >= 0) {
4322      y = `${parseInt(y, 10) * progress}%`;
4323    } else {
4324      y = `${y * progress}px`;
4325    }
4326    if (typeof opacity !== 'undefined' && opacity !== null) {
4327      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
4328      el.style.opacity = currentOpacity;
4329    }
4330    let transform = `translate3d(${x}, ${y}, 0px)`;
4331    if (typeof scale !== 'undefined' && scale !== null) {
4332      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
4333      transform += ` scale(${currentScale})`;
4334    }
4335    if (rotate && typeof rotate !== 'undefined' && rotate !== null) {
4336      const currentRotate = rotate * progress * -1;
4337      transform += ` rotate(${currentRotate}deg)`;
4338    }
4339    el.style.transform = transform;
4340  };
4341  const setTranslate = () => {
4342    const {
4343      el,
4344      slides,
4345      progress,
4346      snapGrid,
4347      isElement
4348    } = swiper;
4349    const elements = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(el, elementsSelector);
4350    if (swiper.isElement) {
4351      elements.push(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.hostEl, elementsSelector));
4352    }
4353    elements.forEach(subEl => {
4354      setTransform(subEl, progress);
4355    });
4356    slides.forEach((slideEl, slideIndex) => {
4357      let slideProgress = slideEl.progress;
4358      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
4359        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
4360      }
4361      slideProgress = Math.min(Math.max(slideProgress, -1), 1);
4362      slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {
4363        setTransform(subEl, slideProgress);
4364      });
4365    });
4366  };
4367  const setTransition = function (duration) {
4368    if (duration === void 0) {
4369      duration = swiper.params.speed;
4370    }
4371    const {
4372      el,
4373      hostEl
4374    } = swiper;
4375    const elements = [...el.querySelectorAll(elementsSelector)];
4376    if (swiper.isElement) {
4377      elements.push(...hostEl.querySelectorAll(elementsSelector));
4378    }
4379    elements.forEach(parallaxEl => {
4380      let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;
4381      if (duration === 0) parallaxDuration = 0;
4382      parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;
4383    });
4384  };
4385  on('beforeInit', () => {
4386    if (!swiper.params.parallax.enabled) return;
4387    swiper.params.watchSlidesProgress = true;
4388    swiper.originalParams.watchSlidesProgress = true;
4389  });
4390  on('init', () => {
4391    if (!swiper.params.parallax.enabled) return;
4392    setTranslate();
4393  });
4394  on('setTranslate', () => {
4395    if (!swiper.params.parallax.enabled) return;
4396    setTranslate();
4397  });
4398  on('setTransition', (_swiper, duration) => {
4399    if (!swiper.params.parallax.enabled) return;
4400    setTransition(duration);
4401  });
4402}
4403
4404
4405
4406
4407/***/ }),
4408
vendor: 12,517 bytes, lines 4409-4792
4409/***/ "./node_modules/swiper/modules/scrollbar.mjs":
4410/*!***************************************************!*\
4411  !*** ./node_modules/swiper/modules/scrollbar.mjs ***!
4412  \***************************************************/
4413/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4414
4415__webpack_require__.r(__webpack_exports__);
4416/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4417/* harmony export */   "default": () => (/* binding */ Scrollbar)
4418/* harmony export */ });
4419/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
4420/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4421/* harmony import */ var _shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/create-element-if-not-defined.mjs */ "./node_modules/swiper/shared/create-element-if-not-defined.mjs");
4422/* harmony import */ var _shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/classes-to-selector.mjs */ "./node_modules/swiper/shared/classes-to-selector.mjs");
4423
4424
4425
4426
4427
4428function Scrollbar(_ref) {
4429  let {
4430    swiper,
4431    extendParams,
4432    on,
4433    emit
4434  } = _ref;
4435  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4436  let isTouched = false;
4437  let timeout = null;
4438  let dragTimeout = null;
4439  let dragStartPos;
4440  let dragSize;
4441  let trackSize;
4442  let divider;
4443  extendParams({
4444    scrollbar: {
4445      el: null,
4446      dragSize: 'auto',
4447      hide: false,
4448      draggable: false,
4449      snapOnRelease: true,
4450      lockClass: 'swiper-scrollbar-lock',
4451      dragClass: 'swiper-scrollbar-drag',
4452      scrollbarDisabledClass: 'swiper-scrollbar-disabled',
4453      horizontalClass: `swiper-scrollbar-horizontal`,
4454      verticalClass: `swiper-scrollbar-vertical`
4455    }
4456  });
4457  swiper.scrollbar = {
4458    el: null,
4459    dragEl: null
4460  };
4461  function setTranslate() {
4462    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4463    const {
4464      scrollbar,
4465      rtlTranslate: rtl
4466    } = swiper;
4467    const {
4468      dragEl,
4469      el
4470    } = scrollbar;
4471    const params = swiper.params.scrollbar;
4472    const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;
4473    let newSize = dragSize;
4474    let newPos = (trackSize - dragSize) * progress;
4475    if (rtl) {
4476      newPos = -newPos;
4477      if (newPos > 0) {
4478        newSize = dragSize - newPos;
4479        newPos = 0;
4480      } else if (-newPos + dragSize > trackSize) {
4481        newSize = trackSize + newPos;
4482      }
4483    } else if (newPos < 0) {
4484      newSize = dragSize + newPos;
4485      newPos = 0;
4486    } else if (newPos + dragSize > trackSize) {
4487      newSize = trackSize - newPos;
4488    }
4489    if (swiper.isHorizontal()) {
4490      dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;
4491      dragEl.style.width = `${newSize}px`;
4492    } else {
4493      dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;
4494      dragEl.style.height = `${newSize}px`;
4495    }
4496    if (params.hide) {
4497      clearTimeout(timeout);
4498      el.style.opacity = 1;
4499      timeout = setTimeout(() => {
4500        el.style.opacity = 0;
4501        el.style.transitionDuration = '400ms';
4502      }, 1000);
4503    }
4504  }
4505  function setTransition(duration) {
4506    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4507    swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;
4508  }
4509  function updateSize() {
4510    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4511    const {
4512      scrollbar
4513    } = swiper;
4514    const {
4515      dragEl,
4516      el
4517    } = scrollbar;
4518    dragEl.style.width = '';
4519    dragEl.style.height = '';
4520    trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;
4521    divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));
4522    if (swiper.params.scrollbar.dragSize === 'auto') {
4523      dragSize = trackSize * divider;
4524    } else {
4525      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
4526    }
4527    if (swiper.isHorizontal()) {
4528      dragEl.style.width = `${dragSize}px`;
4529    } else {
4530      dragEl.style.height = `${dragSize}px`;
4531    }
4532    if (divider >= 1) {
4533      el.style.display = 'none';
4534    } else {
4535      el.style.display = '';
4536    }
4537    if (swiper.params.scrollbar.hide) {
4538      el.style.opacity = 0;
4539    }
4540    if (swiper.params.watchOverflow && swiper.enabled) {
4541      scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);
4542    }
4543  }
4544  function getPointerPosition(e) {
4545    return swiper.isHorizontal() ? e.clientX : e.clientY;
4546  }
4547  function setDragPosition(e) {
4548    const {
4549      scrollbar,
4550      rtlTranslate: rtl
4551    } = swiper;
4552    const {
4553      el
4554    } = scrollbar;
4555    let positionRatio;
4556    positionRatio = (getPointerPosition(e) - (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
4557    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
4558    if (rtl) {
4559      positionRatio = 1 - positionRatio;
4560    }
4561    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
4562    swiper.updateProgress(position);
4563    swiper.setTranslate(position);
4564    swiper.updateActiveIndex();
4565    swiper.updateSlidesClasses();
4566  }
4567  function onDragStart(e) {
4568    const params = swiper.params.scrollbar;
4569    const {
4570      scrollbar,
4571      wrapperEl
4572    } = swiper;
4573    const {
4574      el,
4575      dragEl
4576    } = scrollbar;
4577    isTouched = true;
4578    dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
4579    e.preventDefault();
4580    e.stopPropagation();
4581    wrapperEl.style.transitionDuration = '100ms';
4582    dragEl.style.transitionDuration = '100ms';
4583    setDragPosition(e);
4584    clearTimeout(dragTimeout);
4585    el.style.transitionDuration = '0ms';
4586    if (params.hide) {
4587      el.style.opacity = 1;
4588    }
4589    if (swiper.params.cssMode) {
4590      swiper.wrapperEl.style['scroll-snap-type'] = 'none';
4591    }
4592    emit('scrollbarDragStart', e);
4593  }
4594  function onDragMove(e) {
4595    const {
4596      scrollbar,
4597      wrapperEl
4598    } = swiper;
4599    const {
4600      el,
4601      dragEl
4602    } = scrollbar;
4603    if (!isTouched) return;
4604    if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;
4605    setDragPosition(e);
4606    wrapperEl.style.transitionDuration = '0ms';
4607    el.style.transitionDuration = '0ms';
4608    dragEl.style.transitionDuration = '0ms';
4609    emit('scrollbarDragMove', e);
4610  }
4611  function onDragEnd(e) {
4612    const params = swiper.params.scrollbar;
4613    const {
4614      scrollbar,
4615      wrapperEl
4616    } = swiper;
4617    const {
4618      el
4619    } = scrollbar;
4620    if (!isTouched) return;
4621    isTouched = false;
4622    if (swiper.params.cssMode) {
4623      swiper.wrapperEl.style['scroll-snap-type'] = '';
4624      wrapperEl.style.transitionDuration = '';
4625    }
4626    if (params.hide) {
4627      clearTimeout(dragTimeout);
4628      dragTimeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
4629        el.style.opacity = 0;
4630        el.style.transitionDuration = '400ms';
4631      }, 1000);
4632    }
4633    emit('scrollbarDragEnd', e);
4634    if (params.snapOnRelease) {
4635      swiper.slideToClosest();
4636    }
4637  }
4638  function events(method) {
4639    const {
4640      scrollbar,
4641      params
4642    } = swiper;
4643    const el = scrollbar.el;
4644    if (!el) return;
4645    const target = el;
4646    const activeListener = params.passiveListeners ? {
4647      passive: false,
4648      capture: false
4649    } : false;
4650    const passiveListener = params.passiveListeners ? {
4651      passive: true,
4652      capture: false
4653    } : false;
4654    if (!target) return;
4655    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
4656    target[eventMethod]('pointerdown', onDragStart, activeListener);
4657    document[eventMethod]('pointermove', onDragMove, activeListener);
4658    document[eventMethod]('pointerup', onDragEnd, passiveListener);
4659  }
4660  function enableDraggable() {
4661    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4662    events('on');
4663  }
4664  function disableDraggable() {
4665    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4666    events('off');
4667  }
4668  function init() {
4669    const {
4670      scrollbar,
4671      el: swiperEl
4672    } = swiper;
4673    swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.c)(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
4674      el: 'swiper-scrollbar'
4675    });
4676    const params = swiper.params.scrollbar;
4677    if (!params.el) return;
4678    let el;
4679    if (typeof params.el === 'string' && swiper.isElement) {
4680      el = swiper.el.querySelector(params.el);
4681    }
4682    if (!el && typeof params.el === 'string') {
4683      el = document.querySelectorAll(params.el);
4684      if (!el.length) return;
4685    } else if (!el) {
4686      el = params.el;
4687    }
4688    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {
4689      el = swiperEl.querySelector(params.el);
4690    }
4691    if (el.length > 0) el = el[0];
4692    el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4693    let dragEl;
4694    if (el) {
4695      dragEl = el.querySelector((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_3__.c)(swiper.params.scrollbar.dragClass));
4696      if (!dragEl) {
4697        dragEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.scrollbar.dragClass);
4698        el.append(dragEl);
4699      }
4700    }
4701    Object.assign(scrollbar, {
4702      el,
4703      dragEl
4704    });
4705    if (params.draggable) {
4706      enableDraggable();
4707    }
4708    if (el) {
4709      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.lockClass));
4710    }
4711  }
4712  function destroy() {
4713    const params = swiper.params.scrollbar;
4714    const el = swiper.scrollbar.el;
4715    if (el) {
4716      el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));
4717    }
4718    disableDraggable();
4719  }
4720  on('changeDirection', () => {
4721    if (!swiper.scrollbar || !swiper.scrollbar.el) return;
4722    const params = swiper.params.scrollbar;
4723    let {
4724      el
4725    } = swiper.scrollbar;
4726    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
4727    el.forEach(subEl => {
4728      subEl.classList.remove(params.horizontalClass, params.verticalClass);
4729      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4730    });
4731  });
4732  on('init', () => {
4733    if (swiper.params.scrollbar.enabled === false) {
4734      // eslint-disable-next-line
4735      disable();
4736    } else {
4737      init();
4738      updateSize();
4739      setTranslate();
4740    }
4741  });
4742  on('update resize observerUpdate lock unlock changeDirection', () => {
4743    updateSize();
4744  });
4745  on('setTranslate', () => {
4746    setTranslate();
4747  });
4748  on('setTransition', (_s, duration) => {
4749    setTransition(duration);
4750  });
4751  on('enable disable', () => {
4752    const {
4753      el
4754    } = swiper.scrollbar;
4755    if (el) {
4756      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.lockClass));
4757    }
4758  });
4759  on('destroy', () => {
4760    destroy();
4761  });
4762  const enable = () => {
4763    swiper.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.scrollbarDisabledClass));
4764    if (swiper.scrollbar.el) {
4765      swiper.scrollbar.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.scrollbarDisabledClass));
4766    }
4767    init();
4768    updateSize();
4769    setTranslate();
4770  };
4771  const disable = () => {
4772    swiper.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.scrollbarDisabledClass));
4773    if (swiper.scrollbar.el) {
4774      swiper.scrollbar.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.scrollbarDisabledClass));
4775    }
4776    destroy();
4777  };
4778  Object.assign(swiper.scrollbar, {
4779    enable,
4780    disable,
4781    updateSize,
4782    setTranslate,
4783    init,
4784    destroy
4785  });
4786}
4787
4788
4789
4790
4791/***/ }),
4792
vendor: 8,179 bytes, lines 4793-5005
4793/***/ "./node_modules/swiper/modules/thumbs.mjs":
4794/*!************************************************!*\
4795  !*** ./node_modules/swiper/modules/thumbs.mjs ***!
4796  \************************************************/
4797/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4798
4799__webpack_require__.r(__webpack_exports__);
4800/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4801/* harmony export */   "default": () => (/* binding */ Thumb)
4802/* harmony export */ });
4803/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
4804/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4805
4806
4807
4808function Thumb(_ref) {
4809  let {
4810    swiper,
4811    extendParams,
4812    on
4813  } = _ref;
4814  extendParams({
4815    thumbs: {
4816      swiper: null,
4817      multipleActiveThumbs: true,
4818      autoScrollOffset: 0,
4819      slideThumbActiveClass: 'swiper-slide-thumb-active',
4820      thumbsContainerClass: 'swiper-thumbs'
4821    }
4822  });
4823  let initialized = false;
4824  let swiperCreated = false;
4825  swiper.thumbs = {
4826    swiper: null
4827  };
4828  function onThumbClick() {
4829    const thumbsSwiper = swiper.thumbs.swiper;
4830    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4831    const clickedIndex = thumbsSwiper.clickedIndex;
4832    const clickedSlide = thumbsSwiper.clickedSlide;
4833    if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;
4834    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;
4835    let slideToIndex;
4836    if (thumbsSwiper.params.loop) {
4837      slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
4838    } else {
4839      slideToIndex = clickedIndex;
4840    }
4841    if (swiper.params.loop) {
4842      swiper.slideToLoop(slideToIndex);
4843    } else {
4844      swiper.slideTo(slideToIndex);
4845    }
4846  }
4847  function init() {
4848    const {
4849      thumbs: thumbsParams
4850    } = swiper.params;
4851    if (initialized) return false;
4852    initialized = true;
4853    const SwiperClass = swiper.constructor;
4854    if (thumbsParams.swiper instanceof SwiperClass) {
4855      if (thumbsParams.swiper.destroyed) {
4856        initialized = false;
4857        return false;
4858      }
4859      swiper.thumbs.swiper = thumbsParams.swiper;
4860      Object.assign(swiper.thumbs.swiper.originalParams, {
4861        watchSlidesProgress: true,
4862        slideToClickedSlide: false
4863      });
4864      Object.assign(swiper.thumbs.swiper.params, {
4865        watchSlidesProgress: true,
4866        slideToClickedSlide: false
4867      });
4868      swiper.thumbs.swiper.update();
4869    } else if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(thumbsParams.swiper)) {
4870      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);
4871      Object.assign(thumbsSwiperParams, {
4872        watchSlidesProgress: true,
4873        slideToClickedSlide: false
4874      });
4875      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);
4876      swiperCreated = true;
4877    }
4878    swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);
4879    swiper.thumbs.swiper.on('tap', onThumbClick);
4880    return true;
4881  }
4882  function update(initial) {
4883    const thumbsSwiper = swiper.thumbs.swiper;
4884    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4885    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
4886
4887    // Activate thumbs
4888    let thumbsToActivate = 1;
4889    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;
4890    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {
4891      thumbsToActivate = swiper.params.slidesPerView;
4892    }
4893    if (!swiper.params.thumbs.multipleActiveThumbs) {
4894      thumbsToActivate = 1;
4895    }
4896    thumbsToActivate = Math.floor(thumbsToActivate);
4897    thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));
4898    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
4899      for (let i = 0; i < thumbsToActivate; i += 1) {
4900        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => {
4901          slideEl.classList.add(thumbActiveClass);
4902        });
4903      }
4904    } else {
4905      for (let i = 0; i < thumbsToActivate; i += 1) {
4906        if (thumbsSwiper.slides[swiper.realIndex + i]) {
4907          thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);
4908        }
4909      }
4910    }
4911    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
4912    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
4913    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
4914      const currentThumbsIndex = thumbsSwiper.activeIndex;
4915      let newThumbsIndex;
4916      let direction;
4917      if (thumbsSwiper.params.loop) {
4918        const newThumbsSlide = thumbsSwiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`);
4919        newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);
4920        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';
4921      } else {
4922        newThumbsIndex = swiper.realIndex;
4923        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';
4924      }
4925      if (useOffset) {
4926        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;
4927      }
4928      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
4929        if (thumbsSwiper.params.centeredSlides) {
4930          if (newThumbsIndex > currentThumbsIndex) {
4931            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
4932          } else {
4933            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
4934          }
4935        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
4936        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
4937      }
4938    }
4939  }
4940  on('beforeInit', () => {
4941    const {
4942      thumbs
4943    } = swiper.params;
4944    if (!thumbs || !thumbs.swiper) return;
4945    if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {
4946      const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4947      const getThumbsElementAndInit = () => {
4948        const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;
4949        if (thumbsElement && thumbsElement.swiper) {
4950          thumbs.swiper = thumbsElement.swiper;
4951          init();
4952          update(true);
4953        } else if (thumbsElement) {
4954          const eventName = `${swiper.params.eventsPrefix}init`;
4955          const onThumbsSwiper = e => {
4956            thumbs.swiper = e.detail[0];
4957            thumbsElement.removeEventListener(eventName, onThumbsSwiper);
4958            init();
4959            update(true);
4960            thumbs.swiper.update();
4961            swiper.update();
4962          };
4963          thumbsElement.addEventListener(eventName, onThumbsSwiper);
4964        }
4965        return thumbsElement;
4966      };
4967      const watchForThumbsToAppear = () => {
4968        if (swiper.destroyed) return;
4969        const thumbsElement = getThumbsElementAndInit();
4970        if (!thumbsElement) {
4971          requestAnimationFrame(watchForThumbsToAppear);
4972        }
4973      };
4974      requestAnimationFrame(watchForThumbsToAppear);
4975    } else {
4976      init();
4977      update(true);
4978    }
4979  });
4980  on('slideChange update resize observerUpdate', () => {
4981    update();
4982  });
4983  on('setTransition', (_s, duration) => {
4984    const thumbsSwiper = swiper.thumbs.swiper;
4985    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4986    thumbsSwiper.setTransition(duration);
4987  });
4988  on('beforeDestroy', () => {
4989    const thumbsSwiper = swiper.thumbs.swiper;
4990    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4991    if (swiperCreated) {
4992      thumbsSwiper.destroy();
4993    }
4994  });
4995  Object.assign(swiper.thumbs, {
4996    init,
4997    update
4998  });
4999}
5000
5001
5002
5003
5004/***/ }),
5005
vendor: 12,554 bytes, lines 5006-5370
5006/***/ "./node_modules/swiper/modules/virtual.mjs":
5007/*!*************************************************!*\
5008  !*** ./node_modules/swiper/modules/virtual.mjs ***!
5009  \*************************************************/
5010/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5011
5012__webpack_require__.r(__webpack_exports__);
5013/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5014/* harmony export */   "default": () => (/* binding */ Virtual)
5015/* harmony export */ });
5016/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
5017/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5018
5019
5020
5021function Virtual(_ref) {
5022  let {
5023    swiper,
5024    extendParams,
5025    on,
5026    emit
5027  } = _ref;
5028  extendParams({
5029    virtual: {
5030      enabled: false,
5031      slides: [],
5032      cache: true,
5033      renderSlide: null,
5034      renderExternal: null,
5035      renderExternalUpdate: true,
5036      addSlidesBefore: 0,
5037      addSlidesAfter: 0
5038    }
5039  });
5040  let cssModeTimeout;
5041  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
5042  swiper.virtual = {
5043    cache: {},
5044    from: undefined,
5045    to: undefined,
5046    slides: [],
5047    offset: 0,
5048    slidesGrid: []
5049  };
5050  const tempDOM = document.createElement('div');
5051  function renderSlide(slide, index) {
5052    const params = swiper.params.virtual;
5053    if (params.cache && swiper.virtual.cache[index]) {
5054      return swiper.virtual.cache[index];
5055    }
5056    // eslint-disable-next-line
5057    let slideEl;
5058    if (params.renderSlide) {
5059      slideEl = params.renderSlide.call(swiper, slide, index);
5060      if (typeof slideEl === 'string') {
5061        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(tempDOM, slideEl);
5062        slideEl = tempDOM.children[0];
5063      }
5064    } else if (swiper.isElement) {
5065      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('swiper-slide');
5066    } else {
5067      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.slideClass);
5068    }
5069    slideEl.setAttribute('data-swiper-slide-index', index);
5070    if (!params.renderSlide) {
5071      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(slideEl, slide);
5072    }
5073    if (params.cache) {
5074      swiper.virtual.cache[index] = slideEl;
5075    }
5076    return slideEl;
5077  }
5078  function update(force, beforeInit, forceActiveIndex) {
5079    const {
5080      slidesPerView,
5081      slidesPerGroup,
5082      centeredSlides,
5083      loop: isLoop,
5084      initialSlide
5085    } = swiper.params;
5086    if (beforeInit && !isLoop && initialSlide > 0) {
5087      return;
5088    }
5089    const {
5090      addSlidesBefore,
5091      addSlidesAfter
5092    } = swiper.params.virtual;
5093    const {
5094      from: previousFrom,
5095      to: previousTo,
5096      slides,
5097      slidesGrid: previousSlidesGrid,
5098      offset: previousOffset
5099    } = swiper.virtual;
5100    if (!swiper.params.cssMode) {
5101      swiper.updateActiveIndex();
5102    }
5103    const activeIndex = typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;
5104    let offsetProp;
5105    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
5106    let slidesAfter;
5107    let slidesBefore;
5108    if (centeredSlides) {
5109      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
5110      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
5111    } else {
5112      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
5113      slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;
5114    }
5115    let from = activeIndex - slidesBefore;
5116    let to = activeIndex + slidesAfter;
5117    if (!isLoop) {
5118      from = Math.max(from, 0);
5119      to = Math.min(to, slides.length - 1);
5120    }
5121    let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
5122    if (isLoop && activeIndex >= slidesBefore) {
5123      from -= slidesBefore;
5124      if (!centeredSlides) offset += swiper.slidesGrid[0];
5125    } else if (isLoop && activeIndex < slidesBefore) {
5126      from = -slidesBefore;
5127      if (centeredSlides) offset += swiper.slidesGrid[0];
5128    }
5129    Object.assign(swiper.virtual, {
5130      from,
5131      to,
5132      offset,
5133      slidesGrid: swiper.slidesGrid,
5134      slidesBefore,
5135      slidesAfter
5136    });
5137    function onRendered() {
5138      swiper.updateSlides();
5139      swiper.updateProgress();
5140      swiper.updateSlidesClasses();
5141      emit('virtualUpdate');
5142    }
5143    if (previousFrom === from && previousTo === to && !force) {
5144      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
5145        swiper.slides.forEach(slideEl => {
5146          slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
5147        });
5148      }
5149      swiper.updateProgress();
5150      emit('virtualUpdate');
5151      return;
5152    }
5153    if (swiper.params.virtual.renderExternal) {
5154      swiper.params.virtual.renderExternal.call(swiper, {
5155        offset,
5156        from,
5157        to,
5158        slides: function getSlides() {
5159          const slidesToRender = [];
5160          for (let i = from; i <= to; i += 1) {
5161            slidesToRender.push(slides[i]);
5162          }
5163          return slidesToRender;
5164        }()
5165      });
5166      if (swiper.params.virtual.renderExternalUpdate) {
5167        onRendered();
5168      } else {
5169        emit('virtualUpdate');
5170      }
5171      return;
5172    }
5173    const prependIndexes = [];
5174    const appendIndexes = [];
5175    const getSlideIndex = index => {
5176      let slideIndex = index;
5177      if (index < 0) {
5178        slideIndex = slides.length + index;
5179      } else if (slideIndex >= slides.length) {
5180        // eslint-disable-next-line
5181        slideIndex = slideIndex - slides.length;
5182      }
5183      return slideIndex;
5184    };
5185    if (force) {
5186      swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {
5187        slideEl.remove();
5188      });
5189    } else {
5190      for (let i = previousFrom; i <= previousTo; i += 1) {
5191        if (i < from || i > to) {
5192          const slideIndex = getSlideIndex(i);
5193          swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => {
5194            slideEl.remove();
5195          });
5196        }
5197      }
5198    }
5199    const loopFrom = isLoop ? -slides.length : 0;
5200    const loopTo = isLoop ? slides.length * 2 : slides.length;
5201    for (let i = loopFrom; i < loopTo; i += 1) {
5202      if (i >= from && i <= to) {
5203        const slideIndex = getSlideIndex(i);
5204        if (typeof previousTo === 'undefined' || force) {
5205          appendIndexes.push(slideIndex);
5206        } else {
5207          if (i > previousTo) appendIndexes.push(slideIndex);
5208          if (i < previousFrom) prependIndexes.push(slideIndex);
5209        }
5210      }
5211    }
5212    appendIndexes.forEach(index => {
5213      swiper.slidesEl.append(renderSlide(slides[index], index));
5214    });
5215    if (isLoop) {
5216      for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
5217        const index = prependIndexes[i];
5218        swiper.slidesEl.prepend(renderSlide(slides[index], index));
5219      }
5220    } else {
5221      prependIndexes.sort((a, b) => b - a);
5222      prependIndexes.forEach(index => {
5223        swiper.slidesEl.prepend(renderSlide(slides[index], index));
5224      });
5225    }
5226    (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
5227      slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
5228    });
5229    onRendered();
5230  }
5231  function appendSlide(slides) {
5232    if (typeof slides === 'object' && 'length' in slides) {
5233      for (let i = 0; i < slides.length; i += 1) {
5234        if (slides[i]) swiper.virtual.slides.push(slides[i]);
5235      }
5236    } else {
5237      swiper.virtual.slides.push(slides);
5238    }
5239    update(true);
5240  }
5241  function prependSlide(slides) {
5242    const activeIndex = swiper.activeIndex;
5243    let newActiveIndex = activeIndex + 1;
5244    let numberOfNewSlides = 1;
5245    if (Array.isArray(slides)) {
5246      for (let i = 0; i < slides.length; i += 1) {
5247        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
5248      }
5249      newActiveIndex = activeIndex + slides.length;
5250      numberOfNewSlides = slides.length;
5251    } else {
5252      swiper.virtual.slides.unshift(slides);
5253    }
5254    if (swiper.params.virtual.cache) {
5255      const cache = swiper.virtual.cache;
5256      const newCache = {};
5257      Object.keys(cache).forEach(cachedIndex => {
5258        const cachedEl = cache[cachedIndex];
5259        const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
5260        if (cachedElIndex) {
5261          cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
5262        }
5263        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
5264      });
5265      swiper.virtual.cache = newCache;
5266    }
5267    update(true);
5268    swiper.slideTo(newActiveIndex, 0);
5269  }
5270  function removeSlide(slidesIndexes) {
5271    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
5272    let activeIndex = swiper.activeIndex;
5273    if (Array.isArray(slidesIndexes)) {
5274      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
5275        if (swiper.params.virtual.cache) {
5276          delete swiper.virtual.cache[slidesIndexes[i]];
5277          // shift cache indexes
5278          Object.keys(swiper.virtual.cache).forEach(key => {
5279            if (key > slidesIndexes) {
5280              swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
5281              swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
5282              delete swiper.virtual.cache[key];
5283            }
5284          });
5285        }
5286        swiper.virtual.slides.splice(slidesIndexes[i], 1);
5287        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
5288        activeIndex = Math.max(activeIndex, 0);
5289      }
5290    } else {
5291      if (swiper.params.virtual.cache) {
5292        delete swiper.virtual.cache[slidesIndexes];
5293        // shift cache indexes
5294        Object.keys(swiper.virtual.cache).forEach(key => {
5295          if (key > slidesIndexes) {
5296            swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
5297            swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
5298            delete swiper.virtual.cache[key];
5299          }
5300        });
5301      }
5302      swiper.virtual.slides.splice(slidesIndexes, 1);
5303      if (slidesIndexes < activeIndex) activeIndex -= 1;
5304      activeIndex = Math.max(activeIndex, 0);
5305    }
5306    update(true);
5307    swiper.slideTo(activeIndex, 0);
5308  }
5309  function removeAllSlides() {
5310    swiper.virtual.slides = [];
5311    if (swiper.params.virtual.cache) {
5312      swiper.virtual.cache = {};
5313    }
5314    update(true);
5315    swiper.slideTo(0, 0);
5316  }
5317  on('beforeInit', () => {
5318    if (!swiper.params.virtual.enabled) return;
5319    let domSlidesAssigned;
5320    if (typeof swiper.passedParams.virtual.slides === 'undefined') {
5321      const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
5322      if (slides && slides.length) {
5323        swiper.virtual.slides = [...slides];
5324        domSlidesAssigned = true;
5325        slides.forEach((slideEl, slideIndex) => {
5326          slideEl.setAttribute('data-swiper-slide-index', slideIndex);
5327          swiper.virtual.cache[slideIndex] = slideEl;
5328          slideEl.remove();
5329        });
5330      }
5331    }
5332    if (!domSlidesAssigned) {
5333      swiper.virtual.slides = swiper.params.virtual.slides;
5334    }
5335    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
5336    swiper.params.watchSlidesProgress = true;
5337    swiper.originalParams.watchSlidesProgress = true;
5338    update(false, true);
5339  });
5340  on('setTranslate', () => {
5341    if (!swiper.params.virtual.enabled) return;
5342    if (swiper.params.cssMode && !swiper._immediateVirtual) {
5343      clearTimeout(cssModeTimeout);
5344      cssModeTimeout = setTimeout(() => {
5345        update();
5346      }, 100);
5347    } else {
5348      update();
5349    }
5350  });
5351  on('init update resize', () => {
5352    if (!swiper.params.virtual.enabled) return;
5353    if (swiper.params.cssMode) {
5354      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
5355    }
5356  });
5357  Object.assign(swiper.virtual, {
5358    appendSlide,
5359    prependSlide,
5360    removeSlide,
5361    removeAllSlides,
5362    update
5363  });
5364}
5365
5366
5367
5368
5369/***/ }),
5370
vendor: 26,487 bytes, lines 5371-6087
5371/***/ "./node_modules/swiper/modules/zoom.mjs":
5372/*!**********************************************!*\
5373  !*** ./node_modules/swiper/modules/zoom.mjs ***!
5374  \**********************************************/
5375/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5376
5377__webpack_require__.r(__webpack_exports__);
5378/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5379/* harmony export */   "default": () => (/* binding */ Zoom)
5380/* harmony export */ });
5381/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
5382/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5383
5384
5385
5386function Zoom(_ref) {
5387  let {
5388    swiper,
5389    extendParams,
5390    on,
5391    emit
5392  } = _ref;
5393  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
5394  extendParams({
5395    zoom: {
5396      enabled: false,
5397      limitToOriginalSize: false,
5398      maxRatio: 3,
5399      minRatio: 1,
5400      panOnMouseMove: false,
5401      toggle: true,
5402      containerClass: 'swiper-zoom-container',
5403      zoomedSlideClass: 'swiper-slide-zoomed'
5404    }
5405  });
5406  swiper.zoom = {
5407    enabled: false
5408  };
5409  let currentScale = 1;
5410  let isScaling = false;
5411  let isPanningWithMouse = false;
5412  let mousePanStart = {
5413    x: 0,
5414    y: 0
5415  };
5416  const mousePanSensitivity = -3; // Negative to invert pan direction
5417  let fakeGestureTouched;
5418  let fakeGestureMoved;
5419  const evCache = [];
5420  const gesture = {
5421    originX: 0,
5422    originY: 0,
5423    slideEl: undefined,
5424    slideWidth: undefined,
5425    slideHeight: undefined,
5426    imageEl: undefined,
5427    imageWrapEl: undefined,
5428    maxRatio: 3
5429  };
5430  const image = {
5431    isTouched: undefined,
5432    isMoved: undefined,
5433    currentX: undefined,
5434    currentY: undefined,
5435    minX: undefined,
5436    minY: undefined,
5437    maxX: undefined,
5438    maxY: undefined,
5439    width: undefined,
5440    height: undefined,
5441    startX: undefined,
5442    startY: undefined,
5443    touchesStart: {},
5444    touchesCurrent: {}
5445  };
5446  const velocity = {
5447    x: undefined,
5448    y: undefined,
5449    prevPositionX: undefined,
5450    prevPositionY: undefined,
5451    prevTime: undefined
5452  };
5453  let scale = 1;
5454  Object.defineProperty(swiper.zoom, 'scale', {
5455    get() {
5456      return scale;
5457    },
5458    set(value) {
5459      if (scale !== value) {
5460        const imageEl = gesture.imageEl;
5461        const slideEl = gesture.slideEl;
5462        emit('zoomChange', value, imageEl, slideEl);
5463      }
5464      scale = value;
5465    }
5466  });
5467  function getDistanceBetweenTouches() {
5468    if (evCache.length < 2) return 1;
5469    const x1 = evCache[0].pageX;
5470    const y1 = evCache[0].pageY;
5471    const x2 = evCache[1].pageX;
5472    const y2 = evCache[1].pageY;
5473    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
5474    return distance;
5475  }
5476  function getMaxRatio() {
5477    const params = swiper.params.zoom;
5478    const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
5479    if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {
5480      const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;
5481      return Math.min(imageMaxRatio, maxRatio);
5482    }
5483    return maxRatio;
5484  }
5485  function getScaleOrigin() {
5486    if (evCache.length < 2) return {
5487      x: null,
5488      y: null
5489    };
5490    const box = gesture.imageEl.getBoundingClientRect();
5491    return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];
5492  }
5493  function getSlideSelector() {
5494    return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
5495  }
5496  function eventWithinSlide(e) {
5497    const slideSelector = getSlideSelector();
5498    if (e.target.matches(slideSelector)) return true;
5499    if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;
5500    return false;
5501  }
5502  function eventWithinZoomContainer(e) {
5503    const selector = `.${swiper.params.zoom.containerClass}`;
5504    if (e.target.matches(selector)) return true;
5505    if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;
5506    return false;
5507  }
5508
5509  // Events
5510  function onGestureStart(e) {
5511    if (e.pointerType === 'mouse') {
5512      evCache.splice(0, evCache.length);
5513    }
5514    if (!eventWithinSlide(e)) return;
5515    const params = swiper.params.zoom;
5516    fakeGestureTouched = false;
5517    fakeGestureMoved = false;
5518    evCache.push(e);
5519    if (evCache.length < 2) {
5520      return;
5521    }
5522    fakeGestureTouched = true;
5523    gesture.scaleStart = getDistanceBetweenTouches();
5524    if (!gesture.slideEl) {
5525      gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
5526      if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];
5527      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5528      if (imageEl) {
5529        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5530      }
5531      gesture.imageEl = imageEl;
5532      if (imageEl) {
5533        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.imageEl, `.${params.containerClass}`)[0];
5534      } else {
5535        gesture.imageWrapEl = undefined;
5536      }
5537      if (!gesture.imageWrapEl) {
5538        gesture.imageEl = undefined;
5539        return;
5540      }
5541      gesture.maxRatio = getMaxRatio();
5542    }
5543    if (gesture.imageEl) {
5544      const [originX, originY] = getScaleOrigin();
5545      gesture.originX = originX;
5546      gesture.originY = originY;
5547      gesture.imageEl.style.transitionDuration = '0ms';
5548    }
5549    isScaling = true;
5550  }
5551  function onGestureChange(e) {
5552    if (!eventWithinSlide(e)) return;
5553    const params = swiper.params.zoom;
5554    const zoom = swiper.zoom;
5555    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
5556    if (pointerIndex >= 0) evCache[pointerIndex] = e;
5557    if (evCache.length < 2) {
5558      return;
5559    }
5560    fakeGestureMoved = true;
5561    gesture.scaleMove = getDistanceBetweenTouches();
5562    if (!gesture.imageEl) {
5563      return;
5564    }
5565    zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;
5566    if (zoom.scale > gesture.maxRatio) {
5567      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
5568    }
5569    if (zoom.scale < params.minRatio) {
5570      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
5571    }
5572    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5573  }
5574  function onGestureEnd(e) {
5575    if (!eventWithinSlide(e)) return;
5576    if (e.pointerType === 'mouse' && e.type === 'pointerout') return;
5577    const params = swiper.params.zoom;
5578    const zoom = swiper.zoom;
5579    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
5580    if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);
5581    if (!fakeGestureTouched || !fakeGestureMoved) {
5582      return;
5583    }
5584    fakeGestureTouched = false;
5585    fakeGestureMoved = false;
5586    if (!gesture.imageEl) return;
5587    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
5588    gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;
5589    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5590    currentScale = zoom.scale;
5591    isScaling = false;
5592    if (zoom.scale > 1 && gesture.slideEl) {
5593      gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
5594    } else if (zoom.scale <= 1 && gesture.slideEl) {
5595      gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
5596    }
5597    if (zoom.scale === 1) {
5598      gesture.originX = 0;
5599      gesture.originY = 0;
5600      gesture.slideEl = undefined;
5601    }
5602  }
5603  let allowTouchMoveTimeout;
5604  function allowTouchMove() {
5605    swiper.touchEventsData.preventTouchMoveFromPointerMove = false;
5606  }
5607  function preventTouchMove() {
5608    clearTimeout(allowTouchMoveTimeout);
5609    swiper.touchEventsData.preventTouchMoveFromPointerMove = true;
5610    allowTouchMoveTimeout = setTimeout(() => {
5611      if (swiper.destroyed) return;
5612      allowTouchMove();
5613    });
5614  }
5615  function onTouchStart(e) {
5616    const device = swiper.device;
5617    if (!gesture.imageEl) return;
5618    if (image.isTouched) return;
5619    if (device.android && e.cancelable) e.preventDefault();
5620    image.isTouched = true;
5621    const event = evCache.length > 0 ? evCache[0] : e;
5622    image.touchesStart.x = event.pageX;
5623    image.touchesStart.y = event.pageY;
5624  }
5625  function onTouchMove(e) {
5626    const isMouseEvent = e.pointerType === 'mouse';
5627    const isMousePan = isMouseEvent && swiper.params.zoom.panOnMouseMove;
5628    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {
5629      return;
5630    }
5631    const zoom = swiper.zoom;
5632    if (!gesture.imageEl) {
5633      return;
5634    }
5635    if (!image.isTouched || !gesture.slideEl) {
5636      if (isMousePan) onMouseMove(e);
5637      return;
5638    }
5639    if (isMousePan) {
5640      onMouseMove(e);
5641      return;
5642    }
5643    if (!image.isMoved) {
5644      image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5645      image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5646      image.startX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.k)(gesture.imageWrapEl, 'x') || 0;
5647      image.startY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.k)(gesture.imageWrapEl, 'y') || 0;
5648      gesture.slideWidth = gesture.slideEl.offsetWidth;
5649      gesture.slideHeight = gesture.slideEl.offsetHeight;
5650      gesture.imageWrapEl.style.transitionDuration = '0ms';
5651    }
5652    // Define if we need image drag
5653    const scaledWidth = image.width * zoom.scale;
5654    const scaledHeight = image.height * zoom.scale;
5655    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
5656    image.maxX = -image.minX;
5657    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
5658    image.maxY = -image.minY;
5659    image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;
5660    image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;
5661    const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));
5662    if (touchesDiff > 5) {
5663      swiper.allowClick = false;
5664    }
5665    if (!image.isMoved && !isScaling) {
5666      if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {
5667        image.isTouched = false;
5668        allowTouchMove();
5669        return;
5670      }
5671      if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {
5672        image.isTouched = false;
5673        allowTouchMove();
5674        return;
5675      }
5676    }
5677    if (e.cancelable) {
5678      e.preventDefault();
5679    }
5680    e.stopPropagation();
5681    preventTouchMove();
5682    image.isMoved = true;
5683    const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);
5684    const {
5685      originX,
5686      originY
5687    } = gesture;
5688    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);
5689    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);
5690    if (image.currentX < image.minX) {
5691      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
5692    }
5693    if (image.currentX > image.maxX) {
5694      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
5695    }
5696    if (image.currentY < image.minY) {
5697      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
5698    }
5699    if (image.currentY > image.maxY) {
5700      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
5701    }
5702
5703    // Velocity
5704    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;
5705    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;
5706    if (!velocity.prevTime) velocity.prevTime = Date.now();
5707    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
5708    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
5709    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;
5710    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;
5711    velocity.prevPositionX = image.touchesCurrent.x;
5712    velocity.prevPositionY = image.touchesCurrent.y;
5713    velocity.prevTime = Date.now();
5714    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
5715  }
5716  function onTouchEnd() {
5717    const zoom = swiper.zoom;
5718    evCache.length = 0;
5719    if (!gesture.imageEl) return;
5720    if (!image.isTouched || !image.isMoved) {
5721      image.isTouched = false;
5722      image.isMoved = false;
5723      return;
5724    }
5725    image.isTouched = false;
5726    image.isMoved = false;
5727    let momentumDurationX = 300;
5728    let momentumDurationY = 300;
5729    const momentumDistanceX = velocity.x * momentumDurationX;
5730    const newPositionX = image.currentX + momentumDistanceX;
5731    const momentumDistanceY = velocity.y * momentumDurationY;
5732    const newPositionY = image.currentY + momentumDistanceY;
5733
5734    // Fix duration
5735    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
5736    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
5737    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);
5738    image.currentX = newPositionX;
5739    image.currentY = newPositionY;
5740    // Define if we need image drag
5741    const scaledWidth = image.width * zoom.scale;
5742    const scaledHeight = image.height * zoom.scale;
5743    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
5744    image.maxX = -image.minX;
5745    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
5746    image.maxY = -image.minY;
5747    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
5748    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
5749    gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;
5750    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
5751  }
5752  function onTransitionEnd() {
5753    const zoom = swiper.zoom;
5754    if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {
5755      if (gesture.imageEl) {
5756        gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
5757      }
5758      if (gesture.imageWrapEl) {
5759        gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
5760      }
5761      gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);
5762      zoom.scale = 1;
5763      currentScale = 1;
5764      gesture.slideEl = undefined;
5765      gesture.imageEl = undefined;
5766      gesture.imageWrapEl = undefined;
5767      gesture.originX = 0;
5768      gesture.originY = 0;
5769    }
5770  }
5771  function onMouseMove(e) {
5772    // Only pan if zoomed in and mouse panning is enabled
5773    if (currentScale <= 1 || !gesture.imageWrapEl) return;
5774    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;
5775    const currentTransform = window.getComputedStyle(gesture.imageWrapEl).transform;
5776    const matrix = new window.DOMMatrix(currentTransform);
5777    if (!isPanningWithMouse) {
5778      isPanningWithMouse = true;
5779      mousePanStart.x = e.clientX;
5780      mousePanStart.y = e.clientY;
5781      image.startX = matrix.e;
5782      image.startY = matrix.f;
5783      image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5784      image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5785      gesture.slideWidth = gesture.slideEl.offsetWidth;
5786      gesture.slideHeight = gesture.slideEl.offsetHeight;
5787      return;
5788    }
5789    const deltaX = (e.clientX - mousePanStart.x) * mousePanSensitivity;
5790    const deltaY = (e.clientY - mousePanStart.y) * mousePanSensitivity;
5791    const scaledWidth = image.width * currentScale;
5792    const scaledHeight = image.height * currentScale;
5793    const slideWidth = gesture.slideWidth;
5794    const slideHeight = gesture.slideHeight;
5795    const minX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
5796    const maxX = -minX;
5797    const minY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
5798    const maxY = -minY;
5799    const newX = Math.max(Math.min(image.startX + deltaX, maxX), minX);
5800    const newY = Math.max(Math.min(image.startY + deltaY, maxY), minY);
5801    gesture.imageWrapEl.style.transitionDuration = '0ms';
5802    gesture.imageWrapEl.style.transform = `translate3d(${newX}px, ${newY}px, 0)`;
5803    mousePanStart.x = e.clientX;
5804    mousePanStart.y = e.clientY;
5805    image.startX = newX;
5806    image.startY = newY;
5807    image.currentX = newX;
5808    image.currentY = newY;
5809  }
5810  function zoomIn(e) {
5811    const zoom = swiper.zoom;
5812    const params = swiper.params.zoom;
5813    if (!gesture.slideEl) {
5814      if (e && e.target) {
5815        gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
5816      }
5817      if (!gesture.slideEl) {
5818        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
5819          gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
5820        } else {
5821          gesture.slideEl = swiper.slides[swiper.activeIndex];
5822        }
5823      }
5824      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5825      if (imageEl) {
5826        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5827      }
5828      gesture.imageEl = imageEl;
5829      if (imageEl) {
5830        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.imageEl, `.${params.containerClass}`)[0];
5831      } else {
5832        gesture.imageWrapEl = undefined;
5833      }
5834    }
5835    if (!gesture.imageEl || !gesture.imageWrapEl) return;
5836    if (swiper.params.cssMode) {
5837      swiper.wrapperEl.style.overflow = 'hidden';
5838      swiper.wrapperEl.style.touchAction = 'none';
5839    }
5840    gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
5841    let touchX;
5842    let touchY;
5843    let offsetX;
5844    let offsetY;
5845    let diffX;
5846    let diffY;
5847    let translateX;
5848    let translateY;
5849    let imageWidth;
5850    let imageHeight;
5851    let scaledWidth;
5852    let scaledHeight;
5853    let translateMinX;
5854    let translateMinY;
5855    let translateMaxX;
5856    let translateMaxY;
5857    let slideWidth;
5858    let slideHeight;
5859    if (typeof image.touchesStart.x === 'undefined' && e) {
5860      touchX = e.pageX;
5861      touchY = e.pageY;
5862    } else {
5863      touchX = image.touchesStart.x;
5864      touchY = image.touchesStart.y;
5865    }
5866    const prevScale = currentScale;
5867    const forceZoomRatio = typeof e === 'number' ? e : null;
5868    if (currentScale === 1 && forceZoomRatio) {
5869      touchX = undefined;
5870      touchY = undefined;
5871      image.touchesStart.x = undefined;
5872      image.touchesStart.y = undefined;
5873    }
5874    const maxRatio = getMaxRatio();
5875    zoom.scale = forceZoomRatio || maxRatio;
5876    currentScale = forceZoomRatio || maxRatio;
5877    if (e && !(currentScale === 1 && forceZoomRatio)) {
5878      slideWidth = gesture.slideEl.offsetWidth;
5879      slideHeight = gesture.slideEl.offsetHeight;
5880      offsetX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(gesture.slideEl).left + window.scrollX;
5881      offsetY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(gesture.slideEl).top + window.scrollY;
5882      diffX = offsetX + slideWidth / 2 - touchX;
5883      diffY = offsetY + slideHeight / 2 - touchY;
5884      imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5885      imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5886      scaledWidth = imageWidth * zoom.scale;
5887      scaledHeight = imageHeight * zoom.scale;
5888      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
5889      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
5890      translateMaxX = -translateMinX;
5891      translateMaxY = -translateMinY;
5892      if (prevScale > 0 && forceZoomRatio && typeof image.currentX === 'number' && typeof image.currentY === 'number') {
5893        translateX = image.currentX * zoom.scale / prevScale;
5894        translateY = image.currentY * zoom.scale / prevScale;
5895      } else {
5896        translateX = diffX * zoom.scale;
5897        translateY = diffY * zoom.scale;
5898      }
5899      if (translateX < translateMinX) {
5900        translateX = translateMinX;
5901      }
5902      if (translateX > translateMaxX) {
5903        translateX = translateMaxX;
5904      }
5905      if (translateY < translateMinY) {
5906        translateY = translateMinY;
5907      }
5908      if (translateY > translateMaxY) {
5909        translateY = translateMaxY;
5910      }
5911    } else {
5912      translateX = 0;
5913      translateY = 0;
5914    }
5915    if (forceZoomRatio && zoom.scale === 1) {
5916      gesture.originX = 0;
5917      gesture.originY = 0;
5918    }
5919    image.currentX = translateX;
5920    image.currentY = translateY;
5921    gesture.imageWrapEl.style.transitionDuration = '300ms';
5922    gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;
5923    gesture.imageEl.style.transitionDuration = '300ms';
5924    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5925  }
5926  function zoomOut() {
5927    const zoom = swiper.zoom;
5928    const params = swiper.params.zoom;
5929    if (!gesture.slideEl) {
5930      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
5931        gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
5932      } else {
5933        gesture.slideEl = swiper.slides[swiper.activeIndex];
5934      }
5935      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5936      if (imageEl) {
5937        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5938      }
5939      gesture.imageEl = imageEl;
5940      if (imageEl) {
5941        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.imageEl, `.${params.containerClass}`)[0];
5942      } else {
5943        gesture.imageWrapEl = undefined;
5944      }
5945    }
5946    if (!gesture.imageEl || !gesture.imageWrapEl) return;
5947    if (swiper.params.cssMode) {
5948      swiper.wrapperEl.style.overflow = '';
5949      swiper.wrapperEl.style.touchAction = '';
5950    }
5951    zoom.scale = 1;
5952    currentScale = 1;
5953    image.currentX = undefined;
5954    image.currentY = undefined;
5955    image.touchesStart.x = undefined;
5956    image.touchesStart.y = undefined;
5957    gesture.imageWrapEl.style.transitionDuration = '300ms';
5958    gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
5959    gesture.imageEl.style.transitionDuration = '300ms';
5960    gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
5961    gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
5962    gesture.slideEl = undefined;
5963    gesture.originX = 0;
5964    gesture.originY = 0;
5965    if (swiper.params.zoom.panOnMouseMove) {
5966      mousePanStart = {
5967        x: 0,
5968        y: 0
5969      };
5970      if (isPanningWithMouse) {
5971        isPanningWithMouse = false;
5972        image.startX = 0;
5973        image.startY = 0;
5974      }
5975    }
5976  }
5977
5978  // Toggle Zoom
5979  function zoomToggle(e) {
5980    const zoom = swiper.zoom;
5981    if (zoom.scale && zoom.scale !== 1) {
5982      // Zoom Out
5983      zoomOut();
5984    } else {
5985      // Zoom In
5986      zoomIn(e);
5987    }
5988  }
5989  function getListeners() {
5990    const passiveListener = swiper.params.passiveListeners ? {
5991      passive: true,
5992      capture: false
5993    } : false;
5994    const activeListenerWithCapture = swiper.params.passiveListeners ? {
5995      passive: false,
5996      capture: true
5997    } : true;
5998    return {
5999      passiveListener,
6000      activeListenerWithCapture
6001    };
6002  }
6003
6004  // Attach/Detach Events
6005  function enable() {
6006    const zoom = swiper.zoom;
6007    if (zoom.enabled) return;
6008    zoom.enabled = true;
6009    const {
6010      passiveListener,
6011      activeListenerWithCapture
6012    } = getListeners();
6013
6014    // Scale image
6015    swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);
6016    swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);
6017    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
6018      swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);
6019    });
6020
6021    // Move image
6022    swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);
6023  }
6024  function disable() {
6025    const zoom = swiper.zoom;
6026    if (!zoom.enabled) return;
6027    zoom.enabled = false;
6028    const {
6029      passiveListener,
6030      activeListenerWithCapture
6031    } = getListeners();
6032
6033    // Scale image
6034    swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);
6035    swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);
6036    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
6037      swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);
6038    });
6039
6040    // Move image
6041    swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);
6042  }
6043  on('init', () => {
6044    if (swiper.params.zoom.enabled) {
6045      enable();
6046    }
6047  });
6048  on('destroy', () => {
6049    disable();
6050  });
6051  on('touchStart', (_s, e) => {
6052    if (!swiper.zoom.enabled) return;
6053    onTouchStart(e);
6054  });
6055  on('touchEnd', (_s, e) => {
6056    if (!swiper.zoom.enabled) return;
6057    onTouchEnd();
6058  });
6059  on('doubleTap', (_s, e) => {
6060    if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
6061      zoomToggle(e);
6062    }
6063  });
6064  on('transitionEnd', () => {
6065    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {
6066      onTransitionEnd();
6067    }
6068  });
6069  on('slideChange', () => {
6070    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {
6071      onTransitionEnd();
6072    }
6073  });
6074  Object.assign(swiper.zoom, {
6075    enable,
6076    disable,
6077    in: zoomIn,
6078    out: zoomOut,
6079    toggle: zoomToggle
6080  });
6081}
6082
6083
6084
6085
6086/***/ }),
6087
vendor: 771 bytes, lines 6088-6110
6088/***/ "./node_modules/swiper/shared/classes-to-selector.mjs":
6089/*!************************************************************!*\
6090  !*** ./node_modules/swiper/shared/classes-to-selector.mjs ***!
6091  \************************************************************/
6092/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6093
6094__webpack_require__.r(__webpack_exports__);
6095/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6096/* harmony export */   c: () => (/* binding */ classesToSelector)
6097/* harmony export */ });
6098function classesToSelector(classes) {
6099  if (classes === void 0) {
6100    classes = '';
6101  }
6102  return `.${classes.trim().replace(/([\.:!+\/()[\]])/g, '\\$1') // eslint-disable-line
6103  .replace(/ /g, '.')}`;
6104}
6105
6106
6107
6108
6109/***/ }),
6110
vendor: 1,405 bytes, lines 6111-6146
6111/***/ "./node_modules/swiper/shared/create-element-if-not-defined.mjs":
6112/*!**********************************************************************!*\
6113  !*** ./node_modules/swiper/shared/create-element-if-not-defined.mjs ***!
6114  \**********************************************************************/
6115/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6116
6117__webpack_require__.r(__webpack_exports__);
6118/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6119/* harmony export */   c: () => (/* binding */ createElementIfNotDefined)
6120/* harmony export */ });
6121/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6122
6123
6124function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
6125  if (swiper.params.createElements) {
6126    Object.keys(checkProps).forEach(key => {
6127      if (!params[key] && params.auto === true) {
6128        let element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.el, `.${checkProps[key]}`)[0];
6129        if (!element) {
6130          element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', checkProps[key]);
6131          element.className = checkProps[key];
6132          swiper.el.append(element);
6133        }
6134        params[key] = element;
6135        originalParams[key] = element;
6136      }
6137    });
6138  }
6139  return params;
6140}
6141
6142
6143
6144
6145/***/ }),
6146
vendor: 1,201 bytes, lines 6147-6175
6147/***/ "./node_modules/swiper/shared/create-shadow.mjs":
6148/*!******************************************************!*\
6149  !*** ./node_modules/swiper/shared/create-shadow.mjs ***!
6150  \******************************************************/
6151/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6152
6153__webpack_require__.r(__webpack_exports__);
6154/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6155/* harmony export */   c: () => (/* binding */ createShadow)
6156/* harmony export */ });
6157/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6158
6159
6160function createShadow(suffix, slideEl, side) {
6161  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;
6162  const shadowContainer = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
6163  let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);
6164  if (!shadowEl) {
6165    shadowEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', shadowClass.split(' '));
6166    shadowContainer.append(shadowEl);
6167  }
6168  return shadowEl;
6169}
6170
6171
6172
6173
6174/***/ }),
6175
vendor: 2,340 bytes, lines 6176-6247
6176/***/ "./node_modules/swiper/shared/effect-init.mjs":
6177/*!****************************************************!*\
6178  !*** ./node_modules/swiper/shared/effect-init.mjs ***!
6179  \****************************************************/
6180/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6181
6182__webpack_require__.r(__webpack_exports__);
6183/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6184/* harmony export */   e: () => (/* binding */ effectInit)
6185/* harmony export */ });
6186function effectInit(params) {
6187  const {
6188    effect,
6189    swiper,
6190    on,
6191    setTranslate,
6192    setTransition,
6193    overwriteParams,
6194    perspective,
6195    recreateShadows,
6196    getEffectParams
6197  } = params;
6198  on('beforeInit', () => {
6199    if (swiper.params.effect !== effect) return;
6200    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
6201    if (perspective && perspective()) {
6202      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
6203    }
6204    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};
6205    Object.assign(swiper.params, overwriteParamsResult);
6206    Object.assign(swiper.originalParams, overwriteParamsResult);
6207  });
6208  on('setTranslate _virtualUpdated', () => {
6209    if (swiper.params.effect !== effect) return;
6210    setTranslate();
6211  });
6212  on('setTransition', (_s, duration) => {
6213    if (swiper.params.effect !== effect) return;
6214    setTransition(duration);
6215  });
6216  on('transitionEnd', () => {
6217    if (swiper.params.effect !== effect) return;
6218    if (recreateShadows) {
6219      if (!getEffectParams || !getEffectParams().slideShadows) return;
6220      // remove shadows
6221      swiper.slides.forEach(slideEl => {
6222        slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());
6223      });
6224      // create new one
6225      recreateShadows();
6226    }
6227  });
6228  let requireUpdateOnVirtual;
6229  on('virtualUpdate', () => {
6230    if (swiper.params.effect !== effect) return;
6231    if (!swiper.slides.length) {
6232      requireUpdateOnVirtual = true;
6233    }
6234    requestAnimationFrame(() => {
6235      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {
6236        setTranslate();
6237        requireUpdateOnVirtual = false;
6238      }
6239    });
6240  });
6241}
6242
6243
6244
6245
6246/***/ }),
6247
vendor: 994 bytes, lines 6248-6274
6248/***/ "./node_modules/swiper/shared/effect-target.mjs":
6249/*!******************************************************!*\
6250  !*** ./node_modules/swiper/shared/effect-target.mjs ***!
6251  \******************************************************/
6252/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6253
6254__webpack_require__.r(__webpack_exports__);
6255/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6256/* harmony export */   e: () => (/* binding */ effectTarget)
6257/* harmony export */ });
6258/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6259
6260
6261function effectTarget(effectParams, slideEl) {
6262  const transformEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
6263  if (transformEl !== slideEl) {
6264    transformEl.style.backfaceVisibility = 'hidden';
6265    transformEl.style['-webkit-backface-visibility'] = 'hidden';
6266  }
6267  return transformEl;
6268}
6269
6270
6271
6272
6273/***/ }),
6274
vendor: 2,097 bytes, lines 6275-6337
6275/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs":
6276/*!**********************************************************************!*\
6277  !*** ./node_modules/swiper/shared/effect-virtual-transition-end.mjs ***!
6278  \**********************************************************************/
6279/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6280
6281__webpack_require__.r(__webpack_exports__);
6282/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6283/* harmony export */   e: () => (/* binding */ effectVirtualTransitionEnd)
6284/* harmony export */ });
6285/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6286
6287
6288function effectVirtualTransitionEnd(_ref) {
6289  let {
6290    swiper,
6291    duration,
6292    transformElements,
6293    allSlides
6294  } = _ref;
6295  const {
6296    activeIndex
6297  } = swiper;
6298  const getSlide = el => {
6299    if (!el.parentElement) {
6300      // assume shadow root
6301      const slide = swiper.slides.find(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode);
6302      return slide;
6303    }
6304    return el.parentElement;
6305  };
6306  if (swiper.params.virtualTranslate && duration !== 0) {
6307    let eventTriggered = false;
6308    let transitionEndTarget;
6309    if (allSlides) {
6310      transitionEndTarget = transformElements;
6311    } else {
6312      transitionEndTarget = transformElements.filter(transformEl => {
6313        const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;
6314        return swiper.getSlideIndex(el) === activeIndex;
6315      });
6316    }
6317    transitionEndTarget.forEach(el => {
6318      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(el, () => {
6319        if (eventTriggered) return;
6320        if (!swiper || swiper.destroyed) return;
6321        eventTriggered = true;
6322        swiper.animating = false;
6323        const evt = new window.CustomEvent('transitionend', {
6324          bubbles: true,
6325          cancelable: true
6326        });
6327        swiper.wrapperEl.dispatchEvent(evt);
6328      });
6329    });
6330  }
6331}
6332
6333
6334
6335
6336/***/ }),
6337
vendor: 3,419 bytes, lines 6338-6498
6338/***/ "./node_modules/swiper/shared/ssr-window.esm.mjs":
6339/*!*******************************************************!*\
6340  !*** ./node_modules/swiper/shared/ssr-window.esm.mjs ***!
6341  \*******************************************************/
6342/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6343
6344__webpack_require__.r(__webpack_exports__);
6345/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6346/* harmony export */   a: () => (/* binding */ getWindow),
6347/* harmony export */   g: () => (/* binding */ getDocument)
6348/* harmony export */ });
6349/**
6350 * SSR Window 5.0.1
6351 * Better handling for window object in SSR environment
6352 * https://github.com/nolimits4web/ssr-window
6353 *
6354 * Copyright 2025, Vladimir Kharlampidi
6355 *
6356 * Licensed under MIT
6357 *
6358 * Released on: June 27, 2025
6359 */
6360/* eslint-disable no-param-reassign */
6361function isObject(obj) {
6362  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
6363}
6364function extend(target, src) {
6365  if (target === void 0) {
6366    target = {};
6367  }
6368  if (src === void 0) {
6369    src = {};
6370  }
6371  const noExtend = ['__proto__', 'constructor', 'prototype'];
6372  Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {
6373    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {
6374      extend(target[key], src[key]);
6375    }
6376  });
6377}
6378const ssrDocument = {
6379  body: {},
6380  addEventListener() {},
6381  removeEventListener() {},
6382  activeElement: {
6383    blur() {},
6384    nodeName: ''
6385  },
6386  querySelector() {
6387    return null;
6388  },
6389  querySelectorAll() {
6390    return [];
6391  },
6392  getElementById() {
6393    return null;
6394  },
6395  createEvent() {
6396    return {
6397      initEvent() {}
6398    };
6399  },
6400  createElement() {
6401    return {
6402      children: [],
6403      childNodes: [],
6404      style: {},
6405      setAttribute() {},
6406      getElementsByTagName() {
6407        return [];
6408      }
6409    };
6410  },
6411  createElementNS() {
6412    return {};
6413  },
6414  importNode() {
6415    return null;
6416  },
6417  location: {
6418    hash: '',
6419    host: '',
6420    hostname: '',
6421    href: '',
6422    origin: '',
6423    pathname: '',
6424    protocol: '',
6425    search: ''
6426  }
6427};
6428function getDocument() {
6429  const doc = typeof document !== 'undefined' ? document : {};
6430  extend(doc, ssrDocument);
6431  return doc;
6432}
6433const ssrWindow = {
6434  document: ssrDocument,
6435  navigator: {
6436    userAgent: ''
6437  },
6438  location: {
6439    hash: '',
6440    host: '',
6441    hostname: '',
6442    href: '',
6443    origin: '',
6444    pathname: '',
6445    protocol: '',
6446    search: ''
6447  },
6448  history: {
6449    replaceState() {},
6450    pushState() {},
6451    go() {},
6452    back() {}
6453  },
6454  CustomEvent: function CustomEvent() {
6455    return this;
6456  },
6457  addEventListener() {},
6458  removeEventListener() {},
6459  getComputedStyle() {
6460    return {
6461      getPropertyValue() {
6462        return '';
6463      }
6464    };
6465  },
6466  Image() {},
6467  Date() {},
6468  screen: {},
6469  setTimeout() {},
6470  clearTimeout() {},
6471  matchMedia() {
6472    return {};
6473  },
6474  requestAnimationFrame(callback) {
6475    if (typeof setTimeout === 'undefined') {
6476      callback();
6477      return null;
6478    }
6479    return setTimeout(callback, 0);
6480  },
6481  cancelAnimationFrame(id) {
6482    if (typeof setTimeout === 'undefined') {
6483      return;
6484    }
6485    clearTimeout(id);
6486  }
6487};
6488function getWindow() {
6489  const win = typeof window !== 'undefined' ? window : {};
6490  extend(win, ssrWindow);
6491  return win;
6492}
6493
6494
6495
6496
6497/***/ }),
6498
vendor: 135,038 bytes, lines 6499-10467
6499/***/ "./node_modules/swiper/shared/swiper-core.mjs":
6500/*!****************************************************!*\
6501  !*** ./node_modules/swiper/shared/swiper-core.mjs ***!
6502  \****************************************************/
6503/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6504
6505__webpack_require__.r(__webpack_exports__);
6506/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6507/* harmony export */   S: () => (/* binding */ Swiper),
6508/* harmony export */   d: () => (/* binding */ defaults)
6509/* harmony export */ });
6510/* harmony import */ var _ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
6511/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6512
6513
6514
6515let support;
6516function calcSupport() {
6517  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6518  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
6519  return {
6520    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,
6521    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)
6522  };
6523}
6524function getSupport() {
6525  if (!support) {
6526    support = calcSupport();
6527  }
6528  return support;
6529}
6530
6531let deviceCached;
6532function calcDevice(_temp) {
6533  let {
6534    userAgent
6535  } = _temp === void 0 ? {} : _temp;
6536  const support = getSupport();
6537  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6538  const platform = window.navigator.platform;
6539  const ua = userAgent || window.navigator.userAgent;
6540  const device = {
6541    ios: false,
6542    android: false
6543  };
6544  const screenWidth = window.screen.width;
6545  const screenHeight = window.screen.height;
6546  const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
6547  let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
6548  const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
6549  const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
6550  const windows = platform === 'Win32';
6551  let macos = platform === 'MacIntel';
6552
6553  // iPadOs 13 fix
6554  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
6555  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
6556    ipad = ua.match(/(Version)\/([\d.]+)/);
6557    if (!ipad) ipad = [0, 1, '13_0_0'];
6558    macos = false;
6559  }
6560
6561  // Android
6562  if (android && !windows) {
6563    device.os = 'android';
6564    device.android = true;
6565  }
6566  if (ipad || iphone || ipod) {
6567    device.os = 'ios';
6568    device.ios = true;
6569  }
6570
6571  // Export object
6572  return device;
6573}
6574function getDevice(overrides) {
6575  if (overrides === void 0) {
6576    overrides = {};
6577  }
6578  if (!deviceCached) {
6579    deviceCached = calcDevice(overrides);
6580  }
6581  return deviceCached;
6582}
6583
6584let browser;
6585function calcBrowser() {
6586  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6587  const device = getDevice();
6588  let needPerspectiveFix = false;
6589  function isSafari() {
6590    const ua = window.navigator.userAgent.toLowerCase();
6591    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
6592  }
6593  if (isSafari()) {
6594    const ua = String(window.navigator.userAgent);
6595    if (ua.includes('Version/')) {
6596      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
6597      needPerspectiveFix = major < 16 || major === 16 && minor < 2;
6598    }
6599  }
6600  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);
6601  const isSafariBrowser = isSafari();
6602  const need3dFix = isSafariBrowser || isWebView && device.ios;
6603  return {
6604    isSafari: needPerspectiveFix || isSafariBrowser,
6605    needPerspectiveFix,
6606    need3dFix,
6607    isWebView
6608  };
6609}
6610function getBrowser() {
6611  if (!browser) {
6612    browser = calcBrowser();
6613  }
6614  return browser;
6615}
6616
6617function Resize(_ref) {
6618  let {
6619    swiper,
6620    on,
6621    emit
6622  } = _ref;
6623  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6624  let observer = null;
6625  let animationFrame = null;
6626  const resizeHandler = () => {
6627    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6628    emit('beforeResize');
6629    emit('resize');
6630  };
6631  const createObserver = () => {
6632    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6633    observer = new ResizeObserver(entries => {
6634      animationFrame = window.requestAnimationFrame(() => {
6635        const {
6636          width,
6637          height
6638        } = swiper;
6639        let newWidth = width;
6640        let newHeight = height;
6641        entries.forEach(_ref2 => {
6642          let {
6643            contentBoxSize,
6644            contentRect,
6645            target
6646          } = _ref2;
6647          if (target && target !== swiper.el) return;
6648          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
6649          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
6650        });
6651        if (newWidth !== width || newHeight !== height) {
6652          resizeHandler();
6653        }
6654      });
6655    });
6656    observer.observe(swiper.el);
6657  };
6658  const removeObserver = () => {
6659    if (animationFrame) {
6660      window.cancelAnimationFrame(animationFrame);
6661    }
6662    if (observer && observer.unobserve && swiper.el) {
6663      observer.unobserve(swiper.el);
6664      observer = null;
6665    }
6666  };
6667  const orientationChangeHandler = () => {
6668    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6669    emit('orientationchange');
6670  };
6671  on('init', () => {
6672    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {
6673      createObserver();
6674      return;
6675    }
6676    window.addEventListener('resize', resizeHandler);
6677    window.addEventListener('orientationchange', orientationChangeHandler);
6678  });
6679  on('destroy', () => {
6680    removeObserver();
6681    window.removeEventListener('resize', resizeHandler);
6682    window.removeEventListener('orientationchange', orientationChangeHandler);
6683  });
6684}
6685
6686function Observer(_ref) {
6687  let {
6688    swiper,
6689    extendParams,
6690    on,
6691    emit
6692  } = _ref;
6693  const observers = [];
6694  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6695  const attach = function (target, options) {
6696    if (options === void 0) {
6697      options = {};
6698    }
6699    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
6700    const observer = new ObserverFunc(mutations => {
6701      // The observerUpdate event should only be triggered
6702      // once despite the number of mutations.  Additional
6703      // triggers are redundant and are very costly
6704      if (swiper.__preventObserver__) return;
6705      if (mutations.length === 1) {
6706        emit('observerUpdate', mutations[0]);
6707        return;
6708      }
6709      const observerUpdate = function observerUpdate() {
6710        emit('observerUpdate', mutations[0]);
6711      };
6712      if (window.requestAnimationFrame) {
6713        window.requestAnimationFrame(observerUpdate);
6714      } else {
6715        window.setTimeout(observerUpdate, 0);
6716      }
6717    });
6718    observer.observe(target, {
6719      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
6720      childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,
6721      characterData: typeof options.characterData === 'undefined' ? true : options.characterData
6722    });
6723    observers.push(observer);
6724  };
6725  const init = () => {
6726    if (!swiper.params.observer) return;
6727    if (swiper.params.observeParents) {
6728      const containerParents = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(swiper.hostEl);
6729      for (let i = 0; i < containerParents.length; i += 1) {
6730        attach(containerParents[i]);
6731      }
6732    }
6733    // Observe container
6734    attach(swiper.hostEl, {
6735      childList: swiper.params.observeSlideChildren
6736    });
6737
6738    // Observe wrapper
6739    attach(swiper.wrapperEl, {
6740      attributes: false
6741    });
6742  };
6743  const destroy = () => {
6744    observers.forEach(observer => {
6745      observer.disconnect();
6746    });
6747    observers.splice(0, observers.length);
6748  };
6749  extendParams({
6750    observer: false,
6751    observeParents: false,
6752    observeSlideChildren: false
6753  });
6754  on('init', init);
6755  on('destroy', destroy);
6756}
6757
6758/* eslint-disable no-underscore-dangle */
6759
6760var eventsEmitter = {
6761  on(events, handler, priority) {
6762    const self = this;
6763    if (!self.eventsListeners || self.destroyed) return self;
6764    if (typeof handler !== 'function') return self;
6765    const method = priority ? 'unshift' : 'push';
6766    events.split(' ').forEach(event => {
6767      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
6768      self.eventsListeners[event][method](handler);
6769    });
6770    return self;
6771  },
6772  once(events, handler, priority) {
6773    const self = this;
6774    if (!self.eventsListeners || self.destroyed) return self;
6775    if (typeof handler !== 'function') return self;
6776    function onceHandler() {
6777      self.off(events, onceHandler);
6778      if (onceHandler.__emitterProxy) {
6779        delete onceHandler.__emitterProxy;
6780      }
6781      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6782        args[_key] = arguments[_key];
6783      }
6784      handler.apply(self, args);
6785    }
6786    onceHandler.__emitterProxy = handler;
6787    return self.on(events, onceHandler, priority);
6788  },
6789  onAny(handler, priority) {
6790    const self = this;
6791    if (!self.eventsListeners || self.destroyed) return self;
6792    if (typeof handler !== 'function') return self;
6793    const method = priority ? 'unshift' : 'push';
6794    if (self.eventsAnyListeners.indexOf(handler) < 0) {
6795      self.eventsAnyListeners[method](handler);
6796    }
6797    return self;
6798  },
6799  offAny(handler) {
6800    const self = this;
6801    if (!self.eventsListeners || self.destroyed) return self;
6802    if (!self.eventsAnyListeners) return self;
6803    const index = self.eventsAnyListeners.indexOf(handler);
6804    if (index >= 0) {
6805      self.eventsAnyListeners.splice(index, 1);
6806    }
6807    return self;
6808  },
6809  off(events, handler) {
6810    const self = this;
6811    if (!self.eventsListeners || self.destroyed) return self;
6812    if (!self.eventsListeners) return self;
6813    events.split(' ').forEach(event => {
6814      if (typeof handler === 'undefined') {
6815        self.eventsListeners[event] = [];
6816      } else if (self.eventsListeners[event]) {
6817        self.eventsListeners[event].forEach((eventHandler, index) => {
6818          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
6819            self.eventsListeners[event].splice(index, 1);
6820          }
6821        });
6822      }
6823    });
6824    return self;
6825  },
6826  emit() {
6827    const self = this;
6828    if (!self.eventsListeners || self.destroyed) return self;
6829    if (!self.eventsListeners) return self;
6830    let events;
6831    let data;
6832    let context;
6833    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
6834      args[_key2] = arguments[_key2];
6835    }
6836    if (typeof args[0] === 'string' || Array.isArray(args[0])) {
6837      events = args[0];
6838      data = args.slice(1, args.length);
6839      context = self;
6840    } else {
6841      events = args[0].events;
6842      data = args[0].data;
6843      context = args[0].context || self;
6844    }
6845    data.unshift(context);
6846    const eventsArray = Array.isArray(events) ? events : events.split(' ');
6847    eventsArray.forEach(event => {
6848      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
6849        self.eventsAnyListeners.forEach(eventHandler => {
6850          eventHandler.apply(context, [event, ...data]);
6851        });
6852      }
6853      if (self.eventsListeners && self.eventsListeners[event]) {
6854        self.eventsListeners[event].forEach(eventHandler => {
6855          eventHandler.apply(context, data);
6856        });
6857      }
6858    });
6859    return self;
6860  }
6861};
6862
6863function updateSize() {
6864  const swiper = this;
6865  let width;
6866  let height;
6867  const el = swiper.el;
6868  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {
6869    width = swiper.params.width;
6870  } else {
6871    width = el.clientWidth;
6872  }
6873  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {
6874    height = swiper.params.height;
6875  } else {
6876    height = el.clientHeight;
6877  }
6878  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
6879    return;
6880  }
6881
6882  // Subtract paddings
6883  width = width - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'padding-left') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'padding-right') || 0, 10);
6884  height = height - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'padding-top') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'padding-bottom') || 0, 10);
6885  if (Number.isNaN(width)) width = 0;
6886  if (Number.isNaN(height)) height = 0;
6887  Object.assign(swiper, {
6888    width,
6889    height,
6890    size: swiper.isHorizontal() ? width : height
6891  });
6892}
6893
6894function updateSlides() {
6895  const swiper = this;
6896  function getDirectionPropertyValue(node, label) {
6897    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);
6898  }
6899  const params = swiper.params;
6900  const {
6901    wrapperEl,
6902    slidesEl,
6903    size: swiperSize,
6904    rtlTranslate: rtl,
6905    wrongRTL
6906  } = swiper;
6907  const isVirtual = swiper.virtual && params.virtual.enabled;
6908  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
6909  const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);
6910  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
6911  let snapGrid = [];
6912  const slidesGrid = [];
6913  const slidesSizesGrid = [];
6914  let offsetBefore = params.slidesOffsetBefore;
6915  if (typeof offsetBefore === 'function') {
6916    offsetBefore = params.slidesOffsetBefore.call(swiper);
6917  }
6918  let offsetAfter = params.slidesOffsetAfter;
6919  if (typeof offsetAfter === 'function') {
6920    offsetAfter = params.slidesOffsetAfter.call(swiper);
6921  }
6922  const previousSnapGridLength = swiper.snapGrid.length;
6923  const previousSlidesGridLength = swiper.slidesGrid.length;
6924  let spaceBetween = params.spaceBetween;
6925  let slidePosition = -offsetBefore;
6926  let prevSlideSize = 0;
6927  let index = 0;
6928  if (typeof swiperSize === 'undefined') {
6929    return;
6930  }
6931  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
6932    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
6933  } else if (typeof spaceBetween === 'string') {
6934    spaceBetween = parseFloat(spaceBetween);
6935  }
6936  swiper.virtualSize = -spaceBetween;
6937
6938  // reset margins
6939  slides.forEach(slideEl => {
6940    if (rtl) {
6941      slideEl.style.marginLeft = '';
6942    } else {
6943      slideEl.style.marginRight = '';
6944    }
6945    slideEl.style.marginBottom = '';
6946    slideEl.style.marginTop = '';
6947  });
6948
6949  // reset cssMode offsets
6950  if (params.centeredSlides && params.cssMode) {
6951    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(wrapperEl, '--swiper-centered-offset-before', '');
6952    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(wrapperEl, '--swiper-centered-offset-after', '');
6953  }
6954  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
6955  if (gridEnabled) {
6956    swiper.grid.initSlides(slides);
6957  } else if (swiper.grid) {
6958    swiper.grid.unsetSlides();
6959  }
6960
6961  // Calc slides
6962  let slideSize;
6963  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {
6964    return typeof params.breakpoints[key].slidesPerView !== 'undefined';
6965  }).length > 0;
6966  for (let i = 0; i < slidesLength; i += 1) {
6967    slideSize = 0;
6968    let slide;
6969    if (slides[i]) slide = slides[i];
6970    if (gridEnabled) {
6971      swiper.grid.updateSlide(i, slide, slides);
6972    }
6973    if (slides[i] && (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(slide, 'display') === 'none') continue; // eslint-disable-line
6974
6975    if (params.slidesPerView === 'auto') {
6976      if (shouldResetSlideSize) {
6977        slides[i].style[swiper.getDirectionLabel('width')] = ``;
6978      }
6979      const slideStyles = getComputedStyle(slide);
6980      const currentTransform = slide.style.transform;
6981      const currentWebKitTransform = slide.style.webkitTransform;
6982      if (currentTransform) {
6983        slide.style.transform = 'none';
6984      }
6985      if (currentWebKitTransform) {
6986        slide.style.webkitTransform = 'none';
6987      }
6988      if (params.roundLengths) {
6989        slideSize = swiper.isHorizontal() ? (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slide, 'width', true) : (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slide, 'height', true);
6990      } else {
6991        // eslint-disable-next-line
6992        const width = getDirectionPropertyValue(slideStyles, 'width');
6993        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');
6994        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');
6995        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');
6996        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');
6997        const boxSizing = slideStyles.getPropertyValue('box-sizing');
6998        if (boxSizing && boxSizing === 'border-box') {
6999          slideSize = width + marginLeft + marginRight;
7000        } else {
7001          const {
7002            clientWidth,
7003            offsetWidth
7004          } = slide;
7005          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
7006        }
7007      }
7008      if (currentTransform) {
7009        slide.style.transform = currentTransform;
7010      }
7011      if (currentWebKitTransform) {
7012        slide.style.webkitTransform = currentWebKitTransform;
7013      }
7014      if (params.roundLengths) slideSize = Math.floor(slideSize);
7015    } else {
7016      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
7017      if (params.roundLengths) slideSize = Math.floor(slideSize);
7018      if (slides[i]) {
7019        slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;
7020      }
7021    }
7022    if (slides[i]) {
7023      slides[i].swiperSlideSize = slideSize;
7024    }
7025    slidesSizesGrid.push(slideSize);
7026    if (params.centeredSlides) {
7027      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
7028      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
7029      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
7030      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
7031      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
7032      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
7033      slidesGrid.push(slidePosition);
7034    } else {
7035      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
7036      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
7037      slidesGrid.push(slidePosition);
7038      slidePosition = slidePosition + slideSize + spaceBetween;
7039    }
7040    swiper.virtualSize += slideSize + spaceBetween;
7041    prevSlideSize = slideSize;
7042    index += 1;
7043  }
7044  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
7045  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
7046    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;
7047  }
7048  if (params.setWrapperSize) {
7049    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
7050  }
7051  if (gridEnabled) {
7052    swiper.grid.updateWrapperSize(slideSize, snapGrid);
7053  }
7054
7055  // Remove last grid elements depending on width
7056  if (!params.centeredSlides) {
7057    const newSlidesGrid = [];
7058    for (let i = 0; i < snapGrid.length; i += 1) {
7059      let slidesGridItem = snapGrid[i];
7060      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
7061      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
7062        newSlidesGrid.push(slidesGridItem);
7063      }
7064    }
7065    snapGrid = newSlidesGrid;
7066    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
7067      snapGrid.push(swiper.virtualSize - swiperSize);
7068    }
7069  }
7070  if (isVirtual && params.loop) {
7071    const size = slidesSizesGrid[0] + spaceBetween;
7072    if (params.slidesPerGroup > 1) {
7073      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);
7074      const groupSize = size * params.slidesPerGroup;
7075      for (let i = 0; i < groups; i += 1) {
7076        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);
7077      }
7078    }
7079    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {
7080      if (params.slidesPerGroup === 1) {
7081        snapGrid.push(snapGrid[snapGrid.length - 1] + size);
7082      }
7083      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);
7084      swiper.virtualSize += size;
7085    }
7086  }
7087  if (snapGrid.length === 0) snapGrid = [0];
7088  if (spaceBetween !== 0) {
7089    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');
7090    slides.filter((_, slideIndex) => {
7091      if (!params.cssMode || params.loop) return true;
7092      if (slideIndex === slides.length - 1) {
7093        return false;
7094      }
7095      return true;
7096    }).forEach(slideEl => {
7097      slideEl.style[key] = `${spaceBetween}px`;
7098    });
7099  }
7100  if (params.centeredSlides && params.centeredSlidesBounds) {
7101    let allSlidesSize = 0;
7102    slidesSizesGrid.forEach(slideSizeValue => {
7103      allSlidesSize += slideSizeValue + (spaceBetween || 0);
7104    });
7105    allSlidesSize -= spaceBetween;
7106    const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;
7107    snapGrid = snapGrid.map(snap => {
7108      if (snap <= 0) return -offsetBefore;
7109      if (snap > maxSnap) return maxSnap + offsetAfter;
7110      return snap;
7111    });
7112  }
7113  if (params.centerInsufficientSlides) {
7114    let allSlidesSize = 0;
7115    slidesSizesGrid.forEach(slideSizeValue => {
7116      allSlidesSize += slideSizeValue + (spaceBetween || 0);
7117    });
7118    allSlidesSize -= spaceBetween;
7119    const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);
7120    if (allSlidesSize + offsetSize < swiperSize) {
7121      const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;
7122      snapGrid.forEach((snap, snapIndex) => {
7123        snapGrid[snapIndex] = snap - allSlidesOffset;
7124      });
7125      slidesGrid.forEach((snap, snapIndex) => {
7126        slidesGrid[snapIndex] = snap + allSlidesOffset;
7127      });
7128    }
7129  }
7130  Object.assign(swiper, {
7131    slides,
7132    snapGrid,
7133    slidesGrid,
7134    slidesSizesGrid
7135  });
7136  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
7137    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
7138    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
7139    const addToSnapGrid = -swiper.snapGrid[0];
7140    const addToSlidesGrid = -swiper.slidesGrid[0];
7141    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);
7142    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);
7143  }
7144  if (slidesLength !== previousSlidesLength) {
7145    swiper.emit('slidesLengthChange');
7146  }
7147  if (snapGrid.length !== previousSnapGridLength) {
7148    if (swiper.params.watchOverflow) swiper.checkOverflow();
7149    swiper.emit('snapGridLengthChange');
7150  }
7151  if (slidesGrid.length !== previousSlidesGridLength) {
7152    swiper.emit('slidesGridLengthChange');
7153  }
7154  if (params.watchSlidesProgress) {
7155    swiper.updateSlidesOffset();
7156  }
7157  swiper.emit('slidesUpdated');
7158  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
7159    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
7160    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);
7161    if (slidesLength <= params.maxBackfaceHiddenSlides) {
7162      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);
7163    } else if (hasClassBackfaceClassAdded) {
7164      swiper.el.classList.remove(backFaceHiddenClass);
7165    }
7166  }
7167}
7168
7169function updateAutoHeight(speed) {
7170  const swiper = this;
7171  const activeSlides = [];
7172  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
7173  let newHeight = 0;
7174  let i;
7175  if (typeof speed === 'number') {
7176    swiper.setTransition(speed);
7177  } else if (speed === true) {
7178    swiper.setTransition(swiper.params.speed);
7179  }
7180  const getSlideByIndex = index => {
7181    if (isVirtual) {
7182      return swiper.slides[swiper.getSlideIndexByData(index)];
7183    }
7184    return swiper.slides[index];
7185  };
7186  // Find slides currently in view
7187  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
7188    if (swiper.params.centeredSlides) {
7189      (swiper.visibleSlides || []).forEach(slide => {
7190        activeSlides.push(slide);
7191      });
7192    } else {
7193      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
7194        const index = swiper.activeIndex + i;
7195        if (index > swiper.slides.length && !isVirtual) break;
7196        activeSlides.push(getSlideByIndex(index));
7197      }
7198    }
7199  } else {
7200    activeSlides.push(getSlideByIndex(swiper.activeIndex));
7201  }
7202
7203  // Find new height from highest slide in view
7204  for (i = 0; i < activeSlides.length; i += 1) {
7205    if (typeof activeSlides[i] !== 'undefined') {
7206      const height = activeSlides[i].offsetHeight;
7207      newHeight = height > newHeight ? height : newHeight;
7208    }
7209  }
7210
7211  // Update Height
7212  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
7213}
7214
7215function updateSlidesOffset() {
7216  const swiper = this;
7217  const slides = swiper.slides;
7218  // eslint-disable-next-line
7219  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;
7220  for (let i = 0; i < slides.length; i += 1) {
7221    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();
7222  }
7223}
7224
7225const toggleSlideClasses$1 = (slideEl, condition, className) => {
7226  if (condition && !slideEl.classList.contains(className)) {
7227    slideEl.classList.add(className);
7228  } else if (!condition && slideEl.classList.contains(className)) {
7229    slideEl.classList.remove(className);
7230  }
7231};
7232function updateSlidesProgress(translate) {
7233  if (translate === void 0) {
7234    translate = this && this.translate || 0;
7235  }
7236  const swiper = this;
7237  const params = swiper.params;
7238  const {
7239    slides,
7240    rtlTranslate: rtl,
7241    snapGrid
7242  } = swiper;
7243  if (slides.length === 0) return;
7244  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
7245  let offsetCenter = -translate;
7246  if (rtl) offsetCenter = translate;
7247  swiper.visibleSlidesIndexes = [];
7248  swiper.visibleSlides = [];
7249  let spaceBetween = params.spaceBetween;
7250  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
7251    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
7252  } else if (typeof spaceBetween === 'string') {
7253    spaceBetween = parseFloat(spaceBetween);
7254  }
7255  for (let i = 0; i < slides.length; i += 1) {
7256    const slide = slides[i];
7257    let slideOffset = slide.swiperSlideOffset;
7258    if (params.cssMode && params.centeredSlides) {
7259      slideOffset -= slides[0].swiperSlideOffset;
7260    }
7261    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
7262    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
7263    const slideBefore = -(offsetCenter - slideOffset);
7264    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
7265    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];
7266    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
7267    if (isVisible) {
7268      swiper.visibleSlides.push(slide);
7269      swiper.visibleSlidesIndexes.push(i);
7270    }
7271    toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);
7272    toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);
7273    slide.progress = rtl ? -slideProgress : slideProgress;
7274    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
7275  }
7276}
7277
7278function updateProgress(translate) {
7279  const swiper = this;
7280  if (typeof translate === 'undefined') {
7281    const multiplier = swiper.rtlTranslate ? -1 : 1;
7282    // eslint-disable-next-line
7283    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
7284  }
7285  const params = swiper.params;
7286  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
7287  let {
7288    progress,
7289    isBeginning,
7290    isEnd,
7291    progressLoop
7292  } = swiper;
7293  const wasBeginning = isBeginning;
7294  const wasEnd = isEnd;
7295  if (translatesDiff === 0) {
7296    progress = 0;
7297    isBeginning = true;
7298    isEnd = true;
7299  } else {
7300    progress = (translate - swiper.minTranslate()) / translatesDiff;
7301    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;
7302    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;
7303    isBeginning = isBeginningRounded || progress <= 0;
7304    isEnd = isEndRounded || progress >= 1;
7305    if (isBeginningRounded) progress = 0;
7306    if (isEndRounded) progress = 1;
7307  }
7308  if (params.loop) {
7309    const firstSlideIndex = swiper.getSlideIndexByData(0);
7310    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);
7311    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];
7312    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];
7313    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];
7314    const translateAbs = Math.abs(translate);
7315    if (translateAbs >= firstSlideTranslate) {
7316      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;
7317    } else {
7318      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;
7319    }
7320    if (progressLoop > 1) progressLoop -= 1;
7321  }
7322  Object.assign(swiper, {
7323    progress,
7324    progressLoop,
7325    isBeginning,
7326    isEnd
7327  });
7328  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);
7329  if (isBeginning && !wasBeginning) {
7330    swiper.emit('reachBeginning toEdge');
7331  }
7332  if (isEnd && !wasEnd) {
7333    swiper.emit('reachEnd toEdge');
7334  }
7335  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
7336    swiper.emit('fromEdge');
7337  }
7338  swiper.emit('progress', progress);
7339}
7340
7341const toggleSlideClasses = (slideEl, condition, className) => {
7342  if (condition && !slideEl.classList.contains(className)) {
7343    slideEl.classList.add(className);
7344  } else if (!condition && slideEl.classList.contains(className)) {
7345    slideEl.classList.remove(className);
7346  }
7347};
7348function updateSlidesClasses() {
7349  const swiper = this;
7350  const {
7351    slides,
7352    params,
7353    slidesEl,
7354    activeIndex
7355  } = swiper;
7356  const isVirtual = swiper.virtual && params.virtual.enabled;
7357  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
7358  const getFilteredSlide = selector => {
7359    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];
7360  };
7361  let activeSlide;
7362  let prevSlide;
7363  let nextSlide;
7364  if (isVirtual) {
7365    if (params.loop) {
7366      let slideIndex = activeIndex - swiper.virtual.slidesBefore;
7367      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;
7368      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;
7369      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`);
7370    } else {
7371      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`);
7372    }
7373  } else {
7374    if (gridEnabled) {
7375      activeSlide = slides.find(slideEl => slideEl.column === activeIndex);
7376      nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);
7377      prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);
7378    } else {
7379      activeSlide = slides[activeIndex];
7380    }
7381  }
7382  if (activeSlide) {
7383    if (!gridEnabled) {
7384      // Next Slide
7385      nextSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.r)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
7386      if (params.loop && !nextSlide) {
7387        nextSlide = slides[0];
7388      }
7389
7390      // Prev Slide
7391      prevSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
7392      if (params.loop && !prevSlide === 0) {
7393        prevSlide = slides[slides.length - 1];
7394      }
7395    }
7396  }
7397  slides.forEach(slideEl => {
7398    toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);
7399    toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);
7400    toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);
7401  });
7402  swiper.emitSlidesClasses();
7403}
7404
7405const processLazyPreloader = (swiper, imageEl) => {
7406  if (!swiper || swiper.destroyed || !swiper.params) return;
7407  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
7408  const slideEl = imageEl.closest(slideSelector());
7409  if (slideEl) {
7410    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7411    if (!lazyEl && swiper.isElement) {
7412      if (slideEl.shadowRoot) {
7413        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7414      } else {
7415        // init later
7416        requestAnimationFrame(() => {
7417          if (slideEl.shadowRoot) {
7418            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7419            if (lazyEl) lazyEl.remove();
7420          }
7421        });
7422      }
7423    }
7424    if (lazyEl) lazyEl.remove();
7425  }
7426};
7427const unlazy = (swiper, index) => {
7428  if (!swiper.slides[index]) return;
7429  const imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
7430  if (imageEl) imageEl.removeAttribute('loading');
7431};
7432const preload = swiper => {
7433  if (!swiper || swiper.destroyed || !swiper.params) return;
7434  let amount = swiper.params.lazyPreloadPrevNext;
7435  const len = swiper.slides.length;
7436  if (!len || !amount || amount < 0) return;
7437  amount = Math.min(amount, len);
7438  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);
7439  const activeIndex = swiper.activeIndex;
7440  if (swiper.params.grid && swiper.params.grid.rows > 1) {
7441    const activeColumn = activeIndex;
7442    const preloadColumns = [activeColumn - amount];
7443    preloadColumns.push(...Array.from({
7444      length: amount
7445    }).map((_, i) => {
7446      return activeColumn + slidesPerView + i;
7447    }));
7448    swiper.slides.forEach((slideEl, i) => {
7449      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);
7450    });
7451    return;
7452  }
7453  const slideIndexLastInView = activeIndex + slidesPerView - 1;
7454  if (swiper.params.rewind || swiper.params.loop) {
7455    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
7456      const realIndex = (i % len + len) % len;
7457      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
7458    }
7459  } else {
7460    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
7461      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
7462        unlazy(swiper, i);
7463      }
7464    }
7465  }
7466};
7467
7468function getActiveIndexByTranslate(swiper) {
7469  const {
7470    slidesGrid,
7471    params
7472  } = swiper;
7473  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7474  let activeIndex;
7475  for (let i = 0; i < slidesGrid.length; i += 1) {
7476    if (typeof slidesGrid[i + 1] !== 'undefined') {
7477      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
7478        activeIndex = i;
7479      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
7480        activeIndex = i + 1;
7481      }
7482    } else if (translate >= slidesGrid[i]) {
7483      activeIndex = i;
7484    }
7485  }
7486  // Normalize slideIndex
7487  if (params.normalizeSlideIndex) {
7488    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;
7489  }
7490  return activeIndex;
7491}
7492function updateActiveIndex(newActiveIndex) {
7493  const swiper = this;
7494  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7495  const {
7496    snapGrid,
7497    params,
7498    activeIndex: previousIndex,
7499    realIndex: previousRealIndex,
7500    snapIndex: previousSnapIndex
7501  } = swiper;
7502  let activeIndex = newActiveIndex;
7503  let snapIndex;
7504  const getVirtualRealIndex = aIndex => {
7505    let realIndex = aIndex - swiper.virtual.slidesBefore;
7506    if (realIndex < 0) {
7507      realIndex = swiper.virtual.slides.length + realIndex;
7508    }
7509    if (realIndex >= swiper.virtual.slides.length) {
7510      realIndex -= swiper.virtual.slides.length;
7511    }
7512    return realIndex;
7513  };
7514  if (typeof activeIndex === 'undefined') {
7515    activeIndex = getActiveIndexByTranslate(swiper);
7516  }
7517  if (snapGrid.indexOf(translate) >= 0) {
7518    snapIndex = snapGrid.indexOf(translate);
7519  } else {
7520    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
7521    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
7522  }
7523  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
7524  if (activeIndex === previousIndex && !swiper.params.loop) {
7525    if (snapIndex !== previousSnapIndex) {
7526      swiper.snapIndex = snapIndex;
7527      swiper.emit('snapIndexChange');
7528    }
7529    return;
7530  }
7531  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
7532    swiper.realIndex = getVirtualRealIndex(activeIndex);
7533    return;
7534  }
7535  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
7536
7537  // Get real index
7538  let realIndex;
7539  if (swiper.virtual && params.virtual.enabled && params.loop) {
7540    realIndex = getVirtualRealIndex(activeIndex);
7541  } else if (gridEnabled) {
7542    const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);
7543    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
7544    if (Number.isNaN(activeSlideIndex)) {
7545      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);
7546    }
7547    realIndex = Math.floor(activeSlideIndex / params.grid.rows);
7548  } else if (swiper.slides[activeIndex]) {
7549    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');
7550    if (slideIndex) {
7551      realIndex = parseInt(slideIndex, 10);
7552    } else {
7553      realIndex = activeIndex;
7554    }
7555  } else {
7556    realIndex = activeIndex;
7557  }
7558  Object.assign(swiper, {
7559    previousSnapIndex,
7560    snapIndex,
7561    previousRealIndex,
7562    realIndex,
7563    previousIndex,
7564    activeIndex
7565  });
7566  if (swiper.initialized) {
7567    preload(swiper);
7568  }
7569  swiper.emit('activeIndexChange');
7570  swiper.emit('snapIndexChange');
7571  if (swiper.initialized || swiper.params.runCallbacksOnInit) {
7572    if (previousRealIndex !== realIndex) {
7573      swiper.emit('realIndexChange');
7574    }
7575    swiper.emit('slideChange');
7576  }
7577}
7578
7579function updateClickedSlide(el, path) {
7580  const swiper = this;
7581  const params = swiper.params;
7582  let slide = el.closest(`.${params.slideClass}, swiper-slide`);
7583  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {
7584    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {
7585      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {
7586        slide = pathEl;
7587      }
7588    });
7589  }
7590  let slideFound = false;
7591  let slideIndex;
7592  if (slide) {
7593    for (let i = 0; i < swiper.slides.length; i += 1) {
7594      if (swiper.slides[i] === slide) {
7595        slideFound = true;
7596        slideIndex = i;
7597        break;
7598      }
7599    }
7600  }
7601  if (slide && slideFound) {
7602    swiper.clickedSlide = slide;
7603    if (swiper.virtual && swiper.params.virtual.enabled) {
7604      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);
7605    } else {
7606      swiper.clickedIndex = slideIndex;
7607    }
7608  } else {
7609    swiper.clickedSlide = undefined;
7610    swiper.clickedIndex = undefined;
7611    return;
7612  }
7613  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
7614    swiper.slideToClickedSlide();
7615  }
7616}
7617
7618var update = {
7619  updateSize,
7620  updateSlides,
7621  updateAutoHeight,
7622  updateSlidesOffset,
7623  updateSlidesProgress,
7624  updateProgress,
7625  updateSlidesClasses,
7626  updateActiveIndex,
7627  updateClickedSlide
7628};
7629
7630function getSwiperTranslate(axis) {
7631  if (axis === void 0) {
7632    axis = this.isHorizontal() ? 'x' : 'y';
7633  }
7634  const swiper = this;
7635  const {
7636    params,
7637    rtlTranslate: rtl,
7638    translate,
7639    wrapperEl
7640  } = swiper;
7641  if (params.virtualTranslate) {
7642    return rtl ? -translate : translate;
7643  }
7644  if (params.cssMode) {
7645    return translate;
7646  }
7647  let currentTranslate = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.k)(wrapperEl, axis);
7648  currentTranslate += swiper.cssOverflowAdjustment();
7649  if (rtl) currentTranslate = -currentTranslate;
7650  return currentTranslate || 0;
7651}
7652
7653function setTranslate(translate, byController) {
7654  const swiper = this;
7655  const {
7656    rtlTranslate: rtl,
7657    params,
7658    wrapperEl,
7659    progress
7660  } = swiper;
7661  let x = 0;
7662  let y = 0;
7663  const z = 0;
7664  if (swiper.isHorizontal()) {
7665    x = rtl ? -translate : translate;
7666  } else {
7667    y = translate;
7668  }
7669  if (params.roundLengths) {
7670    x = Math.floor(x);
7671    y = Math.floor(y);
7672  }
7673  swiper.previousTranslate = swiper.translate;
7674  swiper.translate = swiper.isHorizontal() ? x : y;
7675  if (params.cssMode) {
7676    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
7677  } else if (!params.virtualTranslate) {
7678    if (swiper.isHorizontal()) {
7679      x -= swiper.cssOverflowAdjustment();
7680    } else {
7681      y -= swiper.cssOverflowAdjustment();
7682    }
7683    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;
7684  }
7685
7686  // Check if we need to update progress
7687  let newProgress;
7688  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
7689  if (translatesDiff === 0) {
7690    newProgress = 0;
7691  } else {
7692    newProgress = (translate - swiper.minTranslate()) / translatesDiff;
7693  }
7694  if (newProgress !== progress) {
7695    swiper.updateProgress(translate);
7696  }
7697  swiper.emit('setTranslate', swiper.translate, byController);
7698}
7699
7700function minTranslate() {
7701  return -this.snapGrid[0];
7702}
7703
7704function maxTranslate() {
7705  return -this.snapGrid[this.snapGrid.length - 1];
7706}
7707
7708function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
7709  if (translate === void 0) {
7710    translate = 0;
7711  }
7712  if (speed === void 0) {
7713    speed = this.params.speed;
7714  }
7715  if (runCallbacks === void 0) {
7716    runCallbacks = true;
7717  }
7718  if (translateBounds === void 0) {
7719    translateBounds = true;
7720  }
7721  const swiper = this;
7722  const {
7723    params,
7724    wrapperEl
7725  } = swiper;
7726  if (swiper.animating && params.preventInteractionOnTransition) {
7727    return false;
7728  }
7729  const minTranslate = swiper.minTranslate();
7730  const maxTranslate = swiper.maxTranslate();
7731  let newTranslate;
7732  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;
7733
7734  // Update progress
7735  swiper.updateProgress(newTranslate);
7736  if (params.cssMode) {
7737    const isH = swiper.isHorizontal();
7738    if (speed === 0) {
7739      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
7740    } else {
7741      if (!swiper.support.smoothScroll) {
7742        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({
7743          swiper,
7744          targetPosition: -newTranslate,
7745          side: isH ? 'left' : 'top'
7746        });
7747        return true;
7748      }
7749      wrapperEl.scrollTo({
7750        [isH ? 'left' : 'top']: -newTranslate,
7751        behavior: 'smooth'
7752      });
7753    }
7754    return true;
7755  }
7756  if (speed === 0) {
7757    swiper.setTransition(0);
7758    swiper.setTranslate(newTranslate);
7759    if (runCallbacks) {
7760      swiper.emit('beforeTransitionStart', speed, internal);
7761      swiper.emit('transitionEnd');
7762    }
7763  } else {
7764    swiper.setTransition(speed);
7765    swiper.setTranslate(newTranslate);
7766    if (runCallbacks) {
7767      swiper.emit('beforeTransitionStart', speed, internal);
7768      swiper.emit('transitionStart');
7769    }
7770    if (!swiper.animating) {
7771      swiper.animating = true;
7772      if (!swiper.onTranslateToWrapperTransitionEnd) {
7773        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
7774          if (!swiper || swiper.destroyed) return;
7775          if (e.target !== this) return;
7776          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
7777          swiper.onTranslateToWrapperTransitionEnd = null;
7778          delete swiper.onTranslateToWrapperTransitionEnd;
7779          swiper.animating = false;
7780          if (runCallbacks) {
7781            swiper.emit('transitionEnd');
7782          }
7783        };
7784      }
7785      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
7786    }
7787  }
7788  return true;
7789}
7790
7791var translate = {
7792  getTranslate: getSwiperTranslate,
7793  setTranslate,
7794  minTranslate,
7795  maxTranslate,
7796  translateTo
7797};
7798
7799function setTransition(duration, byController) {
7800  const swiper = this;
7801  if (!swiper.params.cssMode) {
7802    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;
7803    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';
7804  }
7805  swiper.emit('setTransition', duration, byController);
7806}
7807
7808function transitionEmit(_ref) {
7809  let {
7810    swiper,
7811    runCallbacks,
7812    direction,
7813    step
7814  } = _ref;
7815  const {
7816    activeIndex,
7817    previousIndex
7818  } = swiper;
7819  let dir = direction;
7820  if (!dir) {
7821    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';
7822  }
7823  swiper.emit(`transition${step}`);
7824  if (runCallbacks && dir === 'reset') {
7825    swiper.emit(`slideResetTransition${step}`);
7826  } else if (runCallbacks && activeIndex !== previousIndex) {
7827    swiper.emit(`slideChangeTransition${step}`);
7828    if (dir === 'next') {
7829      swiper.emit(`slideNextTransition${step}`);
7830    } else {
7831      swiper.emit(`slidePrevTransition${step}`);
7832    }
7833  }
7834}
7835
7836function transitionStart(runCallbacks, direction) {
7837  if (runCallbacks === void 0) {
7838    runCallbacks = true;
7839  }
7840  const swiper = this;
7841  const {
7842    params
7843  } = swiper;
7844  if (params.cssMode) return;
7845  if (params.autoHeight) {
7846    swiper.updateAutoHeight();
7847  }
7848  transitionEmit({
7849    swiper,
7850    runCallbacks,
7851    direction,
7852    step: 'Start'
7853  });
7854}
7855
7856function transitionEnd(runCallbacks, direction) {
7857  if (runCallbacks === void 0) {
7858    runCallbacks = true;
7859  }
7860  const swiper = this;
7861  const {
7862    params
7863  } = swiper;
7864  swiper.animating = false;
7865  if (params.cssMode) return;
7866  swiper.setTransition(0);
7867  transitionEmit({
7868    swiper,
7869    runCallbacks,
7870    direction,
7871    step: 'End'
7872  });
7873}
7874
7875var transition = {
7876  setTransition,
7877  transitionStart,
7878  transitionEnd
7879};
7880
7881function slideTo(index, speed, runCallbacks, internal, initial) {
7882  if (index === void 0) {
7883    index = 0;
7884  }
7885  if (runCallbacks === void 0) {
7886    runCallbacks = true;
7887  }
7888  if (typeof index === 'string') {
7889    index = parseInt(index, 10);
7890  }
7891  const swiper = this;
7892  let slideIndex = index;
7893  if (slideIndex < 0) slideIndex = 0;
7894  const {
7895    params,
7896    snapGrid,
7897    slidesGrid,
7898    previousIndex,
7899    activeIndex,
7900    rtlTranslate: rtl,
7901    wrapperEl,
7902    enabled
7903  } = swiper;
7904  if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {
7905    return false;
7906  }
7907  if (typeof speed === 'undefined') {
7908    speed = swiper.params.speed;
7909  }
7910  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
7911  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
7912  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
7913  const translate = -snapGrid[snapIndex];
7914  // Normalize slideIndex
7915  if (params.normalizeSlideIndex) {
7916    for (let i = 0; i < slidesGrid.length; i += 1) {
7917      const normalizedTranslate = -Math.floor(translate * 100);
7918      const normalizedGrid = Math.floor(slidesGrid[i] * 100);
7919      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);
7920      if (typeof slidesGrid[i + 1] !== 'undefined') {
7921        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {
7922          slideIndex = i;
7923        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {
7924          slideIndex = i + 1;
7925        }
7926      } else if (normalizedTranslate >= normalizedGrid) {
7927        slideIndex = i;
7928      }
7929    }
7930  }
7931  // Directions locks
7932  if (swiper.initialized && slideIndex !== activeIndex) {
7933    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {
7934      return false;
7935    }
7936    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
7937      if ((activeIndex || 0) !== slideIndex) {
7938        return false;
7939      }
7940    }
7941  }
7942  if (slideIndex !== (previousIndex || 0) && runCallbacks) {
7943    swiper.emit('beforeSlideChangeStart');
7944  }
7945
7946  // Update progress
7947  swiper.updateProgress(translate);
7948  let direction;
7949  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';
7950
7951  // initial virtual
7952  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
7953  const isInitialVirtual = isVirtual && initial;
7954  // Update Index
7955  if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {
7956    swiper.updateActiveIndex(slideIndex);
7957    // Update Height
7958    if (params.autoHeight) {
7959      swiper.updateAutoHeight();
7960    }
7961    swiper.updateSlidesClasses();
7962    if (params.effect !== 'slide') {
7963      swiper.setTranslate(translate);
7964    }
7965    if (direction !== 'reset') {
7966      swiper.transitionStart(runCallbacks, direction);
7967      swiper.transitionEnd(runCallbacks, direction);
7968    }
7969    return false;
7970  }
7971  if (params.cssMode) {
7972    const isH = swiper.isHorizontal();
7973    const t = rtl ? translate : -translate;
7974    if (speed === 0) {
7975      if (isVirtual) {
7976        swiper.wrapperEl.style.scrollSnapType = 'none';
7977        swiper._immediateVirtual = true;
7978      }
7979      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {
7980        swiper._cssModeVirtualInitialSet = true;
7981        requestAnimationFrame(() => {
7982          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
7983        });
7984      } else {
7985        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
7986      }
7987      if (isVirtual) {
7988        requestAnimationFrame(() => {
7989          swiper.wrapperEl.style.scrollSnapType = '';
7990          swiper._immediateVirtual = false;
7991        });
7992      }
7993    } else {
7994      if (!swiper.support.smoothScroll) {
7995        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({
7996          swiper,
7997          targetPosition: t,
7998          side: isH ? 'left' : 'top'
7999        });
8000        return true;
8001      }
8002      wrapperEl.scrollTo({
8003        [isH ? 'left' : 'top']: t,
8004        behavior: 'smooth'
8005      });
8006    }
8007    return true;
8008  }
8009  const browser = getBrowser();
8010  const isSafari = browser.isSafari;
8011  if (isVirtual && !initial && isSafari && swiper.isElement) {
8012    swiper.virtual.update(false, false, slideIndex);
8013  }
8014  swiper.setTransition(speed);
8015  swiper.setTranslate(translate);
8016  swiper.updateActiveIndex(slideIndex);
8017  swiper.updateSlidesClasses();
8018  swiper.emit('beforeTransitionStart', speed, internal);
8019  swiper.transitionStart(runCallbacks, direction);
8020  if (speed === 0) {
8021    swiper.transitionEnd(runCallbacks, direction);
8022  } else if (!swiper.animating) {
8023    swiper.animating = true;
8024    if (!swiper.onSlideToWrapperTransitionEnd) {
8025      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
8026        if (!swiper || swiper.destroyed) return;
8027        if (e.target !== this) return;
8028        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
8029        swiper.onSlideToWrapperTransitionEnd = null;
8030        delete swiper.onSlideToWrapperTransitionEnd;
8031        swiper.transitionEnd(runCallbacks, direction);
8032      };
8033    }
8034    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
8035  }
8036  return true;
8037}
8038
8039function slideToLoop(index, speed, runCallbacks, internal) {
8040  if (index === void 0) {
8041    index = 0;
8042  }
8043  if (runCallbacks === void 0) {
8044    runCallbacks = true;
8045  }
8046  if (typeof index === 'string') {
8047    const indexAsNumber = parseInt(index, 10);
8048    index = indexAsNumber;
8049  }
8050  const swiper = this;
8051  if (swiper.destroyed) return;
8052  if (typeof speed === 'undefined') {
8053    speed = swiper.params.speed;
8054  }
8055  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
8056  let newIndex = index;
8057  if (swiper.params.loop) {
8058    if (swiper.virtual && swiper.params.virtual.enabled) {
8059      // eslint-disable-next-line
8060      newIndex = newIndex + swiper.virtual.slidesBefore;
8061    } else {
8062      let targetSlideIndex;
8063      if (gridEnabled) {
8064        const slideIndex = newIndex * swiper.params.grid.rows;
8065        targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;
8066      } else {
8067        targetSlideIndex = swiper.getSlideIndexByData(newIndex);
8068      }
8069      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;
8070      const {
8071        centeredSlides
8072      } = swiper.params;
8073      let slidesPerView = swiper.params.slidesPerView;
8074      if (slidesPerView === 'auto') {
8075        slidesPerView = swiper.slidesPerViewDynamic();
8076      } else {
8077        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));
8078        if (centeredSlides && slidesPerView % 2 === 0) {
8079          slidesPerView = slidesPerView + 1;
8080        }
8081      }
8082      let needLoopFix = cols - targetSlideIndex < slidesPerView;
8083      if (centeredSlides) {
8084        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);
8085      }
8086      if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {
8087        needLoopFix = false;
8088      }
8089      if (needLoopFix) {
8090        const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';
8091        swiper.loopFix({
8092          direction,
8093          slideTo: true,
8094          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,
8095          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined
8096        });
8097      }
8098      if (gridEnabled) {
8099        const slideIndex = newIndex * swiper.params.grid.rows;
8100        newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;
8101      } else {
8102        newIndex = swiper.getSlideIndexByData(newIndex);
8103      }
8104    }
8105  }
8106  requestAnimationFrame(() => {
8107    swiper.slideTo(newIndex, speed, runCallbacks, internal);
8108  });
8109  return swiper;
8110}
8111
8112/* eslint no-unused-vars: "off" */
8113function slideNext(speed, runCallbacks, internal) {
8114  if (runCallbacks === void 0) {
8115    runCallbacks = true;
8116  }
8117  const swiper = this;
8118  const {
8119    enabled,
8120    params,
8121    animating
8122  } = swiper;
8123  if (!enabled || swiper.destroyed) return swiper;
8124  if (typeof speed === 'undefined') {
8125    speed = swiper.params.speed;
8126  }
8127  let perGroup = params.slidesPerGroup;
8128  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
8129    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
8130  }
8131  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
8132  const isVirtual = swiper.virtual && params.virtual.enabled;
8133  if (params.loop) {
8134    if (animating && !isVirtual && params.loopPreventsSliding) return false;
8135    swiper.loopFix({
8136      direction: 'next'
8137    });
8138    // eslint-disable-next-line
8139    swiper._clientLeft = swiper.wrapperEl.clientLeft;
8140    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {
8141      requestAnimationFrame(() => {
8142        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
8143      });
8144      return true;
8145    }
8146  }
8147  if (params.rewind && swiper.isEnd) {
8148    return swiper.slideTo(0, speed, runCallbacks, internal);
8149  }
8150  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
8151}
8152
8153/* eslint no-unused-vars: "off" */
8154function slidePrev(speed, runCallbacks, internal) {
8155  if (runCallbacks === void 0) {
8156    runCallbacks = true;
8157  }
8158  const swiper = this;
8159  const {
8160    params,
8161    snapGrid,
8162    slidesGrid,
8163    rtlTranslate,
8164    enabled,
8165    animating
8166  } = swiper;
8167  if (!enabled || swiper.destroyed) return swiper;
8168  if (typeof speed === 'undefined') {
8169    speed = swiper.params.speed;
8170  }
8171  const isVirtual = swiper.virtual && params.virtual.enabled;
8172  if (params.loop) {
8173    if (animating && !isVirtual && params.loopPreventsSliding) return false;
8174    swiper.loopFix({
8175      direction: 'prev'
8176    });
8177    // eslint-disable-next-line
8178    swiper._clientLeft = swiper.wrapperEl.clientLeft;
8179  }
8180  const translate = rtlTranslate ? swiper.translate : -swiper.translate;
8181  function normalize(val) {
8182    if (val < 0) return -Math.floor(Math.abs(val));
8183    return Math.floor(val);
8184  }
8185  const normalizedTranslate = normalize(translate);
8186  const normalizedSnapGrid = snapGrid.map(val => normalize(val));
8187  const isFreeMode = params.freeMode && params.freeMode.enabled;
8188  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
8189  if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {
8190    let prevSnapIndex;
8191    snapGrid.forEach((snap, snapIndex) => {
8192      if (normalizedTranslate >= snap) {
8193        // prevSnap = snap;
8194        prevSnapIndex = snapIndex;
8195      }
8196    });
8197    if (typeof prevSnapIndex !== 'undefined') {
8198      prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];
8199    }
8200  }
8201  let prevIndex = 0;
8202  if (typeof prevSnap !== 'undefined') {
8203    prevIndex = slidesGrid.indexOf(prevSnap);
8204    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
8205    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
8206      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
8207      prevIndex = Math.max(prevIndex, 0);
8208    }
8209  }
8210  if (params.rewind && swiper.isBeginning) {
8211    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
8212    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
8213  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {
8214    requestAnimationFrame(() => {
8215      swiper.slideTo(prevIndex, speed, runCallbacks, internal);
8216    });
8217    return true;
8218  }
8219  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
8220}
8221
8222/* eslint no-unused-vars: "off" */
8223function slideReset(speed, runCallbacks, internal) {
8224  if (runCallbacks === void 0) {
8225    runCallbacks = true;
8226  }
8227  const swiper = this;
8228  if (swiper.destroyed) return;
8229  if (typeof speed === 'undefined') {
8230    speed = swiper.params.speed;
8231  }
8232  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
8233}
8234
8235/* eslint no-unused-vars: "off" */
8236function slideToClosest(speed, runCallbacks, internal, threshold) {
8237  if (runCallbacks === void 0) {
8238    runCallbacks = true;
8239  }
8240  if (threshold === void 0) {
8241    threshold = 0.5;
8242  }
8243  const swiper = this;
8244  if (swiper.destroyed) return;
8245  if (typeof speed === 'undefined') {
8246    speed = swiper.params.speed;
8247  }
8248  let index = swiper.activeIndex;
8249  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
8250  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
8251  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
8252  if (translate >= swiper.snapGrid[snapIndex]) {
8253    // The current translate is on or after the current snap index, so the choice
8254    // is between the current index and the one after it.
8255    const currentSnap = swiper.snapGrid[snapIndex];
8256    const nextSnap = swiper.snapGrid[snapIndex + 1];
8257    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
8258      index += swiper.params.slidesPerGroup;
8259    }
8260  } else {
8261    // The current translate is before the current snap index, so the choice
8262    // is between the current index and the one before it.
8263    const prevSnap = swiper.snapGrid[snapIndex - 1];
8264    const currentSnap = swiper.snapGrid[snapIndex];
8265    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
8266      index -= swiper.params.slidesPerGroup;
8267    }
8268  }
8269  index = Math.max(index, 0);
8270  index = Math.min(index, swiper.slidesGrid.length - 1);
8271  return swiper.slideTo(index, speed, runCallbacks, internal);
8272}
8273
8274function slideToClickedSlide() {
8275  const swiper = this;
8276  if (swiper.destroyed) return;
8277  const {
8278    params,
8279    slidesEl
8280  } = swiper;
8281  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
8282  let slideToIndex = swiper.getSlideIndexWhenGrid(swiper.clickedIndex);
8283  let realIndex;
8284  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;
8285  const isGrid = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
8286  if (params.loop) {
8287    if (swiper.animating) return;
8288    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
8289    if (params.centeredSlides) {
8290      swiper.slideToLoop(realIndex);
8291    } else if (slideToIndex > (isGrid ? (swiper.slides.length - slidesPerView) / 2 - (swiper.params.grid.rows - 1) : swiper.slides.length - slidesPerView)) {
8292      swiper.loopFix();
8293      slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
8294      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
8295        swiper.slideTo(slideToIndex);
8296      });
8297    } else {
8298      swiper.slideTo(slideToIndex);
8299    }
8300  } else {
8301    swiper.slideTo(slideToIndex);
8302  }
8303}
8304
8305var slide = {
8306  slideTo,
8307  slideToLoop,
8308  slideNext,
8309  slidePrev,
8310  slideReset,
8311  slideToClosest,
8312  slideToClickedSlide
8313};
8314
8315function loopCreate(slideRealIndex, initial) {
8316  const swiper = this;
8317  const {
8318    params,
8319    slidesEl
8320  } = swiper;
8321  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
8322  const initSlides = () => {
8323    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
8324    slides.forEach((el, index) => {
8325      el.setAttribute('data-swiper-slide-index', index);
8326    });
8327  };
8328  const clearBlankSlides = () => {
8329    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideBlankClass}`);
8330    slides.forEach(el => {
8331      el.remove();
8332    });
8333    if (slides.length > 0) {
8334      swiper.recalcSlides();
8335      swiper.updateSlides();
8336    }
8337  };
8338  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8339  if (params.loopAddBlankSlides && (params.slidesPerGroup > 1 || gridEnabled)) {
8340    clearBlankSlides();
8341  }
8342  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);
8343  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;
8344  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;
8345  const addBlankSlides = amountOfSlides => {
8346    for (let i = 0; i < amountOfSlides; i += 1) {
8347      const slideEl = swiper.isElement ? (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('swiper-slide', [params.slideBlankClass]) : (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', [params.slideClass, params.slideBlankClass]);
8348      swiper.slidesEl.append(slideEl);
8349    }
8350  };
8351  if (shouldFillGroup) {
8352    if (params.loopAddBlankSlides) {
8353      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;
8354      addBlankSlides(slidesToAdd);
8355      swiper.recalcSlides();
8356      swiper.updateSlides();
8357    } else {
8358      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');
8359    }
8360    initSlides();
8361  } else if (shouldFillGrid) {
8362    if (params.loopAddBlankSlides) {
8363      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;
8364      addBlankSlides(slidesToAdd);
8365      swiper.recalcSlides();
8366      swiper.updateSlides();
8367    } else {
8368      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');
8369    }
8370    initSlides();
8371  } else {
8372    initSlides();
8373  }
8374  swiper.loopFix({
8375    slideRealIndex,
8376    direction: params.centeredSlides ? undefined : 'next',
8377    initial
8378  });
8379}
8380
8381function loopFix(_temp) {
8382  let {
8383    slideRealIndex,
8384    slideTo = true,
8385    direction,
8386    setTranslate,
8387    activeSlideIndex,
8388    initial,
8389    byController,
8390    byMousewheel
8391  } = _temp === void 0 ? {} : _temp;
8392  const swiper = this;
8393  if (!swiper.params.loop) return;
8394  swiper.emit('beforeLoopFix');
8395  const {
8396    slides,
8397    allowSlidePrev,
8398    allowSlideNext,
8399    slidesEl,
8400    params
8401  } = swiper;
8402  const {
8403    centeredSlides,
8404    initialSlide
8405  } = params;
8406  swiper.allowSlidePrev = true;
8407  swiper.allowSlideNext = true;
8408  if (swiper.virtual && params.virtual.enabled) {
8409    if (slideTo) {
8410      if (!params.centeredSlides && swiper.snapIndex === 0) {
8411        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);
8412      } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {
8413        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);
8414      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {
8415        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);
8416      }
8417    }
8418    swiper.allowSlidePrev = allowSlidePrev;
8419    swiper.allowSlideNext = allowSlideNext;
8420    swiper.emit('loopFix');
8421    return;
8422  }
8423  let slidesPerView = params.slidesPerView;
8424  if (slidesPerView === 'auto') {
8425    slidesPerView = swiper.slidesPerViewDynamic();
8426  } else {
8427    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));
8428    if (centeredSlides && slidesPerView % 2 === 0) {
8429      slidesPerView = slidesPerView + 1;
8430    }
8431  }
8432  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;
8433  let loopedSlides = centeredSlides ? Math.max(slidesPerGroup, Math.ceil(slidesPerView / 2)) : slidesPerGroup;
8434  if (loopedSlides % slidesPerGroup !== 0) {
8435    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;
8436  }
8437  loopedSlides += params.loopAdditionalSlides;
8438  swiper.loopedSlides = loopedSlides;
8439  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8440  if (slides.length < slidesPerView + loopedSlides || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {
8441    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');
8442  } else if (gridEnabled && params.grid.fill === 'row') {
8443    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');
8444  }
8445  const prependSlidesIndexes = [];
8446  const appendSlidesIndexes = [];
8447  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;
8448  const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !centeredSlides;
8449  let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;
8450  if (typeof activeSlideIndex === 'undefined') {
8451    activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));
8452  } else {
8453    activeIndex = activeSlideIndex;
8454  }
8455  const isNext = direction === 'next' || !direction;
8456  const isPrev = direction === 'prev' || !direction;
8457  let slidesPrepended = 0;
8458  let slidesAppended = 0;
8459  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;
8460  const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);
8461  // prepend last slides before start
8462  if (activeColIndexWithShift < loopedSlides) {
8463    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);
8464    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
8465      const index = i - Math.floor(i / cols) * cols;
8466      if (gridEnabled) {
8467        const colIndexToPrepend = cols - index - 1;
8468        for (let i = slides.length - 1; i >= 0; i -= 1) {
8469          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);
8470        }
8471        // slides.forEach((slide, slideIndex) => {
8472        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);
8473        // });
8474      } else {
8475        prependSlidesIndexes.push(cols - index - 1);
8476      }
8477    }
8478  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {
8479    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);
8480    if (isInitialOverflow) {
8481      slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);
8482    }
8483    for (let i = 0; i < slidesAppended; i += 1) {
8484      const index = i - Math.floor(i / cols) * cols;
8485      if (gridEnabled) {
8486        slides.forEach((slide, slideIndex) => {
8487          if (slide.column === index) appendSlidesIndexes.push(slideIndex);
8488        });
8489      } else {
8490        appendSlidesIndexes.push(index);
8491      }
8492    }
8493  }
8494  swiper.__preventObserver__ = true;
8495  requestAnimationFrame(() => {
8496    swiper.__preventObserver__ = false;
8497  });
8498  if (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {
8499    if (appendSlidesIndexes.includes(activeSlideIndex)) {
8500      appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);
8501    }
8502    if (prependSlidesIndexes.includes(activeSlideIndex)) {
8503      prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);
8504    }
8505  }
8506  if (isPrev) {
8507    prependSlidesIndexes.forEach(index => {
8508      slides[index].swiperLoopMoveDOM = true;
8509      slidesEl.prepend(slides[index]);
8510      slides[index].swiperLoopMoveDOM = false;
8511    });
8512  }
8513  if (isNext) {
8514    appendSlidesIndexes.forEach(index => {
8515      slides[index].swiperLoopMoveDOM = true;
8516      slidesEl.append(slides[index]);
8517      slides[index].swiperLoopMoveDOM = false;
8518    });
8519  }
8520  swiper.recalcSlides();
8521  if (params.slidesPerView === 'auto') {
8522    swiper.updateSlides();
8523  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {
8524    swiper.slides.forEach((slide, slideIndex) => {
8525      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);
8526    });
8527  }
8528  if (params.watchSlidesProgress) {
8529    swiper.updateSlidesOffset();
8530  }
8531  if (slideTo) {
8532    if (prependSlidesIndexes.length > 0 && isPrev) {
8533      if (typeof slideRealIndex === 'undefined') {
8534        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
8535        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];
8536        const diff = newSlideTranslate - currentSlideTranslate;
8537        if (byMousewheel) {
8538          swiper.setTranslate(swiper.translate - diff);
8539        } else {
8540          swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);
8541          if (setTranslate) {
8542            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
8543            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
8544          }
8545        }
8546      } else {
8547        if (setTranslate) {
8548          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;
8549          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);
8550          swiper.touchEventsData.currentTranslate = swiper.translate;
8551        }
8552      }
8553    } else if (appendSlidesIndexes.length > 0 && isNext) {
8554      if (typeof slideRealIndex === 'undefined') {
8555        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
8556        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];
8557        const diff = newSlideTranslate - currentSlideTranslate;
8558        if (byMousewheel) {
8559          swiper.setTranslate(swiper.translate - diff);
8560        } else {
8561          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);
8562          if (setTranslate) {
8563            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
8564            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
8565          }
8566        }
8567      } else {
8568        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;
8569        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);
8570      }
8571    }
8572  }
8573  swiper.allowSlidePrev = allowSlidePrev;
8574  swiper.allowSlideNext = allowSlideNext;
8575  if (swiper.controller && swiper.controller.control && !byController) {
8576    const loopParams = {
8577      slideRealIndex,
8578      direction,
8579      setTranslate,
8580      activeSlideIndex,
8581      byController: true
8582    };
8583    if (Array.isArray(swiper.controller.control)) {
8584      swiper.controller.control.forEach(c => {
8585        if (!c.destroyed && c.params.loop) c.loopFix({
8586          ...loopParams,
8587          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false
8588        });
8589      });
8590    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {
8591      swiper.controller.control.loopFix({
8592        ...loopParams,
8593        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false
8594      });
8595    }
8596  }
8597  swiper.emit('loopFix');
8598}
8599
8600function loopDestroy() {
8601  const swiper = this;
8602  const {
8603    params,
8604    slidesEl
8605  } = swiper;
8606  if (!params.loop || !slidesEl || swiper.virtual && swiper.params.virtual.enabled) return;
8607  swiper.recalcSlides();
8608  const newSlidesOrder = [];
8609  swiper.slides.forEach(slideEl => {
8610    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;
8611    newSlidesOrder[index] = slideEl;
8612  });
8613  swiper.slides.forEach(slideEl => {
8614    slideEl.removeAttribute('data-swiper-slide-index');
8615  });
8616  newSlidesOrder.forEach(slideEl => {
8617    slidesEl.append(slideEl);
8618  });
8619  swiper.recalcSlides();
8620  swiper.slideTo(swiper.realIndex, 0);
8621}
8622
8623var loop = {
8624  loopCreate,
8625  loopFix,
8626  loopDestroy
8627};
8628
8629function setGrabCursor(moving) {
8630  const swiper = this;
8631  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
8632  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;
8633  if (swiper.isElement) {
8634    swiper.__preventObserver__ = true;
8635  }
8636  el.style.cursor = 'move';
8637  el.style.cursor = moving ? 'grabbing' : 'grab';
8638  if (swiper.isElement) {
8639    requestAnimationFrame(() => {
8640      swiper.__preventObserver__ = false;
8641    });
8642  }
8643}
8644
8645function unsetGrabCursor() {
8646  const swiper = this;
8647  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
8648    return;
8649  }
8650  if (swiper.isElement) {
8651    swiper.__preventObserver__ = true;
8652  }
8653  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';
8654  if (swiper.isElement) {
8655    requestAnimationFrame(() => {
8656      swiper.__preventObserver__ = false;
8657    });
8658  }
8659}
8660
8661var grabCursor = {
8662  setGrabCursor,
8663  unsetGrabCursor
8664};
8665
8666// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
8667function closestElement(selector, base) {
8668  if (base === void 0) {
8669    base = this;
8670  }
8671  function __closestFrom(el) {
8672    if (!el || el === (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)() || el === (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)()) return null;
8673    if (el.assignedSlot) el = el.assignedSlot;
8674    const found = el.closest(selector);
8675    if (!found && !el.getRootNode) {
8676      return null;
8677    }
8678    return found || __closestFrom(el.getRootNode().host);
8679  }
8680  return __closestFrom(base);
8681}
8682function preventEdgeSwipe(swiper, event, startX) {
8683  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
8684  const {
8685    params
8686  } = swiper;
8687  const edgeSwipeDetection = params.edgeSwipeDetection;
8688  const edgeSwipeThreshold = params.edgeSwipeThreshold;
8689  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {
8690    if (edgeSwipeDetection === 'prevent') {
8691      event.preventDefault();
8692      return true;
8693    }
8694    return false;
8695  }
8696  return true;
8697}
8698function onTouchStart(event) {
8699  const swiper = this;
8700  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
8701  let e = event;
8702  if (e.originalEvent) e = e.originalEvent;
8703  const data = swiper.touchEventsData;
8704  if (e.type === 'pointerdown') {
8705    if (data.pointerId !== null && data.pointerId !== e.pointerId) {
8706      return;
8707    }
8708    data.pointerId = e.pointerId;
8709  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {
8710    data.touchId = e.targetTouches[0].identifier;
8711  }
8712  if (e.type === 'touchstart') {
8713    // don't proceed touch event
8714    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);
8715    return;
8716  }
8717  const {
8718    params,
8719    touches,
8720    enabled
8721  } = swiper;
8722  if (!enabled) return;
8723  if (!params.simulateTouch && e.pointerType === 'mouse') return;
8724  if (swiper.animating && params.preventInteractionOnTransition) {
8725    return;
8726  }
8727  if (!swiper.animating && params.cssMode && params.loop) {
8728    swiper.loopFix();
8729  }
8730  let targetEl = e.target;
8731  if (params.touchEventsTarget === 'wrapper') {
8732    if (!(0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(targetEl, swiper.wrapperEl)) return;
8733  }
8734  if ('which' in e && e.which === 3) return;
8735  if ('button' in e && e.button > 0) return;
8736  if (data.isTouched && data.isMoved) return;
8737
8738  // change target el for shadow root component
8739  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';
8740  // eslint-disable-next-line
8741  const eventPath = e.composedPath ? e.composedPath() : e.path;
8742  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {
8743    targetEl = eventPath[0];
8744  }
8745  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;
8746  const isTargetShadow = !!(e.target && e.target.shadowRoot);
8747
8748  // use closestElement for shadow root element to get the actual closest for nested shadow root element
8749  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {
8750    swiper.allowClick = true;
8751    return;
8752  }
8753  if (params.swipeHandler) {
8754    if (!targetEl.closest(params.swipeHandler)) return;
8755  }
8756  touches.currentX = e.pageX;
8757  touches.currentY = e.pageY;
8758  const startX = touches.currentX;
8759  const startY = touches.currentY;
8760
8761  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
8762
8763  if (!preventEdgeSwipe(swiper, e, startX)) {
8764    return;
8765  }
8766  Object.assign(data, {
8767    isTouched: true,
8768    isMoved: false,
8769    allowTouchCallbacks: true,
8770    isScrolling: undefined,
8771    startMoving: undefined
8772  });
8773  touches.startX = startX;
8774  touches.startY = startY;
8775  data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
8776  swiper.allowClick = true;
8777  swiper.updateSize();
8778  swiper.swipeDirection = undefined;
8779  if (params.threshold > 0) data.allowThresholdMove = false;
8780  let preventDefault = true;
8781  if (targetEl.matches(data.focusableElements)) {
8782    preventDefault = false;
8783    if (targetEl.nodeName === 'SELECT') {
8784      data.isTouched = false;
8785    }
8786  }
8787  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {
8788    document.activeElement.blur();
8789  }
8790  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
8791  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {
8792    e.preventDefault();
8793  }
8794  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
8795    swiper.freeMode.onTouchStart();
8796  }
8797  swiper.emit('touchStart', e);
8798}
8799
8800function onTouchMove(event) {
8801  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
8802  const swiper = this;
8803  const data = swiper.touchEventsData;
8804  const {
8805    params,
8806    touches,
8807    rtlTranslate: rtl,
8808    enabled
8809  } = swiper;
8810  if (!enabled) return;
8811  if (!params.simulateTouch && event.pointerType === 'mouse') return;
8812  let e = event;
8813  if (e.originalEvent) e = e.originalEvent;
8814  if (e.type === 'pointermove') {
8815    if (data.touchId !== null) return; // return from pointer if we use touch
8816    const id = e.pointerId;
8817    if (id !== data.pointerId) return;
8818  }
8819  let targetTouch;
8820  if (e.type === 'touchmove') {
8821    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);
8822    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
8823  } else {
8824    targetTouch = e;
8825  }
8826  if (!data.isTouched) {
8827    if (data.startMoving && data.isScrolling) {
8828      swiper.emit('touchMoveOpposite', e);
8829    }
8830    return;
8831  }
8832  const pageX = targetTouch.pageX;
8833  const pageY = targetTouch.pageY;
8834  if (e.preventedByNestedSwiper) {
8835    touches.startX = pageX;
8836    touches.startY = pageY;
8837    return;
8838  }
8839  if (!swiper.allowTouchMove) {
8840    if (!e.target.matches(data.focusableElements)) {
8841      swiper.allowClick = false;
8842    }
8843    if (data.isTouched) {
8844      Object.assign(touches, {
8845        startX: pageX,
8846        startY: pageY,
8847        currentX: pageX,
8848        currentY: pageY
8849      });
8850      data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
8851    }
8852    return;
8853  }
8854  if (params.touchReleaseOnEdges && !params.loop) {
8855    if (swiper.isVertical()) {
8856      // Vertical
8857      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {
8858        data.isTouched = false;
8859        data.isMoved = false;
8860        return;
8861      }
8862    } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {
8863      return;
8864    } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {
8865      return;
8866    }
8867  }
8868  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {
8869    document.activeElement.blur();
8870  }
8871  if (document.activeElement) {
8872    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {
8873      data.isMoved = true;
8874      swiper.allowClick = false;
8875      return;
8876    }
8877  }
8878  if (data.allowTouchCallbacks) {
8879    swiper.emit('touchMove', e);
8880  }
8881  touches.previousX = touches.currentX;
8882  touches.previousY = touches.currentY;
8883  touches.currentX = pageX;
8884  touches.currentY = pageY;
8885  const diffX = touches.currentX - touches.startX;
8886  const diffY = touches.currentY - touches.startY;
8887  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
8888  if (typeof data.isScrolling === 'undefined') {
8889    let touchAngle;
8890    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {
8891      data.isScrolling = false;
8892    } else {
8893      // eslint-disable-next-line
8894      if (diffX * diffX + diffY * diffY >= 25) {
8895        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
8896        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
8897      }
8898    }
8899  }
8900  if (data.isScrolling) {
8901    swiper.emit('touchMoveOpposite', e);
8902  }
8903  if (typeof data.startMoving === 'undefined') {
8904    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
8905      data.startMoving = true;
8906    }
8907  }
8908  if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {
8909    data.isTouched = false;
8910    return;
8911  }
8912  if (!data.startMoving) {
8913    return;
8914  }
8915  swiper.allowClick = false;
8916  if (!params.cssMode && e.cancelable) {
8917    e.preventDefault();
8918  }
8919  if (params.touchMoveStopPropagation && !params.nested) {
8920    e.stopPropagation();
8921  }
8922  let diff = swiper.isHorizontal() ? diffX : diffY;
8923  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;
8924  if (params.oneWayMovement) {
8925    diff = Math.abs(diff) * (rtl ? 1 : -1);
8926    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);
8927  }
8928  touches.diff = diff;
8929  diff *= params.touchRatio;
8930  if (rtl) {
8931    diff = -diff;
8932    touchesDiff = -touchesDiff;
8933  }
8934  const prevTouchesDirection = swiper.touchesDirection;
8935  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
8936  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';
8937  const isLoop = swiper.params.loop && !params.cssMode;
8938  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;
8939  if (!data.isMoved) {
8940    if (isLoop && allowLoopFix) {
8941      swiper.loopFix({
8942        direction: swiper.swipeDirection
8943      });
8944    }
8945    data.startTranslate = swiper.getTranslate();
8946    swiper.setTransition(0);
8947    if (swiper.animating) {
8948      const evt = new window.CustomEvent('transitionend', {
8949        bubbles: true,
8950        cancelable: true,
8951        detail: {
8952          bySwiperTouchMove: true
8953        }
8954      });
8955      swiper.wrapperEl.dispatchEvent(evt);
8956    }
8957    data.allowMomentumBounce = false;
8958    // Grab Cursor
8959    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
8960      swiper.setGrabCursor(true);
8961    }
8962    swiper.emit('sliderFirstMove', e);
8963  }
8964  let loopFixed;
8965  new Date().getTime();
8966  if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {
8967    Object.assign(touches, {
8968      startX: pageX,
8969      startY: pageY,
8970      currentX: pageX,
8971      currentY: pageY,
8972      startTranslate: data.currentTranslate
8973    });
8974    data.loopSwapReset = true;
8975    data.startTranslate = data.currentTranslate;
8976    return;
8977  }
8978  swiper.emit('sliderMove', e);
8979  data.isMoved = true;
8980  data.currentTranslate = diff + data.startTranslate;
8981  let disableParentSwiper = true;
8982  let resistanceRatio = params.resistanceRatio;
8983  if (params.touchReleaseOnEdges) {
8984    resistanceRatio = 0;
8985  }
8986  if (diff > 0) {
8987    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {
8988      swiper.loopFix({
8989        direction: 'prev',
8990        setTranslate: true,
8991        activeSlideIndex: 0
8992      });
8993    }
8994    if (data.currentTranslate > swiper.minTranslate()) {
8995      disableParentSwiper = false;
8996      if (params.resistance) {
8997        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
8998      }
8999    }
9000  } else if (diff < 0) {
9001    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {
9002      swiper.loopFix({
9003        direction: 'next',
9004        setTranslate: true,
9005        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))
9006      });
9007    }
9008    if (data.currentTranslate < swiper.maxTranslate()) {
9009      disableParentSwiper = false;
9010      if (params.resistance) {
9011        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
9012      }
9013    }
9014  }
9015  if (disableParentSwiper) {
9016    e.preventedByNestedSwiper = true;
9017  }
9018
9019  // Directions locks
9020  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
9021    data.currentTranslate = data.startTranslate;
9022  }
9023  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
9024    data.currentTranslate = data.startTranslate;
9025  }
9026  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {
9027    data.currentTranslate = data.startTranslate;
9028  }
9029
9030  // Threshold
9031  if (params.threshold > 0) {
9032    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
9033      if (!data.allowThresholdMove) {
9034        data.allowThresholdMove = true;
9035        touches.startX = touches.currentX;
9036        touches.startY = touches.currentY;
9037        data.currentTranslate = data.startTranslate;
9038        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
9039        return;
9040      }
9041    } else {
9042      data.currentTranslate = data.startTranslate;
9043      return;
9044    }
9045  }
9046  if (!params.followFinger || params.cssMode) return;
9047
9048  // Update active index in free mode
9049  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {
9050    swiper.updateActiveIndex();
9051    swiper.updateSlidesClasses();
9052  }
9053  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {
9054    swiper.freeMode.onTouchMove();
9055  }
9056  // Update progress
9057  swiper.updateProgress(data.currentTranslate);
9058  // Update translate
9059  swiper.setTranslate(data.currentTranslate);
9060}
9061
9062function onTouchEnd(event) {
9063  const swiper = this;
9064  const data = swiper.touchEventsData;
9065  let e = event;
9066  if (e.originalEvent) e = e.originalEvent;
9067  let targetTouch;
9068  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';
9069  if (!isTouchEvent) {
9070    if (data.touchId !== null) return; // return from pointer if we use touch
9071    if (e.pointerId !== data.pointerId) return;
9072    targetTouch = e;
9073  } else {
9074    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);
9075    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
9076  }
9077  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {
9078    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);
9079    if (!proceed) {
9080      return;
9081    }
9082  }
9083  data.pointerId = null;
9084  data.touchId = null;
9085  const {
9086    params,
9087    touches,
9088    rtlTranslate: rtl,
9089    slidesGrid,
9090    enabled
9091  } = swiper;
9092  if (!enabled) return;
9093  if (!params.simulateTouch && e.pointerType === 'mouse') return;
9094  if (data.allowTouchCallbacks) {
9095    swiper.emit('touchEnd', e);
9096  }
9097  data.allowTouchCallbacks = false;
9098  if (!data.isTouched) {
9099    if (data.isMoved && params.grabCursor) {
9100      swiper.setGrabCursor(false);
9101    }
9102    data.isMoved = false;
9103    data.startMoving = false;
9104    return;
9105  }
9106
9107  // Return Grab Cursor
9108  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
9109    swiper.setGrabCursor(false);
9110  }
9111
9112  // Time diff
9113  const touchEndTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
9114  const timeDiff = touchEndTime - data.touchStartTime;
9115
9116  // Tap, doubleTap, Click
9117  if (swiper.allowClick) {
9118    const pathTree = e.path || e.composedPath && e.composedPath();
9119    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);
9120    swiper.emit('tap click', e);
9121    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
9122      swiper.emit('doubleTap doubleClick', e);
9123    }
9124  }
9125  data.lastClickTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
9126  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
9127    if (!swiper.destroyed) swiper.allowClick = true;
9128  });
9129  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {
9130    data.isTouched = false;
9131    data.isMoved = false;
9132    data.startMoving = false;
9133    return;
9134  }
9135  data.isTouched = false;
9136  data.isMoved = false;
9137  data.startMoving = false;
9138  let currentPos;
9139  if (params.followFinger) {
9140    currentPos = rtl ? swiper.translate : -swiper.translate;
9141  } else {
9142    currentPos = -data.currentTranslate;
9143  }
9144  if (params.cssMode) {
9145    return;
9146  }
9147  if (params.freeMode && params.freeMode.enabled) {
9148    swiper.freeMode.onTouchEnd({
9149      currentPos
9150    });
9151    return;
9152  }
9153
9154  // Find current slide
9155  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;
9156  let stopIndex = 0;
9157  let groupSize = swiper.slidesSizesGrid[0];
9158  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {
9159    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
9160    if (typeof slidesGrid[i + increment] !== 'undefined') {
9161      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
9162        stopIndex = i;
9163        groupSize = slidesGrid[i + increment] - slidesGrid[i];
9164      }
9165    } else if (swipeToLast || currentPos >= slidesGrid[i]) {
9166      stopIndex = i;
9167      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
9168    }
9169  }
9170  let rewindFirstIndex = null;
9171  let rewindLastIndex = null;
9172  if (params.rewind) {
9173    if (swiper.isBeginning) {
9174      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
9175    } else if (swiper.isEnd) {
9176      rewindFirstIndex = 0;
9177    }
9178  }
9179  // Find current slide size
9180  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
9181  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
9182  if (timeDiff > params.longSwipesMs) {
9183    // Long touches
9184    if (!params.longSwipes) {
9185      swiper.slideTo(swiper.activeIndex);
9186      return;
9187    }
9188    if (swiper.swipeDirection === 'next') {
9189      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
9190    }
9191    if (swiper.swipeDirection === 'prev') {
9192      if (ratio > 1 - params.longSwipesRatio) {
9193        swiper.slideTo(stopIndex + increment);
9194      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
9195        swiper.slideTo(rewindLastIndex);
9196      } else {
9197        swiper.slideTo(stopIndex);
9198      }
9199    }
9200  } else {
9201    // Short swipes
9202    if (!params.shortSwipes) {
9203      swiper.slideTo(swiper.activeIndex);
9204      return;
9205    }
9206    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
9207    if (!isNavButtonTarget) {
9208      if (swiper.swipeDirection === 'next') {
9209        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
9210      }
9211      if (swiper.swipeDirection === 'prev') {
9212        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
9213      }
9214    } else if (e.target === swiper.navigation.nextEl) {
9215      swiper.slideTo(stopIndex + increment);
9216    } else {
9217      swiper.slideTo(stopIndex);
9218    }
9219  }
9220}
9221
9222function onResize() {
9223  const swiper = this;
9224  const {
9225    params,
9226    el
9227  } = swiper;
9228  if (el && el.offsetWidth === 0) return;
9229
9230  // Breakpoints
9231  if (params.breakpoints) {
9232    swiper.setBreakpoint();
9233  }
9234
9235  // Save locks
9236  const {
9237    allowSlideNext,
9238    allowSlidePrev,
9239    snapGrid
9240  } = swiper;
9241  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
9242
9243  // Disable locks on resize
9244  swiper.allowSlideNext = true;
9245  swiper.allowSlidePrev = true;
9246  swiper.updateSize();
9247  swiper.updateSlides();
9248  swiper.updateSlidesClasses();
9249  const isVirtualLoop = isVirtual && params.loop;
9250  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
9251    swiper.slideTo(swiper.slides.length - 1, 0, false, true);
9252  } else {
9253    if (swiper.params.loop && !isVirtual) {
9254      swiper.slideToLoop(swiper.realIndex, 0, false, true);
9255    } else {
9256      swiper.slideTo(swiper.activeIndex, 0, false, true);
9257    }
9258  }
9259  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
9260    clearTimeout(swiper.autoplay.resizeTimeout);
9261    swiper.autoplay.resizeTimeout = setTimeout(() => {
9262      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
9263        swiper.autoplay.resume();
9264      }
9265    }, 500);
9266  }
9267  // Return locks after resize
9268  swiper.allowSlidePrev = allowSlidePrev;
9269  swiper.allowSlideNext = allowSlideNext;
9270  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
9271    swiper.checkOverflow();
9272  }
9273}
9274
9275function onClick(e) {
9276  const swiper = this;
9277  if (!swiper.enabled) return;
9278  if (!swiper.allowClick) {
9279    if (swiper.params.preventClicks) e.preventDefault();
9280    if (swiper.params.preventClicksPropagation && swiper.animating) {
9281      e.stopPropagation();
9282      e.stopImmediatePropagation();
9283    }
9284  }
9285}
9286
9287function onScroll() {
9288  const swiper = this;
9289  const {
9290    wrapperEl,
9291    rtlTranslate,
9292    enabled
9293  } = swiper;
9294  if (!enabled) return;
9295  swiper.previousTranslate = swiper.translate;
9296  if (swiper.isHorizontal()) {
9297    swiper.translate = -wrapperEl.scrollLeft;
9298  } else {
9299    swiper.translate = -wrapperEl.scrollTop;
9300  }
9301  // eslint-disable-next-line
9302  if (swiper.translate === 0) swiper.translate = 0;
9303  swiper.updateActiveIndex();
9304  swiper.updateSlidesClasses();
9305  let newProgress;
9306  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
9307  if (translatesDiff === 0) {
9308    newProgress = 0;
9309  } else {
9310    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;
9311  }
9312  if (newProgress !== swiper.progress) {
9313    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);
9314  }
9315  swiper.emit('setTranslate', swiper.translate, false);
9316}
9317
9318function onLoad(e) {
9319  const swiper = this;
9320  processLazyPreloader(swiper, e.target);
9321  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
9322    return;
9323  }
9324  swiper.update();
9325}
9326
9327function onDocumentTouchStart() {
9328  const swiper = this;
9329  if (swiper.documentTouchHandlerProceeded) return;
9330  swiper.documentTouchHandlerProceeded = true;
9331  if (swiper.params.touchReleaseOnEdges) {
9332    swiper.el.style.touchAction = 'auto';
9333  }
9334}
9335
9336const events = (swiper, method) => {
9337  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9338  const {
9339    params,
9340    el,
9341    wrapperEl,
9342    device
9343  } = swiper;
9344  const capture = !!params.nested;
9345  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
9346  const swiperMethod = method;
9347  if (!el || typeof el === 'string') return;
9348
9349  // Touch Events
9350  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {
9351    passive: false,
9352    capture
9353  });
9354  el[domMethod]('touchstart', swiper.onTouchStart, {
9355    passive: false
9356  });
9357  el[domMethod]('pointerdown', swiper.onTouchStart, {
9358    passive: false
9359  });
9360  document[domMethod]('touchmove', swiper.onTouchMove, {
9361    passive: false,
9362    capture
9363  });
9364  document[domMethod]('pointermove', swiper.onTouchMove, {
9365    passive: false,
9366    capture
9367  });
9368  document[domMethod]('touchend', swiper.onTouchEnd, {
9369    passive: true
9370  });
9371  document[domMethod]('pointerup', swiper.onTouchEnd, {
9372    passive: true
9373  });
9374  document[domMethod]('pointercancel', swiper.onTouchEnd, {
9375    passive: true
9376  });
9377  document[domMethod]('touchcancel', swiper.onTouchEnd, {
9378    passive: true
9379  });
9380  document[domMethod]('pointerout', swiper.onTouchEnd, {
9381    passive: true
9382  });
9383  document[domMethod]('pointerleave', swiper.onTouchEnd, {
9384    passive: true
9385  });
9386  document[domMethod]('contextmenu', swiper.onTouchEnd, {
9387    passive: true
9388  });
9389
9390  // Prevent Links Clicks
9391  if (params.preventClicks || params.preventClicksPropagation) {
9392    el[domMethod]('click', swiper.onClick, true);
9393  }
9394  if (params.cssMode) {
9395    wrapperEl[domMethod]('scroll', swiper.onScroll);
9396  }
9397
9398  // Resize handler
9399  if (params.updateOnWindowResize) {
9400    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);
9401  } else {
9402    swiper[swiperMethod]('observerUpdate', onResize, true);
9403  }
9404
9405  // Images loader
9406  el[domMethod]('load', swiper.onLoad, {
9407    capture: true
9408  });
9409};
9410function attachEvents() {
9411  const swiper = this;
9412  const {
9413    params
9414  } = swiper;
9415  swiper.onTouchStart = onTouchStart.bind(swiper);
9416  swiper.onTouchMove = onTouchMove.bind(swiper);
9417  swiper.onTouchEnd = onTouchEnd.bind(swiper);
9418  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);
9419  if (params.cssMode) {
9420    swiper.onScroll = onScroll.bind(swiper);
9421  }
9422  swiper.onClick = onClick.bind(swiper);
9423  swiper.onLoad = onLoad.bind(swiper);
9424  events(swiper, 'on');
9425}
9426function detachEvents() {
9427  const swiper = this;
9428  events(swiper, 'off');
9429}
9430var events$1 = {
9431  attachEvents,
9432  detachEvents
9433};
9434
9435const isGridEnabled = (swiper, params) => {
9436  return swiper.grid && params.grid && params.grid.rows > 1;
9437};
9438function setBreakpoint() {
9439  const swiper = this;
9440  const {
9441    realIndex,
9442    initialized,
9443    params,
9444    el
9445  } = swiper;
9446  const breakpoints = params.breakpoints;
9447  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;
9448  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9449
9450  // Get breakpoint for window/container width and update parameters
9451  const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';
9452  const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);
9453  const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);
9454  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
9455  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
9456  const breakpointParams = breakpointOnlyParams || swiper.originalParams;
9457  const wasMultiRow = isGridEnabled(swiper, params);
9458  const isMultiRow = isGridEnabled(swiper, breakpointParams);
9459  const wasGrabCursor = swiper.params.grabCursor;
9460  const isGrabCursor = breakpointParams.grabCursor;
9461  const wasEnabled = params.enabled;
9462  if (wasMultiRow && !isMultiRow) {
9463    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
9464    swiper.emitContainerClasses();
9465  } else if (!wasMultiRow && isMultiRow) {
9466    el.classList.add(`${params.containerModifierClass}grid`);
9467    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {
9468      el.classList.add(`${params.containerModifierClass}grid-column`);
9469    }
9470    swiper.emitContainerClasses();
9471  }
9472  if (wasGrabCursor && !isGrabCursor) {
9473    swiper.unsetGrabCursor();
9474  } else if (!wasGrabCursor && isGrabCursor) {
9475    swiper.setGrabCursor();
9476  }
9477
9478  // Toggle navigation, pagination, scrollbar
9479  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {
9480    if (typeof breakpointParams[prop] === 'undefined') return;
9481    const wasModuleEnabled = params[prop] && params[prop].enabled;
9482    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
9483    if (wasModuleEnabled && !isModuleEnabled) {
9484      swiper[prop].disable();
9485    }
9486    if (!wasModuleEnabled && isModuleEnabled) {
9487      swiper[prop].enable();
9488    }
9489  });
9490  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
9491  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
9492  const wasLoop = params.loop;
9493  if (directionChanged && initialized) {
9494    swiper.changeDirection();
9495  }
9496  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(swiper.params, breakpointParams);
9497  const isEnabled = swiper.params.enabled;
9498  const hasLoop = swiper.params.loop;
9499  Object.assign(swiper, {
9500    allowTouchMove: swiper.params.allowTouchMove,
9501    allowSlideNext: swiper.params.allowSlideNext,
9502    allowSlidePrev: swiper.params.allowSlidePrev
9503  });
9504  if (wasEnabled && !isEnabled) {
9505    swiper.disable();
9506  } else if (!wasEnabled && isEnabled) {
9507    swiper.enable();
9508  }
9509  swiper.currentBreakpoint = breakpoint;
9510  swiper.emit('_beforeBreakpoint', breakpointParams);
9511  if (initialized) {
9512    if (needsReLoop) {
9513      swiper.loopDestroy();
9514      swiper.loopCreate(realIndex);
9515      swiper.updateSlides();
9516    } else if (!wasLoop && hasLoop) {
9517      swiper.loopCreate(realIndex);
9518      swiper.updateSlides();
9519    } else if (wasLoop && !hasLoop) {
9520      swiper.loopDestroy();
9521    }
9522  }
9523  swiper.emit('breakpoint', breakpointParams);
9524}
9525
9526function getBreakpoint(breakpoints, base, containerEl) {
9527  if (base === void 0) {
9528    base = 'window';
9529  }
9530  if (!breakpoints || base === 'container' && !containerEl) return undefined;
9531  let breakpoint = false;
9532  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
9533  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
9534  const points = Object.keys(breakpoints).map(point => {
9535    if (typeof point === 'string' && point.indexOf('@') === 0) {
9536      const minRatio = parseFloat(point.substr(1));
9537      const value = currentHeight * minRatio;
9538      return {
9539        value,
9540        point
9541      };
9542    }
9543    return {
9544      value: point,
9545      point
9546    };
9547  });
9548  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));
9549  for (let i = 0; i < points.length; i += 1) {
9550    const {
9551      point,
9552      value
9553    } = points[i];
9554    if (base === 'window') {
9555      if (window.matchMedia(`(min-width: ${value}px)`).matches) {
9556        breakpoint = point;
9557      }
9558    } else if (value <= containerEl.clientWidth) {
9559      breakpoint = point;
9560    }
9561  }
9562  return breakpoint || 'max';
9563}
9564
9565var breakpoints = {
9566  setBreakpoint,
9567  getBreakpoint
9568};
9569
9570function prepareClasses(entries, prefix) {
9571  const resultClasses = [];
9572  entries.forEach(item => {
9573    if (typeof item === 'object') {
9574      Object.keys(item).forEach(classNames => {
9575        if (item[classNames]) {
9576          resultClasses.push(prefix + classNames);
9577        }
9578      });
9579    } else if (typeof item === 'string') {
9580      resultClasses.push(prefix + item);
9581    }
9582  });
9583  return resultClasses;
9584}
9585function addClasses() {
9586  const swiper = this;
9587  const {
9588    classNames,
9589    params,
9590    rtl,
9591    el,
9592    device
9593  } = swiper;
9594  // prettier-ignore
9595  const suffixes = prepareClasses(['initialized', params.direction, {
9596    'free-mode': swiper.params.freeMode && params.freeMode.enabled
9597  }, {
9598    'autoheight': params.autoHeight
9599  }, {
9600    'rtl': rtl
9601  }, {
9602    'grid': params.grid && params.grid.rows > 1
9603  }, {
9604    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
9605  }, {
9606    'android': device.android
9607  }, {
9608    'ios': device.ios
9609  }, {
9610    'css-mode': params.cssMode
9611  }, {
9612    'centered': params.cssMode && params.centeredSlides
9613  }, {
9614    'watch-progress': params.watchSlidesProgress
9615  }], params.containerModifierClass);
9616  classNames.push(...suffixes);
9617  el.classList.add(...classNames);
9618  swiper.emitContainerClasses();
9619}
9620
9621function removeClasses() {
9622  const swiper = this;
9623  const {
9624    el,
9625    classNames
9626  } = swiper;
9627  if (!el || typeof el === 'string') return;
9628  el.classList.remove(...classNames);
9629  swiper.emitContainerClasses();
9630}
9631
9632var classes = {
9633  addClasses,
9634  removeClasses
9635};
9636
9637function checkOverflow() {
9638  const swiper = this;
9639  const {
9640    isLocked: wasLocked,
9641    params
9642  } = swiper;
9643  const {
9644    slidesOffsetBefore
9645  } = params;
9646  if (slidesOffsetBefore) {
9647    const lastSlideIndex = swiper.slides.length - 1;
9648    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
9649    swiper.isLocked = swiper.size > lastSlideRightEdge;
9650  } else {
9651    swiper.isLocked = swiper.snapGrid.length === 1;
9652  }
9653  if (params.allowSlideNext === true) {
9654    swiper.allowSlideNext = !swiper.isLocked;
9655  }
9656  if (params.allowSlidePrev === true) {
9657    swiper.allowSlidePrev = !swiper.isLocked;
9658  }
9659  if (wasLocked && wasLocked !== swiper.isLocked) {
9660    swiper.isEnd = false;
9661  }
9662  if (wasLocked !== swiper.isLocked) {
9663    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
9664  }
9665}
9666var checkOverflow$1 = {
9667  checkOverflow
9668};
9669
9670var defaults = {
9671  init: true,
9672  direction: 'horizontal',
9673  oneWayMovement: false,
9674  swiperElementNodeName: 'SWIPER-CONTAINER',
9675  touchEventsTarget: 'wrapper',
9676  initialSlide: 0,
9677  speed: 300,
9678  cssMode: false,
9679  updateOnWindowResize: true,
9680  resizeObserver: true,
9681  nested: false,
9682  createElements: false,
9683  eventsPrefix: 'swiper',
9684  enabled: true,
9685  focusableElements: 'input, select, option, textarea, button, video, label',
9686  // Overrides
9687  width: null,
9688  height: null,
9689  //
9690  preventInteractionOnTransition: false,
9691  // ssr
9692  userAgent: null,
9693  url: null,
9694  // To support iOS's swipe-to-go-back gesture (when being used in-app).
9695  edgeSwipeDetection: false,
9696  edgeSwipeThreshold: 20,
9697  // Autoheight
9698  autoHeight: false,
9699  // Set wrapper width
9700  setWrapperSize: false,
9701  // Virtual Translate
9702  virtualTranslate: false,
9703  // Effects
9704  effect: 'slide',
9705  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
9706
9707  // Breakpoints
9708  breakpoints: undefined,
9709  breakpointsBase: 'window',
9710  // Slides grid
9711  spaceBetween: 0,
9712  slidesPerView: 1,
9713  slidesPerGroup: 1,
9714  slidesPerGroupSkip: 0,
9715  slidesPerGroupAuto: false,
9716  centeredSlides: false,
9717  centeredSlidesBounds: false,
9718  slidesOffsetBefore: 0,
9719  // in px
9720  slidesOffsetAfter: 0,
9721  // in px
9722  normalizeSlideIndex: true,
9723  centerInsufficientSlides: false,
9724  // Disable swiper and hide navigation when container not overflow
9725  watchOverflow: true,
9726  // Round length
9727  roundLengths: false,
9728  // Touches
9729  touchRatio: 1,
9730  touchAngle: 45,
9731  simulateTouch: true,
9732  shortSwipes: true,
9733  longSwipes: true,
9734  longSwipesRatio: 0.5,
9735  longSwipesMs: 300,
9736  followFinger: true,
9737  allowTouchMove: true,
9738  threshold: 5,
9739  touchMoveStopPropagation: false,
9740  touchStartPreventDefault: true,
9741  touchStartForcePreventDefault: false,
9742  touchReleaseOnEdges: false,
9743  // Unique Navigation Elements
9744  uniqueNavElements: true,
9745  // Resistance
9746  resistance: true,
9747  resistanceRatio: 0.85,
9748  // Progress
9749  watchSlidesProgress: false,
9750  // Cursor
9751  grabCursor: false,
9752  // Clicks
9753  preventClicks: true,
9754  preventClicksPropagation: true,
9755  slideToClickedSlide: false,
9756  // loop
9757  loop: false,
9758  loopAddBlankSlides: true,
9759  loopAdditionalSlides: 0,
9760  loopPreventsSliding: true,
9761  // rewind
9762  rewind: false,
9763  // Swiping/no swiping
9764  allowSlidePrev: true,
9765  allowSlideNext: true,
9766  swipeHandler: null,
9767  // '.swipe-handler',
9768  noSwiping: true,
9769  noSwipingClass: 'swiper-no-swiping',
9770  noSwipingSelector: null,
9771  // Passive Listeners
9772  passiveListeners: true,
9773  maxBackfaceHiddenSlides: 10,
9774  // NS
9775  containerModifierClass: 'swiper-',
9776  // NEW
9777  slideClass: 'swiper-slide',
9778  slideBlankClass: 'swiper-slide-blank',
9779  slideActiveClass: 'swiper-slide-active',
9780  slideVisibleClass: 'swiper-slide-visible',
9781  slideFullyVisibleClass: 'swiper-slide-fully-visible',
9782  slideNextClass: 'swiper-slide-next',
9783  slidePrevClass: 'swiper-slide-prev',
9784  wrapperClass: 'swiper-wrapper',
9785  lazyPreloaderClass: 'swiper-lazy-preloader',
9786  lazyPreloadPrevNext: 0,
9787  // Callbacks
9788  runCallbacksOnInit: true,
9789  // Internals
9790  _emitClasses: false
9791};
9792
9793function moduleExtendParams(params, allModulesParams) {
9794  return function extendParams(obj) {
9795    if (obj === void 0) {
9796      obj = {};
9797    }
9798    const moduleParamName = Object.keys(obj)[0];
9799    const moduleParams = obj[moduleParamName];
9800    if (typeof moduleParams !== 'object' || moduleParams === null) {
9801      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(allModulesParams, obj);
9802      return;
9803    }
9804    if (params[moduleParamName] === true) {
9805      params[moduleParamName] = {
9806        enabled: true
9807      };
9808    }
9809    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {
9810      params[moduleParamName].auto = true;
9811    }
9812    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {
9813      params[moduleParamName].auto = true;
9814    }
9815    if (!(moduleParamName in params && 'enabled' in moduleParams)) {
9816      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(allModulesParams, obj);
9817      return;
9818    }
9819    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
9820      params[moduleParamName].enabled = true;
9821    }
9822    if (!params[moduleParamName]) params[moduleParamName] = {
9823      enabled: false
9824    };
9825    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(allModulesParams, obj);
9826  };
9827}
9828
9829/* eslint no-param-reassign: "off" */
9830const prototypes = {
9831  eventsEmitter,
9832  update,
9833  translate,
9834  transition,
9835  slide,
9836  loop,
9837  grabCursor,
9838  events: events$1,
9839  breakpoints,
9840  checkOverflow: checkOverflow$1,
9841  classes
9842};
9843const extendedDefaults = {};
9844class Swiper {
9845  constructor() {
9846    let el;
9847    let params;
9848    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
9849      args[_key] = arguments[_key];
9850    }
9851    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
9852      params = args[0];
9853    } else {
9854      [el, params] = args;
9855    }
9856    if (!params) params = {};
9857    params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, params);
9858    if (el && !params.el) params.el = el;
9859    const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9860    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {
9861      const swipers = [];
9862      document.querySelectorAll(params.el).forEach(containerEl => {
9863        const newParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, params, {
9864          el: containerEl
9865        });
9866        swipers.push(new Swiper(newParams));
9867      });
9868      // eslint-disable-next-line no-constructor-return
9869      return swipers;
9870    }
9871
9872    // Swiper Instance
9873    const swiper = this;
9874    swiper.__swiper__ = true;
9875    swiper.support = getSupport();
9876    swiper.device = getDevice({
9877      userAgent: params.userAgent
9878    });
9879    swiper.browser = getBrowser();
9880    swiper.eventsListeners = {};
9881    swiper.eventsAnyListeners = [];
9882    swiper.modules = [...swiper.__modules__];
9883    if (params.modules && Array.isArray(params.modules)) {
9884      swiper.modules.push(...params.modules);
9885    }
9886    const allModulesParams = {};
9887    swiper.modules.forEach(mod => {
9888      mod({
9889        params,
9890        swiper,
9891        extendParams: moduleExtendParams(params, allModulesParams),
9892        on: swiper.on.bind(swiper),
9893        once: swiper.once.bind(swiper),
9894        off: swiper.off.bind(swiper),
9895        emit: swiper.emit.bind(swiper)
9896      });
9897    });
9898
9899    // Extend defaults with modules params
9900    const swiperParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, defaults, allModulesParams);
9901
9902    // Extend defaults with passed params
9903    swiper.params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, swiperParams, extendedDefaults, params);
9904    swiper.originalParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, swiper.params);
9905    swiper.passedParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, params);
9906
9907    // add event listeners
9908    if (swiper.params && swiper.params.on) {
9909      Object.keys(swiper.params.on).forEach(eventName => {
9910        swiper.on(eventName, swiper.params.on[eventName]);
9911      });
9912    }
9913    if (swiper.params && swiper.params.onAny) {
9914      swiper.onAny(swiper.params.onAny);
9915    }
9916
9917    // Extend Swiper
9918    Object.assign(swiper, {
9919      enabled: swiper.params.enabled,
9920      el,
9921      // Classes
9922      classNames: [],
9923      // Slides
9924      slides: [],
9925      slidesGrid: [],
9926      snapGrid: [],
9927      slidesSizesGrid: [],
9928      // isDirection
9929      isHorizontal() {
9930        return swiper.params.direction === 'horizontal';
9931      },
9932      isVertical() {
9933        return swiper.params.direction === 'vertical';
9934      },
9935      // Indexes
9936      activeIndex: 0,
9937      realIndex: 0,
9938      //
9939      isBeginning: true,
9940      isEnd: false,
9941      // Props
9942      translate: 0,
9943      previousTranslate: 0,
9944      progress: 0,
9945      velocity: 0,
9946      animating: false,
9947      cssOverflowAdjustment() {
9948        // Returns 0 unless `translate` is > 2**23
9949        // Should be subtracted from css values to prevent overflow
9950        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
9951      },
9952      // Locks
9953      allowSlideNext: swiper.params.allowSlideNext,
9954      allowSlidePrev: swiper.params.allowSlidePrev,
9955      // Touch Events
9956      touchEventsData: {
9957        isTouched: undefined,
9958        isMoved: undefined,
9959        allowTouchCallbacks: undefined,
9960        touchStartTime: undefined,
9961        isScrolling: undefined,
9962        currentTranslate: undefined,
9963        startTranslate: undefined,
9964        allowThresholdMove: undefined,
9965        // Form elements to match
9966        focusableElements: swiper.params.focusableElements,
9967        // Last click time
9968        lastClickTime: 0,
9969        clickTimeout: undefined,
9970        // Velocities
9971        velocities: [],
9972        allowMomentumBounce: undefined,
9973        startMoving: undefined,
9974        pointerId: null,
9975        touchId: null
9976      },
9977      // Clicks
9978      allowClick: true,
9979      // Touches
9980      allowTouchMove: swiper.params.allowTouchMove,
9981      touches: {
9982        startX: 0,
9983        startY: 0,
9984        currentX: 0,
9985        currentY: 0,
9986        diff: 0
9987      },
9988      // Images
9989      imagesToLoad: [],
9990      imagesLoaded: 0
9991    });
9992    swiper.emit('_swiper');
9993
9994    // Init
9995    if (swiper.params.init) {
9996      swiper.init();
9997    }
9998
9999    // Return app instance
10000    // eslint-disable-next-line no-constructor-return
10001    return swiper;
10002  }
10003  getDirectionLabel(property) {
10004    if (this.isHorizontal()) {
10005      return property;
10006    }
10007    // prettier-ignore
10008    return {
10009      'width': 'height',
10010      'margin-top': 'margin-left',
10011      'margin-bottom ': 'margin-right',
10012      'margin-left': 'margin-top',
10013      'margin-right': 'margin-bottom',
10014      'padding-left': 'padding-top',
10015      'padding-right': 'padding-bottom',
10016      'marginRight': 'marginBottom'
10017    }[property];
10018  }
10019  getSlideIndex(slideEl) {
10020    const {
10021      slidesEl,
10022      params
10023    } = this;
10024    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
10025    const firstSlideIndex = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(slides[0]);
10026    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(slideEl) - firstSlideIndex;
10027  }
10028  getSlideIndexByData(index) {
10029    return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));
10030  }
10031  getSlideIndexWhenGrid(index) {
10032    if (this.grid && this.params.grid && this.params.grid.rows > 1) {
10033      if (this.params.grid.fill === 'column') {
10034        index = Math.floor(index / this.params.grid.rows);
10035      } else if (this.params.grid.fill === 'row') {
10036        index = index % Math.ceil(this.slides.length / this.params.grid.rows);
10037      }
10038    }
10039    return index;
10040  }
10041  recalcSlides() {
10042    const swiper = this;
10043    const {
10044      slidesEl,
10045      params
10046    } = swiper;
10047    swiper.slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
10048  }
10049  enable() {
10050    const swiper = this;
10051    if (swiper.enabled) return;
10052    swiper.enabled = true;
10053    if (swiper.params.grabCursor) {
10054      swiper.setGrabCursor();
10055    }
10056    swiper.emit('enable');
10057  }
10058  disable() {
10059    const swiper = this;
10060    if (!swiper.enabled) return;
10061    swiper.enabled = false;
10062    if (swiper.params.grabCursor) {
10063      swiper.unsetGrabCursor();
10064    }
10065    swiper.emit('disable');
10066  }
10067  setProgress(progress, speed) {
10068    const swiper = this;
10069    progress = Math.min(Math.max(progress, 0), 1);
10070    const min = swiper.minTranslate();
10071    const max = swiper.maxTranslate();
10072    const current = (max - min) * progress + min;
10073    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);
10074    swiper.updateActiveIndex();
10075    swiper.updateSlidesClasses();
10076  }
10077  emitContainerClasses() {
10078    const swiper = this;
10079    if (!swiper.params._emitClasses || !swiper.el) return;
10080    const cls = swiper.el.className.split(' ').filter(className => {
10081      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;
10082    });
10083    swiper.emit('_containerClasses', cls.join(' '));
10084  }
10085  getSlideClasses(slideEl) {
10086    const swiper = this;
10087    if (swiper.destroyed) return '';
10088    return slideEl.className.split(' ').filter(className => {
10089      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;
10090    }).join(' ');
10091  }
10092  emitSlidesClasses() {
10093    const swiper = this;
10094    if (!swiper.params._emitClasses || !swiper.el) return;
10095    const updates = [];
10096    swiper.slides.forEach(slideEl => {
10097      const classNames = swiper.getSlideClasses(slideEl);
10098      updates.push({
10099        slideEl,
10100        classNames
10101      });
10102      swiper.emit('_slideClass', slideEl, classNames);
10103    });
10104    swiper.emit('_slideClasses', updates);
10105  }
10106  slidesPerViewDynamic(view, exact) {
10107    if (view === void 0) {
10108      view = 'current';
10109    }
10110    if (exact === void 0) {
10111      exact = false;
10112    }
10113    const swiper = this;
10114    const {
10115      params,
10116      slides,
10117      slidesGrid,
10118      slidesSizesGrid,
10119      size: swiperSize,
10120      activeIndex
10121    } = swiper;
10122    let spv = 1;
10123    if (typeof params.slidesPerView === 'number') return params.slidesPerView;
10124    if (params.centeredSlides) {
10125      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;
10126      let breakLoop;
10127      for (let i = activeIndex + 1; i < slides.length; i += 1) {
10128        if (slides[i] && !breakLoop) {
10129          slideSize += Math.ceil(slides[i].swiperSlideSize);
10130          spv += 1;
10131          if (slideSize > swiperSize) breakLoop = true;
10132        }
10133      }
10134      for (let i = activeIndex - 1; i >= 0; i -= 1) {
10135        if (slides[i] && !breakLoop) {
10136          slideSize += slides[i].swiperSlideSize;
10137          spv += 1;
10138          if (slideSize > swiperSize) breakLoop = true;
10139        }
10140      }
10141    } else {
10142      // eslint-disable-next-line
10143      if (view === 'current') {
10144        for (let i = activeIndex + 1; i < slides.length; i += 1) {
10145          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
10146          if (slideInView) {
10147            spv += 1;
10148          }
10149        }
10150      } else {
10151        // previous
10152        for (let i = activeIndex - 1; i >= 0; i -= 1) {
10153          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
10154          if (slideInView) {
10155            spv += 1;
10156          }
10157        }
10158      }
10159    }
10160    return spv;
10161  }
10162  update() {
10163    const swiper = this;
10164    if (!swiper || swiper.destroyed) return;
10165    const {
10166      snapGrid,
10167      params
10168    } = swiper;
10169    // Breakpoints
10170    if (params.breakpoints) {
10171      swiper.setBreakpoint();
10172    }
10173    [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => {
10174      if (imageEl.complete) {
10175        processLazyPreloader(swiper, imageEl);
10176      }
10177    });
10178    swiper.updateSize();
10179    swiper.updateSlides();
10180    swiper.updateProgress();
10181    swiper.updateSlidesClasses();
10182    function setTranslate() {
10183      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
10184      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
10185      swiper.setTranslate(newTranslate);
10186      swiper.updateActiveIndex();
10187      swiper.updateSlidesClasses();
10188    }
10189    let translated;
10190    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {
10191      setTranslate();
10192      if (params.autoHeight) {
10193        swiper.updateAutoHeight();
10194      }
10195    } else {
10196      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {
10197        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;
10198        translated = swiper.slideTo(slides.length - 1, 0, false, true);
10199      } else {
10200        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
10201      }
10202      if (!translated) {
10203        setTranslate();
10204      }
10205    }
10206    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {
10207      swiper.checkOverflow();
10208    }
10209    swiper.emit('update');
10210  }
10211  changeDirection(newDirection, needUpdate) {
10212    if (needUpdate === void 0) {
10213      needUpdate = true;
10214    }
10215    const swiper = this;
10216    const currentDirection = swiper.params.direction;
10217    if (!newDirection) {
10218      // eslint-disable-next-line
10219      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
10220    }
10221    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {
10222      return swiper;
10223    }
10224    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);
10225    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);
10226    swiper.emitContainerClasses();
10227    swiper.params.direction = newDirection;
10228    swiper.slides.forEach(slideEl => {
10229      if (newDirection === 'vertical') {
10230        slideEl.style.width = '';
10231      } else {
10232        slideEl.style.height = '';
10233      }
10234    });
10235    swiper.emit('changeDirection');
10236    if (needUpdate) swiper.update();
10237    return swiper;
10238  }
10239  changeLanguageDirection(direction) {
10240    const swiper = this;
10241    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;
10242    swiper.rtl = direction === 'rtl';
10243    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;
10244    if (swiper.rtl) {
10245      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);
10246      swiper.el.dir = 'rtl';
10247    } else {
10248      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);
10249      swiper.el.dir = 'ltr';
10250    }
10251    swiper.update();
10252  }
10253  mount(element) {
10254    const swiper = this;
10255    if (swiper.mounted) return true;
10256
10257    // Find el
10258    let el = element || swiper.params.el;
10259    if (typeof el === 'string') {
10260      el = document.querySelector(el);
10261    }
10262    if (!el) {
10263      return false;
10264    }
10265    el.swiper = swiper;
10266    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {
10267      swiper.isElement = true;
10268    }
10269    const getWrapperSelector = () => {
10270      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;
10271    };
10272    const getWrapper = () => {
10273      if (el && el.shadowRoot && el.shadowRoot.querySelector) {
10274        const res = el.shadowRoot.querySelector(getWrapperSelector());
10275        // Children needs to return slot items
10276        return res;
10277      }
10278      return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, getWrapperSelector())[0];
10279    };
10280    // Find Wrapper
10281    let wrapperEl = getWrapper();
10282    if (!wrapperEl && swiper.params.createElements) {
10283      wrapperEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.wrapperClass);
10284      el.append(wrapperEl);
10285      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, `.${swiper.params.slideClass}`).forEach(slideEl => {
10286        wrapperEl.append(slideEl);
10287      });
10288    }
10289    Object.assign(swiper, {
10290      el,
10291      wrapperEl,
10292      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
10293      hostEl: swiper.isElement ? el.parentNode.host : el,
10294      mounted: true,
10295      // RTL
10296      rtl: el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'direction') === 'rtl',
10297      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'direction') === 'rtl'),
10298      wrongRTL: (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(wrapperEl, 'display') === '-webkit-box'
10299    });
10300    return true;
10301  }
10302  init(el) {
10303    const swiper = this;
10304    if (swiper.initialized) return swiper;
10305    const mounted = swiper.mount(el);
10306    if (mounted === false) return swiper;
10307    swiper.emit('beforeInit');
10308
10309    // Set breakpoint
10310    if (swiper.params.breakpoints) {
10311      swiper.setBreakpoint();
10312    }
10313
10314    // Add Classes
10315    swiper.addClasses();
10316
10317    // Update size
10318    swiper.updateSize();
10319
10320    // Update slides
10321    swiper.updateSlides();
10322    if (swiper.params.watchOverflow) {
10323      swiper.checkOverflow();
10324    }
10325
10326    // Set Grab Cursor
10327    if (swiper.params.grabCursor && swiper.enabled) {
10328      swiper.setGrabCursor();
10329    }
10330
10331    // Slide To Initial Slide
10332    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
10333      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);
10334    } else {
10335      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
10336    }
10337
10338    // Create loop
10339    if (swiper.params.loop) {
10340      swiper.loopCreate(undefined, true);
10341    }
10342
10343    // Attach events
10344    swiper.attachEvents();
10345    const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')];
10346    if (swiper.isElement) {
10347      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]'));
10348    }
10349    lazyElements.forEach(imageEl => {
10350      if (imageEl.complete) {
10351        processLazyPreloader(swiper, imageEl);
10352      } else {
10353        imageEl.addEventListener('load', e => {
10354          processLazyPreloader(swiper, e.target);
10355        });
10356      }
10357    });
10358    preload(swiper);
10359
10360    // Init Flag
10361    swiper.initialized = true;
10362    preload(swiper);
10363
10364    // Emit
10365    swiper.emit('init');
10366    swiper.emit('afterInit');
10367    return swiper;
10368  }
10369  destroy(deleteInstance, cleanStyles) {
10370    if (deleteInstance === void 0) {
10371      deleteInstance = true;
10372    }
10373    if (cleanStyles === void 0) {
10374      cleanStyles = true;
10375    }
10376    const swiper = this;
10377    const {
10378      params,
10379      el,
10380      wrapperEl,
10381      slides
10382    } = swiper;
10383    if (typeof swiper.params === 'undefined' || swiper.destroyed) {
10384      return null;
10385    }
10386    swiper.emit('beforeDestroy');
10387
10388    // Init Flag
10389    swiper.initialized = false;
10390
10391    // Detach events
10392    swiper.detachEvents();
10393
10394    // Destroy loop
10395    if (params.loop) {
10396      swiper.loopDestroy();
10397    }
10398
10399    // Cleanup styles
10400    if (cleanStyles) {
10401      swiper.removeClasses();
10402      if (el && typeof el !== 'string') {
10403        el.removeAttribute('style');
10404      }
10405      if (wrapperEl) {
10406        wrapperEl.removeAttribute('style');
10407      }
10408      if (slides && slides.length) {
10409        slides.forEach(slideEl => {
10410          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);
10411          slideEl.removeAttribute('style');
10412          slideEl.removeAttribute('data-swiper-slide-index');
10413        });
10414      }
10415    }
10416    swiper.emit('destroy');
10417
10418    // Detach emitter events
10419    Object.keys(swiper.eventsListeners).forEach(eventName => {
10420      swiper.off(eventName);
10421    });
10422    if (deleteInstance !== false) {
10423      if (swiper.el && typeof swiper.el !== 'string') {
10424        swiper.el.swiper = null;
10425      }
10426      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.y)(swiper);
10427    }
10428    swiper.destroyed = true;
10429    return null;
10430  }
10431  static extendDefaults(newDefaults) {
10432    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(extendedDefaults, newDefaults);
10433  }
10434  static get extendedDefaults() {
10435    return extendedDefaults;
10436  }
10437  static get defaults() {
10438    return defaults;
10439  }
10440  static installModule(mod) {
10441    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];
10442    const modules = Swiper.prototype.__modules__;
10443    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {
10444      modules.push(mod);
10445    }
10446  }
10447  static use(module) {
10448    if (Array.isArray(module)) {
10449      module.forEach(m => Swiper.installModule(m));
10450      return Swiper;
10451    }
10452    Swiper.installModule(module);
10453    return Swiper;
10454  }
10455}
10456Object.keys(prototypes).forEach(prototypeGroup => {
10457  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {
10458    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
10459  });
10460});
10461Swiper.use([Resize, Observer]);
10462
10463
10464
10465
10466/***/ }),
10467
vendor: 13,479 bytes, lines 10468-10849
10468/***/ "./node_modules/swiper/shared/utils.mjs":
10469/*!**********************************************!*\
10470  !*** ./node_modules/swiper/shared/utils.mjs ***!
10471  \**********************************************/
10472/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
10473
10474__webpack_require__.r(__webpack_exports__);
10475/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10476/* harmony export */   a: () => (/* binding */ setCSSProperty),
10477/* harmony export */   b: () => (/* binding */ elementParents),
10478/* harmony export */   c: () => (/* binding */ createElement),
10479/* harmony export */   d: () => (/* binding */ elementOffset),
10480/* harmony export */   e: () => (/* binding */ elementChildren),
10481/* harmony export */   f: () => (/* binding */ now),
10482/* harmony export */   g: () => (/* binding */ getSlideTransformEl),
10483/* harmony export */   h: () => (/* binding */ elementOuterSize),
10484/* harmony export */   i: () => (/* binding */ elementIndex),
10485/* harmony export */   j: () => (/* binding */ classesToTokens),
10486/* harmony export */   k: () => (/* binding */ getTranslate),
10487/* harmony export */   l: () => (/* binding */ elementTransitionEnd),
10488/* harmony export */   m: () => (/* binding */ makeElementsArray),
10489/* harmony export */   n: () => (/* binding */ nextTick),
10490/* harmony export */   o: () => (/* binding */ isObject),
10491/* harmony export */   p: () => (/* binding */ getRotateFix),
10492/* harmony export */   q: () => (/* binding */ elementStyle),
10493/* harmony export */   r: () => (/* binding */ elementNextAll),
10494/* harmony export */   s: () => (/* binding */ setInnerHTML),
10495/* harmony export */   t: () => (/* binding */ elementPrevAll),
10496/* harmony export */   u: () => (/* binding */ animateCSSModeScroll),
10497/* harmony export */   v: () => (/* binding */ showWarning),
10498/* harmony export */   w: () => (/* binding */ elementIsChildOf),
10499/* harmony export */   x: () => (/* binding */ extend),
10500/* harmony export */   y: () => (/* binding */ deleteProps)
10501/* harmony export */ });
10502/* harmony import */ var _ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
10503
10504
10505function classesToTokens(classes) {
10506  if (classes === void 0) {
10507    classes = '';
10508  }
10509  return classes.trim().split(' ').filter(c => !!c.trim());
10510}
10511
10512function deleteProps(obj) {
10513  const object = obj;
10514  Object.keys(object).forEach(key => {
10515    try {
10516      object[key] = null;
10517    } catch (e) {
10518      // no getter for object
10519    }
10520    try {
10521      delete object[key];
10522    } catch (e) {
10523      // something got wrong
10524    }
10525  });
10526}
10527function nextTick(callback, delay) {
10528  if (delay === void 0) {
10529    delay = 0;
10530  }
10531  return setTimeout(callback, delay);
10532}
10533function now() {
10534  return Date.now();
10535}
10536function getComputedStyle(el) {
10537  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10538  let style;
10539  if (window.getComputedStyle) {
10540    style = window.getComputedStyle(el, null);
10541  }
10542  if (!style && el.currentStyle) {
10543    style = el.currentStyle;
10544  }
10545  if (!style) {
10546    style = el.style;
10547  }
10548  return style;
10549}
10550function getTranslate(el, axis) {
10551  if (axis === void 0) {
10552    axis = 'x';
10553  }
10554  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10555  let matrix;
10556  let curTransform;
10557  let transformMatrix;
10558  const curStyle = getComputedStyle(el);
10559  if (window.WebKitCSSMatrix) {
10560    curTransform = curStyle.transform || curStyle.webkitTransform;
10561    if (curTransform.split(',').length > 6) {
10562      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');
10563    }
10564    // Some old versions of Webkit choke when 'none' is passed; pass
10565    // empty string instead in this case
10566    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
10567  } else {
10568    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
10569    matrix = transformMatrix.toString().split(',');
10570  }
10571  if (axis === 'x') {
10572    // Latest Chrome and webkits Fix
10573    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;
10574    // Crazy IE10 Matrix
10575    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);
10576    // Normal Browsers
10577    else curTransform = parseFloat(matrix[4]);
10578  }
10579  if (axis === 'y') {
10580    // Latest Chrome and webkits Fix
10581    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;
10582    // Crazy IE10 Matrix
10583    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);
10584    // Normal Browsers
10585    else curTransform = parseFloat(matrix[5]);
10586  }
10587  return curTransform || 0;
10588}
10589function isObject(o) {
10590  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
10591}
10592function isNode(node) {
10593  // eslint-disable-next-line
10594  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
10595    return node instanceof HTMLElement;
10596  }
10597  return node && (node.nodeType === 1 || node.nodeType === 11);
10598}
10599function extend() {
10600  const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
10601  const noExtend = ['__proto__', 'constructor', 'prototype'];
10602  for (let i = 1; i < arguments.length; i += 1) {
10603    const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
10604    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
10605      const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
10606      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
10607        const nextKey = keysArray[nextIndex];
10608        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
10609        if (desc !== undefined && desc.enumerable) {
10610          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
10611            if (nextSource[nextKey].__swiper__) {
10612              to[nextKey] = nextSource[nextKey];
10613            } else {
10614              extend(to[nextKey], nextSource[nextKey]);
10615            }
10616          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
10617            to[nextKey] = {};
10618            if (nextSource[nextKey].__swiper__) {
10619              to[nextKey] = nextSource[nextKey];
10620            } else {
10621              extend(to[nextKey], nextSource[nextKey]);
10622            }
10623          } else {
10624            to[nextKey] = nextSource[nextKey];
10625          }
10626        }
10627      }
10628    }
10629  }
10630  return to;
10631}
10632function setCSSProperty(el, varName, varValue) {
10633  el.style.setProperty(varName, varValue);
10634}
10635function animateCSSModeScroll(_ref) {
10636  let {
10637    swiper,
10638    targetPosition,
10639    side
10640  } = _ref;
10641  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10642  const startPosition = -swiper.translate;
10643  let startTime = null;
10644  let time;
10645  const duration = swiper.params.speed;
10646  swiper.wrapperEl.style.scrollSnapType = 'none';
10647  window.cancelAnimationFrame(swiper.cssModeFrameID);
10648  const dir = targetPosition > startPosition ? 'next' : 'prev';
10649  const isOutOfBound = (current, target) => {
10650    return dir === 'next' && current >= target || dir === 'prev' && current <= target;
10651  };
10652  const animate = () => {
10653    time = new Date().getTime();
10654    if (startTime === null) {
10655      startTime = time;
10656    }
10657    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
10658    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
10659    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
10660    if (isOutOfBound(currentPosition, targetPosition)) {
10661      currentPosition = targetPosition;
10662    }
10663    swiper.wrapperEl.scrollTo({
10664      [side]: currentPosition
10665    });
10666    if (isOutOfBound(currentPosition, targetPosition)) {
10667      swiper.wrapperEl.style.overflow = 'hidden';
10668      swiper.wrapperEl.style.scrollSnapType = '';
10669      setTimeout(() => {
10670        swiper.wrapperEl.style.overflow = '';
10671        swiper.wrapperEl.scrollTo({
10672          [side]: currentPosition
10673        });
10674      });
10675      window.cancelAnimationFrame(swiper.cssModeFrameID);
10676      return;
10677    }
10678    swiper.cssModeFrameID = window.requestAnimationFrame(animate);
10679  };
10680  animate();
10681}
10682function getSlideTransformEl(slideEl) {
10683  return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;
10684}
10685function elementChildren(element, selector) {
10686  if (selector === void 0) {
10687    selector = '';
10688  }
10689  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10690  const children = [...element.children];
10691  if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {
10692    children.push(...element.assignedElements());
10693  }
10694  if (!selector) {
10695    return children;
10696  }
10697  return children.filter(el => el.matches(selector));
10698}
10699function elementIsChildOfSlot(el, slot) {
10700  // Breadth-first search through all parent's children and assigned elements
10701  const elementsQueue = [slot];
10702  while (elementsQueue.length > 0) {
10703    const elementToCheck = elementsQueue.shift();
10704    if (el === elementToCheck) {
10705      return true;
10706    }
10707    elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));
10708  }
10709}
10710function elementIsChildOf(el, parent) {
10711  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10712  let isChild = parent.contains(el);
10713  if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {
10714    const children = [...parent.assignedElements()];
10715    isChild = children.includes(el);
10716    if (!isChild) {
10717      isChild = elementIsChildOfSlot(el, parent);
10718    }
10719  }
10720  return isChild;
10721}
10722function showWarning(text) {
10723  try {
10724    console.warn(text);
10725    return;
10726  } catch (err) {
10727    // err
10728  }
10729}
10730function createElement(tag, classes) {
10731  if (classes === void 0) {
10732    classes = [];
10733  }
10734  const el = document.createElement(tag);
10735  el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));
10736  return el;
10737}
10738function elementOffset(el) {
10739  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10740  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
10741  const box = el.getBoundingClientRect();
10742  const body = document.body;
10743  const clientTop = el.clientTop || body.clientTop || 0;
10744  const clientLeft = el.clientLeft || body.clientLeft || 0;
10745  const scrollTop = el === window ? window.scrollY : el.scrollTop;
10746  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
10747  return {
10748    top: box.top + scrollTop - clientTop,
10749    left: box.left + scrollLeft - clientLeft
10750  };
10751}
10752function elementPrevAll(el, selector) {
10753  const prevEls = [];
10754  while (el.previousElementSibling) {
10755    const prev = el.previousElementSibling; // eslint-disable-line
10756    if (selector) {
10757      if (prev.matches(selector)) prevEls.push(prev);
10758    } else prevEls.push(prev);
10759    el = prev;
10760  }
10761  return prevEls;
10762}
10763function elementNextAll(el, selector) {
10764  const nextEls = [];
10765  while (el.nextElementSibling) {
10766    const next = el.nextElementSibling; // eslint-disable-line
10767    if (selector) {
10768      if (next.matches(selector)) nextEls.push(next);
10769    } else nextEls.push(next);
10770    el = next;
10771  }
10772  return nextEls;
10773}
10774function elementStyle(el, prop) {
10775  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10776  return window.getComputedStyle(el, null).getPropertyValue(prop);
10777}
10778function elementIndex(el) {
10779  let child = el;
10780  let i;
10781  if (child) {
10782    i = 0;
10783    // eslint-disable-next-line
10784    while ((child = child.previousSibling) !== null) {
10785      if (child.nodeType === 1) i += 1;
10786    }
10787    return i;
10788  }
10789  return undefined;
10790}
10791function elementParents(el, selector) {
10792  const parents = []; // eslint-disable-line
10793  let parent = el.parentElement; // eslint-disable-line
10794  while (parent) {
10795    if (selector) {
10796      if (parent.matches(selector)) parents.push(parent);
10797    } else {
10798      parents.push(parent);
10799    }
10800    parent = parent.parentElement;
10801  }
10802  return parents;
10803}
10804function elementTransitionEnd(el, callback) {
10805  function fireCallBack(e) {
10806    if (e.target !== el) return;
10807    callback.call(el, e);
10808    el.removeEventListener('transitionend', fireCallBack);
10809  }
10810  if (callback) {
10811    el.addEventListener('transitionend', fireCallBack);
10812  }
10813}
10814function elementOuterSize(el, size, includeMargins) {
10815  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10816  if (includeMargins) {
10817    return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));
10818  }
10819  return el.offsetWidth;
10820}
10821function makeElementsArray(el) {
10822  return (Array.isArray(el) ? el : [el]).filter(e => !!e);
10823}
10824function getRotateFix(swiper) {
10825  return v => {
10826    if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {
10827      return v + 0.001;
10828    }
10829    return v;
10830  };
10831}
10832function setInnerHTML(el, html) {
10833  if (html === void 0) {
10834    html = '';
10835  }
10836  if (typeof trustedTypes !== 'undefined') {
10837    el.innerHTML = trustedTypes.createPolicy('html', {
10838      createHTML: s => s
10839    }).createHTML(html);
10840  } else {
10841    el.innerHTML = html;
10842  }
10843}
10844
10845
10846
10847
10848/***/ }),
10849
vendor: 2,223 bytes, lines 10850-10878
10850/***/ "./node_modules/swiper/swiper-bundle.css":
10851/*!***********************************************!*\
10852  !*** ./node_modules/swiper/swiper-bundle.css ***!
10853  \***********************************************/
10854/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10855
10856__webpack_require__.r(__webpack_exports__);
10857/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10858/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10859/* harmony export */ });
10860/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
10861/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
10862/* harmony import */ var _css_loader_dist_cjs_js_ruleSet_1_rules_83_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_83_oneOf_1_use_2_swiper_bundle_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../css-loader/dist/cjs.js??ruleSet[1].rules[83].oneOf[1].use[1]!../postcss-loader/dist/cjs.js??ruleSet[1].rules[83].oneOf[1].use[2]!./swiper-bundle.css */ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[83].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[83].oneOf[1].use[2]!./node_modules/swiper/swiper-bundle.css");
10863
10864            
10865
10866var options = {};
10867
10868options.insert = "head";
10869options.singleton = false;
10870
10871var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ruleSet_1_rules_83_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_83_oneOf_1_use_2_swiper_bundle_css__WEBPACK_IMPORTED_MODULE_1__["default"], options);
10872
10873
10874
10875/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ruleSet_1_rules_83_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_83_oneOf_1_use_2_swiper_bundle_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
10876
10877/***/ }),
10878
vendor: 6,877 bytes, lines 10879-10958
10879/***/ "./node_modules/swiper/swiper-bundle.mjs":
10880/*!***********************************************!*\
10881  !*** ./node_modules/swiper/swiper-bundle.mjs ***!
10882  \***********************************************/
10883/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
10884
10885__webpack_require__.r(__webpack_exports__);
10886/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10887/* harmony export */   Swiper: () => (/* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S),
10888/* harmony export */   "default": () => (/* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S)
10889/* harmony export */ });
10890/* harmony import */ var _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared/swiper-core.mjs */ "./node_modules/swiper/shared/swiper-core.mjs");
10891/* harmony import */ var _modules_virtual_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual.mjs */ "./node_modules/swiper/modules/virtual.mjs");
10892/* harmony import */ var _modules_keyboard_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard.mjs */ "./node_modules/swiper/modules/keyboard.mjs");
10893/* harmony import */ var _modules_mousewheel_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel.mjs */ "./node_modules/swiper/modules/mousewheel.mjs");
10894/* harmony import */ var _modules_navigation_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation.mjs */ "./node_modules/swiper/modules/navigation.mjs");
10895/* harmony import */ var _modules_pagination_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination.mjs */ "./node_modules/swiper/modules/pagination.mjs");
10896/* harmony import */ var _modules_scrollbar_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar.mjs */ "./node_modules/swiper/modules/scrollbar.mjs");
10897/* harmony import */ var _modules_parallax_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax.mjs */ "./node_modules/swiper/modules/parallax.mjs");
10898/* harmony import */ var _modules_zoom_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom.mjs */ "./node_modules/swiper/modules/zoom.mjs");
10899/* harmony import */ var _modules_controller_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/controller.mjs */ "./node_modules/swiper/modules/controller.mjs");
10900/* harmony import */ var _modules_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/a11y.mjs */ "./node_modules/swiper/modules/a11y.mjs");
10901/* harmony import */ var _modules_history_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/history.mjs */ "./node_modules/swiper/modules/history.mjs");
10902/* harmony import */ var _modules_hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/hash-navigation.mjs */ "./node_modules/swiper/modules/hash-navigation.mjs");
10903/* harmony import */ var _modules_autoplay_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/autoplay.mjs */ "./node_modules/swiper/modules/autoplay.mjs");
10904/* harmony import */ var _modules_thumbs_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/thumbs.mjs */ "./node_modules/swiper/modules/thumbs.mjs");
10905/* harmony import */ var _modules_free_mode_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/free-mode.mjs */ "./node_modules/swiper/modules/free-mode.mjs");
10906/* harmony import */ var _modules_grid_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/grid.mjs */ "./node_modules/swiper/modules/grid.mjs");
10907/* harmony import */ var _modules_manipulation_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/manipulation.mjs */ "./node_modules/swiper/modules/manipulation.mjs");
10908/* harmony import */ var _modules_effect_fade_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/effect-fade.mjs */ "./node_modules/swiper/modules/effect-fade.mjs");
10909/* harmony import */ var _modules_effect_cube_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/effect-cube.mjs */ "./node_modules/swiper/modules/effect-cube.mjs");
10910/* harmony import */ var _modules_effect_flip_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/effect-flip.mjs */ "./node_modules/swiper/modules/effect-flip.mjs");
10911/* harmony import */ var _modules_effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/effect-coverflow.mjs */ "./node_modules/swiper/modules/effect-coverflow.mjs");
10912/* harmony import */ var _modules_effect_creative_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/effect-creative.mjs */ "./node_modules/swiper/modules/effect-creative.mjs");
10913/* harmony import */ var _modules_effect_cards_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/effect-cards.mjs */ "./node_modules/swiper/modules/effect-cards.mjs");
10914/**
10915 * Swiper 11.2.10
10916 * Most modern mobile touch slider and framework with hardware accelerated transitions
10917 * https://swiperjs.com
10918 *
10919 * Copyright 2014-2025 Vladimir Kharlampidi
10920 *
10921 * Released under the MIT License
10922 *
10923 * Released on: June 28, 2025
10924 */
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951// Swiper Class
10952const modules = [_modules_virtual_mjs__WEBPACK_IMPORTED_MODULE_1__["default"], _modules_keyboard_mjs__WEBPACK_IMPORTED_MODULE_2__["default"], _modules_mousewheel_mjs__WEBPACK_IMPORTED_MODULE_3__["default"], _modules_navigation_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], _modules_pagination_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], _modules_scrollbar_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], _modules_parallax_mjs__WEBPACK_IMPORTED_MODULE_7__["default"], _modules_zoom_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], _modules_controller_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], _modules_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__["default"], _modules_history_mjs__WEBPACK_IMPORTED_MODULE_11__["default"], _modules_hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_12__["default"], _modules_autoplay_mjs__WEBPACK_IMPORTED_MODULE_13__["default"], _modules_thumbs_mjs__WEBPACK_IMPORTED_MODULE_14__["default"], _modules_free_mode_mjs__WEBPACK_IMPORTED_MODULE_15__["default"], _modules_grid_mjs__WEBPACK_IMPORTED_MODULE_16__["default"], _modules_manipulation_mjs__WEBPACK_IMPORTED_MODULE_17__["default"], _modules_effect_fade_mjs__WEBPACK_IMPORTED_MODULE_18__["default"], _modules_effect_cube_mjs__WEBPACK_IMPORTED_MODULE_19__["default"], _modules_effect_flip_mjs__WEBPACK_IMPORTED_MODULE_20__["default"], _modules_effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_21__["default"], _modules_effect_creative_mjs__WEBPACK_IMPORTED_MODULE_22__["default"], _modules_effect_cards_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]];
10953_shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S.use(modules);
10954
10955
10956
10957
10958/***/ })
10958
10959
10960/******/ 	});
10961/************************************************************************/
10962/******/ 	// The module cache
10963/******/ 	var __webpack_module_cache__ = {};
10964/******/ 	
10965/******/ 	// The require function
10966/******/ 	function __webpack_require__(moduleId) {
10967/******/ 		// Check if module is in cache
10968/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
10969/******/ 		if (cachedModule !== undefined) {
10970/******/ 			return cachedModule.exports;
10971/******/ 		}
10972/******/ 		// Create a new module (and put it into the cache)
10973/******/ 		var module = __webpack_module_cache__[moduleId] = {
10974/******/ 			id: moduleId,
10975/******/ 			// no module.loaded needed
10976/******/ 			exports: {}
10977/******/ 		};
10978/******/ 	
10979/******/ 		// Execute the module function
10980/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10981/******/ 	
10982/******/ 		// Return the exports of the module
10983/******/ 		return module.exports;
10984/******/ 	}
10985/******/ 	
10986/************************************************************************/
10987/******/ 	/* webpack/runtime/compat get default export */
10988/******/ 	(() => {
10989/******/ 		// getDefaultExport function for compatibility with non-harmony modules
10990/******/ 		__webpack_require__.n = (module) => {
10991/******/ 			var getter = module && module.__esModule ?
10992/******/ 				() => (module['default']) :
10993/******/ 				() => (module);
10994/******/ 			__webpack_require__.d(getter, { a: getter });
10995/******/ 			return getter;
10996/******/ 		};
10997/******/ 	})();
10998/******/ 	
10999/******/ 	/* webpack/runtime/define property getters */
11000/******/ 	(() => {
11001/******/ 		// define getter functions for harmony exports
11002/******/ 		__webpack_require__.d = (exports, definition) => {
11003/******/ 			for(var key in definition) {
11004/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
11005/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
11006/******/ 				}
11007/******/ 			}
11008/******/ 		};
11009/******/ 	})();
11010/******/ 	
11011/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
11012/******/ 	(() => {
11013/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
11014/******/ 	})();
11015/******/ 	
11016/******/ 	/* webpack/runtime/make namespace object */
11017/******/ 	(() => {
11018/******/ 		// define __esModule on exports
11019/******/ 		__webpack_require__.r = (exports) => {
11020/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
11021/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
11022/******/ 			}
11023/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
11024/******/ 		};
11025/******/ 	})();
11026/******/ 	
11027/******/ 	/* webpack/runtime/nonce */
11028/******/ 	(() => {
11029/******/ 		__webpack_require__.nc = undefined;
11030/******/ 	})();
11031/******/ 	
11032/************************************************************************/
11033var __webpack_exports__ = {};
11034// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
11035(() => {
11036/*!*****************************************!*\
11037  !*** ./assets/js/home/swiper/script.js ***!
11038  \*****************************************/
11039__webpack_require__.r(__webpack_exports__);
11040/* harmony import */ var swiper_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper/bundle */ "./node_modules/swiper/swiper-bundle.mjs");
11041/* harmony import */ var swiper_css_bundle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! swiper/css/bundle */ "./node_modules/swiper/swiper-bundle.css");
11042
11043
11044window.documentReady(function () {
11045  var swiper = new swiper_bundle__WEBPACK_IMPORTED_MODULE_0__["default"](".js-list5-swiper", {
11046    effect: "coverflow",
11047    grabCursor: true,
11048    centeredSlides: true,
11049    slidesPerView: 2,
11050    loop: true,
11051    loopAdditionalSlides: true,
11052    coverflowEffect: {
11053      rotate: 0,
11054      stretch: 0,
11055      depth: 100,
11056      modifier: 5,
11057      slideShadows: false
11058    },
11059    // breakpoints: {
11060    //     0: {
11061    //         slidesPerView: 2,
11062    //     },
11063    //     576: {
11064    //         slidesPerView: 2,
11065    //     },
11066    //     768: {
11067    //         slidesPerView: 2,
11068    //     },
11069    //     992: {
11070    //         slidesPerView: 2,
11071    //     },
11072    // },
11073    // pagination: {
11074    //     el: ".swiper-pagination",
11075    // },
11076    navigation: {
11077      nextEl: '.swiper-button-next',
11078      prevEl: '.swiper-button-prev'
11079    },
11080    autoplay: {
11081      delay: 5000,
11082      loop: true
11083    },
11084    on: {
11085      init: activateContentofActiveSlider,
11086      slideChange: activateContentofActiveSlider
11087    }
11088  });
11089  function activateContentofActiveSlider() {
11090    var currentSlide = this.slides[this.activeIndex];
11091    var target = $(currentSlide).attr('data-active-item');
11092    if (typeof target === 'undefined' || target.length === 0) {
11093      return;
11094    }
11095    var wrapper = $('.js-list5-body--w');
11096    wrapper.find('.list5-body-w').each(function (index, item) {
11097      $(item).removeClass('active');
11098      if ($(item).hasClass(target)) {
11099        $(item).addClass('active');
11100      }
11101    });
11102  }
11103});
11104})();
11105
11106/******/ })()
11107;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.