PageSourceSearch

https://keraton.com.br/wp-content/themes/theme/blocks/banner-hero/view.js?ver=65812ef029cfecc26011

js keraton.com.br collected 2026-10-10 01:00:21 UTC 379,516 bytes, 10,664 lines download raw bytes

vendor: 112 bytes, lines 1-5
1/******/ (() => { // webpackBootstrap
2/******/ 	"use strict";
3/******/ 	var __webpack_modules__ = ({
4
5/***/ "./s
5rc/blocks/banner-hero/view.js":
6/*!****************************************!*\
7  !*** ./src/blocks/banner-hero/view.js ***!
8  \****************************************/
9/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10
11__webpack_require__.r(__webpack_exports__);
12/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.mjs");
13/* harmony import */ var swiper_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! swiper/modules */ "./node_modules/swiper/modules/index.mjs");
14/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! swiper/css */ "./node_modules/swiper/swiper.css");
15/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! swiper/css/pagination */ "./node_modules/swiper/modules/pagination.css");
16/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style.css */ "./src/blocks/banner-hero/style.css");
17
18
19
20
21
22document.addEventListener("DOMContentLoaded", () => {
23  const containers = document.querySelectorAll(".banner-hero-swiper");
24  containers.forEach(el => {
25    new swiper__WEBPACK_IMPORTED_MODULE_0__["default"](el, {
26      modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_1__.Navigation, swiper_modules__WEBPACK_IMPORTED_MODULE_1__.Pagination, swiper_modules__WEBPACK_IMPORTED_MODULE_1__.Autoplay],
27      loop: true,
28      autoplay: {
29        delay: 5000,
30        disableOnInteraction: false
31      },
32      navigation: {
33        nextEl: el.parentElement.querySelector(".banner-hero-next"),
34        prevEl: el.parentElement.querySelector(".banner-hero-prev")
35      },
36      pagination: {
37        el: el.parentElement.querySelector(".banner-hero-pagination"),
38        clickable: true,
39        renderBullet: function (index, className) {
40          return '<button class="' + className + ' !w-2 !h-2 !rounded-full !bg-zinc-900 opacity-40 transition-all duration-200 cursor-pointer"></button>';
41        }
42      }
43    });
44  });
45});
46
47/***/ }),
48
vendor: 405 bytes, lines 49-60
49/***/ "./node_modules/swiper/modules/pagination.css":
50/*!****************************************************!*\
51  !*** ./node_modules/swiper/modules/pagination.css ***!
52  \****************************************************/
53/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
54
55__webpack_require__.r(__webpack_exports__);
56// extracted by mini-css-extract-plugin
57
58
59/***/ }),
60
vendor: 357 bytes, lines 61-72
61/***/ "./node_modules/swiper/swiper.css":
62/*!****************************************!*\
63  !*** ./node_modules/swiper/swiper.css ***!
64  \****************************************/
65/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
66
67__webpack_require__.r(__webpack_exports__);
68// extracted by mini-css-extract-plugin
69
70
71/***/ }),
72
73/***/ "./src/blocks/banner-hero/style.css":
74/*!******************************************!*\
75  !*** ./src/blocks/banner-hero/style.css ***!
76  \******************************************/
77/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
78
79__webpack_require__.r(__webpack_exports__);
80// extracted by mini-css-extract-plugin
81
82
83/***/ }),
84
vendor: 14,078 bytes, lines 85-479
85/***/ "./node_modules/swiper/modules/a11y.mjs":
86/*!**********************************************!*\
87  !*** ./node_modules/swiper/modules/a11y.mjs ***!
88  \**********************************************/
89/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
90
91__webpack_require__.r(__webpack_exports__);
92/* harmony export */ __webpack_require__.d(__webpack_exports__, {
93/* harmony export */   "default": () => (/* binding */ A11y)
94/* harmony export */ });
95/* 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");
96/* 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");
97/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
98
99
100
101
102function A11y(_ref) {
103  let {
104    swiper,
105    extendParams,
106    on
107  } = _ref;
108  extendParams({
109    a11y: {
110      enabled: true,
111      notificationClass: 'swiper-notification',
112      prevSlideMessage: 'Previous slide',
113      nextSlideMessage: 'Next slide',
114      firstSlideMessage: 'This is the first slide',
115      lastSlideMessage: 'This is the last slide',
116      paginationBulletMessage: 'Go to slide {{index}}',
117      slideLabelMessage: '{{index}} / {{slidesLength}}',
118      containerMessage: null,
119      containerRoleDescriptionMessage: null,
120      containerRole: null,
121      itemRoleDescriptionMessage: null,
122      slideRole: 'group',
123      id: null,
124      scrollOnFocus: true
125    }
126  });
127  swiper.a11y = {
128    clicked: false
129  };
130  let liveRegion = null;
131  let preventFocusHandler;
132  let focusTargetSlideEl;
133  let visibilityChangedTimestamp = new Date().getTime();
134  function notify(message) {
135    const notification = liveRegion;
136    if (notification.length === 0) return;
137    notification.innerHTML = '';
138    notification.innerHTML = message;
139  }
140  function getRandomNumber(size) {
141    if (size === void 0) {
142      size = 16;
143    }
144    const randomChar = () => Math.round(16 * Math.random()).toString(16);
145    return 'x'.repeat(size).replace(/x/g, randomChar);
146  }
147  function makeElFocusable(el) {
148    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
149    el.forEach(subEl => {
150      subEl.setAttribute('tabIndex', '0');
151    });
152  }
153  function makeElNotFocusable(el) {
154    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
155    el.forEach(subEl => {
156      subEl.setAttribute('tabIndex', '-1');
157    });
158  }
159  function addElRole(el, role) {
160    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
161    el.forEach(subEl => {
162      subEl.setAttribute('role', role);
163    });
164  }
165  function addElRoleDescription(el, description) {
166    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
167    el.forEach(subEl => {
168      subEl.setAttribute('aria-roledescription', description);
169    });
170  }
171  function addElControls(el, controls) {
172    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
173    el.forEach(subEl => {
174      subEl.setAttribute('aria-controls', controls);
175    });
176  }
177  function addElLabel(el, label) {
178    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
179    el.forEach(subEl => {
180      subEl.setAttribute('aria-label', label);
181    });
182  }
183  function addElId(el, id) {
184    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
185    el.forEach(subEl => {
186      subEl.setAttribute('id', id);
187    });
188  }
189  function addElLive(el, live) {
190    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
191    el.forEach(subEl => {
192      subEl.setAttribute('aria-live', live);
193    });
194  }
195  function disableEl(el) {
196    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
197    el.forEach(subEl => {
198      subEl.setAttribute('aria-disabled', true);
199    });
200  }
201  function enableEl(el) {
202    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
203    el.forEach(subEl => {
204      subEl.setAttribute('aria-disabled', false);
205    });
206  }
207  function onEnterOrSpaceKey(e) {
208    if (e.keyCode !== 13 && e.keyCode !== 32) return;
209    const params = swiper.params.a11y;
210    const targetEl = e.target;
211    if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {
212      if (!e.target.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) return;
213    }
214    if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {
215      const prevEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.prevEl);
216      const nextEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.nextEl);
217      if (nextEls.includes(targetEl)) {
218        if (!(swiper.isEnd && !swiper.params.loop)) {
219          swiper.slideNext();
220        }
221        if (swiper.isEnd) {
222          notify(params.lastSlideMessage);
223        } else {
224          notify(params.nextSlideMessage);
225        }
226      }
227      if (prevEls.includes(targetEl)) {
228        if (!(swiper.isBeginning && !swiper.params.loop)) {
229          swiper.slidePrev();
230        }
231        if (swiper.isBeginning) {
232          notify(params.firstSlideMessage);
233        } else {
234          notify(params.prevSlideMessage);
235        }
236      }
237    }
238    if (swiper.pagination && targetEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) {
239      targetEl.click();
240    }
241  }
242  function updateNavigation() {
243    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
244    const {
245      nextEl,
246      prevEl
247    } = swiper.navigation;
248    if (prevEl) {
249      if (swiper.isBeginning) {
250        disableEl(prevEl);
251        makeElNotFocusable(prevEl);
252      } else {
253        enableEl(prevEl);
254        makeElFocusable(prevEl);
255      }
256    }
257    if (nextEl) {
258      if (swiper.isEnd) {
259        disableEl(nextEl);
260        makeElNotFocusable(nextEl);
261      } else {
262        enableEl(nextEl);
263        makeElFocusable(nextEl);
264      }
265    }
266  }
267  function hasPagination() {
268    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
269  }
270  function hasClickablePagination() {
271    return hasPagination() && swiper.params.pagination.clickable;
272  }
273  function updatePagination() {
274    const params = swiper.params.a11y;
275    if (!hasPagination()) return;
276    swiper.pagination.bullets.forEach(bulletEl => {
277      if (swiper.params.pagination.clickable) {
278        makeElFocusable(bulletEl);
279        if (!swiper.params.pagination.renderBullet) {
280          addElRole(bulletEl, 'button');
281          addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bulletEl) + 1));
282        }
283      }
284      if (bulletEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletActiveClass))) {
285        bulletEl.setAttribute('aria-current', 'true');
286      } else {
287        bulletEl.removeAttribute('aria-current');
288      }
289    });
290  }
291  const initNavEl = (el, wrapperId, message) => {
292    makeElFocusable(el);
293    if (el.tagName !== 'BUTTON') {
294      addElRole(el, 'button');
295      el.addEventListener('keydown', onEnterOrSpaceKey);
296    }
297    addElLabel(el, message);
298    addElControls(el, wrapperId);
299  };
300  const handlePointerDown = e => {
301    if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {
302      preventFocusHandler = true;
303    }
304    swiper.a11y.clicked = true;
305  };
306  const handlePointerUp = () => {
307    preventFocusHandler = false;
308    requestAnimationFrame(() => {
309      requestAnimationFrame(() => {
310        if (!swiper.destroyed) {
311          swiper.a11y.clicked = false;
312        }
313      });
314    });
315  };
316  const onVisibilityChange = e => {
317    visibilityChangedTimestamp = new Date().getTime();
318  };
319  const handleFocus = e => {
320    if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;
321    if (new Date().getTime() - visibilityChangedTimestamp < 100) return;
322    const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
323    if (!slideEl || !swiper.slides.includes(slideEl)) return;
324    focusTargetSlideEl = slideEl;
325    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
326    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
327    if (isActive || isVisible) return;
328    if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
329    if (swiper.isHorizontal()) {
330      swiper.el.scrollLeft = 0;
331    } else {
332      swiper.el.scrollTop = 0;
333    }
334    requestAnimationFrame(() => {
335      if (preventFocusHandler) return;
336      if (swiper.params.loop) {
337        swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);
338      } else {
339        swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
340      }
341      preventFocusHandler = false;
342    });
343  };
344  const initSlides = () => {
345    const params = swiper.params.a11y;
346    if (params.itemRoleDescriptionMessage) {
347      addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);
348    }
349    if (params.slideRole) {
350      addElRole(swiper.slides, params.slideRole);
351    }
352    const slidesLength = swiper.slides.length;
353    if (params.slideLabelMessage) {
354      swiper.slides.forEach((slideEl, index) => {
355        const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;
356        const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
357        addElLabel(slideEl, ariaLabelMessage);
358      });
359    }
360  };
361  const init = () => {
362    const params = swiper.params.a11y;
363    swiper.el.append(liveRegion);
364
365    // Container
366    const containerEl = swiper.el;
367    if (params.containerRoleDescriptionMessage) {
368      addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);
369    }
370    if (params.containerMessage) {
371      addElLabel(containerEl, params.containerMessage);
372    }
373    if (params.containerRole) {
374      addElRole(containerEl, params.containerRole);
375    }
376
377    // Wrapper
378    const wrapperEl = swiper.wrapperEl;
379    const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;
380    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
381    addElId(wrapperEl, wrapperId);
382    addElLive(wrapperEl, live);
383
384    // Slide
385    initSlides();
386
387    // Navigation
388    let {
389      nextEl,
390      prevEl
391    } = swiper.navigation ? swiper.navigation : {};
392    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
393    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
394    if (nextEl) {
395      nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));
396    }
397    if (prevEl) {
398      prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));
399    }
400
401    // Pagination
402    if (hasClickablePagination()) {
403      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
404      paginationEl.forEach(el => {
405        el.addEventListener('keydown', onEnterOrSpaceKey);
406      });
407    }
408
409    // Tab focus
410    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
411    document.addEventListener('visibilitychange', onVisibilityChange);
412    swiper.el.addEventListener('focus', handleFocus, true);
413    swiper.el.addEventListener('focus', handleFocus, true);
414    swiper.el.addEventListener('pointerdown', handlePointerDown, true);
415    swiper.el.addEventListener('pointerup', handlePointerUp, true);
416  };
417  function destroy() {
418    if (liveRegion) liveRegion.remove();
419    let {
420      nextEl,
421      prevEl
422    } = swiper.navigation ? swiper.navigation : {};
423    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
424    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
425    if (nextEl) {
426      nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
427    }
428    if (prevEl) {
429      prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
430    }
431
432    // Pagination
433    if (hasClickablePagination()) {
434      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
435      paginationEl.forEach(el => {
436        el.removeEventListener('keydown', onEnterOrSpaceKey);
437      });
438    }
439    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
440    document.removeEventListener('visibilitychange', onVisibilityChange);
441    // Tab focus
442    if (swiper.el && typeof swiper.el !== 'string') {
443      swiper.el.removeEventListener('focus', handleFocus, true);
444      swiper.el.removeEventListener('pointerdown', handlePointerDown, true);
445      swiper.el.removeEventListener('pointerup', handlePointerUp, true);
446    }
447  }
448  on('beforeInit', () => {
449    liveRegion = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.c)('span', swiper.params.a11y.notificationClass);
450    liveRegion.setAttribute('aria-live', 'assertive');
451    liveRegion.setAttribute('aria-atomic', 'true');
452  });
453  on('afterInit', () => {
454    if (!swiper.params.a11y.enabled) return;
455    init();
456  });
457  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
458    if (!swiper.params.a11y.enabled) return;
459    initSlides();
460  });
461  on('fromEdge toEdge afterInit lock unlock', () => {
462    if (!swiper.params.a11y.enabled) return;
463    updateNavigation();
464  });
465  on('paginationUpdate', () => {
466    if (!swiper.params.a11y.enabled) return;
467    updatePagination();
468  });
469  on('destroy', () => {
470    if (!swiper.params.a11y.enabled) return;
471    destroy();
472  });
473}
474
475
476
477
478/***/ }),
479
vendor: 10,035 bytes, lines 480-798
480/***/ "./node_modules/swiper/modules/autoplay.mjs":
481/*!**************************************************!*\
482  !*** ./node_modules/swiper/modules/autoplay.mjs ***!
483  \**************************************************/
484/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
485
486__webpack_require__.r(__webpack_exports__);
487/* harmony export */ __webpack_require__.d(__webpack_exports__, {
488/* harmony export */   "default": () => (/* binding */ Autoplay)
489/* harmony export */ });
490/* 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");
491
492
493/* eslint no-underscore-dangle: "off" */
494/* eslint no-use-before-define: "off" */
495function Autoplay(_ref) {
496  let {
497    swiper,
498    extendParams,
499    on,
500    emit,
501    params
502  } = _ref;
503  swiper.autoplay = {
504    running: false,
505    paused: false,
506    timeLeft: 0
507  };
508  extendParams({
509    autoplay: {
510      enabled: false,
511      delay: 3000,
512      waitForTransition: true,
513      disableOnInteraction: false,
514      stopOnLastSlide: false,
515      reverseDirection: false,
516      pauseOnMouseEnter: false
517    }
518  });
519  let timeout;
520  let raf;
521  let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;
522  let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;
523  let autoplayTimeLeft;
524  let autoplayStartTime = new Date().getTime();
525  let wasPaused;
526  let isTouched;
527  let pausedByTouch;
528  let touchStartTimeout;
529  let slideChanged;
530  let pausedByInteraction;
531  let pausedByPointerEnter;
532  function onTransitionEnd(e) {
533    if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;
534    if (e.target !== swiper.wrapperEl) return;
535    swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);
536    if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {
537      return;
538    }
539    resume();
540  }
541  const calcTimeLeft = () => {
542    if (swiper.destroyed || !swiper.autoplay.running) return;
543    if (swiper.autoplay.paused) {
544      wasPaused = true;
545    } else if (wasPaused) {
546      autoplayDelayCurrent = autoplayTimeLeft;
547      wasPaused = false;
548    }
549    const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();
550    swiper.autoplay.timeLeft = timeLeft;
551    emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);
552    raf = requestAnimationFrame(() => {
553      calcTimeLeft();
554    });
555  };
556  const getSlideDelay = () => {
557    let activeSlideEl;
558    if (swiper.virtual && swiper.params.virtual.enabled) {
559      activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];
560    } else {
561      activeSlideEl = swiper.slides[swiper.activeIndex];
562    }
563    if (!activeSlideEl) return undefined;
564    const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);
565    return currentSlideDelay;
566  };
567  const run = delayForce => {
568    if (swiper.destroyed || !swiper.autoplay.running) return;
569    cancelAnimationFrame(raf);
570    calcTimeLeft();
571    let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;
572    autoplayDelayTotal = swiper.params.autoplay.delay;
573    autoplayDelayCurrent = swiper.params.autoplay.delay;
574    const currentSlideDelay = getSlideDelay();
575    if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {
576      delay = currentSlideDelay;
577      autoplayDelayTotal = currentSlideDelay;
578      autoplayDelayCurrent = currentSlideDelay;
579    }
580    autoplayTimeLeft = delay;
581    const speed = swiper.params.speed;
582    const proceed = () => {
583      if (!swiper || swiper.destroyed) return;
584      if (swiper.params.autoplay.reverseDirection) {
585        if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {
586          swiper.slidePrev(speed, true, true);
587          emit('autoplay');
588        } else if (!swiper.params.autoplay.stopOnLastSlide) {
589          swiper.slideTo(swiper.slides.length - 1, speed, true, true);
590          emit('autoplay');
591        }
592      } else {
593        if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {
594          swiper.slideNext(speed, true, true);
595          emit('autoplay');
596        } else if (!swiper.params.autoplay.stopOnLastSlide) {
597          swiper.slideTo(0, speed, true, true);
598          emit('autoplay');
599        }
600      }
601      if (swiper.params.cssMode) {
602        autoplayStartTime = new Date().getTime();
603        requestAnimationFrame(() => {
604          run();
605        });
606      }
607    };
608    if (delay > 0) {
609      clearTimeout(timeout);
610      timeout = setTimeout(() => {
611        proceed();
612      }, delay);
613    } else {
614      requestAnimationFrame(() => {
615        proceed();
616      });
617    }
618
619    // eslint-disable-next-line
620    return delay;
621  };
622  const start = () => {
623    autoplayStartTime = new Date().getTime();
624    swiper.autoplay.running = true;
625    run();
626    emit('autoplayStart');
627  };
628  const stop = () => {
629    swiper.autoplay.running = false;
630    clearTimeout(timeout);
631    cancelAnimationFrame(raf);
632    emit('autoplayStop');
633  };
634  const pause = (internal, reset) => {
635    if (swiper.destroyed || !swiper.autoplay.running) return;
636    clearTimeout(timeout);
637    if (!internal) {
638      pausedByInteraction = true;
639    }
640    const proceed = () => {
641      emit('autoplayPause');
642      if (swiper.params.autoplay.waitForTransition) {
643        swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);
644      } else {
645        resume();
646      }
647    };
648    swiper.autoplay.paused = true;
649    if (reset) {
650      if (slideChanged) {
651        autoplayTimeLeft = swiper.params.autoplay.delay;
652      }
653      slideChanged = false;
654      proceed();
655      return;
656    }
657    const delay = autoplayTimeLeft || swiper.params.autoplay.delay;
658    autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);
659    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;
660    if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;
661    proceed();
662  };
663  const resume = () => {
664    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;
665    autoplayStartTime = new Date().getTime();
666    if (pausedByInteraction) {
667      pausedByInteraction = false;
668      run(autoplayTimeLeft);
669    } else {
670      run();
671    }
672    swiper.autoplay.paused = false;
673    emit('autoplayResume');
674  };
675  const onVisibilityChange = () => {
676    if (swiper.destroyed || !swiper.autoplay.running) return;
677    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
678    if (document.visibilityState === 'hidden') {
679      pausedByInteraction = true;
680      pause(true);
681    }
682    if (document.visibilityState === 'visible') {
683      resume();
684    }
685  };
686  const onPointerEnter = e => {
687    if (e.pointerType !== 'mouse') return;
688    pausedByInteraction = true;
689    pausedByPointerEnter = true;
690    if (swiper.animating || swiper.autoplay.paused) return;
691    pause(true);
692  };
693  const onPointerLeave = e => {
694    if (e.pointerType !== 'mouse') return;
695    pausedByPointerEnter = false;
696    if (swiper.autoplay.paused) {
697      resume();
698    }
699  };
700  const attachMouseEvents = () => {
701    if (swiper.params.autoplay.pauseOnMouseEnter) {
702      swiper.el.addEventListener('pointerenter', onPointerEnter);
703      swiper.el.addEventListener('pointerleave', onPointerLeave);
704    }
705  };
706  const detachMouseEvents = () => {
707    if (swiper.el && typeof swiper.el !== 'string') {
708      swiper.el.removeEventListener('pointerenter', onPointerEnter);
709      swiper.el.removeEventListener('pointerleave', onPointerLeave);
710    }
711  };
712  const attachDocumentEvents = () => {
713    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
714    document.addEventListener('visibilitychange', onVisibilityChange);
715  };
716  const detachDocumentEvents = () => {
717    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
718    document.removeEventListener('visibilitychange', onVisibilityChange);
719  };
720  on('init', () => {
721    if (swiper.params.autoplay.enabled) {
722      attachMouseEvents();
723      attachDocumentEvents();
724      start();
725    }
726  });
727  on('destroy', () => {
728    detachMouseEvents();
729    detachDocumentEvents();
730    if (swiper.autoplay.running) {
731      stop();
732    }
733  });
734  on('_freeModeStaticRelease', () => {
735    if (pausedByTouch || pausedByInteraction) {
736      resume();
737    }
738  });
739  on('_freeModeNoMomentumRelease', () => {
740    if (!swiper.params.autoplay.disableOnInteraction) {
741      pause(true, true);
742    } else {
743      stop();
744    }
745  });
746  on('beforeTransitionStart', (_s, speed, internal) => {
747    if (swiper.destroyed || !swiper.autoplay.running) return;
748    if (internal || !swiper.params.autoplay.disableOnInteraction) {
749      pause(true, true);
750    } else {
751      stop();
752    }
753  });
754  on('sliderFirstMove', () => {
755    if (swiper.destroyed || !swiper.autoplay.running) return;
756    if (swiper.params.autoplay.disableOnInteraction) {
757      stop();
758      return;
759    }
760    isTouched = true;
761    pausedByTouch = false;
762    pausedByInteraction = false;
763    touchStartTimeout = setTimeout(() => {
764      pausedByInteraction = true;
765      pausedByTouch = true;
766      pause(true);
767    }, 200);
768  });
769  on('touchEnd', () => {
770    if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;
771    clearTimeout(touchStartTimeout);
772    clearTimeout(timeout);
773    if (swiper.params.autoplay.disableOnInteraction) {
774      pausedByTouch = false;
775      isTouched = false;
776      return;
777    }
778    if (pausedByTouch && swiper.params.cssMode) resume();
779    pausedByTouch = false;
780    isTouched = false;
781  });
782  on('slideChange', () => {
783    if (swiper.destroyed || !swiper.autoplay.running) return;
784    slideChanged = true;
785  });
786  Object.assign(swiper.autoplay, {
787    start,
788    stop,
789    pause,
790    resume
791  });
792}
793
794
795
796
797/***/ }),
798
vendor: 7,499 bytes, lines 799-1004
799/***/ "./node_modules/swiper/modules/controller.mjs":
800/*!****************************************************!*\
801  !*** ./node_modules/swiper/modules/controller.mjs ***!
802  \****************************************************/
803/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
804
805__webpack_require__.r(__webpack_exports__);
806/* harmony export */ __webpack_require__.d(__webpack_exports__, {
807/* harmony export */   "default": () => (/* binding */ Controller)
808/* harmony export */ });
809/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
810
811
812/* eslint no-bitwise: ["error", { "allow": [">>"] }] */
813function Controller(_ref) {
814  let {
815    swiper,
816    extendParams,
817    on
818  } = _ref;
819  extendParams({
820    controller: {
821      control: undefined,
822      inverse: false,
823      by: 'slide' // or 'container'
824    }
825  });
826
827  swiper.controller = {
828    control: undefined
829  };
830  function LinearSpline(x, y) {
831    const binarySearch = function search() {
832      let maxIndex;
833      let minIndex;
834      let guess;
835      return (array, val) => {
836        minIndex = -1;
837        maxIndex = array.length;
838        while (maxIndex - minIndex > 1) {
839          guess = maxIndex + minIndex >> 1;
840          if (array[guess] <= val) {
841            minIndex = guess;
842          } else {
843            maxIndex = guess;
844          }
845        }
846        return maxIndex;
847      };
848    }();
849    this.x = x;
850    this.y = y;
851    this.lastIndex = x.length - 1;
852    // Given an x value (x2), return the expected y2 value:
853    // (x1,y1) is the known point before given value,
854    // (x3,y3) is the known point after given value.
855    let i1;
856    let i3;
857    this.interpolate = function interpolate(x2) {
858      if (!x2) return 0;
859
860      // Get the indexes of x1 and x3 (the array indexes before and after given x2):
861      i3 = binarySearch(this.x, x2);
862      i1 = i3 - 1;
863
864      // We have our indexes i1 & i3, so we can calculate already:
865      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
866      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
867    };
868    return this;
869  }
870  function getInterpolateFunction(c) {
871    swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
872  }
873  function setTranslate(_t, byController) {
874    const controlled = swiper.controller.control;
875    let multiplier;
876    let controlledTranslate;
877    const Swiper = swiper.constructor;
878    function setControlledTranslate(c) {
879      if (c.destroyed) return;
880
881      // this will create an Interpolate function based on the snapGrids
882      // x is the Grid of the scrolled scroller and y will be the controlled scroller
883      // it makes sense to create this only once and recall it for the interpolation
884      // the function does a lot of value caching for performance
885      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;
886      if (swiper.params.controller.by === 'slide') {
887        getInterpolateFunction(c);
888        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
889        // but it did not work out
890        controlledTranslate = -swiper.controller.spline.interpolate(-translate);
891      }
892      if (!controlledTranslate || swiper.params.controller.by === 'container') {
893        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
894        if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {
895          multiplier = 1;
896        }
897        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
898      }
899      if (swiper.params.controller.inverse) {
900        controlledTranslate = c.maxTranslate() - controlledTranslate;
901      }
902      c.updateProgress(controlledTranslate);
903      c.setTranslate(controlledTranslate, swiper);
904      c.updateActiveIndex();
905      c.updateSlidesClasses();
906    }
907    if (Array.isArray(controlled)) {
908      for (let i = 0; i < controlled.length; i += 1) {
909        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
910          setControlledTranslate(controlled[i]);
911        }
912      }
913    } else if (controlled instanceof Swiper && byController !== controlled) {
914      setControlledTranslate(controlled);
915    }
916  }
917  function setTransition(duration, byController) {
918    const Swiper = swiper.constructor;
919    const controlled = swiper.controller.control;
920    let i;
921    function setControlledTransition(c) {
922      if (c.destroyed) return;
923      c.setTransition(duration, swiper);
924      if (duration !== 0) {
925        c.transitionStart();
926        if (c.params.autoHeight) {
927          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.n)(() => {
928            c.updateAutoHeight();
929          });
930        }
931        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(c.wrapperEl, () => {
932          if (!controlled) return;
933          c.transitionEnd();
934        });
935      }
936    }
937    if (Array.isArray(controlled)) {
938      for (i = 0; i < controlled.length; i += 1) {
939        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
940          setControlledTransition(controlled[i]);
941        }
942      }
943    } else if (controlled instanceof Swiper && byController !== controlled) {
944      setControlledTransition(controlled);
945    }
946  }
947  function removeSpline() {
948    if (!swiper.controller.control) return;
949    if (swiper.controller.spline) {
950      swiper.controller.spline = undefined;
951      delete swiper.controller.spline;
952    }
953  }
954  on('beforeInit', () => {
955    if (typeof window !== 'undefined' && (
956    // eslint-disable-line
957    typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {
958      const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];
959      controlElements.forEach(controlElement => {
960        if (!swiper.controller.control) swiper.controller.control = [];
961        if (controlElement && controlElement.swiper) {
962          swiper.controller.control.push(controlElement.swiper);
963        } else if (controlElement) {
964          const eventName = `${swiper.params.eventsPrefix}init`;
965          const onControllerSwiper = e => {
966            swiper.controller.control.push(e.detail[0]);
967            swiper.update();
968            controlElement.removeEventListener(eventName, onControllerSwiper);
969          };
970          controlElement.addEventListener(eventName, onControllerSwiper);
971        }
972      });
973      return;
974    }
975    swiper.controller.control = swiper.params.controller.control;
976  });
977  on('update', () => {
978    removeSpline();
979  });
980  on('resize', () => {
981    removeSpline();
982  });
983  on('observerUpdate', () => {
984    removeSpline();
985  });
986  on('setTranslate', (_s, translate, byController) => {
987    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
988    swiper.controller.setTranslate(translate, byController);
989  });
990  on('setTransition', (_s, duration, byController) => {
991    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
992    swiper.controller.setTransition(duration, byController);
993  });
994  Object.assign(swiper.controller, {
995    setTranslate,
996    setTransition
997  });
998}
999
1000
1001
1002
1003/***/ }),
1004
vendor: 5,896 bytes, lines 1005-1148
1005/***/ "./node_modules/swiper/modules/effect-cards.mjs":
1006/*!******************************************************!*\
1007  !*** ./node_modules/swiper/modules/effect-cards.mjs ***!
1008  \******************************************************/
1009/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1010
1011__webpack_require__.r(__webpack_exports__);
1012/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1013/* harmony export */   "default": () => (/* binding */ EffectCards)
1014/* harmony export */ });
1015/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1016/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1017/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1018/* 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");
1019/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1020
1021
1022
1023
1024
1025
1026function EffectCards(_ref) {
1027  let {
1028    swiper,
1029    extendParams,
1030    on
1031  } = _ref;
1032  extendParams({
1033    cardsEffect: {
1034      slideShadows: true,
1035      rotate: true,
1036      perSlideRotate: 2,
1037      perSlideOffset: 8
1038    }
1039  });
1040  const setTranslate = () => {
1041    const {
1042      slides,
1043      activeIndex,
1044      rtlTranslate: rtl
1045    } = swiper;
1046    const params = swiper.params.cardsEffect;
1047    const {
1048      startTranslate,
1049      isTouched
1050    } = swiper.touchEventsData;
1051    const currentTranslate = rtl ? -swiper.translate : swiper.translate;
1052    for (let i = 0; i < slides.length; i += 1) {
1053      const slideEl = slides[i];
1054      const slideProgress = slideEl.progress;
1055      const progress = Math.min(Math.max(slideProgress, -4), 4);
1056      let offset = slideEl.swiperSlideOffset;
1057      if (swiper.params.centeredSlides && !swiper.params.cssMode) {
1058        swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;
1059      }
1060      if (swiper.params.centeredSlides && swiper.params.cssMode) {
1061        offset -= slides[0].swiperSlideOffset;
1062      }
1063      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;
1064      let tY = 0;
1065      const tZ = -100 * Math.abs(progress);
1066      let scale = 1;
1067      let rotate = -params.perSlideRotate * progress;
1068      let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;
1069      const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;
1070      const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;
1071      const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;
1072      if (isSwipeToNext || isSwipeToPrev) {
1073        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
1074        rotate += -28 * progress * subProgress;
1075        scale += -0.5 * subProgress;
1076        tXAdd += 96 * subProgress;
1077        tY = `${-25 * subProgress * Math.abs(progress)}%`;
1078      }
1079      if (progress < 0) {
1080        // next
1081        tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;
1082      } else if (progress > 0) {
1083        // prev
1084        tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;
1085      } else {
1086        tX = `${tX}px`;
1087      }
1088      if (!swiper.isHorizontal()) {
1089        const prevY = tY;
1090        tY = tX;
1091        tX = prevY;
1092      }
1093      const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
1094
1095      /* eslint-disable */
1096      const transform = `
1097        translate3d(${tX}, ${tY}, ${tZ}px)
1098        rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)
1099        scale(${scaleString})
1100      `;
1101      /* eslint-enable */
1102
1103      if (params.slideShadows) {
1104        // Set shadows
1105        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
1106        if (!shadowEl) {
1107          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('cards', slideEl);
1108        }
1109        if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
1110      }
1111      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
1112      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1113      targetEl.style.transform = transform;
1114    }
1115  };
1116  const setTransition = duration => {
1117    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1118    transformElements.forEach(el => {
1119      el.style.transitionDuration = `${duration}ms`;
1120      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
1121        shadowEl.style.transitionDuration = `${duration}ms`;
1122      });
1123    });
1124    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1125      swiper,
1126      duration,
1127      transformElements
1128    });
1129  };
1130  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1131    effect: 'cards',
1132    swiper,
1133    on,
1134    setTranslate,
1135    setTransition,
1136    perspective: () => true,
1137    overwriteParams: () => ({
1138      watchSlidesProgress: true,
1139      virtualTranslate: !swiper.params.cssMode
1140    })
1141  });
1142}
1143
1144
1145
1146
1147/***/ }),
1148
vendor: 5,680 bytes, lines 1149-1270
1149/***/ "./node_modules/swiper/modules/effect-coverflow.mjs":
1150/*!**********************************************************!*\
1151  !*** ./node_modules/swiper/modules/effect-coverflow.mjs ***!
1152  \**********************************************************/
1153/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1154
1155__webpack_require__.r(__webpack_exports__);
1156/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1157/* harmony export */   "default": () => (/* binding */ EffectCoverflow)
1158/* harmony export */ });
1159/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1160/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1161/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1162/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1163
1164
1165
1166
1167
1168function EffectCoverflow(_ref) {
1169  let {
1170    swiper,
1171    extendParams,
1172    on
1173  } = _ref;
1174  extendParams({
1175    coverflowEffect: {
1176      rotate: 50,
1177      stretch: 0,
1178      depth: 100,
1179      scale: 1,
1180      modifier: 1,
1181      slideShadows: true
1182    }
1183  });
1184  const setTranslate = () => {
1185    const {
1186      width: swiperWidth,
1187      height: swiperHeight,
1188      slides,
1189      slidesSizesGrid
1190    } = swiper;
1191    const params = swiper.params.coverflowEffect;
1192    const isHorizontal = swiper.isHorizontal();
1193    const transform = swiper.translate;
1194    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
1195    const rotate = isHorizontal ? params.rotate : -params.rotate;
1196    const translate = params.depth;
1197    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.o)(swiper);
1198    // Each slide offset from center
1199    for (let i = 0, length = slides.length; i < length; i += 1) {
1200      const slideEl = slides[i];
1201      const slideSize = slidesSizesGrid[i];
1202      const slideOffset = slideEl.swiperSlideOffset;
1203      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
1204      const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
1205      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
1206      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
1207      // var rotateZ = 0
1208      let translateZ = -translate * Math.abs(offsetMultiplier);
1209      let stretch = params.stretch;
1210      // Allow percentage to make a relative stretch for responsive sliders
1211      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
1212        stretch = parseFloat(params.stretch) / 100 * slideSize;
1213      }
1214      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
1215      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
1216      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);
1217
1218      // Fix for ultra small values
1219      if (Math.abs(translateX) < 0.001) translateX = 0;
1220      if (Math.abs(translateY) < 0.001) translateY = 0;
1221      if (Math.abs(translateZ) < 0.001) translateZ = 0;
1222      if (Math.abs(rotateY) < 0.001) rotateY = 0;
1223      if (Math.abs(rotateX) < 0.001) rotateX = 0;
1224      if (Math.abs(scale) < 0.001) scale = 0;
1225      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;
1226      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1227      targetEl.style.transform = slideTransform;
1228      slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
1229      if (params.slideShadows) {
1230        // Set shadows
1231        let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1232        let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1233        if (!shadowBeforeEl) {
1234          shadowBeforeEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'left' : 'top');
1235        }
1236        if (!shadowAfterEl) {
1237          shadowAfterEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
1238        }
1239        if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
1240        if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
1241      }
1242    }
1243  };
1244  const setTransition = duration => {
1245    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
1246    transformElements.forEach(el => {
1247      el.style.transitionDuration = `${duration}ms`;
1248      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
1249        shadowEl.style.transitionDuration = `${duration}ms`;
1250      });
1251    });
1252  };
1253  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1254    effect: 'coverflow',
1255    swiper,
1256    on,
1257    setTranslate,
1258    setTransition,
1259    perspective: () => true,
1260    overwriteParams: () => ({
1261      watchSlidesProgress: true
1262    })
1263  });
1264}
1265
1266
1267
1268
1269/***/ }),
1270
vendor: 6,449 bytes, lines 1271-1435
1271/***/ "./node_modules/swiper/modules/effect-creative.mjs":
1272/*!*********************************************************!*\
1273  !*** ./node_modules/swiper/modules/effect-creative.mjs ***!
1274  \*********************************************************/
1275/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1276
1277__webpack_require__.r(__webpack_exports__);
1278/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1279/* harmony export */   "default": () => (/* binding */ EffectCreative)
1280/* harmony export */ });
1281/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1282/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1283/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1284/* 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");
1285/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1286
1287
1288
1289
1290
1291
1292function EffectCreative(_ref) {
1293  let {
1294    swiper,
1295    extendParams,
1296    on
1297  } = _ref;
1298  extendParams({
1299    creativeEffect: {
1300      limitProgress: 1,
1301      shadowPerProgress: false,
1302      progressMultiplier: 1,
1303      perspective: true,
1304      prev: {
1305        translate: [0, 0, 0],
1306        rotate: [0, 0, 0],
1307        opacity: 1,
1308        scale: 1
1309      },
1310      next: {
1311        translate: [0, 0, 0],
1312        rotate: [0, 0, 0],
1313        opacity: 1,
1314        scale: 1
1315      }
1316    }
1317  });
1318  const getTranslateValue = value => {
1319    if (typeof value === 'string') return value;
1320    return `${value}px`;
1321  };
1322  const setTranslate = () => {
1323    const {
1324      slides,
1325      wrapperEl,
1326      slidesSizesGrid
1327    } = swiper;
1328    const params = swiper.params.creativeEffect;
1329    const {
1330      progressMultiplier: multiplier
1331    } = params;
1332    const isCenteredSlides = swiper.params.centeredSlides;
1333    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.o)(swiper);
1334    if (isCenteredSlides) {
1335      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;
1336      wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;
1337    }
1338    for (let i = 0; i < slides.length; i += 1) {
1339      const slideEl = slides[i];
1340      const slideProgress = slideEl.progress;
1341      const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);
1342      let originalProgress = progress;
1343      if (!isCenteredSlides) {
1344        originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);
1345      }
1346      const offset = slideEl.swiperSlideOffset;
1347      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];
1348      const r = [0, 0, 0];
1349      let custom = false;
1350      if (!swiper.isHorizontal()) {
1351        t[1] = t[0];
1352        t[0] = 0;
1353      }
1354      let data = {
1355        translate: [0, 0, 0],
1356        rotate: [0, 0, 0],
1357        scale: 1,
1358        opacity: 1
1359      };
1360      if (progress < 0) {
1361        data = params.next;
1362        custom = true;
1363      } else if (progress > 0) {
1364        data = params.prev;
1365        custom = true;
1366      }
1367      // set translate
1368      t.forEach((value, index) => {
1369        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
1370      });
1371      // set rotates
1372      r.forEach((value, index) => {
1373        let val = data.rotate[index] * Math.abs(progress * multiplier);
1374        r[index] = val;
1375      });
1376      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
1377      const translateString = t.join(', ');
1378      const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;
1379      const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
1380      const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;
1381      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;
1382
1383      // Set shadows
1384      if (custom && data.shadow || !custom) {
1385        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
1386        if (!shadowEl && data.shadow) {
1387          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('creative', slideEl);
1388        }
1389        if (shadowEl) {
1390          const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
1391          shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
1392        }
1393      }
1394      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1395      targetEl.style.transform = transform;
1396      targetEl.style.opacity = opacityString;
1397      if (data.origin) {
1398        targetEl.style.transformOrigin = data.origin;
1399      }
1400    }
1401  };
1402  const setTransition = duration => {
1403    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1404    transformElements.forEach(el => {
1405      el.style.transitionDuration = `${duration}ms`;
1406      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
1407        shadowEl.style.transitionDuration = `${duration}ms`;
1408      });
1409    });
1410    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1411      swiper,
1412      duration,
1413      transformElements,
1414      allSlides: true
1415    });
1416  };
1417  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1418    effect: 'creative',
1419    swiper,
1420    on,
1421    setTranslate,
1422    setTransition,
1423    perspective: () => swiper.params.creativeEffect.perspective,
1424    overwriteParams: () => ({
1425      watchSlidesProgress: true,
1426      virtualTranslate: !swiper.params.cssMode
1427    })
1428  });
1429}
1430
1431
1432
1433
1434/***/ }),
1435
vendor: 7,602 bytes, lines 1436-1625
1436/***/ "./node_modules/swiper/modules/effect-cube.mjs":
1437/*!*****************************************************!*\
1438  !*** ./node_modules/swiper/modules/effect-cube.mjs ***!
1439  \*****************************************************/
1440/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1441
1442__webpack_require__.r(__webpack_exports__);
1443/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1444/* harmony export */   "default": () => (/* binding */ EffectCube)
1445/* harmony export */ });
1446/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1447/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1448
1449
1450
1451function EffectCube(_ref) {
1452  let {
1453    swiper,
1454    extendParams,
1455    on
1456  } = _ref;
1457  extendParams({
1458    cubeEffect: {
1459      slideShadows: true,
1460      shadow: true,
1461      shadowOffset: 20,
1462      shadowScale: 0.94
1463    }
1464  });
1465  const createSlideShadows = (slideEl, progress, isHorizontal) => {
1466    let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1467    let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1468    if (!shadowBefore) {
1469      shadowBefore = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));
1470      slideEl.append(shadowBefore);
1471    }
1472    if (!shadowAfter) {
1473      shadowAfter = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));
1474      slideEl.append(shadowAfter);
1475    }
1476    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
1477    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
1478  };
1479  const recreateShadows = () => {
1480    // create new ones
1481    const isHorizontal = swiper.isHorizontal();
1482    swiper.slides.forEach(slideEl => {
1483      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
1484      createSlideShadows(slideEl, progress, isHorizontal);
1485    });
1486  };
1487  const setTranslate = () => {
1488    const {
1489      el,
1490      wrapperEl,
1491      slides,
1492      width: swiperWidth,
1493      height: swiperHeight,
1494      rtlTranslate: rtl,
1495      size: swiperSize,
1496      browser
1497    } = swiper;
1498    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(swiper);
1499    const params = swiper.params.cubeEffect;
1500    const isHorizontal = swiper.isHorizontal();
1501    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
1502    let wrapperRotate = 0;
1503    let cubeShadowEl;
1504    if (params.shadow) {
1505      if (isHorizontal) {
1506        cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');
1507        if (!cubeShadowEl) {
1508          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
1509          swiper.wrapperEl.append(cubeShadowEl);
1510        }
1511        cubeShadowEl.style.height = `${swiperWidth}px`;
1512      } else {
1513        cubeShadowEl = el.querySelector('.swiper-cube-shadow');
1514        if (!cubeShadowEl) {
1515          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
1516          el.append(cubeShadowEl);
1517        }
1518      }
1519    }
1520    for (let i = 0; i < slides.length; i += 1) {
1521      const slideEl = slides[i];
1522      let slideIndex = i;
1523      if (isVirtual) {
1524        slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);
1525      }
1526      let slideAngle = slideIndex * 90;
1527      let round = Math.floor(slideAngle / 360);
1528      if (rtl) {
1529        slideAngle = -slideAngle;
1530        round = Math.floor(-slideAngle / 360);
1531      }
1532      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
1533      let tx = 0;
1534      let ty = 0;
1535      let tz = 0;
1536      if (slideIndex % 4 === 0) {
1537        tx = -round * 4 * swiperSize;
1538        tz = 0;
1539      } else if ((slideIndex - 1) % 4 === 0) {
1540        tx = 0;
1541        tz = -round * 4 * swiperSize;
1542      } else if ((slideIndex - 2) % 4 === 0) {
1543        tx = swiperSize + round * 4 * swiperSize;
1544        tz = swiperSize;
1545      } else if ((slideIndex - 3) % 4 === 0) {
1546        tx = -swiperSize;
1547        tz = 3 * swiperSize + swiperSize * 4 * round;
1548      }
1549      if (rtl) {
1550        tx = -tx;
1551      }
1552      if (!isHorizontal) {
1553        ty = tx;
1554        tx = 0;
1555      }
1556      const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
1557      if (progress <= 1 && progress > -1) {
1558        wrapperRotate = slideIndex * 90 + progress * 90;
1559        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
1560      }
1561      slideEl.style.transform = transform;
1562      if (params.slideShadows) {
1563        createSlideShadows(slideEl, progress, isHorizontal);
1564      }
1565    }
1566    wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;
1567    wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;
1568    if (params.shadow) {
1569      if (isHorizontal) {
1570        cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;
1571      } else {
1572        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
1573        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
1574        const scale1 = params.shadowScale;
1575        const scale2 = params.shadowScale / multiplier;
1576        const offset = params.shadowOffset;
1577        cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;
1578      }
1579    }
1580    const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;
1581    wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;
1582    wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
1583  };
1584  const setTransition = duration => {
1585    const {
1586      el,
1587      slides
1588    } = swiper;
1589    slides.forEach(slideEl => {
1590      slideEl.style.transitionDuration = `${duration}ms`;
1591      slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {
1592        subEl.style.transitionDuration = `${duration}ms`;
1593      });
1594    });
1595    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {
1596      const shadowEl = el.querySelector('.swiper-cube-shadow');
1597      if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;
1598    }
1599  };
1600  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
1601    effect: 'cube',
1602    swiper,
1603    on,
1604    setTranslate,
1605    setTransition,
1606    recreateShadows,
1607    getEffectParams: () => swiper.params.cubeEffect,
1608    perspective: () => true,
1609    overwriteParams: () => ({
1610      slidesPerView: 1,
1611      slidesPerGroup: 1,
1612      watchSlidesProgress: true,
1613      resistanceRatio: 0,
1614      spaceBetween: 0,
1615      centeredSlides: false,
1616      virtualTranslate: true
1617    })
1618  });
1619}
1620
1621
1622
1623
1624/***/ }),
1625
vendor: 3,069 bytes, lines 1626-1709
1626/***/ "./node_modules/swiper/modules/effect-fade.mjs":
1627/*!*****************************************************!*\
1628  !*** ./node_modules/swiper/modules/effect-fade.mjs ***!
1629  \*****************************************************/
1630/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1631
1632__webpack_require__.r(__webpack_exports__);
1633/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1634/* harmony export */   "default": () => (/* binding */ EffectFade)
1635/* harmony export */ });
1636/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1637/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1638/* 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");
1639/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1640
1641
1642
1643
1644
1645function EffectFade(_ref) {
1646  let {
1647    swiper,
1648    extendParams,
1649    on
1650  } = _ref;
1651  extendParams({
1652    fadeEffect: {
1653      crossFade: false
1654    }
1655  });
1656  const setTranslate = () => {
1657    const {
1658      slides
1659    } = swiper;
1660    const params = swiper.params.fadeEffect;
1661    for (let i = 0; i < slides.length; i += 1) {
1662      const slideEl = swiper.slides[i];
1663      const offset = slideEl.swiperSlideOffset;
1664      let tx = -offset;
1665      if (!swiper.params.virtualTranslate) tx -= swiper.translate;
1666      let ty = 0;
1667      if (!swiper.isHorizontal()) {
1668        ty = tx;
1669        tx = 0;
1670      }
1671      const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);
1672      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(params, slideEl);
1673      targetEl.style.opacity = slideOpacity;
1674      targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;
1675    }
1676  };
1677  const setTransition = duration => {
1678    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
1679    transformElements.forEach(el => {
1680      el.style.transitionDuration = `${duration}ms`;
1681    });
1682    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_2__.e)({
1683      swiper,
1684      duration,
1685      transformElements,
1686      allSlides: true
1687    });
1688  };
1689  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
1690    effect: 'fade',
1691    swiper,
1692    on,
1693    setTranslate,
1694    setTransition,
1695    overwriteParams: () => ({
1696      slidesPerView: 1,
1697      slidesPerGroup: 1,
1698      watchSlidesProgress: true,
1699      spaceBetween: 0,
1700      virtualTranslate: !swiper.params.cssMode
1701    })
1702  });
1703}
1704
1705
1706
1707
1708/***/ }),
1709
vendor: 5,302 bytes, lines 1710-1839
1710/***/ "./node_modules/swiper/modules/effect-flip.mjs":
1711/*!*****************************************************!*\
1712  !*** ./node_modules/swiper/modules/effect-flip.mjs ***!
1713  \*****************************************************/
1714/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1715
1716__webpack_require__.r(__webpack_exports__);
1717/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1718/* harmony export */   "default": () => (/* binding */ EffectFlip)
1719/* harmony export */ });
1720/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1721/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1722/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1723/* 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");
1724/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1725
1726
1727
1728
1729
1730
1731function EffectFlip(_ref) {
1732  let {
1733    swiper,
1734    extendParams,
1735    on
1736  } = _ref;
1737  extendParams({
1738    flipEffect: {
1739      slideShadows: true,
1740      limitRotation: true
1741    }
1742  });
1743  const createSlideShadows = (slideEl, progress) => {
1744    let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1745    let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1746    if (!shadowBefore) {
1747      shadowBefore = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
1748    }
1749    if (!shadowAfter) {
1750      shadowAfter = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
1751    }
1752    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
1753    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
1754  };
1755  const recreateShadows = () => {
1756    // Set shadows
1757    swiper.params.flipEffect;
1758    swiper.slides.forEach(slideEl => {
1759      let progress = slideEl.progress;
1760      if (swiper.params.flipEffect.limitRotation) {
1761        progress = Math.max(Math.min(slideEl.progress, 1), -1);
1762      }
1763      createSlideShadows(slideEl, progress);
1764    });
1765  };
1766  const setTranslate = () => {
1767    const {
1768      slides,
1769      rtlTranslate: rtl
1770    } = swiper;
1771    const params = swiper.params.flipEffect;
1772    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.o)(swiper);
1773    for (let i = 0; i < slides.length; i += 1) {
1774      const slideEl = slides[i];
1775      let progress = slideEl.progress;
1776      if (swiper.params.flipEffect.limitRotation) {
1777        progress = Math.max(Math.min(slideEl.progress, 1), -1);
1778      }
1779      const offset = slideEl.swiperSlideOffset;
1780      const rotate = -180 * progress;
1781      let rotateY = rotate;
1782      let rotateX = 0;
1783      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
1784      let ty = 0;
1785      if (!swiper.isHorizontal()) {
1786        ty = tx;
1787        tx = 0;
1788        rotateX = -rotateY;
1789        rotateY = 0;
1790      } else if (rtl) {
1791        rotateY = -rotateY;
1792      }
1793      slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
1794      if (params.slideShadows) {
1795        createSlideShadows(slideEl, progress);
1796      }
1797      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;
1798      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1799      targetEl.style.transform = transform;
1800    }
1801  };
1802  const setTransition = duration => {
1803    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1804    transformElements.forEach(el => {
1805      el.style.transitionDuration = `${duration}ms`;
1806      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
1807        shadowEl.style.transitionDuration = `${duration}ms`;
1808      });
1809    });
1810    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1811      swiper,
1812      duration,
1813      transformElements
1814    });
1815  };
1816  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1817    effect: 'flip',
1818    swiper,
1819    on,
1820    setTranslate,
1821    setTransition,
1822    recreateShadows,
1823    getEffectParams: () => swiper.params.flipEffect,
1824    perspective: () => true,
1825    overwriteParams: () => ({
1826      slidesPerView: 1,
1827      slidesPerGroup: 1,
1828      watchSlidesProgress: true,
1829      spaceBetween: 0,
1830      virtualTranslate: !swiper.params.cssMode
1831    })
1832  });
1833}
1834
1835
1836
1837
1838/***/ }),
1839
vendor: 9,227 bytes, lines 1840-2091
1840/***/ "./node_modules/swiper/modules/free-mode.mjs":
1841/*!***************************************************!*\
1842  !*** ./node_modules/swiper/modules/free-mode.mjs ***!
1843  \***************************************************/
1844/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1845
1846__webpack_require__.r(__webpack_exports__);
1847/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1848/* harmony export */   "default": () => (/* binding */ freeMode)
1849/* harmony export */ });
1850/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1851
1852
1853function freeMode(_ref) {
1854  let {
1855    swiper,
1856    extendParams,
1857    emit,
1858    once
1859  } = _ref;
1860  extendParams({
1861    freeMode: {
1862      enabled: false,
1863      momentum: true,
1864      momentumRatio: 1,
1865      momentumBounce: true,
1866      momentumBounceRatio: 1,
1867      momentumVelocityRatio: 1,
1868      sticky: false,
1869      minimumVelocity: 0.02
1870    }
1871  });
1872  function onTouchStart() {
1873    if (swiper.params.cssMode) return;
1874    const translate = swiper.getTranslate();
1875    swiper.setTranslate(translate);
1876    swiper.setTransition(0);
1877    swiper.touchEventsData.velocities.length = 0;
1878    swiper.freeMode.onTouchEnd({
1879      currentPos: swiper.rtl ? swiper.translate : -swiper.translate
1880    });
1881  }
1882  function onTouchMove() {
1883    if (swiper.params.cssMode) return;
1884    const {
1885      touchEventsData: data,
1886      touches
1887    } = swiper;
1888    // Velocity
1889    if (data.velocities.length === 0) {
1890      data.velocities.push({
1891        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
1892        time: data.touchStartTime
1893      });
1894    }
1895    data.velocities.push({
1896      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
1897      time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)()
1898    });
1899  }
1900  function onTouchEnd(_ref2) {
1901    let {
1902      currentPos
1903    } = _ref2;
1904    if (swiper.params.cssMode) return;
1905    const {
1906      params,
1907      wrapperEl,
1908      rtlTranslate: rtl,
1909      snapGrid,
1910      touchEventsData: data
1911    } = swiper;
1912    // Time diff
1913    const touchEndTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)();
1914    const timeDiff = touchEndTime - data.touchStartTime;
1915    if (currentPos < -swiper.minTranslate()) {
1916      swiper.slideTo(swiper.activeIndex);
1917      return;
1918    }
1919    if (currentPos > -swiper.maxTranslate()) {
1920      if (swiper.slides.length < snapGrid.length) {
1921        swiper.slideTo(snapGrid.length - 1);
1922      } else {
1923        swiper.slideTo(swiper.slides.length - 1);
1924      }
1925      return;
1926    }
1927    if (params.freeMode.momentum) {
1928      if (data.velocities.length > 1) {
1929        const lastMoveEvent = data.velocities.pop();
1930        const velocityEvent = data.velocities.pop();
1931        const distance = lastMoveEvent.position - velocityEvent.position;
1932        const time = lastMoveEvent.time - velocityEvent.time;
1933        swiper.velocity = distance / time;
1934        swiper.velocity /= 2;
1935        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
1936          swiper.velocity = 0;
1937        }
1938        // this implies that the user stopped moving a finger then released.
1939        // There would be no events with distance zero, so the last event is stale.
1940        if (time > 150 || (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)() - lastMoveEvent.time > 300) {
1941          swiper.velocity = 0;
1942        }
1943      } else {
1944        swiper.velocity = 0;
1945      }
1946      swiper.velocity *= params.freeMode.momentumVelocityRatio;
1947      data.velocities.length = 0;
1948      let momentumDuration = 1000 * params.freeMode.momentumRatio;
1949      const momentumDistance = swiper.velocity * momentumDuration;
1950      let newPosition = swiper.translate + momentumDistance;
1951      if (rtl) newPosition = -newPosition;
1952      let doBounce = false;
1953      let afterBouncePosition;
1954      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
1955      let needsLoopFix;
1956      if (newPosition < swiper.maxTranslate()) {
1957        if (params.freeMode.momentumBounce) {
1958          if (newPosition + swiper.maxTranslate() < -bounceAmount) {
1959            newPosition = swiper.maxTranslate() - bounceAmount;
1960          }
1961          afterBouncePosition = swiper.maxTranslate();
1962          doBounce = true;
1963          data.allowMomentumBounce = true;
1964        } else {
1965          newPosition = swiper.maxTranslate();
1966        }
1967        if (params.loop && params.centeredSlides) needsLoopFix = true;
1968      } else if (newPosition > swiper.minTranslate()) {
1969        if (params.freeMode.momentumBounce) {
1970          if (newPosition - swiper.minTranslate() > bounceAmount) {
1971            newPosition = swiper.minTranslate() + bounceAmount;
1972          }
1973          afterBouncePosition = swiper.minTranslate();
1974          doBounce = true;
1975          data.allowMomentumBounce = true;
1976        } else {
1977          newPosition = swiper.minTranslate();
1978        }
1979        if (params.loop && params.centeredSlides) needsLoopFix = true;
1980      } else if (params.freeMode.sticky) {
1981        let nextSlide;
1982        for (let j = 0; j < snapGrid.length; j += 1) {
1983          if (snapGrid[j] > -newPosition) {
1984            nextSlide = j;
1985            break;
1986          }
1987        }
1988        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
1989          newPosition = snapGrid[nextSlide];
1990        } else {
1991          newPosition = snapGrid[nextSlide - 1];
1992        }
1993        newPosition = -newPosition;
1994      }
1995      if (needsLoopFix) {
1996        once('transitionEnd', () => {
1997          swiper.loopFix();
1998        });
1999      }
2000      // Fix duration
2001      if (swiper.velocity !== 0) {
2002        if (rtl) {
2003          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
2004        } else {
2005          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
2006        }
2007        if (params.freeMode.sticky) {
2008          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
2009          // event, then durations can be 20+ seconds to slide one (or zero!) slides.
2010          // It's easy to see this when simulating touch with mouse events. To fix this,
2011          // limit single-slide swipes to the default slide duration. This also has the
2012          // nice side effect of matching slide speed if the user stopped moving before
2013          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
2014          // For faster swipes, also apply limits (albeit higher ones).
2015          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
2016          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
2017          if (moveDistance < currentSlideSize) {
2018            momentumDuration = params.speed;
2019          } else if (moveDistance < 2 * currentSlideSize) {
2020            momentumDuration = params.speed * 1.5;
2021          } else {
2022            momentumDuration = params.speed * 2.5;
2023          }
2024        }
2025      } else if (params.freeMode.sticky) {
2026        swiper.slideToClosest();
2027        return;
2028      }
2029      if (params.freeMode.momentumBounce && doBounce) {
2030        swiper.updateProgress(afterBouncePosition);
2031        swiper.setTransition(momentumDuration);
2032        swiper.setTranslate(newPosition);
2033        swiper.transitionStart(true, swiper.swipeDirection);
2034        swiper.animating = true;
2035        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
2036          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
2037          emit('momentumBounce');
2038          swiper.setTransition(params.speed);
2039          setTimeout(() => {
2040            swiper.setTranslate(afterBouncePosition);
2041            (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
2042              if (!swiper || swiper.destroyed) return;
2043              swiper.transitionEnd();
2044            });
2045          }, 0);
2046        });
2047      } else if (swiper.velocity) {
2048        emit('_freeModeNoMomentumRelease');
2049        swiper.updateProgress(newPosition);
2050        swiper.setTransition(momentumDuration);
2051        swiper.setTranslate(newPosition);
2052        swiper.transitionStart(true, swiper.swipeDirection);
2053        if (!swiper.animating) {
2054          swiper.animating = true;
2055          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
2056            if (!swiper || swiper.destroyed) return;
2057            swiper.transitionEnd();
2058          });
2059        }
2060      } else {
2061        swiper.updateProgress(newPosition);
2062      }
2063      swiper.updateActiveIndex();
2064      swiper.updateSlidesClasses();
2065    } else if (params.freeMode.sticky) {
2066      swiper.slideToClosest();
2067      return;
2068    } else if (params.freeMode) {
2069      emit('_freeModeNoMomentumRelease');
2070    }
2071    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
2072      emit('_freeModeStaticRelease');
2073      swiper.updateProgress();
2074      swiper.updateActiveIndex();
2075      swiper.updateSlidesClasses();
2076    }
2077  }
2078  Object.assign(swiper, {
2079    freeMode: {
2080      onTouchStart,
2081      onTouchMove,
2082      onTouchEnd
2083    }
2084  });
2085}
2086
2087
2088
2089
2090/***/ }),
2091
vendor: 5,697 bytes, lines 2092-2260
2092/***/ "./node_modules/swiper/modules/grid.mjs":
2093/*!**********************************************!*\
2094  !*** ./node_modules/swiper/modules/grid.mjs ***!
2095  \**********************************************/
2096/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2097
2098__webpack_require__.r(__webpack_exports__);
2099/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2100/* harmony export */   "default": () => (/* binding */ Grid)
2101/* harmony export */ });
2102function Grid(_ref) {
2103  let {
2104    swiper,
2105    extendParams,
2106    on
2107  } = _ref;
2108  extendParams({
2109    grid: {
2110      rows: 1,
2111      fill: 'column'
2112    }
2113  });
2114  let slidesNumberEvenToRows;
2115  let slidesPerRow;
2116  let numFullColumns;
2117  let wasMultiRow;
2118  const getSpaceBetween = () => {
2119    let spaceBetween = swiper.params.spaceBetween;
2120    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
2121      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
2122    } else if (typeof spaceBetween === 'string') {
2123      spaceBetween = parseFloat(spaceBetween);
2124    }
2125    return spaceBetween;
2126  };
2127  const initSlides = slides => {
2128    const {
2129      slidesPerView
2130    } = swiper.params;
2131    const {
2132      rows,
2133      fill
2134    } = swiper.params.grid;
2135    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
2136    numFullColumns = Math.floor(slidesLength / rows);
2137    if (Math.floor(slidesLength / rows) === slidesLength / rows) {
2138      slidesNumberEvenToRows = slidesLength;
2139    } else {
2140      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
2141    }
2142    if (slidesPerView !== 'auto' && fill === 'row') {
2143      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
2144    }
2145    slidesPerRow = slidesNumberEvenToRows / rows;
2146  };
2147  const unsetSlides = () => {
2148    if (swiper.slides) {
2149      swiper.slides.forEach(slide => {
2150        if (slide.swiperSlideGridSet) {
2151          slide.style.height = '';
2152          slide.style[swiper.getDirectionLabel('margin-top')] = '';
2153        }
2154      });
2155    }
2156  };
2157  const updateSlide = (i, slide, slides) => {
2158    const {
2159      slidesPerGroup
2160    } = swiper.params;
2161    const spaceBetween = getSpaceBetween();
2162    const {
2163      rows,
2164      fill
2165    } = swiper.params.grid;
2166    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
2167    // Set slides order
2168    let newSlideOrderIndex;
2169    let column;
2170    let row;
2171    if (fill === 'row' && slidesPerGroup > 1) {
2172      const groupIndex = Math.floor(i / (slidesPerGroup * rows));
2173      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
2174      const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
2175      row = Math.floor(slideIndexInGroup / columnsInGroup);
2176      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
2177      newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
2178      slide.style.order = newSlideOrderIndex;
2179    } else if (fill === 'column') {
2180      column = Math.floor(i / rows);
2181      row = i - column * rows;
2182      if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
2183        row += 1;
2184        if (row >= rows) {
2185          row = 0;
2186          column += 1;
2187        }
2188      }
2189    } else {
2190      row = Math.floor(i / slidesPerRow);
2191      column = i - row * slidesPerRow;
2192    }
2193    slide.row = row;
2194    slide.column = column;
2195    slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;
2196    slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
2197    slide.swiperSlideGridSet = true;
2198  };
2199  const updateWrapperSize = (slideSize, snapGrid) => {
2200    const {
2201      centeredSlides,
2202      roundLengths
2203    } = swiper.params;
2204    const spaceBetween = getSpaceBetween();
2205    const {
2206      rows
2207    } = swiper.params.grid;
2208    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
2209    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
2210    if (!swiper.params.cssMode) {
2211      swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
2212    }
2213    if (centeredSlides) {
2214      const newSlidesGrid = [];
2215      for (let i = 0; i < snapGrid.length; i += 1) {
2216        let slidesGridItem = snapGrid[i];
2217        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
2218        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
2219      }
2220      snapGrid.splice(0, snapGrid.length);
2221      snapGrid.push(...newSlidesGrid);
2222    }
2223  };
2224  const onInit = () => {
2225    wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
2226  };
2227  const onUpdate = () => {
2228    const {
2229      params,
2230      el
2231    } = swiper;
2232    const isMultiRow = params.grid && params.grid.rows > 1;
2233    if (wasMultiRow && !isMultiRow) {
2234      el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
2235      numFullColumns = 1;
2236      swiper.emitContainerClasses();
2237    } else if (!wasMultiRow && isMultiRow) {
2238      el.classList.add(`${params.containerModifierClass}grid`);
2239      if (params.grid.fill === 'column') {
2240        el.classList.add(`${params.containerModifierClass}grid-column`);
2241      }
2242      swiper.emitContainerClasses();
2243    }
2244    wasMultiRow = isMultiRow;
2245  };
2246  on('init', onInit);
2247  on('update', onUpdate);
2248  swiper.grid = {
2249    initSlides,
2250    unsetSlides,
2251    updateSlide,
2252    updateWrapperSize
2253  };
2254}
2255
2256
2257
2258
2259/***/ }),
2260
vendor: 4,398 bytes, lines 2261-2369
2261/***/ "./node_modules/swiper/modules/hash-navigation.mjs":
2262/*!*********************************************************!*\
2263  !*** ./node_modules/swiper/modules/hash-navigation.mjs ***!
2264  \*********************************************************/
2265/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2266
2267__webpack_require__.r(__webpack_exports__);
2268/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2269/* harmony export */   "default": () => (/* binding */ HashNavigation)
2270/* harmony export */ });
2271/* 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");
2272/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2273
2274
2275
2276function HashNavigation(_ref) {
2277  let {
2278    swiper,
2279    extendParams,
2280    emit,
2281    on
2282  } = _ref;
2283  let initialized = false;
2284  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
2285  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2286  extendParams({
2287    hashNavigation: {
2288      enabled: false,
2289      replaceState: false,
2290      watchState: false,
2291      getSlideIndex(_s, hash) {
2292        if (swiper.virtual && swiper.params.virtual.enabled) {
2293          const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];
2294          if (!slideWithHash) return 0;
2295          const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
2296          return index;
2297        }
2298        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]);
2299      }
2300    }
2301  });
2302  const onHashChange = () => {
2303    emit('hashChange');
2304    const newHash = document.location.hash.replace('#', '');
2305    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
2306    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';
2307    if (newHash !== activeSlideHash) {
2308      const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);
2309      if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;
2310      swiper.slideTo(newIndex);
2311    }
2312  };
2313  const setHash = () => {
2314    if (!initialized || !swiper.params.hashNavigation.enabled) return;
2315    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
2316    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';
2317    if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
2318      window.history.replaceState(null, null, `#${activeSlideHash}` || '');
2319      emit('hashSet');
2320    } else {
2321      document.location.hash = activeSlideHash || '';
2322      emit('hashSet');
2323    }
2324  };
2325  const init = () => {
2326    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;
2327    initialized = true;
2328    const hash = document.location.hash.replace('#', '');
2329    if (hash) {
2330      const speed = 0;
2331      const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);
2332      swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);
2333    }
2334    if (swiper.params.hashNavigation.watchState) {
2335      window.addEventListener('hashchange', onHashChange);
2336    }
2337  };
2338  const destroy = () => {
2339    if (swiper.params.hashNavigation.watchState) {
2340      window.removeEventListener('hashchange', onHashChange);
2341    }
2342  };
2343  on('init', () => {
2344    if (swiper.params.hashNavigation.enabled) {
2345      init();
2346    }
2347  });
2348  on('destroy', () => {
2349    if (swiper.params.hashNavigation.enabled) {
2350      destroy();
2351    }
2352  });
2353  on('transitionEnd _freeModeNoMomentumRelease', () => {
2354    if (initialized) {
2355      setHash();
2356    }
2357  });
2358  on('slideChange', () => {
2359    if (initialized && swiper.params.cssMode) {
2360      setHash();
2361    }
2362  });
2363}
2364
2365
2366
2367
2368/***/ }),
2369
vendor: 5,110 bytes, lines 2370-2526
2370/***/ "./node_modules/swiper/modules/history.mjs":
2371/*!*************************************************!*\
2372  !*** ./node_modules/swiper/modules/history.mjs ***!
2373  \*************************************************/
2374/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2375
2376__webpack_require__.r(__webpack_exports__);
2377/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2378/* harmony export */   "default": () => (/* binding */ History)
2379/* harmony export */ });
2380/* 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");
2381
2382
2383function History(_ref) {
2384  let {
2385    swiper,
2386    extendParams,
2387    on
2388  } = _ref;
2389  extendParams({
2390    history: {
2391      enabled: false,
2392      root: '',
2393      replaceState: false,
2394      key: 'slides',
2395      keepQuery: false
2396    }
2397  });
2398  let initialized = false;
2399  let paths = {};
2400  const slugify = text => {
2401    return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
2402  };
2403  const getPathValues = urlOverride => {
2404    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2405    let location;
2406    if (urlOverride) {
2407      location = new URL(urlOverride);
2408    } else {
2409      location = window.location;
2410    }
2411    const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');
2412    const total = pathArray.length;
2413    const key = pathArray[total - 2];
2414    const value = pathArray[total - 1];
2415    return {
2416      key,
2417      value
2418    };
2419  };
2420  const setHistory = (key, index) => {
2421    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2422    if (!initialized || !swiper.params.history.enabled) return;
2423    let location;
2424    if (swiper.params.url) {
2425      location = new URL(swiper.params.url);
2426    } else {
2427      location = window.location;
2428    }
2429    const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : swiper.slides[index];
2430    let value = slugify(slide.getAttribute('data-history'));
2431    if (swiper.params.history.root.length > 0) {
2432      let root = swiper.params.history.root;
2433      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);
2434      value = `${root}/${key ? `${key}/` : ''}${value}`;
2435    } else if (!location.pathname.includes(key)) {
2436      value = `${key ? `${key}/` : ''}${value}`;
2437    }
2438    if (swiper.params.history.keepQuery) {
2439      value += location.search;
2440    }
2441    const currentState = window.history.state;
2442    if (currentState && currentState.value === value) {
2443      return;
2444    }
2445    if (swiper.params.history.replaceState) {
2446      window.history.replaceState({
2447        value
2448      }, null, value);
2449    } else {
2450      window.history.pushState({
2451        value
2452      }, null, value);
2453    }
2454  };
2455  const scrollToSlide = (speed, value, runCallbacks) => {
2456    if (value) {
2457      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
2458        const slide = swiper.slides[i];
2459        const slideHistory = slugify(slide.getAttribute('data-history'));
2460        if (slideHistory === value) {
2461          const index = swiper.getSlideIndex(slide);
2462          swiper.slideTo(index, speed, runCallbacks);
2463        }
2464      }
2465    } else {
2466      swiper.slideTo(0, speed, runCallbacks);
2467    }
2468  };
2469  const setHistoryPopState = () => {
2470    paths = getPathValues(swiper.params.url);
2471    scrollToSlide(swiper.params.speed, paths.value, false);
2472  };
2473  const init = () => {
2474    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2475    if (!swiper.params.history) return;
2476    if (!window.history || !window.history.pushState) {
2477      swiper.params.history.enabled = false;
2478      swiper.params.hashNavigation.enabled = true;
2479      return;
2480    }
2481    initialized = true;
2482    paths = getPathValues(swiper.params.url);
2483    if (!paths.key && !paths.value) {
2484      if (!swiper.params.history.replaceState) {
2485        window.addEventListener('popstate', setHistoryPopState);
2486      }
2487      return;
2488    }
2489    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
2490    if (!swiper.params.history.replaceState) {
2491      window.addEventListener('popstate', setHistoryPopState);
2492    }
2493  };
2494  const destroy = () => {
2495    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2496    if (!swiper.params.history.replaceState) {
2497      window.removeEventListener('popstate', setHistoryPopState);
2498    }
2499  };
2500  on('init', () => {
2501    if (swiper.params.history.enabled) {
2502      init();
2503    }
2504  });
2505  on('destroy', () => {
2506    if (swiper.params.history.enabled) {
2507      destroy();
2508    }
2509  });
2510  on('transitionEnd _freeModeNoMomentumRelease', () => {
2511    if (initialized) {
2512      setHistory(swiper.params.history.key, swiper.activeIndex);
2513    }
2514  });
2515  on('slideChange', () => {
2516    if (initialized && swiper.params.cssMode) {
2517      setHistory(swiper.params.history.key, swiper.activeIndex);
2518    }
2519  });
2520}
2521
2522
2523
2524
2525/***/ }),
2526
vendor: 6,977 bytes, lines 2527-2607
2527/***/ "./node_modules/swiper/modules/index.mjs":
2528/*!***********************************************!*\
2529  !*** ./node_modules/swiper/modules/index.mjs ***!
2530  \***********************************************/
2531/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2532
2533__webpack_require__.r(__webpack_exports__);
2534/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2535/* harmony export */   A11y: () => (/* reexport safe */ _a11y_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
2536/* harmony export */   Autoplay: () => (/* reexport safe */ _autoplay_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
2537/* harmony export */   Controller: () => (/* reexport safe */ _controller_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
2538/* harmony export */   EffectCards: () => (/* reexport safe */ _effect_cards_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
2539/* harmony export */   EffectCoverflow: () => (/* reexport safe */ _effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
2540/* harmony export */   EffectCreative: () => (/* reexport safe */ _effect_creative_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]),
2541/* harmony export */   EffectCube: () => (/* reexport safe */ _effect_cube_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
2542/* harmony export */   EffectFade: () => (/* reexport safe */ _effect_fade_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
2543/* harmony export */   EffectFlip: () => (/* reexport safe */ _effect_flip_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
2544/* harmony export */   FreeMode: () => (/* reexport safe */ _free_mode_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
2545/* harmony export */   Grid: () => (/* reexport safe */ _grid_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
2546/* harmony export */   HashNavigation: () => (/* reexport safe */ _hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
2547/* harmony export */   History: () => (/* reexport safe */ _history_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
2548/* harmony export */   Keyboard: () => (/* reexport safe */ _keyboard_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]),
2549/* harmony export */   Manipulation: () => (/* reexport safe */ _manipulation_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
2550/* harmony export */   Mousewheel: () => (/* reexport safe */ _mousewheel_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
2551/* harmony export */   Navigation: () => (/* reexport safe */ _navigation_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
2552/* harmony export */   Pagination: () => (/* reexport safe */ _pagination_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
2553/* harmony export */   Parallax: () => (/* reexport safe */ _parallax_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
2554/* harmony export */   Scrollbar: () => (/* reexport safe */ _scrollbar_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
2555/* harmony export */   Thumbs: () => (/* reexport safe */ _thumbs_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
2556/* harmony export */   Virtual: () => (/* reexport safe */ _virtual_mjs__WEBPACK_IMPORTED_MODULE_0__["default"]),
2557/* harmony export */   Zoom: () => (/* reexport safe */ _zoom_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])
2558/* harmony export */ });
2559/* harmony import */ var _virtual_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./virtual.mjs */ "./node_modules/swiper/modules/virtual.mjs");
2560/* harmony import */ var _keyboard_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keyboard.mjs */ "./node_modules/swiper/modules/keyboard.mjs");
2561/* harmony import */ var _mousewheel_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mousewheel.mjs */ "./node_modules/swiper/modules/mousewheel.mjs");
2562/* harmony import */ var _navigation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./navigation.mjs */ "./node_modules/swiper/modules/navigation.mjs");
2563/* harmony import */ var _pagination_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pagination.mjs */ "./node_modules/swiper/modules/pagination.mjs");
2564/* harmony import */ var _scrollbar_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./scrollbar.mjs */ "./node_modules/swiper/modules/scrollbar.mjs");
2565/* harmony import */ var _parallax_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parallax.mjs */ "./node_modules/swiper/modules/parallax.mjs");
2566/* harmony import */ var _zoom_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./zoom.mjs */ "./node_modules/swiper/modules/zoom.mjs");
2567/* harmony import */ var _controller_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./controller.mjs */ "./node_modules/swiper/modules/controller.mjs");
2568/* harmony import */ var _a11y_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./a11y.mjs */ "./node_modules/swiper/modules/a11y.mjs");
2569/* harmony import */ var _history_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./history.mjs */ "./node_modules/swiper/modules/history.mjs");
2570/* harmony import */ var _hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./hash-navigation.mjs */ "./node_modules/swiper/modules/hash-navigation.mjs");
2571/* harmony import */ var _autoplay_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./autoplay.mjs */ "./node_modules/swiper/modules/autoplay.mjs");
2572/* harmony import */ var _thumbs_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./thumbs.mjs */ "./node_modules/swiper/modules/thumbs.mjs");
2573/* harmony import */ var _free_mode_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./free-mode.mjs */ "./node_modules/swiper/modules/free-mode.mjs");
2574/* harmony import */ var _grid_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./grid.mjs */ "./node_modules/swiper/modules/grid.mjs");
2575/* harmony import */ var _manipulation_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./manipulation.mjs */ "./node_modules/swiper/modules/manipulation.mjs");
2576/* harmony import */ var _effect_fade_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./effect-fade.mjs */ "./node_modules/swiper/modules/effect-fade.mjs");
2577/* harmony import */ var _effect_cube_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./effect-cube.mjs */ "./node_modules/swiper/modules/effect-cube.mjs");
2578/* harmony import */ var _effect_flip_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./effect-flip.mjs */ "./node_modules/swiper/modules/effect-flip.mjs");
2579/* harmony import */ var _effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./effect-coverflow.mjs */ "./node_modules/swiper/modules/effect-coverflow.mjs");
2580/* harmony import */ var _effect_creative_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./effect-creative.mjs */ "./node_modules/swiper/modules/effect-creative.mjs");
2581/* harmony import */ var _effect_cards_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./effect-cards.mjs */ "./node_modules/swiper/modules/effect-cards.mjs");
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606/***/ }),
2607
vendor: 5,259 bytes, lines 2608-2740
2608/***/ "./node_modules/swiper/modules/keyboard.mjs":
2609/*!**************************************************!*\
2610  !*** ./node_modules/swiper/modules/keyboard.mjs ***!
2611  \**************************************************/
2612/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2613
2614__webpack_require__.r(__webpack_exports__);
2615/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2616/* harmony export */   "default": () => (/* binding */ Keyboard)
2617/* harmony export */ });
2618/* 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");
2619/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2620
2621
2622
2623/* eslint-disable consistent-return */
2624function Keyboard(_ref) {
2625  let {
2626    swiper,
2627    extendParams,
2628    on,
2629    emit
2630  } = _ref;
2631  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
2632  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2633  swiper.keyboard = {
2634    enabled: false
2635  };
2636  extendParams({
2637    keyboard: {
2638      enabled: false,
2639      onlyInViewport: true,
2640      pageUpDown: true
2641    }
2642  });
2643  function handle(event) {
2644    if (!swiper.enabled) return;
2645    const {
2646      rtlTranslate: rtl
2647    } = swiper;
2648    let e = event;
2649    if (e.originalEvent) e = e.originalEvent; // jquery fix
2650    const kc = e.keyCode || e.charCode;
2651    const pageUpDown = swiper.params.keyboard.pageUpDown;
2652    const isPageUp = pageUpDown && kc === 33;
2653    const isPageDown = pageUpDown && kc === 34;
2654    const isArrowLeft = kc === 37;
2655    const isArrowRight = kc === 39;
2656    const isArrowUp = kc === 38;
2657    const isArrowDown = kc === 40;
2658    // Directions locks
2659    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {
2660      return false;
2661    }
2662    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {
2663      return false;
2664    }
2665    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
2666      return undefined;
2667    }
2668    if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {
2669      return undefined;
2670    }
2671    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {
2672      let inView = false;
2673      // Check that swiper should be inside of visible area of window
2674      if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {
2675        return undefined;
2676      }
2677      const el = swiper.el;
2678      const swiperWidth = el.clientWidth;
2679      const swiperHeight = el.clientHeight;
2680      const windowWidth = window.innerWidth;
2681      const windowHeight = window.innerHeight;
2682      const swiperOffset = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(el);
2683      if (rtl) swiperOffset.left -= el.scrollLeft;
2684      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
2685      for (let i = 0; i < swiperCoord.length; i += 1) {
2686        const point = swiperCoord[i];
2687        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
2688          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
2689          inView = true;
2690        }
2691      }
2692      if (!inView) return undefined;
2693    }
2694    if (swiper.isHorizontal()) {
2695      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
2696        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
2697      }
2698      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
2699      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
2700    } else {
2701      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
2702        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
2703      }
2704      if (isPageDown || isArrowDown) swiper.slideNext();
2705      if (isPageUp || isArrowUp) swiper.slidePrev();
2706    }
2707    emit('keyPress', kc);
2708    return undefined;
2709  }
2710  function enable() {
2711    if (swiper.keyboard.enabled) return;
2712    document.addEventListener('keydown', handle);
2713    swiper.keyboard.enabled = true;
2714  }
2715  function disable() {
2716    if (!swiper.keyboard.enabled) return;
2717    document.removeEventListener('keydown', handle);
2718    swiper.keyboard.enabled = false;
2719  }
2720  on('init', () => {
2721    if (swiper.params.keyboard.enabled) {
2722      enable();
2723    }
2724  });
2725  on('destroy', () => {
2726    if (swiper.keyboard.enabled) {
2727      disable();
2728    }
2729  });
2730  Object.assign(swiper.keyboard, {
2731    enable,
2732    disable
2733  });
2734}
2735
2736
2737
2738
2739/***/ }),
2740
vendor: 5,503 bytes, lines 2741-2945
2741/***/ "./node_modules/swiper/modules/manipulation.mjs":
2742/*!******************************************************!*\
2743  !*** ./node_modules/swiper/modules/manipulation.mjs ***!
2744  \******************************************************/
2745/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2746
2747__webpack_require__.r(__webpack_exports__);
2748/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2749/* harmony export */   "default": () => (/* binding */ Manipulation)
2750/* harmony export */ });
2751function appendSlide(slides) {
2752  const swiper = this;
2753  const {
2754    params,
2755    slidesEl
2756  } = swiper;
2757  if (params.loop) {
2758    swiper.loopDestroy();
2759  }
2760  const appendElement = slideEl => {
2761    if (typeof slideEl === 'string') {
2762      const tempDOM = document.createElement('div');
2763      tempDOM.innerHTML = slideEl;
2764      slidesEl.append(tempDOM.children[0]);
2765      tempDOM.innerHTML = '';
2766    } else {
2767      slidesEl.append(slideEl);
2768    }
2769  };
2770  if (typeof slides === 'object' && 'length' in slides) {
2771    for (let i = 0; i < slides.length; i += 1) {
2772      if (slides[i]) appendElement(slides[i]);
2773    }
2774  } else {
2775    appendElement(slides);
2776  }
2777  swiper.recalcSlides();
2778  if (params.loop) {
2779    swiper.loopCreate();
2780  }
2781  if (!params.observer || swiper.isElement) {
2782    swiper.update();
2783  }
2784}
2785
2786function prependSlide(slides) {
2787  const swiper = this;
2788  const {
2789    params,
2790    activeIndex,
2791    slidesEl
2792  } = swiper;
2793  if (params.loop) {
2794    swiper.loopDestroy();
2795  }
2796  let newActiveIndex = activeIndex + 1;
2797  const prependElement = slideEl => {
2798    if (typeof slideEl === 'string') {
2799      const tempDOM = document.createElement('div');
2800      tempDOM.innerHTML = slideEl;
2801      slidesEl.prepend(tempDOM.children[0]);
2802      tempDOM.innerHTML = '';
2803    } else {
2804      slidesEl.prepend(slideEl);
2805    }
2806  };
2807  if (typeof slides === 'object' && 'length' in slides) {
2808    for (let i = 0; i < slides.length; i += 1) {
2809      if (slides[i]) prependElement(slides[i]);
2810    }
2811    newActiveIndex = activeIndex + slides.length;
2812  } else {
2813    prependElement(slides);
2814  }
2815  swiper.recalcSlides();
2816  if (params.loop) {
2817    swiper.loopCreate();
2818  }
2819  if (!params.observer || swiper.isElement) {
2820    swiper.update();
2821  }
2822  swiper.slideTo(newActiveIndex, 0, false);
2823}
2824
2825function addSlide(index, slides) {
2826  const swiper = this;
2827  const {
2828    params,
2829    activeIndex,
2830    slidesEl
2831  } = swiper;
2832  let activeIndexBuffer = activeIndex;
2833  if (params.loop) {
2834    activeIndexBuffer -= swiper.loopedSlides;
2835    swiper.loopDestroy();
2836    swiper.recalcSlides();
2837  }
2838  const baseLength = swiper.slides.length;
2839  if (index <= 0) {
2840    swiper.prependSlide(slides);
2841    return;
2842  }
2843  if (index >= baseLength) {
2844    swiper.appendSlide(slides);
2845    return;
2846  }
2847  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
2848  const slidesBuffer = [];
2849  for (let i = baseLength - 1; i >= index; i -= 1) {
2850    const currentSlide = swiper.slides[i];
2851    currentSlide.remove();
2852    slidesBuffer.unshift(currentSlide);
2853  }
2854  if (typeof slides === 'object' && 'length' in slides) {
2855    for (let i = 0; i < slides.length; i += 1) {
2856      if (slides[i]) slidesEl.append(slides[i]);
2857    }
2858    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
2859  } else {
2860    slidesEl.append(slides);
2861  }
2862  for (let i = 0; i < slidesBuffer.length; i += 1) {
2863    slidesEl.append(slidesBuffer[i]);
2864  }
2865  swiper.recalcSlides();
2866  if (params.loop) {
2867    swiper.loopCreate();
2868  }
2869  if (!params.observer || swiper.isElement) {
2870    swiper.update();
2871  }
2872  if (params.loop) {
2873    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
2874  } else {
2875    swiper.slideTo(newActiveIndex, 0, false);
2876  }
2877}
2878
2879function removeSlide(slidesIndexes) {
2880  const swiper = this;
2881  const {
2882    params,
2883    activeIndex
2884  } = swiper;
2885  let activeIndexBuffer = activeIndex;
2886  if (params.loop) {
2887    activeIndexBuffer -= swiper.loopedSlides;
2888    swiper.loopDestroy();
2889  }
2890  let newActiveIndex = activeIndexBuffer;
2891  let indexToRemove;
2892  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
2893    for (let i = 0; i < slidesIndexes.length; i += 1) {
2894      indexToRemove = slidesIndexes[i];
2895      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
2896      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
2897    }
2898    newActiveIndex = Math.max(newActiveIndex, 0);
2899  } else {
2900    indexToRemove = slidesIndexes;
2901    if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
2902    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
2903    newActiveIndex = Math.max(newActiveIndex, 0);
2904  }
2905  swiper.recalcSlides();
2906  if (params.loop) {
2907    swiper.loopCreate();
2908  }
2909  if (!params.observer || swiper.isElement) {
2910    swiper.update();
2911  }
2912  if (params.loop) {
2913    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
2914  } else {
2915    swiper.slideTo(newActiveIndex, 0, false);
2916  }
2917}
2918
2919function removeAllSlides() {
2920  const swiper = this;
2921  const slidesIndexes = [];
2922  for (let i = 0; i < swiper.slides.length; i += 1) {
2923    slidesIndexes.push(i);
2924  }
2925  swiper.removeSlide(slidesIndexes);
2926}
2927
2928function Manipulation(_ref) {
2929  let {
2930    swiper
2931  } = _ref;
2932  Object.assign(swiper, {
2933    appendSlide: appendSlide.bind(swiper),
2934    prependSlide: prependSlide.bind(swiper),
2935    addSlide: addSlide.bind(swiper),
2936    removeSlide: removeSlide.bind(swiper),
2937    removeAllSlides: removeAllSlides.bind(swiper)
2938  });
2939}
2940
2941
2942
2943
2944/***/ }),
2945
vendor: 15,994 bytes, lines 2946-3356
2946/***/ "./node_modules/swiper/modules/mousewheel.mjs":
2947/*!****************************************************!*\
2948  !*** ./node_modules/swiper/modules/mousewheel.mjs ***!
2949  \****************************************************/
2950/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2951
2952__webpack_require__.r(__webpack_exports__);
2953/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2954/* harmony export */   "default": () => (/* binding */ Mousewheel)
2955/* harmony export */ });
2956/* 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");
2957/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2958
2959
2960
2961/* eslint-disable consistent-return */
2962function Mousewheel(_ref) {
2963  let {
2964    swiper,
2965    extendParams,
2966    on,
2967    emit
2968  } = _ref;
2969  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2970  extendParams({
2971    mousewheel: {
2972      enabled: false,
2973      releaseOnEdges: false,
2974      invert: false,
2975      forceToAxis: false,
2976      sensitivity: 1,
2977      eventsTarget: 'container',
2978      thresholdDelta: null,
2979      thresholdTime: null,
2980      noMousewheelClass: 'swiper-no-mousewheel'
2981    }
2982  });
2983  swiper.mousewheel = {
2984    enabled: false
2985  };
2986  let timeout;
2987  let lastScrollTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
2988  let lastEventBeforeSnap;
2989  const recentWheelEvents = [];
2990  function normalize(e) {
2991    // Reasonable defaults
2992    const PIXEL_STEP = 10;
2993    const LINE_HEIGHT = 40;
2994    const PAGE_HEIGHT = 800;
2995    let sX = 0;
2996    let sY = 0; // spinX, spinY
2997    let pX = 0;
2998    let pY = 0; // pixelX, pixelY
2999
3000    // Legacy
3001    if ('detail' in e) {
3002      sY = e.detail;
3003    }
3004    if ('wheelDelta' in e) {
3005      sY = -e.wheelDelta / 120;
3006    }
3007    if ('wheelDeltaY' in e) {
3008      sY = -e.wheelDeltaY / 120;
3009    }
3010    if ('wheelDeltaX' in e) {
3011      sX = -e.wheelDeltaX / 120;
3012    }
3013
3014    // side scrolling on FF with DOMMouseScroll
3015    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {
3016      sX = sY;
3017      sY = 0;
3018    }
3019    pX = sX * PIXEL_STEP;
3020    pY = sY * PIXEL_STEP;
3021    if ('deltaY' in e) {
3022      pY = e.deltaY;
3023    }
3024    if ('deltaX' in e) {
3025      pX = e.deltaX;
3026    }
3027    if (e.shiftKey && !pX) {
3028      // if user scrolls with shift he wants horizontal scroll
3029      pX = pY;
3030      pY = 0;
3031    }
3032    if ((pX || pY) && e.deltaMode) {
3033      if (e.deltaMode === 1) {
3034        // delta in LINE units
3035        pX *= LINE_HEIGHT;
3036        pY *= LINE_HEIGHT;
3037      } else {
3038        // delta in PAGE units
3039        pX *= PAGE_HEIGHT;
3040        pY *= PAGE_HEIGHT;
3041      }
3042    }
3043
3044    // Fall-back if spin cannot be determined
3045    if (pX && !sX) {
3046      sX = pX < 1 ? -1 : 1;
3047    }
3048    if (pY && !sY) {
3049      sY = pY < 1 ? -1 : 1;
3050    }
3051    return {
3052      spinX: sX,
3053      spinY: sY,
3054      pixelX: pX,
3055      pixelY: pY
3056    };
3057  }
3058  function handleMouseEnter() {
3059    if (!swiper.enabled) return;
3060    swiper.mouseEntered = true;
3061  }
3062  function handleMouseLeave() {
3063    if (!swiper.enabled) return;
3064    swiper.mouseEntered = false;
3065  }
3066  function animateSlider(newEvent) {
3067    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {
3068      // Prevent if delta of wheel scroll delta is below configured threshold
3069      return false;
3070    }
3071    if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {
3072      // Prevent if time between scrolls is below configured threshold
3073      return false;
3074    }
3075
3076    // If the movement is NOT big enough and
3077    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):
3078    //   Don't go any further (avoid insignificant scroll movement).
3079    if (newEvent.delta >= 6 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)() - lastScrollTime < 60) {
3080      // Return false as a default
3081      return true;
3082    }
3083    // If user is scrolling towards the end:
3084    //   If the slider hasn't hit the latest slide or
3085    //   if the slider is a loop and
3086    //   if the slider isn't moving right now:
3087    //     Go to next slide and
3088    //     emit a scroll event.
3089    // Else (the user is scrolling towards the beginning) and
3090    // if the slider hasn't hit the first slide or
3091    // if the slider is a loop and
3092    // if the slider isn't moving right now:
3093    //   Go to prev slide and
3094    //   emit a scroll event.
3095    if (newEvent.direction < 0) {
3096      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {
3097        swiper.slideNext();
3098        emit('scroll', newEvent.raw);
3099      }
3100    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {
3101      swiper.slidePrev();
3102      emit('scroll', newEvent.raw);
3103    }
3104    // If you got here is because an animation has been triggered so store the current time
3105    lastScrollTime = new window.Date().getTime();
3106    // Return false as a default
3107    return false;
3108  }
3109  function releaseScroll(newEvent) {
3110    const params = swiper.params.mousewheel;
3111    if (newEvent.direction < 0) {
3112      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {
3113        // Return true to animate scroll on edges
3114        return true;
3115      }
3116    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {
3117      // Return true to animate scroll on edges
3118      return true;
3119    }
3120    return false;
3121  }
3122  function handle(event) {
3123    let e = event;
3124    let disableParentSwiper = true;
3125    if (!swiper.enabled) return;
3126
3127    // Ignore event if the target or its parents have the swiper-no-mousewheel class
3128    if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;
3129    const params = swiper.params.mousewheel;
3130    if (swiper.params.cssMode) {
3131      e.preventDefault();
3132    }
3133    let targetEl = swiper.el;
3134    if (swiper.params.mousewheel.eventsTarget !== 'container') {
3135      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
3136    }
3137    const targetElContainsTarget = targetEl && targetEl.contains(e.target);
3138    if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;
3139    if (e.originalEvent) e = e.originalEvent; // jquery fix
3140    let delta = 0;
3141    const rtlFactor = swiper.rtlTranslate ? -1 : 1;
3142    const data = normalize(e);
3143    if (params.forceToAxis) {
3144      if (swiper.isHorizontal()) {
3145        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;
3146      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;
3147    } else {
3148      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;
3149    }
3150    if (delta === 0) return true;
3151    if (params.invert) delta = -delta;
3152
3153    // Get the scroll positions
3154    let positions = swiper.getTranslate() + delta * params.sensitivity;
3155    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();
3156    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();
3157
3158    // When loop is true:
3159    //     the disableParentSwiper will be true.
3160    // When loop is false:
3161    //     if the scroll positions is not on edge,
3162    //     then the disableParentSwiper will be true.
3163    //     if the scroll on edge positions,
3164    //     then the disableParentSwiper will be false.
3165    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());
3166    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();
3167    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {
3168      // Register the new event in a variable which stores the relevant data
3169      const newEvent = {
3170        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(),
3171        delta: Math.abs(delta),
3172        direction: Math.sign(delta),
3173        raw: event
3174      };
3175
3176      // Keep the most recent events
3177      if (recentWheelEvents.length >= 2) {
3178        recentWheelEvents.shift(); // only store the last N events
3179      }
3180
3181      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
3182      recentWheelEvents.push(newEvent);
3183
3184      // If there is at least one previous recorded event:
3185      //   If direction has changed or
3186      //   if the scroll is quicker than the previous one:
3187      //     Animate the slider.
3188      // Else (this is the first time the wheel is moved):
3189      //     Animate the slider.
3190      if (prevEvent) {
3191        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {
3192          animateSlider(newEvent);
3193        }
3194      } else {
3195        animateSlider(newEvent);
3196      }
3197
3198      // If it's time to release the scroll:
3199      //   Return now so you don't hit the preventDefault.
3200      if (releaseScroll(newEvent)) {
3201        return true;
3202      }
3203    } else {
3204      // Freemode or scrollContainer:
3205
3206      // If we recently snapped after a momentum scroll, then ignore wheel events
3207      // to give time for the deceleration to finish. Stop ignoring after 500 msecs
3208      // or if it's a new scroll (larger delta or inverse sign as last event before
3209      // an end-of-momentum snap).
3210      const newEvent = {
3211        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(),
3212        delta: Math.abs(delta),
3213        direction: Math.sign(delta)
3214      };
3215      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;
3216      if (!ignoreWheelEvents) {
3217        lastEventBeforeSnap = undefined;
3218        let position = swiper.getTranslate() + delta * params.sensitivity;
3219        const wasBeginning = swiper.isBeginning;
3220        const wasEnd = swiper.isEnd;
3221        if (position >= swiper.minTranslate()) position = swiper.minTranslate();
3222        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();
3223        swiper.setTransition(0);
3224        swiper.setTranslate(position);
3225        swiper.updateProgress();
3226        swiper.updateActiveIndex();
3227        swiper.updateSlidesClasses();
3228        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {
3229          swiper.updateSlidesClasses();
3230        }
3231        if (swiper.params.loop) {
3232          swiper.loopFix({
3233            direction: newEvent.direction < 0 ? 'next' : 'prev',
3234            byMousewheel: true
3235          });
3236        }
3237        if (swiper.params.freeMode.sticky) {
3238          // When wheel scrolling starts with sticky (aka snap) enabled, then detect
3239          // the end of a momentum scroll by storing recent (N=15?) wheel events.
3240          // 1. do all N events have decreasing or same (absolute value) delta?
3241          // 2. did all N events arrive in the last M (M=500?) msecs?
3242          // 3. does the earliest event have an (absolute value) delta that's
3243          //    at least P (P=1?) larger than the most recent event's delta?
3244          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?
3245          // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration.
3246          // Snap immediately and ignore remaining wheel events in this scroll.
3247          // See comment above for "remaining wheel events in this scroll" determination.
3248          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.
3249          clearTimeout(timeout);
3250          timeout = undefined;
3251          if (recentWheelEvents.length >= 15) {
3252            recentWheelEvents.shift(); // only store the last N events
3253          }
3254
3255          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
3256          const firstEvent = recentWheelEvents[0];
3257          recentWheelEvents.push(newEvent);
3258          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {
3259            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.
3260            recentWheelEvents.splice(0);
3261          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {
3262            // We're at the end of the deceleration of a momentum scroll, so there's no need
3263            // to wait for more events. Snap ASAP on the next tick.
3264            // Also, because there's some remaining momentum we'll bias the snap in the
3265            // direction of the ongoing scroll because it's better UX for the scroll to snap
3266            // in the same direction as the scroll instead of reversing to snap.  Therefore,
3267            // if it's already scrolled more than 20% in the current direction, keep going.
3268            const snapToThreshold = delta > 0 ? 0.8 : 0.2;
3269            lastEventBeforeSnap = newEvent;
3270            recentWheelEvents.splice(0);
3271            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
3272              if (swiper.destroyed || !swiper.params) return;
3273              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
3274            }, 0); // no delay; move on next tick
3275          }
3276
3277          if (!timeout) {
3278            // if we get here, then we haven't detected the end of a momentum scroll, so
3279            // we'll consider a scroll "complete" when there haven't been any wheel events
3280            // for 500ms.
3281            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
3282              if (swiper.destroyed || !swiper.params) return;
3283              const snapToThreshold = 0.5;
3284              lastEventBeforeSnap = newEvent;
3285              recentWheelEvents.splice(0);
3286              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
3287            }, 500);
3288          }
3289        }
3290
3291        // Emit event
3292        if (!ignoreWheelEvents) emit('scroll', e);
3293
3294        // Stop autoplay
3295        if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();
3296        // Return page scroll on edge positions
3297        if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {
3298          return true;
3299        }
3300      }
3301    }
3302    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
3303    return false;
3304  }
3305  function events(method) {
3306    let targetEl = swiper.el;
3307    if (swiper.params.mousewheel.eventsTarget !== 'container') {
3308      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
3309    }
3310    targetEl[method]('mouseenter', handleMouseEnter);
3311    targetEl[method]('mouseleave', handleMouseLeave);
3312    targetEl[method]('wheel', handle);
3313  }
3314  function enable() {
3315    if (swiper.params.cssMode) {
3316      swiper.wrapperEl.removeEventListener('wheel', handle);
3317      return true;
3318    }
3319    if (swiper.mousewheel.enabled) return false;
3320    events('addEventListener');
3321    swiper.mousewheel.enabled = true;
3322    return true;
3323  }
3324  function disable() {
3325    if (swiper.params.cssMode) {
3326      swiper.wrapperEl.addEventListener(event, handle);
3327      return true;
3328    }
3329    if (!swiper.mousewheel.enabled) return false;
3330    events('removeEventListener');
3331    swiper.mousewheel.enabled = false;
3332    return true;
3333  }
3334  on('init', () => {
3335    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {
3336      disable();
3337    }
3338    if (swiper.params.mousewheel.enabled) enable();
3339  });
3340  on('destroy', () => {
3341    if (swiper.params.cssMode) {
3342      enable();
3343    }
3344    if (swiper.mousewheel.enabled) disable();
3345  });
3346  Object.assign(swiper.mousewheel, {
3347    enable,
3348    disable
3349  });
3350}
3351
3352
3353
3354
3355/***/ }),
3356
vendor: 7,408 bytes, lines 3357-3572
3357/***/ "./node_modules/swiper/modules/navigation.mjs":
3358/*!****************************************************!*\
3359  !*** ./node_modules/swiper/modules/navigation.mjs ***!
3360  \****************************************************/
3361/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3362
3363__webpack_require__.r(__webpack_exports__);
3364/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3365/* harmony export */   "default": () => (/* binding */ Navigation)
3366/* harmony export */ });
3367/* 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");
3368/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3369
3370
3371
3372function Navigation(_ref) {
3373  let {
3374    swiper,
3375    extendParams,
3376    on,
3377    emit
3378  } = _ref;
3379  extendParams({
3380    navigation: {
3381      nextEl: null,
3382      prevEl: null,
3383      hideOnClick: false,
3384      disabledClass: 'swiper-button-disabled',
3385      hiddenClass: 'swiper-button-hidden',
3386      lockClass: 'swiper-button-lock',
3387      navigationDisabledClass: 'swiper-navigation-disabled'
3388    }
3389  });
3390  swiper.navigation = {
3391    nextEl: null,
3392    prevEl: null
3393  };
3394  function getEl(el) {
3395    let res;
3396    if (el && typeof el === 'string' && swiper.isElement) {
3397      res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);
3398      if (res) return res;
3399    }
3400    if (el) {
3401      if (typeof el === 'string') res = [...document.querySelectorAll(el)];
3402      if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {
3403        res = swiper.el.querySelector(el);
3404      } else if (res && res.length === 1) {
3405        res = res[0];
3406      }
3407    }
3408    if (el && !res) return el;
3409    // if (Array.isArray(res) && res.length === 1) res = res[0];
3410    return res;
3411  }
3412  function toggleEl(el, disabled) {
3413    const params = swiper.params.navigation;
3414    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
3415    el.forEach(subEl => {
3416      if (subEl) {
3417        subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));
3418        if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;
3419        if (swiper.params.watchOverflow && swiper.enabled) {
3420          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
3421        }
3422      }
3423    });
3424  }
3425  function update() {
3426    // Update Navigation Buttons
3427    const {
3428      nextEl,
3429      prevEl
3430    } = swiper.navigation;
3431    if (swiper.params.loop) {
3432      toggleEl(prevEl, false);
3433      toggleEl(nextEl, false);
3434      return;
3435    }
3436    toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);
3437    toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);
3438  }
3439  function onPrevClick(e) {
3440    e.preventDefault();
3441    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
3442    swiper.slidePrev();
3443    emit('navigationPrev');
3444  }
3445  function onNextClick(e) {
3446    e.preventDefault();
3447    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
3448    swiper.slideNext();
3449    emit('navigationNext');
3450  }
3451  function init() {
3452    const params = swiper.params.navigation;
3453    swiper.params.navigation = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
3454      nextEl: 'swiper-button-next',
3455      prevEl: 'swiper-button-prev'
3456    });
3457    if (!(params.nextEl || params.prevEl)) return;
3458    let nextEl = getEl(params.nextEl);
3459    let prevEl = getEl(params.prevEl);
3460    Object.assign(swiper.navigation, {
3461      nextEl,
3462      prevEl
3463    });
3464    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3465    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3466    const initButton = (el, dir) => {
3467      if (el) {
3468        el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
3469      }
3470      if (!swiper.enabled && el) {
3471        el.classList.add(...params.lockClass.split(' '));
3472      }
3473    };
3474    nextEl.forEach(el => initButton(el, 'next'));
3475    prevEl.forEach(el => initButton(el, 'prev'));
3476  }
3477  function destroy() {
3478    let {
3479      nextEl,
3480      prevEl
3481    } = swiper.navigation;
3482    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3483    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3484    const destroyButton = (el, dir) => {
3485      el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
3486      el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));
3487    };
3488    nextEl.forEach(el => destroyButton(el, 'next'));
3489    prevEl.forEach(el => destroyButton(el, 'prev'));
3490  }
3491  on('init', () => {
3492    if (swiper.params.navigation.enabled === false) {
3493      // eslint-disable-next-line
3494      disable();
3495    } else {
3496      init();
3497      update();
3498    }
3499  });
3500  on('toEdge fromEdge lock unlock', () => {
3501    update();
3502  });
3503  on('destroy', () => {
3504    destroy();
3505  });
3506  on('enable disable', () => {
3507    let {
3508      nextEl,
3509      prevEl
3510    } = swiper.navigation;
3511    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3512    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3513    if (swiper.enabled) {
3514      update();
3515      return;
3516    }
3517    [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));
3518  });
3519  on('click', (_s, e) => {
3520    let {
3521      nextEl,
3522      prevEl
3523    } = swiper.navigation;
3524    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3525    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3526    const targetEl = e.target;
3527    let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);
3528    if (swiper.isElement && !targetIsButton) {
3529      const path = e.path || e.composedPath && e.composedPath();
3530      if (path) {
3531        targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));
3532      }
3533    }
3534    if (swiper.params.navigation.hideOnClick && !targetIsButton) {
3535      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;
3536      let isHidden;
3537      if (nextEl.length) {
3538        isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);
3539      } else if (prevEl.length) {
3540        isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);
3541      }
3542      if (isHidden === true) {
3543        emit('navigationShow');
3544      } else {
3545        emit('navigationHide');
3546      }
3547      [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));
3548    }
3549  });
3550  const enable = () => {
3551    swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));
3552    init();
3553    update();
3554  };
3555  const disable = () => {
3556    swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));
3557    destroy();
3558  };
3559  Object.assign(swiper.navigation, {
3560    enable,
3561    disable,
3562    update,
3563    init,
3564    destroy
3565  });
3566}
3567
3568
3569
3570
3571/***/ }),
3572
vendor: 19,040 bytes, lines 3573-4049
3573/***/ "./node_modules/swiper/modules/pagination.mjs":
3574/*!****************************************************!*\
3575  !*** ./node_modules/swiper/modules/pagination.mjs ***!
3576  \****************************************************/
3577/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3578
3579__webpack_require__.r(__webpack_exports__);
3580/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3581/* harmony export */   "default": () => (/* binding */ Pagination)
3582/* harmony export */ });
3583/* 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");
3584/* 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");
3585/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3586
3587
3588
3589
3590function Pagination(_ref) {
3591  let {
3592    swiper,
3593    extendParams,
3594    on,
3595    emit
3596  } = _ref;
3597  const pfx = 'swiper-pagination';
3598  extendParams({
3599    pagination: {
3600      el: null,
3601      bulletElement: 'span',
3602      clickable: false,
3603      hideOnClick: false,
3604      renderBullet: null,
3605      renderProgressbar: null,
3606      renderFraction: null,
3607      renderCustom: null,
3608      progressbarOpposite: false,
3609      type: 'bullets',
3610      // 'bullets' or 'progressbar' or 'fraction' or 'custom'
3611      dynamicBullets: false,
3612      dynamicMainBullets: 1,
3613      formatFractionCurrent: number => number,
3614      formatFractionTotal: number => number,
3615      bulletClass: `${pfx}-bullet`,
3616      bulletActiveClass: `${pfx}-bullet-active`,
3617      modifierClass: `${pfx}-`,
3618      currentClass: `${pfx}-current`,
3619      totalClass: `${pfx}-total`,
3620      hiddenClass: `${pfx}-hidden`,
3621      progressbarFillClass: `${pfx}-progressbar-fill`,
3622      progressbarOppositeClass: `${pfx}-progressbar-opposite`,
3623      clickableClass: `${pfx}-clickable`,
3624      lockClass: `${pfx}-lock`,
3625      horizontalClass: `${pfx}-horizontal`,
3626      verticalClass: `${pfx}-vertical`,
3627      paginationDisabledClass: `${pfx}-disabled`
3628    }
3629  });
3630  swiper.pagination = {
3631    el: null,
3632    bullets: []
3633  };
3634  let bulletSize;
3635  let dynamicBulletIndex = 0;
3636  function isPaginationDisabled() {
3637    return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;
3638  }
3639  function setSideBullets(bulletEl, position) {
3640    const {
3641      bulletActiveClass
3642    } = swiper.params.pagination;
3643    if (!bulletEl) return;
3644    bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
3645    if (bulletEl) {
3646      bulletEl.classList.add(`${bulletActiveClass}-${position}`);
3647      bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
3648      if (bulletEl) {
3649        bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);
3650      }
3651    }
3652  }
3653  function getMoveDirection(prevIndex, nextIndex, length) {
3654    prevIndex = prevIndex % length;
3655    nextIndex = nextIndex % length;
3656    if (nextIndex === prevIndex + 1) {
3657      return 'next';
3658    } else if (nextIndex === prevIndex - 1) {
3659      return 'previous';
3660    }
3661    return;
3662  }
3663  function onBulletClick(e) {
3664    const bulletEl = e.target.closest((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletClass));
3665    if (!bulletEl) {
3666      return;
3667    }
3668    e.preventDefault();
3669    const index = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bulletEl) * swiper.params.slidesPerGroup;
3670    if (swiper.params.loop) {
3671      if (swiper.realIndex === index) return;
3672      const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);
3673      if (moveDirection === 'next') {
3674        swiper.slideNext();
3675      } else if (moveDirection === 'previous') {
3676        swiper.slidePrev();
3677      } else {
3678        swiper.slideToLoop(index);
3679      }
3680    } else {
3681      swiper.slideTo(index);
3682    }
3683  }
3684  function update() {
3685    // Render || Update Pagination bullets/items
3686    const rtl = swiper.rtl;
3687    const params = swiper.params.pagination;
3688    if (isPaginationDisabled()) return;
3689    let el = swiper.pagination.el;
3690    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3691    // Current/Total
3692    let current;
3693    let previousIndex;
3694    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
3695    const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
3696    if (swiper.params.loop) {
3697      previousIndex = swiper.previousRealIndex || 0;
3698      current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
3699    } else if (typeof swiper.snapIndex !== 'undefined') {
3700      current = swiper.snapIndex;
3701      previousIndex = swiper.previousSnapIndex;
3702    } else {
3703      previousIndex = swiper.previousIndex || 0;
3704      current = swiper.activeIndex || 0;
3705    }
3706    // Types
3707    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
3708      const bullets = swiper.pagination.bullets;
3709      let firstIndex;
3710      let lastIndex;
3711      let midIndex;
3712      if (params.dynamicBullets) {
3713        bulletSize = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.f)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);
3714        el.forEach(subEl => {
3715          subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
3716        });
3717        if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
3718          dynamicBulletIndex += current - (previousIndex || 0);
3719          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
3720            dynamicBulletIndex = params.dynamicMainBullets - 1;
3721          } else if (dynamicBulletIndex < 0) {
3722            dynamicBulletIndex = 0;
3723          }
3724        }
3725        firstIndex = Math.max(current - dynamicBulletIndex, 0);
3726        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
3727        midIndex = (lastIndex + firstIndex) / 2;
3728      }
3729      bullets.forEach(bulletEl => {
3730        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();
3731        bulletEl.classList.remove(...classesToRemove);
3732      });
3733      if (el.length > 1) {
3734        bullets.forEach(bullet => {
3735          const bulletIndex = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bullet);
3736          if (bulletIndex === current) {
3737            bullet.classList.add(...params.bulletActiveClass.split(' '));
3738          } else if (swiper.isElement) {
3739            bullet.setAttribute('part', 'bullet');
3740          }
3741          if (params.dynamicBullets) {
3742            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
3743              bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));
3744            }
3745            if (bulletIndex === firstIndex) {
3746              setSideBullets(bullet, 'prev');
3747            }
3748            if (bulletIndex === lastIndex) {
3749              setSideBullets(bullet, 'next');
3750            }
3751          }
3752        });
3753      } else {
3754        const bullet = bullets[current];
3755        if (bullet) {
3756          bullet.classList.add(...params.bulletActiveClass.split(' '));
3757        }
3758        if (swiper.isElement) {
3759          bullets.forEach((bulletEl, bulletIndex) => {
3760            bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
3761          });
3762        }
3763        if (params.dynamicBullets) {
3764          const firstDisplayedBullet = bullets[firstIndex];
3765          const lastDisplayedBullet = bullets[lastIndex];
3766          for (let i = firstIndex; i <= lastIndex; i += 1) {
3767            if (bullets[i]) {
3768              bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));
3769            }
3770          }
3771          setSideBullets(firstDisplayedBullet, 'prev');
3772          setSideBullets(lastDisplayedBullet, 'next');
3773        }
3774      }
3775      if (params.dynamicBullets) {
3776        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
3777        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
3778        const offsetProp = rtl ? 'right' : 'left';
3779        bullets.forEach(bullet => {
3780          bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;
3781        });
3782      }
3783    }
3784    el.forEach((subEl, subElIndex) => {
3785      if (params.type === 'fraction') {
3786        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.currentClass)).forEach(fractionEl => {
3787          fractionEl.textContent = params.formatFractionCurrent(current + 1);
3788        });
3789        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.totalClass)).forEach(totalEl => {
3790          totalEl.textContent = params.formatFractionTotal(total);
3791        });
3792      }
3793      if (params.type === 'progressbar') {
3794        let progressbarDirection;
3795        if (params.progressbarOpposite) {
3796          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
3797        } else {
3798          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
3799        }
3800        const scale = (current + 1) / total;
3801        let scaleX = 1;
3802        let scaleY = 1;
3803        if (progressbarDirection === 'horizontal') {
3804          scaleX = scale;
3805        } else {
3806          scaleY = scale;
3807        }
3808        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.progressbarFillClass)).forEach(progressEl => {
3809          progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;
3810          progressEl.style.transitionDuration = `${swiper.params.speed}ms`;
3811        });
3812      }
3813      if (params.type === 'custom' && params.renderCustom) {
3814        subEl.innerHTML = params.renderCustom(swiper, current + 1, total);
3815        if (subElIndex === 0) emit('paginationRender', subEl);
3816      } else {
3817        if (subElIndex === 0) emit('paginationRender', subEl);
3818        emit('paginationUpdate', subEl);
3819      }
3820      if (swiper.params.watchOverflow && swiper.enabled) {
3821        subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
3822      }
3823    });
3824  }
3825  function render() {
3826    // Render Container
3827    const params = swiper.params.pagination;
3828    if (isPaginationDisabled()) return;
3829    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;
3830    let el = swiper.pagination.el;
3831    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3832    let paginationHTML = '';
3833    if (params.type === 'bullets') {
3834      let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
3835      if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {
3836        numberOfBullets = slidesLength;
3837      }
3838      for (let i = 0; i < numberOfBullets; i += 1) {
3839        if (params.renderBullet) {
3840          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
3841        } else {
3842          // prettier-ignore
3843          paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
3844        }
3845      }
3846    }
3847    if (params.type === 'fraction') {
3848      if (params.renderFraction) {
3849        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
3850      } else {
3851        paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
3852      }
3853    }
3854    if (params.type === 'progressbar') {
3855      if (params.renderProgressbar) {
3856        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
3857      } else {
3858        paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
3859      }
3860    }
3861    swiper.pagination.bullets = [];
3862    el.forEach(subEl => {
3863      if (params.type !== 'custom') {
3864        subEl.innerHTML = paginationHTML || '';
3865      }
3866      if (params.type === 'bullets') {
3867        swiper.pagination.bullets.push(...subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.bulletClass)));
3868      }
3869    });
3870    if (params.type !== 'custom') {
3871      emit('paginationRender', el[0]);
3872    }
3873  }
3874  function init() {
3875    swiper.params.pagination = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
3876      el: 'swiper-pagination'
3877    });
3878    const params = swiper.params.pagination;
3879    if (!params.el) return;
3880    let el;
3881    if (typeof params.el === 'string' && swiper.isElement) {
3882      el = swiper.el.querySelector(params.el);
3883    }
3884    if (!el && typeof params.el === 'string') {
3885      el = [...document.querySelectorAll(params.el)];
3886    }
3887    if (!el) {
3888      el = params.el;
3889    }
3890    if (!el || el.length === 0) return;
3891    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {
3892      el = [...swiper.el.querySelectorAll(params.el)];
3893      // check if it belongs to another nested Swiper
3894      if (el.length > 1) {
3895        el = el.filter(subEl => {
3896          if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.a)(subEl, '.swiper')[0] !== swiper.el) return false;
3897          return true;
3898        })[0];
3899      }
3900    }
3901    if (Array.isArray(el) && el.length === 1) el = el[0];
3902    Object.assign(swiper.pagination, {
3903      el
3904    });
3905    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3906    el.forEach(subEl => {
3907      if (params.type === 'bullets' && params.clickable) {
3908        subEl.classList.add(...(params.clickableClass || '').split(' '));
3909      }
3910      subEl.classList.add(params.modifierClass + params.type);
3911      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
3912      if (params.type === 'bullets' && params.dynamicBullets) {
3913        subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);
3914        dynamicBulletIndex = 0;
3915        if (params.dynamicMainBullets < 1) {
3916          params.dynamicMainBullets = 1;
3917        }
3918      }
3919      if (params.type === 'progressbar' && params.progressbarOpposite) {
3920        subEl.classList.add(params.progressbarOppositeClass);
3921      }
3922      if (params.clickable) {
3923        subEl.addEventListener('click', onBulletClick);
3924      }
3925      if (!swiper.enabled) {
3926        subEl.classList.add(params.lockClass);
3927      }
3928    });
3929  }
3930  function destroy() {
3931    const params = swiper.params.pagination;
3932    if (isPaginationDisabled()) return;
3933    let el = swiper.pagination.el;
3934    if (el) {
3935      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3936      el.forEach(subEl => {
3937        subEl.classList.remove(params.hiddenClass);
3938        subEl.classList.remove(params.modifierClass + params.type);
3939        subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
3940        if (params.clickable) {
3941          subEl.classList.remove(...(params.clickableClass || '').split(' '));
3942          subEl.removeEventListener('click', onBulletClick);
3943        }
3944      });
3945    }
3946    if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
3947  }
3948  on('changeDirection', () => {
3949    if (!swiper.pagination || !swiper.pagination.el) return;
3950    const params = swiper.params.pagination;
3951    let {
3952      el
3953    } = swiper.pagination;
3954    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3955    el.forEach(subEl => {
3956      subEl.classList.remove(params.horizontalClass, params.verticalClass);
3957      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
3958    });
3959  });
3960  on('init', () => {
3961    if (swiper.params.pagination.enabled === false) {
3962      // eslint-disable-next-line
3963      disable();
3964    } else {
3965      init();
3966      render();
3967      update();
3968    }
3969  });
3970  on('activeIndexChange', () => {
3971    if (typeof swiper.snapIndex === 'undefined') {
3972      update();
3973    }
3974  });
3975  on('snapIndexChange', () => {
3976    update();
3977  });
3978  on('snapGridLengthChange', () => {
3979    render();
3980    update();
3981  });
3982  on('destroy', () => {
3983    destroy();
3984  });
3985  on('enable disable', () => {
3986    let {
3987      el
3988    } = swiper.pagination;
3989    if (el) {
3990      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3991      el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));
3992    }
3993  });
3994  on('lock unlock', () => {
3995    update();
3996  });
3997  on('click', (_s, e) => {
3998    const targetEl = e.target;
3999    const el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
4000    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
4001      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
4002      const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
4003      if (isHidden === true) {
4004        emit('paginationShow');
4005      } else {
4006        emit('paginationHide');
4007      }
4008      el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));
4009    }
4010  });
4011  const enable = () => {
4012    swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);
4013    let {
4014      el
4015    } = swiper.pagination;
4016    if (el) {
4017      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4018      el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));
4019    }
4020    init();
4021    render();
4022    update();
4023  };
4024  const disable = () => {
4025    swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);
4026    let {
4027      el
4028    } = swiper.pagination;
4029    if (el) {
4030      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4031      el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
4032    }
4033    destroy();
4034  };
4035  Object.assign(swiper.pagination, {
4036    enable,
4037    disable,
4038    render,
4039    update,
4040    init,
4041    destroy
4042  });
4043}
4044
4045
4046
4047
4048/***/ }),
4049
vendor: 4,684 bytes, lines 4050-4188
4050/***/ "./node_modules/swiper/modules/parallax.mjs":
4051/*!**************************************************!*\
4052  !*** ./node_modules/swiper/modules/parallax.mjs ***!
4053  \**************************************************/
4054/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4055
4056__webpack_require__.r(__webpack_exports__);
4057/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4058/* harmony export */   "default": () => (/* binding */ Parallax)
4059/* harmony export */ });
4060/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4061
4062
4063function Parallax(_ref) {
4064  let {
4065    swiper,
4066    extendParams,
4067    on
4068  } = _ref;
4069  extendParams({
4070    parallax: {
4071      enabled: false
4072    }
4073  });
4074  const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';
4075  const setTransform = (el, progress) => {
4076    const {
4077      rtl
4078    } = swiper;
4079    const rtlFactor = rtl ? -1 : 1;
4080    const p = el.getAttribute('data-swiper-parallax') || '0';
4081    let x = el.getAttribute('data-swiper-parallax-x');
4082    let y = el.getAttribute('data-swiper-parallax-y');
4083    const scale = el.getAttribute('data-swiper-parallax-scale');
4084    const opacity = el.getAttribute('data-swiper-parallax-opacity');
4085    const rotate = el.getAttribute('data-swiper-parallax-rotate');
4086    if (x || y) {
4087      x = x || '0';
4088      y = y || '0';
4089    } else if (swiper.isHorizontal()) {
4090      x = p;
4091      y = '0';
4092    } else {
4093      y = p;
4094      x = '0';
4095    }
4096    if (x.indexOf('%') >= 0) {
4097      x = `${parseInt(x, 10) * progress * rtlFactor}%`;
4098    } else {
4099      x = `${x * progress * rtlFactor}px`;
4100    }
4101    if (y.indexOf('%') >= 0) {
4102      y = `${parseInt(y, 10) * progress}%`;
4103    } else {
4104      y = `${y * progress}px`;
4105    }
4106    if (typeof opacity !== 'undefined' && opacity !== null) {
4107      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
4108      el.style.opacity = currentOpacity;
4109    }
4110    let transform = `translate3d(${x}, ${y}, 0px)`;
4111    if (typeof scale !== 'undefined' && scale !== null) {
4112      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
4113      transform += ` scale(${currentScale})`;
4114    }
4115    if (rotate && typeof rotate !== 'undefined' && rotate !== null) {
4116      const currentRotate = rotate * progress * -1;
4117      transform += ` rotate(${currentRotate}deg)`;
4118    }
4119    el.style.transform = transform;
4120  };
4121  const setTranslate = () => {
4122    const {
4123      el,
4124      slides,
4125      progress,
4126      snapGrid,
4127      isElement
4128    } = swiper;
4129    const elements = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(el, elementsSelector);
4130    if (swiper.isElement) {
4131      elements.push(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.hostEl, elementsSelector));
4132    }
4133    elements.forEach(subEl => {
4134      setTransform(subEl, progress);
4135    });
4136    slides.forEach((slideEl, slideIndex) => {
4137      let slideProgress = slideEl.progress;
4138      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
4139        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
4140      }
4141      slideProgress = Math.min(Math.max(slideProgress, -1), 1);
4142      slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {
4143        setTransform(subEl, slideProgress);
4144      });
4145    });
4146  };
4147  const setTransition = function (duration) {
4148    if (duration === void 0) {
4149      duration = swiper.params.speed;
4150    }
4151    const {
4152      el,
4153      hostEl
4154    } = swiper;
4155    const elements = [...el.querySelectorAll(elementsSelector)];
4156    if (swiper.isElement) {
4157      elements.push(...hostEl.querySelectorAll(elementsSelector));
4158    }
4159    elements.forEach(parallaxEl => {
4160      let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;
4161      if (duration === 0) parallaxDuration = 0;
4162      parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;
4163    });
4164  };
4165  on('beforeInit', () => {
4166    if (!swiper.params.parallax.enabled) return;
4167    swiper.params.watchSlidesProgress = true;
4168    swiper.originalParams.watchSlidesProgress = true;
4169  });
4170  on('init', () => {
4171    if (!swiper.params.parallax.enabled) return;
4172    setTranslate();
4173  });
4174  on('setTranslate', () => {
4175    if (!swiper.params.parallax.enabled) return;
4176    setTranslate();
4177  });
4178  on('setTransition', (_swiper, duration) => {
4179    if (!swiper.params.parallax.enabled) return;
4180    setTransition(duration);
4181  });
4182}
4183
4184
4185
4186
4187/***/ }),
4188
vendor: 12,517 bytes, lines 4189-4572
4189/***/ "./node_modules/swiper/modules/scrollbar.mjs":
4190/*!***************************************************!*\
4191  !*** ./node_modules/swiper/modules/scrollbar.mjs ***!
4192  \***************************************************/
4193/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4194
4195__webpack_require__.r(__webpack_exports__);
4196/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4197/* harmony export */   "default": () => (/* binding */ Scrollbar)
4198/* harmony export */ });
4199/* 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");
4200/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4201/* 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");
4202/* 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");
4203
4204
4205
4206
4207
4208function Scrollbar(_ref) {
4209  let {
4210    swiper,
4211    extendParams,
4212    on,
4213    emit
4214  } = _ref;
4215  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4216  let isTouched = false;
4217  let timeout = null;
4218  let dragTimeout = null;
4219  let dragStartPos;
4220  let dragSize;
4221  let trackSize;
4222  let divider;
4223  extendParams({
4224    scrollbar: {
4225      el: null,
4226      dragSize: 'auto',
4227      hide: false,
4228      draggable: false,
4229      snapOnRelease: true,
4230      lockClass: 'swiper-scrollbar-lock',
4231      dragClass: 'swiper-scrollbar-drag',
4232      scrollbarDisabledClass: 'swiper-scrollbar-disabled',
4233      horizontalClass: `swiper-scrollbar-horizontal`,
4234      verticalClass: `swiper-scrollbar-vertical`
4235    }
4236  });
4237  swiper.scrollbar = {
4238    el: null,
4239    dragEl: null
4240  };
4241  function setTranslate() {
4242    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4243    const {
4244      scrollbar,
4245      rtlTranslate: rtl
4246    } = swiper;
4247    const {
4248      dragEl,
4249      el
4250    } = scrollbar;
4251    const params = swiper.params.scrollbar;
4252    const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;
4253    let newSize = dragSize;
4254    let newPos = (trackSize - dragSize) * progress;
4255    if (rtl) {
4256      newPos = -newPos;
4257      if (newPos > 0) {
4258        newSize = dragSize - newPos;
4259        newPos = 0;
4260      } else if (-newPos + dragSize > trackSize) {
4261        newSize = trackSize + newPos;
4262      }
4263    } else if (newPos < 0) {
4264      newSize = dragSize + newPos;
4265      newPos = 0;
4266    } else if (newPos + dragSize > trackSize) {
4267      newSize = trackSize - newPos;
4268    }
4269    if (swiper.isHorizontal()) {
4270      dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;
4271      dragEl.style.width = `${newSize}px`;
4272    } else {
4273      dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;
4274      dragEl.style.height = `${newSize}px`;
4275    }
4276    if (params.hide) {
4277      clearTimeout(timeout);
4278      el.style.opacity = 1;
4279      timeout = setTimeout(() => {
4280        el.style.opacity = 0;
4281        el.style.transitionDuration = '400ms';
4282      }, 1000);
4283    }
4284  }
4285  function setTransition(duration) {
4286    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4287    swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;
4288  }
4289  function updateSize() {
4290    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4291    const {
4292      scrollbar
4293    } = swiper;
4294    const {
4295      dragEl,
4296      el
4297    } = scrollbar;
4298    dragEl.style.width = '';
4299    dragEl.style.height = '';
4300    trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;
4301    divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));
4302    if (swiper.params.scrollbar.dragSize === 'auto') {
4303      dragSize = trackSize * divider;
4304    } else {
4305      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
4306    }
4307    if (swiper.isHorizontal()) {
4308      dragEl.style.width = `${dragSize}px`;
4309    } else {
4310      dragEl.style.height = `${dragSize}px`;
4311    }
4312    if (divider >= 1) {
4313      el.style.display = 'none';
4314    } else {
4315      el.style.display = '';
4316    }
4317    if (swiper.params.scrollbar.hide) {
4318      el.style.opacity = 0;
4319    }
4320    if (swiper.params.watchOverflow && swiper.enabled) {
4321      scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);
4322    }
4323  }
4324  function getPointerPosition(e) {
4325    return swiper.isHorizontal() ? e.clientX : e.clientY;
4326  }
4327  function setDragPosition(e) {
4328    const {
4329      scrollbar,
4330      rtlTranslate: rtl
4331    } = swiper;
4332    const {
4333      el
4334    } = scrollbar;
4335    let positionRatio;
4336    positionRatio = (getPointerPosition(e) - (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
4337    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
4338    if (rtl) {
4339      positionRatio = 1 - positionRatio;
4340    }
4341    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
4342    swiper.updateProgress(position);
4343    swiper.setTranslate(position);
4344    swiper.updateActiveIndex();
4345    swiper.updateSlidesClasses();
4346  }
4347  function onDragStart(e) {
4348    const params = swiper.params.scrollbar;
4349    const {
4350      scrollbar,
4351      wrapperEl
4352    } = swiper;
4353    const {
4354      el,
4355      dragEl
4356    } = scrollbar;
4357    isTouched = true;
4358    dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
4359    e.preventDefault();
4360    e.stopPropagation();
4361    wrapperEl.style.transitionDuration = '100ms';
4362    dragEl.style.transitionDuration = '100ms';
4363    setDragPosition(e);
4364    clearTimeout(dragTimeout);
4365    el.style.transitionDuration = '0ms';
4366    if (params.hide) {
4367      el.style.opacity = 1;
4368    }
4369    if (swiper.params.cssMode) {
4370      swiper.wrapperEl.style['scroll-snap-type'] = 'none';
4371    }
4372    emit('scrollbarDragStart', e);
4373  }
4374  function onDragMove(e) {
4375    const {
4376      scrollbar,
4377      wrapperEl
4378    } = swiper;
4379    const {
4380      el,
4381      dragEl
4382    } = scrollbar;
4383    if (!isTouched) return;
4384    if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;
4385    setDragPosition(e);
4386    wrapperEl.style.transitionDuration = '0ms';
4387    el.style.transitionDuration = '0ms';
4388    dragEl.style.transitionDuration = '0ms';
4389    emit('scrollbarDragMove', e);
4390  }
4391  function onDragEnd(e) {
4392    const params = swiper.params.scrollbar;
4393    const {
4394      scrollbar,
4395      wrapperEl
4396    } = swiper;
4397    const {
4398      el
4399    } = scrollbar;
4400    if (!isTouched) return;
4401    isTouched = false;
4402    if (swiper.params.cssMode) {
4403      swiper.wrapperEl.style['scroll-snap-type'] = '';
4404      wrapperEl.style.transitionDuration = '';
4405    }
4406    if (params.hide) {
4407      clearTimeout(dragTimeout);
4408      dragTimeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
4409        el.style.opacity = 0;
4410        el.style.transitionDuration = '400ms';
4411      }, 1000);
4412    }
4413    emit('scrollbarDragEnd', e);
4414    if (params.snapOnRelease) {
4415      swiper.slideToClosest();
4416    }
4417  }
4418  function events(method) {
4419    const {
4420      scrollbar,
4421      params
4422    } = swiper;
4423    const el = scrollbar.el;
4424    if (!el) return;
4425    const target = el;
4426    const activeListener = params.passiveListeners ? {
4427      passive: false,
4428      capture: false
4429    } : false;
4430    const passiveListener = params.passiveListeners ? {
4431      passive: true,
4432      capture: false
4433    } : false;
4434    if (!target) return;
4435    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
4436    target[eventMethod]('pointerdown', onDragStart, activeListener);
4437    document[eventMethod]('pointermove', onDragMove, activeListener);
4438    document[eventMethod]('pointerup', onDragEnd, passiveListener);
4439  }
4440  function enableDraggable() {
4441    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4442    events('on');
4443  }
4444  function disableDraggable() {
4445    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4446    events('off');
4447  }
4448  function init() {
4449    const {
4450      scrollbar,
4451      el: swiperEl
4452    } = swiper;
4453    swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.c)(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
4454      el: 'swiper-scrollbar'
4455    });
4456    const params = swiper.params.scrollbar;
4457    if (!params.el) return;
4458    let el;
4459    if (typeof params.el === 'string' && swiper.isElement) {
4460      el = swiper.el.querySelector(params.el);
4461    }
4462    if (!el && typeof params.el === 'string') {
4463      el = document.querySelectorAll(params.el);
4464      if (!el.length) return;
4465    } else if (!el) {
4466      el = params.el;
4467    }
4468    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {
4469      el = swiperEl.querySelector(params.el);
4470    }
4471    if (el.length > 0) el = el[0];
4472    el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4473    let dragEl;
4474    if (el) {
4475      dragEl = el.querySelector((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_3__.c)(swiper.params.scrollbar.dragClass));
4476      if (!dragEl) {
4477        dragEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.scrollbar.dragClass);
4478        el.append(dragEl);
4479      }
4480    }
4481    Object.assign(scrollbar, {
4482      el,
4483      dragEl
4484    });
4485    if (params.draggable) {
4486      enableDraggable();
4487    }
4488    if (el) {
4489      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.lockClass));
4490    }
4491  }
4492  function destroy() {
4493    const params = swiper.params.scrollbar;
4494    const el = swiper.scrollbar.el;
4495    if (el) {
4496      el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));
4497    }
4498    disableDraggable();
4499  }
4500  on('changeDirection', () => {
4501    if (!swiper.scrollbar || !swiper.scrollbar.el) return;
4502    const params = swiper.params.scrollbar;
4503    let {
4504      el
4505    } = swiper.scrollbar;
4506    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
4507    el.forEach(subEl => {
4508      subEl.classList.remove(params.horizontalClass, params.verticalClass);
4509      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4510    });
4511  });
4512  on('init', () => {
4513    if (swiper.params.scrollbar.enabled === false) {
4514      // eslint-disable-next-line
4515      disable();
4516    } else {
4517      init();
4518      updateSize();
4519      setTranslate();
4520    }
4521  });
4522  on('update resize observerUpdate lock unlock changeDirection', () => {
4523    updateSize();
4524  });
4525  on('setTranslate', () => {
4526    setTranslate();
4527  });
4528  on('setTransition', (_s, duration) => {
4529    setTransition(duration);
4530  });
4531  on('enable disable', () => {
4532    const {
4533      el
4534    } = swiper.scrollbar;
4535    if (el) {
4536      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.lockClass));
4537    }
4538  });
4539  on('destroy', () => {
4540    destroy();
4541  });
4542  const enable = () => {
4543    swiper.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
4544    if (swiper.scrollbar.el) {
4545      swiper.scrollbar.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
4546    }
4547    init();
4548    updateSize();
4549    setTranslate();
4550  };
4551  const disable = () => {
4552    swiper.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
4553    if (swiper.scrollbar.el) {
4554      swiper.scrollbar.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
4555    }
4556    destroy();
4557  };
4558  Object.assign(swiper.scrollbar, {
4559    enable,
4560    disable,
4561    updateSize,
4562    setTranslate,
4563    init,
4564    destroy
4565  });
4566}
4567
4568
4569
4570
4571/***/ }),
4572
vendor: 8,082 bytes, lines 4573-4781
4573/***/ "./node_modules/swiper/modules/thumbs.mjs":
4574/*!************************************************!*\
4575  !*** ./node_modules/swiper/modules/thumbs.mjs ***!
4576  \************************************************/
4577/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4578
4579__webpack_require__.r(__webpack_exports__);
4580/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4581/* harmony export */   "default": () => (/* binding */ Thumb)
4582/* harmony export */ });
4583/* 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");
4584/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4585
4586
4587
4588function Thumb(_ref) {
4589  let {
4590    swiper,
4591    extendParams,
4592    on
4593  } = _ref;
4594  extendParams({
4595    thumbs: {
4596      swiper: null,
4597      multipleActiveThumbs: true,
4598      autoScrollOffset: 0,
4599      slideThumbActiveClass: 'swiper-slide-thumb-active',
4600      thumbsContainerClass: 'swiper-thumbs'
4601    }
4602  });
4603  let initialized = false;
4604  let swiperCreated = false;
4605  swiper.thumbs = {
4606    swiper: null
4607  };
4608  function onThumbClick() {
4609    const thumbsSwiper = swiper.thumbs.swiper;
4610    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4611    const clickedIndex = thumbsSwiper.clickedIndex;
4612    const clickedSlide = thumbsSwiper.clickedSlide;
4613    if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;
4614    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;
4615    let slideToIndex;
4616    if (thumbsSwiper.params.loop) {
4617      slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
4618    } else {
4619      slideToIndex = clickedIndex;
4620    }
4621    if (swiper.params.loop) {
4622      swiper.slideToLoop(slideToIndex);
4623    } else {
4624      swiper.slideTo(slideToIndex);
4625    }
4626  }
4627  function init() {
4628    const {
4629      thumbs: thumbsParams
4630    } = swiper.params;
4631    if (initialized) return false;
4632    initialized = true;
4633    const SwiperClass = swiper.constructor;
4634    if (thumbsParams.swiper instanceof SwiperClass) {
4635      swiper.thumbs.swiper = thumbsParams.swiper;
4636      Object.assign(swiper.thumbs.swiper.originalParams, {
4637        watchSlidesProgress: true,
4638        slideToClickedSlide: false
4639      });
4640      Object.assign(swiper.thumbs.swiper.params, {
4641        watchSlidesProgress: true,
4642        slideToClickedSlide: false
4643      });
4644      swiper.thumbs.swiper.update();
4645    } else if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.l)(thumbsParams.swiper)) {
4646      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);
4647      Object.assign(thumbsSwiperParams, {
4648        watchSlidesProgress: true,
4649        slideToClickedSlide: false
4650      });
4651      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);
4652      swiperCreated = true;
4653    }
4654    swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);
4655    swiper.thumbs.swiper.on('tap', onThumbClick);
4656    return true;
4657  }
4658  function update(initial) {
4659    const thumbsSwiper = swiper.thumbs.swiper;
4660    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4661    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
4662
4663    // Activate thumbs
4664    let thumbsToActivate = 1;
4665    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;
4666    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {
4667      thumbsToActivate = swiper.params.slidesPerView;
4668    }
4669    if (!swiper.params.thumbs.multipleActiveThumbs) {
4670      thumbsToActivate = 1;
4671    }
4672    thumbsToActivate = Math.floor(thumbsToActivate);
4673    thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));
4674    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
4675      for (let i = 0; i < thumbsToActivate; i += 1) {
4676        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => {
4677          slideEl.classList.add(thumbActiveClass);
4678        });
4679      }
4680    } else {
4681      for (let i = 0; i < thumbsToActivate; i += 1) {
4682        if (thumbsSwiper.slides[swiper.realIndex + i]) {
4683          thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);
4684        }
4685      }
4686    }
4687    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
4688    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
4689    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
4690      const currentThumbsIndex = thumbsSwiper.activeIndex;
4691      let newThumbsIndex;
4692      let direction;
4693      if (thumbsSwiper.params.loop) {
4694        const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];
4695        newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);
4696        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';
4697      } else {
4698        newThumbsIndex = swiper.realIndex;
4699        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';
4700      }
4701      if (useOffset) {
4702        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;
4703      }
4704      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
4705        if (thumbsSwiper.params.centeredSlides) {
4706          if (newThumbsIndex > currentThumbsIndex) {
4707            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
4708          } else {
4709            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
4710          }
4711        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
4712        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
4713      }
4714    }
4715  }
4716  on('beforeInit', () => {
4717    const {
4718      thumbs
4719    } = swiper.params;
4720    if (!thumbs || !thumbs.swiper) return;
4721    if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {
4722      const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4723      const getThumbsElementAndInit = () => {
4724        const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;
4725        if (thumbsElement && thumbsElement.swiper) {
4726          thumbs.swiper = thumbsElement.swiper;
4727          init();
4728          update(true);
4729        } else if (thumbsElement) {
4730          const eventName = `${swiper.params.eventsPrefix}init`;
4731          const onThumbsSwiper = e => {
4732            thumbs.swiper = e.detail[0];
4733            thumbsElement.removeEventListener(eventName, onThumbsSwiper);
4734            init();
4735            update(true);
4736            thumbs.swiper.update();
4737            swiper.update();
4738          };
4739          thumbsElement.addEventListener(eventName, onThumbsSwiper);
4740        }
4741        return thumbsElement;
4742      };
4743      const watchForThumbsToAppear = () => {
4744        if (swiper.destroyed) return;
4745        const thumbsElement = getThumbsElementAndInit();
4746        if (!thumbsElement) {
4747          requestAnimationFrame(watchForThumbsToAppear);
4748        }
4749      };
4750      requestAnimationFrame(watchForThumbsToAppear);
4751    } else {
4752      init();
4753      update(true);
4754    }
4755  });
4756  on('slideChange update resize observerUpdate', () => {
4757    update();
4758  });
4759  on('setTransition', (_s, duration) => {
4760    const thumbsSwiper = swiper.thumbs.swiper;
4761    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4762    thumbsSwiper.setTransition(duration);
4763  });
4764  on('beforeDestroy', () => {
4765    const thumbsSwiper = swiper.thumbs.swiper;
4766    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4767    if (swiperCreated) {
4768      thumbsSwiper.destroy();
4769    }
4770  });
4771  Object.assign(swiper.thumbs, {
4772    init,
4773    update
4774  });
4775}
4776
4777
4778
4779
4780/***/ }),
4781
vendor: 12,389 bytes, lines 4782-5146
4782/***/ "./node_modules/swiper/modules/virtual.mjs":
4783/*!*************************************************!*\
4784  !*** ./node_modules/swiper/modules/virtual.mjs ***!
4785  \*************************************************/
4786/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4787
4788__webpack_require__.r(__webpack_exports__);
4789/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4790/* harmony export */   "default": () => (/* binding */ Virtual)
4791/* harmony export */ });
4792/* 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");
4793/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4794
4795
4796
4797function Virtual(_ref) {
4798  let {
4799    swiper,
4800    extendParams,
4801    on,
4802    emit
4803  } = _ref;
4804  extendParams({
4805    virtual: {
4806      enabled: false,
4807      slides: [],
4808      cache: true,
4809      renderSlide: null,
4810      renderExternal: null,
4811      renderExternalUpdate: true,
4812      addSlidesBefore: 0,
4813      addSlidesAfter: 0
4814    }
4815  });
4816  let cssModeTimeout;
4817  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4818  swiper.virtual = {
4819    cache: {},
4820    from: undefined,
4821    to: undefined,
4822    slides: [],
4823    offset: 0,
4824    slidesGrid: []
4825  };
4826  const tempDOM = document.createElement('div');
4827  function renderSlide(slide, index) {
4828    const params = swiper.params.virtual;
4829    if (params.cache && swiper.virtual.cache[index]) {
4830      return swiper.virtual.cache[index];
4831    }
4832    // eslint-disable-next-line
4833    let slideEl;
4834    if (params.renderSlide) {
4835      slideEl = params.renderSlide.call(swiper, slide, index);
4836      if (typeof slideEl === 'string') {
4837        tempDOM.innerHTML = slideEl;
4838        slideEl = tempDOM.children[0];
4839      }
4840    } else if (swiper.isElement) {
4841      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('swiper-slide');
4842    } else {
4843      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.slideClass);
4844    }
4845    slideEl.setAttribute('data-swiper-slide-index', index);
4846    if (!params.renderSlide) {
4847      slideEl.innerHTML = slide;
4848    }
4849    if (params.cache) {
4850      swiper.virtual.cache[index] = slideEl;
4851    }
4852    return slideEl;
4853  }
4854  function update(force, beforeInit) {
4855    const {
4856      slidesPerView,
4857      slidesPerGroup,
4858      centeredSlides,
4859      loop: isLoop,
4860      initialSlide
4861    } = swiper.params;
4862    if (beforeInit && !isLoop && initialSlide > 0) {
4863      return;
4864    }
4865    const {
4866      addSlidesBefore,
4867      addSlidesAfter
4868    } = swiper.params.virtual;
4869    const {
4870      from: previousFrom,
4871      to: previousTo,
4872      slides,
4873      slidesGrid: previousSlidesGrid,
4874      offset: previousOffset
4875    } = swiper.virtual;
4876    if (!swiper.params.cssMode) {
4877      swiper.updateActiveIndex();
4878    }
4879    const activeIndex = swiper.activeIndex || 0;
4880    let offsetProp;
4881    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
4882    let slidesAfter;
4883    let slidesBefore;
4884    if (centeredSlides) {
4885      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
4886      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
4887    } else {
4888      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
4889      slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;
4890    }
4891    let from = activeIndex - slidesBefore;
4892    let to = activeIndex + slidesAfter;
4893    if (!isLoop) {
4894      from = Math.max(from, 0);
4895      to = Math.min(to, slides.length - 1);
4896    }
4897    let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
4898    if (isLoop && activeIndex >= slidesBefore) {
4899      from -= slidesBefore;
4900      if (!centeredSlides) offset += swiper.slidesGrid[0];
4901    } else if (isLoop && activeIndex < slidesBefore) {
4902      from = -slidesBefore;
4903      if (centeredSlides) offset += swiper.slidesGrid[0];
4904    }
4905    Object.assign(swiper.virtual, {
4906      from,
4907      to,
4908      offset,
4909      slidesGrid: swiper.slidesGrid,
4910      slidesBefore,
4911      slidesAfter
4912    });
4913    function onRendered() {
4914      swiper.updateSlides();
4915      swiper.updateProgress();
4916      swiper.updateSlidesClasses();
4917      emit('virtualUpdate');
4918    }
4919    if (previousFrom === from && previousTo === to && !force) {
4920      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
4921        swiper.slides.forEach(slideEl => {
4922          slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
4923        });
4924      }
4925      swiper.updateProgress();
4926      emit('virtualUpdate');
4927      return;
4928    }
4929    if (swiper.params.virtual.renderExternal) {
4930      swiper.params.virtual.renderExternal.call(swiper, {
4931        offset,
4932        from,
4933        to,
4934        slides: function getSlides() {
4935          const slidesToRender = [];
4936          for (let i = from; i <= to; i += 1) {
4937            slidesToRender.push(slides[i]);
4938          }
4939          return slidesToRender;
4940        }()
4941      });
4942      if (swiper.params.virtual.renderExternalUpdate) {
4943        onRendered();
4944      } else {
4945        emit('virtualUpdate');
4946      }
4947      return;
4948    }
4949    const prependIndexes = [];
4950    const appendIndexes = [];
4951    const getSlideIndex = index => {
4952      let slideIndex = index;
4953      if (index < 0) {
4954        slideIndex = slides.length + index;
4955      } else if (slideIndex >= slides.length) {
4956        // eslint-disable-next-line
4957        slideIndex = slideIndex - slides.length;
4958      }
4959      return slideIndex;
4960    };
4961    if (force) {
4962      swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {
4963        slideEl.remove();
4964      });
4965    } else {
4966      for (let i = previousFrom; i <= previousTo; i += 1) {
4967        if (i < from || i > to) {
4968          const slideIndex = getSlideIndex(i);
4969          swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => {
4970            slideEl.remove();
4971          });
4972        }
4973      }
4974    }
4975    const loopFrom = isLoop ? -slides.length : 0;
4976    const loopTo = isLoop ? slides.length * 2 : slides.length;
4977    for (let i = loopFrom; i < loopTo; i += 1) {
4978      if (i >= from && i <= to) {
4979        const slideIndex = getSlideIndex(i);
4980        if (typeof previousTo === 'undefined' || force) {
4981          appendIndexes.push(slideIndex);
4982        } else {
4983          if (i > previousTo) appendIndexes.push(slideIndex);
4984          if (i < previousFrom) prependIndexes.push(slideIndex);
4985        }
4986      }
4987    }
4988    appendIndexes.forEach(index => {
4989      swiper.slidesEl.append(renderSlide(slides[index], index));
4990    });
4991    if (isLoop) {
4992      for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
4993        const index = prependIndexes[i];
4994        swiper.slidesEl.prepend(renderSlide(slides[index], index));
4995      }
4996    } else {
4997      prependIndexes.sort((a, b) => b - a);
4998      prependIndexes.forEach(index => {
4999        swiper.slidesEl.prepend(renderSlide(slides[index], index));
5000      });
5001    }
5002    (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
5003      slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
5004    });
5005    onRendered();
5006  }
5007  function appendSlide(slides) {
5008    if (typeof slides === 'object' && 'length' in slides) {
5009      for (let i = 0; i < slides.length; i += 1) {
5010        if (slides[i]) swiper.virtual.slides.push(slides[i]);
5011      }
5012    } else {
5013      swiper.virtual.slides.push(slides);
5014    }
5015    update(true);
5016  }
5017  function prependSlide(slides) {
5018    const activeIndex = swiper.activeIndex;
5019    let newActiveIndex = activeIndex + 1;
5020    let numberOfNewSlides = 1;
5021    if (Array.isArray(slides)) {
5022      for (let i = 0; i < slides.length; i += 1) {
5023        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
5024      }
5025      newActiveIndex = activeIndex + slides.length;
5026      numberOfNewSlides = slides.length;
5027    } else {
5028      swiper.virtual.slides.unshift(slides);
5029    }
5030    if (swiper.params.virtual.cache) {
5031      const cache = swiper.virtual.cache;
5032      const newCache = {};
5033      Object.keys(cache).forEach(cachedIndex => {
5034        const cachedEl = cache[cachedIndex];
5035        const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
5036        if (cachedElIndex) {
5037          cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
5038        }
5039        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
5040      });
5041      swiper.virtual.cache = newCache;
5042    }
5043    update(true);
5044    swiper.slideTo(newActiveIndex, 0);
5045  }
5046  function removeSlide(slidesIndexes) {
5047    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
5048    let activeIndex = swiper.activeIndex;
5049    if (Array.isArray(slidesIndexes)) {
5050      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
5051        if (swiper.params.virtual.cache) {
5052          delete swiper.virtual.cache[slidesIndexes[i]];
5053          // shift cache indexes
5054          Object.keys(swiper.virtual.cache).forEach(key => {
5055            if (key > slidesIndexes) {
5056              swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
5057              swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
5058              delete swiper.virtual.cache[key];
5059            }
5060          });
5061        }
5062        swiper.virtual.slides.splice(slidesIndexes[i], 1);
5063        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
5064        activeIndex = Math.max(activeIndex, 0);
5065      }
5066    } else {
5067      if (swiper.params.virtual.cache) {
5068        delete swiper.virtual.cache[slidesIndexes];
5069        // shift cache indexes
5070        Object.keys(swiper.virtual.cache).forEach(key => {
5071          if (key > slidesIndexes) {
5072            swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
5073            swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
5074            delete swiper.virtual.cache[key];
5075          }
5076        });
5077      }
5078      swiper.virtual.slides.splice(slidesIndexes, 1);
5079      if (slidesIndexes < activeIndex) activeIndex -= 1;
5080      activeIndex = Math.max(activeIndex, 0);
5081    }
5082    update(true);
5083    swiper.slideTo(activeIndex, 0);
5084  }
5085  function removeAllSlides() {
5086    swiper.virtual.slides = [];
5087    if (swiper.params.virtual.cache) {
5088      swiper.virtual.cache = {};
5089    }
5090    update(true);
5091    swiper.slideTo(0, 0);
5092  }
5093  on('beforeInit', () => {
5094    if (!swiper.params.virtual.enabled) return;
5095    let domSlidesAssigned;
5096    if (typeof swiper.passedParams.virtual.slides === 'undefined') {
5097      const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
5098      if (slides && slides.length) {
5099        swiper.virtual.slides = [...slides];
5100        domSlidesAssigned = true;
5101        slides.forEach((slideEl, slideIndex) => {
5102          slideEl.setAttribute('data-swiper-slide-index', slideIndex);
5103          swiper.virtual.cache[slideIndex] = slideEl;
5104          slideEl.remove();
5105        });
5106      }
5107    }
5108    if (!domSlidesAssigned) {
5109      swiper.virtual.slides = swiper.params.virtual.slides;
5110    }
5111    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
5112    swiper.params.watchSlidesProgress = true;
5113    swiper.originalParams.watchSlidesProgress = true;
5114    update(false, true);
5115  });
5116  on('setTranslate', () => {
5117    if (!swiper.params.virtual.enabled) return;
5118    if (swiper.params.cssMode && !swiper._immediateVirtual) {
5119      clearTimeout(cssModeTimeout);
5120      cssModeTimeout = setTimeout(() => {
5121        update();
5122      }, 100);
5123    } else {
5124      update();
5125    }
5126  });
5127  on('init update resize', () => {
5128    if (!swiper.params.virtual.enabled) return;
5129    if (swiper.params.cssMode) {
5130      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
5131    }
5132  });
5133  Object.assign(swiper.virtual, {
5134    appendSlide,
5135    prependSlide,
5136    removeSlide,
5137    removeAllSlides,
5138    update
5139  });
5140}
5141
5142
5143
5144
5145/***/ }),
5146
vendor: 23,551 bytes, lines 5147-5788
5147/***/ "./node_modules/swiper/modules/zoom.mjs":
5148/*!**********************************************!*\
5149  !*** ./node_modules/swiper/modules/zoom.mjs ***!
5150  \**********************************************/
5151/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5152
5153__webpack_require__.r(__webpack_exports__);
5154/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5155/* harmony export */   "default": () => (/* binding */ Zoom)
5156/* harmony export */ });
5157/* 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");
5158/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5159
5160
5161
5162function Zoom(_ref) {
5163  let {
5164    swiper,
5165    extendParams,
5166    on,
5167    emit
5168  } = _ref;
5169  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
5170  extendParams({
5171    zoom: {
5172      enabled: false,
5173      limitToOriginalSize: false,
5174      maxRatio: 3,
5175      minRatio: 1,
5176      toggle: true,
5177      containerClass: 'swiper-zoom-container',
5178      zoomedSlideClass: 'swiper-slide-zoomed'
5179    }
5180  });
5181  swiper.zoom = {
5182    enabled: false
5183  };
5184  let currentScale = 1;
5185  let isScaling = false;
5186  let fakeGestureTouched;
5187  let fakeGestureMoved;
5188  const evCache = [];
5189  const gesture = {
5190    originX: 0,
5191    originY: 0,
5192    slideEl: undefined,
5193    slideWidth: undefined,
5194    slideHeight: undefined,
5195    imageEl: undefined,
5196    imageWrapEl: undefined,
5197    maxRatio: 3
5198  };
5199  const image = {
5200    isTouched: undefined,
5201    isMoved: undefined,
5202    currentX: undefined,
5203    currentY: undefined,
5204    minX: undefined,
5205    minY: undefined,
5206    maxX: undefined,
5207    maxY: undefined,
5208    width: undefined,
5209    height: undefined,
5210    startX: undefined,
5211    startY: undefined,
5212    touchesStart: {},
5213    touchesCurrent: {}
5214  };
5215  const velocity = {
5216    x: undefined,
5217    y: undefined,
5218    prevPositionX: undefined,
5219    prevPositionY: undefined,
5220    prevTime: undefined
5221  };
5222  let scale = 1;
5223  Object.defineProperty(swiper.zoom, 'scale', {
5224    get() {
5225      return scale;
5226    },
5227    set(value) {
5228      if (scale !== value) {
5229        const imageEl = gesture.imageEl;
5230        const slideEl = gesture.slideEl;
5231        emit('zoomChange', value, imageEl, slideEl);
5232      }
5233      scale = value;
5234    }
5235  });
5236  function getDistanceBetweenTouches() {
5237    if (evCache.length < 2) return 1;
5238    const x1 = evCache[0].pageX;
5239    const y1 = evCache[0].pageY;
5240    const x2 = evCache[1].pageX;
5241    const y2 = evCache[1].pageY;
5242    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
5243    return distance;
5244  }
5245  function getMaxRatio() {
5246    const params = swiper.params.zoom;
5247    const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
5248    if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {
5249      const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;
5250      return Math.min(imageMaxRatio, maxRatio);
5251    }
5252    return maxRatio;
5253  }
5254  function getScaleOrigin() {
5255    if (evCache.length < 2) return {
5256      x: null,
5257      y: null
5258    };
5259    const box = gesture.imageEl.getBoundingClientRect();
5260    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];
5261  }
5262  function getSlideSelector() {
5263    return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
5264  }
5265  function eventWithinSlide(e) {
5266    const slideSelector = getSlideSelector();
5267    if (e.target.matches(slideSelector)) return true;
5268    if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;
5269    return false;
5270  }
5271  function eventWithinZoomContainer(e) {
5272    const selector = `.${swiper.params.zoom.containerClass}`;
5273    if (e.target.matches(selector)) return true;
5274    if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;
5275    return false;
5276  }
5277
5278  // Events
5279  function onGestureStart(e) {
5280    if (e.pointerType === 'mouse') {
5281      evCache.splice(0, evCache.length);
5282    }
5283    if (!eventWithinSlide(e)) return;
5284    const params = swiper.params.zoom;
5285    fakeGestureTouched = false;
5286    fakeGestureMoved = false;
5287    evCache.push(e);
5288    if (evCache.length < 2) {
5289      return;
5290    }
5291    fakeGestureTouched = true;
5292    gesture.scaleStart = getDistanceBetweenTouches();
5293    if (!gesture.slideEl) {
5294      gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
5295      if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];
5296      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5297      if (imageEl) {
5298        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5299      }
5300      gesture.imageEl = imageEl;
5301      if (imageEl) {
5302        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
5303      } else {
5304        gesture.imageWrapEl = undefined;
5305      }
5306      if (!gesture.imageWrapEl) {
5307        gesture.imageEl = undefined;
5308        return;
5309      }
5310      gesture.maxRatio = getMaxRatio();
5311    }
5312    if (gesture.imageEl) {
5313      const [originX, originY] = getScaleOrigin();
5314      gesture.originX = originX;
5315      gesture.originY = originY;
5316      gesture.imageEl.style.transitionDuration = '0ms';
5317    }
5318    isScaling = true;
5319  }
5320  function onGestureChange(e) {
5321    if (!eventWithinSlide(e)) return;
5322    const params = swiper.params.zoom;
5323    const zoom = swiper.zoom;
5324    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
5325    if (pointerIndex >= 0) evCache[pointerIndex] = e;
5326    if (evCache.length < 2) {
5327      return;
5328    }
5329    fakeGestureMoved = true;
5330    gesture.scaleMove = getDistanceBetweenTouches();
5331    if (!gesture.imageEl) {
5332      return;
5333    }
5334    zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;
5335    if (zoom.scale > gesture.maxRatio) {
5336      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
5337    }
5338    if (zoom.scale < params.minRatio) {
5339      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
5340    }
5341    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5342  }
5343  function onGestureEnd(e) {
5344    if (!eventWithinSlide(e)) return;
5345    if (e.pointerType === 'mouse' && e.type === 'pointerout') return;
5346    const params = swiper.params.zoom;
5347    const zoom = swiper.zoom;
5348    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
5349    if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);
5350    if (!fakeGestureTouched || !fakeGestureMoved) {
5351      return;
5352    }
5353    fakeGestureTouched = false;
5354    fakeGestureMoved = false;
5355    if (!gesture.imageEl) return;
5356    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
5357    gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;
5358    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5359    currentScale = zoom.scale;
5360    isScaling = false;
5361    if (zoom.scale > 1 && gesture.slideEl) {
5362      gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
5363    } else if (zoom.scale <= 1 && gesture.slideEl) {
5364      gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
5365    }
5366    if (zoom.scale === 1) {
5367      gesture.originX = 0;
5368      gesture.originY = 0;
5369      gesture.slideEl = undefined;
5370    }
5371  }
5372  let allowTouchMoveTimeout;
5373  function allowTouchMove() {
5374    swiper.touchEventsData.preventTouchMoveFromPointerMove = false;
5375  }
5376  function preventTouchMove() {
5377    clearTimeout(allowTouchMoveTimeout);
5378    swiper.touchEventsData.preventTouchMoveFromPointerMove = true;
5379    allowTouchMoveTimeout = setTimeout(() => {
5380      if (swiper.destroyed) return;
5381      allowTouchMove();
5382    });
5383  }
5384  function onTouchStart(e) {
5385    const device = swiper.device;
5386    if (!gesture.imageEl) return;
5387    if (image.isTouched) return;
5388    if (device.android && e.cancelable) e.preventDefault();
5389    image.isTouched = true;
5390    const event = evCache.length > 0 ? evCache[0] : e;
5391    image.touchesStart.x = event.pageX;
5392    image.touchesStart.y = event.pageY;
5393  }
5394  function onTouchMove(e) {
5395    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {
5396      return;
5397    }
5398    const zoom = swiper.zoom;
5399    if (!gesture.imageEl) {
5400      return;
5401    }
5402    if (!image.isTouched || !gesture.slideEl) {
5403      return;
5404    }
5405    if (!image.isMoved) {
5406      image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5407      image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5408      image.startX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(gesture.imageWrapEl, 'x') || 0;
5409      image.startY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(gesture.imageWrapEl, 'y') || 0;
5410      gesture.slideWidth = gesture.slideEl.offsetWidth;
5411      gesture.slideHeight = gesture.slideEl.offsetHeight;
5412      gesture.imageWrapEl.style.transitionDuration = '0ms';
5413    }
5414    // Define if we need image drag
5415    const scaledWidth = image.width * zoom.scale;
5416    const scaledHeight = image.height * zoom.scale;
5417    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
5418    image.maxX = -image.minX;
5419    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
5420    image.maxY = -image.minY;
5421    image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;
5422    image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;
5423    const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));
5424    if (touchesDiff > 5) {
5425      swiper.allowClick = false;
5426    }
5427    if (!image.isMoved && !isScaling) {
5428      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)) {
5429        image.isTouched = false;
5430        allowTouchMove();
5431        return;
5432      }
5433      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)) {
5434        image.isTouched = false;
5435        allowTouchMove();
5436        return;
5437      }
5438    }
5439    if (e.cancelable) {
5440      e.preventDefault();
5441    }
5442    e.stopPropagation();
5443    preventTouchMove();
5444    image.isMoved = true;
5445    const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);
5446    const {
5447      originX,
5448      originY
5449    } = gesture;
5450    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);
5451    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);
5452    if (image.currentX < image.minX) {
5453      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
5454    }
5455    if (image.currentX > image.maxX) {
5456      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
5457    }
5458    if (image.currentY < image.minY) {
5459      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
5460    }
5461    if (image.currentY > image.maxY) {
5462      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
5463    }
5464
5465    // Velocity
5466    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;
5467    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;
5468    if (!velocity.prevTime) velocity.prevTime = Date.now();
5469    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
5470    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
5471    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;
5472    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;
5473    velocity.prevPositionX = image.touchesCurrent.x;
5474    velocity.prevPositionY = image.touchesCurrent.y;
5475    velocity.prevTime = Date.now();
5476    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
5477  }
5478  function onTouchEnd() {
5479    const zoom = swiper.zoom;
5480    if (!gesture.imageEl) return;
5481    if (!image.isTouched || !image.isMoved) {
5482      image.isTouched = false;
5483      image.isMoved = false;
5484      return;
5485    }
5486    image.isTouched = false;
5487    image.isMoved = false;
5488    let momentumDurationX = 300;
5489    let momentumDurationY = 300;
5490    const momentumDistanceX = velocity.x * momentumDurationX;
5491    const newPositionX = image.currentX + momentumDistanceX;
5492    const momentumDistanceY = velocity.y * momentumDurationY;
5493    const newPositionY = image.currentY + momentumDistanceY;
5494
5495    // Fix duration
5496    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
5497    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
5498    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);
5499    image.currentX = newPositionX;
5500    image.currentY = newPositionY;
5501    // Define if we need image drag
5502    const scaledWidth = image.width * zoom.scale;
5503    const scaledHeight = image.height * zoom.scale;
5504    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
5505    image.maxX = -image.minX;
5506    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
5507    image.maxY = -image.minY;
5508    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
5509    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
5510    gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;
5511    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
5512  }
5513  function onTransitionEnd() {
5514    const zoom = swiper.zoom;
5515    if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {
5516      if (gesture.imageEl) {
5517        gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
5518      }
5519      if (gesture.imageWrapEl) {
5520        gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
5521      }
5522      gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);
5523      zoom.scale = 1;
5524      currentScale = 1;
5525      gesture.slideEl = undefined;
5526      gesture.imageEl = undefined;
5527      gesture.imageWrapEl = undefined;
5528      gesture.originX = 0;
5529      gesture.originY = 0;
5530    }
5531  }
5532  function zoomIn(e) {
5533    const zoom = swiper.zoom;
5534    const params = swiper.params.zoom;
5535    if (!gesture.slideEl) {
5536      if (e && e.target) {
5537        gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
5538      }
5539      if (!gesture.slideEl) {
5540        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
5541          gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
5542        } else {
5543          gesture.slideEl = swiper.slides[swiper.activeIndex];
5544        }
5545      }
5546      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5547      if (imageEl) {
5548        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5549      }
5550      gesture.imageEl = imageEl;
5551      if (imageEl) {
5552        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
5553      } else {
5554        gesture.imageWrapEl = undefined;
5555      }
5556    }
5557    if (!gesture.imageEl || !gesture.imageWrapEl) return;
5558    if (swiper.params.cssMode) {
5559      swiper.wrapperEl.style.overflow = 'hidden';
5560      swiper.wrapperEl.style.touchAction = 'none';
5561    }
5562    gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
5563    let touchX;
5564    let touchY;
5565    let offsetX;
5566    let offsetY;
5567    let diffX;
5568    let diffY;
5569    let translateX;
5570    let translateY;
5571    let imageWidth;
5572    let imageHeight;
5573    let scaledWidth;
5574    let scaledHeight;
5575    let translateMinX;
5576    let translateMinY;
5577    let translateMaxX;
5578    let translateMaxY;
5579    let slideWidth;
5580    let slideHeight;
5581    if (typeof image.touchesStart.x === 'undefined' && e) {
5582      touchX = e.pageX;
5583      touchY = e.pageY;
5584    } else {
5585      touchX = image.touchesStart.x;
5586      touchY = image.touchesStart.y;
5587    }
5588    const forceZoomRatio = typeof e === 'number' ? e : null;
5589    if (currentScale === 1 && forceZoomRatio) {
5590      touchX = undefined;
5591      touchY = undefined;
5592      image.touchesStart.x = undefined;
5593      image.touchesStart.y = undefined;
5594    }
5595    const maxRatio = getMaxRatio();
5596    zoom.scale = forceZoomRatio || maxRatio;
5597    currentScale = forceZoomRatio || maxRatio;
5598    if (e && !(currentScale === 1 && forceZoomRatio)) {
5599      slideWidth = gesture.slideEl.offsetWidth;
5600      slideHeight = gesture.slideEl.offsetHeight;
5601      offsetX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.slideEl).left + window.scrollX;
5602      offsetY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.slideEl).top + window.scrollY;
5603      diffX = offsetX + slideWidth / 2 - touchX;
5604      diffY = offsetY + slideHeight / 2 - touchY;
5605      imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5606      imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5607      scaledWidth = imageWidth * zoom.scale;
5608      scaledHeight = imageHeight * zoom.scale;
5609      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
5610      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
5611      translateMaxX = -translateMinX;
5612      translateMaxY = -translateMinY;
5613      translateX = diffX * zoom.scale;
5614      translateY = diffY * zoom.scale;
5615      if (translateX < translateMinX) {
5616        translateX = translateMinX;
5617      }
5618      if (translateX > translateMaxX) {
5619        translateX = translateMaxX;
5620      }
5621      if (translateY < translateMinY) {
5622        translateY = translateMinY;
5623      }
5624      if (translateY > translateMaxY) {
5625        translateY = translateMaxY;
5626      }
5627    } else {
5628      translateX = 0;
5629      translateY = 0;
5630    }
5631    if (forceZoomRatio && zoom.scale === 1) {
5632      gesture.originX = 0;
5633      gesture.originY = 0;
5634    }
5635    gesture.imageWrapEl.style.transitionDuration = '300ms';
5636    gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;
5637    gesture.imageEl.style.transitionDuration = '300ms';
5638    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5639  }
5640  function zoomOut() {
5641    const zoom = swiper.zoom;
5642    const params = swiper.params.zoom;
5643    if (!gesture.slideEl) {
5644      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
5645        gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
5646      } else {
5647        gesture.slideEl = swiper.slides[swiper.activeIndex];
5648      }
5649      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5650      if (imageEl) {
5651        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5652      }
5653      gesture.imageEl = imageEl;
5654      if (imageEl) {
5655        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
5656      } else {
5657        gesture.imageWrapEl = undefined;
5658      }
5659    }
5660    if (!gesture.imageEl || !gesture.imageWrapEl) return;
5661    if (swiper.params.cssMode) {
5662      swiper.wrapperEl.style.overflow = '';
5663      swiper.wrapperEl.style.touchAction = '';
5664    }
5665    zoom.scale = 1;
5666    currentScale = 1;
5667    image.touchesStart.x = undefined;
5668    image.touchesStart.y = undefined;
5669    gesture.imageWrapEl.style.transitionDuration = '300ms';
5670    gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
5671    gesture.imageEl.style.transitionDuration = '300ms';
5672    gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
5673    gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
5674    gesture.slideEl = undefined;
5675    gesture.originX = 0;
5676    gesture.originY = 0;
5677  }
5678
5679  // Toggle Zoom
5680  function zoomToggle(e) {
5681    const zoom = swiper.zoom;
5682    if (zoom.scale && zoom.scale !== 1) {
5683      // Zoom Out
5684      zoomOut();
5685    } else {
5686      // Zoom In
5687      zoomIn(e);
5688    }
5689  }
5690  function getListeners() {
5691    const passiveListener = swiper.params.passiveListeners ? {
5692      passive: true,
5693      capture: false
5694    } : false;
5695    const activeListenerWithCapture = swiper.params.passiveListeners ? {
5696      passive: false,
5697      capture: true
5698    } : true;
5699    return {
5700      passiveListener,
5701      activeListenerWithCapture
5702    };
5703  }
5704
5705  // Attach/Detach Events
5706  function enable() {
5707    const zoom = swiper.zoom;
5708    if (zoom.enabled) return;
5709    zoom.enabled = true;
5710    const {
5711      passiveListener,
5712      activeListenerWithCapture
5713    } = getListeners();
5714
5715    // Scale image
5716    swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);
5717    swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);
5718    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
5719      swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);
5720    });
5721
5722    // Move image
5723    swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);
5724  }
5725  function disable() {
5726    const zoom = swiper.zoom;
5727    if (!zoom.enabled) return;
5728    zoom.enabled = false;
5729    const {
5730      passiveListener,
5731      activeListenerWithCapture
5732    } = getListeners();
5733
5734    // Scale image
5735    swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);
5736    swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);
5737    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
5738      swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);
5739    });
5740
5741    // Move image
5742    swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);
5743  }
5744  on('init', () => {
5745    if (swiper.params.zoom.enabled) {
5746      enable();
5747    }
5748  });
5749  on('destroy', () => {
5750    disable();
5751  });
5752  on('touchStart', (_s, e) => {
5753    if (!swiper.zoom.enabled) return;
5754    onTouchStart(e);
5755  });
5756  on('touchEnd', (_s, e) => {
5757    if (!swiper.zoom.enabled) return;
5758    onTouchEnd();
5759  });
5760  on('doubleTap', (_s, e) => {
5761    if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
5762      zoomToggle(e);
5763    }
5764  });
5765  on('transitionEnd', () => {
5766    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {
5767      onTransitionEnd();
5768    }
5769  });
5770  on('slideChange', () => {
5771    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {
5772      onTransitionEnd();
5773    }
5774  });
5775  Object.assign(swiper.zoom, {
5776    enable,
5777    disable,
5778    in: zoomIn,
5779    out: zoomOut,
5780    toggle: zoomToggle
5781  });
5782}
5783
5784
5785
5786
5787/***/ }),
5788
vendor: 766 bytes, lines 5789-5811
5789/***/ "./node_modules/swiper/shared/classes-to-selector.mjs":
5790/*!************************************************************!*\
5791  !*** ./node_modules/swiper/shared/classes-to-selector.mjs ***!
5792  \************************************************************/
5793/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5794
5795__webpack_require__.r(__webpack_exports__);
5796/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5797/* harmony export */   c: () => (/* binding */ classesToSelector)
5798/* harmony export */ });
5799function classesToSelector(classes) {
5800  if (classes === void 0) {
5801    classes = '';
5802  }
5803  return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line
5804  .replace(/ /g, '.')}`;
5805}
5806
5807
5808
5809
5810/***/ }),
5811
vendor: 1,405 bytes, lines 5812-5847
5812/***/ "./node_modules/swiper/shared/create-element-if-not-defined.mjs":
5813/*!**********************************************************************!*\
5814  !*** ./node_modules/swiper/shared/create-element-if-not-defined.mjs ***!
5815  \**********************************************************************/
5816/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5817
5818__webpack_require__.r(__webpack_exports__);
5819/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5820/* harmony export */   c: () => (/* binding */ createElementIfNotDefined)
5821/* harmony export */ });
5822/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5823
5824
5825function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
5826  if (swiper.params.createElements) {
5827    Object.keys(checkProps).forEach(key => {
5828      if (!params[key] && params.auto === true) {
5829        let element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.el, `.${checkProps[key]}`)[0];
5830        if (!element) {
5831          element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', checkProps[key]);
5832          element.className = checkProps[key];
5833          swiper.el.append(element);
5834        }
5835        params[key] = element;
5836        originalParams[key] = element;
5837      }
5838    });
5839  }
5840  return params;
5841}
5842
5843
5844
5845
5846/***/ }),
5847
vendor: 1,201 bytes, lines 5848-5876
5848/***/ "./node_modules/swiper/shared/create-shadow.mjs":
5849/*!******************************************************!*\
5850  !*** ./node_modules/swiper/shared/create-shadow.mjs ***!
5851  \******************************************************/
5852/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5853
5854__webpack_require__.r(__webpack_exports__);
5855/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5856/* harmony export */   c: () => (/* binding */ createShadow)
5857/* harmony export */ });
5858/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5859
5860
5861function createShadow(suffix, slideEl, side) {
5862  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;
5863  const shadowContainer = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
5864  let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);
5865  if (!shadowEl) {
5866    shadowEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', shadowClass.split(' '));
5867    shadowContainer.append(shadowEl);
5868  }
5869  return shadowEl;
5870}
5871
5872
5873
5874
5875/***/ }),
5876
vendor: 2,324 bytes, lines 5877-5948
5877/***/ "./node_modules/swiper/shared/effect-init.mjs":
5878/*!****************************************************!*\
5879  !*** ./node_modules/swiper/shared/effect-init.mjs ***!
5880  \****************************************************/
5881/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5882
5883__webpack_require__.r(__webpack_exports__);
5884/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5885/* harmony export */   e: () => (/* binding */ effectInit)
5886/* harmony export */ });
5887function effectInit(params) {
5888  const {
5889    effect,
5890    swiper,
5891    on,
5892    setTranslate,
5893    setTransition,
5894    overwriteParams,
5895    perspective,
5896    recreateShadows,
5897    getEffectParams
5898  } = params;
5899  on('beforeInit', () => {
5900    if (swiper.params.effect !== effect) return;
5901    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
5902    if (perspective && perspective()) {
5903      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
5904    }
5905    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};
5906    Object.assign(swiper.params, overwriteParamsResult);
5907    Object.assign(swiper.originalParams, overwriteParamsResult);
5908  });
5909  on('setTranslate', () => {
5910    if (swiper.params.effect !== effect) return;
5911    setTranslate();
5912  });
5913  on('setTransition', (_s, duration) => {
5914    if (swiper.params.effect !== effect) return;
5915    setTransition(duration);
5916  });
5917  on('transitionEnd', () => {
5918    if (swiper.params.effect !== effect) return;
5919    if (recreateShadows) {
5920      if (!getEffectParams || !getEffectParams().slideShadows) return;
5921      // remove shadows
5922      swiper.slides.forEach(slideEl => {
5923        slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());
5924      });
5925      // create new one
5926      recreateShadows();
5927    }
5928  });
5929  let requireUpdateOnVirtual;
5930  on('virtualUpdate', () => {
5931    if (swiper.params.effect !== effect) return;
5932    if (!swiper.slides.length) {
5933      requireUpdateOnVirtual = true;
5934    }
5935    requestAnimationFrame(() => {
5936      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {
5937        setTranslate();
5938        requireUpdateOnVirtual = false;
5939      }
5940    });
5941  });
5942}
5943
5944
5945
5946
5947/***/ }),
5948
vendor: 994 bytes, lines 5949-5975
5949/***/ "./node_modules/swiper/shared/effect-target.mjs":
5950/*!******************************************************!*\
5951  !*** ./node_modules/swiper/shared/effect-target.mjs ***!
5952  \******************************************************/
5953/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5954
5955__webpack_require__.r(__webpack_exports__);
5956/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5957/* harmony export */   e: () => (/* binding */ effectTarget)
5958/* harmony export */ });
5959/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5960
5961
5962function effectTarget(effectParams, slideEl) {
5963  const transformEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
5964  if (transformEl !== slideEl) {
5965    transformEl.style.backfaceVisibility = 'hidden';
5966    transformEl.style['-webkit-backface-visibility'] = 'hidden';
5967  }
5968  return transformEl;
5969}
5970
5971
5972
5973
5974/***/ }),
5975
vendor: 2,102 bytes, lines 5976-6038
5976/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs":
5977/*!**********************************************************************!*\
5978  !*** ./node_modules/swiper/shared/effect-virtual-transition-end.mjs ***!
5979  \**********************************************************************/
5980/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5981
5982__webpack_require__.r(__webpack_exports__);
5983/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5984/* harmony export */   e: () => (/* binding */ effectVirtualTransitionEnd)
5985/* harmony export */ });
5986/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5987
5988
5989function effectVirtualTransitionEnd(_ref) {
5990  let {
5991    swiper,
5992    duration,
5993    transformElements,
5994    allSlides
5995  } = _ref;
5996  const {
5997    activeIndex
5998  } = swiper;
5999  const getSlide = el => {
6000    if (!el.parentElement) {
6001      // assume shadow root
6002      const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];
6003      return slide;
6004    }
6005    return el.parentElement;
6006  };
6007  if (swiper.params.virtualTranslate && duration !== 0) {
6008    let eventTriggered = false;
6009    let transitionEndTarget;
6010    if (allSlides) {
6011      transitionEndTarget = transformElements;
6012    } else {
6013      transitionEndTarget = transformElements.filter(transformEl => {
6014        const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;
6015        return swiper.getSlideIndex(el) === activeIndex;
6016      });
6017    }
6018    transitionEndTarget.forEach(el => {
6019      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(el, () => {
6020        if (eventTriggered) return;
6021        if (!swiper || swiper.destroyed) return;
6022        eventTriggered = true;
6023        swiper.animating = false;
6024        const evt = new window.CustomEvent('transitionend', {
6025          bubbles: true,
6026          cancelable: true
6027        });
6028        swiper.wrapperEl.dispatchEvent(evt);
6029      });
6030    });
6031  }
6032}
6033
6034
6035
6036
6037/***/ }),
6038
vendor: 3,320 bytes, lines 6039-6198
6039/***/ "./node_modules/swiper/shared/ssr-window.esm.mjs":
6040/*!*******************************************************!*\
6041  !*** ./node_modules/swiper/shared/ssr-window.esm.mjs ***!
6042  \*******************************************************/
6043/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6044
6045__webpack_require__.r(__webpack_exports__);
6046/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6047/* harmony export */   a: () => (/* binding */ getWindow),
6048/* harmony export */   g: () => (/* binding */ getDocument)
6049/* harmony export */ });
6050/**
6051 * SSR Window 4.0.2
6052 * Better handling for window object in SSR environment
6053 * https://github.com/nolimits4web/ssr-window
6054 *
6055 * Copyright 2021, Vladimir Kharlampidi
6056 *
6057 * Licensed under MIT
6058 *
6059 * Released on: December 13, 2021
6060 */
6061/* eslint-disable no-param-reassign */
6062function isObject(obj) {
6063  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
6064}
6065function extend(target, src) {
6066  if (target === void 0) {
6067    target = {};
6068  }
6069  if (src === void 0) {
6070    src = {};
6071  }
6072  Object.keys(src).forEach(key => {
6073    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {
6074      extend(target[key], src[key]);
6075    }
6076  });
6077}
6078const ssrDocument = {
6079  body: {},
6080  addEventListener() {},
6081  removeEventListener() {},
6082  activeElement: {
6083    blur() {},
6084    nodeName: ''
6085  },
6086  querySelector() {
6087    return null;
6088  },
6089  querySelectorAll() {
6090    return [];
6091  },
6092  getElementById() {
6093    return null;
6094  },
6095  createEvent() {
6096    return {
6097      initEvent() {}
6098    };
6099  },
6100  createElement() {
6101    return {
6102      children: [],
6103      childNodes: [],
6104      style: {},
6105      setAttribute() {},
6106      getElementsByTagName() {
6107        return [];
6108      }
6109    };
6110  },
6111  createElementNS() {
6112    return {};
6113  },
6114  importNode() {
6115    return null;
6116  },
6117  location: {
6118    hash: '',
6119    host: '',
6120    hostname: '',
6121    href: '',
6122    origin: '',
6123    pathname: '',
6124    protocol: '',
6125    search: ''
6126  }
6127};
6128function getDocument() {
6129  const doc = typeof document !== 'undefined' ? document : {};
6130  extend(doc, ssrDocument);
6131  return doc;
6132}
6133const ssrWindow = {
6134  document: ssrDocument,
6135  navigator: {
6136    userAgent: ''
6137  },
6138  location: {
6139    hash: '',
6140    host: '',
6141    hostname: '',
6142    href: '',
6143    origin: '',
6144    pathname: '',
6145    protocol: '',
6146    search: ''
6147  },
6148  history: {
6149    replaceState() {},
6150    pushState() {},
6151    go() {},
6152    back() {}
6153  },
6154  CustomEvent: function CustomEvent() {
6155    return this;
6156  },
6157  addEventListener() {},
6158  removeEventListener() {},
6159  getComputedStyle() {
6160    return {
6161      getPropertyValue() {
6162        return '';
6163      }
6164    };
6165  },
6166  Image() {},
6167  Date() {},
6168  screen: {},
6169  setTimeout() {},
6170  clearTimeout() {},
6171  matchMedia() {
6172    return {};
6173  },
6174  requestAnimationFrame(callback) {
6175    if (typeof setTimeout === 'undefined') {
6176      callback();
6177      return null;
6178    }
6179    return setTimeout(callback, 0);
6180  },
6181  cancelAnimationFrame(id) {
6182    if (typeof setTimeout === 'undefined') {
6183      return;
6184    }
6185    clearTimeout(id);
6186  }
6187};
6188function getWindow() {
6189  const win = typeof window !== 'undefined' ? window : {};
6190  extend(win, ssrWindow);
6191  return win;
6192}
6193
6194
6195
6196
6197/***/ }),
6198
vendor: 132,769 bytes, lines 6199-10127
6199/***/ "./node_modules/swiper/shared/swiper-core.mjs":
6200/*!****************************************************!*\
6201  !*** ./node_modules/swiper/shared/swiper-core.mjs ***!
6202  \****************************************************/
6203/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6204
6205__webpack_require__.r(__webpack_exports__);
6206/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6207/* harmony export */   S: () => (/* binding */ Swiper),
6208/* harmony export */   d: () => (/* binding */ defaults)
6209/* harmony export */ });
6210/* 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");
6211/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6212
6213
6214
6215let support;
6216function calcSupport() {
6217  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6218  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
6219  return {
6220    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,
6221    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)
6222  };
6223}
6224function getSupport() {
6225  if (!support) {
6226    support = calcSupport();
6227  }
6228  return support;
6229}
6230
6231let deviceCached;
6232function calcDevice(_temp) {
6233  let {
6234    userAgent
6235  } = _temp === void 0 ? {} : _temp;
6236  const support = getSupport();
6237  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6238  const platform = window.navigator.platform;
6239  const ua = userAgent || window.navigator.userAgent;
6240  const device = {
6241    ios: false,
6242    android: false
6243  };
6244  const screenWidth = window.screen.width;
6245  const screenHeight = window.screen.height;
6246  const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
6247  let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
6248  const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
6249  const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
6250  const windows = platform === 'Win32';
6251  let macos = platform === 'MacIntel';
6252
6253  // iPadOs 13 fix
6254  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
6255  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
6256    ipad = ua.match(/(Version)\/([\d.]+)/);
6257    if (!ipad) ipad = [0, 1, '13_0_0'];
6258    macos = false;
6259  }
6260
6261  // Android
6262  if (android && !windows) {
6263    device.os = 'android';
6264    device.android = true;
6265  }
6266  if (ipad || iphone || ipod) {
6267    device.os = 'ios';
6268    device.ios = true;
6269  }
6270
6271  // Export object
6272  return device;
6273}
6274function getDevice(overrides) {
6275  if (overrides === void 0) {
6276    overrides = {};
6277  }
6278  if (!deviceCached) {
6279    deviceCached = calcDevice(overrides);
6280  }
6281  return deviceCached;
6282}
6283
6284let browser;
6285function calcBrowser() {
6286  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6287  const device = getDevice();
6288  let needPerspectiveFix = false;
6289  function isSafari() {
6290    const ua = window.navigator.userAgent.toLowerCase();
6291    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
6292  }
6293  if (isSafari()) {
6294    const ua = String(window.navigator.userAgent);
6295    if (ua.includes('Version/')) {
6296      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
6297      needPerspectiveFix = major < 16 || major === 16 && minor < 2;
6298    }
6299  }
6300  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);
6301  const isSafariBrowser = isSafari();
6302  const need3dFix = isSafariBrowser || isWebView && device.ios;
6303  return {
6304    isSafari: needPerspectiveFix || isSafariBrowser,
6305    needPerspectiveFix,
6306    need3dFix,
6307    isWebView
6308  };
6309}
6310function getBrowser() {
6311  if (!browser) {
6312    browser = calcBrowser();
6313  }
6314  return browser;
6315}
6316
6317function Resize(_ref) {
6318  let {
6319    swiper,
6320    on,
6321    emit
6322  } = _ref;
6323  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6324  let observer = null;
6325  let animationFrame = null;
6326  const resizeHandler = () => {
6327    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6328    emit('beforeResize');
6329    emit('resize');
6330  };
6331  const createObserver = () => {
6332    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6333    observer = new ResizeObserver(entries => {
6334      animationFrame = window.requestAnimationFrame(() => {
6335        const {
6336          width,
6337          height
6338        } = swiper;
6339        let newWidth = width;
6340        let newHeight = height;
6341        entries.forEach(_ref2 => {
6342          let {
6343            contentBoxSize,
6344            contentRect,
6345            target
6346          } = _ref2;
6347          if (target && target !== swiper.el) return;
6348          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
6349          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
6350        });
6351        if (newWidth !== width || newHeight !== height) {
6352          resizeHandler();
6353        }
6354      });
6355    });
6356    observer.observe(swiper.el);
6357  };
6358  const removeObserver = () => {
6359    if (animationFrame) {
6360      window.cancelAnimationFrame(animationFrame);
6361    }
6362    if (observer && observer.unobserve && swiper.el) {
6363      observer.unobserve(swiper.el);
6364      observer = null;
6365    }
6366  };
6367  const orientationChangeHandler = () => {
6368    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6369    emit('orientationchange');
6370  };
6371  on('init', () => {
6372    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {
6373      createObserver();
6374      return;
6375    }
6376    window.addEventListener('resize', resizeHandler);
6377    window.addEventListener('orientationchange', orientationChangeHandler);
6378  });
6379  on('destroy', () => {
6380    removeObserver();
6381    window.removeEventListener('resize', resizeHandler);
6382    window.removeEventListener('orientationchange', orientationChangeHandler);
6383  });
6384}
6385
6386function Observer(_ref) {
6387  let {
6388    swiper,
6389    extendParams,
6390    on,
6391    emit
6392  } = _ref;
6393  const observers = [];
6394  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6395  const attach = function (target, options) {
6396    if (options === void 0) {
6397      options = {};
6398    }
6399    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
6400    const observer = new ObserverFunc(mutations => {
6401      // The observerUpdate event should only be triggered
6402      // once despite the number of mutations.  Additional
6403      // triggers are redundant and are very costly
6404      if (swiper.__preventObserver__) return;
6405      if (mutations.length === 1) {
6406        emit('observerUpdate', mutations[0]);
6407        return;
6408      }
6409      const observerUpdate = function observerUpdate() {
6410        emit('observerUpdate', mutations[0]);
6411      };
6412      if (window.requestAnimationFrame) {
6413        window.requestAnimationFrame(observerUpdate);
6414      } else {
6415        window.setTimeout(observerUpdate, 0);
6416      }
6417    });
6418    observer.observe(target, {
6419      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
6420      childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,
6421      characterData: typeof options.characterData === 'undefined' ? true : options.characterData
6422    });
6423    observers.push(observer);
6424  };
6425  const init = () => {
6426    if (!swiper.params.observer) return;
6427    if (swiper.params.observeParents) {
6428      const containerParents = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.hostEl);
6429      for (let i = 0; i < containerParents.length; i += 1) {
6430        attach(containerParents[i]);
6431      }
6432    }
6433    // Observe container
6434    attach(swiper.hostEl, {
6435      childList: swiper.params.observeSlideChildren
6436    });
6437
6438    // Observe wrapper
6439    attach(swiper.wrapperEl, {
6440      attributes: false
6441    });
6442  };
6443  const destroy = () => {
6444    observers.forEach(observer => {
6445      observer.disconnect();
6446    });
6447    observers.splice(0, observers.length);
6448  };
6449  extendParams({
6450    observer: false,
6451    observeParents: false,
6452    observeSlideChildren: false
6453  });
6454  on('init', init);
6455  on('destroy', destroy);
6456}
6457
6458/* eslint-disable no-underscore-dangle */
6459
6460var eventsEmitter = {
6461  on(events, handler, priority) {
6462    const self = this;
6463    if (!self.eventsListeners || self.destroyed) return self;
6464    if (typeof handler !== 'function') return self;
6465    const method = priority ? 'unshift' : 'push';
6466    events.split(' ').forEach(event => {
6467      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
6468      self.eventsListeners[event][method](handler);
6469    });
6470    return self;
6471  },
6472  once(events, handler, priority) {
6473    const self = this;
6474    if (!self.eventsListeners || self.destroyed) return self;
6475    if (typeof handler !== 'function') return self;
6476    function onceHandler() {
6477      self.off(events, onceHandler);
6478      if (onceHandler.__emitterProxy) {
6479        delete onceHandler.__emitterProxy;
6480      }
6481      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6482        args[_key] = arguments[_key];
6483      }
6484      handler.apply(self, args);
6485    }
6486    onceHandler.__emitterProxy = handler;
6487    return self.on(events, onceHandler, priority);
6488  },
6489  onAny(handler, priority) {
6490    const self = this;
6491    if (!self.eventsListeners || self.destroyed) return self;
6492    if (typeof handler !== 'function') return self;
6493    const method = priority ? 'unshift' : 'push';
6494    if (self.eventsAnyListeners.indexOf(handler) < 0) {
6495      self.eventsAnyListeners[method](handler);
6496    }
6497    return self;
6498  },
6499  offAny(handler) {
6500    const self = this;
6501    if (!self.eventsListeners || self.destroyed) return self;
6502    if (!self.eventsAnyListeners) return self;
6503    const index = self.eventsAnyListeners.indexOf(handler);
6504    if (index >= 0) {
6505      self.eventsAnyListeners.splice(index, 1);
6506    }
6507    return self;
6508  },
6509  off(events, handler) {
6510    const self = this;
6511    if (!self.eventsListeners || self.destroyed) return self;
6512    if (!self.eventsListeners) return self;
6513    events.split(' ').forEach(event => {
6514      if (typeof handler === 'undefined') {
6515        self.eventsListeners[event] = [];
6516      } else if (self.eventsListeners[event]) {
6517        self.eventsListeners[event].forEach((eventHandler, index) => {
6518          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
6519            self.eventsListeners[event].splice(index, 1);
6520          }
6521        });
6522      }
6523    });
6524    return self;
6525  },
6526  emit() {
6527    const self = this;
6528    if (!self.eventsListeners || self.destroyed) return self;
6529    if (!self.eventsListeners) return self;
6530    let events;
6531    let data;
6532    let context;
6533    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
6534      args[_key2] = arguments[_key2];
6535    }
6536    if (typeof args[0] === 'string' || Array.isArray(args[0])) {
6537      events = args[0];
6538      data = args.slice(1, args.length);
6539      context = self;
6540    } else {
6541      events = args[0].events;
6542      data = args[0].data;
6543      context = args[0].context || self;
6544    }
6545    data.unshift(context);
6546    const eventsArray = Array.isArray(events) ? events : events.split(' ');
6547    eventsArray.forEach(event => {
6548      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
6549        self.eventsAnyListeners.forEach(eventHandler => {
6550          eventHandler.apply(context, [event, ...data]);
6551        });
6552      }
6553      if (self.eventsListeners && self.eventsListeners[event]) {
6554        self.eventsListeners[event].forEach(eventHandler => {
6555          eventHandler.apply(context, data);
6556        });
6557      }
6558    });
6559    return self;
6560  }
6561};
6562
6563function updateSize() {
6564  const swiper = this;
6565  let width;
6566  let height;
6567  const el = swiper.el;
6568  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {
6569    width = swiper.params.width;
6570  } else {
6571    width = el.clientWidth;
6572  }
6573  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {
6574    height = swiper.params.height;
6575  } else {
6576    height = el.clientHeight;
6577  }
6578  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
6579    return;
6580  }
6581
6582  // Subtract paddings
6583  width = width - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'padding-left') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'padding-right') || 0, 10);
6584  height = height - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'padding-top') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'padding-bottom') || 0, 10);
6585  if (Number.isNaN(width)) width = 0;
6586  if (Number.isNaN(height)) height = 0;
6587  Object.assign(swiper, {
6588    width,
6589    height,
6590    size: swiper.isHorizontal() ? width : height
6591  });
6592}
6593
6594function updateSlides() {
6595  const swiper = this;
6596  function getDirectionPropertyValue(node, label) {
6597    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);
6598  }
6599  const params = swiper.params;
6600  const {
6601    wrapperEl,
6602    slidesEl,
6603    size: swiperSize,
6604    rtlTranslate: rtl,
6605    wrongRTL
6606  } = swiper;
6607  const isVirtual = swiper.virtual && params.virtual.enabled;
6608  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
6609  const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);
6610  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
6611  let snapGrid = [];
6612  const slidesGrid = [];
6613  const slidesSizesGrid = [];
6614  let offsetBefore = params.slidesOffsetBefore;
6615  if (typeof offsetBefore === 'function') {
6616    offsetBefore = params.slidesOffsetBefore.call(swiper);
6617  }
6618  let offsetAfter = params.slidesOffsetAfter;
6619  if (typeof offsetAfter === 'function') {
6620    offsetAfter = params.slidesOffsetAfter.call(swiper);
6621  }
6622  const previousSnapGridLength = swiper.snapGrid.length;
6623  const previousSlidesGridLength = swiper.slidesGrid.length;
6624  let spaceBetween = params.spaceBetween;
6625  let slidePosition = -offsetBefore;
6626  let prevSlideSize = 0;
6627  let index = 0;
6628  if (typeof swiperSize === 'undefined') {
6629    return;
6630  }
6631  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
6632    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
6633  } else if (typeof spaceBetween === 'string') {
6634    spaceBetween = parseFloat(spaceBetween);
6635  }
6636  swiper.virtualSize = -spaceBetween;
6637
6638  // reset margins
6639  slides.forEach(slideEl => {
6640    if (rtl) {
6641      slideEl.style.marginLeft = '';
6642    } else {
6643      slideEl.style.marginRight = '';
6644    }
6645    slideEl.style.marginBottom = '';
6646    slideEl.style.marginTop = '';
6647  });
6648
6649  // reset cssMode offsets
6650  if (params.centeredSlides && params.cssMode) {
6651    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-before', '');
6652    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-after', '');
6653  }
6654  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
6655  if (gridEnabled) {
6656    swiper.grid.initSlides(slides);
6657  } else if (swiper.grid) {
6658    swiper.grid.unsetSlides();
6659  }
6660
6661  // Calc slides
6662  let slideSize;
6663  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {
6664    return typeof params.breakpoints[key].slidesPerView !== 'undefined';
6665  }).length > 0;
6666  for (let i = 0; i < slidesLength; i += 1) {
6667    slideSize = 0;
6668    let slide;
6669    if (slides[i]) slide = slides[i];
6670    if (gridEnabled) {
6671      swiper.grid.updateSlide(i, slide, slides);
6672    }
6673    if (slides[i] && (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(slide, 'display') === 'none') continue; // eslint-disable-line
6674
6675    if (params.slidesPerView === 'auto') {
6676      if (shouldResetSlideSize) {
6677        slides[i].style[swiper.getDirectionLabel('width')] = ``;
6678      }
6679      const slideStyles = getComputedStyle(slide);
6680      const currentTransform = slide.style.transform;
6681      const currentWebKitTransform = slide.style.webkitTransform;
6682      if (currentTransform) {
6683        slide.style.transform = 'none';
6684      }
6685      if (currentWebKitTransform) {
6686        slide.style.webkitTransform = 'none';
6687      }
6688      if (params.roundLengths) {
6689        slideSize = swiper.isHorizontal() ? (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(slide, 'width', true) : (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(slide, 'height', true);
6690      } else {
6691        // eslint-disable-next-line
6692        const width = getDirectionPropertyValue(slideStyles, 'width');
6693        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');
6694        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');
6695        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');
6696        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');
6697        const boxSizing = slideStyles.getPropertyValue('box-sizing');
6698        if (boxSizing && boxSizing === 'border-box') {
6699          slideSize = width + marginLeft + marginRight;
6700        } else {
6701          const {
6702            clientWidth,
6703            offsetWidth
6704          } = slide;
6705          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
6706        }
6707      }
6708      if (currentTransform) {
6709        slide.style.transform = currentTransform;
6710      }
6711      if (currentWebKitTransform) {
6712        slide.style.webkitTransform = currentWebKitTransform;
6713      }
6714      if (params.roundLengths) slideSize = Math.floor(slideSize);
6715    } else {
6716      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
6717      if (params.roundLengths) slideSize = Math.floor(slideSize);
6718      if (slides[i]) {
6719        slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;
6720      }
6721    }
6722    if (slides[i]) {
6723      slides[i].swiperSlideSize = slideSize;
6724    }
6725    slidesSizesGrid.push(slideSize);
6726    if (params.centeredSlides) {
6727      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
6728      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
6729      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
6730      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
6731      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
6732      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
6733      slidesGrid.push(slidePosition);
6734    } else {
6735      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
6736      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
6737      slidesGrid.push(slidePosition);
6738      slidePosition = slidePosition + slideSize + spaceBetween;
6739    }
6740    swiper.virtualSize += slideSize + spaceBetween;
6741    prevSlideSize = slideSize;
6742    index += 1;
6743  }
6744  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
6745  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
6746    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;
6747  }
6748  if (params.setWrapperSize) {
6749    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
6750  }
6751  if (gridEnabled) {
6752    swiper.grid.updateWrapperSize(slideSize, snapGrid);
6753  }
6754
6755  // Remove last grid elements depending on width
6756  if (!params.centeredSlides) {
6757    const newSlidesGrid = [];
6758    for (let i = 0; i < snapGrid.length; i += 1) {
6759      let slidesGridItem = snapGrid[i];
6760      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
6761      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
6762        newSlidesGrid.push(slidesGridItem);
6763      }
6764    }
6765    snapGrid = newSlidesGrid;
6766    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
6767      snapGrid.push(swiper.virtualSize - swiperSize);
6768    }
6769  }
6770  if (isVirtual && params.loop) {
6771    const size = slidesSizesGrid[0] + spaceBetween;
6772    if (params.slidesPerGroup > 1) {
6773      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);
6774      const groupSize = size * params.slidesPerGroup;
6775      for (let i = 0; i < groups; i += 1) {
6776        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);
6777      }
6778    }
6779    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {
6780      if (params.slidesPerGroup === 1) {
6781        snapGrid.push(snapGrid[snapGrid.length - 1] + size);
6782      }
6783      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);
6784      swiper.virtualSize += size;
6785    }
6786  }
6787  if (snapGrid.length === 0) snapGrid = [0];
6788  if (spaceBetween !== 0) {
6789    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');
6790    slides.filter((_, slideIndex) => {
6791      if (!params.cssMode || params.loop) return true;
6792      if (slideIndex === slides.length - 1) {
6793        return false;
6794      }
6795      return true;
6796    }).forEach(slideEl => {
6797      slideEl.style[key] = `${spaceBetween}px`;
6798    });
6799  }
6800  if (params.centeredSlides && params.centeredSlidesBounds) {
6801    let allSlidesSize = 0;
6802    slidesSizesGrid.forEach(slideSizeValue => {
6803      allSlidesSize += slideSizeValue + (spaceBetween || 0);
6804    });
6805    allSlidesSize -= spaceBetween;
6806    const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;
6807    snapGrid = snapGrid.map(snap => {
6808      if (snap <= 0) return -offsetBefore;
6809      if (snap > maxSnap) return maxSnap + offsetAfter;
6810      return snap;
6811    });
6812  }
6813  if (params.centerInsufficientSlides) {
6814    let allSlidesSize = 0;
6815    slidesSizesGrid.forEach(slideSizeValue => {
6816      allSlidesSize += slideSizeValue + (spaceBetween || 0);
6817    });
6818    allSlidesSize -= spaceBetween;
6819    const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);
6820    if (allSlidesSize + offsetSize < swiperSize) {
6821      const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;
6822      snapGrid.forEach((snap, snapIndex) => {
6823        snapGrid[snapIndex] = snap - allSlidesOffset;
6824      });
6825      slidesGrid.forEach((snap, snapIndex) => {
6826        slidesGrid[snapIndex] = snap + allSlidesOffset;
6827      });
6828    }
6829  }
6830  Object.assign(swiper, {
6831    slides,
6832    snapGrid,
6833    slidesGrid,
6834    slidesSizesGrid
6835  });
6836  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
6837    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
6838    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
6839    const addToSnapGrid = -swiper.snapGrid[0];
6840    const addToSlidesGrid = -swiper.slidesGrid[0];
6841    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);
6842    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);
6843  }
6844  if (slidesLength !== previousSlidesLength) {
6845    swiper.emit('slidesLengthChange');
6846  }
6847  if (snapGrid.length !== previousSnapGridLength) {
6848    if (swiper.params.watchOverflow) swiper.checkOverflow();
6849    swiper.emit('snapGridLengthChange');
6850  }
6851  if (slidesGrid.length !== previousSlidesGridLength) {
6852    swiper.emit('slidesGridLengthChange');
6853  }
6854  if (params.watchSlidesProgress) {
6855    swiper.updateSlidesOffset();
6856  }
6857  swiper.emit('slidesUpdated');
6858  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
6859    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
6860    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);
6861    if (slidesLength <= params.maxBackfaceHiddenSlides) {
6862      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);
6863    } else if (hasClassBackfaceClassAdded) {
6864      swiper.el.classList.remove(backFaceHiddenClass);
6865    }
6866  }
6867}
6868
6869function updateAutoHeight(speed) {
6870  const swiper = this;
6871  const activeSlides = [];
6872  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
6873  let newHeight = 0;
6874  let i;
6875  if (typeof speed === 'number') {
6876    swiper.setTransition(speed);
6877  } else if (speed === true) {
6878    swiper.setTransition(swiper.params.speed);
6879  }
6880  const getSlideByIndex = index => {
6881    if (isVirtual) {
6882      return swiper.slides[swiper.getSlideIndexByData(index)];
6883    }
6884    return swiper.slides[index];
6885  };
6886  // Find slides currently in view
6887  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
6888    if (swiper.params.centeredSlides) {
6889      (swiper.visibleSlides || []).forEach(slide => {
6890        activeSlides.push(slide);
6891      });
6892    } else {
6893      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
6894        const index = swiper.activeIndex + i;
6895        if (index > swiper.slides.length && !isVirtual) break;
6896        activeSlides.push(getSlideByIndex(index));
6897      }
6898    }
6899  } else {
6900    activeSlides.push(getSlideByIndex(swiper.activeIndex));
6901  }
6902
6903  // Find new height from highest slide in view
6904  for (i = 0; i < activeSlides.length; i += 1) {
6905    if (typeof activeSlides[i] !== 'undefined') {
6906      const height = activeSlides[i].offsetHeight;
6907      newHeight = height > newHeight ? height : newHeight;
6908    }
6909  }
6910
6911  // Update Height
6912  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
6913}
6914
6915function updateSlidesOffset() {
6916  const swiper = this;
6917  const slides = swiper.slides;
6918  // eslint-disable-next-line
6919  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;
6920  for (let i = 0; i < slides.length; i += 1) {
6921    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();
6922  }
6923}
6924
6925const toggleSlideClasses$1 = (slideEl, condition, className) => {
6926  if (condition && !slideEl.classList.contains(className)) {
6927    slideEl.classList.add(className);
6928  } else if (!condition && slideEl.classList.contains(className)) {
6929    slideEl.classList.remove(className);
6930  }
6931};
6932function updateSlidesProgress(translate) {
6933  if (translate === void 0) {
6934    translate = this && this.translate || 0;
6935  }
6936  const swiper = this;
6937  const params = swiper.params;
6938  const {
6939    slides,
6940    rtlTranslate: rtl,
6941    snapGrid
6942  } = swiper;
6943  if (slides.length === 0) return;
6944  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
6945  let offsetCenter = -translate;
6946  if (rtl) offsetCenter = translate;
6947  swiper.visibleSlidesIndexes = [];
6948  swiper.visibleSlides = [];
6949  let spaceBetween = params.spaceBetween;
6950  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
6951    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
6952  } else if (typeof spaceBetween === 'string') {
6953    spaceBetween = parseFloat(spaceBetween);
6954  }
6955  for (let i = 0; i < slides.length; i += 1) {
6956    const slide = slides[i];
6957    let slideOffset = slide.swiperSlideOffset;
6958    if (params.cssMode && params.centeredSlides) {
6959      slideOffset -= slides[0].swiperSlideOffset;
6960    }
6961    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
6962    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
6963    const slideBefore = -(offsetCenter - slideOffset);
6964    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
6965    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];
6966    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
6967    if (isVisible) {
6968      swiper.visibleSlides.push(slide);
6969      swiper.visibleSlidesIndexes.push(i);
6970    }
6971    toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);
6972    toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);
6973    slide.progress = rtl ? -slideProgress : slideProgress;
6974    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
6975  }
6976}
6977
6978function updateProgress(translate) {
6979  const swiper = this;
6980  if (typeof translate === 'undefined') {
6981    const multiplier = swiper.rtlTranslate ? -1 : 1;
6982    // eslint-disable-next-line
6983    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
6984  }
6985  const params = swiper.params;
6986  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
6987  let {
6988    progress,
6989    isBeginning,
6990    isEnd,
6991    progressLoop
6992  } = swiper;
6993  const wasBeginning = isBeginning;
6994  const wasEnd = isEnd;
6995  if (translatesDiff === 0) {
6996    progress = 0;
6997    isBeginning = true;
6998    isEnd = true;
6999  } else {
7000    progress = (translate - swiper.minTranslate()) / translatesDiff;
7001    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;
7002    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;
7003    isBeginning = isBeginningRounded || progress <= 0;
7004    isEnd = isEndRounded || progress >= 1;
7005    if (isBeginningRounded) progress = 0;
7006    if (isEndRounded) progress = 1;
7007  }
7008  if (params.loop) {
7009    const firstSlideIndex = swiper.getSlideIndexByData(0);
7010    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);
7011    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];
7012    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];
7013    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];
7014    const translateAbs = Math.abs(translate);
7015    if (translateAbs >= firstSlideTranslate) {
7016      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;
7017    } else {
7018      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;
7019    }
7020    if (progressLoop > 1) progressLoop -= 1;
7021  }
7022  Object.assign(swiper, {
7023    progress,
7024    progressLoop,
7025    isBeginning,
7026    isEnd
7027  });
7028  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);
7029  if (isBeginning && !wasBeginning) {
7030    swiper.emit('reachBeginning toEdge');
7031  }
7032  if (isEnd && !wasEnd) {
7033    swiper.emit('reachEnd toEdge');
7034  }
7035  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
7036    swiper.emit('fromEdge');
7037  }
7038  swiper.emit('progress', progress);
7039}
7040
7041const toggleSlideClasses = (slideEl, condition, className) => {
7042  if (condition && !slideEl.classList.contains(className)) {
7043    slideEl.classList.add(className);
7044  } else if (!condition && slideEl.classList.contains(className)) {
7045    slideEl.classList.remove(className);
7046  }
7047};
7048function updateSlidesClasses() {
7049  const swiper = this;
7050  const {
7051    slides,
7052    params,
7053    slidesEl,
7054    activeIndex
7055  } = swiper;
7056  const isVirtual = swiper.virtual && params.virtual.enabled;
7057  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
7058  const getFilteredSlide = selector => {
7059    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];
7060  };
7061  let activeSlide;
7062  let prevSlide;
7063  let nextSlide;
7064  if (isVirtual) {
7065    if (params.loop) {
7066      let slideIndex = activeIndex - swiper.virtual.slidesBefore;
7067      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;
7068      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;
7069      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`);
7070    } else {
7071      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`);
7072    }
7073  } else {
7074    if (gridEnabled) {
7075      activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];
7076      nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];
7077      prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];
7078    } else {
7079      activeSlide = slides[activeIndex];
7080    }
7081  }
7082  if (activeSlide) {
7083    if (!gridEnabled) {
7084      // Next Slide
7085      nextSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
7086      if (params.loop && !nextSlide) {
7087        nextSlide = slides[0];
7088      }
7089
7090      // Prev Slide
7091      prevSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.r)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
7092      if (params.loop && !prevSlide === 0) {
7093        prevSlide = slides[slides.length - 1];
7094      }
7095    }
7096  }
7097  slides.forEach(slideEl => {
7098    toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);
7099    toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);
7100    toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);
7101  });
7102  swiper.emitSlidesClasses();
7103}
7104
7105const processLazyPreloader = (swiper, imageEl) => {
7106  if (!swiper || swiper.destroyed || !swiper.params) return;
7107  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
7108  const slideEl = imageEl.closest(slideSelector());
7109  if (slideEl) {
7110    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7111    if (!lazyEl && swiper.isElement) {
7112      if (slideEl.shadowRoot) {
7113        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7114      } else {
7115        // init later
7116        requestAnimationFrame(() => {
7117          if (slideEl.shadowRoot) {
7118            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7119            if (lazyEl) lazyEl.remove();
7120          }
7121        });
7122      }
7123    }
7124    if (lazyEl) lazyEl.remove();
7125  }
7126};
7127const unlazy = (swiper, index) => {
7128  if (!swiper.slides[index]) return;
7129  const imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
7130  if (imageEl) imageEl.removeAttribute('loading');
7131};
7132const preload = swiper => {
7133  if (!swiper || swiper.destroyed || !swiper.params) return;
7134  let amount = swiper.params.lazyPreloadPrevNext;
7135  const len = swiper.slides.length;
7136  if (!len || !amount || amount < 0) return;
7137  amount = Math.min(amount, len);
7138  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);
7139  const activeIndex = swiper.activeIndex;
7140  if (swiper.params.grid && swiper.params.grid.rows > 1) {
7141    const activeColumn = activeIndex;
7142    const preloadColumns = [activeColumn - amount];
7143    preloadColumns.push(...Array.from({
7144      length: amount
7145    }).map((_, i) => {
7146      return activeColumn + slidesPerView + i;
7147    }));
7148    swiper.slides.forEach((slideEl, i) => {
7149      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);
7150    });
7151    return;
7152  }
7153  const slideIndexLastInView = activeIndex + slidesPerView - 1;
7154  if (swiper.params.rewind || swiper.params.loop) {
7155    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
7156      const realIndex = (i % len + len) % len;
7157      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
7158    }
7159  } else {
7160    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
7161      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
7162        unlazy(swiper, i);
7163      }
7164    }
7165  }
7166};
7167
7168function getActiveIndexByTranslate(swiper) {
7169  const {
7170    slidesGrid,
7171    params
7172  } = swiper;
7173  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7174  let activeIndex;
7175  for (let i = 0; i < slidesGrid.length; i += 1) {
7176    if (typeof slidesGrid[i + 1] !== 'undefined') {
7177      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
7178        activeIndex = i;
7179      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
7180        activeIndex = i + 1;
7181      }
7182    } else if (translate >= slidesGrid[i]) {
7183      activeIndex = i;
7184    }
7185  }
7186  // Normalize slideIndex
7187  if (params.normalizeSlideIndex) {
7188    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;
7189  }
7190  return activeIndex;
7191}
7192function updateActiveIndex(newActiveIndex) {
7193  const swiper = this;
7194  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7195  const {
7196    snapGrid,
7197    params,
7198    activeIndex: previousIndex,
7199    realIndex: previousRealIndex,
7200    snapIndex: previousSnapIndex
7201  } = swiper;
7202  let activeIndex = newActiveIndex;
7203  let snapIndex;
7204  const getVirtualRealIndex = aIndex => {
7205    let realIndex = aIndex - swiper.virtual.slidesBefore;
7206    if (realIndex < 0) {
7207      realIndex = swiper.virtual.slides.length + realIndex;
7208    }
7209    if (realIndex >= swiper.virtual.slides.length) {
7210      realIndex -= swiper.virtual.slides.length;
7211    }
7212    return realIndex;
7213  };
7214  if (typeof activeIndex === 'undefined') {
7215    activeIndex = getActiveIndexByTranslate(swiper);
7216  }
7217  if (snapGrid.indexOf(translate) >= 0) {
7218    snapIndex = snapGrid.indexOf(translate);
7219  } else {
7220    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
7221    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
7222  }
7223  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
7224  if (activeIndex === previousIndex && !swiper.params.loop) {
7225    if (snapIndex !== previousSnapIndex) {
7226      swiper.snapIndex = snapIndex;
7227      swiper.emit('snapIndexChange');
7228    }
7229    return;
7230  }
7231  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
7232    swiper.realIndex = getVirtualRealIndex(activeIndex);
7233    return;
7234  }
7235  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
7236
7237  // Get real index
7238  let realIndex;
7239  if (swiper.virtual && params.virtual.enabled && params.loop) {
7240    realIndex = getVirtualRealIndex(activeIndex);
7241  } else if (gridEnabled) {
7242    const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];
7243    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
7244    if (Number.isNaN(activeSlideIndex)) {
7245      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);
7246    }
7247    realIndex = Math.floor(activeSlideIndex / params.grid.rows);
7248  } else if (swiper.slides[activeIndex]) {
7249    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');
7250    if (slideIndex) {
7251      realIndex = parseInt(slideIndex, 10);
7252    } else {
7253      realIndex = activeIndex;
7254    }
7255  } else {
7256    realIndex = activeIndex;
7257  }
7258  Object.assign(swiper, {
7259    previousSnapIndex,
7260    snapIndex,
7261    previousRealIndex,
7262    realIndex,
7263    previousIndex,
7264    activeIndex
7265  });
7266  if (swiper.initialized) {
7267    preload(swiper);
7268  }
7269  swiper.emit('activeIndexChange');
7270  swiper.emit('snapIndexChange');
7271  if (swiper.initialized || swiper.params.runCallbacksOnInit) {
7272    if (previousRealIndex !== realIndex) {
7273      swiper.emit('realIndexChange');
7274    }
7275    swiper.emit('slideChange');
7276  }
7277}
7278
7279function updateClickedSlide(el, path) {
7280  const swiper = this;
7281  const params = swiper.params;
7282  let slide = el.closest(`.${params.slideClass}, swiper-slide`);
7283  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {
7284    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {
7285      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {
7286        slide = pathEl;
7287      }
7288    });
7289  }
7290  let slideFound = false;
7291  let slideIndex;
7292  if (slide) {
7293    for (let i = 0; i < swiper.slides.length; i += 1) {
7294      if (swiper.slides[i] === slide) {
7295        slideFound = true;
7296        slideIndex = i;
7297        break;
7298      }
7299    }
7300  }
7301  if (slide && slideFound) {
7302    swiper.clickedSlide = slide;
7303    if (swiper.virtual && swiper.params.virtual.enabled) {
7304      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);
7305    } else {
7306      swiper.clickedIndex = slideIndex;
7307    }
7308  } else {
7309    swiper.clickedSlide = undefined;
7310    swiper.clickedIndex = undefined;
7311    return;
7312  }
7313  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
7314    swiper.slideToClickedSlide();
7315  }
7316}
7317
7318var update = {
7319  updateSize,
7320  updateSlides,
7321  updateAutoHeight,
7322  updateSlidesOffset,
7323  updateSlidesProgress,
7324  updateProgress,
7325  updateSlidesClasses,
7326  updateActiveIndex,
7327  updateClickedSlide
7328};
7329
7330function getSwiperTranslate(axis) {
7331  if (axis === void 0) {
7332    axis = this.isHorizontal() ? 'x' : 'y';
7333  }
7334  const swiper = this;
7335  const {
7336    params,
7337    rtlTranslate: rtl,
7338    translate,
7339    wrapperEl
7340  } = swiper;
7341  if (params.virtualTranslate) {
7342    return rtl ? -translate : translate;
7343  }
7344  if (params.cssMode) {
7345    return translate;
7346  }
7347  let currentTranslate = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(wrapperEl, axis);
7348  currentTranslate += swiper.cssOverflowAdjustment();
7349  if (rtl) currentTranslate = -currentTranslate;
7350  return currentTranslate || 0;
7351}
7352
7353function setTranslate(translate, byController) {
7354  const swiper = this;
7355  const {
7356    rtlTranslate: rtl,
7357    params,
7358    wrapperEl,
7359    progress
7360  } = swiper;
7361  let x = 0;
7362  let y = 0;
7363  const z = 0;
7364  if (swiper.isHorizontal()) {
7365    x = rtl ? -translate : translate;
7366  } else {
7367    y = translate;
7368  }
7369  if (params.roundLengths) {
7370    x = Math.floor(x);
7371    y = Math.floor(y);
7372  }
7373  swiper.previousTranslate = swiper.translate;
7374  swiper.translate = swiper.isHorizontal() ? x : y;
7375  if (params.cssMode) {
7376    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
7377  } else if (!params.virtualTranslate) {
7378    if (swiper.isHorizontal()) {
7379      x -= swiper.cssOverflowAdjustment();
7380    } else {
7381      y -= swiper.cssOverflowAdjustment();
7382    }
7383    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;
7384  }
7385
7386  // Check if we need to update progress
7387  let newProgress;
7388  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
7389  if (translatesDiff === 0) {
7390    newProgress = 0;
7391  } else {
7392    newProgress = (translate - swiper.minTranslate()) / translatesDiff;
7393  }
7394  if (newProgress !== progress) {
7395    swiper.updateProgress(translate);
7396  }
7397  swiper.emit('setTranslate', swiper.translate, byController);
7398}
7399
7400function minTranslate() {
7401  return -this.snapGrid[0];
7402}
7403
7404function maxTranslate() {
7405  return -this.snapGrid[this.snapGrid.length - 1];
7406}
7407
7408function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
7409  if (translate === void 0) {
7410    translate = 0;
7411  }
7412  if (speed === void 0) {
7413    speed = this.params.speed;
7414  }
7415  if (runCallbacks === void 0) {
7416    runCallbacks = true;
7417  }
7418  if (translateBounds === void 0) {
7419    translateBounds = true;
7420  }
7421  const swiper = this;
7422  const {
7423    params,
7424    wrapperEl
7425  } = swiper;
7426  if (swiper.animating && params.preventInteractionOnTransition) {
7427    return false;
7428  }
7429  const minTranslate = swiper.minTranslate();
7430  const maxTranslate = swiper.maxTranslate();
7431  let newTranslate;
7432  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;
7433
7434  // Update progress
7435  swiper.updateProgress(newTranslate);
7436  if (params.cssMode) {
7437    const isH = swiper.isHorizontal();
7438    if (speed === 0) {
7439      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
7440    } else {
7441      if (!swiper.support.smoothScroll) {
7442        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)({
7443          swiper,
7444          targetPosition: -newTranslate,
7445          side: isH ? 'left' : 'top'
7446        });
7447        return true;
7448      }
7449      wrapperEl.scrollTo({
7450        [isH ? 'left' : 'top']: -newTranslate,
7451        behavior: 'smooth'
7452      });
7453    }
7454    return true;
7455  }
7456  if (speed === 0) {
7457    swiper.setTransition(0);
7458    swiper.setTranslate(newTranslate);
7459    if (runCallbacks) {
7460      swiper.emit('beforeTransitionStart', speed, internal);
7461      swiper.emit('transitionEnd');
7462    }
7463  } else {
7464    swiper.setTransition(speed);
7465    swiper.setTranslate(newTranslate);
7466    if (runCallbacks) {
7467      swiper.emit('beforeTransitionStart', speed, internal);
7468      swiper.emit('transitionStart');
7469    }
7470    if (!swiper.animating) {
7471      swiper.animating = true;
7472      if (!swiper.onTranslateToWrapperTransitionEnd) {
7473        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
7474          if (!swiper || swiper.destroyed) return;
7475          if (e.target !== this) return;
7476          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
7477          swiper.onTranslateToWrapperTransitionEnd = null;
7478          delete swiper.onTranslateToWrapperTransitionEnd;
7479          swiper.animating = false;
7480          if (runCallbacks) {
7481            swiper.emit('transitionEnd');
7482          }
7483        };
7484      }
7485      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
7486    }
7487  }
7488  return true;
7489}
7490
7491var translate = {
7492  getTranslate: getSwiperTranslate,
7493  setTranslate,
7494  minTranslate,
7495  maxTranslate,
7496  translateTo
7497};
7498
7499function setTransition(duration, byController) {
7500  const swiper = this;
7501  if (!swiper.params.cssMode) {
7502    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;
7503    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';
7504  }
7505  swiper.emit('setTransition', duration, byController);
7506}
7507
7508function transitionEmit(_ref) {
7509  let {
7510    swiper,
7511    runCallbacks,
7512    direction,
7513    step
7514  } = _ref;
7515  const {
7516    activeIndex,
7517    previousIndex
7518  } = swiper;
7519  let dir = direction;
7520  if (!dir) {
7521    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';
7522  }
7523  swiper.emit(`transition${step}`);
7524  if (runCallbacks && activeIndex !== previousIndex) {
7525    if (dir === 'reset') {
7526      swiper.emit(`slideResetTransition${step}`);
7527      return;
7528    }
7529    swiper.emit(`slideChangeTransition${step}`);
7530    if (dir === 'next') {
7531      swiper.emit(`slideNextTransition${step}`);
7532    } else {
7533      swiper.emit(`slidePrevTransition${step}`);
7534    }
7535  }
7536}
7537
7538function transitionStart(runCallbacks, direction) {
7539  if (runCallbacks === void 0) {
7540    runCallbacks = true;
7541  }
7542  const swiper = this;
7543  const {
7544    params
7545  } = swiper;
7546  if (params.cssMode) return;
7547  if (params.autoHeight) {
7548    swiper.updateAutoHeight();
7549  }
7550  transitionEmit({
7551    swiper,
7552    runCallbacks,
7553    direction,
7554    step: 'Start'
7555  });
7556}
7557
7558function transitionEnd(runCallbacks, direction) {
7559  if (runCallbacks === void 0) {
7560    runCallbacks = true;
7561  }
7562  const swiper = this;
7563  const {
7564    params
7565  } = swiper;
7566  swiper.animating = false;
7567  if (params.cssMode) return;
7568  swiper.setTransition(0);
7569  transitionEmit({
7570    swiper,
7571    runCallbacks,
7572    direction,
7573    step: 'End'
7574  });
7575}
7576
7577var transition = {
7578  setTransition,
7579  transitionStart,
7580  transitionEnd
7581};
7582
7583function slideTo(index, speed, runCallbacks, internal, initial) {
7584  if (index === void 0) {
7585    index = 0;
7586  }
7587  if (runCallbacks === void 0) {
7588    runCallbacks = true;
7589  }
7590  if (typeof index === 'string') {
7591    index = parseInt(index, 10);
7592  }
7593  const swiper = this;
7594  let slideIndex = index;
7595  if (slideIndex < 0) slideIndex = 0;
7596  const {
7597    params,
7598    snapGrid,
7599    slidesGrid,
7600    previousIndex,
7601    activeIndex,
7602    rtlTranslate: rtl,
7603    wrapperEl,
7604    enabled
7605  } = swiper;
7606  if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {
7607    return false;
7608  }
7609  if (typeof speed === 'undefined') {
7610    speed = swiper.params.speed;
7611  }
7612  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
7613  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
7614  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
7615  const translate = -snapGrid[snapIndex];
7616  // Normalize slideIndex
7617  if (params.normalizeSlideIndex) {
7618    for (let i = 0; i < slidesGrid.length; i += 1) {
7619      const normalizedTranslate = -Math.floor(translate * 100);
7620      const normalizedGrid = Math.floor(slidesGrid[i] * 100);
7621      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);
7622      if (typeof slidesGrid[i + 1] !== 'undefined') {
7623        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {
7624          slideIndex = i;
7625        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {
7626          slideIndex = i + 1;
7627        }
7628      } else if (normalizedTranslate >= normalizedGrid) {
7629        slideIndex = i;
7630      }
7631    }
7632  }
7633  // Directions locks
7634  if (swiper.initialized && slideIndex !== activeIndex) {
7635    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {
7636      return false;
7637    }
7638    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
7639      if ((activeIndex || 0) !== slideIndex) {
7640        return false;
7641      }
7642    }
7643  }
7644  if (slideIndex !== (previousIndex || 0) && runCallbacks) {
7645    swiper.emit('beforeSlideChangeStart');
7646  }
7647
7648  // Update progress
7649  swiper.updateProgress(translate);
7650  let direction;
7651  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';
7652
7653  // initial virtual
7654  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
7655  const isInitialVirtual = isVirtual && initial;
7656  // Update Index
7657  if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {
7658    swiper.updateActiveIndex(slideIndex);
7659    // Update Height
7660    if (params.autoHeight) {
7661      swiper.updateAutoHeight();
7662    }
7663    swiper.updateSlidesClasses();
7664    if (params.effect !== 'slide') {
7665      swiper.setTranslate(translate);
7666    }
7667    if (direction !== 'reset') {
7668      swiper.transitionStart(runCallbacks, direction);
7669      swiper.transitionEnd(runCallbacks, direction);
7670    }
7671    return false;
7672  }
7673  if (params.cssMode) {
7674    const isH = swiper.isHorizontal();
7675    const t = rtl ? translate : -translate;
7676    if (speed === 0) {
7677      if (isVirtual) {
7678        swiper.wrapperEl.style.scrollSnapType = 'none';
7679        swiper._immediateVirtual = true;
7680      }
7681      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {
7682        swiper._cssModeVirtualInitialSet = true;
7683        requestAnimationFrame(() => {
7684          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
7685        });
7686      } else {
7687        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
7688      }
7689      if (isVirtual) {
7690        requestAnimationFrame(() => {
7691          swiper.wrapperEl.style.scrollSnapType = '';
7692          swiper._immediateVirtual = false;
7693        });
7694      }
7695    } else {
7696      if (!swiper.support.smoothScroll) {
7697        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)({
7698          swiper,
7699          targetPosition: t,
7700          side: isH ? 'left' : 'top'
7701        });
7702        return true;
7703      }
7704      wrapperEl.scrollTo({
7705        [isH ? 'left' : 'top']: t,
7706        behavior: 'smooth'
7707      });
7708    }
7709    return true;
7710  }
7711  swiper.setTransition(speed);
7712  swiper.setTranslate(translate);
7713  swiper.updateActiveIndex(slideIndex);
7714  swiper.updateSlidesClasses();
7715  swiper.emit('beforeTransitionStart', speed, internal);
7716  swiper.transitionStart(runCallbacks, direction);
7717  if (speed === 0) {
7718    swiper.transitionEnd(runCallbacks, direction);
7719  } else if (!swiper.animating) {
7720    swiper.animating = true;
7721    if (!swiper.onSlideToWrapperTransitionEnd) {
7722      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
7723        if (!swiper || swiper.destroyed) return;
7724        if (e.target !== this) return;
7725        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
7726        swiper.onSlideToWrapperTransitionEnd = null;
7727        delete swiper.onSlideToWrapperTransitionEnd;
7728        swiper.transitionEnd(runCallbacks, direction);
7729      };
7730    }
7731    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
7732  }
7733  return true;
7734}
7735
7736function slideToLoop(index, speed, runCallbacks, internal) {
7737  if (index === void 0) {
7738    index = 0;
7739  }
7740  if (runCallbacks === void 0) {
7741    runCallbacks = true;
7742  }
7743  if (typeof index === 'string') {
7744    const indexAsNumber = parseInt(index, 10);
7745    index = indexAsNumber;
7746  }
7747  const swiper = this;
7748  if (swiper.destroyed) return;
7749  if (typeof speed === 'undefined') {
7750    speed = swiper.params.speed;
7751  }
7752  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
7753  let newIndex = index;
7754  if (swiper.params.loop) {
7755    if (swiper.virtual && swiper.params.virtual.enabled) {
7756      // eslint-disable-next-line
7757      newIndex = newIndex + swiper.virtual.slidesBefore;
7758    } else {
7759      let targetSlideIndex;
7760      if (gridEnabled) {
7761        const slideIndex = newIndex * swiper.params.grid.rows;
7762        targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;
7763      } else {
7764        targetSlideIndex = swiper.getSlideIndexByData(newIndex);
7765      }
7766      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;
7767      const {
7768        centeredSlides
7769      } = swiper.params;
7770      let slidesPerView = swiper.params.slidesPerView;
7771      if (slidesPerView === 'auto') {
7772        slidesPerView = swiper.slidesPerViewDynamic();
7773      } else {
7774        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));
7775        if (centeredSlides && slidesPerView % 2 === 0) {
7776          slidesPerView = slidesPerView + 1;
7777        }
7778      }
7779      let needLoopFix = cols - targetSlideIndex < slidesPerView;
7780      if (centeredSlides) {
7781        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);
7782      }
7783      if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {
7784        needLoopFix = false;
7785      }
7786      if (needLoopFix) {
7787        const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';
7788        swiper.loopFix({
7789          direction,
7790          slideTo: true,
7791          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,
7792          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined
7793        });
7794      }
7795      if (gridEnabled) {
7796        const slideIndex = newIndex * swiper.params.grid.rows;
7797        newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;
7798      } else {
7799        newIndex = swiper.getSlideIndexByData(newIndex);
7800      }
7801    }
7802  }
7803  requestAnimationFrame(() => {
7804    swiper.slideTo(newIndex, speed, runCallbacks, internal);
7805  });
7806  return swiper;
7807}
7808
7809/* eslint no-unused-vars: "off" */
7810function slideNext(speed, runCallbacks, internal) {
7811  if (runCallbacks === void 0) {
7812    runCallbacks = true;
7813  }
7814  const swiper = this;
7815  const {
7816    enabled,
7817    params,
7818    animating
7819  } = swiper;
7820  if (!enabled || swiper.destroyed) return swiper;
7821  if (typeof speed === 'undefined') {
7822    speed = swiper.params.speed;
7823  }
7824  let perGroup = params.slidesPerGroup;
7825  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
7826    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
7827  }
7828  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
7829  const isVirtual = swiper.virtual && params.virtual.enabled;
7830  if (params.loop) {
7831    if (animating && !isVirtual && params.loopPreventsSliding) return false;
7832    swiper.loopFix({
7833      direction: 'next'
7834    });
7835    // eslint-disable-next-line
7836    swiper._clientLeft = swiper.wrapperEl.clientLeft;
7837    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {
7838      requestAnimationFrame(() => {
7839        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
7840      });
7841      return true;
7842    }
7843  }
7844  if (params.rewind && swiper.isEnd) {
7845    return swiper.slideTo(0, speed, runCallbacks, internal);
7846  }
7847  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
7848}
7849
7850/* eslint no-unused-vars: "off" */
7851function slidePrev(speed, runCallbacks, internal) {
7852  if (runCallbacks === void 0) {
7853    runCallbacks = true;
7854  }
7855  const swiper = this;
7856  const {
7857    params,
7858    snapGrid,
7859    slidesGrid,
7860    rtlTranslate,
7861    enabled,
7862    animating
7863  } = swiper;
7864  if (!enabled || swiper.destroyed) return swiper;
7865  if (typeof speed === 'undefined') {
7866    speed = swiper.params.speed;
7867  }
7868  const isVirtual = swiper.virtual && params.virtual.enabled;
7869  if (params.loop) {
7870    if (animating && !isVirtual && params.loopPreventsSliding) return false;
7871    swiper.loopFix({
7872      direction: 'prev'
7873    });
7874    // eslint-disable-next-line
7875    swiper._clientLeft = swiper.wrapperEl.clientLeft;
7876  }
7877  const translate = rtlTranslate ? swiper.translate : -swiper.translate;
7878  function normalize(val) {
7879    if (val < 0) return -Math.floor(Math.abs(val));
7880    return Math.floor(val);
7881  }
7882  const normalizedTranslate = normalize(translate);
7883  const normalizedSnapGrid = snapGrid.map(val => normalize(val));
7884  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
7885  if (typeof prevSnap === 'undefined' && params.cssMode) {
7886    let prevSnapIndex;
7887    snapGrid.forEach((snap, snapIndex) => {
7888      if (normalizedTranslate >= snap) {
7889        // prevSnap = snap;
7890        prevSnapIndex = snapIndex;
7891      }
7892    });
7893    if (typeof prevSnapIndex !== 'undefined') {
7894      prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];
7895    }
7896  }
7897  let prevIndex = 0;
7898  if (typeof prevSnap !== 'undefined') {
7899    prevIndex = slidesGrid.indexOf(prevSnap);
7900    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
7901    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
7902      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
7903      prevIndex = Math.max(prevIndex, 0);
7904    }
7905  }
7906  if (params.rewind && swiper.isBeginning) {
7907    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
7908    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
7909  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {
7910    requestAnimationFrame(() => {
7911      swiper.slideTo(prevIndex, speed, runCallbacks, internal);
7912    });
7913    return true;
7914  }
7915  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
7916}
7917
7918/* eslint no-unused-vars: "off" */
7919function slideReset(speed, runCallbacks, internal) {
7920  if (runCallbacks === void 0) {
7921    runCallbacks = true;
7922  }
7923  const swiper = this;
7924  if (swiper.destroyed) return;
7925  if (typeof speed === 'undefined') {
7926    speed = swiper.params.speed;
7927  }
7928  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
7929}
7930
7931/* eslint no-unused-vars: "off" */
7932function slideToClosest(speed, runCallbacks, internal, threshold) {
7933  if (runCallbacks === void 0) {
7934    runCallbacks = true;
7935  }
7936  if (threshold === void 0) {
7937    threshold = 0.5;
7938  }
7939  const swiper = this;
7940  if (swiper.destroyed) return;
7941  if (typeof speed === 'undefined') {
7942    speed = swiper.params.speed;
7943  }
7944  let index = swiper.activeIndex;
7945  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
7946  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
7947  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7948  if (translate >= swiper.snapGrid[snapIndex]) {
7949    // The current translate is on or after the current snap index, so the choice
7950    // is between the current index and the one after it.
7951    const currentSnap = swiper.snapGrid[snapIndex];
7952    const nextSnap = swiper.snapGrid[snapIndex + 1];
7953    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
7954      index += swiper.params.slidesPerGroup;
7955    }
7956  } else {
7957    // The current translate is before the current snap index, so the choice
7958    // is between the current index and the one before it.
7959    const prevSnap = swiper.snapGrid[snapIndex - 1];
7960    const currentSnap = swiper.snapGrid[snapIndex];
7961    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
7962      index -= swiper.params.slidesPerGroup;
7963    }
7964  }
7965  index = Math.max(index, 0);
7966  index = Math.min(index, swiper.slidesGrid.length - 1);
7967  return swiper.slideTo(index, speed, runCallbacks, internal);
7968}
7969
7970function slideToClickedSlide() {
7971  const swiper = this;
7972  if (swiper.destroyed) return;
7973  const {
7974    params,
7975    slidesEl
7976  } = swiper;
7977  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
7978  let slideToIndex = swiper.clickedIndex;
7979  let realIndex;
7980  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;
7981  if (params.loop) {
7982    if (swiper.animating) return;
7983    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
7984    if (params.centeredSlides) {
7985      if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {
7986        swiper.loopFix();
7987        slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
7988        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
7989          swiper.slideTo(slideToIndex);
7990        });
7991      } else {
7992        swiper.slideTo(slideToIndex);
7993      }
7994    } else if (slideToIndex > swiper.slides.length - slidesPerView) {
7995      swiper.loopFix();
7996      slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
7997      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
7998        swiper.slideTo(slideToIndex);
7999      });
8000    } else {
8001      swiper.slideTo(slideToIndex);
8002    }
8003  } else {
8004    swiper.slideTo(slideToIndex);
8005  }
8006}
8007
8008var slide = {
8009  slideTo,
8010  slideToLoop,
8011  slideNext,
8012  slidePrev,
8013  slideReset,
8014  slideToClosest,
8015  slideToClickedSlide
8016};
8017
8018function loopCreate(slideRealIndex) {
8019  const swiper = this;
8020  const {
8021    params,
8022    slidesEl
8023  } = swiper;
8024  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
8025  const initSlides = () => {
8026    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
8027    slides.forEach((el, index) => {
8028      el.setAttribute('data-swiper-slide-index', index);
8029    });
8030  };
8031  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8032  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);
8033  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;
8034  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;
8035  const addBlankSlides = amountOfSlides => {
8036    for (let i = 0; i < amountOfSlides; i += 1) {
8037      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]);
8038      swiper.slidesEl.append(slideEl);
8039    }
8040  };
8041  if (shouldFillGroup) {
8042    if (params.loopAddBlankSlides) {
8043      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;
8044      addBlankSlides(slidesToAdd);
8045      swiper.recalcSlides();
8046      swiper.updateSlides();
8047    } else {
8048      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('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)');
8049    }
8050    initSlides();
8051  } else if (shouldFillGrid) {
8052    if (params.loopAddBlankSlides) {
8053      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;
8054      addBlankSlides(slidesToAdd);
8055      swiper.recalcSlides();
8056      swiper.updateSlides();
8057    } else {
8058      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('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)');
8059    }
8060    initSlides();
8061  } else {
8062    initSlides();
8063  }
8064  swiper.loopFix({
8065    slideRealIndex,
8066    direction: params.centeredSlides ? undefined : 'next'
8067  });
8068}
8069
8070function loopFix(_temp) {
8071  let {
8072    slideRealIndex,
8073    slideTo = true,
8074    direction,
8075    setTranslate,
8076    activeSlideIndex,
8077    byController,
8078    byMousewheel
8079  } = _temp === void 0 ? {} : _temp;
8080  const swiper = this;
8081  if (!swiper.params.loop) return;
8082  swiper.emit('beforeLoopFix');
8083  const {
8084    slides,
8085    allowSlidePrev,
8086    allowSlideNext,
8087    slidesEl,
8088    params
8089  } = swiper;
8090  const {
8091    centeredSlides
8092  } = params;
8093  swiper.allowSlidePrev = true;
8094  swiper.allowSlideNext = true;
8095  if (swiper.virtual && params.virtual.enabled) {
8096    if (slideTo) {
8097      if (!params.centeredSlides && swiper.snapIndex === 0) {
8098        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);
8099      } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {
8100        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);
8101      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {
8102        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);
8103      }
8104    }
8105    swiper.allowSlidePrev = allowSlidePrev;
8106    swiper.allowSlideNext = allowSlideNext;
8107    swiper.emit('loopFix');
8108    return;
8109  }
8110  let slidesPerView = params.slidesPerView;
8111  if (slidesPerView === 'auto') {
8112    slidesPerView = swiper.slidesPerViewDynamic();
8113  } else {
8114    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));
8115    if (centeredSlides && slidesPerView % 2 === 0) {
8116      slidesPerView = slidesPerView + 1;
8117    }
8118  }
8119  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;
8120  let loopedSlides = slidesPerGroup;
8121  if (loopedSlides % slidesPerGroup !== 0) {
8122    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;
8123  }
8124  loopedSlides += params.loopAdditionalSlides;
8125  swiper.loopedSlides = loopedSlides;
8126  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8127  if (slides.length < slidesPerView + loopedSlides) {
8128    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');
8129  } else if (gridEnabled && params.grid.fill === 'row') {
8130    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');
8131  }
8132  const prependSlidesIndexes = [];
8133  const appendSlidesIndexes = [];
8134  let activeIndex = swiper.activeIndex;
8135  if (typeof activeSlideIndex === 'undefined') {
8136    activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);
8137  } else {
8138    activeIndex = activeSlideIndex;
8139  }
8140  const isNext = direction === 'next' || !direction;
8141  const isPrev = direction === 'prev' || !direction;
8142  let slidesPrepended = 0;
8143  let slidesAppended = 0;
8144  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;
8145  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;
8146  const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);
8147  // prepend last slides before start
8148  if (activeColIndexWithShift < loopedSlides) {
8149    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);
8150    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
8151      const index = i - Math.floor(i / cols) * cols;
8152      if (gridEnabled) {
8153        const colIndexToPrepend = cols - index - 1;
8154        for (let i = slides.length - 1; i >= 0; i -= 1) {
8155          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);
8156        }
8157        // slides.forEach((slide, slideIndex) => {
8158        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);
8159        // });
8160      } else {
8161        prependSlidesIndexes.push(cols - index - 1);
8162      }
8163    }
8164  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {
8165    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);
8166    for (let i = 0; i < slidesAppended; i += 1) {
8167      const index = i - Math.floor(i / cols) * cols;
8168      if (gridEnabled) {
8169        slides.forEach((slide, slideIndex) => {
8170          if (slide.column === index) appendSlidesIndexes.push(slideIndex);
8171        });
8172      } else {
8173        appendSlidesIndexes.push(index);
8174      }
8175    }
8176  }
8177  swiper.__preventObserver__ = true;
8178  requestAnimationFrame(() => {
8179    swiper.__preventObserver__ = false;
8180  });
8181  if (isPrev) {
8182    prependSlidesIndexes.forEach(index => {
8183      slides[index].swiperLoopMoveDOM = true;
8184      slidesEl.prepend(slides[index]);
8185      slides[index].swiperLoopMoveDOM = false;
8186    });
8187  }
8188  if (isNext) {
8189    appendSlidesIndexes.forEach(index => {
8190      slides[index].swiperLoopMoveDOM = true;
8191      slidesEl.append(slides[index]);
8192      slides[index].swiperLoopMoveDOM = false;
8193    });
8194  }
8195  swiper.recalcSlides();
8196  if (params.slidesPerView === 'auto') {
8197    swiper.updateSlides();
8198  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {
8199    swiper.slides.forEach((slide, slideIndex) => {
8200      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);
8201    });
8202  }
8203  if (params.watchSlidesProgress) {
8204    swiper.updateSlidesOffset();
8205  }
8206  if (slideTo) {
8207    if (prependSlidesIndexes.length > 0 && isPrev) {
8208      if (typeof slideRealIndex === 'undefined') {
8209        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
8210        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];
8211        const diff = newSlideTranslate - currentSlideTranslate;
8212        if (byMousewheel) {
8213          swiper.setTranslate(swiper.translate - diff);
8214        } else {
8215          swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);
8216          if (setTranslate) {
8217            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
8218            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
8219          }
8220        }
8221      } else {
8222        if (setTranslate) {
8223          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;
8224          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);
8225          swiper.touchEventsData.currentTranslate = swiper.translate;
8226        }
8227      }
8228    } else if (appendSlidesIndexes.length > 0 && isNext) {
8229      if (typeof slideRealIndex === 'undefined') {
8230        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
8231        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];
8232        const diff = newSlideTranslate - currentSlideTranslate;
8233        if (byMousewheel) {
8234          swiper.setTranslate(swiper.translate - diff);
8235        } else {
8236          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);
8237          if (setTranslate) {
8238            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
8239            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
8240          }
8241        }
8242      } else {
8243        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;
8244        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);
8245      }
8246    }
8247  }
8248  swiper.allowSlidePrev = allowSlidePrev;
8249  swiper.allowSlideNext = allowSlideNext;
8250  if (swiper.controller && swiper.controller.control && !byController) {
8251    const loopParams = {
8252      slideRealIndex,
8253      direction,
8254      setTranslate,
8255      activeSlideIndex,
8256      byController: true
8257    };
8258    if (Array.isArray(swiper.controller.control)) {
8259      swiper.controller.control.forEach(c => {
8260        if (!c.destroyed && c.params.loop) c.loopFix({
8261          ...loopParams,
8262          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false
8263        });
8264      });
8265    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {
8266      swiper.controller.control.loopFix({
8267        ...loopParams,
8268        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false
8269      });
8270    }
8271  }
8272  swiper.emit('loopFix');
8273}
8274
8275function loopDestroy() {
8276  const swiper = this;
8277  const {
8278    params,
8279    slidesEl
8280  } = swiper;
8281  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
8282  swiper.recalcSlides();
8283  const newSlidesOrder = [];
8284  swiper.slides.forEach(slideEl => {
8285    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;
8286    newSlidesOrder[index] = slideEl;
8287  });
8288  swiper.slides.forEach(slideEl => {
8289    slideEl.removeAttribute('data-swiper-slide-index');
8290  });
8291  newSlidesOrder.forEach(slideEl => {
8292    slidesEl.append(slideEl);
8293  });
8294  swiper.recalcSlides();
8295  swiper.slideTo(swiper.realIndex, 0);
8296}
8297
8298var loop = {
8299  loopCreate,
8300  loopFix,
8301  loopDestroy
8302};
8303
8304function setGrabCursor(moving) {
8305  const swiper = this;
8306  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
8307  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;
8308  if (swiper.isElement) {
8309    swiper.__preventObserver__ = true;
8310  }
8311  el.style.cursor = 'move';
8312  el.style.cursor = moving ? 'grabbing' : 'grab';
8313  if (swiper.isElement) {
8314    requestAnimationFrame(() => {
8315      swiper.__preventObserver__ = false;
8316    });
8317  }
8318}
8319
8320function unsetGrabCursor() {
8321  const swiper = this;
8322  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
8323    return;
8324  }
8325  if (swiper.isElement) {
8326    swiper.__preventObserver__ = true;
8327  }
8328  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';
8329  if (swiper.isElement) {
8330    requestAnimationFrame(() => {
8331      swiper.__preventObserver__ = false;
8332    });
8333  }
8334}
8335
8336var grabCursor = {
8337  setGrabCursor,
8338  unsetGrabCursor
8339};
8340
8341// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
8342function closestElement(selector, base) {
8343  if (base === void 0) {
8344    base = this;
8345  }
8346  function __closestFrom(el) {
8347    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;
8348    if (el.assignedSlot) el = el.assignedSlot;
8349    const found = el.closest(selector);
8350    if (!found && !el.getRootNode) {
8351      return null;
8352    }
8353    return found || __closestFrom(el.getRootNode().host);
8354  }
8355  return __closestFrom(base);
8356}
8357function preventEdgeSwipe(swiper, event, startX) {
8358  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
8359  const {
8360    params
8361  } = swiper;
8362  const edgeSwipeDetection = params.edgeSwipeDetection;
8363  const edgeSwipeThreshold = params.edgeSwipeThreshold;
8364  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {
8365    if (edgeSwipeDetection === 'prevent') {
8366      event.preventDefault();
8367      return true;
8368    }
8369    return false;
8370  }
8371  return true;
8372}
8373function onTouchStart(event) {
8374  const swiper = this;
8375  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
8376  let e = event;
8377  if (e.originalEvent) e = e.originalEvent;
8378  const data = swiper.touchEventsData;
8379  if (e.type === 'pointerdown') {
8380    if (data.pointerId !== null && data.pointerId !== e.pointerId) {
8381      return;
8382    }
8383    data.pointerId = e.pointerId;
8384  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {
8385    data.touchId = e.targetTouches[0].identifier;
8386  }
8387  if (e.type === 'touchstart') {
8388    // don't proceed touch event
8389    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);
8390    return;
8391  }
8392  const {
8393    params,
8394    touches,
8395    enabled
8396  } = swiper;
8397  if (!enabled) return;
8398  if (!params.simulateTouch && e.pointerType === 'mouse') return;
8399  if (swiper.animating && params.preventInteractionOnTransition) {
8400    return;
8401  }
8402  if (!swiper.animating && params.cssMode && params.loop) {
8403    swiper.loopFix();
8404  }
8405  let targetEl = e.target;
8406  if (params.touchEventsTarget === 'wrapper') {
8407    if (!(0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)(targetEl, swiper.wrapperEl)) return;
8408  }
8409  if ('which' in e && e.which === 3) return;
8410  if ('button' in e && e.button > 0) return;
8411  if (data.isTouched && data.isMoved) return;
8412
8413  // change target el for shadow root component
8414  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';
8415  // eslint-disable-next-line
8416  const eventPath = e.composedPath ? e.composedPath() : e.path;
8417  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {
8418    targetEl = eventPath[0];
8419  }
8420  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;
8421  const isTargetShadow = !!(e.target && e.target.shadowRoot);
8422
8423  // use closestElement for shadow root element to get the actual closest for nested shadow root element
8424  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {
8425    swiper.allowClick = true;
8426    return;
8427  }
8428  if (params.swipeHandler) {
8429    if (!targetEl.closest(params.swipeHandler)) return;
8430  }
8431  touches.currentX = e.pageX;
8432  touches.currentY = e.pageY;
8433  const startX = touches.currentX;
8434  const startY = touches.currentY;
8435
8436  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
8437
8438  if (!preventEdgeSwipe(swiper, e, startX)) {
8439    return;
8440  }
8441  Object.assign(data, {
8442    isTouched: true,
8443    isMoved: false,
8444    allowTouchCallbacks: true,
8445    isScrolling: undefined,
8446    startMoving: undefined
8447  });
8448  touches.startX = startX;
8449  touches.startY = startY;
8450  data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
8451  swiper.allowClick = true;
8452  swiper.updateSize();
8453  swiper.swipeDirection = undefined;
8454  if (params.threshold > 0) data.allowThresholdMove = false;
8455  let preventDefault = true;
8456  if (targetEl.matches(data.focusableElements)) {
8457    preventDefault = false;
8458    if (targetEl.nodeName === 'SELECT') {
8459      data.isTouched = false;
8460    }
8461  }
8462  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {
8463    document.activeElement.blur();
8464  }
8465  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
8466  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {
8467    e.preventDefault();
8468  }
8469  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
8470    swiper.freeMode.onTouchStart();
8471  }
8472  swiper.emit('touchStart', e);
8473}
8474
8475function onTouchMove(event) {
8476  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
8477  const swiper = this;
8478  const data = swiper.touchEventsData;
8479  const {
8480    params,
8481    touches,
8482    rtlTranslate: rtl,
8483    enabled
8484  } = swiper;
8485  if (!enabled) return;
8486  if (!params.simulateTouch && event.pointerType === 'mouse') return;
8487  let e = event;
8488  if (e.originalEvent) e = e.originalEvent;
8489  if (e.type === 'pointermove') {
8490    if (data.touchId !== null) return; // return from pointer if we use touch
8491    const id = e.pointerId;
8492    if (id !== data.pointerId) return;
8493  }
8494  let targetTouch;
8495  if (e.type === 'touchmove') {
8496    targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];
8497    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
8498  } else {
8499    targetTouch = e;
8500  }
8501  if (!data.isTouched) {
8502    if (data.startMoving && data.isScrolling) {
8503      swiper.emit('touchMoveOpposite', e);
8504    }
8505    return;
8506  }
8507  const pageX = targetTouch.pageX;
8508  const pageY = targetTouch.pageY;
8509  if (e.preventedByNestedSwiper) {
8510    touches.startX = pageX;
8511    touches.startY = pageY;
8512    return;
8513  }
8514  if (!swiper.allowTouchMove) {
8515    if (!e.target.matches(data.focusableElements)) {
8516      swiper.allowClick = false;
8517    }
8518    if (data.isTouched) {
8519      Object.assign(touches, {
8520        startX: pageX,
8521        startY: pageY,
8522        currentX: pageX,
8523        currentY: pageY
8524      });
8525      data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
8526    }
8527    return;
8528  }
8529  if (params.touchReleaseOnEdges && !params.loop) {
8530    if (swiper.isVertical()) {
8531      // Vertical
8532      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {
8533        data.isTouched = false;
8534        data.isMoved = false;
8535        return;
8536      }
8537    } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {
8538      return;
8539    }
8540  }
8541  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {
8542    document.activeElement.blur();
8543  }
8544  if (document.activeElement) {
8545    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {
8546      data.isMoved = true;
8547      swiper.allowClick = false;
8548      return;
8549    }
8550  }
8551  if (data.allowTouchCallbacks) {
8552    swiper.emit('touchMove', e);
8553  }
8554  touches.previousX = touches.currentX;
8555  touches.previousY = touches.currentY;
8556  touches.currentX = pageX;
8557  touches.currentY = pageY;
8558  const diffX = touches.currentX - touches.startX;
8559  const diffY = touches.currentY - touches.startY;
8560  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
8561  if (typeof data.isScrolling === 'undefined') {
8562    let touchAngle;
8563    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {
8564      data.isScrolling = false;
8565    } else {
8566      // eslint-disable-next-line
8567      if (diffX * diffX + diffY * diffY >= 25) {
8568        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
8569        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
8570      }
8571    }
8572  }
8573  if (data.isScrolling) {
8574    swiper.emit('touchMoveOpposite', e);
8575  }
8576  if (typeof data.startMoving === 'undefined') {
8577    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
8578      data.startMoving = true;
8579    }
8580  }
8581  if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {
8582    data.isTouched = false;
8583    return;
8584  }
8585  if (!data.startMoving) {
8586    return;
8587  }
8588  swiper.allowClick = false;
8589  if (!params.cssMode && e.cancelable) {
8590    e.preventDefault();
8591  }
8592  if (params.touchMoveStopPropagation && !params.nested) {
8593    e.stopPropagation();
8594  }
8595  let diff = swiper.isHorizontal() ? diffX : diffY;
8596  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;
8597  if (params.oneWayMovement) {
8598    diff = Math.abs(diff) * (rtl ? 1 : -1);
8599    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);
8600  }
8601  touches.diff = diff;
8602  diff *= params.touchRatio;
8603  if (rtl) {
8604    diff = -diff;
8605    touchesDiff = -touchesDiff;
8606  }
8607  const prevTouchesDirection = swiper.touchesDirection;
8608  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
8609  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';
8610  const isLoop = swiper.params.loop && !params.cssMode;
8611  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;
8612  if (!data.isMoved) {
8613    if (isLoop && allowLoopFix) {
8614      swiper.loopFix({
8615        direction: swiper.swipeDirection
8616      });
8617    }
8618    data.startTranslate = swiper.getTranslate();
8619    swiper.setTransition(0);
8620    if (swiper.animating) {
8621      const evt = new window.CustomEvent('transitionend', {
8622        bubbles: true,
8623        cancelable: true,
8624        detail: {
8625          bySwiperTouchMove: true
8626        }
8627      });
8628      swiper.wrapperEl.dispatchEvent(evt);
8629    }
8630    data.allowMomentumBounce = false;
8631    // Grab Cursor
8632    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
8633      swiper.setGrabCursor(true);
8634    }
8635    swiper.emit('sliderFirstMove', e);
8636  }
8637  let loopFixed;
8638  new Date().getTime();
8639  if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {
8640    Object.assign(touches, {
8641      startX: pageX,
8642      startY: pageY,
8643      currentX: pageX,
8644      currentY: pageY,
8645      startTranslate: data.currentTranslate
8646    });
8647    data.loopSwapReset = true;
8648    data.startTranslate = data.currentTranslate;
8649    return;
8650  }
8651  swiper.emit('sliderMove', e);
8652  data.isMoved = true;
8653  data.currentTranslate = diff + data.startTranslate;
8654  let disableParentSwiper = true;
8655  let resistanceRatio = params.resistanceRatio;
8656  if (params.touchReleaseOnEdges) {
8657    resistanceRatio = 0;
8658  }
8659  if (diff > 0) {
8660    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())) {
8661      swiper.loopFix({
8662        direction: 'prev',
8663        setTranslate: true,
8664        activeSlideIndex: 0
8665      });
8666    }
8667    if (data.currentTranslate > swiper.minTranslate()) {
8668      disableParentSwiper = false;
8669      if (params.resistance) {
8670        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
8671      }
8672    }
8673  } else if (diff < 0) {
8674    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())) {
8675      swiper.loopFix({
8676        direction: 'next',
8677        setTranslate: true,
8678        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))
8679      });
8680    }
8681    if (data.currentTranslate < swiper.maxTranslate()) {
8682      disableParentSwiper = false;
8683      if (params.resistance) {
8684        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
8685      }
8686    }
8687  }
8688  if (disableParentSwiper) {
8689    e.preventedByNestedSwiper = true;
8690  }
8691
8692  // Directions locks
8693  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
8694    data.currentTranslate = data.startTranslate;
8695  }
8696  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
8697    data.currentTranslate = data.startTranslate;
8698  }
8699  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {
8700    data.currentTranslate = data.startTranslate;
8701  }
8702
8703  // Threshold
8704  if (params.threshold > 0) {
8705    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
8706      if (!data.allowThresholdMove) {
8707        data.allowThresholdMove = true;
8708        touches.startX = touches.currentX;
8709        touches.startY = touches.currentY;
8710        data.currentTranslate = data.startTranslate;
8711        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
8712        return;
8713      }
8714    } else {
8715      data.currentTranslate = data.startTranslate;
8716      return;
8717    }
8718  }
8719  if (!params.followFinger || params.cssMode) return;
8720
8721  // Update active index in free mode
8722  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {
8723    swiper.updateActiveIndex();
8724    swiper.updateSlidesClasses();
8725  }
8726  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {
8727    swiper.freeMode.onTouchMove();
8728  }
8729  // Update progress
8730  swiper.updateProgress(data.currentTranslate);
8731  // Update translate
8732  swiper.setTranslate(data.currentTranslate);
8733}
8734
8735function onTouchEnd(event) {
8736  const swiper = this;
8737  const data = swiper.touchEventsData;
8738  let e = event;
8739  if (e.originalEvent) e = e.originalEvent;
8740  let targetTouch;
8741  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';
8742  if (!isTouchEvent) {
8743    if (data.touchId !== null) return; // return from pointer if we use touch
8744    if (e.pointerId !== data.pointerId) return;
8745    targetTouch = e;
8746  } else {
8747    targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];
8748    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
8749  }
8750  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {
8751    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);
8752    if (!proceed) {
8753      return;
8754    }
8755  }
8756  data.pointerId = null;
8757  data.touchId = null;
8758  const {
8759    params,
8760    touches,
8761    rtlTranslate: rtl,
8762    slidesGrid,
8763    enabled
8764  } = swiper;
8765  if (!enabled) return;
8766  if (!params.simulateTouch && e.pointerType === 'mouse') return;
8767  if (data.allowTouchCallbacks) {
8768    swiper.emit('touchEnd', e);
8769  }
8770  data.allowTouchCallbacks = false;
8771  if (!data.isTouched) {
8772    if (data.isMoved && params.grabCursor) {
8773      swiper.setGrabCursor(false);
8774    }
8775    data.isMoved = false;
8776    data.startMoving = false;
8777    return;
8778  }
8779
8780  // Return Grab Cursor
8781  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
8782    swiper.setGrabCursor(false);
8783  }
8784
8785  // Time diff
8786  const touchEndTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
8787  const timeDiff = touchEndTime - data.touchStartTime;
8788
8789  // Tap, doubleTap, Click
8790  if (swiper.allowClick) {
8791    const pathTree = e.path || e.composedPath && e.composedPath();
8792    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);
8793    swiper.emit('tap click', e);
8794    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
8795      swiper.emit('doubleTap doubleClick', e);
8796    }
8797  }
8798  data.lastClickTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
8799  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
8800    if (!swiper.destroyed) swiper.allowClick = true;
8801  });
8802  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {
8803    data.isTouched = false;
8804    data.isMoved = false;
8805    data.startMoving = false;
8806    return;
8807  }
8808  data.isTouched = false;
8809  data.isMoved = false;
8810  data.startMoving = false;
8811  let currentPos;
8812  if (params.followFinger) {
8813    currentPos = rtl ? swiper.translate : -swiper.translate;
8814  } else {
8815    currentPos = -data.currentTranslate;
8816  }
8817  if (params.cssMode) {
8818    return;
8819  }
8820  if (params.freeMode && params.freeMode.enabled) {
8821    swiper.freeMode.onTouchEnd({
8822      currentPos
8823    });
8824    return;
8825  }
8826
8827  // Find current slide
8828  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;
8829  let stopIndex = 0;
8830  let groupSize = swiper.slidesSizesGrid[0];
8831  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {
8832    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
8833    if (typeof slidesGrid[i + increment] !== 'undefined') {
8834      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
8835        stopIndex = i;
8836        groupSize = slidesGrid[i + increment] - slidesGrid[i];
8837      }
8838    } else if (swipeToLast || currentPos >= slidesGrid[i]) {
8839      stopIndex = i;
8840      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
8841    }
8842  }
8843  let rewindFirstIndex = null;
8844  let rewindLastIndex = null;
8845  if (params.rewind) {
8846    if (swiper.isBeginning) {
8847      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
8848    } else if (swiper.isEnd) {
8849      rewindFirstIndex = 0;
8850    }
8851  }
8852  // Find current slide size
8853  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
8854  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
8855  if (timeDiff > params.longSwipesMs) {
8856    // Long touches
8857    if (!params.longSwipes) {
8858      swiper.slideTo(swiper.activeIndex);
8859      return;
8860    }
8861    if (swiper.swipeDirection === 'next') {
8862      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
8863    }
8864    if (swiper.swipeDirection === 'prev') {
8865      if (ratio > 1 - params.longSwipesRatio) {
8866        swiper.slideTo(stopIndex + increment);
8867      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
8868        swiper.slideTo(rewindLastIndex);
8869      } else {
8870        swiper.slideTo(stopIndex);
8871      }
8872    }
8873  } else {
8874    // Short swipes
8875    if (!params.shortSwipes) {
8876      swiper.slideTo(swiper.activeIndex);
8877      return;
8878    }
8879    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
8880    if (!isNavButtonTarget) {
8881      if (swiper.swipeDirection === 'next') {
8882        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
8883      }
8884      if (swiper.swipeDirection === 'prev') {
8885        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
8886      }
8887    } else if (e.target === swiper.navigation.nextEl) {
8888      swiper.slideTo(stopIndex + increment);
8889    } else {
8890      swiper.slideTo(stopIndex);
8891    }
8892  }
8893}
8894
8895function onResize() {
8896  const swiper = this;
8897  const {
8898    params,
8899    el
8900  } = swiper;
8901  if (el && el.offsetWidth === 0) return;
8902
8903  // Breakpoints
8904  if (params.breakpoints) {
8905    swiper.setBreakpoint();
8906  }
8907
8908  // Save locks
8909  const {
8910    allowSlideNext,
8911    allowSlidePrev,
8912    snapGrid
8913  } = swiper;
8914  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
8915
8916  // Disable locks on resize
8917  swiper.allowSlideNext = true;
8918  swiper.allowSlidePrev = true;
8919  swiper.updateSize();
8920  swiper.updateSlides();
8921  swiper.updateSlidesClasses();
8922  const isVirtualLoop = isVirtual && params.loop;
8923  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
8924    swiper.slideTo(swiper.slides.length - 1, 0, false, true);
8925  } else {
8926    if (swiper.params.loop && !isVirtual) {
8927      swiper.slideToLoop(swiper.realIndex, 0, false, true);
8928    } else {
8929      swiper.slideTo(swiper.activeIndex, 0, false, true);
8930    }
8931  }
8932  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
8933    clearTimeout(swiper.autoplay.resizeTimeout);
8934    swiper.autoplay.resizeTimeout = setTimeout(() => {
8935      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
8936        swiper.autoplay.resume();
8937      }
8938    }, 500);
8939  }
8940  // Return locks after resize
8941  swiper.allowSlidePrev = allowSlidePrev;
8942  swiper.allowSlideNext = allowSlideNext;
8943  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
8944    swiper.checkOverflow();
8945  }
8946}
8947
8948function onClick(e) {
8949  const swiper = this;
8950  if (!swiper.enabled) return;
8951  if (!swiper.allowClick) {
8952    if (swiper.params.preventClicks) e.preventDefault();
8953    if (swiper.params.preventClicksPropagation && swiper.animating) {
8954      e.stopPropagation();
8955      e.stopImmediatePropagation();
8956    }
8957  }
8958}
8959
8960function onScroll() {
8961  const swiper = this;
8962  const {
8963    wrapperEl,
8964    rtlTranslate,
8965    enabled
8966  } = swiper;
8967  if (!enabled) return;
8968  swiper.previousTranslate = swiper.translate;
8969  if (swiper.isHorizontal()) {
8970    swiper.translate = -wrapperEl.scrollLeft;
8971  } else {
8972    swiper.translate = -wrapperEl.scrollTop;
8973  }
8974  // eslint-disable-next-line
8975  if (swiper.translate === 0) swiper.translate = 0;
8976  swiper.updateActiveIndex();
8977  swiper.updateSlidesClasses();
8978  let newProgress;
8979  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
8980  if (translatesDiff === 0) {
8981    newProgress = 0;
8982  } else {
8983    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;
8984  }
8985  if (newProgress !== swiper.progress) {
8986    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);
8987  }
8988  swiper.emit('setTranslate', swiper.translate, false);
8989}
8990
8991function onLoad(e) {
8992  const swiper = this;
8993  processLazyPreloader(swiper, e.target);
8994  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
8995    return;
8996  }
8997  swiper.update();
8998}
8999
9000function onDocumentTouchStart() {
9001  const swiper = this;
9002  if (swiper.documentTouchHandlerProceeded) return;
9003  swiper.documentTouchHandlerProceeded = true;
9004  if (swiper.params.touchReleaseOnEdges) {
9005    swiper.el.style.touchAction = 'auto';
9006  }
9007}
9008
9009const events = (swiper, method) => {
9010  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9011  const {
9012    params,
9013    el,
9014    wrapperEl,
9015    device
9016  } = swiper;
9017  const capture = !!params.nested;
9018  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
9019  const swiperMethod = method;
9020  if (!el || typeof el === 'string') return;
9021
9022  // Touch Events
9023  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {
9024    passive: false,
9025    capture
9026  });
9027  el[domMethod]('touchstart', swiper.onTouchStart, {
9028    passive: false
9029  });
9030  el[domMethod]('pointerdown', swiper.onTouchStart, {
9031    passive: false
9032  });
9033  document[domMethod]('touchmove', swiper.onTouchMove, {
9034    passive: false,
9035    capture
9036  });
9037  document[domMethod]('pointermove', swiper.onTouchMove, {
9038    passive: false,
9039    capture
9040  });
9041  document[domMethod]('touchend', swiper.onTouchEnd, {
9042    passive: true
9043  });
9044  document[domMethod]('pointerup', swiper.onTouchEnd, {
9045    passive: true
9046  });
9047  document[domMethod]('pointercancel', swiper.onTouchEnd, {
9048    passive: true
9049  });
9050  document[domMethod]('touchcancel', swiper.onTouchEnd, {
9051    passive: true
9052  });
9053  document[domMethod]('pointerout', swiper.onTouchEnd, {
9054    passive: true
9055  });
9056  document[domMethod]('pointerleave', swiper.onTouchEnd, {
9057    passive: true
9058  });
9059  document[domMethod]('contextmenu', swiper.onTouchEnd, {
9060    passive: true
9061  });
9062
9063  // Prevent Links Clicks
9064  if (params.preventClicks || params.preventClicksPropagation) {
9065    el[domMethod]('click', swiper.onClick, true);
9066  }
9067  if (params.cssMode) {
9068    wrapperEl[domMethod]('scroll', swiper.onScroll);
9069  }
9070
9071  // Resize handler
9072  if (params.updateOnWindowResize) {
9073    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);
9074  } else {
9075    swiper[swiperMethod]('observerUpdate', onResize, true);
9076  }
9077
9078  // Images loader
9079  el[domMethod]('load', swiper.onLoad, {
9080    capture: true
9081  });
9082};
9083function attachEvents() {
9084  const swiper = this;
9085  const {
9086    params
9087  } = swiper;
9088  swiper.onTouchStart = onTouchStart.bind(swiper);
9089  swiper.onTouchMove = onTouchMove.bind(swiper);
9090  swiper.onTouchEnd = onTouchEnd.bind(swiper);
9091  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);
9092  if (params.cssMode) {
9093    swiper.onScroll = onScroll.bind(swiper);
9094  }
9095  swiper.onClick = onClick.bind(swiper);
9096  swiper.onLoad = onLoad.bind(swiper);
9097  events(swiper, 'on');
9098}
9099function detachEvents() {
9100  const swiper = this;
9101  events(swiper, 'off');
9102}
9103var events$1 = {
9104  attachEvents,
9105  detachEvents
9106};
9107
9108const isGridEnabled = (swiper, params) => {
9109  return swiper.grid && params.grid && params.grid.rows > 1;
9110};
9111function setBreakpoint() {
9112  const swiper = this;
9113  const {
9114    realIndex,
9115    initialized,
9116    params,
9117    el
9118  } = swiper;
9119  const breakpoints = params.breakpoints;
9120  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;
9121
9122  // Get breakpoint for window width and update parameters
9123  const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);
9124  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
9125  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
9126  const breakpointParams = breakpointOnlyParams || swiper.originalParams;
9127  const wasMultiRow = isGridEnabled(swiper, params);
9128  const isMultiRow = isGridEnabled(swiper, breakpointParams);
9129  const wasGrabCursor = swiper.params.grabCursor;
9130  const isGrabCursor = breakpointParams.grabCursor;
9131  const wasEnabled = params.enabled;
9132  if (wasMultiRow && !isMultiRow) {
9133    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
9134    swiper.emitContainerClasses();
9135  } else if (!wasMultiRow && isMultiRow) {
9136    el.classList.add(`${params.containerModifierClass}grid`);
9137    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {
9138      el.classList.add(`${params.containerModifierClass}grid-column`);
9139    }
9140    swiper.emitContainerClasses();
9141  }
9142  if (wasGrabCursor && !isGrabCursor) {
9143    swiper.unsetGrabCursor();
9144  } else if (!wasGrabCursor && isGrabCursor) {
9145    swiper.setGrabCursor();
9146  }
9147
9148  // Toggle navigation, pagination, scrollbar
9149  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {
9150    if (typeof breakpointParams[prop] === 'undefined') return;
9151    const wasModuleEnabled = params[prop] && params[prop].enabled;
9152    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
9153    if (wasModuleEnabled && !isModuleEnabled) {
9154      swiper[prop].disable();
9155    }
9156    if (!wasModuleEnabled && isModuleEnabled) {
9157      swiper[prop].enable();
9158    }
9159  });
9160  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
9161  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
9162  const wasLoop = params.loop;
9163  if (directionChanged && initialized) {
9164    swiper.changeDirection();
9165  }
9166  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(swiper.params, breakpointParams);
9167  const isEnabled = swiper.params.enabled;
9168  const hasLoop = swiper.params.loop;
9169  Object.assign(swiper, {
9170    allowTouchMove: swiper.params.allowTouchMove,
9171    allowSlideNext: swiper.params.allowSlideNext,
9172    allowSlidePrev: swiper.params.allowSlidePrev
9173  });
9174  if (wasEnabled && !isEnabled) {
9175    swiper.disable();
9176  } else if (!wasEnabled && isEnabled) {
9177    swiper.enable();
9178  }
9179  swiper.currentBreakpoint = breakpoint;
9180  swiper.emit('_beforeBreakpoint', breakpointParams);
9181  if (initialized) {
9182    if (needsReLoop) {
9183      swiper.loopDestroy();
9184      swiper.loopCreate(realIndex);
9185      swiper.updateSlides();
9186    } else if (!wasLoop && hasLoop) {
9187      swiper.loopCreate(realIndex);
9188      swiper.updateSlides();
9189    } else if (wasLoop && !hasLoop) {
9190      swiper.loopDestroy();
9191    }
9192  }
9193  swiper.emit('breakpoint', breakpointParams);
9194}
9195
9196function getBreakpoint(breakpoints, base, containerEl) {
9197  if (base === void 0) {
9198    base = 'window';
9199  }
9200  if (!breakpoints || base === 'container' && !containerEl) return undefined;
9201  let breakpoint = false;
9202  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
9203  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
9204  const points = Object.keys(breakpoints).map(point => {
9205    if (typeof point === 'string' && point.indexOf('@') === 0) {
9206      const minRatio = parseFloat(point.substr(1));
9207      const value = currentHeight * minRatio;
9208      return {
9209        value,
9210        point
9211      };
9212    }
9213    return {
9214      value: point,
9215      point
9216    };
9217  });
9218  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));
9219  for (let i = 0; i < points.length; i += 1) {
9220    const {
9221      point,
9222      value
9223    } = points[i];
9224    if (base === 'window') {
9225      if (window.matchMedia(`(min-width: ${value}px)`).matches) {
9226        breakpoint = point;
9227      }
9228    } else if (value <= containerEl.clientWidth) {
9229      breakpoint = point;
9230    }
9231  }
9232  return breakpoint || 'max';
9233}
9234
9235var breakpoints = {
9236  setBreakpoint,
9237  getBreakpoint
9238};
9239
9240function prepareClasses(entries, prefix) {
9241  const resultClasses = [];
9242  entries.forEach(item => {
9243    if (typeof item === 'object') {
9244      Object.keys(item).forEach(classNames => {
9245        if (item[classNames]) {
9246          resultClasses.push(prefix + classNames);
9247        }
9248      });
9249    } else if (typeof item === 'string') {
9250      resultClasses.push(prefix + item);
9251    }
9252  });
9253  return resultClasses;
9254}
9255function addClasses() {
9256  const swiper = this;
9257  const {
9258    classNames,
9259    params,
9260    rtl,
9261    el,
9262    device
9263  } = swiper;
9264  // prettier-ignore
9265  const suffixes = prepareClasses(['initialized', params.direction, {
9266    'free-mode': swiper.params.freeMode && params.freeMode.enabled
9267  }, {
9268    'autoheight': params.autoHeight
9269  }, {
9270    'rtl': rtl
9271  }, {
9272    'grid': params.grid && params.grid.rows > 1
9273  }, {
9274    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
9275  }, {
9276    'android': device.android
9277  }, {
9278    'ios': device.ios
9279  }, {
9280    'css-mode': params.cssMode
9281  }, {
9282    'centered': params.cssMode && params.centeredSlides
9283  }, {
9284    'watch-progress': params.watchSlidesProgress
9285  }], params.containerModifierClass);
9286  classNames.push(...suffixes);
9287  el.classList.add(...classNames);
9288  swiper.emitContainerClasses();
9289}
9290
9291function removeClasses() {
9292  const swiper = this;
9293  const {
9294    el,
9295    classNames
9296  } = swiper;
9297  if (!el || typeof el === 'string') return;
9298  el.classList.remove(...classNames);
9299  swiper.emitContainerClasses();
9300}
9301
9302var classes = {
9303  addClasses,
9304  removeClasses
9305};
9306
9307function checkOverflow() {
9308  const swiper = this;
9309  const {
9310    isLocked: wasLocked,
9311    params
9312  } = swiper;
9313  const {
9314    slidesOffsetBefore
9315  } = params;
9316  if (slidesOffsetBefore) {
9317    const lastSlideIndex = swiper.slides.length - 1;
9318    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
9319    swiper.isLocked = swiper.size > lastSlideRightEdge;
9320  } else {
9321    swiper.isLocked = swiper.snapGrid.length === 1;
9322  }
9323  if (params.allowSlideNext === true) {
9324    swiper.allowSlideNext = !swiper.isLocked;
9325  }
9326  if (params.allowSlidePrev === true) {
9327    swiper.allowSlidePrev = !swiper.isLocked;
9328  }
9329  if (wasLocked && wasLocked !== swiper.isLocked) {
9330    swiper.isEnd = false;
9331  }
9332  if (wasLocked !== swiper.isLocked) {
9333    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
9334  }
9335}
9336var checkOverflow$1 = {
9337  checkOverflow
9338};
9339
9340var defaults = {
9341  init: true,
9342  direction: 'horizontal',
9343  oneWayMovement: false,
9344  swiperElementNodeName: 'SWIPER-CONTAINER',
9345  touchEventsTarget: 'wrapper',
9346  initialSlide: 0,
9347  speed: 300,
9348  cssMode: false,
9349  updateOnWindowResize: true,
9350  resizeObserver: true,
9351  nested: false,
9352  createElements: false,
9353  eventsPrefix: 'swiper',
9354  enabled: true,
9355  focusableElements: 'input, select, option, textarea, button, video, label',
9356  // Overrides
9357  width: null,
9358  height: null,
9359  //
9360  preventInteractionOnTransition: false,
9361  // ssr
9362  userAgent: null,
9363  url: null,
9364  // To support iOS's swipe-to-go-back gesture (when being used in-app).
9365  edgeSwipeDetection: false,
9366  edgeSwipeThreshold: 20,
9367  // Autoheight
9368  autoHeight: false,
9369  // Set wrapper width
9370  setWrapperSize: false,
9371  // Virtual Translate
9372  virtualTranslate: false,
9373  // Effects
9374  effect: 'slide',
9375  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
9376
9377  // Breakpoints
9378  breakpoints: undefined,
9379  breakpointsBase: 'window',
9380  // Slides grid
9381  spaceBetween: 0,
9382  slidesPerView: 1,
9383  slidesPerGroup: 1,
9384  slidesPerGroupSkip: 0,
9385  slidesPerGroupAuto: false,
9386  centeredSlides: false,
9387  centeredSlidesBounds: false,
9388  slidesOffsetBefore: 0,
9389  // in px
9390  slidesOffsetAfter: 0,
9391  // in px
9392  normalizeSlideIndex: true,
9393  centerInsufficientSlides: false,
9394  // Disable swiper and hide navigation when container not overflow
9395  watchOverflow: true,
9396  // Round length
9397  roundLengths: false,
9398  // Touches
9399  touchRatio: 1,
9400  touchAngle: 45,
9401  simulateTouch: true,
9402  shortSwipes: true,
9403  longSwipes: true,
9404  longSwipesRatio: 0.5,
9405  longSwipesMs: 300,
9406  followFinger: true,
9407  allowTouchMove: true,
9408  threshold: 5,
9409  touchMoveStopPropagation: false,
9410  touchStartPreventDefault: true,
9411  touchStartForcePreventDefault: false,
9412  touchReleaseOnEdges: false,
9413  // Unique Navigation Elements
9414  uniqueNavElements: true,
9415  // Resistance
9416  resistance: true,
9417  resistanceRatio: 0.85,
9418  // Progress
9419  watchSlidesProgress: false,
9420  // Cursor
9421  grabCursor: false,
9422  // Clicks
9423  preventClicks: true,
9424  preventClicksPropagation: true,
9425  slideToClickedSlide: false,
9426  // loop
9427  loop: false,
9428  loopAddBlankSlides: true,
9429  loopAdditionalSlides: 0,
9430  loopPreventsSliding: true,
9431  // rewind
9432  rewind: false,
9433  // Swiping/no swiping
9434  allowSlidePrev: true,
9435  allowSlideNext: true,
9436  swipeHandler: null,
9437  // '.swipe-handler',
9438  noSwiping: true,
9439  noSwipingClass: 'swiper-no-swiping',
9440  noSwipingSelector: null,
9441  // Passive Listeners
9442  passiveListeners: true,
9443  maxBackfaceHiddenSlides: 10,
9444  // NS
9445  containerModifierClass: 'swiper-',
9446  // NEW
9447  slideClass: 'swiper-slide',
9448  slideBlankClass: 'swiper-slide-blank',
9449  slideActiveClass: 'swiper-slide-active',
9450  slideVisibleClass: 'swiper-slide-visible',
9451  slideFullyVisibleClass: 'swiper-slide-fully-visible',
9452  slideNextClass: 'swiper-slide-next',
9453  slidePrevClass: 'swiper-slide-prev',
9454  wrapperClass: 'swiper-wrapper',
9455  lazyPreloaderClass: 'swiper-lazy-preloader',
9456  lazyPreloadPrevNext: 0,
9457  // Callbacks
9458  runCallbacksOnInit: true,
9459  // Internals
9460  _emitClasses: false
9461};
9462
9463function moduleExtendParams(params, allModulesParams) {
9464  return function extendParams(obj) {
9465    if (obj === void 0) {
9466      obj = {};
9467    }
9468    const moduleParamName = Object.keys(obj)[0];
9469    const moduleParams = obj[moduleParamName];
9470    if (typeof moduleParams !== 'object' || moduleParams === null) {
9471      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
9472      return;
9473    }
9474    if (params[moduleParamName] === true) {
9475      params[moduleParamName] = {
9476        enabled: true
9477      };
9478    }
9479    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {
9480      params[moduleParamName].auto = true;
9481    }
9482    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {
9483      params[moduleParamName].auto = true;
9484    }
9485    if (!(moduleParamName in params && 'enabled' in moduleParams)) {
9486      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
9487      return;
9488    }
9489    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
9490      params[moduleParamName].enabled = true;
9491    }
9492    if (!params[moduleParamName]) params[moduleParamName] = {
9493      enabled: false
9494    };
9495    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
9496  };
9497}
9498
9499/* eslint no-param-reassign: "off" */
9500const prototypes = {
9501  eventsEmitter,
9502  update,
9503  translate,
9504  transition,
9505  slide,
9506  loop,
9507  grabCursor,
9508  events: events$1,
9509  breakpoints,
9510  checkOverflow: checkOverflow$1,
9511  classes
9512};
9513const extendedDefaults = {};
9514class Swiper {
9515  constructor() {
9516    let el;
9517    let params;
9518    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
9519      args[_key] = arguments[_key];
9520    }
9521    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
9522      params = args[0];
9523    } else {
9524      [el, params] = args;
9525    }
9526    if (!params) params = {};
9527    params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params);
9528    if (el && !params.el) params.el = el;
9529    const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9530    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {
9531      const swipers = [];
9532      document.querySelectorAll(params.el).forEach(containerEl => {
9533        const newParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params, {
9534          el: containerEl
9535        });
9536        swipers.push(new Swiper(newParams));
9537      });
9538      // eslint-disable-next-line no-constructor-return
9539      return swipers;
9540    }
9541
9542    // Swiper Instance
9543    const swiper = this;
9544    swiper.__swiper__ = true;
9545    swiper.support = getSupport();
9546    swiper.device = getDevice({
9547      userAgent: params.userAgent
9548    });
9549    swiper.browser = getBrowser();
9550    swiper.eventsListeners = {};
9551    swiper.eventsAnyListeners = [];
9552    swiper.modules = [...swiper.__modules__];
9553    if (params.modules && Array.isArray(params.modules)) {
9554      swiper.modules.push(...params.modules);
9555    }
9556    const allModulesParams = {};
9557    swiper.modules.forEach(mod => {
9558      mod({
9559        params,
9560        swiper,
9561        extendParams: moduleExtendParams(params, allModulesParams),
9562        on: swiper.on.bind(swiper),
9563        once: swiper.once.bind(swiper),
9564        off: swiper.off.bind(swiper),
9565        emit: swiper.emit.bind(swiper)
9566      });
9567    });
9568
9569    // Extend defaults with modules params
9570    const swiperParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, defaults, allModulesParams);
9571
9572    // Extend defaults with passed params
9573    swiper.params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, swiperParams, extendedDefaults, params);
9574    swiper.originalParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, swiper.params);
9575    swiper.passedParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params);
9576
9577    // add event listeners
9578    if (swiper.params && swiper.params.on) {
9579      Object.keys(swiper.params.on).forEach(eventName => {
9580        swiper.on(eventName, swiper.params.on[eventName]);
9581      });
9582    }
9583    if (swiper.params && swiper.params.onAny) {
9584      swiper.onAny(swiper.params.onAny);
9585    }
9586
9587    // Extend Swiper
9588    Object.assign(swiper, {
9589      enabled: swiper.params.enabled,
9590      el,
9591      // Classes
9592      classNames: [],
9593      // Slides
9594      slides: [],
9595      slidesGrid: [],
9596      snapGrid: [],
9597      slidesSizesGrid: [],
9598      // isDirection
9599      isHorizontal() {
9600        return swiper.params.direction === 'horizontal';
9601      },
9602      isVertical() {
9603        return swiper.params.direction === 'vertical';
9604      },
9605      // Indexes
9606      activeIndex: 0,
9607      realIndex: 0,
9608      //
9609      isBeginning: true,
9610      isEnd: false,
9611      // Props
9612      translate: 0,
9613      previousTranslate: 0,
9614      progress: 0,
9615      velocity: 0,
9616      animating: false,
9617      cssOverflowAdjustment() {
9618        // Returns 0 unless `translate` is > 2**23
9619        // Should be subtracted from css values to prevent overflow
9620        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
9621      },
9622      // Locks
9623      allowSlideNext: swiper.params.allowSlideNext,
9624      allowSlidePrev: swiper.params.allowSlidePrev,
9625      // Touch Events
9626      touchEventsData: {
9627        isTouched: undefined,
9628        isMoved: undefined,
9629        allowTouchCallbacks: undefined,
9630        touchStartTime: undefined,
9631        isScrolling: undefined,
9632        currentTranslate: undefined,
9633        startTranslate: undefined,
9634        allowThresholdMove: undefined,
9635        // Form elements to match
9636        focusableElements: swiper.params.focusableElements,
9637        // Last click time
9638        lastClickTime: 0,
9639        clickTimeout: undefined,
9640        // Velocities
9641        velocities: [],
9642        allowMomentumBounce: undefined,
9643        startMoving: undefined,
9644        pointerId: null,
9645        touchId: null
9646      },
9647      // Clicks
9648      allowClick: true,
9649      // Touches
9650      allowTouchMove: swiper.params.allowTouchMove,
9651      touches: {
9652        startX: 0,
9653        startY: 0,
9654        currentX: 0,
9655        currentY: 0,
9656        diff: 0
9657      },
9658      // Images
9659      imagesToLoad: [],
9660      imagesLoaded: 0
9661    });
9662    swiper.emit('_swiper');
9663
9664    // Init
9665    if (swiper.params.init) {
9666      swiper.init();
9667    }
9668
9669    // Return app instance
9670    // eslint-disable-next-line no-constructor-return
9671    return swiper;
9672  }
9673  getDirectionLabel(property) {
9674    if (this.isHorizontal()) {
9675      return property;
9676    }
9677    // prettier-ignore
9678    return {
9679      'width': 'height',
9680      'margin-top': 'margin-left',
9681      'margin-bottom ': 'margin-right',
9682      'margin-left': 'margin-top',
9683      'margin-right': 'margin-bottom',
9684      'padding-left': 'padding-top',
9685      'padding-right': 'padding-bottom',
9686      'marginRight': 'marginBottom'
9687    }[property];
9688  }
9689  getSlideIndex(slideEl) {
9690    const {
9691      slidesEl,
9692      params
9693    } = this;
9694    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
9695    const firstSlideIndex = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slides[0]);
9696    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slideEl) - firstSlideIndex;
9697  }
9698  getSlideIndexByData(index) {
9699    return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);
9700  }
9701  recalcSlides() {
9702    const swiper = this;
9703    const {
9704      slidesEl,
9705      params
9706    } = swiper;
9707    swiper.slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
9708  }
9709  enable() {
9710    const swiper = this;
9711    if (swiper.enabled) return;
9712    swiper.enabled = true;
9713    if (swiper.params.grabCursor) {
9714      swiper.setGrabCursor();
9715    }
9716    swiper.emit('enable');
9717  }
9718  disable() {
9719    const swiper = this;
9720    if (!swiper.enabled) return;
9721    swiper.enabled = false;
9722    if (swiper.params.grabCursor) {
9723      swiper.unsetGrabCursor();
9724    }
9725    swiper.emit('disable');
9726  }
9727  setProgress(progress, speed) {
9728    const swiper = this;
9729    progress = Math.min(Math.max(progress, 0), 1);
9730    const min = swiper.minTranslate();
9731    const max = swiper.maxTranslate();
9732    const current = (max - min) * progress + min;
9733    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);
9734    swiper.updateActiveIndex();
9735    swiper.updateSlidesClasses();
9736  }
9737  emitContainerClasses() {
9738    const swiper = this;
9739    if (!swiper.params._emitClasses || !swiper.el) return;
9740    const cls = swiper.el.className.split(' ').filter(className => {
9741      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;
9742    });
9743    swiper.emit('_containerClasses', cls.join(' '));
9744  }
9745  getSlideClasses(slideEl) {
9746    const swiper = this;
9747    if (swiper.destroyed) return '';
9748    return slideEl.className.split(' ').filter(className => {
9749      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;
9750    }).join(' ');
9751  }
9752  emitSlidesClasses() {
9753    const swiper = this;
9754    if (!swiper.params._emitClasses || !swiper.el) return;
9755    const updates = [];
9756    swiper.slides.forEach(slideEl => {
9757      const classNames = swiper.getSlideClasses(slideEl);
9758      updates.push({
9759        slideEl,
9760        classNames
9761      });
9762      swiper.emit('_slideClass', slideEl, classNames);
9763    });
9764    swiper.emit('_slideClasses', updates);
9765  }
9766  slidesPerViewDynamic(view, exact) {
9767    if (view === void 0) {
9768      view = 'current';
9769    }
9770    if (exact === void 0) {
9771      exact = false;
9772    }
9773    const swiper = this;
9774    const {
9775      params,
9776      slides,
9777      slidesGrid,
9778      slidesSizesGrid,
9779      size: swiperSize,
9780      activeIndex
9781    } = swiper;
9782    let spv = 1;
9783    if (typeof params.slidesPerView === 'number') return params.slidesPerView;
9784    if (params.centeredSlides) {
9785      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;
9786      let breakLoop;
9787      for (let i = activeIndex + 1; i < slides.length; i += 1) {
9788        if (slides[i] && !breakLoop) {
9789          slideSize += Math.ceil(slides[i].swiperSlideSize);
9790          spv += 1;
9791          if (slideSize > swiperSize) breakLoop = true;
9792        }
9793      }
9794      for (let i = activeIndex - 1; i >= 0; i -= 1) {
9795        if (slides[i] && !breakLoop) {
9796          slideSize += slides[i].swiperSlideSize;
9797          spv += 1;
9798          if (slideSize > swiperSize) breakLoop = true;
9799        }
9800      }
9801    } else {
9802      // eslint-disable-next-line
9803      if (view === 'current') {
9804        for (let i = activeIndex + 1; i < slides.length; i += 1) {
9805          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
9806          if (slideInView) {
9807            spv += 1;
9808          }
9809        }
9810      } else {
9811        // previous
9812        for (let i = activeIndex - 1; i >= 0; i -= 1) {
9813          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
9814          if (slideInView) {
9815            spv += 1;
9816          }
9817        }
9818      }
9819    }
9820    return spv;
9821  }
9822  update() {
9823    const swiper = this;
9824    if (!swiper || swiper.destroyed) return;
9825    const {
9826      snapGrid,
9827      params
9828    } = swiper;
9829    // Breakpoints
9830    if (params.breakpoints) {
9831      swiper.setBreakpoint();
9832    }
9833    [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => {
9834      if (imageEl.complete) {
9835        processLazyPreloader(swiper, imageEl);
9836      }
9837    });
9838    swiper.updateSize();
9839    swiper.updateSlides();
9840    swiper.updateProgress();
9841    swiper.updateSlidesClasses();
9842    function setTranslate() {
9843      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
9844      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
9845      swiper.setTranslate(newTranslate);
9846      swiper.updateActiveIndex();
9847      swiper.updateSlidesClasses();
9848    }
9849    let translated;
9850    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {
9851      setTranslate();
9852      if (params.autoHeight) {
9853        swiper.updateAutoHeight();
9854      }
9855    } else {
9856      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {
9857        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;
9858        translated = swiper.slideTo(slides.length - 1, 0, false, true);
9859      } else {
9860        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
9861      }
9862      if (!translated) {
9863        setTranslate();
9864      }
9865    }
9866    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {
9867      swiper.checkOverflow();
9868    }
9869    swiper.emit('update');
9870  }
9871  changeDirection(newDirection, needUpdate) {
9872    if (needUpdate === void 0) {
9873      needUpdate = true;
9874    }
9875    const swiper = this;
9876    const currentDirection = swiper.params.direction;
9877    if (!newDirection) {
9878      // eslint-disable-next-line
9879      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
9880    }
9881    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {
9882      return swiper;
9883    }
9884    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);
9885    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);
9886    swiper.emitContainerClasses();
9887    swiper.params.direction = newDirection;
9888    swiper.slides.forEach(slideEl => {
9889      if (newDirection === 'vertical') {
9890        slideEl.style.width = '';
9891      } else {
9892        slideEl.style.height = '';
9893      }
9894    });
9895    swiper.emit('changeDirection');
9896    if (needUpdate) swiper.update();
9897    return swiper;
9898  }
9899  changeLanguageDirection(direction) {
9900    const swiper = this;
9901    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;
9902    swiper.rtl = direction === 'rtl';
9903    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;
9904    if (swiper.rtl) {
9905      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);
9906      swiper.el.dir = 'rtl';
9907    } else {
9908      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);
9909      swiper.el.dir = 'ltr';
9910    }
9911    swiper.update();
9912  }
9913  mount(element) {
9914    const swiper = this;
9915    if (swiper.mounted) return true;
9916
9917    // Find el
9918    let el = element || swiper.params.el;
9919    if (typeof el === 'string') {
9920      el = document.querySelector(el);
9921    }
9922    if (!el) {
9923      return false;
9924    }
9925    el.swiper = swiper;
9926    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {
9927      swiper.isElement = true;
9928    }
9929    const getWrapperSelector = () => {
9930      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;
9931    };
9932    const getWrapper = () => {
9933      if (el && el.shadowRoot && el.shadowRoot.querySelector) {
9934        const res = el.shadowRoot.querySelector(getWrapperSelector());
9935        // Children needs to return slot items
9936        return res;
9937      }
9938      return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, getWrapperSelector())[0];
9939    };
9940    // Find Wrapper
9941    let wrapperEl = getWrapper();
9942    if (!wrapperEl && swiper.params.createElements) {
9943      wrapperEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.wrapperClass);
9944      el.append(wrapperEl);
9945      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, `.${swiper.params.slideClass}`).forEach(slideEl => {
9946        wrapperEl.append(slideEl);
9947      });
9948    }
9949    Object.assign(swiper, {
9950      el,
9951      wrapperEl,
9952      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
9953      hostEl: swiper.isElement ? el.parentNode.host : el,
9954      mounted: true,
9955      // RTL
9956      rtl: el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'direction') === 'rtl',
9957      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'direction') === 'rtl'),
9958      wrongRTL: (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(wrapperEl, 'display') === '-webkit-box'
9959    });
9960    return true;
9961  }
9962  init(el) {
9963    const swiper = this;
9964    if (swiper.initialized) return swiper;
9965    const mounted = swiper.mount(el);
9966    if (mounted === false) return swiper;
9967    swiper.emit('beforeInit');
9968
9969    // Set breakpoint
9970    if (swiper.params.breakpoints) {
9971      swiper.setBreakpoint();
9972    }
9973
9974    // Add Classes
9975    swiper.addClasses();
9976
9977    // Update size
9978    swiper.updateSize();
9979
9980    // Update slides
9981    swiper.updateSlides();
9982    if (swiper.params.watchOverflow) {
9983      swiper.checkOverflow();
9984    }
9985
9986    // Set Grab Cursor
9987    if (swiper.params.grabCursor && swiper.enabled) {
9988      swiper.setGrabCursor();
9989    }
9990
9991    // Slide To Initial Slide
9992    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
9993      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);
9994    } else {
9995      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
9996    }
9997
9998    // Create loop
9999    if (swiper.params.loop) {
10000      swiper.loopCreate();
10001    }
10002
10003    // Attach events
10004    swiper.attachEvents();
10005    const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')];
10006    if (swiper.isElement) {
10007      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]'));
10008    }
10009    lazyElements.forEach(imageEl => {
10010      if (imageEl.complete) {
10011        processLazyPreloader(swiper, imageEl);
10012      } else {
10013        imageEl.addEventListener('load', e => {
10014          processLazyPreloader(swiper, e.target);
10015        });
10016      }
10017    });
10018    preload(swiper);
10019
10020    // Init Flag
10021    swiper.initialized = true;
10022    preload(swiper);
10023
10024    // Emit
10025    swiper.emit('init');
10026    swiper.emit('afterInit');
10027    return swiper;
10028  }
10029  destroy(deleteInstance, cleanStyles) {
10030    if (deleteInstance === void 0) {
10031      deleteInstance = true;
10032    }
10033    if (cleanStyles === void 0) {
10034      cleanStyles = true;
10035    }
10036    const swiper = this;
10037    const {
10038      params,
10039      el,
10040      wrapperEl,
10041      slides
10042    } = swiper;
10043    if (typeof swiper.params === 'undefined' || swiper.destroyed) {
10044      return null;
10045    }
10046    swiper.emit('beforeDestroy');
10047
10048    // Init Flag
10049    swiper.initialized = false;
10050
10051    // Detach events
10052    swiper.detachEvents();
10053
10054    // Destroy loop
10055    if (params.loop) {
10056      swiper.loopDestroy();
10057    }
10058
10059    // Cleanup styles
10060    if (cleanStyles) {
10061      swiper.removeClasses();
10062      if (el && typeof el !== 'string') {
10063        el.removeAttribute('style');
10064      }
10065      if (wrapperEl) {
10066        wrapperEl.removeAttribute('style');
10067      }
10068      if (slides && slides.length) {
10069        slides.forEach(slideEl => {
10070          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);
10071          slideEl.removeAttribute('style');
10072          slideEl.removeAttribute('data-swiper-slide-index');
10073        });
10074      }
10075    }
10076    swiper.emit('destroy');
10077
10078    // Detach emitter events
10079    Object.keys(swiper.eventsListeners).forEach(eventName => {
10080      swiper.off(eventName);
10081    });
10082    if (deleteInstance !== false) {
10083      if (swiper.el && typeof swiper.el !== 'string') {
10084        swiper.el.swiper = null;
10085      }
10086      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(swiper);
10087    }
10088    swiper.destroyed = true;
10089    return null;
10090  }
10091  static extendDefaults(newDefaults) {
10092    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(extendedDefaults, newDefaults);
10093  }
10094  static get extendedDefaults() {
10095    return extendedDefaults;
10096  }
10097  static get defaults() {
10098    return defaults;
10099  }
10100  static installModule(mod) {
10101    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];
10102    const modules = Swiper.prototype.__modules__;
10103    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {
10104      modules.push(mod);
10105    }
10106  }
10107  static use(module) {
10108    if (Array.isArray(module)) {
10109      module.forEach(m => Swiper.installModule(m));
10110      return Swiper;
10111    }
10112    Swiper.installModule(module);
10113    return Swiper;
10114  }
10115}
10116Object.keys(prototypes).forEach(prototypeGroup => {
10117  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {
10118    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
10119  });
10120});
10121Swiper.use([Resize, Observer]);
10122
10123
10124
10125
10126/***/ }),
10127
vendor: 12,360 bytes, lines 10128-10480
10128/***/ "./node_modules/swiper/shared/utils.mjs":
10129/*!**********************************************!*\
10130  !*** ./node_modules/swiper/shared/utils.mjs ***!
10131  \**********************************************/
10132/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
10133
10134__webpack_require__.r(__webpack_exports__);
10135/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10136/* harmony export */   a: () => (/* binding */ elementParents),
10137/* harmony export */   b: () => (/* binding */ elementOffset),
10138/* harmony export */   c: () => (/* binding */ createElement),
10139/* harmony export */   d: () => (/* binding */ now),
10140/* harmony export */   e: () => (/* binding */ elementChildren),
10141/* harmony export */   f: () => (/* binding */ elementOuterSize),
10142/* harmony export */   g: () => (/* binding */ getSlideTransformEl),
10143/* harmony export */   h: () => (/* binding */ elementIndex),
10144/* harmony export */   i: () => (/* binding */ classesToTokens),
10145/* harmony export */   j: () => (/* binding */ getTranslate),
10146/* harmony export */   k: () => (/* binding */ elementTransitionEnd),
10147/* harmony export */   l: () => (/* binding */ isObject),
10148/* harmony export */   m: () => (/* binding */ makeElementsArray),
10149/* harmony export */   n: () => (/* binding */ nextTick),
10150/* harmony export */   o: () => (/* binding */ getRotateFix),
10151/* harmony export */   p: () => (/* binding */ elementStyle),
10152/* harmony export */   q: () => (/* binding */ elementNextAll),
10153/* harmony export */   r: () => (/* binding */ elementPrevAll),
10154/* harmony export */   s: () => (/* binding */ setCSSProperty),
10155/* harmony export */   t: () => (/* binding */ animateCSSModeScroll),
10156/* harmony export */   u: () => (/* binding */ showWarning),
10157/* harmony export */   v: () => (/* binding */ elementIsChildOf),
10158/* harmony export */   w: () => (/* binding */ extend),
10159/* harmony export */   x: () => (/* binding */ deleteProps)
10160/* harmony export */ });
10161/* 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");
10162
10163
10164function classesToTokens(classes) {
10165  if (classes === void 0) {
10166    classes = '';
10167  }
10168  return classes.trim().split(' ').filter(c => !!c.trim());
10169}
10170
10171function deleteProps(obj) {
10172  const object = obj;
10173  Object.keys(object).forEach(key => {
10174    try {
10175      object[key] = null;
10176    } catch (e) {
10177      // no getter for object
10178    }
10179    try {
10180      delete object[key];
10181    } catch (e) {
10182      // something got wrong
10183    }
10184  });
10185}
10186function nextTick(callback, delay) {
10187  if (delay === void 0) {
10188    delay = 0;
10189  }
10190  return setTimeout(callback, delay);
10191}
10192function now() {
10193  return Date.now();
10194}
10195function getComputedStyle(el) {
10196  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10197  let style;
10198  if (window.getComputedStyle) {
10199    style = window.getComputedStyle(el, null);
10200  }
10201  if (!style && el.currentStyle) {
10202    style = el.currentStyle;
10203  }
10204  if (!style) {
10205    style = el.style;
10206  }
10207  return style;
10208}
10209function getTranslate(el, axis) {
10210  if (axis === void 0) {
10211    axis = 'x';
10212  }
10213  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10214  let matrix;
10215  let curTransform;
10216  let transformMatrix;
10217  const curStyle = getComputedStyle(el);
10218  if (window.WebKitCSSMatrix) {
10219    curTransform = curStyle.transform || curStyle.webkitTransform;
10220    if (curTransform.split(',').length > 6) {
10221      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');
10222    }
10223    // Some old versions of Webkit choke when 'none' is passed; pass
10224    // empty string instead in this case
10225    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
10226  } else {
10227    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
10228    matrix = transformMatrix.toString().split(',');
10229  }
10230  if (axis === 'x') {
10231    // Latest Chrome and webkits Fix
10232    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;
10233    // Crazy IE10 Matrix
10234    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);
10235    // Normal Browsers
10236    else curTransform = parseFloat(matrix[4]);
10237  }
10238  if (axis === 'y') {
10239    // Latest Chrome and webkits Fix
10240    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;
10241    // Crazy IE10 Matrix
10242    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);
10243    // Normal Browsers
10244    else curTransform = parseFloat(matrix[5]);
10245  }
10246  return curTransform || 0;
10247}
10248function isObject(o) {
10249  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
10250}
10251function isNode(node) {
10252  // eslint-disable-next-line
10253  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
10254    return node instanceof HTMLElement;
10255  }
10256  return node && (node.nodeType === 1 || node.nodeType === 11);
10257}
10258function extend() {
10259  const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
10260  const noExtend = ['__proto__', 'constructor', 'prototype'];
10261  for (let i = 1; i < arguments.length; i += 1) {
10262    const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
10263    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
10264      const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
10265      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
10266        const nextKey = keysArray[nextIndex];
10267        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
10268        if (desc !== undefined && desc.enumerable) {
10269          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
10270            if (nextSource[nextKey].__swiper__) {
10271              to[nextKey] = nextSource[nextKey];
10272            } else {
10273              extend(to[nextKey], nextSource[nextKey]);
10274            }
10275          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
10276            to[nextKey] = {};
10277            if (nextSource[nextKey].__swiper__) {
10278              to[nextKey] = nextSource[nextKey];
10279            } else {
10280              extend(to[nextKey], nextSource[nextKey]);
10281            }
10282          } else {
10283            to[nextKey] = nextSource[nextKey];
10284          }
10285        }
10286      }
10287    }
10288  }
10289  return to;
10290}
10291function setCSSProperty(el, varName, varValue) {
10292  el.style.setProperty(varName, varValue);
10293}
10294function animateCSSModeScroll(_ref) {
10295  let {
10296    swiper,
10297    targetPosition,
10298    side
10299  } = _ref;
10300  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10301  const startPosition = -swiper.translate;
10302  let startTime = null;
10303  let time;
10304  const duration = swiper.params.speed;
10305  swiper.wrapperEl.style.scrollSnapType = 'none';
10306  window.cancelAnimationFrame(swiper.cssModeFrameID);
10307  const dir = targetPosition > startPosition ? 'next' : 'prev';
10308  const isOutOfBound = (current, target) => {
10309    return dir === 'next' && current >= target || dir === 'prev' && current <= target;
10310  };
10311  const animate = () => {
10312    time = new Date().getTime();
10313    if (startTime === null) {
10314      startTime = time;
10315    }
10316    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
10317    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
10318    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
10319    if (isOutOfBound(currentPosition, targetPosition)) {
10320      currentPosition = targetPosition;
10321    }
10322    swiper.wrapperEl.scrollTo({
10323      [side]: currentPosition
10324    });
10325    if (isOutOfBound(currentPosition, targetPosition)) {
10326      swiper.wrapperEl.style.overflow = 'hidden';
10327      swiper.wrapperEl.style.scrollSnapType = '';
10328      setTimeout(() => {
10329        swiper.wrapperEl.style.overflow = '';
10330        swiper.wrapperEl.scrollTo({
10331          [side]: currentPosition
10332        });
10333      });
10334      window.cancelAnimationFrame(swiper.cssModeFrameID);
10335      return;
10336    }
10337    swiper.cssModeFrameID = window.requestAnimationFrame(animate);
10338  };
10339  animate();
10340}
10341function getSlideTransformEl(slideEl) {
10342  return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;
10343}
10344function elementChildren(element, selector) {
10345  if (selector === void 0) {
10346    selector = '';
10347  }
10348  const children = [...element.children];
10349  if (element instanceof HTMLSlotElement) {
10350    children.push(...element.assignedElements());
10351  }
10352  if (!selector) {
10353    return children;
10354  }
10355  return children.filter(el => el.matches(selector));
10356}
10357function elementIsChildOf(el, parent) {
10358  const isChild = parent.contains(el);
10359  if (!isChild && parent instanceof HTMLSlotElement) {
10360    const children = [...parent.assignedElements()];
10361    return children.includes(el);
10362  }
10363  return isChild;
10364}
10365function showWarning(text) {
10366  try {
10367    console.warn(text);
10368    return;
10369  } catch (err) {
10370    // err
10371  }
10372}
10373function createElement(tag, classes) {
10374  if (classes === void 0) {
10375    classes = [];
10376  }
10377  const el = document.createElement(tag);
10378  el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));
10379  return el;
10380}
10381function elementOffset(el) {
10382  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10383  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
10384  const box = el.getBoundingClientRect();
10385  const body = document.body;
10386  const clientTop = el.clientTop || body.clientTop || 0;
10387  const clientLeft = el.clientLeft || body.clientLeft || 0;
10388  const scrollTop = el === window ? window.scrollY : el.scrollTop;
10389  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
10390  return {
10391    top: box.top + scrollTop - clientTop,
10392    left: box.left + scrollLeft - clientLeft
10393  };
10394}
10395function elementPrevAll(el, selector) {
10396  const prevEls = [];
10397  while (el.previousElementSibling) {
10398    const prev = el.previousElementSibling; // eslint-disable-line
10399    if (selector) {
10400      if (prev.matches(selector)) prevEls.push(prev);
10401    } else prevEls.push(prev);
10402    el = prev;
10403  }
10404  return prevEls;
10405}
10406function elementNextAll(el, selector) {
10407  const nextEls = [];
10408  while (el.nextElementSibling) {
10409    const next = el.nextElementSibling; // eslint-disable-line
10410    if (selector) {
10411      if (next.matches(selector)) nextEls.push(next);
10412    } else nextEls.push(next);
10413    el = next;
10414  }
10415  return nextEls;
10416}
10417function elementStyle(el, prop) {
10418  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10419  return window.getComputedStyle(el, null).getPropertyValue(prop);
10420}
10421function elementIndex(el) {
10422  let child = el;
10423  let i;
10424  if (child) {
10425    i = 0;
10426    // eslint-disable-next-line
10427    while ((child = child.previousSibling) !== null) {
10428      if (child.nodeType === 1) i += 1;
10429    }
10430    return i;
10431  }
10432  return undefined;
10433}
10434function elementParents(el, selector) {
10435  const parents = []; // eslint-disable-line
10436  let parent = el.parentElement; // eslint-disable-line
10437  while (parent) {
10438    if (selector) {
10439      if (parent.matches(selector)) parents.push(parent);
10440    } else {
10441      parents.push(parent);
10442    }
10443    parent = parent.parentElement;
10444  }
10445  return parents;
10446}
10447function elementTransitionEnd(el, callback) {
10448  function fireCallBack(e) {
10449    if (e.target !== el) return;
10450    callback.call(el, e);
10451    el.removeEventListener('transitionend', fireCallBack);
10452  }
10453  if (callback) {
10454    el.addEventListener('transitionend', fireCallBack);
10455  }
10456}
10457function elementOuterSize(el, size, includeMargins) {
10458  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10459  if (includeMargins) {
10460    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'));
10461  }
10462  return el.offsetWidth;
10463}
10464function makeElementsArray(el) {
10465  return (Array.isArray(el) ? el : [el]).filter(e => !!e);
10466}
10467function getRotateFix(swiper) {
10468  return v => {
10469    if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {
10470      return v + 0.001;
10471    }
10472    return v;
10473  };
10474}
10475
10476
10477
10478
10479/***/ }),
10480
vendor: 1,090 bytes, lines 10481-10508
10481/***/ "./node_modules/swiper/swiper.mjs":
10482/*!****************************************!*\
10483  !*** ./node_modules/swiper/swiper.mjs ***!
10484  \****************************************/
10485/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
10486
10487__webpack_require__.r(__webpack_exports__);
10488/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10489/* harmony export */   Swiper: () => (/* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S),
10490/* harmony export */   "default": () => (/* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S)
10491/* harmony export */ });
10492/* harmony import */ var _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared/swiper-core.mjs */ "./node_modules/swiper/shared/swiper-core.mjs");
10493/**
10494 * Swiper 11.1.15
10495 * Most modern mobile touch slider and framework with hardware accelerated transitions
10496 * https://swiperjs.com
10497 *
10498 * Copyright 2014-2024 Vladimir Kharlampidi
10499 *
10500 * Released under the MIT License
10501 *
10502 * Released on: November 18, 2024
10503 */
10504
10505
10506
10507
10508/***/ })
vendor: 6,410 bytes, lines 10508-10664
10508
10509
10510/******/ 	});
10511/************************************************************************/
10512/******/ 	// The module cache
10513/******/ 	var __webpack_module_cache__ = {};
10514/******/ 	
10515/******/ 	// The require function
10516/******/ 	function __webpack_require__(moduleId) {
10517/******/ 		// Check if module is in cache
10518/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
10519/******/ 		if (cachedModule !== undefined) {
10520/******/ 			return cachedModule.exports;
10521/******/ 		}
10522/******/ 		// Create a new module (and put it into the cache)
10523/******/ 		var module = __webpack_module_cache__[moduleId] = {
10524/******/ 			// no module.id needed
10525/******/ 			// no module.loaded needed
10526/******/ 			exports: {}
10527/******/ 		};
10528/******/ 	
10529/******/ 		// Execute the module function
10530/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10531/******/ 	
10532/******/ 		// Return the exports of the module
10533/******/ 		return module.exports;
10534/******/ 	}
10535/******/ 	
10536/******/ 	// expose the modules object (__webpack_modules__)
10537/******/ 	__webpack_require__.m = __webpack_modules__;
10538/******/ 	
10539/************************************************************************/
10540/******/ 	/* webpack/runtime/chunk loaded */
10541/******/ 	(() => {
10542/******/ 		var deferred = [];
10543/******/ 		__webpack_require__.O = (result, chunkIds, fn, priority) => {
10544/******/ 			if(chunkIds) {
10545/******/ 				priority = priority || 0;
10546/******/ 				for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
10547/******/ 				deferred[i] = [chunkIds, fn, priority];
10548/******/ 				return;
10549/******/ 			}
10550/******/ 			var notFulfilled = Infinity;
10551/******/ 			for (var i = 0; i < deferred.length; i++) {
10552/******/ 				var [chunkIds, fn, priority] = deferred[i];
10553/******/ 				var fulfilled = true;
10554/******/ 				for (var j = 0; j < chunkIds.length; j++) {
10555/******/ 					if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
10556/******/ 						chunkIds.splice(j--, 1);
10557/******/ 					} else {
10558/******/ 						fulfilled = false;
10559/******/ 						if(priority < notFulfilled) notFulfilled = priority;
10560/******/ 					}
10561/******/ 				}
10562/******/ 				if(fulfilled) {
10563/******/ 					deferred.splice(i--, 1)
10564/******/ 					var r = fn();
10565/******/ 					if (r !== undefined) result = r;
10566/******/ 				}
10567/******/ 			}
10568/******/ 			return result;
10569/******/ 		};
10570/******/ 	})();
10571/******/ 	
10572/******/ 	/* webpack/runtime/define property getters */
10573/******/ 	(() => {
10574/******/ 		// define getter functions for harmony exports
10575/******/ 		__webpack_require__.d = (exports, definition) => {
10576/******/ 			for(var key in definition) {
10577/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
10578/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
10579/******/ 				}
10580/******/ 			}
10581/******/ 		};
10582/******/ 	})();
10583/******/ 	
10584/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
10585/******/ 	(() => {
10586/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
10587/******/ 	})();
10588/******/ 	
10589/******/ 	/* webpack/runtime/make namespace object */
10590/******/ 	(() => {
10591/******/ 		// define __esModule on exports
10592/******/ 		__webpack_require__.r = (exports) => {
10593/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
10594/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10595/******/ 			}
10596/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
10597/******/ 		};
10598/******/ 	})();
10599/******/ 	
10600/******/ 	/* webpack/runtime/jsonp chunk loading */
10601/******/ 	(() => {
10602/******/ 		// no baseURI
10603/******/ 		
10604/******/ 		// object to store loaded and loading chunks
10605/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
10606/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
10607/******/ 		var installedChunks = {
10608/******/ 			"banner-hero/view": 0,
10609/******/ 			"banner-hero/style-view": 0
10610/******/ 		};
10611/******/ 		
10612/******/ 		// no chunk on demand loading
10613/******/ 		
10614/******/ 		// no prefetching
10615/******/ 		
10616/******/ 		// no preloaded
10617/******/ 		
10618/******/ 		// no HMR
10619/******/ 		
10620/******/ 		// no HMR manifest
10621/******/ 		
10622/******/ 		__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
10623/******/ 		
10624/******/ 		// install a JSONP callback for chunk loading
10625/******/ 		var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
10626/******/ 			var [chunkIds, moreModules, runtime] = data;
10627/******/ 			// add "moreModules" to the modules object,
10628/******/ 			// then flag all "chunkIds" as loaded and fire callback
10629/******/ 			var moduleId, chunkId, i = 0;
10630/******/ 			if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
10631/******/ 				for(moduleId in moreModules) {
10632/******/ 					if(__webpack_require__.o(moreModules, moduleId)) {
10633/******/ 						__webpack_require__.m[moduleId] = moreModules[moduleId];
10634/******/ 					}
10635/******/ 				}
10636/******/ 				if(runtime) var result = runtime(__webpack_require__);
10637/******/ 			}
10638/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
10639/******/ 			for(;i < chunkIds.length; i++) {
10640/******/ 				chunkId = chunkIds[i];
10641/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
10642/******/ 					installedChunks[chunkId][0]();
10643/******/ 				}
10644/******/ 				installedChunks[chunkId] = 0;
10645/******/ 			}
10646/******/ 			return __webpack_require__.O(result);
10647/******/ 		}
10648/******/ 		
10649/******/ 		var chunkLoadingGlobal = globalThis["webpackChunkKeraton"] = globalThis["webpackChunkKeraton"] || [];
10650/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
10651/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
10652/******/ 	})();
10653/******/ 	
10654/************************************************************************/
10655/******/ 	
10656/******/ 	// startup
10657/******/ 	// Load entry module and return exports
10658/******/ 	// This entry module depends on other loaded chunks and execution need to be delayed
10659/******/ 	var __webpack_exports__ = __webpack_require__.O(undefined, ["banner-hero/style-view"], () => (__webpack_require__("./src/blocks/banner-hero/view.js")))
10660/******/ 	__webpack_exports__ = __webpack_require__.O(__webpack_exports__);
10661/******/ 	
10662/******/ })()
10663;
10664//# sourceMappingURL=view.js.map

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.