PageSourceSearch

https://baystatept.com/wp-content/themes/baystatecore/assets/js/library/swiper.js?ver=1.0.1

js baystatept.com collected 2026-09-28 10:21:33 UTC 381,912 bytes, 10,619 lines download raw bytes

1"use strict";
2(globalThis["webpackChunkwpnest"] = globalThis["webpackChunkwpnest"] || []).push([["library/swiper"],{
3
vendor: 14,078 bytes, lines 4-398
4/***/ "./node_modules/swiper/modules/a11y.mjs":
5/*!**********************************************!*\
6  !*** ./node_modules/swiper/modules/a11y.mjs ***!
7  \**********************************************/
8/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
9
10__webpack_require__.r(__webpack_exports__);
11/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12/* harmony export */   "default": () => (/* binding */ A11y)
13/* harmony export */ });
14/* 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");
15/* 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");
16/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
17
18
19
20
21function A11y(_ref) {
22  let {
23    swiper,
24    extendParams,
25    on
26  } = _ref;
27  extendParams({
28    a11y: {
29      enabled: true,
30      notificationClass: 'swiper-notification',
31      prevSlideMessage: 'Previous slide',
32      nextSlideMessage: 'Next slide',
33      firstSlideMessage: 'This is the first slide',
34      lastSlideMessage: 'This is the last slide',
35      paginationBulletMessage: 'Go to slide {{index}}',
36      slideLabelMessage: '{{index}} / {{slidesLength}}',
37      containerMessage: null,
38      containerRoleDescriptionMessage: null,
39      containerRole: null,
40      itemRoleDescriptionMessage: null,
41      slideRole: 'group',
42      id: null,
43      scrollOnFocus: true
44    }
45  });
46  swiper.a11y = {
47    clicked: false
48  };
49  let liveRegion = null;
50  let preventFocusHandler;
51  let focusTargetSlideEl;
52  let visibilityChangedTimestamp = new Date().getTime();
53  function notify(message) {
54    const notification = liveRegion;
55    if (notification.length === 0) return;
56    notification.innerHTML = '';
57    notification.innerHTML = message;
58  }
59  function getRandomNumber(size) {
60    if (size === void 0) {
61      size = 16;
62    }
63    const randomChar = () => Math.round(16 * Math.random()).toString(16);
64    return 'x'.repeat(size).replace(/x/g, randomChar);
65  }
66  function makeElFocusable(el) {
67    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
68    el.forEach(subEl => {
69      subEl.setAttribute('tabIndex', '0');
70    });
71  }
72  function makeElNotFocusable(el) {
73    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
74    el.forEach(subEl => {
75      subEl.setAttribute('tabIndex', '-1');
76    });
77  }
78  function addElRole(el, role) {
79    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
80    el.forEach(subEl => {
81      subEl.setAttribute('role', role);
82    });
83  }
84  function addElRoleDescription(el, description) {
85    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
86    el.forEach(subEl => {
87      subEl.setAttribute('aria-roledescription', description);
88    });
89  }
90  function addElControls(el, controls) {
91    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
92    el.forEach(subEl => {
93      subEl.setAttribute('aria-controls', controls);
94    });
95  }
96  function addElLabel(el, label) {
97    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
98    el.forEach(subEl => {
99      subEl.setAttribute('aria-label', label);
100    });
101  }
102  function addElId(el, id) {
103    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
104    el.forEach(subEl => {
105      subEl.setAttribute('id', id);
106    });
107  }
108  function addElLive(el, live) {
109    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
110    el.forEach(subEl => {
111      subEl.setAttribute('aria-live', live);
112    });
113  }
114  function disableEl(el) {
115    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
116    el.forEach(subEl => {
117      subEl.setAttribute('aria-disabled', true);
118    });
119  }
120  function enableEl(el) {
121    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
122    el.forEach(subEl => {
123      subEl.setAttribute('aria-disabled', false);
124    });
125  }
126  function onEnterOrSpaceKey(e) {
127    if (e.keyCode !== 13 && e.keyCode !== 32) return;
128    const params = swiper.params.a11y;
129    const targetEl = e.target;
130    if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {
131      if (!e.target.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) return;
132    }
133    if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {
134      const prevEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.prevEl);
135      const nextEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.nextEl);
136      if (nextEls.includes(targetEl)) {
137        if (!(swiper.isEnd && !swiper.params.loop)) {
138          swiper.slideNext();
139        }
140        if (swiper.isEnd) {
141          notify(params.lastSlideMessage);
142        } else {
143          notify(params.nextSlideMessage);
144        }
145      }
146      if (prevEls.includes(targetEl)) {
147        if (!(swiper.isBeginning && !swiper.params.loop)) {
148          swiper.slidePrev();
149        }
150        if (swiper.isBeginning) {
151          notify(params.firstSlideMessage);
152        } else {
153          notify(params.prevSlideMessage);
154        }
155      }
156    }
157    if (swiper.pagination && targetEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) {
158      targetEl.click();
159    }
160  }
161  function updateNavigation() {
162    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
163    const {
164      nextEl,
165      prevEl
166    } = swiper.navigation;
167    if (prevEl) {
168      if (swiper.isBeginning) {
169        disableEl(prevEl);
170        makeElNotFocusable(prevEl);
171      } else {
172        enableEl(prevEl);
173        makeElFocusable(prevEl);
174      }
175    }
176    if (nextEl) {
177      if (swiper.isEnd) {
178        disableEl(nextEl);
179        makeElNotFocusable(nextEl);
180      } else {
181        enableEl(nextEl);
182        makeElFocusable(nextEl);
183      }
184    }
185  }
186  function hasPagination() {
187    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
188  }
189  function hasClickablePagination() {
190    return hasPagination() && swiper.params.pagination.clickable;
191  }
192  function updatePagination() {
193    const params = swiper.params.a11y;
194    if (!hasPagination()) return;
195    swiper.pagination.bullets.forEach(bulletEl => {
196      if (swiper.params.pagination.clickable) {
197        makeElFocusable(bulletEl);
198        if (!swiper.params.pagination.renderBullet) {
199          addElRole(bulletEl, 'button');
200          addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bulletEl) + 1));
201        }
202      }
203      if (bulletEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletActiveClass))) {
204        bulletEl.setAttribute('aria-current', 'true');
205      } else {
206        bulletEl.removeAttribute('aria-current');
207      }
208    });
209  }
210  const initNavEl = (el, wrapperId, message) => {
211    makeElFocusable(el);
212    if (el.tagName !== 'BUTTON') {
213      addElRole(el, 'button');
214      el.addEventListener('keydown', onEnterOrSpaceKey);
215    }
216    addElLabel(el, message);
217    addElControls(el, wrapperId);
218  };
219  const handlePointerDown = e => {
220    if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {
221      preventFocusHandler = true;
222    }
223    swiper.a11y.clicked = true;
224  };
225  const handlePointerUp = () => {
226    preventFocusHandler = false;
227    requestAnimationFrame(() => {
228      requestAnimationFrame(() => {
229        if (!swiper.destroyed) {
230          swiper.a11y.clicked = false;
231        }
232      });
233    });
234  };
235  const onVisibilityChange = e => {
236    visibilityChangedTimestamp = new Date().getTime();
237  };
238  const handleFocus = e => {
239    if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;
240    if (new Date().getTime() - visibilityChangedTimestamp < 100) return;
241    const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
242    if (!slideEl || !swiper.slides.includes(slideEl)) return;
243    focusTargetSlideEl = slideEl;
244    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
245    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
246    if (isActive || isVisible) return;
247    if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
248    if (swiper.isHorizontal()) {
249      swiper.el.scrollLeft = 0;
250    } else {
251      swiper.el.scrollTop = 0;
252    }
253    requestAnimationFrame(() => {
254      if (preventFocusHandler) return;
255      if (swiper.params.loop) {
256        swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);
257      } else {
258        swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
259      }
260      preventFocusHandler = false;
261    });
262  };
263  const initSlides = () => {
264    const params = swiper.params.a11y;
265    if (params.itemRoleDescriptionMessage) {
266      addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);
267    }
268    if (params.slideRole) {
269      addElRole(swiper.slides, params.slideRole);
270    }
271    const slidesLength = swiper.slides.length;
272    if (params.slideLabelMessage) {
273      swiper.slides.forEach((slideEl, index) => {
274        const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;
275        const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
276        addElLabel(slideEl, ariaLabelMessage);
277      });
278    }
279  };
280  const init = () => {
281    const params = swiper.params.a11y;
282    swiper.el.append(liveRegion);
283
284    // Container
285    const containerEl = swiper.el;
286    if (params.containerRoleDescriptionMessage) {
287      addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);
288    }
289    if (params.containerMessage) {
290      addElLabel(containerEl, params.containerMessage);
291    }
292    if (params.containerRole) {
293      addElRole(containerEl, params.containerRole);
294    }
295
296    // Wrapper
297    const wrapperEl = swiper.wrapperEl;
298    const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;
299    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
300    addElId(wrapperEl, wrapperId);
301    addElLive(wrapperEl, live);
302
303    // Slide
304    initSlides();
305
306    // Navigation
307    let {
308      nextEl,
309      prevEl
310    } = swiper.navigation ? swiper.navigation : {};
311    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
312    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
313    if (nextEl) {
314      nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));
315    }
316    if (prevEl) {
317      prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));
318    }
319
320    // Pagination
321    if (hasClickablePagination()) {
322      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
323      paginationEl.forEach(el => {
324        el.addEventListener('keydown', onEnterOrSpaceKey);
325      });
326    }
327
328    // Tab focus
329    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
330    document.addEventListener('visibilitychange', onVisibilityChange);
331    swiper.el.addEventListener('focus', handleFocus, true);
332    swiper.el.addEventListener('focus', handleFocus, true);
333    swiper.el.addEventListener('pointerdown', handlePointerDown, true);
334    swiper.el.addEventListener('pointerup', handlePointerUp, true);
335  };
336  function destroy() {
337    if (liveRegion) liveRegion.remove();
338    let {
339      nextEl,
340      prevEl
341    } = swiper.navigation ? swiper.navigation : {};
342    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
343    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
344    if (nextEl) {
345      nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
346    }
347    if (prevEl) {
348      prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
349    }
350
351    // Pagination
352    if (hasClickablePagination()) {
353      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
354      paginationEl.forEach(el => {
355        el.removeEventListener('keydown', onEnterOrSpaceKey);
356      });
357    }
358    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
359    document.removeEventListener('visibilitychange', onVisibilityChange);
360    // Tab focus
361    if (swiper.el && typeof swiper.el !== 'string') {
362      swiper.el.removeEventListener('focus', handleFocus, true);
363      swiper.el.removeEventListener('pointerdown', handlePointerDown, true);
364      swiper.el.removeEventListener('pointerup', handlePointerUp, true);
365    }
366  }
367  on('beforeInit', () => {
368    liveRegion = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.c)('span', swiper.params.a11y.notificationClass);
369    liveRegion.setAttribute('aria-live', 'assertive');
370    liveRegion.setAttribute('aria-atomic', 'true');
371  });
372  on('afterInit', () => {
373    if (!swiper.params.a11y.enabled) return;
374    init();
375  });
376  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
377    if (!swiper.params.a11y.enabled) return;
378    initSlides();
379  });
380  on('fromEdge toEdge afterInit lock unlock', () => {
381    if (!swiper.params.a11y.enabled) return;
382    updateNavigation();
383  });
384  on('paginationUpdate', () => {
385    if (!swiper.params.a11y.enabled) return;
386    updatePagination();
387  });
388  on('destroy', () => {
389    if (!swiper.params.a11y.enabled) return;
390    destroy();
391  });
392}
393
394
395
396
397/***/ }),
398
vendor: 10,030 bytes, lines 399-717
399/***/ "./node_modules/swiper/modules/autoplay.mjs":
400/*!**************************************************!*\
401  !*** ./node_modules/swiper/modules/autoplay.mjs ***!
402  \**************************************************/
403/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
404
405__webpack_require__.r(__webpack_exports__);
406/* harmony export */ __webpack_require__.d(__webpack_exports__, {
407/* harmony export */   "default": () => (/* binding */ Autoplay)
408/* harmony export */ });
409/* 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");
410
411
412/* eslint no-underscore-dangle: "off" */
413/* eslint no-use-before-define: "off" */
414function Autoplay(_ref) {
415  let {
416    swiper,
417    extendParams,
418    on,
419    emit,
420    params
421  } = _ref;
422  swiper.autoplay = {
423    running: false,
424    paused: false,
425    timeLeft: 0
426  };
427  extendParams({
428    autoplay: {
429      enabled: false,
430      delay: 3000,
431      waitForTransition: true,
432      disableOnInteraction: false,
433      stopOnLastSlide: false,
434      reverseDirection: false,
435      pauseOnMouseEnter: false
436    }
437  });
438  let timeout;
439  let raf;
440  let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;
441  let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;
442  let autoplayTimeLeft;
443  let autoplayStartTime = new Date().getTime();
444  let wasPaused;
445  let isTouched;
446  let pausedByTouch;
447  let touchStartTimeout;
448  let slideChanged;
449  let pausedByInteraction;
450  let pausedByPointerEnter;
451  function onTransitionEnd(e) {
452    if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;
453    if (e.target !== swiper.wrapperEl) return;
454    swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);
455    if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {
456      return;
457    }
458    resume();
459  }
460  const calcTimeLeft = () => {
461    if (swiper.destroyed || !swiper.autoplay.running) return;
462    if (swiper.autoplay.paused) {
463      wasPaused = true;
464    } else if (wasPaused) {
465      autoplayDelayCurrent = autoplayTimeLeft;
466      wasPaused = false;
467    }
468    const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();
469    swiper.autoplay.timeLeft = timeLeft;
470    emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);
471    raf = requestAnimationFrame(() => {
472      calcTimeLeft();
473    });
474  };
475  const getSlideDelay = () => {
476    let activeSlideEl;
477    if (swiper.virtual && swiper.params.virtual.enabled) {
478      activeSlideEl = swiper.slides.find(slideEl => slideEl.classList.contains('swiper-slide-active'));
479    } else {
480      activeSlideEl = swiper.slides[swiper.activeIndex];
481    }
482    if (!activeSlideEl) return undefined;
483    const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);
484    return currentSlideDelay;
485  };
486  const run = delayForce => {
487    if (swiper.destroyed || !swiper.autoplay.running) return;
488    cancelAnimationFrame(raf);
489    calcTimeLeft();
490    let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;
491    autoplayDelayTotal = swiper.params.autoplay.delay;
492    autoplayDelayCurrent = swiper.params.autoplay.delay;
493    const currentSlideDelay = getSlideDelay();
494    if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {
495      delay = currentSlideDelay;
496      autoplayDelayTotal = currentSlideDelay;
497      autoplayDelayCurrent = currentSlideDelay;
498    }
499    autoplayTimeLeft = delay;
500    const speed = swiper.params.speed;
501    const proceed = () => {
502      if (!swiper || swiper.destroyed) return;
503      if (swiper.params.autoplay.reverseDirection) {
504        if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {
505          swiper.slidePrev(speed, true, true);
506          emit('autoplay');
507        } else if (!swiper.params.autoplay.stopOnLastSlide) {
508          swiper.slideTo(swiper.slides.length - 1, speed, true, true);
509          emit('autoplay');
510        }
511      } else {
512        if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {
513          swiper.slideNext(speed, true, true);
514          emit('autoplay');
515        } else if (!swiper.params.autoplay.stopOnLastSlide) {
516          swiper.slideTo(0, speed, true, true);
517          emit('autoplay');
518        }
519      }
520      if (swiper.params.cssMode) {
521        autoplayStartTime = new Date().getTime();
522        requestAnimationFrame(() => {
523          run();
524        });
525      }
526    };
527    if (delay > 0) {
528      clearTimeout(timeout);
529      timeout = setTimeout(() => {
530        proceed();
531      }, delay);
532    } else {
533      requestAnimationFrame(() => {
534        proceed();
535      });
536    }
537
538    // eslint-disable-next-line
539    return delay;
540  };
541  const start = () => {
542    autoplayStartTime = new Date().getTime();
543    swiper.autoplay.running = true;
544    run();
545    emit('autoplayStart');
546  };
547  const stop = () => {
548    swiper.autoplay.running = false;
549    clearTimeout(timeout);
550    cancelAnimationFrame(raf);
551    emit('autoplayStop');
552  };
553  const pause = (internal, reset) => {
554    if (swiper.destroyed || !swiper.autoplay.running) return;
555    clearTimeout(timeout);
556    if (!internal) {
557      pausedByInteraction = true;
558    }
559    const proceed = () => {
560      emit('autoplayPause');
561      if (swiper.params.autoplay.waitForTransition) {
562        swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);
563      } else {
564        resume();
565      }
566    };
567    swiper.autoplay.paused = true;
568    if (reset) {
569      if (slideChanged) {
570        autoplayTimeLeft = swiper.params.autoplay.delay;
571      }
572      slideChanged = false;
573      proceed();
574      return;
575    }
576    const delay = autoplayTimeLeft || swiper.params.autoplay.delay;
577    autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);
578    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;
579    if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;
580    proceed();
581  };
582  const resume = () => {
583    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;
584    autoplayStartTime = new Date().getTime();
585    if (pausedByInteraction) {
586      pausedByInteraction = false;
587      run(autoplayTimeLeft);
588    } else {
589      run();
590    }
591    swiper.autoplay.paused = false;
592    emit('autoplayResume');
593  };
594  const onVisibilityChange = () => {
595    if (swiper.destroyed || !swiper.autoplay.running) return;
596    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
597    if (document.visibilityState === 'hidden') {
598      pausedByInteraction = true;
599      pause(true);
600    }
601    if (document.visibilityState === 'visible') {
602      resume();
603    }
604  };
605  const onPointerEnter = e => {
606    if (e.pointerType !== 'mouse') return;
607    pausedByInteraction = true;
608    pausedByPointerEnter = true;
609    if (swiper.animating || swiper.autoplay.paused) return;
610    pause(true);
611  };
612  const onPointerLeave = e => {
613    if (e.pointerType !== 'mouse') return;
614    pausedByPointerEnter = false;
615    if (swiper.autoplay.paused) {
616      resume();
617    }
618  };
619  const attachMouseEvents = () => {
620    if (swiper.params.autoplay.pauseOnMouseEnter) {
621      swiper.el.addEventListener('pointerenter', onPointerEnter);
622      swiper.el.addEventListener('pointerleave', onPointerLeave);
623    }
624  };
625  const detachMouseEvents = () => {
626    if (swiper.el && typeof swiper.el !== 'string') {
627      swiper.el.removeEventListener('pointerenter', onPointerEnter);
628      swiper.el.removeEventListener('pointerleave', onPointerLeave);
629    }
630  };
631  const attachDocumentEvents = () => {
632    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
633    document.addEventListener('visibilitychange', onVisibilityChange);
634  };
635  const detachDocumentEvents = () => {
636    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
637    document.removeEventListener('visibilitychange', onVisibilityChange);
638  };
639  on('init', () => {
640    if (swiper.params.autoplay.enabled) {
641      attachMouseEvents();
642      attachDocumentEvents();
643      start();
644    }
645  });
646  on('destroy', () => {
647    detachMouseEvents();
648    detachDocumentEvents();
649    if (swiper.autoplay.running) {
650      stop();
651    }
652  });
653  on('_freeModeStaticRelease', () => {
654    if (pausedByTouch || pausedByInteraction) {
655      resume();
656    }
657  });
658  on('_freeModeNoMomentumRelease', () => {
659    if (!swiper.params.autoplay.disableOnInteraction) {
660      pause(true, true);
661    } else {
662      stop();
663    }
664  });
665  on('beforeTransitionStart', (_s, speed, internal) => {
666    if (swiper.destroyed || !swiper.autoplay.running) return;
667    if (internal || !swiper.params.autoplay.disableOnInteraction) {
668      pause(true, true);
669    } else {
670      stop();
671    }
672  });
673  on('sliderFirstMove', () => {
674    if (swiper.destroyed || !swiper.autoplay.running) return;
675    if (swiper.params.autoplay.disableOnInteraction) {
676      stop();
677      return;
678    }
679    isTouched = true;
680    pausedByTouch = false;
681    pausedByInteraction = false;
682    touchStartTimeout = setTimeout(() => {
683      pausedByInteraction = true;
684      pausedByTouch = true;
685      pause(true);
686    }, 200);
687  });
688  on('touchEnd', () => {
689    if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;
690    clearTimeout(touchStartTimeout);
691    clearTimeout(timeout);
692    if (swiper.params.autoplay.disableOnInteraction) {
693      pausedByTouch = false;
694      isTouched = false;
695      return;
696    }
697    if (pausedByTouch && swiper.params.cssMode) resume();
698    pausedByTouch = false;
699    isTouched = false;
700  });
701  on('slideChange', () => {
702    if (swiper.destroyed || !swiper.autoplay.running) return;
703    slideChanged = true;
704  });
705  Object.assign(swiper.autoplay, {
706    start,
707    stop,
708    pause,
709    resume
710  });
711}
712
713
714
715
716/***/ }),
717
vendor: 7,499 bytes, lines 718-923
718/***/ "./node_modules/swiper/modules/controller.mjs":
719/*!****************************************************!*\
720  !*** ./node_modules/swiper/modules/controller.mjs ***!
721  \****************************************************/
722/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
723
724__webpack_require__.r(__webpack_exports__);
725/* harmony export */ __webpack_require__.d(__webpack_exports__, {
726/* harmony export */   "default": () => (/* binding */ Controller)
727/* harmony export */ });
728/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
729
730
731/* eslint no-bitwise: ["error", { "allow": [">>"] }] */
732function Controller(_ref) {
733  let {
734    swiper,
735    extendParams,
736    on
737  } = _ref;
738  extendParams({
739    controller: {
740      control: undefined,
741      inverse: false,
742      by: 'slide' // or 'container'
743    }
744  });
745
746  swiper.controller = {
747    control: undefined
748  };
749  function LinearSpline(x, y) {
750    const binarySearch = function search() {
751      let maxIndex;
752      let minIndex;
753      let guess;
754      return (array, val) => {
755        minIndex = -1;
756        maxIndex = array.length;
757        while (maxIndex - minIndex > 1) {
758          guess = maxIndex + minIndex >> 1;
759          if (array[guess] <= val) {
760            minIndex = guess;
761          } else {
762            maxIndex = guess;
763          }
764        }
765        return maxIndex;
766      };
767    }();
768    this.x = x;
769    this.y = y;
770    this.lastIndex = x.length - 1;
771    // Given an x value (x2), return the expected y2 value:
772    // (x1,y1) is the known point before given value,
773    // (x3,y3) is the known point after given value.
774    let i1;
775    let i3;
776    this.interpolate = function interpolate(x2) {
777      if (!x2) return 0;
778
779      // Get the indexes of x1 and x3 (the array indexes before and after given x2):
780      i3 = binarySearch(this.x, x2);
781      i1 = i3 - 1;
782
783      // We have our indexes i1 & i3, so we can calculate already:
784      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
785      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
786    };
787    return this;
788  }
789  function getInterpolateFunction(c) {
790    swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
791  }
792  function setTranslate(_t, byController) {
793    const controlled = swiper.controller.control;
794    let multiplier;
795    let controlledTranslate;
796    const Swiper = swiper.constructor;
797    function setControlledTranslate(c) {
798      if (c.destroyed) return;
799
800      // this will create an Interpolate function based on the snapGrids
801      // x is the Grid of the scrolled scroller and y will be the controlled scroller
802      // it makes sense to create this only once and recall it for the interpolation
803      // the function does a lot of value caching for performance
804      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;
805      if (swiper.params.controller.by === 'slide') {
806        getInterpolateFunction(c);
807        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
808        // but it did not work out
809        controlledTranslate = -swiper.controller.spline.interpolate(-translate);
810      }
811      if (!controlledTranslate || swiper.params.controller.by === 'container') {
812        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
813        if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {
814          multiplier = 1;
815        }
816        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
817      }
818      if (swiper.params.controller.inverse) {
819        controlledTranslate = c.maxTranslate() - controlledTranslate;
820      }
821      c.updateProgress(controlledTranslate);
822      c.setTranslate(controlledTranslate, swiper);
823      c.updateActiveIndex();
824      c.updateSlidesClasses();
825    }
826    if (Array.isArray(controlled)) {
827      for (let i = 0; i < controlled.length; i += 1) {
828        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
829          setControlledTranslate(controlled[i]);
830        }
831      }
832    } else if (controlled instanceof Swiper && byController !== controlled) {
833      setControlledTranslate(controlled);
834    }
835  }
836  function setTransition(duration, byController) {
837    const Swiper = swiper.constructor;
838    const controlled = swiper.controller.control;
839    let i;
840    function setControlledTransition(c) {
841      if (c.destroyed) return;
842      c.setTransition(duration, swiper);
843      if (duration !== 0) {
844        c.transitionStart();
845        if (c.params.autoHeight) {
846          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.n)(() => {
847            c.updateAutoHeight();
848          });
849        }
850        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(c.wrapperEl, () => {
851          if (!controlled) return;
852          c.transitionEnd();
853        });
854      }
855    }
856    if (Array.isArray(controlled)) {
857      for (i = 0; i < controlled.length; i += 1) {
858        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
859          setControlledTransition(controlled[i]);
860        }
861      }
862    } else if (controlled instanceof Swiper && byController !== controlled) {
863      setControlledTransition(controlled);
864    }
865  }
866  function removeSpline() {
867    if (!swiper.controller.control) return;
868    if (swiper.controller.spline) {
869      swiper.controller.spline = undefined;
870      delete swiper.controller.spline;
871    }
872  }
873  on('beforeInit', () => {
874    if (typeof window !== 'undefined' && (
875    // eslint-disable-line
876    typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {
877      const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];
878      controlElements.forEach(controlElement => {
879        if (!swiper.controller.control) swiper.controller.control = [];
880        if (controlElement && controlElement.swiper) {
881          swiper.controller.control.push(controlElement.swiper);
882        } else if (controlElement) {
883          const eventName = `${swiper.params.eventsPrefix}init`;
884          const onControllerSwiper = e => {
885            swiper.controller.control.push(e.detail[0]);
886            swiper.update();
887            controlElement.removeEventListener(eventName, onControllerSwiper);
888          };
889          controlElement.addEventListener(eventName, onControllerSwiper);
890        }
891      });
892      return;
893    }
894    swiper.controller.control = swiper.params.controller.control;
895  });
896  on('update', () => {
897    removeSpline();
898  });
899  on('resize', () => {
900    removeSpline();
901  });
902  on('observerUpdate', () => {
903    removeSpline();
904  });
905  on('setTranslate', (_s, translate, byController) => {
906    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
907    swiper.controller.setTranslate(translate, byController);
908  });
909  on('setTransition', (_s, duration, byController) => {
910    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
911    swiper.controller.setTransition(duration, byController);
912  });
913  Object.assign(swiper.controller, {
914    setTranslate,
915    setTransition
916  });
917}
918
919
920
921
922/***/ }),
923
vendor: 6,023 bytes, lines 924-1070
924/***/ "./node_modules/swiper/modules/effect-cards.mjs":
925/*!******************************************************!*\
926  !*** ./node_modules/swiper/modules/effect-cards.mjs ***!
927  \******************************************************/
928/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
929
930__webpack_require__.r(__webpack_exports__);
931/* harmony export */ __webpack_require__.d(__webpack_exports__, {
932/* harmony export */   "default": () => (/* binding */ EffectCards)
933/* harmony export */ });
934/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
935/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
936/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
937/* 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");
938/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
939
940
941
942
943
944
945function EffectCards(_ref) {
946  let {
947    swiper,
948    extendParams,
949    on
950  } = _ref;
951  extendParams({
952    cardsEffect: {
953      slideShadows: true,
954      rotate: true,
955      perSlideRotate: 2,
956      perSlideOffset: 8
957    }
958  });
959  const setTranslate = () => {
960    const {
961      slides,
962      activeIndex,
963      rtlTranslate: rtl
964    } = swiper;
965    const params = swiper.params.cardsEffect;
966    const {
967      startTranslate,
968      isTouched
969    } = swiper.touchEventsData;
970    const currentTranslate = rtl ? -swiper.translate : swiper.translate;
971    for (let i = 0; i < slides.length; i += 1) {
972      const slideEl = slides[i];
973      const slideProgress = slideEl.progress;
974      const progress = Math.min(Math.max(slideProgress, -4), 4);
975      let offset = slideEl.swiperSlideOffset;
976      if (swiper.params.centeredSlides && !swiper.params.cssMode) {
977        swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;
978      }
979      if (swiper.params.centeredSlides && swiper.params.cssMode) {
980        offset -= slides[0].swiperSlideOffset;
981      }
982      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;
983      let tY = 0;
984      const tZ = -100 * Math.abs(progress);
985      let scale = 1;
986      let rotate = -params.perSlideRotate * progress;
987      let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;
988      const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;
989      const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;
990      const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;
991      if (isSwipeToNext || isSwipeToPrev) {
992        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
993        rotate += -28 * progress * subProgress;
994        scale += -0.5 * subProgress;
995        tXAdd += 96 * subProgress;
996        tY = `${-25 * subProgress * Math.abs(progress)}%`;
997      }
998      if (progress < 0) {
999        // next
1000        tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;
1001      } else if (progress > 0) {
1002        // prev
1003        tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;
1004      } else {
1005        tX = `${tX}px`;
1006      }
1007      if (!swiper.isHorizontal()) {
1008        const prevY = tY;
1009        tY = tX;
1010        tX = prevY;
1011      }
1012      const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
1013
1014      /* eslint-disable */
1015      const transform = `
1016        translate3d(${tX}, ${tY}, ${tZ}px)
1017        rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)
1018        scale(${scaleString})
1019      `;
1020      /* eslint-enable */
1021
1022      if (params.slideShadows) {
1023        // Set shadows
1024        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
1025        if (!shadowEl) {
1026          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('cards', slideEl);
1027        }
1028        if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
1029      }
1030      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
1031      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1032      targetEl.style.transform = transform;
1033    }
1034  };
1035  const setTransition = duration => {
1036    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1037    transformElements.forEach(el => {
1038      el.style.transitionDuration = `${duration}ms`;
1039      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
1040        shadowEl.style.transitionDuration = `${duration}ms`;
1041      });
1042    });
1043    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1044      swiper,
1045      duration,
1046      transformElements
1047    });
1048  };
1049  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1050    effect: 'cards',
1051    swiper,
1052    on,
1053    setTranslate,
1054    setTransition,
1055    perspective: () => true,
1056    overwriteParams: () => ({
1057      _loopSwapReset: false,
1058      watchSlidesProgress: true,
1059      loopAdditionalSlides: swiper.params.cardsEffect.rotate ? 3 : 2,
1060      centeredSlides: true,
1061      virtualTranslate: !swiper.params.cssMode
1062    })
1063  });
1064}
1065
1066
1067
1068
1069/***/ }),
1070
vendor: 5,680 bytes, lines 1071-1192
1071/***/ "./node_modules/swiper/modules/effect-coverflow.mjs":
1072/*!**********************************************************!*\
1073  !*** ./node_modules/swiper/modules/effect-coverflow.mjs ***!
1074  \**********************************************************/
1075/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1076
1077__webpack_require__.r(__webpack_exports__);
1078/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1079/* harmony export */   "default": () => (/* binding */ EffectCoverflow)
1080/* harmony export */ });
1081/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1082/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1083/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1084/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1085
1086
1087
1088
1089
1090function EffectCoverflow(_ref) {
1091  let {
1092    swiper,
1093    extendParams,
1094    on
1095  } = _ref;
1096  extendParams({
1097    coverflowEffect: {
1098      rotate: 50,
1099      stretch: 0,
1100      depth: 100,
1101      scale: 1,
1102      modifier: 1,
1103      slideShadows: true
1104    }
1105  });
1106  const setTranslate = () => {
1107    const {
1108      width: swiperWidth,
1109      height: swiperHeight,
1110      slides,
1111      slidesSizesGrid
1112    } = swiper;
1113    const params = swiper.params.coverflowEffect;
1114    const isHorizontal = swiper.isHorizontal();
1115    const transform = swiper.translate;
1116    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
1117    const rotate = isHorizontal ? params.rotate : -params.rotate;
1118    const translate = params.depth;
1119    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.o)(swiper);
1120    // Each slide offset from center
1121    for (let i = 0, length = slides.length; i < length; i += 1) {
1122      const slideEl = slides[i];
1123      const slideSize = slidesSizesGrid[i];
1124      const slideOffset = slideEl.swiperSlideOffset;
1125      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
1126      const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
1127      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
1128      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
1129      // var rotateZ = 0
1130      let translateZ = -translate * Math.abs(offsetMultiplier);
1131      let stretch = params.stretch;
1132      // Allow percentage to make a relative stretch for responsive sliders
1133      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
1134        stretch = parseFloat(params.stretch) / 100 * slideSize;
1135      }
1136      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
1137      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
1138      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);
1139
1140      // Fix for ultra small values
1141      if (Math.abs(translateX) < 0.001) translateX = 0;
1142      if (Math.abs(translateY) < 0.001) translateY = 0;
1143      if (Math.abs(translateZ) < 0.001) translateZ = 0;
1144      if (Math.abs(rotateY) < 0.001) rotateY = 0;
1145      if (Math.abs(rotateX) < 0.001) rotateX = 0;
1146      if (Math.abs(scale) < 0.001) scale = 0;
1147      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;
1148      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1149      targetEl.style.transform = slideTransform;
1150      slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
1151      if (params.slideShadows) {
1152        // Set shadows
1153        let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1154        let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1155        if (!shadowBeforeEl) {
1156          shadowBeforeEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'left' : 'top');
1157        }
1158        if (!shadowAfterEl) {
1159          shadowAfterEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
1160        }
1161        if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
1162        if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
1163      }
1164    }
1165  };
1166  const setTransition = duration => {
1167    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
1168    transformElements.forEach(el => {
1169      el.style.transitionDuration = `${duration}ms`;
1170      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
1171        shadowEl.style.transitionDuration = `${duration}ms`;
1172      });
1173    });
1174  };
1175  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1176    effect: 'coverflow',
1177    swiper,
1178    on,
1179    setTranslate,
1180    setTransition,
1181    perspective: () => true,
1182    overwriteParams: () => ({
1183      watchSlidesProgress: true
1184    })
1185  });
1186}
1187
1188
1189
1190
1191/***/ }),
1192
vendor: 6,449 bytes, lines 1193-1357
1193/***/ "./node_modules/swiper/modules/effect-creative.mjs":
1194/*!*********************************************************!*\
1195  !*** ./node_modules/swiper/modules/effect-creative.mjs ***!
1196  \*********************************************************/
1197/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1198
1199__webpack_require__.r(__webpack_exports__);
1200/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1201/* harmony export */   "default": () => (/* binding */ EffectCreative)
1202/* harmony export */ });
1203/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1204/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1205/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1206/* 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");
1207/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1208
1209
1210
1211
1212
1213
1214function EffectCreative(_ref) {
1215  let {
1216    swiper,
1217    extendParams,
1218    on
1219  } = _ref;
1220  extendParams({
1221    creativeEffect: {
1222      limitProgress: 1,
1223      shadowPerProgress: false,
1224      progressMultiplier: 1,
1225      perspective: true,
1226      prev: {
1227        translate: [0, 0, 0],
1228        rotate: [0, 0, 0],
1229        opacity: 1,
1230        scale: 1
1231      },
1232      next: {
1233        translate: [0, 0, 0],
1234        rotate: [0, 0, 0],
1235        opacity: 1,
1236        scale: 1
1237      }
1238    }
1239  });
1240  const getTranslateValue = value => {
1241    if (typeof value === 'string') return value;
1242    return `${value}px`;
1243  };
1244  const setTranslate = () => {
1245    const {
1246      slides,
1247      wrapperEl,
1248      slidesSizesGrid
1249    } = swiper;
1250    const params = swiper.params.creativeEffect;
1251    const {
1252      progressMultiplier: multiplier
1253    } = params;
1254    const isCenteredSlides = swiper.params.centeredSlides;
1255    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.o)(swiper);
1256    if (isCenteredSlides) {
1257      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;
1258      wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;
1259    }
1260    for (let i = 0; i < slides.length; i += 1) {
1261      const slideEl = slides[i];
1262      const slideProgress = slideEl.progress;
1263      const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);
1264      let originalProgress = progress;
1265      if (!isCenteredSlides) {
1266        originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);
1267      }
1268      const offset = slideEl.swiperSlideOffset;
1269      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];
1270      const r = [0, 0, 0];
1271      let custom = false;
1272      if (!swiper.isHorizontal()) {
1273        t[1] = t[0];
1274        t[0] = 0;
1275      }
1276      let data = {
1277        translate: [0, 0, 0],
1278        rotate: [0, 0, 0],
1279        scale: 1,
1280        opacity: 1
1281      };
1282      if (progress < 0) {
1283        data = params.next;
1284        custom = true;
1285      } else if (progress > 0) {
1286        data = params.prev;
1287        custom = true;
1288      }
1289      // set translate
1290      t.forEach((value, index) => {
1291        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
1292      });
1293      // set rotates
1294      r.forEach((value, index) => {
1295        let val = data.rotate[index] * Math.abs(progress * multiplier);
1296        r[index] = val;
1297      });
1298      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
1299      const translateString = t.join(', ');
1300      const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;
1301      const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
1302      const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;
1303      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;
1304
1305      // Set shadows
1306      if (custom && data.shadow || !custom) {
1307        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
1308        if (!shadowEl && data.shadow) {
1309          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('creative', slideEl);
1310        }
1311        if (shadowEl) {
1312          const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
1313          shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
1314        }
1315      }
1316      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1317      targetEl.style.transform = transform;
1318      targetEl.style.opacity = opacityString;
1319      if (data.origin) {
1320        targetEl.style.transformOrigin = data.origin;
1321      }
1322    }
1323  };
1324  const setTransition = duration => {
1325    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1326    transformElements.forEach(el => {
1327      el.style.transitionDuration = `${duration}ms`;
1328      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
1329        shadowEl.style.transitionDuration = `${duration}ms`;
1330      });
1331    });
1332    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1333      swiper,
1334      duration,
1335      transformElements,
1336      allSlides: true
1337    });
1338  };
1339  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1340    effect: 'creative',
1341    swiper,
1342    on,
1343    setTranslate,
1344    setTransition,
1345    perspective: () => swiper.params.creativeEffect.perspective,
1346    overwriteParams: () => ({
1347      watchSlidesProgress: true,
1348      virtualTranslate: !swiper.params.cssMode
1349    })
1350  });
1351}
1352
1353
1354
1355
1356/***/ }),
1357
vendor: 7,602 bytes, lines 1358-1547
1358/***/ "./node_modules/swiper/modules/effect-cube.mjs":
1359/*!*****************************************************!*\
1360  !*** ./node_modules/swiper/modules/effect-cube.mjs ***!
1361  \*****************************************************/
1362/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1363
1364__webpack_require__.r(__webpack_exports__);
1365/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1366/* harmony export */   "default": () => (/* binding */ EffectCube)
1367/* harmony export */ });
1368/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1369/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1370
1371
1372
1373function EffectCube(_ref) {
1374  let {
1375    swiper,
1376    extendParams,
1377    on
1378  } = _ref;
1379  extendParams({
1380    cubeEffect: {
1381      slideShadows: true,
1382      shadow: true,
1383      shadowOffset: 20,
1384      shadowScale: 0.94
1385    }
1386  });
1387  const createSlideShadows = (slideEl, progress, isHorizontal) => {
1388    let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1389    let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1390    if (!shadowBefore) {
1391      shadowBefore = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));
1392      slideEl.append(shadowBefore);
1393    }
1394    if (!shadowAfter) {
1395      shadowAfter = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));
1396      slideEl.append(shadowAfter);
1397    }
1398    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
1399    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
1400  };
1401  const recreateShadows = () => {
1402    // create new ones
1403    const isHorizontal = swiper.isHorizontal();
1404    swiper.slides.forEach(slideEl => {
1405      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
1406      createSlideShadows(slideEl, progress, isHorizontal);
1407    });
1408  };
1409  const setTranslate = () => {
1410    const {
1411      el,
1412      wrapperEl,
1413      slides,
1414      width: swiperWidth,
1415      height: swiperHeight,
1416      rtlTranslate: rtl,
1417      size: swiperSize,
1418      browser
1419    } = swiper;
1420    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(swiper);
1421    const params = swiper.params.cubeEffect;
1422    const isHorizontal = swiper.isHorizontal();
1423    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
1424    let wrapperRotate = 0;
1425    let cubeShadowEl;
1426    if (params.shadow) {
1427      if (isHorizontal) {
1428        cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');
1429        if (!cubeShadowEl) {
1430          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
1431          swiper.wrapperEl.append(cubeShadowEl);
1432        }
1433        cubeShadowEl.style.height = `${swiperWidth}px`;
1434      } else {
1435        cubeShadowEl = el.querySelector('.swiper-cube-shadow');
1436        if (!cubeShadowEl) {
1437          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
1438          el.append(cubeShadowEl);
1439        }
1440      }
1441    }
1442    for (let i = 0; i < slides.length; i += 1) {
1443      const slideEl = slides[i];
1444      let slideIndex = i;
1445      if (isVirtual) {
1446        slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);
1447      }
1448      let slideAngle = slideIndex * 90;
1449      let round = Math.floor(slideAngle / 360);
1450      if (rtl) {
1451        slideAngle = -slideAngle;
1452        round = Math.floor(-slideAngle / 360);
1453      }
1454      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
1455      let tx = 0;
1456      let ty = 0;
1457      let tz = 0;
1458      if (slideIndex % 4 === 0) {
1459        tx = -round * 4 * swiperSize;
1460        tz = 0;
1461      } else if ((slideIndex - 1) % 4 === 0) {
1462        tx = 0;
1463        tz = -round * 4 * swiperSize;
1464      } else if ((slideIndex - 2) % 4 === 0) {
1465        tx = swiperSize + round * 4 * swiperSize;
1466        tz = swiperSize;
1467      } else if ((slideIndex - 3) % 4 === 0) {
1468        tx = -swiperSize;
1469        tz = 3 * swiperSize + swiperSize * 4 * round;
1470      }
1471      if (rtl) {
1472        tx = -tx;
1473      }
1474      if (!isHorizontal) {
1475        ty = tx;
1476        tx = 0;
1477      }
1478      const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
1479      if (progress <= 1 && progress > -1) {
1480        wrapperRotate = slideIndex * 90 + progress * 90;
1481        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
1482      }
1483      slideEl.style.transform = transform;
1484      if (params.slideShadows) {
1485        createSlideShadows(slideEl, progress, isHorizontal);
1486      }
1487    }
1488    wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;
1489    wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;
1490    if (params.shadow) {
1491      if (isHorizontal) {
1492        cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;
1493      } else {
1494        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
1495        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
1496        const scale1 = params.shadowScale;
1497        const scale2 = params.shadowScale / multiplier;
1498        const offset = params.shadowOffset;
1499        cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;
1500      }
1501    }
1502    const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;
1503    wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;
1504    wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
1505  };
1506  const setTransition = duration => {
1507    const {
1508      el,
1509      slides
1510    } = swiper;
1511    slides.forEach(slideEl => {
1512      slideEl.style.transitionDuration = `${duration}ms`;
1513      slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {
1514        subEl.style.transitionDuration = `${duration}ms`;
1515      });
1516    });
1517    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {
1518      const shadowEl = el.querySelector('.swiper-cube-shadow');
1519      if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;
1520    }
1521  };
1522  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
1523    effect: 'cube',
1524    swiper,
1525    on,
1526    setTranslate,
1527    setTransition,
1528    recreateShadows,
1529    getEffectParams: () => swiper.params.cubeEffect,
1530    perspective: () => true,
1531    overwriteParams: () => ({
1532      slidesPerView: 1,
1533      slidesPerGroup: 1,
1534      watchSlidesProgress: true,
1535      resistanceRatio: 0,
1536      spaceBetween: 0,
1537      centeredSlides: false,
1538      virtualTranslate: true
1539    })
1540  });
1541}
1542
1543
1544
1545
1546/***/ }),
1547
vendor: 3,069 bytes, lines 1548-1631
1548/***/ "./node_modules/swiper/modules/effect-fade.mjs":
1549/*!*****************************************************!*\
1550  !*** ./node_modules/swiper/modules/effect-fade.mjs ***!
1551  \*****************************************************/
1552/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1553
1554__webpack_require__.r(__webpack_exports__);
1555/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1556/* harmony export */   "default": () => (/* binding */ EffectFade)
1557/* harmony export */ });
1558/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1559/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1560/* 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");
1561/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1562
1563
1564
1565
1566
1567function EffectFade(_ref) {
1568  let {
1569    swiper,
1570    extendParams,
1571    on
1572  } = _ref;
1573  extendParams({
1574    fadeEffect: {
1575      crossFade: false
1576    }
1577  });
1578  const setTranslate = () => {
1579    const {
1580      slides
1581    } = swiper;
1582    const params = swiper.params.fadeEffect;
1583    for (let i = 0; i < slides.length; i += 1) {
1584      const slideEl = swiper.slides[i];
1585      const offset = slideEl.swiperSlideOffset;
1586      let tx = -offset;
1587      if (!swiper.params.virtualTranslate) tx -= swiper.translate;
1588      let ty = 0;
1589      if (!swiper.isHorizontal()) {
1590        ty = tx;
1591        tx = 0;
1592      }
1593      const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);
1594      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(params, slideEl);
1595      targetEl.style.opacity = slideOpacity;
1596      targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;
1597    }
1598  };
1599  const setTransition = duration => {
1600    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
1601    transformElements.forEach(el => {
1602      el.style.transitionDuration = `${duration}ms`;
1603    });
1604    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_2__.e)({
1605      swiper,
1606      duration,
1607      transformElements,
1608      allSlides: true
1609    });
1610  };
1611  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
1612    effect: 'fade',
1613    swiper,
1614    on,
1615    setTranslate,
1616    setTransition,
1617    overwriteParams: () => ({
1618      slidesPerView: 1,
1619      slidesPerGroup: 1,
1620      watchSlidesProgress: true,
1621      spaceBetween: 0,
1622      virtualTranslate: !swiper.params.cssMode
1623    })
1624  });
1625}
1626
1627
1628
1629
1630/***/ }),
1631
vendor: 5,302 bytes, lines 1632-1761
1632/***/ "./node_modules/swiper/modules/effect-flip.mjs":
1633/*!*****************************************************!*\
1634  !*** ./node_modules/swiper/modules/effect-flip.mjs ***!
1635  \*****************************************************/
1636/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1637
1638__webpack_require__.r(__webpack_exports__);
1639/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1640/* harmony export */   "default": () => (/* binding */ EffectFlip)
1641/* harmony export */ });
1642/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1643/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1644/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1645/* 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");
1646/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1647
1648
1649
1650
1651
1652
1653function EffectFlip(_ref) {
1654  let {
1655    swiper,
1656    extendParams,
1657    on
1658  } = _ref;
1659  extendParams({
1660    flipEffect: {
1661      slideShadows: true,
1662      limitRotation: true
1663    }
1664  });
1665  const createSlideShadows = (slideEl, progress) => {
1666    let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1667    let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1668    if (!shadowBefore) {
1669      shadowBefore = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
1670    }
1671    if (!shadowAfter) {
1672      shadowAfter = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
1673    }
1674    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
1675    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
1676  };
1677  const recreateShadows = () => {
1678    // Set shadows
1679    swiper.params.flipEffect;
1680    swiper.slides.forEach(slideEl => {
1681      let progress = slideEl.progress;
1682      if (swiper.params.flipEffect.limitRotation) {
1683        progress = Math.max(Math.min(slideEl.progress, 1), -1);
1684      }
1685      createSlideShadows(slideEl, progress);
1686    });
1687  };
1688  const setTranslate = () => {
1689    const {
1690      slides,
1691      rtlTranslate: rtl
1692    } = swiper;
1693    const params = swiper.params.flipEffect;
1694    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.o)(swiper);
1695    for (let i = 0; i < slides.length; i += 1) {
1696      const slideEl = slides[i];
1697      let progress = slideEl.progress;
1698      if (swiper.params.flipEffect.limitRotation) {
1699        progress = Math.max(Math.min(slideEl.progress, 1), -1);
1700      }
1701      const offset = slideEl.swiperSlideOffset;
1702      const rotate = -180 * progress;
1703      let rotateY = rotate;
1704      let rotateX = 0;
1705      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
1706      let ty = 0;
1707      if (!swiper.isHorizontal()) {
1708        ty = tx;
1709        tx = 0;
1710        rotateX = -rotateY;
1711        rotateY = 0;
1712      } else if (rtl) {
1713        rotateY = -rotateY;
1714      }
1715      slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
1716      if (params.slideShadows) {
1717        createSlideShadows(slideEl, progress);
1718      }
1719      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;
1720      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1721      targetEl.style.transform = transform;
1722    }
1723  };
1724  const setTransition = duration => {
1725    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1726    transformElements.forEach(el => {
1727      el.style.transitionDuration = `${duration}ms`;
1728      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
1729        shadowEl.style.transitionDuration = `${duration}ms`;
1730      });
1731    });
1732    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1733      swiper,
1734      duration,
1735      transformElements
1736    });
1737  };
1738  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1739    effect: 'flip',
1740    swiper,
1741    on,
1742    setTranslate,
1743    setTransition,
1744    recreateShadows,
1745    getEffectParams: () => swiper.params.flipEffect,
1746    perspective: () => true,
1747    overwriteParams: () => ({
1748      slidesPerView: 1,
1749      slidesPerGroup: 1,
1750      watchSlidesProgress: true,
1751      spaceBetween: 0,
1752      virtualTranslate: !swiper.params.cssMode
1753    })
1754  });
1755}
1756
1757
1758
1759
1760/***/ }),
1761
vendor: 9,227 bytes, lines 1762-2013
1762/***/ "./node_modules/swiper/modules/free-mode.mjs":
1763/*!***************************************************!*\
1764  !*** ./node_modules/swiper/modules/free-mode.mjs ***!
1765  \***************************************************/
1766/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1767
1768__webpack_require__.r(__webpack_exports__);
1769/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1770/* harmony export */   "default": () => (/* binding */ freeMode)
1771/* harmony export */ });
1772/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1773
1774
1775function freeMode(_ref) {
1776  let {
1777    swiper,
1778    extendParams,
1779    emit,
1780    once
1781  } = _ref;
1782  extendParams({
1783    freeMode: {
1784      enabled: false,
1785      momentum: true,
1786      momentumRatio: 1,
1787      momentumBounce: true,
1788      momentumBounceRatio: 1,
1789      momentumVelocityRatio: 1,
1790      sticky: false,
1791      minimumVelocity: 0.02
1792    }
1793  });
1794  function onTouchStart() {
1795    if (swiper.params.cssMode) return;
1796    const translate = swiper.getTranslate();
1797    swiper.setTranslate(translate);
1798    swiper.setTransition(0);
1799    swiper.touchEventsData.velocities.length = 0;
1800    swiper.freeMode.onTouchEnd({
1801      currentPos: swiper.rtl ? swiper.translate : -swiper.translate
1802    });
1803  }
1804  function onTouchMove() {
1805    if (swiper.params.cssMode) return;
1806    const {
1807      touchEventsData: data,
1808      touches
1809    } = swiper;
1810    // Velocity
1811    if (data.velocities.length === 0) {
1812      data.velocities.push({
1813        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
1814        time: data.touchStartTime
1815      });
1816    }
1817    data.velocities.push({
1818      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
1819      time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)()
1820    });
1821  }
1822  function onTouchEnd(_ref2) {
1823    let {
1824      currentPos
1825    } = _ref2;
1826    if (swiper.params.cssMode) return;
1827    const {
1828      params,
1829      wrapperEl,
1830      rtlTranslate: rtl,
1831      snapGrid,
1832      touchEventsData: data
1833    } = swiper;
1834    // Time diff
1835    const touchEndTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)();
1836    const timeDiff = touchEndTime - data.touchStartTime;
1837    if (currentPos < -swiper.minTranslate()) {
1838      swiper.slideTo(swiper.activeIndex);
1839      return;
1840    }
1841    if (currentPos > -swiper.maxTranslate()) {
1842      if (swiper.slides.length < snapGrid.length) {
1843        swiper.slideTo(snapGrid.length - 1);
1844      } else {
1845        swiper.slideTo(swiper.slides.length - 1);
1846      }
1847      return;
1848    }
1849    if (params.freeMode.momentum) {
1850      if (data.velocities.length > 1) {
1851        const lastMoveEvent = data.velocities.pop();
1852        const velocityEvent = data.velocities.pop();
1853        const distance = lastMoveEvent.position - velocityEvent.position;
1854        const time = lastMoveEvent.time - velocityEvent.time;
1855        swiper.velocity = distance / time;
1856        swiper.velocity /= 2;
1857        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
1858          swiper.velocity = 0;
1859        }
1860        // this implies that the user stopped moving a finger then released.
1861        // There would be no events with distance zero, so the last event is stale.
1862        if (time > 150 || (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)() - lastMoveEvent.time > 300) {
1863          swiper.velocity = 0;
1864        }
1865      } else {
1866        swiper.velocity = 0;
1867      }
1868      swiper.velocity *= params.freeMode.momentumVelocityRatio;
1869      data.velocities.length = 0;
1870      let momentumDuration = 1000 * params.freeMode.momentumRatio;
1871      const momentumDistance = swiper.velocity * momentumDuration;
1872      let newPosition = swiper.translate + momentumDistance;
1873      if (rtl) newPosition = -newPosition;
1874      let doBounce = false;
1875      let afterBouncePosition;
1876      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
1877      let needsLoopFix;
1878      if (newPosition < swiper.maxTranslate()) {
1879        if (params.freeMode.momentumBounce) {
1880          if (newPosition + swiper.maxTranslate() < -bounceAmount) {
1881            newPosition = swiper.maxTranslate() - bounceAmount;
1882          }
1883          afterBouncePosition = swiper.maxTranslate();
1884          doBounce = true;
1885          data.allowMomentumBounce = true;
1886        } else {
1887          newPosition = swiper.maxTranslate();
1888        }
1889        if (params.loop && params.centeredSlides) needsLoopFix = true;
1890      } else if (newPosition > swiper.minTranslate()) {
1891        if (params.freeMode.momentumBounce) {
1892          if (newPosition - swiper.minTranslate() > bounceAmount) {
1893            newPosition = swiper.minTranslate() + bounceAmount;
1894          }
1895          afterBouncePosition = swiper.minTranslate();
1896          doBounce = true;
1897          data.allowMomentumBounce = true;
1898        } else {
1899          newPosition = swiper.minTranslate();
1900        }
1901        if (params.loop && params.centeredSlides) needsLoopFix = true;
1902      } else if (params.freeMode.sticky) {
1903        let nextSlide;
1904        for (let j = 0; j < snapGrid.length; j += 1) {
1905          if (snapGrid[j] > -newPosition) {
1906            nextSlide = j;
1907            break;
1908          }
1909        }
1910        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
1911          newPosition = snapGrid[nextSlide];
1912        } else {
1913          newPosition = snapGrid[nextSlide - 1];
1914        }
1915        newPosition = -newPosition;
1916      }
1917      if (needsLoopFix) {
1918        once('transitionEnd', () => {
1919          swiper.loopFix();
1920        });
1921      }
1922      // Fix duration
1923      if (swiper.velocity !== 0) {
1924        if (rtl) {
1925          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
1926        } else {
1927          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
1928        }
1929        if (params.freeMode.sticky) {
1930          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
1931          // event, then durations can be 20+ seconds to slide one (or zero!) slides.
1932          // It's easy to see this when simulating touch with mouse events. To fix this,
1933          // limit single-slide swipes to the default slide duration. This also has the
1934          // nice side effect of matching slide speed if the user stopped moving before
1935          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
1936          // For faster swipes, also apply limits (albeit higher ones).
1937          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
1938          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
1939          if (moveDistance < currentSlideSize) {
1940            momentumDuration = params.speed;
1941          } else if (moveDistance < 2 * currentSlideSize) {
1942            momentumDuration = params.speed * 1.5;
1943          } else {
1944            momentumDuration = params.speed * 2.5;
1945          }
1946        }
1947      } else if (params.freeMode.sticky) {
1948        swiper.slideToClosest();
1949        return;
1950      }
1951      if (params.freeMode.momentumBounce && doBounce) {
1952        swiper.updateProgress(afterBouncePosition);
1953        swiper.setTransition(momentumDuration);
1954        swiper.setTranslate(newPosition);
1955        swiper.transitionStart(true, swiper.swipeDirection);
1956        swiper.animating = true;
1957        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
1958          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
1959          emit('momentumBounce');
1960          swiper.setTransition(params.speed);
1961          setTimeout(() => {
1962            swiper.setTranslate(afterBouncePosition);
1963            (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
1964              if (!swiper || swiper.destroyed) return;
1965              swiper.transitionEnd();
1966            });
1967          }, 0);
1968        });
1969      } else if (swiper.velocity) {
1970        emit('_freeModeNoMomentumRelease');
1971        swiper.updateProgress(newPosition);
1972        swiper.setTransition(momentumDuration);
1973        swiper.setTranslate(newPosition);
1974        swiper.transitionStart(true, swiper.swipeDirection);
1975        if (!swiper.animating) {
1976          swiper.animating = true;
1977          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
1978            if (!swiper || swiper.destroyed) return;
1979            swiper.transitionEnd();
1980          });
1981        }
1982      } else {
1983        swiper.updateProgress(newPosition);
1984      }
1985      swiper.updateActiveIndex();
1986      swiper.updateSlidesClasses();
1987    } else if (params.freeMode.sticky) {
1988      swiper.slideToClosest();
1989      return;
1990    } else if (params.freeMode) {
1991      emit('_freeModeNoMomentumRelease');
1992    }
1993    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
1994      emit('_freeModeStaticRelease');
1995      swiper.updateProgress();
1996      swiper.updateActiveIndex();
1997      swiper.updateSlidesClasses();
1998    }
1999  }
2000  Object.assign(swiper, {
2001    freeMode: {
2002      onTouchStart,
2003      onTouchMove,
2004      onTouchEnd
2005    }
2006  });
2007}
2008
2009
2010
2011
2012/***/ }),
2013
vendor: 5,697 bytes, lines 2014-2182
2014/***/ "./node_modules/swiper/modules/grid.mjs":
2015/*!**********************************************!*\
2016  !*** ./node_modules/swiper/modules/grid.mjs ***!
2017  \**********************************************/
2018/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2019
2020__webpack_require__.r(__webpack_exports__);
2021/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2022/* harmony export */   "default": () => (/* binding */ Grid)
2023/* harmony export */ });
2024function Grid(_ref) {
2025  let {
2026    swiper,
2027    extendParams,
2028    on
2029  } = _ref;
2030  extendParams({
2031    grid: {
2032      rows: 1,
2033      fill: 'column'
2034    }
2035  });
2036  let slidesNumberEvenToRows;
2037  let slidesPerRow;
2038  let numFullColumns;
2039  let wasMultiRow;
2040  const getSpaceBetween = () => {
2041    let spaceBetween = swiper.params.spaceBetween;
2042    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
2043      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
2044    } else if (typeof spaceBetween === 'string') {
2045      spaceBetween = parseFloat(spaceBetween);
2046    }
2047    return spaceBetween;
2048  };
2049  const initSlides = slides => {
2050    const {
2051      slidesPerView
2052    } = swiper.params;
2053    const {
2054      rows,
2055      fill
2056    } = swiper.params.grid;
2057    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
2058    numFullColumns = Math.floor(slidesLength / rows);
2059    if (Math.floor(slidesLength / rows) === slidesLength / rows) {
2060      slidesNumberEvenToRows = slidesLength;
2061    } else {
2062      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
2063    }
2064    if (slidesPerView !== 'auto' && fill === 'row') {
2065      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
2066    }
2067    slidesPerRow = slidesNumberEvenToRows / rows;
2068  };
2069  const unsetSlides = () => {
2070    if (swiper.slides) {
2071      swiper.slides.forEach(slide => {
2072        if (slide.swiperSlideGridSet) {
2073          slide.style.height = '';
2074          slide.style[swiper.getDirectionLabel('margin-top')] = '';
2075        }
2076      });
2077    }
2078  };
2079  const updateSlide = (i, slide, slides) => {
2080    const {
2081      slidesPerGroup
2082    } = swiper.params;
2083    const spaceBetween = getSpaceBetween();
2084    const {
2085      rows,
2086      fill
2087    } = swiper.params.grid;
2088    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
2089    // Set slides order
2090    let newSlideOrderIndex;
2091    let column;
2092    let row;
2093    if (fill === 'row' && slidesPerGroup > 1) {
2094      const groupIndex = Math.floor(i / (slidesPerGroup * rows));
2095      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
2096      const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
2097      row = Math.floor(slideIndexInGroup / columnsInGroup);
2098      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
2099      newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
2100      slide.style.order = newSlideOrderIndex;
2101    } else if (fill === 'column') {
2102      column = Math.floor(i / rows);
2103      row = i - column * rows;
2104      if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
2105        row += 1;
2106        if (row >= rows) {
2107          row = 0;
2108          column += 1;
2109        }
2110      }
2111    } else {
2112      row = Math.floor(i / slidesPerRow);
2113      column = i - row * slidesPerRow;
2114    }
2115    slide.row = row;
2116    slide.column = column;
2117    slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;
2118    slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
2119    slide.swiperSlideGridSet = true;
2120  };
2121  const updateWrapperSize = (slideSize, snapGrid) => {
2122    const {
2123      centeredSlides,
2124      roundLengths
2125    } = swiper.params;
2126    const spaceBetween = getSpaceBetween();
2127    const {
2128      rows
2129    } = swiper.params.grid;
2130    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
2131    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
2132    if (!swiper.params.cssMode) {
2133      swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
2134    }
2135    if (centeredSlides) {
2136      const newSlidesGrid = [];
2137      for (let i = 0; i < snapGrid.length; i += 1) {
2138        let slidesGridItem = snapGrid[i];
2139        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
2140        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
2141      }
2142      snapGrid.splice(0, snapGrid.length);
2143      snapGrid.push(...newSlidesGrid);
2144    }
2145  };
2146  const onInit = () => {
2147    wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
2148  };
2149  const onUpdate = () => {
2150    const {
2151      params,
2152      el
2153    } = swiper;
2154    const isMultiRow = params.grid && params.grid.rows > 1;
2155    if (wasMultiRow && !isMultiRow) {
2156      el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
2157      numFullColumns = 1;
2158      swiper.emitContainerClasses();
2159    } else if (!wasMultiRow && isMultiRow) {
2160      el.classList.add(`${params.containerModifierClass}grid`);
2161      if (params.grid.fill === 'column') {
2162        el.classList.add(`${params.containerModifierClass}grid-column`);
2163      }
2164      swiper.emitContainerClasses();
2165    }
2166    wasMultiRow = isMultiRow;
2167  };
2168  on('init', onInit);
2169  on('update', onUpdate);
2170  swiper.grid = {
2171    initSlides,
2172    unsetSlides,
2173    updateSlide,
2174    updateWrapperSize
2175  };
2176}
2177
2178
2179
2180
2181/***/ }),
2182
vendor: 4,393 bytes, lines 2183-2291
2183/***/ "./node_modules/swiper/modules/hash-navigation.mjs":
2184/*!*********************************************************!*\
2185  !*** ./node_modules/swiper/modules/hash-navigation.mjs ***!
2186  \*********************************************************/
2187/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2188
2189__webpack_require__.r(__webpack_exports__);
2190/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2191/* harmony export */   "default": () => (/* binding */ HashNavigation)
2192/* harmony export */ });
2193/* 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");
2194/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2195
2196
2197
2198function HashNavigation(_ref) {
2199  let {
2200    swiper,
2201    extendParams,
2202    emit,
2203    on
2204  } = _ref;
2205  let initialized = false;
2206  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
2207  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2208  extendParams({
2209    hashNavigation: {
2210      enabled: false,
2211      replaceState: false,
2212      watchState: false,
2213      getSlideIndex(_s, hash) {
2214        if (swiper.virtual && swiper.params.virtual.enabled) {
2215          const slideWithHash = swiper.slides.find(slideEl => slideEl.getAttribute('data-hash') === hash);
2216          if (!slideWithHash) return 0;
2217          const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
2218          return index;
2219        }
2220        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]);
2221      }
2222    }
2223  });
2224  const onHashChange = () => {
2225    emit('hashChange');
2226    const newHash = document.location.hash.replace('#', '');
2227    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
2228    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';
2229    if (newHash !== activeSlideHash) {
2230      const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);
2231      if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;
2232      swiper.slideTo(newIndex);
2233    }
2234  };
2235  const setHash = () => {
2236    if (!initialized || !swiper.params.hashNavigation.enabled) return;
2237    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
2238    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';
2239    if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
2240      window.history.replaceState(null, null, `#${activeSlideHash}` || '');
2241      emit('hashSet');
2242    } else {
2243      document.location.hash = activeSlideHash || '';
2244      emit('hashSet');
2245    }
2246  };
2247  const init = () => {
2248    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;
2249    initialized = true;
2250    const hash = document.location.hash.replace('#', '');
2251    if (hash) {
2252      const speed = 0;
2253      const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);
2254      swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);
2255    }
2256    if (swiper.params.hashNavigation.watchState) {
2257      window.addEventListener('hashchange', onHashChange);
2258    }
2259  };
2260  const destroy = () => {
2261    if (swiper.params.hashNavigation.watchState) {
2262      window.removeEventListener('hashchange', onHashChange);
2263    }
2264  };
2265  on('init', () => {
2266    if (swiper.params.hashNavigation.enabled) {
2267      init();
2268    }
2269  });
2270  on('destroy', () => {
2271    if (swiper.params.hashNavigation.enabled) {
2272      destroy();
2273    }
2274  });
2275  on('transitionEnd _freeModeNoMomentumRelease', () => {
2276    if (initialized) {
2277      setHash();
2278    }
2279  });
2280  on('slideChange', () => {
2281    if (initialized && swiper.params.cssMode) {
2282      setHash();
2283    }
2284  });
2285}
2286
2287
2288
2289
2290/***/ }),
2291
vendor: 5,110 bytes, lines 2292-2448
2292/***/ "./node_modules/swiper/modules/history.mjs":
2293/*!*************************************************!*\
2294  !*** ./node_modules/swiper/modules/history.mjs ***!
2295  \*************************************************/
2296/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2297
2298__webpack_require__.r(__webpack_exports__);
2299/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2300/* harmony export */   "default": () => (/* binding */ History)
2301/* harmony export */ });
2302/* 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");
2303
2304
2305function History(_ref) {
2306  let {
2307    swiper,
2308    extendParams,
2309    on
2310  } = _ref;
2311  extendParams({
2312    history: {
2313      enabled: false,
2314      root: '',
2315      replaceState: false,
2316      key: 'slides',
2317      keepQuery: false
2318    }
2319  });
2320  let initialized = false;
2321  let paths = {};
2322  const slugify = text => {
2323    return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
2324  };
2325  const getPathValues = urlOverride => {
2326    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2327    let location;
2328    if (urlOverride) {
2329      location = new URL(urlOverride);
2330    } else {
2331      location = window.location;
2332    }
2333    const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');
2334    const total = pathArray.length;
2335    const key = pathArray[total - 2];
2336    const value = pathArray[total - 1];
2337    return {
2338      key,
2339      value
2340    };
2341  };
2342  const setHistory = (key, index) => {
2343    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2344    if (!initialized || !swiper.params.history.enabled) return;
2345    let location;
2346    if (swiper.params.url) {
2347      location = new URL(swiper.params.url);
2348    } else {
2349      location = window.location;
2350    }
2351    const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : swiper.slides[index];
2352    let value = slugify(slide.getAttribute('data-history'));
2353    if (swiper.params.history.root.length > 0) {
2354      let root = swiper.params.history.root;
2355      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);
2356      value = `${root}/${key ? `${key}/` : ''}${value}`;
2357    } else if (!location.pathname.includes(key)) {
2358      value = `${key ? `${key}/` : ''}${value}`;
2359    }
2360    if (swiper.params.history.keepQuery) {
2361      value += location.search;
2362    }
2363    const currentState = window.history.state;
2364    if (currentState && currentState.value === value) {
2365      return;
2366    }
2367    if (swiper.params.history.replaceState) {
2368      window.history.replaceState({
2369        value
2370      }, null, value);
2371    } else {
2372      window.history.pushState({
2373        value
2374      }, null, value);
2375    }
2376  };
2377  const scrollToSlide = (speed, value, runCallbacks) => {
2378    if (value) {
2379      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
2380        const slide = swiper.slides[i];
2381        const slideHistory = slugify(slide.getAttribute('data-history'));
2382        if (slideHistory === value) {
2383          const index = swiper.getSlideIndex(slide);
2384          swiper.slideTo(index, speed, runCallbacks);
2385        }
2386      }
2387    } else {
2388      swiper.slideTo(0, speed, runCallbacks);
2389    }
2390  };
2391  const setHistoryPopState = () => {
2392    paths = getPathValues(swiper.params.url);
2393    scrollToSlide(swiper.params.speed, paths.value, false);
2394  };
2395  const init = () => {
2396    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2397    if (!swiper.params.history) return;
2398    if (!window.history || !window.history.pushState) {
2399      swiper.params.history.enabled = false;
2400      swiper.params.hashNavigation.enabled = true;
2401      return;
2402    }
2403    initialized = true;
2404    paths = getPathValues(swiper.params.url);
2405    if (!paths.key && !paths.value) {
2406      if (!swiper.params.history.replaceState) {
2407        window.addEventListener('popstate', setHistoryPopState);
2408      }
2409      return;
2410    }
2411    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
2412    if (!swiper.params.history.replaceState) {
2413      window.addEventListener('popstate', setHistoryPopState);
2414    }
2415  };
2416  const destroy = () => {
2417    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2418    if (!swiper.params.history.replaceState) {
2419      window.removeEventListener('popstate', setHistoryPopState);
2420    }
2421  };
2422  on('init', () => {
2423    if (swiper.params.history.enabled) {
2424      init();
2425    }
2426  });
2427  on('destroy', () => {
2428    if (swiper.params.history.enabled) {
2429      destroy();
2430    }
2431  });
2432  on('transitionEnd _freeModeNoMomentumRelease', () => {
2433    if (initialized) {
2434      setHistory(swiper.params.history.key, swiper.activeIndex);
2435    }
2436  });
2437  on('slideChange', () => {
2438    if (initialized && swiper.params.cssMode) {
2439      setHistory(swiper.params.history.key, swiper.activeIndex);
2440    }
2441  });
2442}
2443
2444
2445
2446
2447/***/ }),
2448
vendor: 6,977 bytes, lines 2449-2529
2449/***/ "./node_modules/swiper/modules/index.mjs":
2450/*!***********************************************!*\
2451  !*** ./node_modules/swiper/modules/index.mjs ***!
2452  \***********************************************/
2453/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2454
2455__webpack_require__.r(__webpack_exports__);
2456/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2457/* harmony export */   A11y: () => (/* reexport safe */ _a11y_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
2458/* harmony export */   Autoplay: () => (/* reexport safe */ _autoplay_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
2459/* harmony export */   Controller: () => (/* reexport safe */ _controller_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
2460/* harmony export */   EffectCards: () => (/* reexport safe */ _effect_cards_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
2461/* harmony export */   EffectCoverflow: () => (/* reexport safe */ _effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
2462/* harmony export */   EffectCreative: () => (/* reexport safe */ _effect_creative_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]),
2463/* harmony export */   EffectCube: () => (/* reexport safe */ _effect_cube_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
2464/* harmony export */   EffectFade: () => (/* reexport safe */ _effect_fade_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
2465/* harmony export */   EffectFlip: () => (/* reexport safe */ _effect_flip_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
2466/* harmony export */   FreeMode: () => (/* reexport safe */ _free_mode_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
2467/* harmony export */   Grid: () => (/* reexport safe */ _grid_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
2468/* harmony export */   HashNavigation: () => (/* reexport safe */ _hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
2469/* harmony export */   History: () => (/* reexport safe */ _history_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
2470/* harmony export */   Keyboard: () => (/* reexport safe */ _keyboard_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]),
2471/* harmony export */   Manipulation: () => (/* reexport safe */ _manipulation_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
2472/* harmony export */   Mousewheel: () => (/* reexport safe */ _mousewheel_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
2473/* harmony export */   Navigation: () => (/* reexport safe */ _navigation_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
2474/* harmony export */   Pagination: () => (/* reexport safe */ _pagination_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
2475/* harmony export */   Parallax: () => (/* reexport safe */ _parallax_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
2476/* harmony export */   Scrollbar: () => (/* reexport safe */ _scrollbar_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
2477/* harmony export */   Thumbs: () => (/* reexport safe */ _thumbs_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
2478/* harmony export */   Virtual: () => (/* reexport safe */ _virtual_mjs__WEBPACK_IMPORTED_MODULE_0__["default"]),
2479/* harmony export */   Zoom: () => (/* reexport safe */ _zoom_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])
2480/* harmony export */ });
2481/* harmony import */ var _virtual_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./virtual.mjs */ "./node_modules/swiper/modules/virtual.mjs");
2482/* harmony import */ var _keyboard_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keyboard.mjs */ "./node_modules/swiper/modules/keyboard.mjs");
2483/* harmony import */ var _mousewheel_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mousewheel.mjs */ "./node_modules/swiper/modules/mousewheel.mjs");
2484/* harmony import */ var _navigation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./navigation.mjs */ "./node_modules/swiper/modules/navigation.mjs");
2485/* harmony import */ var _pagination_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pagination.mjs */ "./node_modules/swiper/modules/pagination.mjs");
2486/* harmony import */ var _scrollbar_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./scrollbar.mjs */ "./node_modules/swiper/modules/scrollbar.mjs");
2487/* harmony import */ var _parallax_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parallax.mjs */ "./node_modules/swiper/modules/parallax.mjs");
2488/* harmony import */ var _zoom_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./zoom.mjs */ "./node_modules/swiper/modules/zoom.mjs");
2489/* harmony import */ var _controller_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./controller.mjs */ "./node_modules/swiper/modules/controller.mjs");
2490/* harmony import */ var _a11y_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./a11y.mjs */ "./node_modules/swiper/modules/a11y.mjs");
2491/* harmony import */ var _history_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./history.mjs */ "./node_modules/swiper/modules/history.mjs");
2492/* harmony import */ var _hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./hash-navigation.mjs */ "./node_modules/swiper/modules/hash-navigation.mjs");
2493/* harmony import */ var _autoplay_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./autoplay.mjs */ "./node_modules/swiper/modules/autoplay.mjs");
2494/* harmony import */ var _thumbs_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./thumbs.mjs */ "./node_modules/swiper/modules/thumbs.mjs");
2495/* harmony import */ var _free_mode_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./free-mode.mjs */ "./node_modules/swiper/modules/free-mode.mjs");
2496/* harmony import */ var _grid_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./grid.mjs */ "./node_modules/swiper/modules/grid.mjs");
2497/* harmony import */ var _manipulation_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./manipulation.mjs */ "./node_modules/swiper/modules/manipulation.mjs");
2498/* harmony import */ var _effect_fade_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./effect-fade.mjs */ "./node_modules/swiper/modules/effect-fade.mjs");
2499/* harmony import */ var _effect_cube_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./effect-cube.mjs */ "./node_modules/swiper/modules/effect-cube.mjs");
2500/* harmony import */ var _effect_flip_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./effect-flip.mjs */ "./node_modules/swiper/modules/effect-flip.mjs");
2501/* harmony import */ var _effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./effect-coverflow.mjs */ "./node_modules/swiper/modules/effect-coverflow.mjs");
2502/* harmony import */ var _effect_creative_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./effect-creative.mjs */ "./node_modules/swiper/modules/effect-creative.mjs");
2503/* harmony import */ var _effect_cards_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./effect-cards.mjs */ "./node_modules/swiper/modules/effect-cards.mjs");
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528/***/ }),
2529
vendor: 5,259 bytes, lines 2530-2662
2530/***/ "./node_modules/swiper/modules/keyboard.mjs":
2531/*!**************************************************!*\
2532  !*** ./node_modules/swiper/modules/keyboard.mjs ***!
2533  \**************************************************/
2534/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2535
2536__webpack_require__.r(__webpack_exports__);
2537/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2538/* harmony export */   "default": () => (/* binding */ Keyboard)
2539/* harmony export */ });
2540/* 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");
2541/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2542
2543
2544
2545/* eslint-disable consistent-return */
2546function Keyboard(_ref) {
2547  let {
2548    swiper,
2549    extendParams,
2550    on,
2551    emit
2552  } = _ref;
2553  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
2554  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2555  swiper.keyboard = {
2556    enabled: false
2557  };
2558  extendParams({
2559    keyboard: {
2560      enabled: false,
2561      onlyInViewport: true,
2562      pageUpDown: true
2563    }
2564  });
2565  function handle(event) {
2566    if (!swiper.enabled) return;
2567    const {
2568      rtlTranslate: rtl
2569    } = swiper;
2570    let e = event;
2571    if (e.originalEvent) e = e.originalEvent; // jquery fix
2572    const kc = e.keyCode || e.charCode;
2573    const pageUpDown = swiper.params.keyboard.pageUpDown;
2574    const isPageUp = pageUpDown && kc === 33;
2575    const isPageDown = pageUpDown && kc === 34;
2576    const isArrowLeft = kc === 37;
2577    const isArrowRight = kc === 39;
2578    const isArrowUp = kc === 38;
2579    const isArrowDown = kc === 40;
2580    // Directions locks
2581    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {
2582      return false;
2583    }
2584    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {
2585      return false;
2586    }
2587    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
2588      return undefined;
2589    }
2590    if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {
2591      return undefined;
2592    }
2593    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {
2594      let inView = false;
2595      // Check that swiper should be inside of visible area of window
2596      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) {
2597        return undefined;
2598      }
2599      const el = swiper.el;
2600      const swiperWidth = el.clientWidth;
2601      const swiperHeight = el.clientHeight;
2602      const windowWidth = window.innerWidth;
2603      const windowHeight = window.innerHeight;
2604      const swiperOffset = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(el);
2605      if (rtl) swiperOffset.left -= el.scrollLeft;
2606      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
2607      for (let i = 0; i < swiperCoord.length; i += 1) {
2608        const point = swiperCoord[i];
2609        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
2610          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
2611          inView = true;
2612        }
2613      }
2614      if (!inView) return undefined;
2615    }
2616    if (swiper.isHorizontal()) {
2617      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
2618        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
2619      }
2620      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
2621      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
2622    } else {
2623      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
2624        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
2625      }
2626      if (isPageDown || isArrowDown) swiper.slideNext();
2627      if (isPageUp || isArrowUp) swiper.slidePrev();
2628    }
2629    emit('keyPress', kc);
2630    return undefined;
2631  }
2632  function enable() {
2633    if (swiper.keyboard.enabled) return;
2634    document.addEventListener('keydown', handle);
2635    swiper.keyboard.enabled = true;
2636  }
2637  function disable() {
2638    if (!swiper.keyboard.enabled) return;
2639    document.removeEventListener('keydown', handle);
2640    swiper.keyboard.enabled = false;
2641  }
2642  on('init', () => {
2643    if (swiper.params.keyboard.enabled) {
2644      enable();
2645    }
2646  });
2647  on('destroy', () => {
2648    if (swiper.keyboard.enabled) {
2649      disable();
2650    }
2651  });
2652  Object.assign(swiper.keyboard, {
2653    enable,
2654    disable
2655  });
2656}
2657
2658
2659
2660
2661/***/ }),
2662
vendor: 5,503 bytes, lines 2663-2867
2663/***/ "./node_modules/swiper/modules/manipulation.mjs":
2664/*!******************************************************!*\
2665  !*** ./node_modules/swiper/modules/manipulation.mjs ***!
2666  \******************************************************/
2667/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2668
2669__webpack_require__.r(__webpack_exports__);
2670/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2671/* harmony export */   "default": () => (/* binding */ Manipulation)
2672/* harmony export */ });
2673function appendSlide(slides) {
2674  const swiper = this;
2675  const {
2676    params,
2677    slidesEl
2678  } = swiper;
2679  if (params.loop) {
2680    swiper.loopDestroy();
2681  }
2682  const appendElement = slideEl => {
2683    if (typeof slideEl === 'string') {
2684      const tempDOM = document.createElement('div');
2685      tempDOM.innerHTML = slideEl;
2686      slidesEl.append(tempDOM.children[0]);
2687      tempDOM.innerHTML = '';
2688    } else {
2689      slidesEl.append(slideEl);
2690    }
2691  };
2692  if (typeof slides === 'object' && 'length' in slides) {
2693    for (let i = 0; i < slides.length; i += 1) {
2694      if (slides[i]) appendElement(slides[i]);
2695    }
2696  } else {
2697    appendElement(slides);
2698  }
2699  swiper.recalcSlides();
2700  if (params.loop) {
2701    swiper.loopCreate();
2702  }
2703  if (!params.observer || swiper.isElement) {
2704    swiper.update();
2705  }
2706}
2707
2708function prependSlide(slides) {
2709  const swiper = this;
2710  const {
2711    params,
2712    activeIndex,
2713    slidesEl
2714  } = swiper;
2715  if (params.loop) {
2716    swiper.loopDestroy();
2717  }
2718  let newActiveIndex = activeIndex + 1;
2719  const prependElement = slideEl => {
2720    if (typeof slideEl === 'string') {
2721      const tempDOM = document.createElement('div');
2722      tempDOM.innerHTML = slideEl;
2723      slidesEl.prepend(tempDOM.children[0]);
2724      tempDOM.innerHTML = '';
2725    } else {
2726      slidesEl.prepend(slideEl);
2727    }
2728  };
2729  if (typeof slides === 'object' && 'length' in slides) {
2730    for (let i = 0; i < slides.length; i += 1) {
2731      if (slides[i]) prependElement(slides[i]);
2732    }
2733    newActiveIndex = activeIndex + slides.length;
2734  } else {
2735    prependElement(slides);
2736  }
2737  swiper.recalcSlides();
2738  if (params.loop) {
2739    swiper.loopCreate();
2740  }
2741  if (!params.observer || swiper.isElement) {
2742    swiper.update();
2743  }
2744  swiper.slideTo(newActiveIndex, 0, false);
2745}
2746
2747function addSlide(index, slides) {
2748  const swiper = this;
2749  const {
2750    params,
2751    activeIndex,
2752    slidesEl
2753  } = swiper;
2754  let activeIndexBuffer = activeIndex;
2755  if (params.loop) {
2756    activeIndexBuffer -= swiper.loopedSlides;
2757    swiper.loopDestroy();
2758    swiper.recalcSlides();
2759  }
2760  const baseLength = swiper.slides.length;
2761  if (index <= 0) {
2762    swiper.prependSlide(slides);
2763    return;
2764  }
2765  if (index >= baseLength) {
2766    swiper.appendSlide(slides);
2767    return;
2768  }
2769  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
2770  const slidesBuffer = [];
2771  for (let i = baseLength - 1; i >= index; i -= 1) {
2772    const currentSlide = swiper.slides[i];
2773    currentSlide.remove();
2774    slidesBuffer.unshift(currentSlide);
2775  }
2776  if (typeof slides === 'object' && 'length' in slides) {
2777    for (let i = 0; i < slides.length; i += 1) {
2778      if (slides[i]) slidesEl.append(slides[i]);
2779    }
2780    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
2781  } else {
2782    slidesEl.append(slides);
2783  }
2784  for (let i = 0; i < slidesBuffer.length; i += 1) {
2785    slidesEl.append(slidesBuffer[i]);
2786  }
2787  swiper.recalcSlides();
2788  if (params.loop) {
2789    swiper.loopCreate();
2790  }
2791  if (!params.observer || swiper.isElement) {
2792    swiper.update();
2793  }
2794  if (params.loop) {
2795    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
2796  } else {
2797    swiper.slideTo(newActiveIndex, 0, false);
2798  }
2799}
2800
2801function removeSlide(slidesIndexes) {
2802  const swiper = this;
2803  const {
2804    params,
2805    activeIndex
2806  } = swiper;
2807  let activeIndexBuffer = activeIndex;
2808  if (params.loop) {
2809    activeIndexBuffer -= swiper.loopedSlides;
2810    swiper.loopDestroy();
2811  }
2812  let newActiveIndex = activeIndexBuffer;
2813  let indexToRemove;
2814  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
2815    for (let i = 0; i < slidesIndexes.length; i += 1) {
2816      indexToRemove = slidesIndexes[i];
2817      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
2818      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
2819    }
2820    newActiveIndex = Math.max(newActiveIndex, 0);
2821  } else {
2822    indexToRemove = slidesIndexes;
2823    if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
2824    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
2825    newActiveIndex = Math.max(newActiveIndex, 0);
2826  }
2827  swiper.recalcSlides();
2828  if (params.loop) {
2829    swiper.loopCreate();
2830  }
2831  if (!params.observer || swiper.isElement) {
2832    swiper.update();
2833  }
2834  if (params.loop) {
2835    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
2836  } else {
2837    swiper.slideTo(newActiveIndex, 0, false);
2838  }
2839}
2840
2841function removeAllSlides() {
2842  const swiper = this;
2843  const slidesIndexes = [];
2844  for (let i = 0; i < swiper.slides.length; i += 1) {
2845    slidesIndexes.push(i);
2846  }
2847  swiper.removeSlide(slidesIndexes);
2848}
2849
2850function Manipulation(_ref) {
2851  let {
2852    swiper
2853  } = _ref;
2854  Object.assign(swiper, {
2855    appendSlide: appendSlide.bind(swiper),
2856    prependSlide: prependSlide.bind(swiper),
2857    addSlide: addSlide.bind(swiper),
2858    removeSlide: removeSlide.bind(swiper),
2859    removeAllSlides: removeAllSlides.bind(swiper)
2860  });
2861}
2862
2863
2864
2865
2866/***/ }),
2867
vendor: 15,995 bytes, lines 2868-3278
2868/***/ "./node_modules/swiper/modules/mousewheel.mjs":
2869/*!****************************************************!*\
2870  !*** ./node_modules/swiper/modules/mousewheel.mjs ***!
2871  \****************************************************/
2872/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2873
2874__webpack_require__.r(__webpack_exports__);
2875/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2876/* harmony export */   "default": () => (/* binding */ Mousewheel)
2877/* harmony export */ });
2878/* 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");
2879/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2880
2881
2882
2883/* eslint-disable consistent-return */
2884function Mousewheel(_ref) {
2885  let {
2886    swiper,
2887    extendParams,
2888    on,
2889    emit
2890  } = _ref;
2891  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2892  extendParams({
2893    mousewheel: {
2894      enabled: false,
2895      releaseOnEdges: false,
2896      invert: false,
2897      forceToAxis: false,
2898      sensitivity: 1,
2899      eventsTarget: 'container',
2900      thresholdDelta: null,
2901      thresholdTime: null,
2902      noMousewheelClass: 'swiper-no-mousewheel'
2903    }
2904  });
2905  swiper.mousewheel = {
2906    enabled: false
2907  };
2908  let timeout;
2909  let lastScrollTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
2910  let lastEventBeforeSnap;
2911  const recentWheelEvents = [];
2912  function normalize(e) {
2913    // Reasonable defaults
2914    const PIXEL_STEP = 10;
2915    const LINE_HEIGHT = 40;
2916    const PAGE_HEIGHT = 800;
2917    let sX = 0;
2918    let sY = 0; // spinX, spinY
2919    let pX = 0;
2920    let pY = 0; // pixelX, pixelY
2921
2922    // Legacy
2923    if ('detail' in e) {
2924      sY = e.detail;
2925    }
2926    if ('wheelDelta' in e) {
2927      sY = -e.wheelDelta / 120;
2928    }
2929    if ('wheelDeltaY' in e) {
2930      sY = -e.wheelDeltaY / 120;
2931    }
2932    if ('wheelDeltaX' in e) {
2933      sX = -e.wheelDeltaX / 120;
2934    }
2935
2936    // side scrolling on FF with DOMMouseScroll
2937    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {
2938      sX = sY;
2939      sY = 0;
2940    }
2941    pX = sX * PIXEL_STEP;
2942    pY = sY * PIXEL_STEP;
2943    if ('deltaY' in e) {
2944      pY = e.deltaY;
2945    }
2946    if ('deltaX' in e) {
2947      pX = e.deltaX;
2948    }
2949    if (e.shiftKey && !pX) {
2950      // if user scrolls with shift he wants horizontal scroll
2951      pX = pY;
2952      pY = 0;
2953    }
2954    if ((pX || pY) && e.deltaMode) {
2955      if (e.deltaMode === 1) {
2956        // delta in LINE units
2957        pX *= LINE_HEIGHT;
2958        pY *= LINE_HEIGHT;
2959      } else {
2960        // delta in PAGE units
2961        pX *= PAGE_HEIGHT;
2962        pY *= PAGE_HEIGHT;
2963      }
2964    }
2965
2966    // Fall-back if spin cannot be determined
2967    if (pX && !sX) {
2968      sX = pX < 1 ? -1 : 1;
2969    }
2970    if (pY && !sY) {
2971      sY = pY < 1 ? -1 : 1;
2972    }
2973    return {
2974      spinX: sX,
2975      spinY: sY,
2976      pixelX: pX,
2977      pixelY: pY
2978    };
2979  }
2980  function handleMouseEnter() {
2981    if (!swiper.enabled) return;
2982    swiper.mouseEntered = true;
2983  }
2984  function handleMouseLeave() {
2985    if (!swiper.enabled) return;
2986    swiper.mouseEntered = false;
2987  }
2988  function animateSlider(newEvent) {
2989    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {
2990      // Prevent if delta of wheel scroll delta is below configured threshold
2991      return false;
2992    }
2993    if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {
2994      // Prevent if time between scrolls is below configured threshold
2995      return false;
2996    }
2997
2998    // If the movement is NOT big enough and
2999    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):
3000    //   Don't go any further (avoid insignificant scroll movement).
3001    if (newEvent.delta >= 6 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)() - lastScrollTime < 60) {
3002      // Return false as a default
3003      return true;
3004    }
3005    // If user is scrolling towards the end:
3006    //   If the slider hasn't hit the latest slide or
3007    //   if the slider is a loop and
3008    //   if the slider isn't moving right now:
3009    //     Go to next slide and
3010    //     emit a scroll event.
3011    // Else (the user is scrolling towards the beginning) and
3012    // if the slider hasn't hit the first slide or
3013    // if the slider is a loop and
3014    // if the slider isn't moving right now:
3015    //   Go to prev slide and
3016    //   emit a scroll event.
3017    if (newEvent.direction < 0) {
3018      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {
3019        swiper.slideNext();
3020        emit('scroll', newEvent.raw);
3021      }
3022    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {
3023      swiper.slidePrev();
3024      emit('scroll', newEvent.raw);
3025    }
3026    // If you got here is because an animation has been triggered so store the current time
3027    lastScrollTime = new window.Date().getTime();
3028    // Return false as a default
3029    return false;
3030  }
3031  function releaseScroll(newEvent) {
3032    const params = swiper.params.mousewheel;
3033    if (newEvent.direction < 0) {
3034      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {
3035        // Return true to animate scroll on edges
3036        return true;
3037      }
3038    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {
3039      // Return true to animate scroll on edges
3040      return true;
3041    }
3042    return false;
3043  }
3044  function handle(event) {
3045    let e = event;
3046    let disableParentSwiper = true;
3047    if (!swiper.enabled) return;
3048
3049    // Ignore event if the target or its parents have the swiper-no-mousewheel class
3050    if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;
3051    const params = swiper.params.mousewheel;
3052    if (swiper.params.cssMode) {
3053      e.preventDefault();
3054    }
3055    let targetEl = swiper.el;
3056    if (swiper.params.mousewheel.eventsTarget !== 'container') {
3057      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
3058    }
3059    const targetElContainsTarget = targetEl && targetEl.contains(e.target);
3060    if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;
3061    if (e.originalEvent) e = e.originalEvent; // jquery fix
3062    let delta = 0;
3063    const rtlFactor = swiper.rtlTranslate ? -1 : 1;
3064    const data = normalize(e);
3065    if (params.forceToAxis) {
3066      if (swiper.isHorizontal()) {
3067        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;
3068      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;
3069    } else {
3070      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;
3071    }
3072    if (delta === 0) return true;
3073    if (params.invert) delta = -delta;
3074
3075    // Get the scroll positions
3076    let positions = swiper.getTranslate() + delta * params.sensitivity;
3077    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();
3078    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();
3079
3080    // When loop is true:
3081    //     the disableParentSwiper will be true.
3082    // When loop is false:
3083    //     if the scroll positions is not on edge,
3084    //     then the disableParentSwiper will be true.
3085    //     if the scroll on edge positions,
3086    //     then the disableParentSwiper will be false.
3087    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());
3088    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();
3089    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {
3090      // Register the new event in a variable which stores the relevant data
3091      const newEvent = {
3092        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(),
3093        delta: Math.abs(delta),
3094        direction: Math.sign(delta),
3095        raw: event
3096      };
3097
3098      // Keep the most recent events
3099      if (recentWheelEvents.length >= 2) {
3100        recentWheelEvents.shift(); // only store the last N events
3101      }
3102
3103      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
3104      recentWheelEvents.push(newEvent);
3105
3106      // If there is at least one previous recorded event:
3107      //   If direction has changed or
3108      //   if the scroll is quicker than the previous one:
3109      //     Animate the slider.
3110      // Else (this is the first time the wheel is moved):
3111      //     Animate the slider.
3112      if (prevEvent) {
3113        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {
3114          animateSlider(newEvent);
3115        }
3116      } else {
3117        animateSlider(newEvent);
3118      }
3119
3120      // If it's time to release the scroll:
3121      //   Return now so you don't hit the preventDefault.
3122      if (releaseScroll(newEvent)) {
3123        return true;
3124      }
3125    } else {
3126      // Freemode or scrollContainer:
3127
3128      // If we recently snapped after a momentum scroll, then ignore wheel events
3129      // to give time for the deceleration to finish. Stop ignoring after 500 msecs
3130      // or if it's a new scroll (larger delta or inverse sign as last event before
3131      // an end-of-momentum snap).
3132      const newEvent = {
3133        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(),
3134        delta: Math.abs(delta),
3135        direction: Math.sign(delta)
3136      };
3137      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;
3138      if (!ignoreWheelEvents) {
3139        lastEventBeforeSnap = undefined;
3140        let position = swiper.getTranslate() + delta * params.sensitivity;
3141        const wasBeginning = swiper.isBeginning;
3142        const wasEnd = swiper.isEnd;
3143        if (position >= swiper.minTranslate()) position = swiper.minTranslate();
3144        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();
3145        swiper.setTransition(0);
3146        swiper.setTranslate(position);
3147        swiper.updateProgress();
3148        swiper.updateActiveIndex();
3149        swiper.updateSlidesClasses();
3150        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {
3151          swiper.updateSlidesClasses();
3152        }
3153        if (swiper.params.loop) {
3154          swiper.loopFix({
3155            direction: newEvent.direction < 0 ? 'next' : 'prev',
3156            byMousewheel: true
3157          });
3158        }
3159        if (swiper.params.freeMode.sticky) {
3160          // When wheel scrolling starts with sticky (aka snap) enabled, then detect
3161          // the end of a momentum scroll by storing recent (N=15?) wheel events.
3162          // 1. do all N events have decreasing or same (absolute value) delta?
3163          // 2. did all N events arrive in the last M (M=500?) msecs?
3164          // 3. does the earliest event have an (absolute value) delta that's
3165          //    at least P (P=1?) larger than the most recent event's delta?
3166          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?
3167          // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration.
3168          // Snap immediately and ignore remaining wheel events in this scroll.
3169          // See comment above for "remaining wheel events in this scroll" determination.
3170          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.
3171          clearTimeout(timeout);
3172          timeout = undefined;
3173          if (recentWheelEvents.length >= 15) {
3174            recentWheelEvents.shift(); // only store the last N events
3175          }
3176
3177          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
3178          const firstEvent = recentWheelEvents[0];
3179          recentWheelEvents.push(newEvent);
3180          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {
3181            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.
3182            recentWheelEvents.splice(0);
3183          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {
3184            // We're at the end of the deceleration of a momentum scroll, so there's no need
3185            // to wait for more events. Snap ASAP on the next tick.
3186            // Also, because there's some remaining momentum we'll bias the snap in the
3187            // direction of the ongoing scroll because it's better UX for the scroll to snap
3188            // in the same direction as the scroll instead of reversing to snap.  Therefore,
3189            // if it's already scrolled more than 20% in the current direction, keep going.
3190            const snapToThreshold = delta > 0 ? 0.8 : 0.2;
3191            lastEventBeforeSnap = newEvent;
3192            recentWheelEvents.splice(0);
3193            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
3194              if (swiper.destroyed || !swiper.params) return;
3195              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
3196            }, 0); // no delay; move on next tick
3197          }
3198
3199          if (!timeout) {
3200            // if we get here, then we haven't detected the end of a momentum scroll, so
3201            // we'll consider a scroll "complete" when there haven't been any wheel events
3202            // for 500ms.
3203            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
3204              if (swiper.destroyed || !swiper.params) return;
3205              const snapToThreshold = 0.5;
3206              lastEventBeforeSnap = newEvent;
3207              recentWheelEvents.splice(0);
3208              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
3209            }, 500);
3210          }
3211        }
3212
3213        // Emit event
3214        if (!ignoreWheelEvents) emit('scroll', e);
3215
3216        // Stop autoplay
3217        if (swiper.params.autoplay && swiper.params.autoplay.disableOnInteraction) swiper.autoplay.stop();
3218        // Return page scroll on edge positions
3219        if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {
3220          return true;
3221        }
3222      }
3223    }
3224    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
3225    return false;
3226  }
3227  function events(method) {
3228    let targetEl = swiper.el;
3229    if (swiper.params.mousewheel.eventsTarget !== 'container') {
3230      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
3231    }
3232    targetEl[method]('mouseenter', handleMouseEnter);
3233    targetEl[method]('mouseleave', handleMouseLeave);
3234    targetEl[method]('wheel', handle);
3235  }
3236  function enable() {
3237    if (swiper.params.cssMode) {
3238      swiper.wrapperEl.removeEventListener('wheel', handle);
3239      return true;
3240    }
3241    if (swiper.mousewheel.enabled) return false;
3242    events('addEventListener');
3243    swiper.mousewheel.enabled = true;
3244    return true;
3245  }
3246  function disable() {
3247    if (swiper.params.cssMode) {
3248      swiper.wrapperEl.addEventListener(event, handle);
3249      return true;
3250    }
3251    if (!swiper.mousewheel.enabled) return false;
3252    events('removeEventListener');
3253    swiper.mousewheel.enabled = false;
3254    return true;
3255  }
3256  on('init', () => {
3257    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {
3258      disable();
3259    }
3260    if (swiper.params.mousewheel.enabled) enable();
3261  });
3262  on('destroy', () => {
3263    if (swiper.params.cssMode) {
3264      enable();
3265    }
3266    if (swiper.mousewheel.enabled) disable();
3267  });
3268  Object.assign(swiper.mousewheel, {
3269    enable,
3270    disable
3271  });
3272}
3273
3274
3275
3276
3277/***/ }),
3278
vendor: 7,408 bytes, lines 3279-3494
3279/***/ "./node_modules/swiper/modules/navigation.mjs":
3280/*!****************************************************!*\
3281  !*** ./node_modules/swiper/modules/navigation.mjs ***!
3282  \****************************************************/
3283/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3284
3285__webpack_require__.r(__webpack_exports__);
3286/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3287/* harmony export */   "default": () => (/* binding */ Navigation)
3288/* harmony export */ });
3289/* 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");
3290/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3291
3292
3293
3294function Navigation(_ref) {
3295  let {
3296    swiper,
3297    extendParams,
3298    on,
3299    emit
3300  } = _ref;
3301  extendParams({
3302    navigation: {
3303      nextEl: null,
3304      prevEl: null,
3305      hideOnClick: false,
3306      disabledClass: 'swiper-button-disabled',
3307      hiddenClass: 'swiper-button-hidden',
3308      lockClass: 'swiper-button-lock',
3309      navigationDisabledClass: 'swiper-navigation-disabled'
3310    }
3311  });
3312  swiper.navigation = {
3313    nextEl: null,
3314    prevEl: null
3315  };
3316  function getEl(el) {
3317    let res;
3318    if (el && typeof el === 'string' && swiper.isElement) {
3319      res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);
3320      if (res) return res;
3321    }
3322    if (el) {
3323      if (typeof el === 'string') res = [...document.querySelectorAll(el)];
3324      if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {
3325        res = swiper.el.querySelector(el);
3326      } else if (res && res.length === 1) {
3327        res = res[0];
3328      }
3329    }
3330    if (el && !res) return el;
3331    // if (Array.isArray(res) && res.length === 1) res = res[0];
3332    return res;
3333  }
3334  function toggleEl(el, disabled) {
3335    const params = swiper.params.navigation;
3336    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
3337    el.forEach(subEl => {
3338      if (subEl) {
3339        subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));
3340        if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;
3341        if (swiper.params.watchOverflow && swiper.enabled) {
3342          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
3343        }
3344      }
3345    });
3346  }
3347  function update() {
3348    // Update Navigation Buttons
3349    const {
3350      nextEl,
3351      prevEl
3352    } = swiper.navigation;
3353    if (swiper.params.loop) {
3354      toggleEl(prevEl, false);
3355      toggleEl(nextEl, false);
3356      return;
3357    }
3358    toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);
3359    toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);
3360  }
3361  function onPrevClick(e) {
3362    e.preventDefault();
3363    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
3364    swiper.slidePrev();
3365    emit('navigationPrev');
3366  }
3367  function onNextClick(e) {
3368    e.preventDefault();
3369    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
3370    swiper.slideNext();
3371    emit('navigationNext');
3372  }
3373  function init() {
3374    const params = swiper.params.navigation;
3375    swiper.params.navigation = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
3376      nextEl: 'swiper-button-next',
3377      prevEl: 'swiper-button-prev'
3378    });
3379    if (!(params.nextEl || params.prevEl)) return;
3380    let nextEl = getEl(params.nextEl);
3381    let prevEl = getEl(params.prevEl);
3382    Object.assign(swiper.navigation, {
3383      nextEl,
3384      prevEl
3385    });
3386    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3387    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3388    const initButton = (el, dir) => {
3389      if (el) {
3390        el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
3391      }
3392      if (!swiper.enabled && el) {
3393        el.classList.add(...params.lockClass.split(' '));
3394      }
3395    };
3396    nextEl.forEach(el => initButton(el, 'next'));
3397    prevEl.forEach(el => initButton(el, 'prev'));
3398  }
3399  function destroy() {
3400    let {
3401      nextEl,
3402      prevEl
3403    } = swiper.navigation;
3404    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3405    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3406    const destroyButton = (el, dir) => {
3407      el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
3408      el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));
3409    };
3410    nextEl.forEach(el => destroyButton(el, 'next'));
3411    prevEl.forEach(el => destroyButton(el, 'prev'));
3412  }
3413  on('init', () => {
3414    if (swiper.params.navigation.enabled === false) {
3415      // eslint-disable-next-line
3416      disable();
3417    } else {
3418      init();
3419      update();
3420    }
3421  });
3422  on('toEdge fromEdge lock unlock', () => {
3423    update();
3424  });
3425  on('destroy', () => {
3426    destroy();
3427  });
3428  on('enable disable', () => {
3429    let {
3430      nextEl,
3431      prevEl
3432    } = swiper.navigation;
3433    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3434    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3435    if (swiper.enabled) {
3436      update();
3437      return;
3438    }
3439    [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));
3440  });
3441  on('click', (_s, e) => {
3442    let {
3443      nextEl,
3444      prevEl
3445    } = swiper.navigation;
3446    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3447    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3448    const targetEl = e.target;
3449    let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);
3450    if (swiper.isElement && !targetIsButton) {
3451      const path = e.path || e.composedPath && e.composedPath();
3452      if (path) {
3453        targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));
3454      }
3455    }
3456    if (swiper.params.navigation.hideOnClick && !targetIsButton) {
3457      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;
3458      let isHidden;
3459      if (nextEl.length) {
3460        isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);
3461      } else if (prevEl.length) {
3462        isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);
3463      }
3464      if (isHidden === true) {
3465        emit('navigationShow');
3466      } else {
3467        emit('navigationHide');
3468      }
3469      [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));
3470    }
3471  });
3472  const enable = () => {
3473    swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));
3474    init();
3475    update();
3476  };
3477  const disable = () => {
3478    swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));
3479    destroy();
3480  };
3481  Object.assign(swiper.navigation, {
3482    enable,
3483    disable,
3484    update,
3485    init,
3486    destroy
3487  });
3488}
3489
3490
3491
3492
3493/***/ }),
3494
vendor: 19,035 bytes, lines 3495-3971
3495/***/ "./node_modules/swiper/modules/pagination.mjs":
3496/*!****************************************************!*\
3497  !*** ./node_modules/swiper/modules/pagination.mjs ***!
3498  \****************************************************/
3499/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3500
3501__webpack_require__.r(__webpack_exports__);
3502/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3503/* harmony export */   "default": () => (/* binding */ Pagination)
3504/* harmony export */ });
3505/* 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");
3506/* 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");
3507/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3508
3509
3510
3511
3512function Pagination(_ref) {
3513  let {
3514    swiper,
3515    extendParams,
3516    on,
3517    emit
3518  } = _ref;
3519  const pfx = 'swiper-pagination';
3520  extendParams({
3521    pagination: {
3522      el: null,
3523      bulletElement: 'span',
3524      clickable: false,
3525      hideOnClick: false,
3526      renderBullet: null,
3527      renderProgressbar: null,
3528      renderFraction: null,
3529      renderCustom: null,
3530      progressbarOpposite: false,
3531      type: 'bullets',
3532      // 'bullets' or 'progressbar' or 'fraction' or 'custom'
3533      dynamicBullets: false,
3534      dynamicMainBullets: 1,
3535      formatFractionCurrent: number => number,
3536      formatFractionTotal: number => number,
3537      bulletClass: `${pfx}-bullet`,
3538      bulletActiveClass: `${pfx}-bullet-active`,
3539      modifierClass: `${pfx}-`,
3540      currentClass: `${pfx}-current`,
3541      totalClass: `${pfx}-total`,
3542      hiddenClass: `${pfx}-hidden`,
3543      progressbarFillClass: `${pfx}-progressbar-fill`,
3544      progressbarOppositeClass: `${pfx}-progressbar-opposite`,
3545      clickableClass: `${pfx}-clickable`,
3546      lockClass: `${pfx}-lock`,
3547      horizontalClass: `${pfx}-horizontal`,
3548      verticalClass: `${pfx}-vertical`,
3549      paginationDisabledClass: `${pfx}-disabled`
3550    }
3551  });
3552  swiper.pagination = {
3553    el: null,
3554    bullets: []
3555  };
3556  let bulletSize;
3557  let dynamicBulletIndex = 0;
3558  function isPaginationDisabled() {
3559    return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;
3560  }
3561  function setSideBullets(bulletEl, position) {
3562    const {
3563      bulletActiveClass
3564    } = swiper.params.pagination;
3565    if (!bulletEl) return;
3566    bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
3567    if (bulletEl) {
3568      bulletEl.classList.add(`${bulletActiveClass}-${position}`);
3569      bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
3570      if (bulletEl) {
3571        bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);
3572      }
3573    }
3574  }
3575  function getMoveDirection(prevIndex, nextIndex, length) {
3576    prevIndex = prevIndex % length;
3577    nextIndex = nextIndex % length;
3578    if (nextIndex === prevIndex + 1) {
3579      return 'next';
3580    } else if (nextIndex === prevIndex - 1) {
3581      return 'previous';
3582    }
3583    return;
3584  }
3585  function onBulletClick(e) {
3586    const bulletEl = e.target.closest((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletClass));
3587    if (!bulletEl) {
3588      return;
3589    }
3590    e.preventDefault();
3591    const index = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bulletEl) * swiper.params.slidesPerGroup;
3592    if (swiper.params.loop) {
3593      if (swiper.realIndex === index) return;
3594      const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);
3595      if (moveDirection === 'next') {
3596        swiper.slideNext();
3597      } else if (moveDirection === 'previous') {
3598        swiper.slidePrev();
3599      } else {
3600        swiper.slideToLoop(index);
3601      }
3602    } else {
3603      swiper.slideTo(index);
3604    }
3605  }
3606  function update() {
3607    // Render || Update Pagination bullets/items
3608    const rtl = swiper.rtl;
3609    const params = swiper.params.pagination;
3610    if (isPaginationDisabled()) return;
3611    let el = swiper.pagination.el;
3612    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3613    // Current/Total
3614    let current;
3615    let previousIndex;
3616    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
3617    const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
3618    if (swiper.params.loop) {
3619      previousIndex = swiper.previousRealIndex || 0;
3620      current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
3621    } else if (typeof swiper.snapIndex !== 'undefined') {
3622      current = swiper.snapIndex;
3623      previousIndex = swiper.previousSnapIndex;
3624    } else {
3625      previousIndex = swiper.previousIndex || 0;
3626      current = swiper.activeIndex || 0;
3627    }
3628    // Types
3629    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
3630      const bullets = swiper.pagination.bullets;
3631      let firstIndex;
3632      let lastIndex;
3633      let midIndex;
3634      if (params.dynamicBullets) {
3635        bulletSize = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.f)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);
3636        el.forEach(subEl => {
3637          subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
3638        });
3639        if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
3640          dynamicBulletIndex += current - (previousIndex || 0);
3641          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
3642            dynamicBulletIndex = params.dynamicMainBullets - 1;
3643          } else if (dynamicBulletIndex < 0) {
3644            dynamicBulletIndex = 0;
3645          }
3646        }
3647        firstIndex = Math.max(current - dynamicBulletIndex, 0);
3648        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
3649        midIndex = (lastIndex + firstIndex) / 2;
3650      }
3651      bullets.forEach(bulletEl => {
3652        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();
3653        bulletEl.classList.remove(...classesToRemove);
3654      });
3655      if (el.length > 1) {
3656        bullets.forEach(bullet => {
3657          const bulletIndex = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bullet);
3658          if (bulletIndex === current) {
3659            bullet.classList.add(...params.bulletActiveClass.split(' '));
3660          } else if (swiper.isElement) {
3661            bullet.setAttribute('part', 'bullet');
3662          }
3663          if (params.dynamicBullets) {
3664            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
3665              bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));
3666            }
3667            if (bulletIndex === firstIndex) {
3668              setSideBullets(bullet, 'prev');
3669            }
3670            if (bulletIndex === lastIndex) {
3671              setSideBullets(bullet, 'next');
3672            }
3673          }
3674        });
3675      } else {
3676        const bullet = bullets[current];
3677        if (bullet) {
3678          bullet.classList.add(...params.bulletActiveClass.split(' '));
3679        }
3680        if (swiper.isElement) {
3681          bullets.forEach((bulletEl, bulletIndex) => {
3682            bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
3683          });
3684        }
3685        if (params.dynamicBullets) {
3686          const firstDisplayedBullet = bullets[firstIndex];
3687          const lastDisplayedBullet = bullets[lastIndex];
3688          for (let i = firstIndex; i <= lastIndex; i += 1) {
3689            if (bullets[i]) {
3690              bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));
3691            }
3692          }
3693          setSideBullets(firstDisplayedBullet, 'prev');
3694          setSideBullets(lastDisplayedBullet, 'next');
3695        }
3696      }
3697      if (params.dynamicBullets) {
3698        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
3699        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
3700        const offsetProp = rtl ? 'right' : 'left';
3701        bullets.forEach(bullet => {
3702          bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;
3703        });
3704      }
3705    }
3706    el.forEach((subEl, subElIndex) => {
3707      if (params.type === 'fraction') {
3708        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.currentClass)).forEach(fractionEl => {
3709          fractionEl.textContent = params.formatFractionCurrent(current + 1);
3710        });
3711        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.totalClass)).forEach(totalEl => {
3712          totalEl.textContent = params.formatFractionTotal(total);
3713        });
3714      }
3715      if (params.type === 'progressbar') {
3716        let progressbarDirection;
3717        if (params.progressbarOpposite) {
3718          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
3719        } else {
3720          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
3721        }
3722        const scale = (current + 1) / total;
3723        let scaleX = 1;
3724        let scaleY = 1;
3725        if (progressbarDirection === 'horizontal') {
3726          scaleX = scale;
3727        } else {
3728          scaleY = scale;
3729        }
3730        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.progressbarFillClass)).forEach(progressEl => {
3731          progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;
3732          progressEl.style.transitionDuration = `${swiper.params.speed}ms`;
3733        });
3734      }
3735      if (params.type === 'custom' && params.renderCustom) {
3736        subEl.innerHTML = params.renderCustom(swiper, current + 1, total);
3737        if (subElIndex === 0) emit('paginationRender', subEl);
3738      } else {
3739        if (subElIndex === 0) emit('paginationRender', subEl);
3740        emit('paginationUpdate', subEl);
3741      }
3742      if (swiper.params.watchOverflow && swiper.enabled) {
3743        subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
3744      }
3745    });
3746  }
3747  function render() {
3748    // Render Container
3749    const params = swiper.params.pagination;
3750    if (isPaginationDisabled()) return;
3751    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;
3752    let el = swiper.pagination.el;
3753    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3754    let paginationHTML = '';
3755    if (params.type === 'bullets') {
3756      let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
3757      if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {
3758        numberOfBullets = slidesLength;
3759      }
3760      for (let i = 0; i < numberOfBullets; i += 1) {
3761        if (params.renderBullet) {
3762          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
3763        } else {
3764          // prettier-ignore
3765          paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
3766        }
3767      }
3768    }
3769    if (params.type === 'fraction') {
3770      if (params.renderFraction) {
3771        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
3772      } else {
3773        paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
3774      }
3775    }
3776    if (params.type === 'progressbar') {
3777      if (params.renderProgressbar) {
3778        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
3779      } else {
3780        paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
3781      }
3782    }
3783    swiper.pagination.bullets = [];
3784    el.forEach(subEl => {
3785      if (params.type !== 'custom') {
3786        subEl.innerHTML = paginationHTML || '';
3787      }
3788      if (params.type === 'bullets') {
3789        swiper.pagination.bullets.push(...subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.bulletClass)));
3790      }
3791    });
3792    if (params.type !== 'custom') {
3793      emit('paginationRender', el[0]);
3794    }
3795  }
3796  function init() {
3797    swiper.params.pagination = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
3798      el: 'swiper-pagination'
3799    });
3800    const params = swiper.params.pagination;
3801    if (!params.el) return;
3802    let el;
3803    if (typeof params.el === 'string' && swiper.isElement) {
3804      el = swiper.el.querySelector(params.el);
3805    }
3806    if (!el && typeof params.el === 'string') {
3807      el = [...document.querySelectorAll(params.el)];
3808    }
3809    if (!el) {
3810      el = params.el;
3811    }
3812    if (!el || el.length === 0) return;
3813    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {
3814      el = [...swiper.el.querySelectorAll(params.el)];
3815      // check if it belongs to another nested Swiper
3816      if (el.length > 1) {
3817        el = el.find(subEl => {
3818          if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.a)(subEl, '.swiper')[0] !== swiper.el) return false;
3819          return true;
3820        });
3821      }
3822    }
3823    if (Array.isArray(el) && el.length === 1) el = el[0];
3824    Object.assign(swiper.pagination, {
3825      el
3826    });
3827    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3828    el.forEach(subEl => {
3829      if (params.type === 'bullets' && params.clickable) {
3830        subEl.classList.add(...(params.clickableClass || '').split(' '));
3831      }
3832      subEl.classList.add(params.modifierClass + params.type);
3833      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
3834      if (params.type === 'bullets' && params.dynamicBullets) {
3835        subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);
3836        dynamicBulletIndex = 0;
3837        if (params.dynamicMainBullets < 1) {
3838          params.dynamicMainBullets = 1;
3839        }
3840      }
3841      if (params.type === 'progressbar' && params.progressbarOpposite) {
3842        subEl.classList.add(params.progressbarOppositeClass);
3843      }
3844      if (params.clickable) {
3845        subEl.addEventListener('click', onBulletClick);
3846      }
3847      if (!swiper.enabled) {
3848        subEl.classList.add(params.lockClass);
3849      }
3850    });
3851  }
3852  function destroy() {
3853    const params = swiper.params.pagination;
3854    if (isPaginationDisabled()) return;
3855    let el = swiper.pagination.el;
3856    if (el) {
3857      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3858      el.forEach(subEl => {
3859        subEl.classList.remove(params.hiddenClass);
3860        subEl.classList.remove(params.modifierClass + params.type);
3861        subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
3862        if (params.clickable) {
3863          subEl.classList.remove(...(params.clickableClass || '').split(' '));
3864          subEl.removeEventListener('click', onBulletClick);
3865        }
3866      });
3867    }
3868    if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
3869  }
3870  on('changeDirection', () => {
3871    if (!swiper.pagination || !swiper.pagination.el) return;
3872    const params = swiper.params.pagination;
3873    let {
3874      el
3875    } = swiper.pagination;
3876    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3877    el.forEach(subEl => {
3878      subEl.classList.remove(params.horizontalClass, params.verticalClass);
3879      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
3880    });
3881  });
3882  on('init', () => {
3883    if (swiper.params.pagination.enabled === false) {
3884      // eslint-disable-next-line
3885      disable();
3886    } else {
3887      init();
3888      render();
3889      update();
3890    }
3891  });
3892  on('activeIndexChange', () => {
3893    if (typeof swiper.snapIndex === 'undefined') {
3894      update();
3895    }
3896  });
3897  on('snapIndexChange', () => {
3898    update();
3899  });
3900  on('snapGridLengthChange', () => {
3901    render();
3902    update();
3903  });
3904  on('destroy', () => {
3905    destroy();
3906  });
3907  on('enable disable', () => {
3908    let {
3909      el
3910    } = swiper.pagination;
3911    if (el) {
3912      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3913      el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));
3914    }
3915  });
3916  on('lock unlock', () => {
3917    update();
3918  });
3919  on('click', (_s, e) => {
3920    const targetEl = e.target;
3921    const el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
3922    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
3923      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
3924      const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
3925      if (isHidden === true) {
3926        emit('paginationShow');
3927      } else {
3928        emit('paginationHide');
3929      }
3930      el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));
3931    }
3932  });
3933  const enable = () => {
3934    swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);
3935    let {
3936      el
3937    } = swiper.pagination;
3938    if (el) {
3939      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3940      el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));
3941    }
3942    init();
3943    render();
3944    update();
3945  };
3946  const disable = () => {
3947    swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);
3948    let {
3949      el
3950    } = swiper.pagination;
3951    if (el) {
3952      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3953      el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
3954    }
3955    destroy();
3956  };
3957  Object.assign(swiper.pagination, {
3958    enable,
3959    disable,
3960    render,
3961    update,
3962    init,
3963    destroy
3964  });
3965}
3966
3967
3968
3969
3970/***/ }),
3971
vendor: 4,684 bytes, lines 3972-4110
3972/***/ "./node_modules/swiper/modules/parallax.mjs":
3973/*!**************************************************!*\
3974  !*** ./node_modules/swiper/modules/parallax.mjs ***!
3975  \**************************************************/
3976/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3977
3978__webpack_require__.r(__webpack_exports__);
3979/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3980/* harmony export */   "default": () => (/* binding */ Parallax)
3981/* harmony export */ });
3982/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3983
3984
3985function Parallax(_ref) {
3986  let {
3987    swiper,
3988    extendParams,
3989    on
3990  } = _ref;
3991  extendParams({
3992    parallax: {
3993      enabled: false
3994    }
3995  });
3996  const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';
3997  const setTransform = (el, progress) => {
3998    const {
3999      rtl
4000    } = swiper;
4001    const rtlFactor = rtl ? -1 : 1;
4002    const p = el.getAttribute('data-swiper-parallax') || '0';
4003    let x = el.getAttribute('data-swiper-parallax-x');
4004    let y = el.getAttribute('data-swiper-parallax-y');
4005    const scale = el.getAttribute('data-swiper-parallax-scale');
4006    const opacity = el.getAttribute('data-swiper-parallax-opacity');
4007    const rotate = el.getAttribute('data-swiper-parallax-rotate');
4008    if (x || y) {
4009      x = x || '0';
4010      y = y || '0';
4011    } else if (swiper.isHorizontal()) {
4012      x = p;
4013      y = '0';
4014    } else {
4015      y = p;
4016      x = '0';
4017    }
4018    if (x.indexOf('%') >= 0) {
4019      x = `${parseInt(x, 10) * progress * rtlFactor}%`;
4020    } else {
4021      x = `${x * progress * rtlFactor}px`;
4022    }
4023    if (y.indexOf('%') >= 0) {
4024      y = `${parseInt(y, 10) * progress}%`;
4025    } else {
4026      y = `${y * progress}px`;
4027    }
4028    if (typeof opacity !== 'undefined' && opacity !== null) {
4029      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
4030      el.style.opacity = currentOpacity;
4031    }
4032    let transform = `translate3d(${x}, ${y}, 0px)`;
4033    if (typeof scale !== 'undefined' && scale !== null) {
4034      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
4035      transform += ` scale(${currentScale})`;
4036    }
4037    if (rotate && typeof rotate !== 'undefined' && rotate !== null) {
4038      const currentRotate = rotate * progress * -1;
4039      transform += ` rotate(${currentRotate}deg)`;
4040    }
4041    el.style.transform = transform;
4042  };
4043  const setTranslate = () => {
4044    const {
4045      el,
4046      slides,
4047      progress,
4048      snapGrid,
4049      isElement
4050    } = swiper;
4051    const elements = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(el, elementsSelector);
4052    if (swiper.isElement) {
4053      elements.push(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.hostEl, elementsSelector));
4054    }
4055    elements.forEach(subEl => {
4056      setTransform(subEl, progress);
4057    });
4058    slides.forEach((slideEl, slideIndex) => {
4059      let slideProgress = slideEl.progress;
4060      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
4061        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
4062      }
4063      slideProgress = Math.min(Math.max(slideProgress, -1), 1);
4064      slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {
4065        setTransform(subEl, slideProgress);
4066      });
4067    });
4068  };
4069  const setTransition = function (duration) {
4070    if (duration === void 0) {
4071      duration = swiper.params.speed;
4072    }
4073    const {
4074      el,
4075      hostEl
4076    } = swiper;
4077    const elements = [...el.querySelectorAll(elementsSelector)];
4078    if (swiper.isElement) {
4079      elements.push(...hostEl.querySelectorAll(elementsSelector));
4080    }
4081    elements.forEach(parallaxEl => {
4082      let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;
4083      if (duration === 0) parallaxDuration = 0;
4084      parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;
4085    });
4086  };
4087  on('beforeInit', () => {
4088    if (!swiper.params.parallax.enabled) return;
4089    swiper.params.watchSlidesProgress = true;
4090    swiper.originalParams.watchSlidesProgress = true;
4091  });
4092  on('init', () => {
4093    if (!swiper.params.parallax.enabled) return;
4094    setTranslate();
4095  });
4096  on('setTranslate', () => {
4097    if (!swiper.params.parallax.enabled) return;
4098    setTranslate();
4099  });
4100  on('setTransition', (_swiper, duration) => {
4101    if (!swiper.params.parallax.enabled) return;
4102    setTransition(duration);
4103  });
4104}
4105
4106
4107
4108
4109/***/ }),
4110
vendor: 12,517 bytes, lines 4111-4494
4111/***/ "./node_modules/swiper/modules/scrollbar.mjs":
4112/*!***************************************************!*\
4113  !*** ./node_modules/swiper/modules/scrollbar.mjs ***!
4114  \***************************************************/
4115/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4116
4117__webpack_require__.r(__webpack_exports__);
4118/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4119/* harmony export */   "default": () => (/* binding */ Scrollbar)
4120/* harmony export */ });
4121/* 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");
4122/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4123/* 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");
4124/* 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");
4125
4126
4127
4128
4129
4130function Scrollbar(_ref) {
4131  let {
4132    swiper,
4133    extendParams,
4134    on,
4135    emit
4136  } = _ref;
4137  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4138  let isTouched = false;
4139  let timeout = null;
4140  let dragTimeout = null;
4141  let dragStartPos;
4142  let dragSize;
4143  let trackSize;
4144  let divider;
4145  extendParams({
4146    scrollbar: {
4147      el: null,
4148      dragSize: 'auto',
4149      hide: false,
4150      draggable: false,
4151      snapOnRelease: true,
4152      lockClass: 'swiper-scrollbar-lock',
4153      dragClass: 'swiper-scrollbar-drag',
4154      scrollbarDisabledClass: 'swiper-scrollbar-disabled',
4155      horizontalClass: `swiper-scrollbar-horizontal`,
4156      verticalClass: `swiper-scrollbar-vertical`
4157    }
4158  });
4159  swiper.scrollbar = {
4160    el: null,
4161    dragEl: null
4162  };
4163  function setTranslate() {
4164    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4165    const {
4166      scrollbar,
4167      rtlTranslate: rtl
4168    } = swiper;
4169    const {
4170      dragEl,
4171      el
4172    } = scrollbar;
4173    const params = swiper.params.scrollbar;
4174    const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;
4175    let newSize = dragSize;
4176    let newPos = (trackSize - dragSize) * progress;
4177    if (rtl) {
4178      newPos = -newPos;
4179      if (newPos > 0) {
4180        newSize = dragSize - newPos;
4181        newPos = 0;
4182      } else if (-newPos + dragSize > trackSize) {
4183        newSize = trackSize + newPos;
4184      }
4185    } else if (newPos < 0) {
4186      newSize = dragSize + newPos;
4187      newPos = 0;
4188    } else if (newPos + dragSize > trackSize) {
4189      newSize = trackSize - newPos;
4190    }
4191    if (swiper.isHorizontal()) {
4192      dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;
4193      dragEl.style.width = `${newSize}px`;
4194    } else {
4195      dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;
4196      dragEl.style.height = `${newSize}px`;
4197    }
4198    if (params.hide) {
4199      clearTimeout(timeout);
4200      el.style.opacity = 1;
4201      timeout = setTimeout(() => {
4202        el.style.opacity = 0;
4203        el.style.transitionDuration = '400ms';
4204      }, 1000);
4205    }
4206  }
4207  function setTransition(duration) {
4208    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4209    swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;
4210  }
4211  function updateSize() {
4212    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4213    const {
4214      scrollbar
4215    } = swiper;
4216    const {
4217      dragEl,
4218      el
4219    } = scrollbar;
4220    dragEl.style.width = '';
4221    dragEl.style.height = '';
4222    trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;
4223    divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));
4224    if (swiper.params.scrollbar.dragSize === 'auto') {
4225      dragSize = trackSize * divider;
4226    } else {
4227      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
4228    }
4229    if (swiper.isHorizontal()) {
4230      dragEl.style.width = `${dragSize}px`;
4231    } else {
4232      dragEl.style.height = `${dragSize}px`;
4233    }
4234    if (divider >= 1) {
4235      el.style.display = 'none';
4236    } else {
4237      el.style.display = '';
4238    }
4239    if (swiper.params.scrollbar.hide) {
4240      el.style.opacity = 0;
4241    }
4242    if (swiper.params.watchOverflow && swiper.enabled) {
4243      scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);
4244    }
4245  }
4246  function getPointerPosition(e) {
4247    return swiper.isHorizontal() ? e.clientX : e.clientY;
4248  }
4249  function setDragPosition(e) {
4250    const {
4251      scrollbar,
4252      rtlTranslate: rtl
4253    } = swiper;
4254    const {
4255      el
4256    } = scrollbar;
4257    let positionRatio;
4258    positionRatio = (getPointerPosition(e) - (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
4259    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
4260    if (rtl) {
4261      positionRatio = 1 - positionRatio;
4262    }
4263    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
4264    swiper.updateProgress(position);
4265    swiper.setTranslate(position);
4266    swiper.updateActiveIndex();
4267    swiper.updateSlidesClasses();
4268  }
4269  function onDragStart(e) {
4270    const params = swiper.params.scrollbar;
4271    const {
4272      scrollbar,
4273      wrapperEl
4274    } = swiper;
4275    const {
4276      el,
4277      dragEl
4278    } = scrollbar;
4279    isTouched = true;
4280    dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
4281    e.preventDefault();
4282    e.stopPropagation();
4283    wrapperEl.style.transitionDuration = '100ms';
4284    dragEl.style.transitionDuration = '100ms';
4285    setDragPosition(e);
4286    clearTimeout(dragTimeout);
4287    el.style.transitionDuration = '0ms';
4288    if (params.hide) {
4289      el.style.opacity = 1;
4290    }
4291    if (swiper.params.cssMode) {
4292      swiper.wrapperEl.style['scroll-snap-type'] = 'none';
4293    }
4294    emit('scrollbarDragStart', e);
4295  }
4296  function onDragMove(e) {
4297    const {
4298      scrollbar,
4299      wrapperEl
4300    } = swiper;
4301    const {
4302      el,
4303      dragEl
4304    } = scrollbar;
4305    if (!isTouched) return;
4306    if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;
4307    setDragPosition(e);
4308    wrapperEl.style.transitionDuration = '0ms';
4309    el.style.transitionDuration = '0ms';
4310    dragEl.style.transitionDuration = '0ms';
4311    emit('scrollbarDragMove', e);
4312  }
4313  function onDragEnd(e) {
4314    const params = swiper.params.scrollbar;
4315    const {
4316      scrollbar,
4317      wrapperEl
4318    } = swiper;
4319    const {
4320      el
4321    } = scrollbar;
4322    if (!isTouched) return;
4323    isTouched = false;
4324    if (swiper.params.cssMode) {
4325      swiper.wrapperEl.style['scroll-snap-type'] = '';
4326      wrapperEl.style.transitionDuration = '';
4327    }
4328    if (params.hide) {
4329      clearTimeout(dragTimeout);
4330      dragTimeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
4331        el.style.opacity = 0;
4332        el.style.transitionDuration = '400ms';
4333      }, 1000);
4334    }
4335    emit('scrollbarDragEnd', e);
4336    if (params.snapOnRelease) {
4337      swiper.slideToClosest();
4338    }
4339  }
4340  function events(method) {
4341    const {
4342      scrollbar,
4343      params
4344    } = swiper;
4345    const el = scrollbar.el;
4346    if (!el) return;
4347    const target = el;
4348    const activeListener = params.passiveListeners ? {
4349      passive: false,
4350      capture: false
4351    } : false;
4352    const passiveListener = params.passiveListeners ? {
4353      passive: true,
4354      capture: false
4355    } : false;
4356    if (!target) return;
4357    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
4358    target[eventMethod]('pointerdown', onDragStart, activeListener);
4359    document[eventMethod]('pointermove', onDragMove, activeListener);
4360    document[eventMethod]('pointerup', onDragEnd, passiveListener);
4361  }
4362  function enableDraggable() {
4363    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4364    events('on');
4365  }
4366  function disableDraggable() {
4367    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4368    events('off');
4369  }
4370  function init() {
4371    const {
4372      scrollbar,
4373      el: swiperEl
4374    } = swiper;
4375    swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.c)(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
4376      el: 'swiper-scrollbar'
4377    });
4378    const params = swiper.params.scrollbar;
4379    if (!params.el) return;
4380    let el;
4381    if (typeof params.el === 'string' && swiper.isElement) {
4382      el = swiper.el.querySelector(params.el);
4383    }
4384    if (!el && typeof params.el === 'string') {
4385      el = document.querySelectorAll(params.el);
4386      if (!el.length) return;
4387    } else if (!el) {
4388      el = params.el;
4389    }
4390    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {
4391      el = swiperEl.querySelector(params.el);
4392    }
4393    if (el.length > 0) el = el[0];
4394    el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4395    let dragEl;
4396    if (el) {
4397      dragEl = el.querySelector((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_3__.c)(swiper.params.scrollbar.dragClass));
4398      if (!dragEl) {
4399        dragEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.scrollbar.dragClass);
4400        el.append(dragEl);
4401      }
4402    }
4403    Object.assign(scrollbar, {
4404      el,
4405      dragEl
4406    });
4407    if (params.draggable) {
4408      enableDraggable();
4409    }
4410    if (el) {
4411      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.lockClass));
4412    }
4413  }
4414  function destroy() {
4415    const params = swiper.params.scrollbar;
4416    const el = swiper.scrollbar.el;
4417    if (el) {
4418      el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));
4419    }
4420    disableDraggable();
4421  }
4422  on('changeDirection', () => {
4423    if (!swiper.scrollbar || !swiper.scrollbar.el) return;
4424    const params = swiper.params.scrollbar;
4425    let {
4426      el
4427    } = swiper.scrollbar;
4428    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
4429    el.forEach(subEl => {
4430      subEl.classList.remove(params.horizontalClass, params.verticalClass);
4431      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4432    });
4433  });
4434  on('init', () => {
4435    if (swiper.params.scrollbar.enabled === false) {
4436      // eslint-disable-next-line
4437      disable();
4438    } else {
4439      init();
4440      updateSize();
4441      setTranslate();
4442    }
4443  });
4444  on('update resize observerUpdate lock unlock changeDirection', () => {
4445    updateSize();
4446  });
4447  on('setTranslate', () => {
4448    setTranslate();
4449  });
4450  on('setTransition', (_s, duration) => {
4451    setTransition(duration);
4452  });
4453  on('enable disable', () => {
4454    const {
4455      el
4456    } = swiper.scrollbar;
4457    if (el) {
4458      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.lockClass));
4459    }
4460  });
4461  on('destroy', () => {
4462    destroy();
4463  });
4464  const enable = () => {
4465    swiper.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
4466    if (swiper.scrollbar.el) {
4467      swiper.scrollbar.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
4468    }
4469    init();
4470    updateSize();
4471    setTranslate();
4472  };
4473  const disable = () => {
4474    swiper.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
4475    if (swiper.scrollbar.el) {
4476      swiper.scrollbar.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
4477    }
4478    destroy();
4479  };
4480  Object.assign(swiper.scrollbar, {
4481    enable,
4482    disable,
4483    updateSize,
4484    setTranslate,
4485    init,
4486    destroy
4487  });
4488}
4489
4490
4491
4492
4493/***/ }),
4494
vendor: 8,179 bytes, lines 4495-4707
4495/***/ "./node_modules/swiper/modules/thumbs.mjs":
4496/*!************************************************!*\
4497  !*** ./node_modules/swiper/modules/thumbs.mjs ***!
4498  \************************************************/
4499/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4500
4501__webpack_require__.r(__webpack_exports__);
4502/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4503/* harmony export */   "default": () => (/* binding */ Thumb)
4504/* harmony export */ });
4505/* 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");
4506/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4507
4508
4509
4510function Thumb(_ref) {
4511  let {
4512    swiper,
4513    extendParams,
4514    on
4515  } = _ref;
4516  extendParams({
4517    thumbs: {
4518      swiper: null,
4519      multipleActiveThumbs: true,
4520      autoScrollOffset: 0,
4521      slideThumbActiveClass: 'swiper-slide-thumb-active',
4522      thumbsContainerClass: 'swiper-thumbs'
4523    }
4524  });
4525  let initialized = false;
4526  let swiperCreated = false;
4527  swiper.thumbs = {
4528    swiper: null
4529  };
4530  function onThumbClick() {
4531    const thumbsSwiper = swiper.thumbs.swiper;
4532    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4533    const clickedIndex = thumbsSwiper.clickedIndex;
4534    const clickedSlide = thumbsSwiper.clickedSlide;
4535    if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;
4536    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;
4537    let slideToIndex;
4538    if (thumbsSwiper.params.loop) {
4539      slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
4540    } else {
4541      slideToIndex = clickedIndex;
4542    }
4543    if (swiper.params.loop) {
4544      swiper.slideToLoop(slideToIndex);
4545    } else {
4546      swiper.slideTo(slideToIndex);
4547    }
4548  }
4549  function init() {
4550    const {
4551      thumbs: thumbsParams
4552    } = swiper.params;
4553    if (initialized) return false;
4554    initialized = true;
4555    const SwiperClass = swiper.constructor;
4556    if (thumbsParams.swiper instanceof SwiperClass) {
4557      if (thumbsParams.swiper.destroyed) {
4558        initialized = false;
4559        return false;
4560      }
4561      swiper.thumbs.swiper = thumbsParams.swiper;
4562      Object.assign(swiper.thumbs.swiper.originalParams, {
4563        watchSlidesProgress: true,
4564        slideToClickedSlide: false
4565      });
4566      Object.assign(swiper.thumbs.swiper.params, {
4567        watchSlidesProgress: true,
4568        slideToClickedSlide: false
4569      });
4570      swiper.thumbs.swiper.update();
4571    } else if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.l)(thumbsParams.swiper)) {
4572      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);
4573      Object.assign(thumbsSwiperParams, {
4574        watchSlidesProgress: true,
4575        slideToClickedSlide: false
4576      });
4577      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);
4578      swiperCreated = true;
4579    }
4580    swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);
4581    swiper.thumbs.swiper.on('tap', onThumbClick);
4582    return true;
4583  }
4584  function update(initial) {
4585    const thumbsSwiper = swiper.thumbs.swiper;
4586    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4587    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
4588
4589    // Activate thumbs
4590    let thumbsToActivate = 1;
4591    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;
4592    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {
4593      thumbsToActivate = swiper.params.slidesPerView;
4594    }
4595    if (!swiper.params.thumbs.multipleActiveThumbs) {
4596      thumbsToActivate = 1;
4597    }
4598    thumbsToActivate = Math.floor(thumbsToActivate);
4599    thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));
4600    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
4601      for (let i = 0; i < thumbsToActivate; i += 1) {
4602        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => {
4603          slideEl.classList.add(thumbActiveClass);
4604        });
4605      }
4606    } else {
4607      for (let i = 0; i < thumbsToActivate; i += 1) {
4608        if (thumbsSwiper.slides[swiper.realIndex + i]) {
4609          thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);
4610        }
4611      }
4612    }
4613    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
4614    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
4615    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
4616      const currentThumbsIndex = thumbsSwiper.activeIndex;
4617      let newThumbsIndex;
4618      let direction;
4619      if (thumbsSwiper.params.loop) {
4620        const newThumbsSlide = thumbsSwiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`);
4621        newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);
4622        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';
4623      } else {
4624        newThumbsIndex = swiper.realIndex;
4625        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';
4626      }
4627      if (useOffset) {
4628        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;
4629      }
4630      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
4631        if (thumbsSwiper.params.centeredSlides) {
4632          if (newThumbsIndex > currentThumbsIndex) {
4633            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
4634          } else {
4635            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
4636          }
4637        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
4638        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
4639      }
4640    }
4641  }
4642  on('beforeInit', () => {
4643    const {
4644      thumbs
4645    } = swiper.params;
4646    if (!thumbs || !thumbs.swiper) return;
4647    if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {
4648      const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4649      const getThumbsElementAndInit = () => {
4650        const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;
4651        if (thumbsElement && thumbsElement.swiper) {
4652          thumbs.swiper = thumbsElement.swiper;
4653          init();
4654          update(true);
4655        } else if (thumbsElement) {
4656          const eventName = `${swiper.params.eventsPrefix}init`;
4657          const onThumbsSwiper = e => {
4658            thumbs.swiper = e.detail[0];
4659            thumbsElement.removeEventListener(eventName, onThumbsSwiper);
4660            init();
4661            update(true);
4662            thumbs.swiper.update();
4663            swiper.update();
4664          };
4665          thumbsElement.addEventListener(eventName, onThumbsSwiper);
4666        }
4667        return thumbsElement;
4668      };
4669      const watchForThumbsToAppear = () => {
4670        if (swiper.destroyed) return;
4671        const thumbsElement = getThumbsElementAndInit();
4672        if (!thumbsElement) {
4673          requestAnimationFrame(watchForThumbsToAppear);
4674        }
4675      };
4676      requestAnimationFrame(watchForThumbsToAppear);
4677    } else {
4678      init();
4679      update(true);
4680    }
4681  });
4682  on('slideChange update resize observerUpdate', () => {
4683    update();
4684  });
4685  on('setTransition', (_s, duration) => {
4686    const thumbsSwiper = swiper.thumbs.swiper;
4687    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4688    thumbsSwiper.setTransition(duration);
4689  });
4690  on('beforeDestroy', () => {
4691    const thumbsSwiper = swiper.thumbs.swiper;
4692    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4693    if (swiperCreated) {
4694      thumbsSwiper.destroy();
4695    }
4696  });
4697  Object.assign(swiper.thumbs, {
4698    init,
4699    update
4700  });
4701}
4702
4703
4704
4705
4706/***/ }),
4707
vendor: 12,468 bytes, lines 4708-5072
4708/***/ "./node_modules/swiper/modules/virtual.mjs":
4709/*!*************************************************!*\
4710  !*** ./node_modules/swiper/modules/virtual.mjs ***!
4711  \*************************************************/
4712/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4713
4714__webpack_require__.r(__webpack_exports__);
4715/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4716/* harmony export */   "default": () => (/* binding */ Virtual)
4717/* harmony export */ });
4718/* 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");
4719/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4720
4721
4722
4723function Virtual(_ref) {
4724  let {
4725    swiper,
4726    extendParams,
4727    on,
4728    emit
4729  } = _ref;
4730  extendParams({
4731    virtual: {
4732      enabled: false,
4733      slides: [],
4734      cache: true,
4735      renderSlide: null,
4736      renderExternal: null,
4737      renderExternalUpdate: true,
4738      addSlidesBefore: 0,
4739      addSlidesAfter: 0
4740    }
4741  });
4742  let cssModeTimeout;
4743  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4744  swiper.virtual = {
4745    cache: {},
4746    from: undefined,
4747    to: undefined,
4748    slides: [],
4749    offset: 0,
4750    slidesGrid: []
4751  };
4752  const tempDOM = document.createElement('div');
4753  function renderSlide(slide, index) {
4754    const params = swiper.params.virtual;
4755    if (params.cache && swiper.virtual.cache[index]) {
4756      return swiper.virtual.cache[index];
4757    }
4758    // eslint-disable-next-line
4759    let slideEl;
4760    if (params.renderSlide) {
4761      slideEl = params.renderSlide.call(swiper, slide, index);
4762      if (typeof slideEl === 'string') {
4763        tempDOM.innerHTML = slideEl;
4764        slideEl = tempDOM.children[0];
4765      }
4766    } else if (swiper.isElement) {
4767      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('swiper-slide');
4768    } else {
4769      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.slideClass);
4770    }
4771    slideEl.setAttribute('data-swiper-slide-index', index);
4772    if (!params.renderSlide) {
4773      slideEl.innerHTML = slide;
4774    }
4775    if (params.cache) {
4776      swiper.virtual.cache[index] = slideEl;
4777    }
4778    return slideEl;
4779  }
4780  function update(force, beforeInit, forceActiveIndex) {
4781    const {
4782      slidesPerView,
4783      slidesPerGroup,
4784      centeredSlides,
4785      loop: isLoop,
4786      initialSlide
4787    } = swiper.params;
4788    if (beforeInit && !isLoop && initialSlide > 0) {
4789      return;
4790    }
4791    const {
4792      addSlidesBefore,
4793      addSlidesAfter
4794    } = swiper.params.virtual;
4795    const {
4796      from: previousFrom,
4797      to: previousTo,
4798      slides,
4799      slidesGrid: previousSlidesGrid,
4800      offset: previousOffset
4801    } = swiper.virtual;
4802    if (!swiper.params.cssMode) {
4803      swiper.updateActiveIndex();
4804    }
4805    const activeIndex = typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;
4806    let offsetProp;
4807    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
4808    let slidesAfter;
4809    let slidesBefore;
4810    if (centeredSlides) {
4811      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
4812      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
4813    } else {
4814      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
4815      slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;
4816    }
4817    let from = activeIndex - slidesBefore;
4818    let to = activeIndex + slidesAfter;
4819    if (!isLoop) {
4820      from = Math.max(from, 0);
4821      to = Math.min(to, slides.length - 1);
4822    }
4823    let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
4824    if (isLoop && activeIndex >= slidesBefore) {
4825      from -= slidesBefore;
4826      if (!centeredSlides) offset += swiper.slidesGrid[0];
4827    } else if (isLoop && activeIndex < slidesBefore) {
4828      from = -slidesBefore;
4829      if (centeredSlides) offset += swiper.slidesGrid[0];
4830    }
4831    Object.assign(swiper.virtual, {
4832      from,
4833      to,
4834      offset,
4835      slidesGrid: swiper.slidesGrid,
4836      slidesBefore,
4837      slidesAfter
4838    });
4839    function onRendered() {
4840      swiper.updateSlides();
4841      swiper.updateProgress();
4842      swiper.updateSlidesClasses();
4843      emit('virtualUpdate');
4844    }
4845    if (previousFrom === from && previousTo === to && !force) {
4846      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
4847        swiper.slides.forEach(slideEl => {
4848          slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
4849        });
4850      }
4851      swiper.updateProgress();
4852      emit('virtualUpdate');
4853      return;
4854    }
4855    if (swiper.params.virtual.renderExternal) {
4856      swiper.params.virtual.renderExternal.call(swiper, {
4857        offset,
4858        from,
4859        to,
4860        slides: function getSlides() {
4861          const slidesToRender = [];
4862          for (let i = from; i <= to; i += 1) {
4863            slidesToRender.push(slides[i]);
4864          }
4865          return slidesToRender;
4866        }()
4867      });
4868      if (swiper.params.virtual.renderExternalUpdate) {
4869        onRendered();
4870      } else {
4871        emit('virtualUpdate');
4872      }
4873      return;
4874    }
4875    const prependIndexes = [];
4876    const appendIndexes = [];
4877    const getSlideIndex = index => {
4878      let slideIndex = index;
4879      if (index < 0) {
4880        slideIndex = slides.length + index;
4881      } else if (slideIndex >= slides.length) {
4882        // eslint-disable-next-line
4883        slideIndex = slideIndex - slides.length;
4884      }
4885      return slideIndex;
4886    };
4887    if (force) {
4888      swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {
4889        slideEl.remove();
4890      });
4891    } else {
4892      for (let i = previousFrom; i <= previousTo; i += 1) {
4893        if (i < from || i > to) {
4894          const slideIndex = getSlideIndex(i);
4895          swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => {
4896            slideEl.remove();
4897          });
4898        }
4899      }
4900    }
4901    const loopFrom = isLoop ? -slides.length : 0;
4902    const loopTo = isLoop ? slides.length * 2 : slides.length;
4903    for (let i = loopFrom; i < loopTo; i += 1) {
4904      if (i >= from && i <= to) {
4905        const slideIndex = getSlideIndex(i);
4906        if (typeof previousTo === 'undefined' || force) {
4907          appendIndexes.push(slideIndex);
4908        } else {
4909          if (i > previousTo) appendIndexes.push(slideIndex);
4910          if (i < previousFrom) prependIndexes.push(slideIndex);
4911        }
4912      }
4913    }
4914    appendIndexes.forEach(index => {
4915      swiper.slidesEl.append(renderSlide(slides[index], index));
4916    });
4917    if (isLoop) {
4918      for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
4919        const index = prependIndexes[i];
4920        swiper.slidesEl.prepend(renderSlide(slides[index], index));
4921      }
4922    } else {
4923      prependIndexes.sort((a, b) => b - a);
4924      prependIndexes.forEach(index => {
4925        swiper.slidesEl.prepend(renderSlide(slides[index], index));
4926      });
4927    }
4928    (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
4929      slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
4930    });
4931    onRendered();
4932  }
4933  function appendSlide(slides) {
4934    if (typeof slides === 'object' && 'length' in slides) {
4935      for (let i = 0; i < slides.length; i += 1) {
4936        if (slides[i]) swiper.virtual.slides.push(slides[i]);
4937      }
4938    } else {
4939      swiper.virtual.slides.push(slides);
4940    }
4941    update(true);
4942  }
4943  function prependSlide(slides) {
4944    const activeIndex = swiper.activeIndex;
4945    let newActiveIndex = activeIndex + 1;
4946    let numberOfNewSlides = 1;
4947    if (Array.isArray(slides)) {
4948      for (let i = 0; i < slides.length; i += 1) {
4949        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
4950      }
4951      newActiveIndex = activeIndex + slides.length;
4952      numberOfNewSlides = slides.length;
4953    } else {
4954      swiper.virtual.slides.unshift(slides);
4955    }
4956    if (swiper.params.virtual.cache) {
4957      const cache = swiper.virtual.cache;
4958      const newCache = {};
4959      Object.keys(cache).forEach(cachedIndex => {
4960        const cachedEl = cache[cachedIndex];
4961        const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
4962        if (cachedElIndex) {
4963          cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
4964        }
4965        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
4966      });
4967      swiper.virtual.cache = newCache;
4968    }
4969    update(true);
4970    swiper.slideTo(newActiveIndex, 0);
4971  }
4972  function removeSlide(slidesIndexes) {
4973    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
4974    let activeIndex = swiper.activeIndex;
4975    if (Array.isArray(slidesIndexes)) {
4976      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
4977        if (swiper.params.virtual.cache) {
4978          delete swiper.virtual.cache[slidesIndexes[i]];
4979          // shift cache indexes
4980          Object.keys(swiper.virtual.cache).forEach(key => {
4981            if (key > slidesIndexes) {
4982              swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
4983              swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
4984              delete swiper.virtual.cache[key];
4985            }
4986          });
4987        }
4988        swiper.virtual.slides.splice(slidesIndexes[i], 1);
4989        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
4990        activeIndex = Math.max(activeIndex, 0);
4991      }
4992    } else {
4993      if (swiper.params.virtual.cache) {
4994        delete swiper.virtual.cache[slidesIndexes];
4995        // shift cache indexes
4996        Object.keys(swiper.virtual.cache).forEach(key => {
4997          if (key > slidesIndexes) {
4998            swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
4999            swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
5000            delete swiper.virtual.cache[key];
5001          }
5002        });
5003      }
5004      swiper.virtual.slides.splice(slidesIndexes, 1);
5005      if (slidesIndexes < activeIndex) activeIndex -= 1;
5006      activeIndex = Math.max(activeIndex, 0);
5007    }
5008    update(true);
5009    swiper.slideTo(activeIndex, 0);
5010  }
5011  function removeAllSlides() {
5012    swiper.virtual.slides = [];
5013    if (swiper.params.virtual.cache) {
5014      swiper.virtual.cache = {};
5015    }
5016    update(true);
5017    swiper.slideTo(0, 0);
5018  }
5019  on('beforeInit', () => {
5020    if (!swiper.params.virtual.enabled) return;
5021    let domSlidesAssigned;
5022    if (typeof swiper.passedParams.virtual.slides === 'undefined') {
5023      const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
5024      if (slides && slides.length) {
5025        swiper.virtual.slides = [...slides];
5026        domSlidesAssigned = true;
5027        slides.forEach((slideEl, slideIndex) => {
5028          slideEl.setAttribute('data-swiper-slide-index', slideIndex);
5029          swiper.virtual.cache[slideIndex] = slideEl;
5030          slideEl.remove();
5031        });
5032      }
5033    }
5034    if (!domSlidesAssigned) {
5035      swiper.virtual.slides = swiper.params.virtual.slides;
5036    }
5037    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
5038    swiper.params.watchSlidesProgress = true;
5039    swiper.originalParams.watchSlidesProgress = true;
5040    update(false, true);
5041  });
5042  on('setTranslate', () => {
5043    if (!swiper.params.virtual.enabled) return;
5044    if (swiper.params.cssMode && !swiper._immediateVirtual) {
5045      clearTimeout(cssModeTimeout);
5046      cssModeTimeout = setTimeout(() => {
5047        update();
5048      }, 100);
5049    } else {
5050      update();
5051    }
5052  });
5053  on('init update resize', () => {
5054    if (!swiper.params.virtual.enabled) return;
5055    if (swiper.params.cssMode) {
5056      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
5057    }
5058  });
5059  Object.assign(swiper.virtual, {
5060    appendSlide,
5061    prependSlide,
5062    removeSlide,
5063    removeAllSlides,
5064    update
5065  });
5066}
5067
5068
5069
5070
5071/***/ }),
5072
vendor: 26,487 bytes, lines 5073-5789
5073/***/ "./node_modules/swiper/modules/zoom.mjs":
5074/*!**********************************************!*\
5075  !*** ./node_modules/swiper/modules/zoom.mjs ***!
5076  \**********************************************/
5077/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5078
5079__webpack_require__.r(__webpack_exports__);
5080/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5081/* harmony export */   "default": () => (/* binding */ Zoom)
5082/* harmony export */ });
5083/* 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");
5084/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5085
5086
5087
5088function Zoom(_ref) {
5089  let {
5090    swiper,
5091    extendParams,
5092    on,
5093    emit
5094  } = _ref;
5095  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
5096  extendParams({
5097    zoom: {
5098      enabled: false,
5099      limitToOriginalSize: false,
5100      maxRatio: 3,
5101      minRatio: 1,
5102      panOnMouseMove: false,
5103      toggle: true,
5104      containerClass: 'swiper-zoom-container',
5105      zoomedSlideClass: 'swiper-slide-zoomed'
5106    }
5107  });
5108  swiper.zoom = {
5109    enabled: false
5110  };
5111  let currentScale = 1;
5112  let isScaling = false;
5113  let isPanningWithMouse = false;
5114  let mousePanStart = {
5115    x: 0,
5116    y: 0
5117  };
5118  const mousePanSensitivity = -3; // Negative to invert pan direction
5119  let fakeGestureTouched;
5120  let fakeGestureMoved;
5121  const evCache = [];
5122  const gesture = {
5123    originX: 0,
5124    originY: 0,
5125    slideEl: undefined,
5126    slideWidth: undefined,
5127    slideHeight: undefined,
5128    imageEl: undefined,
5129    imageWrapEl: undefined,
5130    maxRatio: 3
5131  };
5132  const image = {
5133    isTouched: undefined,
5134    isMoved: undefined,
5135    currentX: undefined,
5136    currentY: undefined,
5137    minX: undefined,
5138    minY: undefined,
5139    maxX: undefined,
5140    maxY: undefined,
5141    width: undefined,
5142    height: undefined,
5143    startX: undefined,
5144    startY: undefined,
5145    touchesStart: {},
5146    touchesCurrent: {}
5147  };
5148  const velocity = {
5149    x: undefined,
5150    y: undefined,
5151    prevPositionX: undefined,
5152    prevPositionY: undefined,
5153    prevTime: undefined
5154  };
5155  let scale = 1;
5156  Object.defineProperty(swiper.zoom, 'scale', {
5157    get() {
5158      return scale;
5159    },
5160    set(value) {
5161      if (scale !== value) {
5162        const imageEl = gesture.imageEl;
5163        const slideEl = gesture.slideEl;
5164        emit('zoomChange', value, imageEl, slideEl);
5165      }
5166      scale = value;
5167    }
5168  });
5169  function getDistanceBetweenTouches() {
5170    if (evCache.length < 2) return 1;
5171    const x1 = evCache[0].pageX;
5172    const y1 = evCache[0].pageY;
5173    const x2 = evCache[1].pageX;
5174    const y2 = evCache[1].pageY;
5175    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
5176    return distance;
5177  }
5178  function getMaxRatio() {
5179    const params = swiper.params.zoom;
5180    const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
5181    if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {
5182      const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;
5183      return Math.min(imageMaxRatio, maxRatio);
5184    }
5185    return maxRatio;
5186  }
5187  function getScaleOrigin() {
5188    if (evCache.length < 2) return {
5189      x: null,
5190      y: null
5191    };
5192    const box = gesture.imageEl.getBoundingClientRect();
5193    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];
5194  }
5195  function getSlideSelector() {
5196    return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
5197  }
5198  function eventWithinSlide(e) {
5199    const slideSelector = getSlideSelector();
5200    if (e.target.matches(slideSelector)) return true;
5201    if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;
5202    return false;
5203  }
5204  function eventWithinZoomContainer(e) {
5205    const selector = `.${swiper.params.zoom.containerClass}`;
5206    if (e.target.matches(selector)) return true;
5207    if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;
5208    return false;
5209  }
5210
5211  // Events
5212  function onGestureStart(e) {
5213    if (e.pointerType === 'mouse') {
5214      evCache.splice(0, evCache.length);
5215    }
5216    if (!eventWithinSlide(e)) return;
5217    const params = swiper.params.zoom;
5218    fakeGestureTouched = false;
5219    fakeGestureMoved = false;
5220    evCache.push(e);
5221    if (evCache.length < 2) {
5222      return;
5223    }
5224    fakeGestureTouched = true;
5225    gesture.scaleStart = getDistanceBetweenTouches();
5226    if (!gesture.slideEl) {
5227      gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
5228      if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];
5229      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5230      if (imageEl) {
5231        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5232      }
5233      gesture.imageEl = imageEl;
5234      if (imageEl) {
5235        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
5236      } else {
5237        gesture.imageWrapEl = undefined;
5238      }
5239      if (!gesture.imageWrapEl) {
5240        gesture.imageEl = undefined;
5241        return;
5242      }
5243      gesture.maxRatio = getMaxRatio();
5244    }
5245    if (gesture.imageEl) {
5246      const [originX, originY] = getScaleOrigin();
5247      gesture.originX = originX;
5248      gesture.originY = originY;
5249      gesture.imageEl.style.transitionDuration = '0ms';
5250    }
5251    isScaling = true;
5252  }
5253  function onGestureChange(e) {
5254    if (!eventWithinSlide(e)) return;
5255    const params = swiper.params.zoom;
5256    const zoom = swiper.zoom;
5257    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
5258    if (pointerIndex >= 0) evCache[pointerIndex] = e;
5259    if (evCache.length < 2) {
5260      return;
5261    }
5262    fakeGestureMoved = true;
5263    gesture.scaleMove = getDistanceBetweenTouches();
5264    if (!gesture.imageEl) {
5265      return;
5266    }
5267    zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;
5268    if (zoom.scale > gesture.maxRatio) {
5269      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
5270    }
5271    if (zoom.scale < params.minRatio) {
5272      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
5273    }
5274    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5275  }
5276  function onGestureEnd(e) {
5277    if (!eventWithinSlide(e)) return;
5278    if (e.pointerType === 'mouse' && e.type === 'pointerout') return;
5279    const params = swiper.params.zoom;
5280    const zoom = swiper.zoom;
5281    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
5282    if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);
5283    if (!fakeGestureTouched || !fakeGestureMoved) {
5284      return;
5285    }
5286    fakeGestureTouched = false;
5287    fakeGestureMoved = false;
5288    if (!gesture.imageEl) return;
5289    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
5290    gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;
5291    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5292    currentScale = zoom.scale;
5293    isScaling = false;
5294    if (zoom.scale > 1 && gesture.slideEl) {
5295      gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
5296    } else if (zoom.scale <= 1 && gesture.slideEl) {
5297      gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
5298    }
5299    if (zoom.scale === 1) {
5300      gesture.originX = 0;
5301      gesture.originY = 0;
5302      gesture.slideEl = undefined;
5303    }
5304  }
5305  let allowTouchMoveTimeout;
5306  function allowTouchMove() {
5307    swiper.touchEventsData.preventTouchMoveFromPointerMove = false;
5308  }
5309  function preventTouchMove() {
5310    clearTimeout(allowTouchMoveTimeout);
5311    swiper.touchEventsData.preventTouchMoveFromPointerMove = true;
5312    allowTouchMoveTimeout = setTimeout(() => {
5313      if (swiper.destroyed) return;
5314      allowTouchMove();
5315    });
5316  }
5317  function onTouchStart(e) {
5318    const device = swiper.device;
5319    if (!gesture.imageEl) return;
5320    if (image.isTouched) return;
5321    if (device.android && e.cancelable) e.preventDefault();
5322    image.isTouched = true;
5323    const event = evCache.length > 0 ? evCache[0] : e;
5324    image.touchesStart.x = event.pageX;
5325    image.touchesStart.y = event.pageY;
5326  }
5327  function onTouchMove(e) {
5328    const isMouseEvent = e.pointerType === 'mouse';
5329    const isMousePan = isMouseEvent && swiper.params.zoom.panOnMouseMove;
5330    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {
5331      return;
5332    }
5333    const zoom = swiper.zoom;
5334    if (!gesture.imageEl) {
5335      return;
5336    }
5337    if (!image.isTouched || !gesture.slideEl) {
5338      if (isMousePan) onMouseMove(e);
5339      return;
5340    }
5341    if (isMousePan) {
5342      onMouseMove(e);
5343      return;
5344    }
5345    if (!image.isMoved) {
5346      image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5347      image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5348      image.startX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(gesture.imageWrapEl, 'x') || 0;
5349      image.startY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(gesture.imageWrapEl, 'y') || 0;
5350      gesture.slideWidth = gesture.slideEl.offsetWidth;
5351      gesture.slideHeight = gesture.slideEl.offsetHeight;
5352      gesture.imageWrapEl.style.transitionDuration = '0ms';
5353    }
5354    // Define if we need image drag
5355    const scaledWidth = image.width * zoom.scale;
5356    const scaledHeight = image.height * zoom.scale;
5357    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
5358    image.maxX = -image.minX;
5359    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
5360    image.maxY = -image.minY;
5361    image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;
5362    image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;
5363    const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));
5364    if (touchesDiff > 5) {
5365      swiper.allowClick = false;
5366    }
5367    if (!image.isMoved && !isScaling) {
5368      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)) {
5369        image.isTouched = false;
5370        allowTouchMove();
5371        return;
5372      }
5373      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)) {
5374        image.isTouched = false;
5375        allowTouchMove();
5376        return;
5377      }
5378    }
5379    if (e.cancelable) {
5380      e.preventDefault();
5381    }
5382    e.stopPropagation();
5383    preventTouchMove();
5384    image.isMoved = true;
5385    const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);
5386    const {
5387      originX,
5388      originY
5389    } = gesture;
5390    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);
5391    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);
5392    if (image.currentX < image.minX) {
5393      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
5394    }
5395    if (image.currentX > image.maxX) {
5396      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
5397    }
5398    if (image.currentY < image.minY) {
5399      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
5400    }
5401    if (image.currentY > image.maxY) {
5402      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
5403    }
5404
5405    // Velocity
5406    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;
5407    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;
5408    if (!velocity.prevTime) velocity.prevTime = Date.now();
5409    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
5410    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
5411    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;
5412    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;
5413    velocity.prevPositionX = image.touchesCurrent.x;
5414    velocity.prevPositionY = image.touchesCurrent.y;
5415    velocity.prevTime = Date.now();
5416    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
5417  }
5418  function onTouchEnd() {
5419    const zoom = swiper.zoom;
5420    evCache.length = 0;
5421    if (!gesture.imageEl) return;
5422    if (!image.isTouched || !image.isMoved) {
5423      image.isTouched = false;
5424      image.isMoved = false;
5425      return;
5426    }
5427    image.isTouched = false;
5428    image.isMoved = false;
5429    let momentumDurationX = 300;
5430    let momentumDurationY = 300;
5431    const momentumDistanceX = velocity.x * momentumDurationX;
5432    const newPositionX = image.currentX + momentumDistanceX;
5433    const momentumDistanceY = velocity.y * momentumDurationY;
5434    const newPositionY = image.currentY + momentumDistanceY;
5435
5436    // Fix duration
5437    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
5438    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
5439    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);
5440    image.currentX = newPositionX;
5441    image.currentY = newPositionY;
5442    // Define if we need image drag
5443    const scaledWidth = image.width * zoom.scale;
5444    const scaledHeight = image.height * zoom.scale;
5445    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
5446    image.maxX = -image.minX;
5447    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
5448    image.maxY = -image.minY;
5449    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
5450    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
5451    gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;
5452    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
5453  }
5454  function onTransitionEnd() {
5455    const zoom = swiper.zoom;
5456    if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {
5457      if (gesture.imageEl) {
5458        gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
5459      }
5460      if (gesture.imageWrapEl) {
5461        gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
5462      }
5463      gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);
5464      zoom.scale = 1;
5465      currentScale = 1;
5466      gesture.slideEl = undefined;
5467      gesture.imageEl = undefined;
5468      gesture.imageWrapEl = undefined;
5469      gesture.originX = 0;
5470      gesture.originY = 0;
5471    }
5472  }
5473  function onMouseMove(e) {
5474    // Only pan if zoomed in and mouse panning is enabled
5475    if (currentScale <= 1 || !gesture.imageWrapEl) return;
5476    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;
5477    const currentTransform = window.getComputedStyle(gesture.imageWrapEl).transform;
5478    const matrix = new window.DOMMatrix(currentTransform);
5479    if (!isPanningWithMouse) {
5480      isPanningWithMouse = true;
5481      mousePanStart.x = e.clientX;
5482      mousePanStart.y = e.clientY;
5483      image.startX = matrix.e;
5484      image.startY = matrix.f;
5485      image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5486      image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5487      gesture.slideWidth = gesture.slideEl.offsetWidth;
5488      gesture.slideHeight = gesture.slideEl.offsetHeight;
5489      return;
5490    }
5491    const deltaX = (e.clientX - mousePanStart.x) * mousePanSensitivity;
5492    const deltaY = (e.clientY - mousePanStart.y) * mousePanSensitivity;
5493    const scaledWidth = image.width * currentScale;
5494    const scaledHeight = image.height * currentScale;
5495    const slideWidth = gesture.slideWidth;
5496    const slideHeight = gesture.slideHeight;
5497    const minX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
5498    const maxX = -minX;
5499    const minY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
5500    const maxY = -minY;
5501    const newX = Math.max(Math.min(image.startX + deltaX, maxX), minX);
5502    const newY = Math.max(Math.min(image.startY + deltaY, maxY), minY);
5503    gesture.imageWrapEl.style.transitionDuration = '0ms';
5504    gesture.imageWrapEl.style.transform = `translate3d(${newX}px, ${newY}px, 0)`;
5505    mousePanStart.x = e.clientX;
5506    mousePanStart.y = e.clientY;
5507    image.startX = newX;
5508    image.startY = newY;
5509    image.currentX = newX;
5510    image.currentY = newY;
5511  }
5512  function zoomIn(e) {
5513    const zoom = swiper.zoom;
5514    const params = swiper.params.zoom;
5515    if (!gesture.slideEl) {
5516      if (e && e.target) {
5517        gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
5518      }
5519      if (!gesture.slideEl) {
5520        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
5521          gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
5522        } else {
5523          gesture.slideEl = swiper.slides[swiper.activeIndex];
5524        }
5525      }
5526      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5527      if (imageEl) {
5528        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5529      }
5530      gesture.imageEl = imageEl;
5531      if (imageEl) {
5532        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
5533      } else {
5534        gesture.imageWrapEl = undefined;
5535      }
5536    }
5537    if (!gesture.imageEl || !gesture.imageWrapEl) return;
5538    if (swiper.params.cssMode) {
5539      swiper.wrapperEl.style.overflow = 'hidden';
5540      swiper.wrapperEl.style.touchAction = 'none';
5541    }
5542    gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
5543    let touchX;
5544    let touchY;
5545    let offsetX;
5546    let offsetY;
5547    let diffX;
5548    let diffY;
5549    let translateX;
5550    let translateY;
5551    let imageWidth;
5552    let imageHeight;
5553    let scaledWidth;
5554    let scaledHeight;
5555    let translateMinX;
5556    let translateMinY;
5557    let translateMaxX;
5558    let translateMaxY;
5559    let slideWidth;
5560    let slideHeight;
5561    if (typeof image.touchesStart.x === 'undefined' && e) {
5562      touchX = e.pageX;
5563      touchY = e.pageY;
5564    } else {
5565      touchX = image.touchesStart.x;
5566      touchY = image.touchesStart.y;
5567    }
5568    const prevScale = currentScale;
5569    const forceZoomRatio = typeof e === 'number' ? e : null;
5570    if (currentScale === 1 && forceZoomRatio) {
5571      touchX = undefined;
5572      touchY = undefined;
5573      image.touchesStart.x = undefined;
5574      image.touchesStart.y = undefined;
5575    }
5576    const maxRatio = getMaxRatio();
5577    zoom.scale = forceZoomRatio || maxRatio;
5578    currentScale = forceZoomRatio || maxRatio;
5579    if (e && !(currentScale === 1 && forceZoomRatio)) {
5580      slideWidth = gesture.slideEl.offsetWidth;
5581      slideHeight = gesture.slideEl.offsetHeight;
5582      offsetX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.slideEl).left + window.scrollX;
5583      offsetY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.slideEl).top + window.scrollY;
5584      diffX = offsetX + slideWidth / 2 - touchX;
5585      diffY = offsetY + slideHeight / 2 - touchY;
5586      imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5587      imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5588      scaledWidth = imageWidth * zoom.scale;
5589      scaledHeight = imageHeight * zoom.scale;
5590      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
5591      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
5592      translateMaxX = -translateMinX;
5593      translateMaxY = -translateMinY;
5594      if (prevScale > 0 && forceZoomRatio && typeof image.currentX === 'number' && typeof image.currentY === 'number') {
5595        translateX = image.currentX * zoom.scale / prevScale;
5596        translateY = image.currentY * zoom.scale / prevScale;
5597      } else {
5598        translateX = diffX * zoom.scale;
5599        translateY = diffY * zoom.scale;
5600      }
5601      if (translateX < translateMinX) {
5602        translateX = translateMinX;
5603      }
5604      if (translateX > translateMaxX) {
5605        translateX = translateMaxX;
5606      }
5607      if (translateY < translateMinY) {
5608        translateY = translateMinY;
5609      }
5610      if (translateY > translateMaxY) {
5611        translateY = translateMaxY;
5612      }
5613    } else {
5614      translateX = 0;
5615      translateY = 0;
5616    }
5617    if (forceZoomRatio && zoom.scale === 1) {
5618      gesture.originX = 0;
5619      gesture.originY = 0;
5620    }
5621    image.currentX = translateX;
5622    image.currentY = translateY;
5623    gesture.imageWrapEl.style.transitionDuration = '300ms';
5624    gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;
5625    gesture.imageEl.style.transitionDuration = '300ms';
5626    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5627  }
5628  function zoomOut() {
5629    const zoom = swiper.zoom;
5630    const params = swiper.params.zoom;
5631    if (!gesture.slideEl) {
5632      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
5633        gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
5634      } else {
5635        gesture.slideEl = swiper.slides[swiper.activeIndex];
5636      }
5637      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5638      if (imageEl) {
5639        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5640      }
5641      gesture.imageEl = imageEl;
5642      if (imageEl) {
5643        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
5644      } else {
5645        gesture.imageWrapEl = undefined;
5646      }
5647    }
5648    if (!gesture.imageEl || !gesture.imageWrapEl) return;
5649    if (swiper.params.cssMode) {
5650      swiper.wrapperEl.style.overflow = '';
5651      swiper.wrapperEl.style.touchAction = '';
5652    }
5653    zoom.scale = 1;
5654    currentScale = 1;
5655    image.currentX = undefined;
5656    image.currentY = undefined;
5657    image.touchesStart.x = undefined;
5658    image.touchesStart.y = undefined;
5659    gesture.imageWrapEl.style.transitionDuration = '300ms';
5660    gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
5661    gesture.imageEl.style.transitionDuration = '300ms';
5662    gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
5663    gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
5664    gesture.slideEl = undefined;
5665    gesture.originX = 0;
5666    gesture.originY = 0;
5667    if (swiper.params.zoom.panOnMouseMove) {
5668      mousePanStart = {
5669        x: 0,
5670        y: 0
5671      };
5672      if (isPanningWithMouse) {
5673        isPanningWithMouse = false;
5674        image.startX = 0;
5675        image.startY = 0;
5676      }
5677    }
5678  }
5679
5680  // Toggle Zoom
5681  function zoomToggle(e) {
5682    const zoom = swiper.zoom;
5683    if (zoom.scale && zoom.scale !== 1) {
5684      // Zoom Out
5685      zoomOut();
5686    } else {
5687      // Zoom In
5688      zoomIn(e);
5689    }
5690  }
5691  function getListeners() {
5692    const passiveListener = swiper.params.passiveListeners ? {
5693      passive: true,
5694      capture: false
5695    } : false;
5696    const activeListenerWithCapture = swiper.params.passiveListeners ? {
5697      passive: false,
5698      capture: true
5699    } : true;
5700    return {
5701      passiveListener,
5702      activeListenerWithCapture
5703    };
5704  }
5705
5706  // Attach/Detach Events
5707  function enable() {
5708    const zoom = swiper.zoom;
5709    if (zoom.enabled) return;
5710    zoom.enabled = true;
5711    const {
5712      passiveListener,
5713      activeListenerWithCapture
5714    } = getListeners();
5715
5716    // Scale image
5717    swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);
5718    swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);
5719    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
5720      swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);
5721    });
5722
5723    // Move image
5724    swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);
5725  }
5726  function disable() {
5727    const zoom = swiper.zoom;
5728    if (!zoom.enabled) return;
5729    zoom.enabled = false;
5730    const {
5731      passiveListener,
5732      activeListenerWithCapture
5733    } = getListeners();
5734
5735    // Scale image
5736    swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);
5737    swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);
5738    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
5739      swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);
5740    });
5741
5742    // Move image
5743    swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);
5744  }
5745  on('init', () => {
5746    if (swiper.params.zoom.enabled) {
5747      enable();
5748    }
5749  });
5750  on('destroy', () => {
5751    disable();
5752  });
5753  on('touchStart', (_s, e) => {
5754    if (!swiper.zoom.enabled) return;
5755    onTouchStart(e);
5756  });
5757  on('touchEnd', (_s, e) => {
5758    if (!swiper.zoom.enabled) return;
5759    onTouchEnd();
5760  });
5761  on('doubleTap', (_s, e) => {
5762    if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
5763      zoomToggle(e);
5764    }
5765  });
5766  on('transitionEnd', () => {
5767    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {
5768      onTransitionEnd();
5769    }
5770  });
5771  on('slideChange', () => {
5772    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {
5773      onTransitionEnd();
5774    }
5775  });
5776  Object.assign(swiper.zoom, {
5777    enable,
5778    disable,
5779    in: zoomIn,
5780    out: zoomOut,
5781    toggle: zoomToggle
5782  });
5783}
5784
5785
5786
5787
5788/***/ }),
5789
vendor: 766 bytes, lines 5790-5812
5790/***/ "./node_modules/swiper/shared/classes-to-selector.mjs":
5791/*!************************************************************!*\
5792  !*** ./node_modules/swiper/shared/classes-to-selector.mjs ***!
5793  \************************************************************/
5794/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5795
5796__webpack_require__.r(__webpack_exports__);
5797/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5798/* harmony export */   c: () => (/* binding */ classesToSelector)
5799/* harmony export */ });
5800function classesToSelector(classes) {
5801  if (classes === void 0) {
5802    classes = '';
5803  }
5804  return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line
5805  .replace(/ /g, '.')}`;
5806}
5807
5808
5809
5810
5811/***/ }),
5812
vendor: 1,405 bytes, lines 5813-5848
5813/***/ "./node_modules/swiper/shared/create-element-if-not-defined.mjs":
5814/*!**********************************************************************!*\
5815  !*** ./node_modules/swiper/shared/create-element-if-not-defined.mjs ***!
5816  \**********************************************************************/
5817/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5818
5819__webpack_require__.r(__webpack_exports__);
5820/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5821/* harmony export */   c: () => (/* binding */ createElementIfNotDefined)
5822/* harmony export */ });
5823/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5824
5825
5826function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
5827  if (swiper.params.createElements) {
5828    Object.keys(checkProps).forEach(key => {
5829      if (!params[key] && params.auto === true) {
5830        let element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.el, `.${checkProps[key]}`)[0];
5831        if (!element) {
5832          element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', checkProps[key]);
5833          element.className = checkProps[key];
5834          swiper.el.append(element);
5835        }
5836        params[key] = element;
5837        originalParams[key] = element;
5838      }
5839    });
5840  }
5841  return params;
5842}
5843
5844
5845
5846
5847/***/ }),
5848
vendor: 1,201 bytes, lines 5849-5877
5849/***/ "./node_modules/swiper/shared/create-shadow.mjs":
5850/*!******************************************************!*\
5851  !*** ./node_modules/swiper/shared/create-shadow.mjs ***!
5852  \******************************************************/
5853/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5854
5855__webpack_require__.r(__webpack_exports__);
5856/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5857/* harmony export */   c: () => (/* binding */ createShadow)
5858/* harmony export */ });
5859/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5860
5861
5862function createShadow(suffix, slideEl, side) {
5863  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;
5864  const shadowContainer = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
5865  let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);
5866  if (!shadowEl) {
5867    shadowEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', shadowClass.split(' '));
5868    shadowContainer.append(shadowEl);
5869  }
5870  return shadowEl;
5871}
5872
5873
5874
5875
5876/***/ }),
5877
vendor: 2,324 bytes, lines 5878-5949
5878/***/ "./node_modules/swiper/shared/effect-init.mjs":
5879/*!****************************************************!*\
5880  !*** ./node_modules/swiper/shared/effect-init.mjs ***!
5881  \****************************************************/
5882/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5883
5884__webpack_require__.r(__webpack_exports__);
5885/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5886/* harmony export */   e: () => (/* binding */ effectInit)
5887/* harmony export */ });
5888function effectInit(params) {
5889  const {
5890    effect,
5891    swiper,
5892    on,
5893    setTranslate,
5894    setTransition,
5895    overwriteParams,
5896    perspective,
5897    recreateShadows,
5898    getEffectParams
5899  } = params;
5900  on('beforeInit', () => {
5901    if (swiper.params.effect !== effect) return;
5902    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
5903    if (perspective && perspective()) {
5904      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
5905    }
5906    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};
5907    Object.assign(swiper.params, overwriteParamsResult);
5908    Object.assign(swiper.originalParams, overwriteParamsResult);
5909  });
5910  on('setTranslate', () => {
5911    if (swiper.params.effect !== effect) return;
5912    setTranslate();
5913  });
5914  on('setTransition', (_s, duration) => {
5915    if (swiper.params.effect !== effect) return;
5916    setTransition(duration);
5917  });
5918  on('transitionEnd', () => {
5919    if (swiper.params.effect !== effect) return;
5920    if (recreateShadows) {
5921      if (!getEffectParams || !getEffectParams().slideShadows) return;
5922      // remove shadows
5923      swiper.slides.forEach(slideEl => {
5924        slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());
5925      });
5926      // create new one
5927      recreateShadows();
5928    }
5929  });
5930  let requireUpdateOnVirtual;
5931  on('virtualUpdate', () => {
5932    if (swiper.params.effect !== effect) return;
5933    if (!swiper.slides.length) {
5934      requireUpdateOnVirtual = true;
5935    }
5936    requestAnimationFrame(() => {
5937      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {
5938        setTranslate();
5939        requireUpdateOnVirtual = false;
5940      }
5941    });
5942  });
5943}
5944
5945
5946
5947
5948/***/ }),
5949
vendor: 994 bytes, lines 5950-5976
5950/***/ "./node_modules/swiper/shared/effect-target.mjs":
5951/*!******************************************************!*\
5952  !*** ./node_modules/swiper/shared/effect-target.mjs ***!
5953  \******************************************************/
5954/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5955
5956__webpack_require__.r(__webpack_exports__);
5957/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5958/* harmony export */   e: () => (/* binding */ effectTarget)
5959/* harmony export */ });
5960/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5961
5962
5963function effectTarget(effectParams, slideEl) {
5964  const transformEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
5965  if (transformEl !== slideEl) {
5966    transformEl.style.backfaceVisibility = 'hidden';
5967    transformEl.style['-webkit-backface-visibility'] = 'hidden';
5968  }
5969  return transformEl;
5970}
5971
5972
5973
5974
5975/***/ }),
5976
vendor: 2,097 bytes, lines 5977-6039
5977/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs":
5978/*!**********************************************************************!*\
5979  !*** ./node_modules/swiper/shared/effect-virtual-transition-end.mjs ***!
5980  \**********************************************************************/
5981/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5982
5983__webpack_require__.r(__webpack_exports__);
5984/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5985/* harmony export */   e: () => (/* binding */ effectVirtualTransitionEnd)
5986/* harmony export */ });
5987/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5988
5989
5990function effectVirtualTransitionEnd(_ref) {
5991  let {
5992    swiper,
5993    duration,
5994    transformElements,
5995    allSlides
5996  } = _ref;
5997  const {
5998    activeIndex
5999  } = swiper;
6000  const getSlide = el => {
6001    if (!el.parentElement) {
6002      // assume shadow root
6003      const slide = swiper.slides.find(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode);
6004      return slide;
6005    }
6006    return el.parentElement;
6007  };
6008  if (swiper.params.virtualTranslate && duration !== 0) {
6009    let eventTriggered = false;
6010    let transitionEndTarget;
6011    if (allSlides) {
6012      transitionEndTarget = transformElements;
6013    } else {
6014      transitionEndTarget = transformElements.filter(transformEl => {
6015        const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;
6016        return swiper.getSlideIndex(el) === activeIndex;
6017      });
6018    }
6019    transitionEndTarget.forEach(el => {
6020      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(el, () => {
6021        if (eventTriggered) return;
6022        if (!swiper || swiper.destroyed) return;
6023        eventTriggered = true;
6024        swiper.animating = false;
6025        const evt = new window.CustomEvent('transitionend', {
6026          bubbles: true,
6027          cancelable: true
6028        });
6029        swiper.wrapperEl.dispatchEvent(evt);
6030      });
6031    });
6032  }
6033}
6034
6035
6036
6037
6038/***/ }),
6039
vendor: 3,423 bytes, lines 6040-6200
6040/***/ "./node_modules/swiper/shared/ssr-window.esm.mjs":
6041/*!*******************************************************!*\
6042  !*** ./node_modules/swiper/shared/ssr-window.esm.mjs ***!
6043  \*******************************************************/
6044/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6045
6046__webpack_require__.r(__webpack_exports__);
6047/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6048/* harmony export */   a: () => (/* binding */ getWindow),
6049/* harmony export */   g: () => (/* binding */ getDocument)
6050/* harmony export */ });
6051/**
6052 * SSR Window 5.0.0
6053 * Better handling for window object in SSR environment
6054 * https://github.com/nolimits4web/ssr-window
6055 *
6056 * Copyright 2025, Vladimir Kharlampidi
6057 *
6058 * Licensed under MIT
6059 *
6060 * Released on: February 12, 2025
6061 */
6062/* eslint-disable no-param-reassign */
6063function isObject(obj) {
6064  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
6065}
6066function extend(target, src) {
6067  if (target === void 0) {
6068    target = {};
6069  }
6070  if (src === void 0) {
6071    src = {};
6072  }
6073  const noExtend = ['__proto__', 'constructor', 'prototype'];
6074  Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {
6075    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {
6076      extend(target[key], src[key]);
6077    }
6078  });
6079}
6080const ssrDocument = {
6081  body: {},
6082  addEventListener() {},
6083  removeEventListener() {},
6084  activeElement: {
6085    blur() {},
6086    nodeName: ''
6087  },
6088  querySelector() {
6089    return null;
6090  },
6091  querySelectorAll() {
6092    return [];
6093  },
6094  getElementById() {
6095    return null;
6096  },
6097  createEvent() {
6098    return {
6099      initEvent() {}
6100    };
6101  },
6102  createElement() {
6103    return {
6104      children: [],
6105      childNodes: [],
6106      style: {},
6107      setAttribute() {},
6108      getElementsByTagName() {
6109        return [];
6110      }
6111    };
6112  },
6113  createElementNS() {
6114    return {};
6115  },
6116  importNode() {
6117    return null;
6118  },
6119  location: {
6120    hash: '',
6121    host: '',
6122    hostname: '',
6123    href: '',
6124    origin: '',
6125    pathname: '',
6126    protocol: '',
6127    search: ''
6128  }
6129};
6130function getDocument() {
6131  const doc = typeof document !== 'undefined' ? document : {};
6132  extend(doc, ssrDocument);
6133  return doc;
6134}
6135const ssrWindow = {
6136  document: ssrDocument,
6137  navigator: {
6138    userAgent: ''
6139  },
6140  location: {
6141    hash: '',
6142    host: '',
6143    hostname: '',
6144    href: '',
6145    origin: '',
6146    pathname: '',
6147    protocol: '',
6148    search: ''
6149  },
6150  history: {
6151    replaceState() {},
6152    pushState() {},
6153    go() {},
6154    back() {}
6155  },
6156  CustomEvent: function CustomEvent() {
6157    return this;
6158  },
6159  addEventListener() {},
6160  removeEventListener() {},
6161  getComputedStyle() {
6162    return {
6163      getPropertyValue() {
6164        return '';
6165      }
6166    };
6167  },
6168  Image() {},
6169  Date() {},
6170  screen: {},
6171  setTimeout() {},
6172  clearTimeout() {},
6173  matchMedia() {
6174    return {};
6175  },
6176  requestAnimationFrame(callback) {
6177    if (typeof setTimeout === 'undefined') {
6178      callback();
6179      return null;
6180    }
6181    return setTimeout(callback, 0);
6182  },
6183  cancelAnimationFrame(id) {
6184    if (typeof setTimeout === 'undefined') {
6185      return;
6186    }
6187    clearTimeout(id);
6188  }
6189};
6190function getWindow() {
6191  const win = typeof window !== 'undefined' ? window : {};
6192  extend(win, ssrWindow);
6193  return win;
6194}
6195
6196
6197
6198
6199/***/ }),
6200
vendor: 134,463 bytes, lines 6201-10155
6201/***/ "./node_modules/swiper/shared/swiper-core.mjs":
6202/*!****************************************************!*\
6203  !*** ./node_modules/swiper/shared/swiper-core.mjs ***!
6204  \****************************************************/
6205/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6206
6207__webpack_require__.r(__webpack_exports__);
6208/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6209/* harmony export */   S: () => (/* binding */ Swiper),
6210/* harmony export */   d: () => (/* binding */ defaults)
6211/* harmony export */ });
6212/* 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");
6213/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6214
6215
6216
6217let support;
6218function calcSupport() {
6219  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6220  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
6221  return {
6222    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,
6223    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)
6224  };
6225}
6226function getSupport() {
6227  if (!support) {
6228    support = calcSupport();
6229  }
6230  return support;
6231}
6232
6233let deviceCached;
6234function calcDevice(_temp) {
6235  let {
6236    userAgent
6237  } = _temp === void 0 ? {} : _temp;
6238  const support = getSupport();
6239  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6240  const platform = window.navigator.platform;
6241  const ua = userAgent || window.navigator.userAgent;
6242  const device = {
6243    ios: false,
6244    android: false
6245  };
6246  const screenWidth = window.screen.width;
6247  const screenHeight = window.screen.height;
6248  const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
6249  let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
6250  const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
6251  const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
6252  const windows = platform === 'Win32';
6253  let macos = platform === 'MacIntel';
6254
6255  // iPadOs 13 fix
6256  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
6257  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
6258    ipad = ua.match(/(Version)\/([\d.]+)/);
6259    if (!ipad) ipad = [0, 1, '13_0_0'];
6260    macos = false;
6261  }
6262
6263  // Android
6264  if (android && !windows) {
6265    device.os = 'android';
6266    device.android = true;
6267  }
6268  if (ipad || iphone || ipod) {
6269    device.os = 'ios';
6270    device.ios = true;
6271  }
6272
6273  // Export object
6274  return device;
6275}
6276function getDevice(overrides) {
6277  if (overrides === void 0) {
6278    overrides = {};
6279  }
6280  if (!deviceCached) {
6281    deviceCached = calcDevice(overrides);
6282  }
6283  return deviceCached;
6284}
6285
6286let browser;
6287function calcBrowser() {
6288  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6289  const device = getDevice();
6290  let needPerspectiveFix = false;
6291  function isSafari() {
6292    const ua = window.navigator.userAgent.toLowerCase();
6293    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
6294  }
6295  if (isSafari()) {
6296    const ua = String(window.navigator.userAgent);
6297    if (ua.includes('Version/')) {
6298      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
6299      needPerspectiveFix = major < 16 || major === 16 && minor < 2;
6300    }
6301  }
6302  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);
6303  const isSafariBrowser = isSafari();
6304  const need3dFix = isSafariBrowser || isWebView && device.ios;
6305  return {
6306    isSafari: needPerspectiveFix || isSafariBrowser,
6307    needPerspectiveFix,
6308    need3dFix,
6309    isWebView
6310  };
6311}
6312function getBrowser() {
6313  if (!browser) {
6314    browser = calcBrowser();
6315  }
6316  return browser;
6317}
6318
6319function Resize(_ref) {
6320  let {
6321    swiper,
6322    on,
6323    emit
6324  } = _ref;
6325  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6326  let observer = null;
6327  let animationFrame = null;
6328  const resizeHandler = () => {
6329    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6330    emit('beforeResize');
6331    emit('resize');
6332  };
6333  const createObserver = () => {
6334    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6335    observer = new ResizeObserver(entries => {
6336      animationFrame = window.requestAnimationFrame(() => {
6337        const {
6338          width,
6339          height
6340        } = swiper;
6341        let newWidth = width;
6342        let newHeight = height;
6343        entries.forEach(_ref2 => {
6344          let {
6345            contentBoxSize,
6346            contentRect,
6347            target
6348          } = _ref2;
6349          if (target && target !== swiper.el) return;
6350          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
6351          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
6352        });
6353        if (newWidth !== width || newHeight !== height) {
6354          resizeHandler();
6355        }
6356      });
6357    });
6358    observer.observe(swiper.el);
6359  };
6360  const removeObserver = () => {
6361    if (animationFrame) {
6362      window.cancelAnimationFrame(animationFrame);
6363    }
6364    if (observer && observer.unobserve && swiper.el) {
6365      observer.unobserve(swiper.el);
6366      observer = null;
6367    }
6368  };
6369  const orientationChangeHandler = () => {
6370    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6371    emit('orientationchange');
6372  };
6373  on('init', () => {
6374    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {
6375      createObserver();
6376      return;
6377    }
6378    window.addEventListener('resize', resizeHandler);
6379    window.addEventListener('orientationchange', orientationChangeHandler);
6380  });
6381  on('destroy', () => {
6382    removeObserver();
6383    window.removeEventListener('resize', resizeHandler);
6384    window.removeEventListener('orientationchange', orientationChangeHandler);
6385  });
6386}
6387
6388function Observer(_ref) {
6389  let {
6390    swiper,
6391    extendParams,
6392    on,
6393    emit
6394  } = _ref;
6395  const observers = [];
6396  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6397  const attach = function (target, options) {
6398    if (options === void 0) {
6399      options = {};
6400    }
6401    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
6402    const observer = new ObserverFunc(mutations => {
6403      // The observerUpdate event should only be triggered
6404      // once despite the number of mutations.  Additional
6405      // triggers are redundant and are very costly
6406      if (swiper.__preventObserver__) return;
6407      if (mutations.length === 1) {
6408        emit('observerUpdate', mutations[0]);
6409        return;
6410      }
6411      const observerUpdate = function observerUpdate() {
6412        emit('observerUpdate', mutations[0]);
6413      };
6414      if (window.requestAnimationFrame) {
6415        window.requestAnimationFrame(observerUpdate);
6416      } else {
6417        window.setTimeout(observerUpdate, 0);
6418      }
6419    });
6420    observer.observe(target, {
6421      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
6422      childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,
6423      characterData: typeof options.characterData === 'undefined' ? true : options.characterData
6424    });
6425    observers.push(observer);
6426  };
6427  const init = () => {
6428    if (!swiper.params.observer) return;
6429    if (swiper.params.observeParents) {
6430      const containerParents = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.hostEl);
6431      for (let i = 0; i < containerParents.length; i += 1) {
6432        attach(containerParents[i]);
6433      }
6434    }
6435    // Observe container
6436    attach(swiper.hostEl, {
6437      childList: swiper.params.observeSlideChildren
6438    });
6439
6440    // Observe wrapper
6441    attach(swiper.wrapperEl, {
6442      attributes: false
6443    });
6444  };
6445  const destroy = () => {
6446    observers.forEach(observer => {
6447      observer.disconnect();
6448    });
6449    observers.splice(0, observers.length);
6450  };
6451  extendParams({
6452    observer: false,
6453    observeParents: false,
6454    observeSlideChildren: false
6455  });
6456  on('init', init);
6457  on('destroy', destroy);
6458}
6459
6460/* eslint-disable no-underscore-dangle */
6461
6462var eventsEmitter = {
6463  on(events, handler, priority) {
6464    const self = this;
6465    if (!self.eventsListeners || self.destroyed) return self;
6466    if (typeof handler !== 'function') return self;
6467    const method = priority ? 'unshift' : 'push';
6468    events.split(' ').forEach(event => {
6469      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
6470      self.eventsListeners[event][method](handler);
6471    });
6472    return self;
6473  },
6474  once(events, handler, priority) {
6475    const self = this;
6476    if (!self.eventsListeners || self.destroyed) return self;
6477    if (typeof handler !== 'function') return self;
6478    function onceHandler() {
6479      self.off(events, onceHandler);
6480      if (onceHandler.__emitterProxy) {
6481        delete onceHandler.__emitterProxy;
6482      }
6483      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6484        args[_key] = arguments[_key];
6485      }
6486      handler.apply(self, args);
6487    }
6488    onceHandler.__emitterProxy = handler;
6489    return self.on(events, onceHandler, priority);
6490  },
6491  onAny(handler, priority) {
6492    const self = this;
6493    if (!self.eventsListeners || self.destroyed) return self;
6494    if (typeof handler !== 'function') return self;
6495    const method = priority ? 'unshift' : 'push';
6496    if (self.eventsAnyListeners.indexOf(handler) < 0) {
6497      self.eventsAnyListeners[method](handler);
6498    }
6499    return self;
6500  },
6501  offAny(handler) {
6502    const self = this;
6503    if (!self.eventsListeners || self.destroyed) return self;
6504    if (!self.eventsAnyListeners) return self;
6505    const index = self.eventsAnyListeners.indexOf(handler);
6506    if (index >= 0) {
6507      self.eventsAnyListeners.splice(index, 1);
6508    }
6509    return self;
6510  },
6511  off(events, handler) {
6512    const self = this;
6513    if (!self.eventsListeners || self.destroyed) return self;
6514    if (!self.eventsListeners) return self;
6515    events.split(' ').forEach(event => {
6516      if (typeof handler === 'undefined') {
6517        self.eventsListeners[event] = [];
6518      } else if (self.eventsListeners[event]) {
6519        self.eventsListeners[event].forEach((eventHandler, index) => {
6520          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
6521            self.eventsListeners[event].splice(index, 1);
6522          }
6523        });
6524      }
6525    });
6526    return self;
6527  },
6528  emit() {
6529    const self = this;
6530    if (!self.eventsListeners || self.destroyed) return self;
6531    if (!self.eventsListeners) return self;
6532    let events;
6533    let data;
6534    let context;
6535    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
6536      args[_key2] = arguments[_key2];
6537    }
6538    if (typeof args[0] === 'string' || Array.isArray(args[0])) {
6539      events = args[0];
6540      data = args.slice(1, args.length);
6541      context = self;
6542    } else {
6543      events = args[0].events;
6544      data = args[0].data;
6545      context = args[0].context || self;
6546    }
6547    data.unshift(context);
6548    const eventsArray = Array.isArray(events) ? events : events.split(' ');
6549    eventsArray.forEach(event => {
6550      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
6551        self.eventsAnyListeners.forEach(eventHandler => {
6552          eventHandler.apply(context, [event, ...data]);
6553        });
6554      }
6555      if (self.eventsListeners && self.eventsListeners[event]) {
6556        self.eventsListeners[event].forEach(eventHandler => {
6557          eventHandler.apply(context, data);
6558        });
6559      }
6560    });
6561    return self;
6562  }
6563};
6564
6565function updateSize() {
6566  const swiper = this;
6567  let width;
6568  let height;
6569  const el = swiper.el;
6570  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {
6571    width = swiper.params.width;
6572  } else {
6573    width = el.clientWidth;
6574  }
6575  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {
6576    height = swiper.params.height;
6577  } else {
6578    height = el.clientHeight;
6579  }
6580  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
6581    return;
6582  }
6583
6584  // Subtract paddings
6585  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);
6586  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);
6587  if (Number.isNaN(width)) width = 0;
6588  if (Number.isNaN(height)) height = 0;
6589  Object.assign(swiper, {
6590    width,
6591    height,
6592    size: swiper.isHorizontal() ? width : height
6593  });
6594}
6595
6596function updateSlides() {
6597  const swiper = this;
6598  function getDirectionPropertyValue(node, label) {
6599    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);
6600  }
6601  const params = swiper.params;
6602  const {
6603    wrapperEl,
6604    slidesEl,
6605    size: swiperSize,
6606    rtlTranslate: rtl,
6607    wrongRTL
6608  } = swiper;
6609  const isVirtual = swiper.virtual && params.virtual.enabled;
6610  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
6611  const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);
6612  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
6613  let snapGrid = [];
6614  const slidesGrid = [];
6615  const slidesSizesGrid = [];
6616  let offsetBefore = params.slidesOffsetBefore;
6617  if (typeof offsetBefore === 'function') {
6618    offsetBefore = params.slidesOffsetBefore.call(swiper);
6619  }
6620  let offsetAfter = params.slidesOffsetAfter;
6621  if (typeof offsetAfter === 'function') {
6622    offsetAfter = params.slidesOffsetAfter.call(swiper);
6623  }
6624  const previousSnapGridLength = swiper.snapGrid.length;
6625  const previousSlidesGridLength = swiper.slidesGrid.length;
6626  let spaceBetween = params.spaceBetween;
6627  let slidePosition = -offsetBefore;
6628  let prevSlideSize = 0;
6629  let index = 0;
6630  if (typeof swiperSize === 'undefined') {
6631    return;
6632  }
6633  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
6634    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
6635  } else if (typeof spaceBetween === 'string') {
6636    spaceBetween = parseFloat(spaceBetween);
6637  }
6638  swiper.virtualSize = -spaceBetween;
6639
6640  // reset margins
6641  slides.forEach(slideEl => {
6642    if (rtl) {
6643      slideEl.style.marginLeft = '';
6644    } else {
6645      slideEl.style.marginRight = '';
6646    }
6647    slideEl.style.marginBottom = '';
6648    slideEl.style.marginTop = '';
6649  });
6650
6651  // reset cssMode offsets
6652  if (params.centeredSlides && params.cssMode) {
6653    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-before', '');
6654    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-after', '');
6655  }
6656  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
6657  if (gridEnabled) {
6658    swiper.grid.initSlides(slides);
6659  } else if (swiper.grid) {
6660    swiper.grid.unsetSlides();
6661  }
6662
6663  // Calc slides
6664  let slideSize;
6665  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {
6666    return typeof params.breakpoints[key].slidesPerView !== 'undefined';
6667  }).length > 0;
6668  for (let i = 0; i < slidesLength; i += 1) {
6669    slideSize = 0;
6670    let slide;
6671    if (slides[i]) slide = slides[i];
6672    if (gridEnabled) {
6673      swiper.grid.updateSlide(i, slide, slides);
6674    }
6675    if (slides[i] && (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(slide, 'display') === 'none') continue; // eslint-disable-line
6676
6677    if (params.slidesPerView === 'auto') {
6678      if (shouldResetSlideSize) {
6679        slides[i].style[swiper.getDirectionLabel('width')] = ``;
6680      }
6681      const slideStyles = getComputedStyle(slide);
6682      const currentTransform = slide.style.transform;
6683      const currentWebKitTransform = slide.style.webkitTransform;
6684      if (currentTransform) {
6685        slide.style.transform = 'none';
6686      }
6687      if (currentWebKitTransform) {
6688        slide.style.webkitTransform = 'none';
6689      }
6690      if (params.roundLengths) {
6691        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);
6692      } else {
6693        // eslint-disable-next-line
6694        const width = getDirectionPropertyValue(slideStyles, 'width');
6695        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');
6696        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');
6697        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');
6698        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');
6699        const boxSizing = slideStyles.getPropertyValue('box-sizing');
6700        if (boxSizing && boxSizing === 'border-box') {
6701          slideSize = width + marginLeft + marginRight;
6702        } else {
6703          const {
6704            clientWidth,
6705            offsetWidth
6706          } = slide;
6707          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
6708        }
6709      }
6710      if (currentTransform) {
6711        slide.style.transform = currentTransform;
6712      }
6713      if (currentWebKitTransform) {
6714        slide.style.webkitTransform = currentWebKitTransform;
6715      }
6716      if (params.roundLengths) slideSize = Math.floor(slideSize);
6717    } else {
6718      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
6719      if (params.roundLengths) slideSize = Math.floor(slideSize);
6720      if (slides[i]) {
6721        slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;
6722      }
6723    }
6724    if (slides[i]) {
6725      slides[i].swiperSlideSize = slideSize;
6726    }
6727    slidesSizesGrid.push(slideSize);
6728    if (params.centeredSlides) {
6729      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
6730      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
6731      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
6732      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
6733      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
6734      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
6735      slidesGrid.push(slidePosition);
6736    } else {
6737      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
6738      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
6739      slidesGrid.push(slidePosition);
6740      slidePosition = slidePosition + slideSize + spaceBetween;
6741    }
6742    swiper.virtualSize += slideSize + spaceBetween;
6743    prevSlideSize = slideSize;
6744    index += 1;
6745  }
6746  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
6747  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
6748    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;
6749  }
6750  if (params.setWrapperSize) {
6751    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
6752  }
6753  if (gridEnabled) {
6754    swiper.grid.updateWrapperSize(slideSize, snapGrid);
6755  }
6756
6757  // Remove last grid elements depending on width
6758  if (!params.centeredSlides) {
6759    const newSlidesGrid = [];
6760    for (let i = 0; i < snapGrid.length; i += 1) {
6761      let slidesGridItem = snapGrid[i];
6762      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
6763      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
6764        newSlidesGrid.push(slidesGridItem);
6765      }
6766    }
6767    snapGrid = newSlidesGrid;
6768    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
6769      snapGrid.push(swiper.virtualSize - swiperSize);
6770    }
6771  }
6772  if (isVirtual && params.loop) {
6773    const size = slidesSizesGrid[0] + spaceBetween;
6774    if (params.slidesPerGroup > 1) {
6775      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);
6776      const groupSize = size * params.slidesPerGroup;
6777      for (let i = 0; i < groups; i += 1) {
6778        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);
6779      }
6780    }
6781    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {
6782      if (params.slidesPerGroup === 1) {
6783        snapGrid.push(snapGrid[snapGrid.length - 1] + size);
6784      }
6785      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);
6786      swiper.virtualSize += size;
6787    }
6788  }
6789  if (snapGrid.length === 0) snapGrid = [0];
6790  if (spaceBetween !== 0) {
6791    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');
6792    slides.filter((_, slideIndex) => {
6793      if (!params.cssMode || params.loop) return true;
6794      if (slideIndex === slides.length - 1) {
6795        return false;
6796      }
6797      return true;
6798    }).forEach(slideEl => {
6799      slideEl.style[key] = `${spaceBetween}px`;
6800    });
6801  }
6802  if (params.centeredSlides && params.centeredSlidesBounds) {
6803    let allSlidesSize = 0;
6804    slidesSizesGrid.forEach(slideSizeValue => {
6805      allSlidesSize += slideSizeValue + (spaceBetween || 0);
6806    });
6807    allSlidesSize -= spaceBetween;
6808    const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;
6809    snapGrid = snapGrid.map(snap => {
6810      if (snap <= 0) return -offsetBefore;
6811      if (snap > maxSnap) return maxSnap + offsetAfter;
6812      return snap;
6813    });
6814  }
6815  if (params.centerInsufficientSlides) {
6816    let allSlidesSize = 0;
6817    slidesSizesGrid.forEach(slideSizeValue => {
6818      allSlidesSize += slideSizeValue + (spaceBetween || 0);
6819    });
6820    allSlidesSize -= spaceBetween;
6821    const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);
6822    if (allSlidesSize + offsetSize < swiperSize) {
6823      const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;
6824      snapGrid.forEach((snap, snapIndex) => {
6825        snapGrid[snapIndex] = snap - allSlidesOffset;
6826      });
6827      slidesGrid.forEach((snap, snapIndex) => {
6828        slidesGrid[snapIndex] = snap + allSlidesOffset;
6829      });
6830    }
6831  }
6832  Object.assign(swiper, {
6833    slides,
6834    snapGrid,
6835    slidesGrid,
6836    slidesSizesGrid
6837  });
6838  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
6839    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
6840    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
6841    const addToSnapGrid = -swiper.snapGrid[0];
6842    const addToSlidesGrid = -swiper.slidesGrid[0];
6843    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);
6844    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);
6845  }
6846  if (slidesLength !== previousSlidesLength) {
6847    swiper.emit('slidesLengthChange');
6848  }
6849  if (snapGrid.length !== previousSnapGridLength) {
6850    if (swiper.params.watchOverflow) swiper.checkOverflow();
6851    swiper.emit('snapGridLengthChange');
6852  }
6853  if (slidesGrid.length !== previousSlidesGridLength) {
6854    swiper.emit('slidesGridLengthChange');
6855  }
6856  if (params.watchSlidesProgress) {
6857    swiper.updateSlidesOffset();
6858  }
6859  swiper.emit('slidesUpdated');
6860  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
6861    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
6862    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);
6863    if (slidesLength <= params.maxBackfaceHiddenSlides) {
6864      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);
6865    } else if (hasClassBackfaceClassAdded) {
6866      swiper.el.classList.remove(backFaceHiddenClass);
6867    }
6868  }
6869}
6870
6871function updateAutoHeight(speed) {
6872  const swiper = this;
6873  const activeSlides = [];
6874  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
6875  let newHeight = 0;
6876  let i;
6877  if (typeof speed === 'number') {
6878    swiper.setTransition(speed);
6879  } else if (speed === true) {
6880    swiper.setTransition(swiper.params.speed);
6881  }
6882  const getSlideByIndex = index => {
6883    if (isVirtual) {
6884      return swiper.slides[swiper.getSlideIndexByData(index)];
6885    }
6886    return swiper.slides[index];
6887  };
6888  // Find slides currently in view
6889  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
6890    if (swiper.params.centeredSlides) {
6891      (swiper.visibleSlides || []).forEach(slide => {
6892        activeSlides.push(slide);
6893      });
6894    } else {
6895      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
6896        const index = swiper.activeIndex + i;
6897        if (index > swiper.slides.length && !isVirtual) break;
6898        activeSlides.push(getSlideByIndex(index));
6899      }
6900    }
6901  } else {
6902    activeSlides.push(getSlideByIndex(swiper.activeIndex));
6903  }
6904
6905  // Find new height from highest slide in view
6906  for (i = 0; i < activeSlides.length; i += 1) {
6907    if (typeof activeSlides[i] !== 'undefined') {
6908      const height = activeSlides[i].offsetHeight;
6909      newHeight = height > newHeight ? height : newHeight;
6910    }
6911  }
6912
6913  // Update Height
6914  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
6915}
6916
6917function updateSlidesOffset() {
6918  const swiper = this;
6919  const slides = swiper.slides;
6920  // eslint-disable-next-line
6921  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;
6922  for (let i = 0; i < slides.length; i += 1) {
6923    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();
6924  }
6925}
6926
6927const toggleSlideClasses$1 = (slideEl, condition, className) => {
6928  if (condition && !slideEl.classList.contains(className)) {
6929    slideEl.classList.add(className);
6930  } else if (!condition && slideEl.classList.contains(className)) {
6931    slideEl.classList.remove(className);
6932  }
6933};
6934function updateSlidesProgress(translate) {
6935  if (translate === void 0) {
6936    translate = this && this.translate || 0;
6937  }
6938  const swiper = this;
6939  const params = swiper.params;
6940  const {
6941    slides,
6942    rtlTranslate: rtl,
6943    snapGrid
6944  } = swiper;
6945  if (slides.length === 0) return;
6946  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
6947  let offsetCenter = -translate;
6948  if (rtl) offsetCenter = translate;
6949  swiper.visibleSlidesIndexes = [];
6950  swiper.visibleSlides = [];
6951  let spaceBetween = params.spaceBetween;
6952  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
6953    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
6954  } else if (typeof spaceBetween === 'string') {
6955    spaceBetween = parseFloat(spaceBetween);
6956  }
6957  for (let i = 0; i < slides.length; i += 1) {
6958    const slide = slides[i];
6959    let slideOffset = slide.swiperSlideOffset;
6960    if (params.cssMode && params.centeredSlides) {
6961      slideOffset -= slides[0].swiperSlideOffset;
6962    }
6963    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
6964    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
6965    const slideBefore = -(offsetCenter - slideOffset);
6966    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
6967    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];
6968    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
6969    if (isVisible) {
6970      swiper.visibleSlides.push(slide);
6971      swiper.visibleSlidesIndexes.push(i);
6972    }
6973    toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);
6974    toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);
6975    slide.progress = rtl ? -slideProgress : slideProgress;
6976    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
6977  }
6978}
6979
6980function updateProgress(translate) {
6981  const swiper = this;
6982  if (typeof translate === 'undefined') {
6983    const multiplier = swiper.rtlTranslate ? -1 : 1;
6984    // eslint-disable-next-line
6985    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
6986  }
6987  const params = swiper.params;
6988  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
6989  let {
6990    progress,
6991    isBeginning,
6992    isEnd,
6993    progressLoop
6994  } = swiper;
6995  const wasBeginning = isBeginning;
6996  const wasEnd = isEnd;
6997  if (translatesDiff === 0) {
6998    progress = 0;
6999    isBeginning = true;
7000    isEnd = true;
7001  } else {
7002    progress = (translate - swiper.minTranslate()) / translatesDiff;
7003    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;
7004    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;
7005    isBeginning = isBeginningRounded || progress <= 0;
7006    isEnd = isEndRounded || progress >= 1;
7007    if (isBeginningRounded) progress = 0;
7008    if (isEndRounded) progress = 1;
7009  }
7010  if (params.loop) {
7011    const firstSlideIndex = swiper.getSlideIndexByData(0);
7012    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);
7013    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];
7014    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];
7015    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];
7016    const translateAbs = Math.abs(translate);
7017    if (translateAbs >= firstSlideTranslate) {
7018      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;
7019    } else {
7020      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;
7021    }
7022    if (progressLoop > 1) progressLoop -= 1;
7023  }
7024  Object.assign(swiper, {
7025    progress,
7026    progressLoop,
7027    isBeginning,
7028    isEnd
7029  });
7030  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);
7031  if (isBeginning && !wasBeginning) {
7032    swiper.emit('reachBeginning toEdge');
7033  }
7034  if (isEnd && !wasEnd) {
7035    swiper.emit('reachEnd toEdge');
7036  }
7037  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
7038    swiper.emit('fromEdge');
7039  }
7040  swiper.emit('progress', progress);
7041}
7042
7043const toggleSlideClasses = (slideEl, condition, className) => {
7044  if (condition && !slideEl.classList.contains(className)) {
7045    slideEl.classList.add(className);
7046  } else if (!condition && slideEl.classList.contains(className)) {
7047    slideEl.classList.remove(className);
7048  }
7049};
7050function updateSlidesClasses() {
7051  const swiper = this;
7052  const {
7053    slides,
7054    params,
7055    slidesEl,
7056    activeIndex
7057  } = swiper;
7058  const isVirtual = swiper.virtual && params.virtual.enabled;
7059  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
7060  const getFilteredSlide = selector => {
7061    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];
7062  };
7063  let activeSlide;
7064  let prevSlide;
7065  let nextSlide;
7066  if (isVirtual) {
7067    if (params.loop) {
7068      let slideIndex = activeIndex - swiper.virtual.slidesBefore;
7069      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;
7070      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;
7071      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`);
7072    } else {
7073      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`);
7074    }
7075  } else {
7076    if (gridEnabled) {
7077      activeSlide = slides.find(slideEl => slideEl.column === activeIndex);
7078      nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);
7079      prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);
7080    } else {
7081      activeSlide = slides[activeIndex];
7082    }
7083  }
7084  if (activeSlide) {
7085    if (!gridEnabled) {
7086      // Next Slide
7087      nextSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
7088      if (params.loop && !nextSlide) {
7089        nextSlide = slides[0];
7090      }
7091
7092      // Prev Slide
7093      prevSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.r)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
7094      if (params.loop && !prevSlide === 0) {
7095        prevSlide = slides[slides.length - 1];
7096      }
7097    }
7098  }
7099  slides.forEach(slideEl => {
7100    toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);
7101    toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);
7102    toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);
7103  });
7104  swiper.emitSlidesClasses();
7105}
7106
7107const processLazyPreloader = (swiper, imageEl) => {
7108  if (!swiper || swiper.destroyed || !swiper.params) return;
7109  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
7110  const slideEl = imageEl.closest(slideSelector());
7111  if (slideEl) {
7112    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7113    if (!lazyEl && swiper.isElement) {
7114      if (slideEl.shadowRoot) {
7115        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7116      } else {
7117        // init later
7118        requestAnimationFrame(() => {
7119          if (slideEl.shadowRoot) {
7120            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7121            if (lazyEl) lazyEl.remove();
7122          }
7123        });
7124      }
7125    }
7126    if (lazyEl) lazyEl.remove();
7127  }
7128};
7129const unlazy = (swiper, index) => {
7130  if (!swiper.slides[index]) return;
7131  const imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
7132  if (imageEl) imageEl.removeAttribute('loading');
7133};
7134const preload = swiper => {
7135  if (!swiper || swiper.destroyed || !swiper.params) return;
7136  let amount = swiper.params.lazyPreloadPrevNext;
7137  const len = swiper.slides.length;
7138  if (!len || !amount || amount < 0) return;
7139  amount = Math.min(amount, len);
7140  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);
7141  const activeIndex = swiper.activeIndex;
7142  if (swiper.params.grid && swiper.params.grid.rows > 1) {
7143    const activeColumn = activeIndex;
7144    const preloadColumns = [activeColumn - amount];
7145    preloadColumns.push(...Array.from({
7146      length: amount
7147    }).map((_, i) => {
7148      return activeColumn + slidesPerView + i;
7149    }));
7150    swiper.slides.forEach((slideEl, i) => {
7151      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);
7152    });
7153    return;
7154  }
7155  const slideIndexLastInView = activeIndex + slidesPerView - 1;
7156  if (swiper.params.rewind || swiper.params.loop) {
7157    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
7158      const realIndex = (i % len + len) % len;
7159      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
7160    }
7161  } else {
7162    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
7163      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
7164        unlazy(swiper, i);
7165      }
7166    }
7167  }
7168};
7169
7170function getActiveIndexByTranslate(swiper) {
7171  const {
7172    slidesGrid,
7173    params
7174  } = swiper;
7175  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7176  let activeIndex;
7177  for (let i = 0; i < slidesGrid.length; i += 1) {
7178    if (typeof slidesGrid[i + 1] !== 'undefined') {
7179      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
7180        activeIndex = i;
7181      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
7182        activeIndex = i + 1;
7183      }
7184    } else if (translate >= slidesGrid[i]) {
7185      activeIndex = i;
7186    }
7187  }
7188  // Normalize slideIndex
7189  if (params.normalizeSlideIndex) {
7190    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;
7191  }
7192  return activeIndex;
7193}
7194function updateActiveIndex(newActiveIndex) {
7195  const swiper = this;
7196  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7197  const {
7198    snapGrid,
7199    params,
7200    activeIndex: previousIndex,
7201    realIndex: previousRealIndex,
7202    snapIndex: previousSnapIndex
7203  } = swiper;
7204  let activeIndex = newActiveIndex;
7205  let snapIndex;
7206  const getVirtualRealIndex = aIndex => {
7207    let realIndex = aIndex - swiper.virtual.slidesBefore;
7208    if (realIndex < 0) {
7209      realIndex = swiper.virtual.slides.length + realIndex;
7210    }
7211    if (realIndex >= swiper.virtual.slides.length) {
7212      realIndex -= swiper.virtual.slides.length;
7213    }
7214    return realIndex;
7215  };
7216  if (typeof activeIndex === 'undefined') {
7217    activeIndex = getActiveIndexByTranslate(swiper);
7218  }
7219  if (snapGrid.indexOf(translate) >= 0) {
7220    snapIndex = snapGrid.indexOf(translate);
7221  } else {
7222    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
7223    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
7224  }
7225  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
7226  if (activeIndex === previousIndex && !swiper.params.loop) {
7227    if (snapIndex !== previousSnapIndex) {
7228      swiper.snapIndex = snapIndex;
7229      swiper.emit('snapIndexChange');
7230    }
7231    return;
7232  }
7233  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
7234    swiper.realIndex = getVirtualRealIndex(activeIndex);
7235    return;
7236  }
7237  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
7238
7239  // Get real index
7240  let realIndex;
7241  if (swiper.virtual && params.virtual.enabled && params.loop) {
7242    realIndex = getVirtualRealIndex(activeIndex);
7243  } else if (gridEnabled) {
7244    const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);
7245    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
7246    if (Number.isNaN(activeSlideIndex)) {
7247      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);
7248    }
7249    realIndex = Math.floor(activeSlideIndex / params.grid.rows);
7250  } else if (swiper.slides[activeIndex]) {
7251    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');
7252    if (slideIndex) {
7253      realIndex = parseInt(slideIndex, 10);
7254    } else {
7255      realIndex = activeIndex;
7256    }
7257  } else {
7258    realIndex = activeIndex;
7259  }
7260  Object.assign(swiper, {
7261    previousSnapIndex,
7262    snapIndex,
7263    previousRealIndex,
7264    realIndex,
7265    previousIndex,
7266    activeIndex
7267  });
7268  if (swiper.initialized) {
7269    preload(swiper);
7270  }
7271  swiper.emit('activeIndexChange');
7272  swiper.emit('snapIndexChange');
7273  if (swiper.initialized || swiper.params.runCallbacksOnInit) {
7274    if (previousRealIndex !== realIndex) {
7275      swiper.emit('realIndexChange');
7276    }
7277    swiper.emit('slideChange');
7278  }
7279}
7280
7281function updateClickedSlide(el, path) {
7282  const swiper = this;
7283  const params = swiper.params;
7284  let slide = el.closest(`.${params.slideClass}, swiper-slide`);
7285  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {
7286    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {
7287      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {
7288        slide = pathEl;
7289      }
7290    });
7291  }
7292  let slideFound = false;
7293  let slideIndex;
7294  if (slide) {
7295    for (let i = 0; i < swiper.slides.length; i += 1) {
7296      if (swiper.slides[i] === slide) {
7297        slideFound = true;
7298        slideIndex = i;
7299        break;
7300      }
7301    }
7302  }
7303  if (slide && slideFound) {
7304    swiper.clickedSlide = slide;
7305    if (swiper.virtual && swiper.params.virtual.enabled) {
7306      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);
7307    } else {
7308      swiper.clickedIndex = slideIndex;
7309    }
7310  } else {
7311    swiper.clickedSlide = undefined;
7312    swiper.clickedIndex = undefined;
7313    return;
7314  }
7315  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
7316    swiper.slideToClickedSlide();
7317  }
7318}
7319
7320var update = {
7321  updateSize,
7322  updateSlides,
7323  updateAutoHeight,
7324  updateSlidesOffset,
7325  updateSlidesProgress,
7326  updateProgress,
7327  updateSlidesClasses,
7328  updateActiveIndex,
7329  updateClickedSlide
7330};
7331
7332function getSwiperTranslate(axis) {
7333  if (axis === void 0) {
7334    axis = this.isHorizontal() ? 'x' : 'y';
7335  }
7336  const swiper = this;
7337  const {
7338    params,
7339    rtlTranslate: rtl,
7340    translate,
7341    wrapperEl
7342  } = swiper;
7343  if (params.virtualTranslate) {
7344    return rtl ? -translate : translate;
7345  }
7346  if (params.cssMode) {
7347    return translate;
7348  }
7349  let currentTranslate = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(wrapperEl, axis);
7350  currentTranslate += swiper.cssOverflowAdjustment();
7351  if (rtl) currentTranslate = -currentTranslate;
7352  return currentTranslate || 0;
7353}
7354
7355function setTranslate(translate, byController) {
7356  const swiper = this;
7357  const {
7358    rtlTranslate: rtl,
7359    params,
7360    wrapperEl,
7361    progress
7362  } = swiper;
7363  let x = 0;
7364  let y = 0;
7365  const z = 0;
7366  if (swiper.isHorizontal()) {
7367    x = rtl ? -translate : translate;
7368  } else {
7369    y = translate;
7370  }
7371  if (params.roundLengths) {
7372    x = Math.floor(x);
7373    y = Math.floor(y);
7374  }
7375  swiper.previousTranslate = swiper.translate;
7376  swiper.translate = swiper.isHorizontal() ? x : y;
7377  if (params.cssMode) {
7378    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
7379  } else if (!params.virtualTranslate) {
7380    if (swiper.isHorizontal()) {
7381      x -= swiper.cssOverflowAdjustment();
7382    } else {
7383      y -= swiper.cssOverflowAdjustment();
7384    }
7385    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;
7386  }
7387
7388  // Check if we need to update progress
7389  let newProgress;
7390  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
7391  if (translatesDiff === 0) {
7392    newProgress = 0;
7393  } else {
7394    newProgress = (translate - swiper.minTranslate()) / translatesDiff;
7395  }
7396  if (newProgress !== progress) {
7397    swiper.updateProgress(translate);
7398  }
7399  swiper.emit('setTranslate', swiper.translate, byController);
7400}
7401
7402function minTranslate() {
7403  return -this.snapGrid[0];
7404}
7405
7406function maxTranslate() {
7407  return -this.snapGrid[this.snapGrid.length - 1];
7408}
7409
7410function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
7411  if (translate === void 0) {
7412    translate = 0;
7413  }
7414  if (speed === void 0) {
7415    speed = this.params.speed;
7416  }
7417  if (runCallbacks === void 0) {
7418    runCallbacks = true;
7419  }
7420  if (translateBounds === void 0) {
7421    translateBounds = true;
7422  }
7423  const swiper = this;
7424  const {
7425    params,
7426    wrapperEl
7427  } = swiper;
7428  if (swiper.animating && params.preventInteractionOnTransition) {
7429    return false;
7430  }
7431  const minTranslate = swiper.minTranslate();
7432  const maxTranslate = swiper.maxTranslate();
7433  let newTranslate;
7434  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;
7435
7436  // Update progress
7437  swiper.updateProgress(newTranslate);
7438  if (params.cssMode) {
7439    const isH = swiper.isHorizontal();
7440    if (speed === 0) {
7441      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
7442    } else {
7443      if (!swiper.support.smoothScroll) {
7444        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)({
7445          swiper,
7446          targetPosition: -newTranslate,
7447          side: isH ? 'left' : 'top'
7448        });
7449        return true;
7450      }
7451      wrapperEl.scrollTo({
7452        [isH ? 'left' : 'top']: -newTranslate,
7453        behavior: 'smooth'
7454      });
7455    }
7456    return true;
7457  }
7458  if (speed === 0) {
7459    swiper.setTransition(0);
7460    swiper.setTranslate(newTranslate);
7461    if (runCallbacks) {
7462      swiper.emit('beforeTransitionStart', speed, internal);
7463      swiper.emit('transitionEnd');
7464    }
7465  } else {
7466    swiper.setTransition(speed);
7467    swiper.setTranslate(newTranslate);
7468    if (runCallbacks) {
7469      swiper.emit('beforeTransitionStart', speed, internal);
7470      swiper.emit('transitionStart');
7471    }
7472    if (!swiper.animating) {
7473      swiper.animating = true;
7474      if (!swiper.onTranslateToWrapperTransitionEnd) {
7475        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
7476          if (!swiper || swiper.destroyed) return;
7477          if (e.target !== this) return;
7478          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
7479          swiper.onTranslateToWrapperTransitionEnd = null;
7480          delete swiper.onTranslateToWrapperTransitionEnd;
7481          swiper.animating = false;
7482          if (runCallbacks) {
7483            swiper.emit('transitionEnd');
7484          }
7485        };
7486      }
7487      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
7488    }
7489  }
7490  return true;
7491}
7492
7493var translate = {
7494  getTranslate: getSwiperTranslate,
7495  setTranslate,
7496  minTranslate,
7497  maxTranslate,
7498  translateTo
7499};
7500
7501function setTransition(duration, byController) {
7502  const swiper = this;
7503  if (!swiper.params.cssMode) {
7504    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;
7505    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';
7506  }
7507  swiper.emit('setTransition', duration, byController);
7508}
7509
7510function transitionEmit(_ref) {
7511  let {
7512    swiper,
7513    runCallbacks,
7514    direction,
7515    step
7516  } = _ref;
7517  const {
7518    activeIndex,
7519    previousIndex
7520  } = swiper;
7521  let dir = direction;
7522  if (!dir) {
7523    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';
7524  }
7525  swiper.emit(`transition${step}`);
7526  if (runCallbacks && activeIndex !== previousIndex) {
7527    if (dir === 'reset') {
7528      swiper.emit(`slideResetTransition${step}`);
7529      return;
7530    }
7531    swiper.emit(`slideChangeTransition${step}`);
7532    if (dir === 'next') {
7533      swiper.emit(`slideNextTransition${step}`);
7534    } else {
7535      swiper.emit(`slidePrevTransition${step}`);
7536    }
7537  }
7538}
7539
7540function transitionStart(runCallbacks, direction) {
7541  if (runCallbacks === void 0) {
7542    runCallbacks = true;
7543  }
7544  const swiper = this;
7545  const {
7546    params
7547  } = swiper;
7548  if (params.cssMode) return;
7549  if (params.autoHeight) {
7550    swiper.updateAutoHeight();
7551  }
7552  transitionEmit({
7553    swiper,
7554    runCallbacks,
7555    direction,
7556    step: 'Start'
7557  });
7558}
7559
7560function transitionEnd(runCallbacks, direction) {
7561  if (runCallbacks === void 0) {
7562    runCallbacks = true;
7563  }
7564  const swiper = this;
7565  const {
7566    params
7567  } = swiper;
7568  swiper.animating = false;
7569  if (params.cssMode) return;
7570  swiper.setTransition(0);
7571  transitionEmit({
7572    swiper,
7573    runCallbacks,
7574    direction,
7575    step: 'End'
7576  });
7577}
7578
7579var transition = {
7580  setTransition,
7581  transitionStart,
7582  transitionEnd
7583};
7584
7585function slideTo(index, speed, runCallbacks, internal, initial) {
7586  if (index === void 0) {
7587    index = 0;
7588  }
7589  if (runCallbacks === void 0) {
7590    runCallbacks = true;
7591  }
7592  if (typeof index === 'string') {
7593    index = parseInt(index, 10);
7594  }
7595  const swiper = this;
7596  let slideIndex = index;
7597  if (slideIndex < 0) slideIndex = 0;
7598  const {
7599    params,
7600    snapGrid,
7601    slidesGrid,
7602    previousIndex,
7603    activeIndex,
7604    rtlTranslate: rtl,
7605    wrapperEl,
7606    enabled
7607  } = swiper;
7608  if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {
7609    return false;
7610  }
7611  if (typeof speed === 'undefined') {
7612    speed = swiper.params.speed;
7613  }
7614  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
7615  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
7616  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
7617  const translate = -snapGrid[snapIndex];
7618  // Normalize slideIndex
7619  if (params.normalizeSlideIndex) {
7620    for (let i = 0; i < slidesGrid.length; i += 1) {
7621      const normalizedTranslate = -Math.floor(translate * 100);
7622      const normalizedGrid = Math.floor(slidesGrid[i] * 100);
7623      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);
7624      if (typeof slidesGrid[i + 1] !== 'undefined') {
7625        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {
7626          slideIndex = i;
7627        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {
7628          slideIndex = i + 1;
7629        }
7630      } else if (normalizedTranslate >= normalizedGrid) {
7631        slideIndex = i;
7632      }
7633    }
7634  }
7635  // Directions locks
7636  if (swiper.initialized && slideIndex !== activeIndex) {
7637    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {
7638      return false;
7639    }
7640    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
7641      if ((activeIndex || 0) !== slideIndex) {
7642        return false;
7643      }
7644    }
7645  }
7646  if (slideIndex !== (previousIndex || 0) && runCallbacks) {
7647    swiper.emit('beforeSlideChangeStart');
7648  }
7649
7650  // Update progress
7651  swiper.updateProgress(translate);
7652  let direction;
7653  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';
7654
7655  // initial virtual
7656  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
7657  const isInitialVirtual = isVirtual && initial;
7658  // Update Index
7659  if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {
7660    swiper.updateActiveIndex(slideIndex);
7661    // Update Height
7662    if (params.autoHeight) {
7663      swiper.updateAutoHeight();
7664    }
7665    swiper.updateSlidesClasses();
7666    if (params.effect !== 'slide') {
7667      swiper.setTranslate(translate);
7668    }
7669    if (direction !== 'reset') {
7670      swiper.transitionStart(runCallbacks, direction);
7671      swiper.transitionEnd(runCallbacks, direction);
7672    }
7673    return false;
7674  }
7675  if (params.cssMode) {
7676    const isH = swiper.isHorizontal();
7677    const t = rtl ? translate : -translate;
7678    if (speed === 0) {
7679      if (isVirtual) {
7680        swiper.wrapperEl.style.scrollSnapType = 'none';
7681        swiper._immediateVirtual = true;
7682      }
7683      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {
7684        swiper._cssModeVirtualInitialSet = true;
7685        requestAnimationFrame(() => {
7686          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
7687        });
7688      } else {
7689        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
7690      }
7691      if (isVirtual) {
7692        requestAnimationFrame(() => {
7693          swiper.wrapperEl.style.scrollSnapType = '';
7694          swiper._immediateVirtual = false;
7695        });
7696      }
7697    } else {
7698      if (!swiper.support.smoothScroll) {
7699        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)({
7700          swiper,
7701          targetPosition: t,
7702          side: isH ? 'left' : 'top'
7703        });
7704        return true;
7705      }
7706      wrapperEl.scrollTo({
7707        [isH ? 'left' : 'top']: t,
7708        behavior: 'smooth'
7709      });
7710    }
7711    return true;
7712  }
7713  const browser = getBrowser();
7714  const isSafari = browser.isSafari;
7715  if (isVirtual && !initial && isSafari && swiper.isElement) {
7716    swiper.virtual.update(false, false, slideIndex);
7717  }
7718  swiper.setTransition(speed);
7719  swiper.setTranslate(translate);
7720  swiper.updateActiveIndex(slideIndex);
7721  swiper.updateSlidesClasses();
7722  swiper.emit('beforeTransitionStart', speed, internal);
7723  swiper.transitionStart(runCallbacks, direction);
7724  if (speed === 0) {
7725    swiper.transitionEnd(runCallbacks, direction);
7726  } else if (!swiper.animating) {
7727    swiper.animating = true;
7728    if (!swiper.onSlideToWrapperTransitionEnd) {
7729      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
7730        if (!swiper || swiper.destroyed) return;
7731        if (e.target !== this) return;
7732        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
7733        swiper.onSlideToWrapperTransitionEnd = null;
7734        delete swiper.onSlideToWrapperTransitionEnd;
7735        swiper.transitionEnd(runCallbacks, direction);
7736      };
7737    }
7738    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
7739  }
7740  return true;
7741}
7742
7743function slideToLoop(index, speed, runCallbacks, internal) {
7744  if (index === void 0) {
7745    index = 0;
7746  }
7747  if (runCallbacks === void 0) {
7748    runCallbacks = true;
7749  }
7750  if (typeof index === 'string') {
7751    const indexAsNumber = parseInt(index, 10);
7752    index = indexAsNumber;
7753  }
7754  const swiper = this;
7755  if (swiper.destroyed) return;
7756  if (typeof speed === 'undefined') {
7757    speed = swiper.params.speed;
7758  }
7759  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
7760  let newIndex = index;
7761  if (swiper.params.loop) {
7762    if (swiper.virtual && swiper.params.virtual.enabled) {
7763      // eslint-disable-next-line
7764      newIndex = newIndex + swiper.virtual.slidesBefore;
7765    } else {
7766      let targetSlideIndex;
7767      if (gridEnabled) {
7768        const slideIndex = newIndex * swiper.params.grid.rows;
7769        targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;
7770      } else {
7771        targetSlideIndex = swiper.getSlideIndexByData(newIndex);
7772      }
7773      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;
7774      const {
7775        centeredSlides
7776      } = swiper.params;
7777      let slidesPerView = swiper.params.slidesPerView;
7778      if (slidesPerView === 'auto') {
7779        slidesPerView = swiper.slidesPerViewDynamic();
7780      } else {
7781        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));
7782        if (centeredSlides && slidesPerView % 2 === 0) {
7783          slidesPerView = slidesPerView + 1;
7784        }
7785      }
7786      let needLoopFix = cols - targetSlideIndex < slidesPerView;
7787      if (centeredSlides) {
7788        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);
7789      }
7790      if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {
7791        needLoopFix = false;
7792      }
7793      if (needLoopFix) {
7794        const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';
7795        swiper.loopFix({
7796          direction,
7797          slideTo: true,
7798          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,
7799          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined
7800        });
7801      }
7802      if (gridEnabled) {
7803        const slideIndex = newIndex * swiper.params.grid.rows;
7804        newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;
7805      } else {
7806        newIndex = swiper.getSlideIndexByData(newIndex);
7807      }
7808    }
7809  }
7810  requestAnimationFrame(() => {
7811    swiper.slideTo(newIndex, speed, runCallbacks, internal);
7812  });
7813  return swiper;
7814}
7815
7816/* eslint no-unused-vars: "off" */
7817function slideNext(speed, runCallbacks, internal) {
7818  if (runCallbacks === void 0) {
7819    runCallbacks = true;
7820  }
7821  const swiper = this;
7822  const {
7823    enabled,
7824    params,
7825    animating
7826  } = swiper;
7827  if (!enabled || swiper.destroyed) return swiper;
7828  if (typeof speed === 'undefined') {
7829    speed = swiper.params.speed;
7830  }
7831  let perGroup = params.slidesPerGroup;
7832  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
7833    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
7834  }
7835  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
7836  const isVirtual = swiper.virtual && params.virtual.enabled;
7837  if (params.loop) {
7838    if (animating && !isVirtual && params.loopPreventsSliding) return false;
7839    swiper.loopFix({
7840      direction: 'next'
7841    });
7842    // eslint-disable-next-line
7843    swiper._clientLeft = swiper.wrapperEl.clientLeft;
7844    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {
7845      requestAnimationFrame(() => {
7846        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
7847      });
7848      return true;
7849    }
7850  }
7851  if (params.rewind && swiper.isEnd) {
7852    return swiper.slideTo(0, speed, runCallbacks, internal);
7853  }
7854  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
7855}
7856
7857/* eslint no-unused-vars: "off" */
7858function slidePrev(speed, runCallbacks, internal) {
7859  if (runCallbacks === void 0) {
7860    runCallbacks = true;
7861  }
7862  const swiper = this;
7863  const {
7864    params,
7865    snapGrid,
7866    slidesGrid,
7867    rtlTranslate,
7868    enabled,
7869    animating
7870  } = swiper;
7871  if (!enabled || swiper.destroyed) return swiper;
7872  if (typeof speed === 'undefined') {
7873    speed = swiper.params.speed;
7874  }
7875  const isVirtual = swiper.virtual && params.virtual.enabled;
7876  if (params.loop) {
7877    if (animating && !isVirtual && params.loopPreventsSliding) return false;
7878    swiper.loopFix({
7879      direction: 'prev'
7880    });
7881    // eslint-disable-next-line
7882    swiper._clientLeft = swiper.wrapperEl.clientLeft;
7883  }
7884  const translate = rtlTranslate ? swiper.translate : -swiper.translate;
7885  function normalize(val) {
7886    if (val < 0) return -Math.floor(Math.abs(val));
7887    return Math.floor(val);
7888  }
7889  const normalizedTranslate = normalize(translate);
7890  const normalizedSnapGrid = snapGrid.map(val => normalize(val));
7891  const isFreeMode = params.freeMode && params.freeMode.enabled;
7892  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
7893  if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {
7894    let prevSnapIndex;
7895    snapGrid.forEach((snap, snapIndex) => {
7896      if (normalizedTranslate >= snap) {
7897        // prevSnap = snap;
7898        prevSnapIndex = snapIndex;
7899      }
7900    });
7901    if (typeof prevSnapIndex !== 'undefined') {
7902      prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];
7903    }
7904  }
7905  let prevIndex = 0;
7906  if (typeof prevSnap !== 'undefined') {
7907    prevIndex = slidesGrid.indexOf(prevSnap);
7908    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
7909    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
7910      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
7911      prevIndex = Math.max(prevIndex, 0);
7912    }
7913  }
7914  if (params.rewind && swiper.isBeginning) {
7915    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
7916    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
7917  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {
7918    requestAnimationFrame(() => {
7919      swiper.slideTo(prevIndex, speed, runCallbacks, internal);
7920    });
7921    return true;
7922  }
7923  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
7924}
7925
7926/* eslint no-unused-vars: "off" */
7927function slideReset(speed, runCallbacks, internal) {
7928  if (runCallbacks === void 0) {
7929    runCallbacks = true;
7930  }
7931  const swiper = this;
7932  if (swiper.destroyed) return;
7933  if (typeof speed === 'undefined') {
7934    speed = swiper.params.speed;
7935  }
7936  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
7937}
7938
7939/* eslint no-unused-vars: "off" */
7940function slideToClosest(speed, runCallbacks, internal, threshold) {
7941  if (runCallbacks === void 0) {
7942    runCallbacks = true;
7943  }
7944  if (threshold === void 0) {
7945    threshold = 0.5;
7946  }
7947  const swiper = this;
7948  if (swiper.destroyed) return;
7949  if (typeof speed === 'undefined') {
7950    speed = swiper.params.speed;
7951  }
7952  let index = swiper.activeIndex;
7953  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
7954  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
7955  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7956  if (translate >= swiper.snapGrid[snapIndex]) {
7957    // The current translate is on or after the current snap index, so the choice
7958    // is between the current index and the one after it.
7959    const currentSnap = swiper.snapGrid[snapIndex];
7960    const nextSnap = swiper.snapGrid[snapIndex + 1];
7961    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
7962      index += swiper.params.slidesPerGroup;
7963    }
7964  } else {
7965    // The current translate is before the current snap index, so the choice
7966    // is between the current index and the one before it.
7967    const prevSnap = swiper.snapGrid[snapIndex - 1];
7968    const currentSnap = swiper.snapGrid[snapIndex];
7969    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
7970      index -= swiper.params.slidesPerGroup;
7971    }
7972  }
7973  index = Math.max(index, 0);
7974  index = Math.min(index, swiper.slidesGrid.length - 1);
7975  return swiper.slideTo(index, speed, runCallbacks, internal);
7976}
7977
7978function slideToClickedSlide() {
7979  const swiper = this;
7980  if (swiper.destroyed) return;
7981  const {
7982    params,
7983    slidesEl
7984  } = swiper;
7985  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
7986  let slideToIndex = swiper.clickedIndex;
7987  let realIndex;
7988  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;
7989  if (params.loop) {
7990    if (swiper.animating) return;
7991    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
7992    if (params.centeredSlides) {
7993      if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {
7994        swiper.loopFix();
7995        slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
7996        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
7997          swiper.slideTo(slideToIndex);
7998        });
7999      } else {
8000        swiper.slideTo(slideToIndex);
8001      }
8002    } else if (slideToIndex > swiper.slides.length - slidesPerView) {
8003      swiper.loopFix();
8004      slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
8005      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
8006        swiper.slideTo(slideToIndex);
8007      });
8008    } else {
8009      swiper.slideTo(slideToIndex);
8010    }
8011  } else {
8012    swiper.slideTo(slideToIndex);
8013  }
8014}
8015
8016var slide = {
8017  slideTo,
8018  slideToLoop,
8019  slideNext,
8020  slidePrev,
8021  slideReset,
8022  slideToClosest,
8023  slideToClickedSlide
8024};
8025
8026function loopCreate(slideRealIndex, initial) {
8027  const swiper = this;
8028  const {
8029    params,
8030    slidesEl
8031  } = swiper;
8032  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
8033  const initSlides = () => {
8034    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
8035    slides.forEach((el, index) => {
8036      el.setAttribute('data-swiper-slide-index', index);
8037    });
8038  };
8039  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8040  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);
8041  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;
8042  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;
8043  const addBlankSlides = amountOfSlides => {
8044    for (let i = 0; i < amountOfSlides; i += 1) {
8045      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]);
8046      swiper.slidesEl.append(slideEl);
8047    }
8048  };
8049  if (shouldFillGroup) {
8050    if (params.loopAddBlankSlides) {
8051      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;
8052      addBlankSlides(slidesToAdd);
8053      swiper.recalcSlides();
8054      swiper.updateSlides();
8055    } else {
8056      (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)');
8057    }
8058    initSlides();
8059  } else if (shouldFillGrid) {
8060    if (params.loopAddBlankSlides) {
8061      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;
8062      addBlankSlides(slidesToAdd);
8063      swiper.recalcSlides();
8064      swiper.updateSlides();
8065    } else {
8066      (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)');
8067    }
8068    initSlides();
8069  } else {
8070    initSlides();
8071  }
8072  swiper.loopFix({
8073    slideRealIndex,
8074    direction: params.centeredSlides ? undefined : 'next',
8075    initial
8076  });
8077}
8078
8079function loopFix(_temp) {
8080  let {
8081    slideRealIndex,
8082    slideTo = true,
8083    direction,
8084    setTranslate,
8085    activeSlideIndex,
8086    initial,
8087    byController,
8088    byMousewheel
8089  } = _temp === void 0 ? {} : _temp;
8090  const swiper = this;
8091  if (!swiper.params.loop) return;
8092  swiper.emit('beforeLoopFix');
8093  const {
8094    slides,
8095    allowSlidePrev,
8096    allowSlideNext,
8097    slidesEl,
8098    params
8099  } = swiper;
8100  const {
8101    centeredSlides,
8102    initialSlide
8103  } = params;
8104  swiper.allowSlidePrev = true;
8105  swiper.allowSlideNext = true;
8106  if (swiper.virtual && params.virtual.enabled) {
8107    if (slideTo) {
8108      if (!params.centeredSlides && swiper.snapIndex === 0) {
8109        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);
8110      } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {
8111        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);
8112      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {
8113        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);
8114      }
8115    }
8116    swiper.allowSlidePrev = allowSlidePrev;
8117    swiper.allowSlideNext = allowSlideNext;
8118    swiper.emit('loopFix');
8119    return;
8120  }
8121  let slidesPerView = params.slidesPerView;
8122  if (slidesPerView === 'auto') {
8123    slidesPerView = swiper.slidesPerViewDynamic();
8124  } else {
8125    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));
8126    if (centeredSlides && slidesPerView % 2 === 0) {
8127      slidesPerView = slidesPerView + 1;
8128    }
8129  }
8130  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;
8131  let loopedSlides = slidesPerGroup;
8132  if (loopedSlides % slidesPerGroup !== 0) {
8133    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;
8134  }
8135  loopedSlides += params.loopAdditionalSlides;
8136  swiper.loopedSlides = loopedSlides;
8137  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8138  if (slides.length < slidesPerView + loopedSlides || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {
8139    (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 or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');
8140  } else if (gridEnabled && params.grid.fill === 'row') {
8141    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');
8142  }
8143  const prependSlidesIndexes = [];
8144  const appendSlidesIndexes = [];
8145  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;
8146  const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !centeredSlides;
8147  let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;
8148  if (typeof activeSlideIndex === 'undefined') {
8149    activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));
8150  } else {
8151    activeIndex = activeSlideIndex;
8152  }
8153  const isNext = direction === 'next' || !direction;
8154  const isPrev = direction === 'prev' || !direction;
8155  let slidesPrepended = 0;
8156  let slidesAppended = 0;
8157  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;
8158  const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);
8159  // prepend last slides before start
8160  if (activeColIndexWithShift < loopedSlides) {
8161    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);
8162    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
8163      const index = i - Math.floor(i / cols) * cols;
8164      if (gridEnabled) {
8165        const colIndexToPrepend = cols - index - 1;
8166        for (let i = slides.length - 1; i >= 0; i -= 1) {
8167          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);
8168        }
8169        // slides.forEach((slide, slideIndex) => {
8170        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);
8171        // });
8172      } else {
8173        prependSlidesIndexes.push(cols - index - 1);
8174      }
8175    }
8176  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {
8177    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);
8178    if (isInitialOverflow) {
8179      slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);
8180    }
8181    for (let i = 0; i < slidesAppended; i += 1) {
8182      const index = i - Math.floor(i / cols) * cols;
8183      if (gridEnabled) {
8184        slides.forEach((slide, slideIndex) => {
8185          if (slide.column === index) appendSlidesIndexes.push(slideIndex);
8186        });
8187      } else {
8188        appendSlidesIndexes.push(index);
8189      }
8190    }
8191  }
8192  swiper.__preventObserver__ = true;
8193  requestAnimationFrame(() => {
8194    swiper.__preventObserver__ = false;
8195  });
8196  if (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {
8197    if (appendSlidesIndexes.includes(activeSlideIndex)) {
8198      appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);
8199    }
8200    if (prependSlidesIndexes.includes(activeSlideIndex)) {
8201      prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);
8202    }
8203  }
8204  if (isPrev) {
8205    prependSlidesIndexes.forEach(index => {
8206      slides[index].swiperLoopMoveDOM = true;
8207      slidesEl.prepend(slides[index]);
8208      slides[index].swiperLoopMoveDOM = false;
8209    });
8210  }
8211  if (isNext) {
8212    appendSlidesIndexes.forEach(index => {
8213      slides[index].swiperLoopMoveDOM = true;
8214      slidesEl.append(slides[index]);
8215      slides[index].swiperLoopMoveDOM = false;
8216    });
8217  }
8218  swiper.recalcSlides();
8219  if (params.slidesPerView === 'auto') {
8220    swiper.updateSlides();
8221  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {
8222    swiper.slides.forEach((slide, slideIndex) => {
8223      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);
8224    });
8225  }
8226  if (params.watchSlidesProgress) {
8227    swiper.updateSlidesOffset();
8228  }
8229  if (slideTo) {
8230    if (prependSlidesIndexes.length > 0 && isPrev) {
8231      if (typeof slideRealIndex === 'undefined') {
8232        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
8233        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];
8234        const diff = newSlideTranslate - currentSlideTranslate;
8235        if (byMousewheel) {
8236          swiper.setTranslate(swiper.translate - diff);
8237        } else {
8238          swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);
8239          if (setTranslate) {
8240            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
8241            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
8242          }
8243        }
8244      } else {
8245        if (setTranslate) {
8246          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;
8247          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);
8248          swiper.touchEventsData.currentTranslate = swiper.translate;
8249        }
8250      }
8251    } else if (appendSlidesIndexes.length > 0 && isNext) {
8252      if (typeof slideRealIndex === 'undefined') {
8253        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
8254        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];
8255        const diff = newSlideTranslate - currentSlideTranslate;
8256        if (byMousewheel) {
8257          swiper.setTranslate(swiper.translate - diff);
8258        } else {
8259          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);
8260          if (setTranslate) {
8261            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
8262            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
8263          }
8264        }
8265      } else {
8266        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;
8267        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);
8268      }
8269    }
8270  }
8271  swiper.allowSlidePrev = allowSlidePrev;
8272  swiper.allowSlideNext = allowSlideNext;
8273  if (swiper.controller && swiper.controller.control && !byController) {
8274    const loopParams = {
8275      slideRealIndex,
8276      direction,
8277      setTranslate,
8278      activeSlideIndex,
8279      byController: true
8280    };
8281    if (Array.isArray(swiper.controller.control)) {
8282      swiper.controller.control.forEach(c => {
8283        if (!c.destroyed && c.params.loop) c.loopFix({
8284          ...loopParams,
8285          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false
8286        });
8287      });
8288    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {
8289      swiper.controller.control.loopFix({
8290        ...loopParams,
8291        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false
8292      });
8293    }
8294  }
8295  swiper.emit('loopFix');
8296}
8297
8298function loopDestroy() {
8299  const swiper = this;
8300  const {
8301    params,
8302    slidesEl
8303  } = swiper;
8304  if (!params.loop || !slidesEl || swiper.virtual && swiper.params.virtual.enabled) return;
8305  swiper.recalcSlides();
8306  const newSlidesOrder = [];
8307  swiper.slides.forEach(slideEl => {
8308    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;
8309    newSlidesOrder[index] = slideEl;
8310  });
8311  swiper.slides.forEach(slideEl => {
8312    slideEl.removeAttribute('data-swiper-slide-index');
8313  });
8314  newSlidesOrder.forEach(slideEl => {
8315    slidesEl.append(slideEl);
8316  });
8317  swiper.recalcSlides();
8318  swiper.slideTo(swiper.realIndex, 0);
8319}
8320
8321var loop = {
8322  loopCreate,
8323  loopFix,
8324  loopDestroy
8325};
8326
8327function setGrabCursor(moving) {
8328  const swiper = this;
8329  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
8330  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;
8331  if (swiper.isElement) {
8332    swiper.__preventObserver__ = true;
8333  }
8334  el.style.cursor = 'move';
8335  el.style.cursor = moving ? 'grabbing' : 'grab';
8336  if (swiper.isElement) {
8337    requestAnimationFrame(() => {
8338      swiper.__preventObserver__ = false;
8339    });
8340  }
8341}
8342
8343function unsetGrabCursor() {
8344  const swiper = this;
8345  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
8346    return;
8347  }
8348  if (swiper.isElement) {
8349    swiper.__preventObserver__ = true;
8350  }
8351  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';
8352  if (swiper.isElement) {
8353    requestAnimationFrame(() => {
8354      swiper.__preventObserver__ = false;
8355    });
8356  }
8357}
8358
8359var grabCursor = {
8360  setGrabCursor,
8361  unsetGrabCursor
8362};
8363
8364// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
8365function closestElement(selector, base) {
8366  if (base === void 0) {
8367    base = this;
8368  }
8369  function __closestFrom(el) {
8370    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;
8371    if (el.assignedSlot) el = el.assignedSlot;
8372    const found = el.closest(selector);
8373    if (!found && !el.getRootNode) {
8374      return null;
8375    }
8376    return found || __closestFrom(el.getRootNode().host);
8377  }
8378  return __closestFrom(base);
8379}
8380function preventEdgeSwipe(swiper, event, startX) {
8381  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
8382  const {
8383    params
8384  } = swiper;
8385  const edgeSwipeDetection = params.edgeSwipeDetection;
8386  const edgeSwipeThreshold = params.edgeSwipeThreshold;
8387  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {
8388    if (edgeSwipeDetection === 'prevent') {
8389      event.preventDefault();
8390      return true;
8391    }
8392    return false;
8393  }
8394  return true;
8395}
8396function onTouchStart(event) {
8397  const swiper = this;
8398  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
8399  let e = event;
8400  if (e.originalEvent) e = e.originalEvent;
8401  const data = swiper.touchEventsData;
8402  if (e.type === 'pointerdown') {
8403    if (data.pointerId !== null && data.pointerId !== e.pointerId) {
8404      return;
8405    }
8406    data.pointerId = e.pointerId;
8407  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {
8408    data.touchId = e.targetTouches[0].identifier;
8409  }
8410  if (e.type === 'touchstart') {
8411    // don't proceed touch event
8412    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);
8413    return;
8414  }
8415  const {
8416    params,
8417    touches,
8418    enabled
8419  } = swiper;
8420  if (!enabled) return;
8421  if (!params.simulateTouch && e.pointerType === 'mouse') return;
8422  if (swiper.animating && params.preventInteractionOnTransition) {
8423    return;
8424  }
8425  if (!swiper.animating && params.cssMode && params.loop) {
8426    swiper.loopFix();
8427  }
8428  let targetEl = e.target;
8429  if (params.touchEventsTarget === 'wrapper') {
8430    if (!(0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)(targetEl, swiper.wrapperEl)) return;
8431  }
8432  if ('which' in e && e.which === 3) return;
8433  if ('button' in e && e.button > 0) return;
8434  if (data.isTouched && data.isMoved) return;
8435
8436  // change target el for shadow root component
8437  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';
8438  // eslint-disable-next-line
8439  const eventPath = e.composedPath ? e.composedPath() : e.path;
8440  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {
8441    targetEl = eventPath[0];
8442  }
8443  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;
8444  const isTargetShadow = !!(e.target && e.target.shadowRoot);
8445
8446  // use closestElement for shadow root element to get the actual closest for nested shadow root element
8447  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {
8448    swiper.allowClick = true;
8449    return;
8450  }
8451  if (params.swipeHandler) {
8452    if (!targetEl.closest(params.swipeHandler)) return;
8453  }
8454  touches.currentX = e.pageX;
8455  touches.currentY = e.pageY;
8456  const startX = touches.currentX;
8457  const startY = touches.currentY;
8458
8459  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
8460
8461  if (!preventEdgeSwipe(swiper, e, startX)) {
8462    return;
8463  }
8464  Object.assign(data, {
8465    isTouched: true,
8466    isMoved: false,
8467    allowTouchCallbacks: true,
8468    isScrolling: undefined,
8469    startMoving: undefined
8470  });
8471  touches.startX = startX;
8472  touches.startY = startY;
8473  data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
8474  swiper.allowClick = true;
8475  swiper.updateSize();
8476  swiper.swipeDirection = undefined;
8477  if (params.threshold > 0) data.allowThresholdMove = false;
8478  let preventDefault = true;
8479  if (targetEl.matches(data.focusableElements)) {
8480    preventDefault = false;
8481    if (targetEl.nodeName === 'SELECT') {
8482      data.isTouched = false;
8483    }
8484  }
8485  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {
8486    document.activeElement.blur();
8487  }
8488  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
8489  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {
8490    e.preventDefault();
8491  }
8492  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
8493    swiper.freeMode.onTouchStart();
8494  }
8495  swiper.emit('touchStart', e);
8496}
8497
8498function onTouchMove(event) {
8499  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
8500  const swiper = this;
8501  const data = swiper.touchEventsData;
8502  const {
8503    params,
8504    touches,
8505    rtlTranslate: rtl,
8506    enabled
8507  } = swiper;
8508  if (!enabled) return;
8509  if (!params.simulateTouch && event.pointerType === 'mouse') return;
8510  let e = event;
8511  if (e.originalEvent) e = e.originalEvent;
8512  if (e.type === 'pointermove') {
8513    if (data.touchId !== null) return; // return from pointer if we use touch
8514    const id = e.pointerId;
8515    if (id !== data.pointerId) return;
8516  }
8517  let targetTouch;
8518  if (e.type === 'touchmove') {
8519    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);
8520    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
8521  } else {
8522    targetTouch = e;
8523  }
8524  if (!data.isTouched) {
8525    if (data.startMoving && data.isScrolling) {
8526      swiper.emit('touchMoveOpposite', e);
8527    }
8528    return;
8529  }
8530  const pageX = targetTouch.pageX;
8531  const pageY = targetTouch.pageY;
8532  if (e.preventedByNestedSwiper) {
8533    touches.startX = pageX;
8534    touches.startY = pageY;
8535    return;
8536  }
8537  if (!swiper.allowTouchMove) {
8538    if (!e.target.matches(data.focusableElements)) {
8539      swiper.allowClick = false;
8540    }
8541    if (data.isTouched) {
8542      Object.assign(touches, {
8543        startX: pageX,
8544        startY: pageY,
8545        currentX: pageX,
8546        currentY: pageY
8547      });
8548      data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
8549    }
8550    return;
8551  }
8552  if (params.touchReleaseOnEdges && !params.loop) {
8553    if (swiper.isVertical()) {
8554      // Vertical
8555      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {
8556        data.isTouched = false;
8557        data.isMoved = false;
8558        return;
8559      }
8560    } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {
8561      return;
8562    } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {
8563      return;
8564    }
8565  }
8566  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {
8567    document.activeElement.blur();
8568  }
8569  if (document.activeElement) {
8570    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {
8571      data.isMoved = true;
8572      swiper.allowClick = false;
8573      return;
8574    }
8575  }
8576  if (data.allowTouchCallbacks) {
8577    swiper.emit('touchMove', e);
8578  }
8579  touches.previousX = touches.currentX;
8580  touches.previousY = touches.currentY;
8581  touches.currentX = pageX;
8582  touches.currentY = pageY;
8583  const diffX = touches.currentX - touches.startX;
8584  const diffY = touches.currentY - touches.startY;
8585  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
8586  if (typeof data.isScrolling === 'undefined') {
8587    let touchAngle;
8588    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {
8589      data.isScrolling = false;
8590    } else {
8591      // eslint-disable-next-line
8592      if (diffX * diffX + diffY * diffY >= 25) {
8593        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
8594        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
8595      }
8596    }
8597  }
8598  if (data.isScrolling) {
8599    swiper.emit('touchMoveOpposite', e);
8600  }
8601  if (typeof data.startMoving === 'undefined') {
8602    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
8603      data.startMoving = true;
8604    }
8605  }
8606  if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {
8607    data.isTouched = false;
8608    return;
8609  }
8610  if (!data.startMoving) {
8611    return;
8612  }
8613  swiper.allowClick = false;
8614  if (!params.cssMode && e.cancelable) {
8615    e.preventDefault();
8616  }
8617  if (params.touchMoveStopPropagation && !params.nested) {
8618    e.stopPropagation();
8619  }
8620  let diff = swiper.isHorizontal() ? diffX : diffY;
8621  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;
8622  if (params.oneWayMovement) {
8623    diff = Math.abs(diff) * (rtl ? 1 : -1);
8624    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);
8625  }
8626  touches.diff = diff;
8627  diff *= params.touchRatio;
8628  if (rtl) {
8629    diff = -diff;
8630    touchesDiff = -touchesDiff;
8631  }
8632  const prevTouchesDirection = swiper.touchesDirection;
8633  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
8634  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';
8635  const isLoop = swiper.params.loop && !params.cssMode;
8636  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;
8637  if (!data.isMoved) {
8638    if (isLoop && allowLoopFix) {
8639      swiper.loopFix({
8640        direction: swiper.swipeDirection
8641      });
8642    }
8643    data.startTranslate = swiper.getTranslate();
8644    swiper.setTransition(0);
8645    if (swiper.animating) {
8646      const evt = new window.CustomEvent('transitionend', {
8647        bubbles: true,
8648        cancelable: true,
8649        detail: {
8650          bySwiperTouchMove: true
8651        }
8652      });
8653      swiper.wrapperEl.dispatchEvent(evt);
8654    }
8655    data.allowMomentumBounce = false;
8656    // Grab Cursor
8657    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
8658      swiper.setGrabCursor(true);
8659    }
8660    swiper.emit('sliderFirstMove', e);
8661  }
8662  let loopFixed;
8663  new Date().getTime();
8664  if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {
8665    Object.assign(touches, {
8666      startX: pageX,
8667      startY: pageY,
8668      currentX: pageX,
8669      currentY: pageY,
8670      startTranslate: data.currentTranslate
8671    });
8672    data.loopSwapReset = true;
8673    data.startTranslate = data.currentTranslate;
8674    return;
8675  }
8676  swiper.emit('sliderMove', e);
8677  data.isMoved = true;
8678  data.currentTranslate = diff + data.startTranslate;
8679  let disableParentSwiper = true;
8680  let resistanceRatio = params.resistanceRatio;
8681  if (params.touchReleaseOnEdges) {
8682    resistanceRatio = 0;
8683  }
8684  if (diff > 0) {
8685    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())) {
8686      swiper.loopFix({
8687        direction: 'prev',
8688        setTranslate: true,
8689        activeSlideIndex: 0
8690      });
8691    }
8692    if (data.currentTranslate > swiper.minTranslate()) {
8693      disableParentSwiper = false;
8694      if (params.resistance) {
8695        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
8696      }
8697    }
8698  } else if (diff < 0) {
8699    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())) {
8700      swiper.loopFix({
8701        direction: 'next',
8702        setTranslate: true,
8703        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))
8704      });
8705    }
8706    if (data.currentTranslate < swiper.maxTranslate()) {
8707      disableParentSwiper = false;
8708      if (params.resistance) {
8709        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
8710      }
8711    }
8712  }
8713  if (disableParentSwiper) {
8714    e.preventedByNestedSwiper = true;
8715  }
8716
8717  // Directions locks
8718  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
8719    data.currentTranslate = data.startTranslate;
8720  }
8721  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
8722    data.currentTranslate = data.startTranslate;
8723  }
8724  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {
8725    data.currentTranslate = data.startTranslate;
8726  }
8727
8728  // Threshold
8729  if (params.threshold > 0) {
8730    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
8731      if (!data.allowThresholdMove) {
8732        data.allowThresholdMove = true;
8733        touches.startX = touches.currentX;
8734        touches.startY = touches.currentY;
8735        data.currentTranslate = data.startTranslate;
8736        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
8737        return;
8738      }
8739    } else {
8740      data.currentTranslate = data.startTranslate;
8741      return;
8742    }
8743  }
8744  if (!params.followFinger || params.cssMode) return;
8745
8746  // Update active index in free mode
8747  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {
8748    swiper.updateActiveIndex();
8749    swiper.updateSlidesClasses();
8750  }
8751  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {
8752    swiper.freeMode.onTouchMove();
8753  }
8754  // Update progress
8755  swiper.updateProgress(data.currentTranslate);
8756  // Update translate
8757  swiper.setTranslate(data.currentTranslate);
8758}
8759
8760function onTouchEnd(event) {
8761  const swiper = this;
8762  const data = swiper.touchEventsData;
8763  let e = event;
8764  if (e.originalEvent) e = e.originalEvent;
8765  let targetTouch;
8766  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';
8767  if (!isTouchEvent) {
8768    if (data.touchId !== null) return; // return from pointer if we use touch
8769    if (e.pointerId !== data.pointerId) return;
8770    targetTouch = e;
8771  } else {
8772    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);
8773    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
8774  }
8775  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {
8776    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);
8777    if (!proceed) {
8778      return;
8779    }
8780  }
8781  data.pointerId = null;
8782  data.touchId = null;
8783  const {
8784    params,
8785    touches,
8786    rtlTranslate: rtl,
8787    slidesGrid,
8788    enabled
8789  } = swiper;
8790  if (!enabled) return;
8791  if (!params.simulateTouch && e.pointerType === 'mouse') return;
8792  if (data.allowTouchCallbacks) {
8793    swiper.emit('touchEnd', e);
8794  }
8795  data.allowTouchCallbacks = false;
8796  if (!data.isTouched) {
8797    if (data.isMoved && params.grabCursor) {
8798      swiper.setGrabCursor(false);
8799    }
8800    data.isMoved = false;
8801    data.startMoving = false;
8802    return;
8803  }
8804
8805  // Return Grab Cursor
8806  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
8807    swiper.setGrabCursor(false);
8808  }
8809
8810  // Time diff
8811  const touchEndTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
8812  const timeDiff = touchEndTime - data.touchStartTime;
8813
8814  // Tap, doubleTap, Click
8815  if (swiper.allowClick) {
8816    const pathTree = e.path || e.composedPath && e.composedPath();
8817    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);
8818    swiper.emit('tap click', e);
8819    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
8820      swiper.emit('doubleTap doubleClick', e);
8821    }
8822  }
8823  data.lastClickTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
8824  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
8825    if (!swiper.destroyed) swiper.allowClick = true;
8826  });
8827  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {
8828    data.isTouched = false;
8829    data.isMoved = false;
8830    data.startMoving = false;
8831    return;
8832  }
8833  data.isTouched = false;
8834  data.isMoved = false;
8835  data.startMoving = false;
8836  let currentPos;
8837  if (params.followFinger) {
8838    currentPos = rtl ? swiper.translate : -swiper.translate;
8839  } else {
8840    currentPos = -data.currentTranslate;
8841  }
8842  if (params.cssMode) {
8843    return;
8844  }
8845  if (params.freeMode && params.freeMode.enabled) {
8846    swiper.freeMode.onTouchEnd({
8847      currentPos
8848    });
8849    return;
8850  }
8851
8852  // Find current slide
8853  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;
8854  let stopIndex = 0;
8855  let groupSize = swiper.slidesSizesGrid[0];
8856  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {
8857    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
8858    if (typeof slidesGrid[i + increment] !== 'undefined') {
8859      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
8860        stopIndex = i;
8861        groupSize = slidesGrid[i + increment] - slidesGrid[i];
8862      }
8863    } else if (swipeToLast || currentPos >= slidesGrid[i]) {
8864      stopIndex = i;
8865      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
8866    }
8867  }
8868  let rewindFirstIndex = null;
8869  let rewindLastIndex = null;
8870  if (params.rewind) {
8871    if (swiper.isBeginning) {
8872      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
8873    } else if (swiper.isEnd) {
8874      rewindFirstIndex = 0;
8875    }
8876  }
8877  // Find current slide size
8878  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
8879  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
8880  if (timeDiff > params.longSwipesMs) {
8881    // Long touches
8882    if (!params.longSwipes) {
8883      swiper.slideTo(swiper.activeIndex);
8884      return;
8885    }
8886    if (swiper.swipeDirection === 'next') {
8887      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
8888    }
8889    if (swiper.swipeDirection === 'prev') {
8890      if (ratio > 1 - params.longSwipesRatio) {
8891        swiper.slideTo(stopIndex + increment);
8892      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
8893        swiper.slideTo(rewindLastIndex);
8894      } else {
8895        swiper.slideTo(stopIndex);
8896      }
8897    }
8898  } else {
8899    // Short swipes
8900    if (!params.shortSwipes) {
8901      swiper.slideTo(swiper.activeIndex);
8902      return;
8903    }
8904    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
8905    if (!isNavButtonTarget) {
8906      if (swiper.swipeDirection === 'next') {
8907        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
8908      }
8909      if (swiper.swipeDirection === 'prev') {
8910        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
8911      }
8912    } else if (e.target === swiper.navigation.nextEl) {
8913      swiper.slideTo(stopIndex + increment);
8914    } else {
8915      swiper.slideTo(stopIndex);
8916    }
8917  }
8918}
8919
8920function onResize() {
8921  const swiper = this;
8922  const {
8923    params,
8924    el
8925  } = swiper;
8926  if (el && el.offsetWidth === 0) return;
8927
8928  // Breakpoints
8929  if (params.breakpoints) {
8930    swiper.setBreakpoint();
8931  }
8932
8933  // Save locks
8934  const {
8935    allowSlideNext,
8936    allowSlidePrev,
8937    snapGrid
8938  } = swiper;
8939  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
8940
8941  // Disable locks on resize
8942  swiper.allowSlideNext = true;
8943  swiper.allowSlidePrev = true;
8944  swiper.updateSize();
8945  swiper.updateSlides();
8946  swiper.updateSlidesClasses();
8947  const isVirtualLoop = isVirtual && params.loop;
8948  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
8949    swiper.slideTo(swiper.slides.length - 1, 0, false, true);
8950  } else {
8951    if (swiper.params.loop && !isVirtual) {
8952      swiper.slideToLoop(swiper.realIndex, 0, false, true);
8953    } else {
8954      swiper.slideTo(swiper.activeIndex, 0, false, true);
8955    }
8956  }
8957  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
8958    clearTimeout(swiper.autoplay.resizeTimeout);
8959    swiper.autoplay.resizeTimeout = setTimeout(() => {
8960      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
8961        swiper.autoplay.resume();
8962      }
8963    }, 500);
8964  }
8965  // Return locks after resize
8966  swiper.allowSlidePrev = allowSlidePrev;
8967  swiper.allowSlideNext = allowSlideNext;
8968  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
8969    swiper.checkOverflow();
8970  }
8971}
8972
8973function onClick(e) {
8974  const swiper = this;
8975  if (!swiper.enabled) return;
8976  if (!swiper.allowClick) {
8977    if (swiper.params.preventClicks) e.preventDefault();
8978    if (swiper.params.preventClicksPropagation && swiper.animating) {
8979      e.stopPropagation();
8980      e.stopImmediatePropagation();
8981    }
8982  }
8983}
8984
8985function onScroll() {
8986  const swiper = this;
8987  const {
8988    wrapperEl,
8989    rtlTranslate,
8990    enabled
8991  } = swiper;
8992  if (!enabled) return;
8993  swiper.previousTranslate = swiper.translate;
8994  if (swiper.isHorizontal()) {
8995    swiper.translate = -wrapperEl.scrollLeft;
8996  } else {
8997    swiper.translate = -wrapperEl.scrollTop;
8998  }
8999  // eslint-disable-next-line
9000  if (swiper.translate === 0) swiper.translate = 0;
9001  swiper.updateActiveIndex();
9002  swiper.updateSlidesClasses();
9003  let newProgress;
9004  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
9005  if (translatesDiff === 0) {
9006    newProgress = 0;
9007  } else {
9008    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;
9009  }
9010  if (newProgress !== swiper.progress) {
9011    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);
9012  }
9013  swiper.emit('setTranslate', swiper.translate, false);
9014}
9015
9016function onLoad(e) {
9017  const swiper = this;
9018  processLazyPreloader(swiper, e.target);
9019  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
9020    return;
9021  }
9022  swiper.update();
9023}
9024
9025function onDocumentTouchStart() {
9026  const swiper = this;
9027  if (swiper.documentTouchHandlerProceeded) return;
9028  swiper.documentTouchHandlerProceeded = true;
9029  if (swiper.params.touchReleaseOnEdges) {
9030    swiper.el.style.touchAction = 'auto';
9031  }
9032}
9033
9034const events = (swiper, method) => {
9035  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9036  const {
9037    params,
9038    el,
9039    wrapperEl,
9040    device
9041  } = swiper;
9042  const capture = !!params.nested;
9043  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
9044  const swiperMethod = method;
9045  if (!el || typeof el === 'string') return;
9046
9047  // Touch Events
9048  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {
9049    passive: false,
9050    capture
9051  });
9052  el[domMethod]('touchstart', swiper.onTouchStart, {
9053    passive: false
9054  });
9055  el[domMethod]('pointerdown', swiper.onTouchStart, {
9056    passive: false
9057  });
9058  document[domMethod]('touchmove', swiper.onTouchMove, {
9059    passive: false,
9060    capture
9061  });
9062  document[domMethod]('pointermove', swiper.onTouchMove, {
9063    passive: false,
9064    capture
9065  });
9066  document[domMethod]('touchend', swiper.onTouchEnd, {
9067    passive: true
9068  });
9069  document[domMethod]('pointerup', swiper.onTouchEnd, {
9070    passive: true
9071  });
9072  document[domMethod]('pointercancel', swiper.onTouchEnd, {
9073    passive: true
9074  });
9075  document[domMethod]('touchcancel', swiper.onTouchEnd, {
9076    passive: true
9077  });
9078  document[domMethod]('pointerout', swiper.onTouchEnd, {
9079    passive: true
9080  });
9081  document[domMethod]('pointerleave', swiper.onTouchEnd, {
9082    passive: true
9083  });
9084  document[domMethod]('contextmenu', swiper.onTouchEnd, {
9085    passive: true
9086  });
9087
9088  // Prevent Links Clicks
9089  if (params.preventClicks || params.preventClicksPropagation) {
9090    el[domMethod]('click', swiper.onClick, true);
9091  }
9092  if (params.cssMode) {
9093    wrapperEl[domMethod]('scroll', swiper.onScroll);
9094  }
9095
9096  // Resize handler
9097  if (params.updateOnWindowResize) {
9098    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);
9099  } else {
9100    swiper[swiperMethod]('observerUpdate', onResize, true);
9101  }
9102
9103  // Images loader
9104  el[domMethod]('load', swiper.onLoad, {
9105    capture: true
9106  });
9107};
9108function attachEvents() {
9109  const swiper = this;
9110  const {
9111    params
9112  } = swiper;
9113  swiper.onTouchStart = onTouchStart.bind(swiper);
9114  swiper.onTouchMove = onTouchMove.bind(swiper);
9115  swiper.onTouchEnd = onTouchEnd.bind(swiper);
9116  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);
9117  if (params.cssMode) {
9118    swiper.onScroll = onScroll.bind(swiper);
9119  }
9120  swiper.onClick = onClick.bind(swiper);
9121  swiper.onLoad = onLoad.bind(swiper);
9122  events(swiper, 'on');
9123}
9124function detachEvents() {
9125  const swiper = this;
9126  events(swiper, 'off');
9127}
9128var events$1 = {
9129  attachEvents,
9130  detachEvents
9131};
9132
9133const isGridEnabled = (swiper, params) => {
9134  return swiper.grid && params.grid && params.grid.rows > 1;
9135};
9136function setBreakpoint() {
9137  const swiper = this;
9138  const {
9139    realIndex,
9140    initialized,
9141    params,
9142    el
9143  } = swiper;
9144  const breakpoints = params.breakpoints;
9145  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;
9146  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9147
9148  // Get breakpoint for window/container width and update parameters
9149  const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';
9150  const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);
9151  const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);
9152  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
9153  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
9154  const breakpointParams = breakpointOnlyParams || swiper.originalParams;
9155  const wasMultiRow = isGridEnabled(swiper, params);
9156  const isMultiRow = isGridEnabled(swiper, breakpointParams);
9157  const wasGrabCursor = swiper.params.grabCursor;
9158  const isGrabCursor = breakpointParams.grabCursor;
9159  const wasEnabled = params.enabled;
9160  if (wasMultiRow && !isMultiRow) {
9161    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
9162    swiper.emitContainerClasses();
9163  } else if (!wasMultiRow && isMultiRow) {
9164    el.classList.add(`${params.containerModifierClass}grid`);
9165    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {
9166      el.classList.add(`${params.containerModifierClass}grid-column`);
9167    }
9168    swiper.emitContainerClasses();
9169  }
9170  if (wasGrabCursor && !isGrabCursor) {
9171    swiper.unsetGrabCursor();
9172  } else if (!wasGrabCursor && isGrabCursor) {
9173    swiper.setGrabCursor();
9174  }
9175
9176  // Toggle navigation, pagination, scrollbar
9177  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {
9178    if (typeof breakpointParams[prop] === 'undefined') return;
9179    const wasModuleEnabled = params[prop] && params[prop].enabled;
9180    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
9181    if (wasModuleEnabled && !isModuleEnabled) {
9182      swiper[prop].disable();
9183    }
9184    if (!wasModuleEnabled && isModuleEnabled) {
9185      swiper[prop].enable();
9186    }
9187  });
9188  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
9189  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
9190  const wasLoop = params.loop;
9191  if (directionChanged && initialized) {
9192    swiper.changeDirection();
9193  }
9194  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(swiper.params, breakpointParams);
9195  const isEnabled = swiper.params.enabled;
9196  const hasLoop = swiper.params.loop;
9197  Object.assign(swiper, {
9198    allowTouchMove: swiper.params.allowTouchMove,
9199    allowSlideNext: swiper.params.allowSlideNext,
9200    allowSlidePrev: swiper.params.allowSlidePrev
9201  });
9202  if (wasEnabled && !isEnabled) {
9203    swiper.disable();
9204  } else if (!wasEnabled && isEnabled) {
9205    swiper.enable();
9206  }
9207  swiper.currentBreakpoint = breakpoint;
9208  swiper.emit('_beforeBreakpoint', breakpointParams);
9209  if (initialized) {
9210    if (needsReLoop) {
9211      swiper.loopDestroy();
9212      swiper.loopCreate(realIndex);
9213      swiper.updateSlides();
9214    } else if (!wasLoop && hasLoop) {
9215      swiper.loopCreate(realIndex);
9216      swiper.updateSlides();
9217    } else if (wasLoop && !hasLoop) {
9218      swiper.loopDestroy();
9219    }
9220  }
9221  swiper.emit('breakpoint', breakpointParams);
9222}
9223
9224function getBreakpoint(breakpoints, base, containerEl) {
9225  if (base === void 0) {
9226    base = 'window';
9227  }
9228  if (!breakpoints || base === 'container' && !containerEl) return undefined;
9229  let breakpoint = false;
9230  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
9231  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
9232  const points = Object.keys(breakpoints).map(point => {
9233    if (typeof point === 'string' && point.indexOf('@') === 0) {
9234      const minRatio = parseFloat(point.substr(1));
9235      const value = currentHeight * minRatio;
9236      return {
9237        value,
9238        point
9239      };
9240    }
9241    return {
9242      value: point,
9243      point
9244    };
9245  });
9246  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));
9247  for (let i = 0; i < points.length; i += 1) {
9248    const {
9249      point,
9250      value
9251    } = points[i];
9252    if (base === 'window') {
9253      if (window.matchMedia(`(min-width: ${value}px)`).matches) {
9254        breakpoint = point;
9255      }
9256    } else if (value <= containerEl.clientWidth) {
9257      breakpoint = point;
9258    }
9259  }
9260  return breakpoint || 'max';
9261}
9262
9263var breakpoints = {
9264  setBreakpoint,
9265  getBreakpoint
9266};
9267
9268function prepareClasses(entries, prefix) {
9269  const resultClasses = [];
9270  entries.forEach(item => {
9271    if (typeof item === 'object') {
9272      Object.keys(item).forEach(classNames => {
9273        if (item[classNames]) {
9274          resultClasses.push(prefix + classNames);
9275        }
9276      });
9277    } else if (typeof item === 'string') {
9278      resultClasses.push(prefix + item);
9279    }
9280  });
9281  return resultClasses;
9282}
9283function addClasses() {
9284  const swiper = this;
9285  const {
9286    classNames,
9287    params,
9288    rtl,
9289    el,
9290    device
9291  } = swiper;
9292  // prettier-ignore
9293  const suffixes = prepareClasses(['initialized', params.direction, {
9294    'free-mode': swiper.params.freeMode && params.freeMode.enabled
9295  }, {
9296    'autoheight': params.autoHeight
9297  }, {
9298    'rtl': rtl
9299  }, {
9300    'grid': params.grid && params.grid.rows > 1
9301  }, {
9302    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
9303  }, {
9304    'android': device.android
9305  }, {
9306    'ios': device.ios
9307  }, {
9308    'css-mode': params.cssMode
9309  }, {
9310    'centered': params.cssMode && params.centeredSlides
9311  }, {
9312    'watch-progress': params.watchSlidesProgress
9313  }], params.containerModifierClass);
9314  classNames.push(...suffixes);
9315  el.classList.add(...classNames);
9316  swiper.emitContainerClasses();
9317}
9318
9319function removeClasses() {
9320  const swiper = this;
9321  const {
9322    el,
9323    classNames
9324  } = swiper;
9325  if (!el || typeof el === 'string') return;
9326  el.classList.remove(...classNames);
9327  swiper.emitContainerClasses();
9328}
9329
9330var classes = {
9331  addClasses,
9332  removeClasses
9333};
9334
9335function checkOverflow() {
9336  const swiper = this;
9337  const {
9338    isLocked: wasLocked,
9339    params
9340  } = swiper;
9341  const {
9342    slidesOffsetBefore
9343  } = params;
9344  if (slidesOffsetBefore) {
9345    const lastSlideIndex = swiper.slides.length - 1;
9346    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
9347    swiper.isLocked = swiper.size > lastSlideRightEdge;
9348  } else {
9349    swiper.isLocked = swiper.snapGrid.length === 1;
9350  }
9351  if (params.allowSlideNext === true) {
9352    swiper.allowSlideNext = !swiper.isLocked;
9353  }
9354  if (params.allowSlidePrev === true) {
9355    swiper.allowSlidePrev = !swiper.isLocked;
9356  }
9357  if (wasLocked && wasLocked !== swiper.isLocked) {
9358    swiper.isEnd = false;
9359  }
9360  if (wasLocked !== swiper.isLocked) {
9361    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
9362  }
9363}
9364var checkOverflow$1 = {
9365  checkOverflow
9366};
9367
9368var defaults = {
9369  init: true,
9370  direction: 'horizontal',
9371  oneWayMovement: false,
9372  swiperElementNodeName: 'SWIPER-CONTAINER',
9373  touchEventsTarget: 'wrapper',
9374  initialSlide: 0,
9375  speed: 300,
9376  cssMode: false,
9377  updateOnWindowResize: true,
9378  resizeObserver: true,
9379  nested: false,
9380  createElements: false,
9381  eventsPrefix: 'swiper',
9382  enabled: true,
9383  focusableElements: 'input, select, option, textarea, button, video, label',
9384  // Overrides
9385  width: null,
9386  height: null,
9387  //
9388  preventInteractionOnTransition: false,
9389  // ssr
9390  userAgent: null,
9391  url: null,
9392  // To support iOS's swipe-to-go-back gesture (when being used in-app).
9393  edgeSwipeDetection: false,
9394  edgeSwipeThreshold: 20,
9395  // Autoheight
9396  autoHeight: false,
9397  // Set wrapper width
9398  setWrapperSize: false,
9399  // Virtual Translate
9400  virtualTranslate: false,
9401  // Effects
9402  effect: 'slide',
9403  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
9404
9405  // Breakpoints
9406  breakpoints: undefined,
9407  breakpointsBase: 'window',
9408  // Slides grid
9409  spaceBetween: 0,
9410  slidesPerView: 1,
9411  slidesPerGroup: 1,
9412  slidesPerGroupSkip: 0,
9413  slidesPerGroupAuto: false,
9414  centeredSlides: false,
9415  centeredSlidesBounds: false,
9416  slidesOffsetBefore: 0,
9417  // in px
9418  slidesOffsetAfter: 0,
9419  // in px
9420  normalizeSlideIndex: true,
9421  centerInsufficientSlides: false,
9422  // Disable swiper and hide navigation when container not overflow
9423  watchOverflow: true,
9424  // Round length
9425  roundLengths: false,
9426  // Touches
9427  touchRatio: 1,
9428  touchAngle: 45,
9429  simulateTouch: true,
9430  shortSwipes: true,
9431  longSwipes: true,
9432  longSwipesRatio: 0.5,
9433  longSwipesMs: 300,
9434  followFinger: true,
9435  allowTouchMove: true,
9436  threshold: 5,
9437  touchMoveStopPropagation: false,
9438  touchStartPreventDefault: true,
9439  touchStartForcePreventDefault: false,
9440  touchReleaseOnEdges: false,
9441  // Unique Navigation Elements
9442  uniqueNavElements: true,
9443  // Resistance
9444  resistance: true,
9445  resistanceRatio: 0.85,
9446  // Progress
9447  watchSlidesProgress: false,
9448  // Cursor
9449  grabCursor: false,
9450  // Clicks
9451  preventClicks: true,
9452  preventClicksPropagation: true,
9453  slideToClickedSlide: false,
9454  // loop
9455  loop: false,
9456  loopAddBlankSlides: true,
9457  loopAdditionalSlides: 0,
9458  loopPreventsSliding: true,
9459  // rewind
9460  rewind: false,
9461  // Swiping/no swiping
9462  allowSlidePrev: true,
9463  allowSlideNext: true,
9464  swipeHandler: null,
9465  // '.swipe-handler',
9466  noSwiping: true,
9467  noSwipingClass: 'swiper-no-swiping',
9468  noSwipingSelector: null,
9469  // Passive Listeners
9470  passiveListeners: true,
9471  maxBackfaceHiddenSlides: 10,
9472  // NS
9473  containerModifierClass: 'swiper-',
9474  // NEW
9475  slideClass: 'swiper-slide',
9476  slideBlankClass: 'swiper-slide-blank',
9477  slideActiveClass: 'swiper-slide-active',
9478  slideVisibleClass: 'swiper-slide-visible',
9479  slideFullyVisibleClass: 'swiper-slide-fully-visible',
9480  slideNextClass: 'swiper-slide-next',
9481  slidePrevClass: 'swiper-slide-prev',
9482  wrapperClass: 'swiper-wrapper',
9483  lazyPreloaderClass: 'swiper-lazy-preloader',
9484  lazyPreloadPrevNext: 0,
9485  // Callbacks
9486  runCallbacksOnInit: true,
9487  // Internals
9488  _emitClasses: false
9489};
9490
9491function moduleExtendParams(params, allModulesParams) {
9492  return function extendParams(obj) {
9493    if (obj === void 0) {
9494      obj = {};
9495    }
9496    const moduleParamName = Object.keys(obj)[0];
9497    const moduleParams = obj[moduleParamName];
9498    if (typeof moduleParams !== 'object' || moduleParams === null) {
9499      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
9500      return;
9501    }
9502    if (params[moduleParamName] === true) {
9503      params[moduleParamName] = {
9504        enabled: true
9505      };
9506    }
9507    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {
9508      params[moduleParamName].auto = true;
9509    }
9510    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {
9511      params[moduleParamName].auto = true;
9512    }
9513    if (!(moduleParamName in params && 'enabled' in moduleParams)) {
9514      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
9515      return;
9516    }
9517    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
9518      params[moduleParamName].enabled = true;
9519    }
9520    if (!params[moduleParamName]) params[moduleParamName] = {
9521      enabled: false
9522    };
9523    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
9524  };
9525}
9526
9527/* eslint no-param-reassign: "off" */
9528const prototypes = {
9529  eventsEmitter,
9530  update,
9531  translate,
9532  transition,
9533  slide,
9534  loop,
9535  grabCursor,
9536  events: events$1,
9537  breakpoints,
9538  checkOverflow: checkOverflow$1,
9539  classes
9540};
9541const extendedDefaults = {};
9542class Swiper {
9543  constructor() {
9544    let el;
9545    let params;
9546    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
9547      args[_key] = arguments[_key];
9548    }
9549    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
9550      params = args[0];
9551    } else {
9552      [el, params] = args;
9553    }
9554    if (!params) params = {};
9555    params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params);
9556    if (el && !params.el) params.el = el;
9557    const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9558    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {
9559      const swipers = [];
9560      document.querySelectorAll(params.el).forEach(containerEl => {
9561        const newParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params, {
9562          el: containerEl
9563        });
9564        swipers.push(new Swiper(newParams));
9565      });
9566      // eslint-disable-next-line no-constructor-return
9567      return swipers;
9568    }
9569
9570    // Swiper Instance
9571    const swiper = this;
9572    swiper.__swiper__ = true;
9573    swiper.support = getSupport();
9574    swiper.device = getDevice({
9575      userAgent: params.userAgent
9576    });
9577    swiper.browser = getBrowser();
9578    swiper.eventsListeners = {};
9579    swiper.eventsAnyListeners = [];
9580    swiper.modules = [...swiper.__modules__];
9581    if (params.modules && Array.isArray(params.modules)) {
9582      swiper.modules.push(...params.modules);
9583    }
9584    const allModulesParams = {};
9585    swiper.modules.forEach(mod => {
9586      mod({
9587        params,
9588        swiper,
9589        extendParams: moduleExtendParams(params, allModulesParams),
9590        on: swiper.on.bind(swiper),
9591        once: swiper.once.bind(swiper),
9592        off: swiper.off.bind(swiper),
9593        emit: swiper.emit.bind(swiper)
9594      });
9595    });
9596
9597    // Extend defaults with modules params
9598    const swiperParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, defaults, allModulesParams);
9599
9600    // Extend defaults with passed params
9601    swiper.params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, swiperParams, extendedDefaults, params);
9602    swiper.originalParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, swiper.params);
9603    swiper.passedParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params);
9604
9605    // add event listeners
9606    if (swiper.params && swiper.params.on) {
9607      Object.keys(swiper.params.on).forEach(eventName => {
9608        swiper.on(eventName, swiper.params.on[eventName]);
9609      });
9610    }
9611    if (swiper.params && swiper.params.onAny) {
9612      swiper.onAny(swiper.params.onAny);
9613    }
9614
9615    // Extend Swiper
9616    Object.assign(swiper, {
9617      enabled: swiper.params.enabled,
9618      el,
9619      // Classes
9620      classNames: [],
9621      // Slides
9622      slides: [],
9623      slidesGrid: [],
9624      snapGrid: [],
9625      slidesSizesGrid: [],
9626      // isDirection
9627      isHorizontal() {
9628        return swiper.params.direction === 'horizontal';
9629      },
9630      isVertical() {
9631        return swiper.params.direction === 'vertical';
9632      },
9633      // Indexes
9634      activeIndex: 0,
9635      realIndex: 0,
9636      //
9637      isBeginning: true,
9638      isEnd: false,
9639      // Props
9640      translate: 0,
9641      previousTranslate: 0,
9642      progress: 0,
9643      velocity: 0,
9644      animating: false,
9645      cssOverflowAdjustment() {
9646        // Returns 0 unless `translate` is > 2**23
9647        // Should be subtracted from css values to prevent overflow
9648        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
9649      },
9650      // Locks
9651      allowSlideNext: swiper.params.allowSlideNext,
9652      allowSlidePrev: swiper.params.allowSlidePrev,
9653      // Touch Events
9654      touchEventsData: {
9655        isTouched: undefined,
9656        isMoved: undefined,
9657        allowTouchCallbacks: undefined,
9658        touchStartTime: undefined,
9659        isScrolling: undefined,
9660        currentTranslate: undefined,
9661        startTranslate: undefined,
9662        allowThresholdMove: undefined,
9663        // Form elements to match
9664        focusableElements: swiper.params.focusableElements,
9665        // Last click time
9666        lastClickTime: 0,
9667        clickTimeout: undefined,
9668        // Velocities
9669        velocities: [],
9670        allowMomentumBounce: undefined,
9671        startMoving: undefined,
9672        pointerId: null,
9673        touchId: null
9674      },
9675      // Clicks
9676      allowClick: true,
9677      // Touches
9678      allowTouchMove: swiper.params.allowTouchMove,
9679      touches: {
9680        startX: 0,
9681        startY: 0,
9682        currentX: 0,
9683        currentY: 0,
9684        diff: 0
9685      },
9686      // Images
9687      imagesToLoad: [],
9688      imagesLoaded: 0
9689    });
9690    swiper.emit('_swiper');
9691
9692    // Init
9693    if (swiper.params.init) {
9694      swiper.init();
9695    }
9696
9697    // Return app instance
9698    // eslint-disable-next-line no-constructor-return
9699    return swiper;
9700  }
9701  getDirectionLabel(property) {
9702    if (this.isHorizontal()) {
9703      return property;
9704    }
9705    // prettier-ignore
9706    return {
9707      'width': 'height',
9708      'margin-top': 'margin-left',
9709      'margin-bottom ': 'margin-right',
9710      'margin-left': 'margin-top',
9711      'margin-right': 'margin-bottom',
9712      'padding-left': 'padding-top',
9713      'padding-right': 'padding-bottom',
9714      'marginRight': 'marginBottom'
9715    }[property];
9716  }
9717  getSlideIndex(slideEl) {
9718    const {
9719      slidesEl,
9720      params
9721    } = this;
9722    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
9723    const firstSlideIndex = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slides[0]);
9724    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slideEl) - firstSlideIndex;
9725  }
9726  getSlideIndexByData(index) {
9727    return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));
9728  }
9729  recalcSlides() {
9730    const swiper = this;
9731    const {
9732      slidesEl,
9733      params
9734    } = swiper;
9735    swiper.slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
9736  }
9737  enable() {
9738    const swiper = this;
9739    if (swiper.enabled) return;
9740    swiper.enabled = true;
9741    if (swiper.params.grabCursor) {
9742      swiper.setGrabCursor();
9743    }
9744    swiper.emit('enable');
9745  }
9746  disable() {
9747    const swiper = this;
9748    if (!swiper.enabled) return;
9749    swiper.enabled = false;
9750    if (swiper.params.grabCursor) {
9751      swiper.unsetGrabCursor();
9752    }
9753    swiper.emit('disable');
9754  }
9755  setProgress(progress, speed) {
9756    const swiper = this;
9757    progress = Math.min(Math.max(progress, 0), 1);
9758    const min = swiper.minTranslate();
9759    const max = swiper.maxTranslate();
9760    const current = (max - min) * progress + min;
9761    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);
9762    swiper.updateActiveIndex();
9763    swiper.updateSlidesClasses();
9764  }
9765  emitContainerClasses() {
9766    const swiper = this;
9767    if (!swiper.params._emitClasses || !swiper.el) return;
9768    const cls = swiper.el.className.split(' ').filter(className => {
9769      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;
9770    });
9771    swiper.emit('_containerClasses', cls.join(' '));
9772  }
9773  getSlideClasses(slideEl) {
9774    const swiper = this;
9775    if (swiper.destroyed) return '';
9776    return slideEl.className.split(' ').filter(className => {
9777      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;
9778    }).join(' ');
9779  }
9780  emitSlidesClasses() {
9781    const swiper = this;
9782    if (!swiper.params._emitClasses || !swiper.el) return;
9783    const updates = [];
9784    swiper.slides.forEach(slideEl => {
9785      const classNames = swiper.getSlideClasses(slideEl);
9786      updates.push({
9787        slideEl,
9788        classNames
9789      });
9790      swiper.emit('_slideClass', slideEl, classNames);
9791    });
9792    swiper.emit('_slideClasses', updates);
9793  }
9794  slidesPerViewDynamic(view, exact) {
9795    if (view === void 0) {
9796      view = 'current';
9797    }
9798    if (exact === void 0) {
9799      exact = false;
9800    }
9801    const swiper = this;
9802    const {
9803      params,
9804      slides,
9805      slidesGrid,
9806      slidesSizesGrid,
9807      size: swiperSize,
9808      activeIndex
9809    } = swiper;
9810    let spv = 1;
9811    if (typeof params.slidesPerView === 'number') return params.slidesPerView;
9812    if (params.centeredSlides) {
9813      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;
9814      let breakLoop;
9815      for (let i = activeIndex + 1; i < slides.length; i += 1) {
9816        if (slides[i] && !breakLoop) {
9817          slideSize += Math.ceil(slides[i].swiperSlideSize);
9818          spv += 1;
9819          if (slideSize > swiperSize) breakLoop = true;
9820        }
9821      }
9822      for (let i = activeIndex - 1; i >= 0; i -= 1) {
9823        if (slides[i] && !breakLoop) {
9824          slideSize += slides[i].swiperSlideSize;
9825          spv += 1;
9826          if (slideSize > swiperSize) breakLoop = true;
9827        }
9828      }
9829    } else {
9830      // eslint-disable-next-line
9831      if (view === 'current') {
9832        for (let i = activeIndex + 1; i < slides.length; i += 1) {
9833          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
9834          if (slideInView) {
9835            spv += 1;
9836          }
9837        }
9838      } else {
9839        // previous
9840        for (let i = activeIndex - 1; i >= 0; i -= 1) {
9841          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
9842          if (slideInView) {
9843            spv += 1;
9844          }
9845        }
9846      }
9847    }
9848    return spv;
9849  }
9850  update() {
9851    const swiper = this;
9852    if (!swiper || swiper.destroyed) return;
9853    const {
9854      snapGrid,
9855      params
9856    } = swiper;
9857    // Breakpoints
9858    if (params.breakpoints) {
9859      swiper.setBreakpoint();
9860    }
9861    [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => {
9862      if (imageEl.complete) {
9863        processLazyPreloader(swiper, imageEl);
9864      }
9865    });
9866    swiper.updateSize();
9867    swiper.updateSlides();
9868    swiper.updateProgress();
9869    swiper.updateSlidesClasses();
9870    function setTranslate() {
9871      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
9872      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
9873      swiper.setTranslate(newTranslate);
9874      swiper.updateActiveIndex();
9875      swiper.updateSlidesClasses();
9876    }
9877    let translated;
9878    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {
9879      setTranslate();
9880      if (params.autoHeight) {
9881        swiper.updateAutoHeight();
9882      }
9883    } else {
9884      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {
9885        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;
9886        translated = swiper.slideTo(slides.length - 1, 0, false, true);
9887      } else {
9888        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
9889      }
9890      if (!translated) {
9891        setTranslate();
9892      }
9893    }
9894    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {
9895      swiper.checkOverflow();
9896    }
9897    swiper.emit('update');
9898  }
9899  changeDirection(newDirection, needUpdate) {
9900    if (needUpdate === void 0) {
9901      needUpdate = true;
9902    }
9903    const swiper = this;
9904    const currentDirection = swiper.params.direction;
9905    if (!newDirection) {
9906      // eslint-disable-next-line
9907      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
9908    }
9909    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {
9910      return swiper;
9911    }
9912    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);
9913    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);
9914    swiper.emitContainerClasses();
9915    swiper.params.direction = newDirection;
9916    swiper.slides.forEach(slideEl => {
9917      if (newDirection === 'vertical') {
9918        slideEl.style.width = '';
9919      } else {
9920        slideEl.style.height = '';
9921      }
9922    });
9923    swiper.emit('changeDirection');
9924    if (needUpdate) swiper.update();
9925    return swiper;
9926  }
9927  changeLanguageDirection(direction) {
9928    const swiper = this;
9929    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;
9930    swiper.rtl = direction === 'rtl';
9931    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;
9932    if (swiper.rtl) {
9933      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);
9934      swiper.el.dir = 'rtl';
9935    } else {
9936      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);
9937      swiper.el.dir = 'ltr';
9938    }
9939    swiper.update();
9940  }
9941  mount(element) {
9942    const swiper = this;
9943    if (swiper.mounted) return true;
9944
9945    // Find el
9946    let el = element || swiper.params.el;
9947    if (typeof el === 'string') {
9948      el = document.querySelector(el);
9949    }
9950    if (!el) {
9951      return false;
9952    }
9953    el.swiper = swiper;
9954    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {
9955      swiper.isElement = true;
9956    }
9957    const getWrapperSelector = () => {
9958      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;
9959    };
9960    const getWrapper = () => {
9961      if (el && el.shadowRoot && el.shadowRoot.querySelector) {
9962        const res = el.shadowRoot.querySelector(getWrapperSelector());
9963        // Children needs to return slot items
9964        return res;
9965      }
9966      return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, getWrapperSelector())[0];
9967    };
9968    // Find Wrapper
9969    let wrapperEl = getWrapper();
9970    if (!wrapperEl && swiper.params.createElements) {
9971      wrapperEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.wrapperClass);
9972      el.append(wrapperEl);
9973      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, `.${swiper.params.slideClass}`).forEach(slideEl => {
9974        wrapperEl.append(slideEl);
9975      });
9976    }
9977    Object.assign(swiper, {
9978      el,
9979      wrapperEl,
9980      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
9981      hostEl: swiper.isElement ? el.parentNode.host : el,
9982      mounted: true,
9983      // RTL
9984      rtl: el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'direction') === 'rtl',
9985      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'direction') === 'rtl'),
9986      wrongRTL: (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(wrapperEl, 'display') === '-webkit-box'
9987    });
9988    return true;
9989  }
9990  init(el) {
9991    const swiper = this;
9992    if (swiper.initialized) return swiper;
9993    const mounted = swiper.mount(el);
9994    if (mounted === false) return swiper;
9995    swiper.emit('beforeInit');
9996
9997    // Set breakpoint
9998    if (swiper.params.breakpoints) {
9999      swiper.setBreakpoint();
10000    }
10001
10002    // Add Classes
10003    swiper.addClasses();
10004
10005    // Update size
10006    swiper.updateSize();
10007
10008    // Update slides
10009    swiper.updateSlides();
10010    if (swiper.params.watchOverflow) {
10011      swiper.checkOverflow();
10012    }
10013
10014    // Set Grab Cursor
10015    if (swiper.params.grabCursor && swiper.enabled) {
10016      swiper.setGrabCursor();
10017    }
10018
10019    // Slide To Initial Slide
10020    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
10021      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);
10022    } else {
10023      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
10024    }
10025
10026    // Create loop
10027    if (swiper.params.loop) {
10028      swiper.loopCreate(undefined, true);
10029    }
10030
10031    // Attach events
10032    swiper.attachEvents();
10033    const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')];
10034    if (swiper.isElement) {
10035      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]'));
10036    }
10037    lazyElements.forEach(imageEl => {
10038      if (imageEl.complete) {
10039        processLazyPreloader(swiper, imageEl);
10040      } else {
10041        imageEl.addEventListener('load', e => {
10042          processLazyPreloader(swiper, e.target);
10043        });
10044      }
10045    });
10046    preload(swiper);
10047
10048    // Init Flag
10049    swiper.initialized = true;
10050    preload(swiper);
10051
10052    // Emit
10053    swiper.emit('init');
10054    swiper.emit('afterInit');
10055    return swiper;
10056  }
10057  destroy(deleteInstance, cleanStyles) {
10058    if (deleteInstance === void 0) {
10059      deleteInstance = true;
10060    }
10061    if (cleanStyles === void 0) {
10062      cleanStyles = true;
10063    }
10064    const swiper = this;
10065    const {
10066      params,
10067      el,
10068      wrapperEl,
10069      slides
10070    } = swiper;
10071    if (typeof swiper.params === 'undefined' || swiper.destroyed) {
10072      return null;
10073    }
10074    swiper.emit('beforeDestroy');
10075
10076    // Init Flag
10077    swiper.initialized = false;
10078
10079    // Detach events
10080    swiper.detachEvents();
10081
10082    // Destroy loop
10083    if (params.loop) {
10084      swiper.loopDestroy();
10085    }
10086
10087    // Cleanup styles
10088    if (cleanStyles) {
10089      swiper.removeClasses();
10090      if (el && typeof el !== 'string') {
10091        el.removeAttribute('style');
10092      }
10093      if (wrapperEl) {
10094        wrapperEl.removeAttribute('style');
10095      }
10096      if (slides && slides.length) {
10097        slides.forEach(slideEl => {
10098          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);
10099          slideEl.removeAttribute('style');
10100          slideEl.removeAttribute('data-swiper-slide-index');
10101        });
10102      }
10103    }
10104    swiper.emit('destroy');
10105
10106    // Detach emitter events
10107    Object.keys(swiper.eventsListeners).forEach(eventName => {
10108      swiper.off(eventName);
10109    });
10110    if (deleteInstance !== false) {
10111      if (swiper.el && typeof swiper.el !== 'string') {
10112        swiper.el.swiper = null;
10113      }
10114      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(swiper);
10115    }
10116    swiper.destroyed = true;
10117    return null;
10118  }
10119  static extendDefaults(newDefaults) {
10120    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(extendedDefaults, newDefaults);
10121  }
10122  static get extendedDefaults() {
10123    return extendedDefaults;
10124  }
10125  static get defaults() {
10126    return defaults;
10127  }
10128  static installModule(mod) {
10129    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];
10130    const modules = Swiper.prototype.__modules__;
10131    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {
10132      modules.push(mod);
10133    }
10134  }
10135  static use(module) {
10136    if (Array.isArray(module)) {
10137      module.forEach(m => Swiper.installModule(m));
10138      return Swiper;
10139    }
10140    Swiper.installModule(module);
10141    return Swiper;
10142  }
10143}
10144Object.keys(prototypes).forEach(prototypeGroup => {
10145  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {
10146    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
10147  });
10148});
10149Swiper.use([Resize, Observer]);
10150
10151
10152
10153
10154/***/ }),
10155
vendor: 13,147 bytes, lines 10156-10524
10156/***/ "./node_modules/swiper/shared/utils.mjs":
10157/*!**********************************************!*\
10158  !*** ./node_modules/swiper/shared/utils.mjs ***!
10159  \**********************************************/
10160/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
10161
10162__webpack_require__.r(__webpack_exports__);
10163/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10164/* harmony export */   a: () => (/* binding */ elementParents),
10165/* harmony export */   b: () => (/* binding */ elementOffset),
10166/* harmony export */   c: () => (/* binding */ createElement),
10167/* harmony export */   d: () => (/* binding */ now),
10168/* harmony export */   e: () => (/* binding */ elementChildren),
10169/* harmony export */   f: () => (/* binding */ elementOuterSize),
10170/* harmony export */   g: () => (/* binding */ getSlideTransformEl),
10171/* harmony export */   h: () => (/* binding */ elementIndex),
10172/* harmony export */   i: () => (/* binding */ classesToTokens),
10173/* harmony export */   j: () => (/* binding */ getTranslate),
10174/* harmony export */   k: () => (/* binding */ elementTransitionEnd),
10175/* harmony export */   l: () => (/* binding */ isObject),
10176/* harmony export */   m: () => (/* binding */ makeElementsArray),
10177/* harmony export */   n: () => (/* binding */ nextTick),
10178/* harmony export */   o: () => (/* binding */ getRotateFix),
10179/* harmony export */   p: () => (/* binding */ elementStyle),
10180/* harmony export */   q: () => (/* binding */ elementNextAll),
10181/* harmony export */   r: () => (/* binding */ elementPrevAll),
10182/* harmony export */   s: () => (/* binding */ setCSSProperty),
10183/* harmony export */   t: () => (/* binding */ animateCSSModeScroll),
10184/* harmony export */   u: () => (/* binding */ showWarning),
10185/* harmony export */   v: () => (/* binding */ elementIsChildOf),
10186/* harmony export */   w: () => (/* binding */ extend),
10187/* harmony export */   x: () => (/* binding */ deleteProps)
10188/* harmony export */ });
10189/* 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");
10190
10191
10192function classesToTokens(classes) {
10193  if (classes === void 0) {
10194    classes = '';
10195  }
10196  return classes.trim().split(' ').filter(c => !!c.trim());
10197}
10198
10199function deleteProps(obj) {
10200  const object = obj;
10201  Object.keys(object).forEach(key => {
10202    try {
10203      object[key] = null;
10204    } catch (e) {
10205      // no getter for object
10206    }
10207    try {
10208      delete object[key];
10209    } catch (e) {
10210      // something got wrong
10211    }
10212  });
10213}
10214function nextTick(callback, delay) {
10215  if (delay === void 0) {
10216    delay = 0;
10217  }
10218  return setTimeout(callback, delay);
10219}
10220function now() {
10221  return Date.now();
10222}
10223function getComputedStyle(el) {
10224  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10225  let style;
10226  if (window.getComputedStyle) {
10227    style = window.getComputedStyle(el, null);
10228  }
10229  if (!style && el.currentStyle) {
10230    style = el.currentStyle;
10231  }
10232  if (!style) {
10233    style = el.style;
10234  }
10235  return style;
10236}
10237function getTranslate(el, axis) {
10238  if (axis === void 0) {
10239    axis = 'x';
10240  }
10241  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10242  let matrix;
10243  let curTransform;
10244  let transformMatrix;
10245  const curStyle = getComputedStyle(el);
10246  if (window.WebKitCSSMatrix) {
10247    curTransform = curStyle.transform || curStyle.webkitTransform;
10248    if (curTransform.split(',').length > 6) {
10249      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');
10250    }
10251    // Some old versions of Webkit choke when 'none' is passed; pass
10252    // empty string instead in this case
10253    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
10254  } else {
10255    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
10256    matrix = transformMatrix.toString().split(',');
10257  }
10258  if (axis === 'x') {
10259    // Latest Chrome and webkits Fix
10260    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;
10261    // Crazy IE10 Matrix
10262    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);
10263    // Normal Browsers
10264    else curTransform = parseFloat(matrix[4]);
10265  }
10266  if (axis === 'y') {
10267    // Latest Chrome and webkits Fix
10268    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;
10269    // Crazy IE10 Matrix
10270    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);
10271    // Normal Browsers
10272    else curTransform = parseFloat(matrix[5]);
10273  }
10274  return curTransform || 0;
10275}
10276function isObject(o) {
10277  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
10278}
10279function isNode(node) {
10280  // eslint-disable-next-line
10281  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
10282    return node instanceof HTMLElement;
10283  }
10284  return node && (node.nodeType === 1 || node.nodeType === 11);
10285}
10286function extend() {
10287  const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
10288  const noExtend = ['__proto__', 'constructor', 'prototype'];
10289  for (let i = 1; i < arguments.length; i += 1) {
10290    const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
10291    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
10292      const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
10293      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
10294        const nextKey = keysArray[nextIndex];
10295        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
10296        if (desc !== undefined && desc.enumerable) {
10297          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
10298            if (nextSource[nextKey].__swiper__) {
10299              to[nextKey] = nextSource[nextKey];
10300            } else {
10301              extend(to[nextKey], nextSource[nextKey]);
10302            }
10303          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
10304            to[nextKey] = {};
10305            if (nextSource[nextKey].__swiper__) {
10306              to[nextKey] = nextSource[nextKey];
10307            } else {
10308              extend(to[nextKey], nextSource[nextKey]);
10309            }
10310          } else {
10311            to[nextKey] = nextSource[nextKey];
10312          }
10313        }
10314      }
10315    }
10316  }
10317  return to;
10318}
10319function setCSSProperty(el, varName, varValue) {
10320  el.style.setProperty(varName, varValue);
10321}
10322function animateCSSModeScroll(_ref) {
10323  let {
10324    swiper,
10325    targetPosition,
10326    side
10327  } = _ref;
10328  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10329  const startPosition = -swiper.translate;
10330  let startTime = null;
10331  let time;
10332  const duration = swiper.params.speed;
10333  swiper.wrapperEl.style.scrollSnapType = 'none';
10334  window.cancelAnimationFrame(swiper.cssModeFrameID);
10335  const dir = targetPosition > startPosition ? 'next' : 'prev';
10336  const isOutOfBound = (current, target) => {
10337    return dir === 'next' && current >= target || dir === 'prev' && current <= target;
10338  };
10339  const animate = () => {
10340    time = new Date().getTime();
10341    if (startTime === null) {
10342      startTime = time;
10343    }
10344    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
10345    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
10346    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
10347    if (isOutOfBound(currentPosition, targetPosition)) {
10348      currentPosition = targetPosition;
10349    }
10350    swiper.wrapperEl.scrollTo({
10351      [side]: currentPosition
10352    });
10353    if (isOutOfBound(currentPosition, targetPosition)) {
10354      swiper.wrapperEl.style.overflow = 'hidden';
10355      swiper.wrapperEl.style.scrollSnapType = '';
10356      setTimeout(() => {
10357        swiper.wrapperEl.style.overflow = '';
10358        swiper.wrapperEl.scrollTo({
10359          [side]: currentPosition
10360        });
10361      });
10362      window.cancelAnimationFrame(swiper.cssModeFrameID);
10363      return;
10364    }
10365    swiper.cssModeFrameID = window.requestAnimationFrame(animate);
10366  };
10367  animate();
10368}
10369function getSlideTransformEl(slideEl) {
10370  return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;
10371}
10372function elementChildren(element, selector) {
10373  if (selector === void 0) {
10374    selector = '';
10375  }
10376  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10377  const children = [...element.children];
10378  if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {
10379    children.push(...element.assignedElements());
10380  }
10381  if (!selector) {
10382    return children;
10383  }
10384  return children.filter(el => el.matches(selector));
10385}
10386function elementIsChildOfSlot(el, slot) {
10387  // Breadth-first search through all parent's children and assigned elements
10388  const elementsQueue = [slot];
10389  while (elementsQueue.length > 0) {
10390    const elementToCheck = elementsQueue.shift();
10391    if (el === elementToCheck) {
10392      return true;
10393    }
10394    elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));
10395  }
10396}
10397function elementIsChildOf(el, parent) {
10398  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10399  let isChild = parent.contains(el);
10400  if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {
10401    const children = [...parent.assignedElements()];
10402    isChild = children.includes(el);
10403    if (!isChild) {
10404      isChild = elementIsChildOfSlot(el, parent);
10405    }
10406  }
10407  return isChild;
10408}
10409function showWarning(text) {
10410  try {
10411    console.warn(text);
10412    return;
10413  } catch (err) {
10414    // err
10415  }
10416}
10417function createElement(tag, classes) {
10418  if (classes === void 0) {
10419    classes = [];
10420  }
10421  const el = document.createElement(tag);
10422  el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));
10423  return el;
10424}
10425function elementOffset(el) {
10426  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10427  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
10428  const box = el.getBoundingClientRect();
10429  const body = document.body;
10430  const clientTop = el.clientTop || body.clientTop || 0;
10431  const clientLeft = el.clientLeft || body.clientLeft || 0;
10432  const scrollTop = el === window ? window.scrollY : el.scrollTop;
10433  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
10434  return {
10435    top: box.top + scrollTop - clientTop,
10436    left: box.left + scrollLeft - clientLeft
10437  };
10438}
10439function elementPrevAll(el, selector) {
10440  const prevEls = [];
10441  while (el.previousElementSibling) {
10442    const prev = el.previousElementSibling; // eslint-disable-line
10443    if (selector) {
10444      if (prev.matches(selector)) prevEls.push(prev);
10445    } else prevEls.push(prev);
10446    el = prev;
10447  }
10448  return prevEls;
10449}
10450function elementNextAll(el, selector) {
10451  const nextEls = [];
10452  while (el.nextElementSibling) {
10453    const next = el.nextElementSibling; // eslint-disable-line
10454    if (selector) {
10455      if (next.matches(selector)) nextEls.push(next);
10456    } else nextEls.push(next);
10457    el = next;
10458  }
10459  return nextEls;
10460}
10461function elementStyle(el, prop) {
10462  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10463  return window.getComputedStyle(el, null).getPropertyValue(prop);
10464}
10465function elementIndex(el) {
10466  let child = el;
10467  let i;
10468  if (child) {
10469    i = 0;
10470    // eslint-disable-next-line
10471    while ((child = child.previousSibling) !== null) {
10472      if (child.nodeType === 1) i += 1;
10473    }
10474    return i;
10475  }
10476  return undefined;
10477}
10478function elementParents(el, selector) {
10479  const parents = []; // eslint-disable-line
10480  let parent = el.parentElement; // eslint-disable-line
10481  while (parent) {
10482    if (selector) {
10483      if (parent.matches(selector)) parents.push(parent);
10484    } else {
10485      parents.push(parent);
10486    }
10487    parent = parent.parentElement;
10488  }
10489  return parents;
10490}
10491function elementTransitionEnd(el, callback) {
10492  function fireCallBack(e) {
10493    if (e.target !== el) return;
10494    callback.call(el, e);
10495    el.removeEventListener('transitionend', fireCallBack);
10496  }
10497  if (callback) {
10498    el.addEventListener('transitionend', fireCallBack);
10499  }
10500}
10501function elementOuterSize(el, size, includeMargins) {
10502  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10503  if (includeMargins) {
10504    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'));
10505  }
10506  return el.offsetWidth;
10507}
10508function makeElementsArray(el) {
10509  return (Array.isArray(el) ? el : [el]).filter(e => !!e);
10510}
10511function getRotateFix(swiper) {
10512  return v => {
10513    if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {
10514      return v + 0.001;
10515    }
10516    return v;
10517  };
10518}
10519
10520
10521
10522
10523/***/ }),
10524
vendor: 385 bytes, lines 10525-10536
10525/***/ "./node_modules/swiper/swiper-bundle.css":
10526/*!***********************************************!*\
10527  !*** ./node_modules/swiper/swiper-bundle.css ***!
10528  \***********************************************/
10529/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10530
10531__webpack_require__.r(__webpack_exports__);
10532// extracted by mini-css-extract-plugin
10533
10534
10535/***/ }),
10536
vendor: 6,877 bytes, lines 10537-10616
10537/***/ "./node_modules/swiper/swiper-bundle.mjs":
10538/*!***********************************************!*\
10539  !*** ./node_modules/swiper/swiper-bundle.mjs ***!
10540  \***********************************************/
10541/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
10542
10543__webpack_require__.r(__webpack_exports__);
10544/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10545/* harmony export */   Swiper: () => (/* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S),
10546/* harmony export */   "default": () => (/* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S)
10547/* harmony export */ });
10548/* harmony import */ var _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared/swiper-core.mjs */ "./node_modules/swiper/shared/swiper-core.mjs");
10549/* harmony import */ var _modules_virtual_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual.mjs */ "./node_modules/swiper/modules/virtual.mjs");
10550/* harmony import */ var _modules_keyboard_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard.mjs */ "./node_modules/swiper/modules/keyboard.mjs");
10551/* harmony import */ var _modules_mousewheel_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel.mjs */ "./node_modules/swiper/modules/mousewheel.mjs");
10552/* harmony import */ var _modules_navigation_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation.mjs */ "./node_modules/swiper/modules/navigation.mjs");
10553/* harmony import */ var _modules_pagination_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination.mjs */ "./node_modules/swiper/modules/pagination.mjs");
10554/* harmony import */ var _modules_scrollbar_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar.mjs */ "./node_modules/swiper/modules/scrollbar.mjs");
10555/* harmony import */ var _modules_parallax_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax.mjs */ "./node_modules/swiper/modules/parallax.mjs");
10556/* harmony import */ var _modules_zoom_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom.mjs */ "./node_modules/swiper/modules/zoom.mjs");
10557/* harmony import */ var _modules_controller_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/controller.mjs */ "./node_modules/swiper/modules/controller.mjs");
10558/* harmony import */ var _modules_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/a11y.mjs */ "./node_modules/swiper/modules/a11y.mjs");
10559/* harmony import */ var _modules_history_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/history.mjs */ "./node_modules/swiper/modules/history.mjs");
10560/* harmony import */ var _modules_hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/hash-navigation.mjs */ "./node_modules/swiper/modules/hash-navigation.mjs");
10561/* harmony import */ var _modules_autoplay_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/autoplay.mjs */ "./node_modules/swiper/modules/autoplay.mjs");
10562/* harmony import */ var _modules_thumbs_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/thumbs.mjs */ "./node_modules/swiper/modules/thumbs.mjs");
10563/* harmony import */ var _modules_free_mode_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/free-mode.mjs */ "./node_modules/swiper/modules/free-mode.mjs");
10564/* harmony import */ var _modules_grid_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/grid.mjs */ "./node_modules/swiper/modules/grid.mjs");
10565/* harmony import */ var _modules_manipulation_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/manipulation.mjs */ "./node_modules/swiper/modules/manipulation.mjs");
10566/* harmony import */ var _modules_effect_fade_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/effect-fade.mjs */ "./node_modules/swiper/modules/effect-fade.mjs");
10567/* harmony import */ var _modules_effect_cube_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/effect-cube.mjs */ "./node_modules/swiper/modules/effect-cube.mjs");
10568/* harmony import */ var _modules_effect_flip_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/effect-flip.mjs */ "./node_modules/swiper/modules/effect-flip.mjs");
10569/* harmony import */ var _modules_effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/effect-coverflow.mjs */ "./node_modules/swiper/modules/effect-coverflow.mjs");
10570/* harmony import */ var _modules_effect_creative_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/effect-creative.mjs */ "./node_modules/swiper/modules/effect-creative.mjs");
10571/* harmony import */ var _modules_effect_cards_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/effect-cards.mjs */ "./node_modules/swiper/modules/effect-cards.mjs");
10572/**
10573 * Swiper 11.2.6
10574 * Most modern mobile touch slider and framework with hardware accelerated transitions
10575 * https://swiperjs.com
10576 *
10577 * Copyright 2014-2025 Vladimir Kharlampidi
10578 *
10579 * Released under the MIT License
10580 *
10581 * Released on: March 19, 2025
10582 */
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609// Swiper Class
10610const modules = [_modules_virtual_mjs__WEBPACK_IMPORTED_MODULE_1__["default"], _modules_keyboard_mjs__WEBPACK_IMPORTED_MODULE_2__["default"], _modules_mousewheel_mjs__WEBPACK_IMPORTED_MODULE_3__["default"], _modules_navigation_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], _modules_pagination_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], _modules_scrollbar_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], _modules_parallax_mjs__WEBPACK_IMPORTED_MODULE_7__["default"], _modules_zoom_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], _modules_controller_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], _modules_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__["default"], _modules_history_mjs__WEBPACK_IMPORTED_MODULE_11__["default"], _modules_hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_12__["default"], _modules_autoplay_mjs__WEBPACK_IMPORTED_MODULE_13__["default"], _modules_thumbs_mjs__WEBPACK_IMPORTED_MODULE_14__["default"], _modules_free_mode_mjs__WEBPACK_IMPORTED_MODULE_15__["default"], _modules_grid_mjs__WEBPACK_IMPORTED_MODULE_16__["default"], _modules_manipulation_mjs__WEBPACK_IMPORTED_MODULE_17__["default"], _modules_effect_fade_mjs__WEBPACK_IMPORTED_MODULE_18__["default"], _modules_effect_cube_mjs__WEBPACK_IMPORTED_MODULE_19__["default"], _modules_effect_flip_mjs__WEBPACK_IMPORTED_MODULE_20__["default"], _modules_effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_21__["default"], _modules_effect_creative_mjs__WEBPACK_IMPORTED_MODULE_22__["default"], _modules_effect_cards_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]];
10611_shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S.use(modules);
10612
10613
10614
10615
10616/***/ })
10616
10617
10618}]);
10619//# sourceMappingURL=swiper.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.