PageSourceSearch

https://www.marykay.com.mx/on/demandware.static/Sites-marykay-mx-Site/-/es_MX/v1790356196484/js/slider.js

js marykay.com.mx collected 2026-09-26 03:19:25 UTC 392,232 bytes, 11,027 lines download raw bytes

1/******/ (function() { // webpackBootstrap
2/******/ 	var __webpack_modules__ = ({
3
4/***/ "./cartridges/app_storefront_base/cartridge/client/default/js/util.js":
5/*!****************************************************************************!*\
6  !*** ./cartridges/app_storefront_base/cartridge/client/default/js/util.js ***!
7  \****************************************************************************/
8/***/ (function(module) {
9
10"use strict";
11
12
13function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
14module.exports = function (include) {
15  if (typeof include === 'function') {
16    include();
17  } else if (_typeof(include) === 'object') {
18    Object.keys(include).forEach(function (key) {
19      if (typeof include[key] === 'function') {
20        include[key]();
21      }
22    });
23  }
24};
25
26/***/ }),
27
28/***/ "./cartridges/org_marykay/cartridge/client/default/js/components/deviceDetection.js":
29/*!******************************************************************************************!*\
30  !*** ./cartridges/org_marykay/cartridge/client/default/js/components/deviceDetection.js ***!
31  \******************************************************************************************/
32/***/ (function(module) {
33
34/**
35 * Device Detection Utilities
36 * Aligns with Bootstrap 4.6 breakpoints defined in _variables.scss
37 * 
38 * Breakpoints:
39 * - Phone: < 768px (xs, sm collapsed to mobile)
40 * - Tablet: 600px - 1199px (custom tablet range + md/lg)
41 * - Desktop: 1200px - 1439px (xl)
42 * - Large Desktop: >= 1440px (xxl)
43 * 
44 * Usage:
45 * var device = require('./deviceDetection');
46 * if (device.isPhone()) { ... }
47 * var deviceType = device.getDeviceType(); // 'phone' | 'tablet' | 'desktop' | 'large-desktop'
48 */
49
50// Breakpoint constants (aligned with SCSS $grid-breakpoints)
51var BREAKPOINTS = {
52  PHONE_MAX: 767,
53  TABLET_MIN: 600,
54  TABLET_MAX: 1199,
55  DESKTOP_MIN: 1200,
56  LARGE_DESKTOP_MIN: 1440
57};
58
59/**
60 * Get current device type based on viewport width.
61 * @returns {string} Returns one of: 'phone', 'tablet', 'desktop', or 'large-desktop'.
62 */
63function getDeviceType() {
64  var width = window.innerWidth;
65  if (width < BREAKPOINTS.PHONE_MAX) {
66    return 'phone';
67  }
68  if (width >= BREAKPOINTS.TABLET_MIN && width <= BREAKPOINTS.TABLET_MAX) {
69    return 'tablet';
70  }
71  if (width >= BREAKPOINTS.DESKTOP_MIN && width < BREAKPOINTS.LARGE_DESKTOP_MIN) {
72    return 'desktop';
73  }
74  return 'large-desktop';
75}
76
77/**
78 * Check if current device is a phone.
79 * @returns {boolean} True if width < tablet minimum.
80 */
81function isPhone() {
82  return window.innerWidth < BREAKPOINTS.TABLET_MIN;
83}
84
85/**
86 * Check if current device is a tablet.
87 * @returns {boolean} True if width is between tablet min and tablet max.
88 */
89function isTablet() {
90  var width = window.innerWidth;
91  return width >= BREAKPOINTS.TABLET_MIN && width <= BREAKPOINTS.TABLET_MAX;
92}
93
94/**
95 * Check if current device is a desktop.
96 * @returns {boolean} True if width is between desktop min and large-desktop min.
97 */
98function isDesktop() {
99  var width = window.innerWidth;
100  return width >= BREAKPOINTS.DESKTOP_MIN && width < BREAKPOINTS.LARGE_DESKTOP_MIN;
101}
102
103/**
104 * Check if current device is a large desktop.
105 * @returns {boolean} True if width >= large desktop minimum.
106 */
107function isLargeDesktop() {
108  return window.innerWidth >= BREAKPOINTS.LARGE_DESKTOP_MIN;
109}
110
111/**
112 * Check if current viewport is mobile.
113 * @returns {boolean} True if width <= tablet max.
114 */
115function isMobile() {
116  return window.innerWidth <= BREAKPOINTS.TABLET_MAX;
117}
118
119/**
120 * Get detailed device information.
121 * @returns {Object} Returns a details object including type, size, and device flags.
122 */
123function getDeviceInfo() {
124  var width = window.innerWidth;
125  var height = window.innerHeight;
126  var deviceType = getDeviceType();
127  return {
128    type: deviceType,
129    width: width,
130    height: height,
131    isPhone: isPhone(),
132    isTablet: isTablet(),
133    isDesktop: isDesktop(),
134    isLargeDesktop: isLargeDesktop(),
135    isMobile: isMobile(),
136    isPortrait: height > width,
137    isLandscape: width > height
138  };
139}
140module.exports = {
141  getDeviceType: getDeviceType,
142  getDeviceInfo: getDeviceInfo,
143  isPhone: isPhone,
144  isTablet: isTablet,
145  isDesktop: isDesktop,
146  isLargeDesktop: isLargeDesktop,
147  isMobile: isMobile,
148  BREAKPOINTS: BREAKPOINTS
149};
150
151/***/ }),
152
153/***/ "./cartridges/org_marykay/cartridge/client/default/js/components/swiper.js":
154/*!*********************************************************************************!*\
155  !*** ./cartridges/org_marykay/cartridge/client/default/js/components/swiper.js ***!
156  \*********************************************************************************/
157/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
158
159"use strict";
160__webpack_require__.r(__webpack_exports__);
161/* harmony import */ var swiper_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper/bundle */ "./node_modules/swiper/swiper-bundle.mjs");
162
163var deviceDetection = __webpack_require__(/*! ./deviceDetection */ "./cartridges/org_marykay/cartridge/client/default/js/components/deviceDetection.js");
164swiper_bundle__WEBPACK_IMPORTED_MODULE_0__["default"].use([swiper_bundle__WEBPACK_IMPORTED_MODULE_0__.Navigation, swiper_bundle__WEBPACK_IMPORTED_MODULE_0__.Pagination]);
165
166/**
167 * Hides Swiper navigation and pagination if there are fewer slides than slidesPerView.
168 * @param {Object} e - The Swiper instance.
169 */
170function handleSwiperNavigation(e) {
171  var realSlides = e.slides.filter(function (slide) {
172    return !slide.classList.contains('swiper-slide-duplicate');
173  });
174  if (e.params.slidesPerView >= realSlides.length) {
175    if (e.navigation && e.navigation.nextEl) {
176      $(e.navigation.nextEl).addClass('swiper-button-hidden');
177    }
178    if (e.navigation && e.navigation.prevEl) {
179      $(e.navigation.prevEl).addClass('swiper-button-hidden');
180    }
181    if (e.pagination && e.pagination.el) {
182      $(e.pagination.el).addClass('swiper-pagination-hidden');
183    }
184  } else {
185    if (e.navigation && e.navigation.nextEl) {
186      $(e.navigation.nextEl).removeClass('swiper-button-hidden');
187    }
188    if (e.navigation && e.navigation.prevEl) {
189      $(e.navigation.prevEl).removeClass('swiper-button-hidden');
190    }
191    if (e.pagination && e.pagination.el) {
192      $(e.pagination.el).removeClass('swiper-pagination-hidden');
193    }
194  }
195}
196
197/**
198 * Updates the Swiper instance and its pagination if available.
199 *
200 * @param {Object} e - The Swiper instance.
201 */
202function updateSwiperAndPagination(e) {
203  if (typeof e.update === 'function') {
204    e.update();
205  }
206  if (e.pagination && typeof e.pagination.render === 'function') {
207    e.pagination.render();
208    if (typeof e.pagination.update === 'function') {
209      e.pagination.update();
210    }
211  }
212}
213
214/**
215 * Initializes a Swiper carousel for the promotional section.
216 *
217 * This function creates a new Swiper instance targeting the `.swiper-container` element.
218 * It sets up looping, slide spacing, navigation buttons, and clickable pagination.
219 *
220 * Requirements:
221 * - The Swiper library must be included in the project.
222 * - The HTML structure must include:
223 *   - A container with class `.swiper-container`
224 *   - Navigation buttons with classes `.swiper-button-next` and `.swiper-button-prev`
225 *   - A pagination element with class `.swiper-pagination`
226 *
227 * @function
228 * @returns {void}
229 */
230function initCarousel() {
231  var defaultOptions = {
232    loop: true,
233    slidesPerView: 1,
234    navigation: {
235      nextEl: '.swiper-button-next',
236      prevEl: '.swiper-button-prev'
237    },
238    pagination: {
239      el: '.swiper-pagination',
240      clickable: true
241    }
242  };
243  var customSlidersList = {
244    'swiper-promo': {
245      slidesPerView: 1,
246      slidesPerScroll: 1,
247      autoplay: {
248        delay: 5000
249      },
250      autoHeight: true,
251      on: {
252        slideChange: function slideChange() {
253          if ($('#searchModal').hasClass('show')) {
254            $('body').trigger('header:updateHeaderOffset', [true]);
255          } else {
256            $('body').trigger('header:updateHeaderOffset');
257          }
258        }
259      }
260    },
261    'swiper-products': {
262      slidesPerView: 2,
263      slidesPerScroll: 1,
264      spaceBetween: 16,
265      slidesPerGroup: 2,
266      autoHeight: true,
267      loop: false,
268      pagination: {
269        el: '.swiper-pagination',
270        dynamicBullets: true,
271        clickable: true
272      }
273    },
274    'swiper-cart-recommendations': {
275      slidesPerView: 4,
276      slidesPerScroll: 1,
277      loop: true,
278      breakpoints: {
279        0: {
280          slidesPerView: 2,
281          slidesPerGroup: 2
282        },
283        768: {
284          slidesPerView: 4,
285          slidesPerGroup: 4
286        }
287      },
288      on: {
289        // Initial load
290        init: function init(e) {
291          handleSwiperNavigation(e);
292        },
293        // Optional but recommended for breakpoint changes
294        resize: function resize(e) {
295          handleSwiperNavigation(e);
296          updateSwiperAndPagination(e);
297        },
298        breakpointChange: function breakpointChange(e) {
299          handleSwiperNavigation(e);
300          updateSwiperAndPagination(e);
301        }
302      }
303    },
304    'ibc-featured-products-swiper': {
305      slidesPerView: 2,
306      slidesPerScroll: 1,
307      spaceBetween: 16,
308      slidesPerGroup: 2,
309      loop: false,
310      autoHeight: true,
311      pagination: {
312        el: '.swiper-pagination',
313        clickable: true
314      }
315    }
316  };
317  $('body').find('.swiper-container, .swiper').each(function () {
318    var $el = $(this);
319    var matchedClass = null;
320    $.each(customSlidersList, function (className) {
321      if ($el.hasClass(className)) {
322        matchedClass = className;
323        return false;
324      }
325      return true;
326    });
327    var options = matchedClass ? $.extend(true, {}, defaultOptions, customSlidersList[matchedClass]) : defaultOptions;
328
329    // Special handling: for the IBC featured-products slider we want
330    // a static grid on desktop and a Swiper carousel on mobile/tablet.
331    // Initialize/destroy Swiper responsively using device detection.
332    if (matchedClass === 'ibc-featured-products-swiper') {
333      var swiperInstance = null;
334      var initOrDestroy = function initOrDestroy() {
335        var isMobileView = deviceDetection.isPhone();
336        if (isMobileView && !swiperInstance) {
337          // initialize Swiper for mobile/tablet
338          swiperInstance = new swiper_bundle__WEBPACK_IMPORTED_MODULE_0__["default"]($el[0], options); // eslint-disable-line
339          $el.data('swiperInstance', swiperInstance);
340        } else if (!isMobileView && swiperInstance) {
341          // destroy Swiper for desktop so markup becomes a static grid
342          try {
343            swiperInstance.destroy(true, true);
344          } catch (e) {
345            // ignore
346          }
347          swiperInstance = null;
348          $el.removeData('swiperInstance');
349        }
350      };
351
352      // Run once to set initial state
353      initOrDestroy();
354
355      // Debounced resize handler
356      var resizeTimeout = null;
357      var onResize = function onResize() {
358        if (resizeTimeout) {
359          clearTimeout(resizeTimeout);
360        }
361        resizeTimeout = setTimeout(function () {
362          initOrDestroy();
363        }, 150);
364      };
365      $(window).on('resize', onResize);
366    } else {
367      new swiper_bundle__WEBPACK_IMPORTED_MODULE_0__["default"]($el[0], options); // eslint-disable-line
368    }
369  });
370}
371/* harmony default export */ __webpack_exports__["default"] = (initCarousel);
372
373/***/ }),
374
vendor: 14,182 bytes, lines 375-769
375/***/ "./node_modules/swiper/modules/a11y.mjs":
376/*!**********************************************!*\
377  !*** ./node_modules/swiper/modules/a11y.mjs ***!
378  \**********************************************/
379/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
380
381"use strict";
382__webpack_require__.r(__webpack_exports__);
383/* harmony export */ __webpack_require__.d(__webpack_exports__, {
384/* harmony export */   "default": function() { return /* binding */ A11y; }
385/* harmony export */ });
386/* 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");
387/* 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");
388/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
389
390
391
392
393function A11y(_ref) {
394  let {
395    swiper,
396    extendParams,
397    on
398  } = _ref;
399  extendParams({
400    a11y: {
401      enabled: true,
402      notificationClass: 'swiper-notification',
403      prevSlideMessage: 'Previous slide',
404      nextSlideMessage: 'Next slide',
405      firstSlideMessage: 'This is the first slide',
406      lastSlideMessage: 'This is the last slide',
407      paginationBulletMessage: 'Go to slide {{index}}',
408      slideLabelMessage: '{{index}} / {{slidesLength}}',
409      containerMessage: null,
410      containerRoleDescriptionMessage: null,
411      containerRole: null,
412      itemRoleDescriptionMessage: null,
413      slideRole: 'group',
414      id: null,
415      scrollOnFocus: true
416    }
417  });
418  swiper.a11y = {
419    clicked: false
420  };
421  let liveRegion = null;
422  let preventFocusHandler;
423  let focusTargetSlideEl;
424  let visibilityChangedTimestamp = new Date().getTime();
425  function notify(message) {
426    const notification = liveRegion;
427    if (notification.length === 0) return;
428    (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.s)(notification, message);
429  }
430  function getRandomNumber(size) {
431    if (size === void 0) {
432      size = 16;
433    }
434    const randomChar = () => Math.round(16 * Math.random()).toString(16);
435    return 'x'.repeat(size).replace(/x/g, randomChar);
436  }
437  function makeElFocusable(el) {
438    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
439    el.forEach(subEl => {
440      subEl.setAttribute('tabIndex', '0');
441    });
442  }
443  function makeElNotFocusable(el) {
444    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
445    el.forEach(subEl => {
446      subEl.setAttribute('tabIndex', '-1');
447    });
448  }
449  function addElRole(el, role) {
450    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
451    el.forEach(subEl => {
452      subEl.setAttribute('role', role);
453    });
454  }
455  function addElRoleDescription(el, description) {
456    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
457    el.forEach(subEl => {
458      subEl.setAttribute('aria-roledescription', description);
459    });
460  }
461  function addElControls(el, controls) {
462    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
463    el.forEach(subEl => {
464      subEl.setAttribute('aria-controls', controls);
465    });
466  }
467  function addElLabel(el, label) {
468    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
469    el.forEach(subEl => {
470      subEl.setAttribute('aria-label', label);
471    });
472  }
473  function addElId(el, id) {
474    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
475    el.forEach(subEl => {
476      subEl.setAttribute('id', id);
477    });
478  }
479  function addElLive(el, live) {
480    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
481    el.forEach(subEl => {
482      subEl.setAttribute('aria-live', live);
483    });
484  }
485  function disableEl(el) {
486    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
487    el.forEach(subEl => {
488      subEl.setAttribute('aria-disabled', true);
489    });
490  }
491  function enableEl(el) {
492    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
493    el.forEach(subEl => {
494      subEl.setAttribute('aria-disabled', false);
495    });
496  }
497  function onEnterOrSpaceKey(e) {
498    if (e.keyCode !== 13 && e.keyCode !== 32) return;
499    const params = swiper.params.a11y;
500    const targetEl = e.target;
501    if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {
502      if (!e.target.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) return;
503    }
504    if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {
505      const prevEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.prevEl);
506      const nextEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.nextEl);
507      if (nextEls.includes(targetEl)) {
508        if (!(swiper.isEnd && !swiper.params.loop)) {
509          swiper.slideNext();
510        }
511        if (swiper.isEnd) {
512          notify(params.lastSlideMessage);
513        } else {
514          notify(params.nextSlideMessage);
515        }
516      }
517      if (prevEls.includes(targetEl)) {
518        if (!(swiper.isBeginning && !swiper.params.loop)) {
519          swiper.slidePrev();
520        }
521        if (swiper.isBeginning) {
522          notify(params.firstSlideMessage);
523        } else {
524          notify(params.prevSlideMessage);
525        }
526      }
527    }
528    if (swiper.pagination && targetEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) {
529      targetEl.click();
530    }
531  }
532  function updateNavigation() {
533    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
534    const {
535      nextEl,
536      prevEl
537    } = swiper.navigation;
538    if (prevEl) {
539      if (swiper.isBeginning) {
540        disableEl(prevEl);
541        makeElNotFocusable(prevEl);
542      } else {
543        enableEl(prevEl);
544        makeElFocusable(prevEl);
545      }
546    }
547    if (nextEl) {
548      if (swiper.isEnd) {
549        disableEl(nextEl);
550        makeElNotFocusable(nextEl);
551      } else {
552        enableEl(nextEl);
553        makeElFocusable(nextEl);
554      }
555    }
556  }
557  function hasPagination() {
558    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
559  }
560  function hasClickablePagination() {
561    return hasPagination() && swiper.params.pagination.clickable;
562  }
563  function updatePagination() {
564    const params = swiper.params.a11y;
565    if (!hasPagination()) return;
566    swiper.pagination.bullets.forEach(bulletEl => {
567      if (swiper.params.pagination.clickable) {
568        makeElFocusable(bulletEl);
569        if (!swiper.params.pagination.renderBullet) {
570          addElRole(bulletEl, 'button');
571          addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.i)(bulletEl) + 1));
572        }
573      }
574      if (bulletEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletActiveClass))) {
575        bulletEl.setAttribute('aria-current', 'true');
576      } else {
577        bulletEl.removeAttribute('aria-current');
578      }
579    });
580  }
581  const initNavEl = (el, wrapperId, message) => {
582    makeElFocusable(el);
583    if (el.tagName !== 'BUTTON') {
584      addElRole(el, 'button');
585      el.addEventListener('keydown', onEnterOrSpaceKey);
586    }
587    addElLabel(el, message);
588    addElControls(el, wrapperId);
589  };
590  const handlePointerDown = e => {
591    if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {
592      preventFocusHandler = true;
593    }
594    swiper.a11y.clicked = true;
595  };
596  const handlePointerUp = () => {
597    preventFocusHandler = false;
598    requestAnimationFrame(() => {
599      requestAnimationFrame(() => {
600        if (!swiper.destroyed) {
601          swiper.a11y.clicked = false;
602        }
603      });
604    });
605  };
606  const onVisibilityChange = e => {
607    visibilityChangedTimestamp = new Date().getTime();
608  };
609  const handleFocus = e => {
610    if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;
611    if (new Date().getTime() - visibilityChangedTimestamp < 100) return;
612    const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
613    if (!slideEl || !swiper.slides.includes(slideEl)) return;
614    focusTargetSlideEl = slideEl;
615    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
616    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
617    if (isActive || isVisible) return;
618    if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
619    if (swiper.isHorizontal()) {
620      swiper.el.scrollLeft = 0;
621    } else {
622      swiper.el.scrollTop = 0;
623    }
624    requestAnimationFrame(() => {
625      if (preventFocusHandler) return;
626      if (swiper.params.loop) {
627        swiper.slideToLoop(swiper.getSlideIndexWhenGrid(parseInt(slideEl.getAttribute('data-swiper-slide-index'))), 0);
628      } else {
629        swiper.slideTo(swiper.getSlideIndexWhenGrid(swiper.slides.indexOf(slideEl)), 0);
630      }
631      preventFocusHandler = false;
632    });
633  };
634  const initSlides = () => {
635    const params = swiper.params.a11y;
636    if (params.itemRoleDescriptionMessage) {
637      addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);
638    }
639    if (params.slideRole) {
640      addElRole(swiper.slides, params.slideRole);
641    }
642    const slidesLength = swiper.slides.length;
643    if (params.slideLabelMessage) {
644      swiper.slides.forEach((slideEl, index) => {
645        const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;
646        const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
647        addElLabel(slideEl, ariaLabelMessage);
648      });
649    }
650  };
651  const init = () => {
652    const params = swiper.params.a11y;
653    swiper.el.append(liveRegion);
654
655    // Container
656    const containerEl = swiper.el;
657    if (params.containerRoleDescriptionMessage) {
658      addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);
659    }
660    if (params.containerMessage) {
661      addElLabel(containerEl, params.containerMessage);
662    }
663    if (params.containerRole) {
664      addElRole(containerEl, params.containerRole);
665    }
666
667    // Wrapper
668    const wrapperEl = swiper.wrapperEl;
669    const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;
670    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
671    addElId(wrapperEl, wrapperId);
672    addElLive(wrapperEl, live);
673
674    // Slide
675    initSlides();
676
677    // Navigation
678    let {
679      nextEl,
680      prevEl
681    } = swiper.navigation ? swiper.navigation : {};
682    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
683    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
684    if (nextEl) {
685      nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));
686    }
687    if (prevEl) {
688      prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));
689    }
690
691    // Pagination
692    if (hasClickablePagination()) {
693      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
694      paginationEl.forEach(el => {
695        el.addEventListener('keydown', onEnterOrSpaceKey);
696      });
697    }
698
699    // Tab focus
700    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
701    document.addEventListener('visibilitychange', onVisibilityChange);
702    swiper.el.addEventListener('focus', handleFocus, true);
703    swiper.el.addEventListener('focus', handleFocus, true);
704    swiper.el.addEventListener('pointerdown', handlePointerDown, true);
705    swiper.el.addEventListener('pointerup', handlePointerUp, true);
706  };
707  function destroy() {
708    if (liveRegion) liveRegion.remove();
709    let {
710      nextEl,
711      prevEl
712    } = swiper.navigation ? swiper.navigation : {};
713    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
714    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
715    if (nextEl) {
716      nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
717    }
718    if (prevEl) {
719      prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
720    }
721
722    // Pagination
723    if (hasClickablePagination()) {
724      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
725      paginationEl.forEach(el => {
726        el.removeEventListener('keydown', onEnterOrSpaceKey);
727      });
728    }
729    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
730    document.removeEventListener('visibilitychange', onVisibilityChange);
731    // Tab focus
732    if (swiper.el && typeof swiper.el !== 'string') {
733      swiper.el.removeEventListener('focus', handleFocus, true);
734      swiper.el.removeEventListener('pointerdown', handlePointerDown, true);
735      swiper.el.removeEventListener('pointerup', handlePointerUp, true);
736    }
737  }
738  on('beforeInit', () => {
739    liveRegion = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.c)('span', swiper.params.a11y.notificationClass);
740    liveRegion.setAttribute('aria-live', 'assertive');
741    liveRegion.setAttribute('aria-atomic', 'true');
742  });
743  on('afterInit', () => {
744    if (!swiper.params.a11y.enabled) return;
745    init();
746  });
747  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
748    if (!swiper.params.a11y.enabled) return;
749    initSlides();
750  });
751  on('fromEdge toEdge afterInit lock unlock', () => {
752    if (!swiper.params.a11y.enabled) return;
753    updateNavigation();
754  });
755  on('paginationUpdate', () => {
756    if (!swiper.params.a11y.enabled) return;
757    updatePagination();
758  });
759  on('destroy', () => {
760    if (!swiper.params.a11y.enabled) return;
761    destroy();
762  });
763}
764
765
766
767
768/***/ }),
769
vendor: 10,064 bytes, lines 770-1089
770/***/ "./node_modules/swiper/modules/autoplay.mjs":
771/*!**************************************************!*\
772  !*** ./node_modules/swiper/modules/autoplay.mjs ***!
773  \**************************************************/
774/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
775
776"use strict";
777__webpack_require__.r(__webpack_exports__);
778/* harmony export */ __webpack_require__.d(__webpack_exports__, {
779/* harmony export */   "default": function() { return /* binding */ Autoplay; }
780/* harmony export */ });
781/* 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");
782
783
784/* eslint no-underscore-dangle: "off" */
785/* eslint no-use-before-define: "off" */
786function Autoplay(_ref) {
787  let {
788    swiper,
789    extendParams,
790    on,
791    emit,
792    params
793  } = _ref;
794  swiper.autoplay = {
795    running: false,
796    paused: false,
797    timeLeft: 0
798  };
799  extendParams({
800    autoplay: {
801      enabled: false,
802      delay: 3000,
803      waitForTransition: true,
804      disableOnInteraction: false,
805      stopOnLastSlide: false,
806      reverseDirection: false,
807      pauseOnMouseEnter: false
808    }
809  });
810  let timeout;
811  let raf;
812  let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;
813  let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;
814  let autoplayTimeLeft;
815  let autoplayStartTime = new Date().getTime();
816  let wasPaused;
817  let isTouched;
818  let pausedByTouch;
819  let touchStartTimeout;
820  let slideChanged;
821  let pausedByInteraction;
822  let pausedByPointerEnter;
823  function onTransitionEnd(e) {
824    if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;
825    if (e.target !== swiper.wrapperEl) return;
826    swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);
827    if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {
828      return;
829    }
830    resume();
831  }
832  const calcTimeLeft = () => {
833    if (swiper.destroyed || !swiper.autoplay.running) return;
834    if (swiper.autoplay.paused) {
835      wasPaused = true;
836    } else if (wasPaused) {
837      autoplayDelayCurrent = autoplayTimeLeft;
838      wasPaused = false;
839    }
840    const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();
841    swiper.autoplay.timeLeft = timeLeft;
842    emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);
843    raf = requestAnimationFrame(() => {
844      calcTimeLeft();
845    });
846  };
847  const getSlideDelay = () => {
848    let activeSlideEl;
849    if (swiper.virtual && swiper.params.virtual.enabled) {
850      activeSlideEl = swiper.slides.find(slideEl => slideEl.classList.contains('swiper-slide-active'));
851    } else {
852      activeSlideEl = swiper.slides[swiper.activeIndex];
853    }
854    if (!activeSlideEl) return undefined;
855    const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);
856    return currentSlideDelay;
857  };
858  const run = delayForce => {
859    if (swiper.destroyed || !swiper.autoplay.running) return;
860    cancelAnimationFrame(raf);
861    calcTimeLeft();
862    let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;
863    autoplayDelayTotal = swiper.params.autoplay.delay;
864    autoplayDelayCurrent = swiper.params.autoplay.delay;
865    const currentSlideDelay = getSlideDelay();
866    if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {
867      delay = currentSlideDelay;
868      autoplayDelayTotal = currentSlideDelay;
869      autoplayDelayCurrent = currentSlideDelay;
870    }
871    autoplayTimeLeft = delay;
872    const speed = swiper.params.speed;
873    const proceed = () => {
874      if (!swiper || swiper.destroyed) return;
875      if (swiper.params.autoplay.reverseDirection) {
876        if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {
877          swiper.slidePrev(speed, true, true);
878          emit('autoplay');
879        } else if (!swiper.params.autoplay.stopOnLastSlide) {
880          swiper.slideTo(swiper.slides.length - 1, speed, true, true);
881          emit('autoplay');
882        }
883      } else {
884        if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {
885          swiper.slideNext(speed, true, true);
886          emit('autoplay');
887        } else if (!swiper.params.autoplay.stopOnLastSlide) {
888          swiper.slideTo(0, speed, true, true);
889          emit('autoplay');
890        }
891      }
892      if (swiper.params.cssMode) {
893        autoplayStartTime = new Date().getTime();
894        requestAnimationFrame(() => {
895          run();
896        });
897      }
898    };
899    if (delay > 0) {
900      clearTimeout(timeout);
901      timeout = setTimeout(() => {
902        proceed();
903      }, delay);
904    } else {
905      requestAnimationFrame(() => {
906        proceed();
907      });
908    }
909
910    // eslint-disable-next-line
911    return delay;
912  };
913  const start = () => {
914    autoplayStartTime = new Date().getTime();
915    swiper.autoplay.running = true;
916    run();
917    emit('autoplayStart');
918  };
919  const stop = () => {
920    swiper.autoplay.running = false;
921    clearTimeout(timeout);
922    cancelAnimationFrame(raf);
923    emit('autoplayStop');
924  };
925  const pause = (internal, reset) => {
926    if (swiper.destroyed || !swiper.autoplay.running) return;
927    clearTimeout(timeout);
928    if (!internal) {
929      pausedByInteraction = true;
930    }
931    const proceed = () => {
932      emit('autoplayPause');
933      if (swiper.params.autoplay.waitForTransition) {
934        swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);
935      } else {
936        resume();
937      }
938    };
939    swiper.autoplay.paused = true;
940    if (reset) {
941      if (slideChanged) {
942        autoplayTimeLeft = swiper.params.autoplay.delay;
943      }
944      slideChanged = false;
945      proceed();
946      return;
947    }
948    const delay = autoplayTimeLeft || swiper.params.autoplay.delay;
949    autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);
950    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;
951    if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;
952    proceed();
953  };
954  const resume = () => {
955    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;
956    autoplayStartTime = new Date().getTime();
957    if (pausedByInteraction) {
958      pausedByInteraction = false;
959      run(autoplayTimeLeft);
960    } else {
961      run();
962    }
963    swiper.autoplay.paused = false;
964    emit('autoplayResume');
965  };
966  const onVisibilityChange = () => {
967    if (swiper.destroyed || !swiper.autoplay.running) return;
968    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
969    if (document.visibilityState === 'hidden') {
970      pausedByInteraction = true;
971      pause(true);
972    }
973    if (document.visibilityState === 'visible') {
974      resume();
975    }
976  };
977  const onPointerEnter = e => {
978    if (e.pointerType !== 'mouse') return;
979    pausedByInteraction = true;
980    pausedByPointerEnter = true;
981    if (swiper.animating || swiper.autoplay.paused) return;
982    pause(true);
983  };
984  const onPointerLeave = e => {
985    if (e.pointerType !== 'mouse') return;
986    pausedByPointerEnter = false;
987    if (swiper.autoplay.paused) {
988      resume();
989    }
990  };
991  const attachMouseEvents = () => {
992    if (swiper.params.autoplay.pauseOnMouseEnter) {
993      swiper.el.addEventListener('pointerenter', onPointerEnter);
994      swiper.el.addEventListener('pointerleave', onPointerLeave);
995    }
996  };
997  const detachMouseEvents = () => {
998    if (swiper.el && typeof swiper.el !== 'string') {
999      swiper.el.removeEventListener('pointerenter', onPointerEnter);
1000      swiper.el.removeEventListener('pointerleave', onPointerLeave);
1001    }
1002  };
1003  const attachDocumentEvents = () => {
1004    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
1005    document.addEventListener('visibilitychange', onVisibilityChange);
1006  };
1007  const detachDocumentEvents = () => {
1008    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
1009    document.removeEventListener('visibilitychange', onVisibilityChange);
1010  };
1011  on('init', () => {
1012    if (swiper.params.autoplay.enabled) {
1013      attachMouseEvents();
1014      attachDocumentEvents();
1015      start();
1016    }
1017  });
1018  on('destroy', () => {
1019    detachMouseEvents();
1020    detachDocumentEvents();
1021    if (swiper.autoplay.running) {
1022      stop();
1023    }
1024  });
1025  on('_freeModeStaticRelease', () => {
1026    if (pausedByTouch || pausedByInteraction) {
1027      resume();
1028    }
1029  });
1030  on('_freeModeNoMomentumRelease', () => {
1031    if (!swiper.params.autoplay.disableOnInteraction) {
1032      pause(true, true);
1033    } else {
1034      stop();
1035    }
1036  });
1037  on('beforeTransitionStart', (_s, speed, internal) => {
1038    if (swiper.destroyed || !swiper.autoplay.running) return;
1039    if (internal || !swiper.params.autoplay.disableOnInteraction) {
1040      pause(true, true);
1041    } else {
1042      stop();
1043    }
1044  });
1045  on('sliderFirstMove', () => {
1046    if (swiper.destroyed || !swiper.autoplay.running) return;
1047    if (swiper.params.autoplay.disableOnInteraction) {
1048      stop();
1049      return;
1050    }
1051    isTouched = true;
1052    pausedByTouch = false;
1053    pausedByInteraction = false;
1054    touchStartTimeout = setTimeout(() => {
1055      pausedByInteraction = true;
1056      pausedByTouch = true;
1057      pause(true);
1058    }, 200);
1059  });
1060  on('touchEnd', () => {
1061    if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;
1062    clearTimeout(touchStartTimeout);
1063    clearTimeout(timeout);
1064    if (swiper.params.autoplay.disableOnInteraction) {
1065      pausedByTouch = false;
1066      isTouched = false;
1067      return;
1068    }
1069    if (pausedByTouch && swiper.params.cssMode) resume();
1070    pausedByTouch = false;
1071    isTouched = false;
1072  });
1073  on('slideChange', () => {
1074    if (swiper.destroyed || !swiper.autoplay.running) return;
1075    slideChanged = true;
1076  });
1077  Object.assign(swiper.autoplay, {
1078    start,
1079    stop,
1080    pause,
1081    resume
1082  });
1083}
1084
1085
1086
1087
1088/***/ }),
1089
vendor: 7,533 bytes, lines 1090-1296
1090/***/ "./node_modules/swiper/modules/controller.mjs":
1091/*!****************************************************!*\
1092  !*** ./node_modules/swiper/modules/controller.mjs ***!
1093  \****************************************************/
1094/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1095
1096"use strict";
1097__webpack_require__.r(__webpack_exports__);
1098/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1099/* harmony export */   "default": function() { return /* binding */ Controller; }
1100/* harmony export */ });
1101/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1102
1103
1104/* eslint no-bitwise: ["error", { "allow": [">>"] }] */
1105function Controller(_ref) {
1106  let {
1107    swiper,
1108    extendParams,
1109    on
1110  } = _ref;
1111  extendParams({
1112    controller: {
1113      control: undefined,
1114      inverse: false,
1115      by: 'slide' // or 'container'
1116    }
1117  });
1118
1119  swiper.controller = {
1120    control: undefined
1121  };
1122  function LinearSpline(x, y) {
1123    const binarySearch = function search() {
1124      let maxIndex;
1125      let minIndex;
1126      let guess;
1127      return (array, val) => {
1128        minIndex = -1;
1129        maxIndex = array.length;
1130        while (maxIndex - minIndex > 1) {
1131          guess = maxIndex + minIndex >> 1;
1132          if (array[guess] <= val) {
1133            minIndex = guess;
1134          } else {
1135            maxIndex = guess;
1136          }
1137        }
1138        return maxIndex;
1139      };
1140    }();
1141    this.x = x;
1142    this.y = y;
1143    this.lastIndex = x.length - 1;
1144    // Given an x value (x2), return the expected y2 value:
1145    // (x1,y1) is the known point before given value,
1146    // (x3,y3) is the known point after given value.
1147    let i1;
1148    let i3;
1149    this.interpolate = function interpolate(x2) {
1150      if (!x2) return 0;
1151
1152      // Get the indexes of x1 and x3 (the array indexes before and after given x2):
1153      i3 = binarySearch(this.x, x2);
1154      i1 = i3 - 1;
1155
1156      // We have our indexes i1 & i3, so we can calculate already:
1157      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
1158      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
1159    };
1160    return this;
1161  }
1162  function getInterpolateFunction(c) {
1163    swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
1164  }
1165  function setTranslate(_t, byController) {
1166    const controlled = swiper.controller.control;
1167    let multiplier;
1168    let controlledTranslate;
1169    const Swiper = swiper.constructor;
1170    function setControlledTranslate(c) {
1171      if (c.destroyed) return;
1172
1173      // this will create an Interpolate function based on the snapGrids
1174      // x is the Grid of the scrolled scroller and y will be the controlled scroller
1175      // it makes sense to create this only once and recall it for the interpolation
1176      // the function does a lot of value caching for performance
1177      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;
1178      if (swiper.params.controller.by === 'slide') {
1179        getInterpolateFunction(c);
1180        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
1181        // but it did not work out
1182        controlledTranslate = -swiper.controller.spline.interpolate(-translate);
1183      }
1184      if (!controlledTranslate || swiper.params.controller.by === 'container') {
1185        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
1186        if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {
1187          multiplier = 1;
1188        }
1189        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
1190      }
1191      if (swiper.params.controller.inverse) {
1192        controlledTranslate = c.maxTranslate() - controlledTranslate;
1193      }
1194      c.updateProgress(controlledTranslate);
1195      c.setTranslate(controlledTranslate, swiper);
1196      c.updateActiveIndex();
1197      c.updateSlidesClasses();
1198    }
1199    if (Array.isArray(controlled)) {
1200      for (let i = 0; i < controlled.length; i += 1) {
1201        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
1202          setControlledTranslate(controlled[i]);
1203        }
1204      }
1205    } else if (controlled instanceof Swiper && byController !== controlled) {
1206      setControlledTranslate(controlled);
1207    }
1208  }
1209  function setTransition(duration, byController) {
1210    const Swiper = swiper.constructor;
1211    const controlled = swiper.controller.control;
1212    let i;
1213    function setControlledTransition(c) {
1214      if (c.destroyed) return;
1215      c.setTransition(duration, swiper);
1216      if (duration !== 0) {
1217        c.transitionStart();
1218        if (c.params.autoHeight) {
1219          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.n)(() => {
1220            c.updateAutoHeight();
1221          });
1222        }
1223        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(c.wrapperEl, () => {
1224          if (!controlled) return;
1225          c.transitionEnd();
1226        });
1227      }
1228    }
1229    if (Array.isArray(controlled)) {
1230      for (i = 0; i < controlled.length; i += 1) {
1231        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
1232          setControlledTransition(controlled[i]);
1233        }
1234      }
1235    } else if (controlled instanceof Swiper && byController !== controlled) {
1236      setControlledTransition(controlled);
1237    }
1238  }
1239  function removeSpline() {
1240    if (!swiper.controller.control) return;
1241    if (swiper.controller.spline) {
1242      swiper.controller.spline = undefined;
1243      delete swiper.controller.spline;
1244    }
1245  }
1246  on('beforeInit', () => {
1247    if (typeof window !== 'undefined' && (
1248    // eslint-disable-line
1249    typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {
1250      const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];
1251      controlElements.forEach(controlElement => {
1252        if (!swiper.controller.control) swiper.controller.control = [];
1253        if (controlElement && controlElement.swiper) {
1254          swiper.controller.control.push(controlElement.swiper);
1255        } else if (controlElement) {
1256          const eventName = `${swiper.params.eventsPrefix}init`;
1257          const onControllerSwiper = e => {
1258            swiper.controller.control.push(e.detail[0]);
1259            swiper.update();
1260            controlElement.removeEventListener(eventName, onControllerSwiper);
1261          };
1262          controlElement.addEventListener(eventName, onControllerSwiper);
1263        }
1264      });
1265      return;
1266    }
1267    swiper.controller.control = swiper.params.controller.control;
1268  });
1269  on('update', () => {
1270    removeSpline();
1271  });
1272  on('resize', () => {
1273    removeSpline();
1274  });
1275  on('observerUpdate', () => {
1276    removeSpline();
1277  });
1278  on('setTranslate', (_s, translate, byController) => {
1279    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
1280    swiper.controller.setTranslate(translate, byController);
1281  });
1282  on('setTransition', (_s, duration, byController) => {
1283    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
1284    swiper.controller.setTransition(duration, byController);
1285  });
1286  Object.assign(swiper.controller, {
1287    setTranslate,
1288    setTransition
1289  });
1290}
1291
1292
1293
1294
1295/***/ }),
1296
vendor: 6,057 bytes, lines 1297-1444
1297/***/ "./node_modules/swiper/modules/effect-cards.mjs":
1298/*!******************************************************!*\
1299  !*** ./node_modules/swiper/modules/effect-cards.mjs ***!
1300  \******************************************************/
1301/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1302
1303"use strict";
1304__webpack_require__.r(__webpack_exports__);
1305/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1306/* harmony export */   "default": function() { return /* binding */ EffectCards; }
1307/* harmony export */ });
1308/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1309/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1310/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1311/* 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");
1312/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1313
1314
1315
1316
1317
1318
1319function EffectCards(_ref) {
1320  let {
1321    swiper,
1322    extendParams,
1323    on
1324  } = _ref;
1325  extendParams({
1326    cardsEffect: {
1327      slideShadows: true,
1328      rotate: true,
1329      perSlideRotate: 2,
1330      perSlideOffset: 8
1331    }
1332  });
1333  const setTranslate = () => {
1334    const {
1335      slides,
1336      activeIndex,
1337      rtlTranslate: rtl
1338    } = swiper;
1339    const params = swiper.params.cardsEffect;
1340    const {
1341      startTranslate,
1342      isTouched
1343    } = swiper.touchEventsData;
1344    const currentTranslate = rtl ? -swiper.translate : swiper.translate;
1345    for (let i = 0; i < slides.length; i += 1) {
1346      const slideEl = slides[i];
1347      const slideProgress = slideEl.progress;
1348      const progress = Math.min(Math.max(slideProgress, -4), 4);
1349      let offset = slideEl.swiperSlideOffset;
1350      if (swiper.params.centeredSlides && !swiper.params.cssMode) {
1351        swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;
1352      }
1353      if (swiper.params.centeredSlides && swiper.params.cssMode) {
1354        offset -= slides[0].swiperSlideOffset;
1355      }
1356      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;
1357      let tY = 0;
1358      const tZ = -100 * Math.abs(progress);
1359      let scale = 1;
1360      let rotate = -params.perSlideRotate * progress;
1361      let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;
1362      const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;
1363      const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;
1364      const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;
1365      if (isSwipeToNext || isSwipeToPrev) {
1366        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
1367        rotate += -28 * progress * subProgress;
1368        scale += -0.5 * subProgress;
1369        tXAdd += 96 * subProgress;
1370        tY = `${-25 * subProgress * Math.abs(progress)}%`;
1371      }
1372      if (progress < 0) {
1373        // next
1374        tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;
1375      } else if (progress > 0) {
1376        // prev
1377        tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;
1378      } else {
1379        tX = `${tX}px`;
1380      }
1381      if (!swiper.isHorizontal()) {
1382        const prevY = tY;
1383        tY = tX;
1384        tX = prevY;
1385      }
1386      const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
1387
1388      /* eslint-disable */
1389      const transform = `
1390        translate3d(${tX}, ${tY}, ${tZ}px)
1391        rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)
1392        scale(${scaleString})
1393      `;
1394      /* eslint-enable */
1395
1396      if (params.slideShadows) {
1397        // Set shadows
1398        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
1399        if (!shadowEl) {
1400          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('cards', slideEl);
1401        }
1402        if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
1403      }
1404      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
1405      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1406      targetEl.style.transform = transform;
1407    }
1408  };
1409  const setTransition = duration => {
1410    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1411    transformElements.forEach(el => {
1412      el.style.transitionDuration = `${duration}ms`;
1413      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
1414        shadowEl.style.transitionDuration = `${duration}ms`;
1415      });
1416    });
1417    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1418      swiper,
1419      duration,
1420      transformElements
1421    });
1422  };
1423  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1424    effect: 'cards',
1425    swiper,
1426    on,
1427    setTranslate,
1428    setTransition,
1429    perspective: () => true,
1430    overwriteParams: () => ({
1431      _loopSwapReset: false,
1432      watchSlidesProgress: true,
1433      loopAdditionalSlides: swiper.params.cardsEffect.rotate ? 3 : 2,
1434      centeredSlides: true,
1435      virtualTranslate: !swiper.params.cssMode
1436    })
1437  });
1438}
1439
1440
1441
1442
1443/***/ }),
1444
vendor: 5,714 bytes, lines 1445-1567
1445/***/ "./node_modules/swiper/modules/effect-coverflow.mjs":
1446/*!**********************************************************!*\
1447  !*** ./node_modules/swiper/modules/effect-coverflow.mjs ***!
1448  \**********************************************************/
1449/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1450
1451"use strict";
1452__webpack_require__.r(__webpack_exports__);
1453/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1454/* harmony export */   "default": function() { return /* binding */ EffectCoverflow; }
1455/* harmony export */ });
1456/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1457/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1458/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1459/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1460
1461
1462
1463
1464
1465function EffectCoverflow(_ref) {
1466  let {
1467    swiper,
1468    extendParams,
1469    on
1470  } = _ref;
1471  extendParams({
1472    coverflowEffect: {
1473      rotate: 50,
1474      stretch: 0,
1475      depth: 100,
1476      scale: 1,
1477      modifier: 1,
1478      slideShadows: true
1479    }
1480  });
1481  const setTranslate = () => {
1482    const {
1483      width: swiperWidth,
1484      height: swiperHeight,
1485      slides,
1486      slidesSizesGrid
1487    } = swiper;
1488    const params = swiper.params.coverflowEffect;
1489    const isHorizontal = swiper.isHorizontal();
1490    const transform = swiper.translate;
1491    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
1492    const rotate = isHorizontal ? params.rotate : -params.rotate;
1493    const translate = params.depth;
1494    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.p)(swiper);
1495    // Each slide offset from center
1496    for (let i = 0, length = slides.length; i < length; i += 1) {
1497      const slideEl = slides[i];
1498      const slideSize = slidesSizesGrid[i];
1499      const slideOffset = slideEl.swiperSlideOffset;
1500      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
1501      const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
1502      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
1503      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
1504      // var rotateZ = 0
1505      let translateZ = -translate * Math.abs(offsetMultiplier);
1506      let stretch = params.stretch;
1507      // Allow percentage to make a relative stretch for responsive sliders
1508      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
1509        stretch = parseFloat(params.stretch) / 100 * slideSize;
1510      }
1511      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
1512      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
1513      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);
1514
1515      // Fix for ultra small values
1516      if (Math.abs(translateX) < 0.001) translateX = 0;
1517      if (Math.abs(translateY) < 0.001) translateY = 0;
1518      if (Math.abs(translateZ) < 0.001) translateZ = 0;
1519      if (Math.abs(rotateY) < 0.001) rotateY = 0;
1520      if (Math.abs(rotateX) < 0.001) rotateX = 0;
1521      if (Math.abs(scale) < 0.001) scale = 0;
1522      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;
1523      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1524      targetEl.style.transform = slideTransform;
1525      slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
1526      if (params.slideShadows) {
1527        // Set shadows
1528        let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1529        let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1530        if (!shadowBeforeEl) {
1531          shadowBeforeEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'left' : 'top');
1532        }
1533        if (!shadowAfterEl) {
1534          shadowAfterEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
1535        }
1536        if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
1537        if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
1538      }
1539    }
1540  };
1541  const setTransition = duration => {
1542    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
1543    transformElements.forEach(el => {
1544      el.style.transitionDuration = `${duration}ms`;
1545      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
1546        shadowEl.style.transitionDuration = `${duration}ms`;
1547      });
1548    });
1549  };
1550  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1551    effect: 'coverflow',
1552    swiper,
1553    on,
1554    setTranslate,
1555    setTransition,
1556    perspective: () => true,
1557    overwriteParams: () => ({
1558      watchSlidesProgress: true
1559    })
1560  });
1561}
1562
1563
1564
1565
1566/***/ }),
1567
vendor: 6,483 bytes, lines 1568-1733
1568/***/ "./node_modules/swiper/modules/effect-creative.mjs":
1569/*!*********************************************************!*\
1570  !*** ./node_modules/swiper/modules/effect-creative.mjs ***!
1571  \*********************************************************/
1572/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1573
1574"use strict";
1575__webpack_require__.r(__webpack_exports__);
1576/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1577/* harmony export */   "default": function() { return /* binding */ EffectCreative; }
1578/* harmony export */ });
1579/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
1580/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1581/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1582/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
1583/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1584
1585
1586
1587
1588
1589
1590function EffectCreative(_ref) {
1591  let {
1592    swiper,
1593    extendParams,
1594    on
1595  } = _ref;
1596  extendParams({
1597    creativeEffect: {
1598      limitProgress: 1,
1599      shadowPerProgress: false,
1600      progressMultiplier: 1,
1601      perspective: true,
1602      prev: {
1603        translate: [0, 0, 0],
1604        rotate: [0, 0, 0],
1605        opacity: 1,
1606        scale: 1
1607      },
1608      next: {
1609        translate: [0, 0, 0],
1610        rotate: [0, 0, 0],
1611        opacity: 1,
1612        scale: 1
1613      }
1614    }
1615  });
1616  const getTranslateValue = value => {
1617    if (typeof value === 'string') return value;
1618    return `${value}px`;
1619  };
1620  const setTranslate = () => {
1621    const {
1622      slides,
1623      wrapperEl,
1624      slidesSizesGrid
1625    } = swiper;
1626    const params = swiper.params.creativeEffect;
1627    const {
1628      progressMultiplier: multiplier
1629    } = params;
1630    const isCenteredSlides = swiper.params.centeredSlides;
1631    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.p)(swiper);
1632    if (isCenteredSlides) {
1633      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;
1634      wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;
1635    }
1636    for (let i = 0; i < slides.length; i += 1) {
1637      const slideEl = slides[i];
1638      const slideProgress = slideEl.progress;
1639      const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);
1640      let originalProgress = progress;
1641      if (!isCenteredSlides) {
1642        originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);
1643      }
1644      const offset = slideEl.swiperSlideOffset;
1645      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];
1646      const r = [0, 0, 0];
1647      let custom = false;
1648      if (!swiper.isHorizontal()) {
1649        t[1] = t[0];
1650        t[0] = 0;
1651      }
1652      let data = {
1653        translate: [0, 0, 0],
1654        rotate: [0, 0, 0],
1655        scale: 1,
1656        opacity: 1
1657      };
1658      if (progress < 0) {
1659        data = params.next;
1660        custom = true;
1661      } else if (progress > 0) {
1662        data = params.prev;
1663        custom = true;
1664      }
1665      // set translate
1666      t.forEach((value, index) => {
1667        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
1668      });
1669      // set rotates
1670      r.forEach((value, index) => {
1671        let val = data.rotate[index] * Math.abs(progress * multiplier);
1672        r[index] = val;
1673      });
1674      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
1675      const translateString = t.join(', ');
1676      const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;
1677      const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
1678      const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;
1679      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;
1680
1681      // Set shadows
1682      if (custom && data.shadow || !custom) {
1683        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
1684        if (!shadowEl && data.shadow) {
1685          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('creative', slideEl);
1686        }
1687        if (shadowEl) {
1688          const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
1689          shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
1690        }
1691      }
1692      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
1693      targetEl.style.transform = transform;
1694      targetEl.style.opacity = opacityString;
1695      if (data.origin) {
1696        targetEl.style.transformOrigin = data.origin;
1697      }
1698    }
1699  };
1700  const setTransition = duration => {
1701    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
1702    transformElements.forEach(el => {
1703      el.style.transitionDuration = `${duration}ms`;
1704      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
1705        shadowEl.style.transitionDuration = `${duration}ms`;
1706      });
1707    });
1708    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
1709      swiper,
1710      duration,
1711      transformElements,
1712      allSlides: true
1713    });
1714  };
1715  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
1716    effect: 'creative',
1717    swiper,
1718    on,
1719    setTranslate,
1720    setTransition,
1721    perspective: () => swiper.params.creativeEffect.perspective,
1722    overwriteParams: () => ({
1723      watchSlidesProgress: true,
1724      virtualTranslate: !swiper.params.cssMode
1725    })
1726  });
1727}
1728
1729
1730
1731
1732/***/ }),
1733
vendor: 7,636 bytes, lines 1734-1924
1734/***/ "./node_modules/swiper/modules/effect-cube.mjs":
1735/*!*****************************************************!*\
1736  !*** ./node_modules/swiper/modules/effect-cube.mjs ***!
1737  \*****************************************************/
1738/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1739
1740"use strict";
1741__webpack_require__.r(__webpack_exports__);
1742/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1743/* harmony export */   "default": function() { return /* binding */ EffectCube; }
1744/* harmony export */ });
1745/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1746/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1747
1748
1749
1750function EffectCube(_ref) {
1751  let {
1752    swiper,
1753    extendParams,
1754    on
1755  } = _ref;
1756  extendParams({
1757    cubeEffect: {
1758      slideShadows: true,
1759      shadow: true,
1760      shadowOffset: 20,
1761      shadowScale: 0.94
1762    }
1763  });
1764  const createSlideShadows = (slideEl, progress, isHorizontal) => {
1765    let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
1766    let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
1767    if (!shadowBefore) {
1768      shadowBefore = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));
1769      slideEl.append(shadowBefore);
1770    }
1771    if (!shadowAfter) {
1772      shadowAfter = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));
1773      slideEl.append(shadowAfter);
1774    }
1775    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
1776    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
1777  };
1778  const recreateShadows = () => {
1779    // create new ones
1780    const isHorizontal = swiper.isHorizontal();
1781    swiper.slides.forEach(slideEl => {
1782      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
1783      createSlideShadows(slideEl, progress, isHorizontal);
1784    });
1785  };
1786  const setTranslate = () => {
1787    const {
1788      el,
1789      wrapperEl,
1790      slides,
1791      width: swiperWidth,
1792      height: swiperHeight,
1793      rtlTranslate: rtl,
1794      size: swiperSize,
1795      browser
1796    } = swiper;
1797    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(swiper);
1798    const params = swiper.params.cubeEffect;
1799    const isHorizontal = swiper.isHorizontal();
1800    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
1801    let wrapperRotate = 0;
1802    let cubeShadowEl;
1803    if (params.shadow) {
1804      if (isHorizontal) {
1805        cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');
1806        if (!cubeShadowEl) {
1807          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
1808          swiper.wrapperEl.append(cubeShadowEl);
1809        }
1810        cubeShadowEl.style.height = `${swiperWidth}px`;
1811      } else {
1812        cubeShadowEl = el.querySelector('.swiper-cube-shadow');
1813        if (!cubeShadowEl) {
1814          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
1815          el.append(cubeShadowEl);
1816        }
1817      }
1818    }
1819    for (let i = 0; i < slides.length; i += 1) {
1820      const slideEl = slides[i];
1821      let slideIndex = i;
1822      if (isVirtual) {
1823        slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);
1824      }
1825      let slideAngle = slideIndex * 90;
1826      let round = Math.floor(slideAngle / 360);
1827      if (rtl) {
1828        slideAngle = -slideAngle;
1829        round = Math.floor(-slideAngle / 360);
1830      }
1831      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
1832      let tx = 0;
1833      let ty = 0;
1834      let tz = 0;
1835      if (slideIndex % 4 === 0) {
1836        tx = -round * 4 * swiperSize;
1837        tz = 0;
1838      } else if ((slideIndex - 1) % 4 === 0) {
1839        tx = 0;
1840        tz = -round * 4 * swiperSize;
1841      } else if ((slideIndex - 2) % 4 === 0) {
1842        tx = swiperSize + round * 4 * swiperSize;
1843        tz = swiperSize;
1844      } else if ((slideIndex - 3) % 4 === 0) {
1845        tx = -swiperSize;
1846        tz = 3 * swiperSize + swiperSize * 4 * round;
1847      }
1848      if (rtl) {
1849        tx = -tx;
1850      }
1851      if (!isHorizontal) {
1852        ty = tx;
1853        tx = 0;
1854      }
1855      const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
1856      if (progress <= 1 && progress > -1) {
1857        wrapperRotate = slideIndex * 90 + progress * 90;
1858        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
1859      }
1860      slideEl.style.transform = transform;
1861      if (params.slideShadows) {
1862        createSlideShadows(slideEl, progress, isHorizontal);
1863      }
1864    }
1865    wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;
1866    wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;
1867    if (params.shadow) {
1868      if (isHorizontal) {
1869        cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;
1870      } else {
1871        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
1872        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
1873        const scale1 = params.shadowScale;
1874        const scale2 = params.shadowScale / multiplier;
1875        const offset = params.shadowOffset;
1876        cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;
1877      }
1878    }
1879    const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;
1880    wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;
1881    wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
1882  };
1883  const setTransition = duration => {
1884    const {
1885      el,
1886      slides
1887    } = swiper;
1888    slides.forEach(slideEl => {
1889      slideEl.style.transitionDuration = `${duration}ms`;
1890      slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {
1891        subEl.style.transitionDuration = `${duration}ms`;
1892      });
1893    });
1894    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {
1895      const shadowEl = el.querySelector('.swiper-cube-shadow');
1896      if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;
1897    }
1898  };
1899  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
1900    effect: 'cube',
1901    swiper,
1902    on,
1903    setTranslate,
1904    setTransition,
1905    recreateShadows,
1906    getEffectParams: () => swiper.params.cubeEffect,
1907    perspective: () => true,
1908    overwriteParams: () => ({
1909      slidesPerView: 1,
1910      slidesPerGroup: 1,
1911      watchSlidesProgress: true,
1912      resistanceRatio: 0,
1913      spaceBetween: 0,
1914      centeredSlides: false,
1915      virtualTranslate: true
1916    })
1917  });
1918}
1919
1920
1921
1922
1923/***/ }),
1924
vendor: 3,103 bytes, lines 1925-2009
1925/***/ "./node_modules/swiper/modules/effect-fade.mjs":
1926/*!*****************************************************!*\
1927  !*** ./node_modules/swiper/modules/effect-fade.mjs ***!
1928  \*****************************************************/
1929/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1930
1931"use strict";
1932__webpack_require__.r(__webpack_exports__);
1933/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1934/* harmony export */   "default": function() { return /* binding */ EffectFade; }
1935/* harmony export */ });
1936/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
1937/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
1938/* 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");
1939/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1940
1941
1942
1943
1944
1945function EffectFade(_ref) {
1946  let {
1947    swiper,
1948    extendParams,
1949    on
1950  } = _ref;
1951  extendParams({
1952    fadeEffect: {
1953      crossFade: false
1954    }
1955  });
1956  const setTranslate = () => {
1957    const {
1958      slides
1959    } = swiper;
1960    const params = swiper.params.fadeEffect;
1961    for (let i = 0; i < slides.length; i += 1) {
1962      const slideEl = swiper.slides[i];
1963      const offset = slideEl.swiperSlideOffset;
1964      let tx = -offset;
1965      if (!swiper.params.virtualTranslate) tx -= swiper.translate;
1966      let ty = 0;
1967      if (!swiper.isHorizontal()) {
1968        ty = tx;
1969        tx = 0;
1970      }
1971      const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);
1972      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(params, slideEl);
1973      targetEl.style.opacity = slideOpacity;
1974      targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;
1975    }
1976  };
1977  const setTransition = duration => {
1978    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
1979    transformElements.forEach(el => {
1980      el.style.transitionDuration = `${duration}ms`;
1981    });
1982    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_2__.e)({
1983      swiper,
1984      duration,
1985      transformElements,
1986      allSlides: true
1987    });
1988  };
1989  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
1990    effect: 'fade',
1991    swiper,
1992    on,
1993    setTranslate,
1994    setTransition,
1995    overwriteParams: () => ({
1996      slidesPerView: 1,
1997      slidesPerGroup: 1,
1998      watchSlidesProgress: true,
1999      spaceBetween: 0,
2000      virtualTranslate: !swiper.params.cssMode
2001    })
2002  });
2003}
2004
2005
2006
2007
2008/***/ }),
2009
vendor: 5,336 bytes, lines 2010-2140
2010/***/ "./node_modules/swiper/modules/effect-flip.mjs":
2011/*!*****************************************************!*\
2012  !*** ./node_modules/swiper/modules/effect-flip.mjs ***!
2013  \*****************************************************/
2014/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
2015
2016"use strict";
2017__webpack_require__.r(__webpack_exports__);
2018/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2019/* harmony export */   "default": function() { return /* binding */ EffectFlip; }
2020/* harmony export */ });
2021/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
2022/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
2023/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
2024/* 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");
2025/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2026
2027
2028
2029
2030
2031
2032function EffectFlip(_ref) {
2033  let {
2034    swiper,
2035    extendParams,
2036    on
2037  } = _ref;
2038  extendParams({
2039    flipEffect: {
2040      slideShadows: true,
2041      limitRotation: true
2042    }
2043  });
2044  const createSlideShadows = (slideEl, progress) => {
2045    let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
2046    let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
2047    if (!shadowBefore) {
2048      shadowBefore = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
2049    }
2050    if (!shadowAfter) {
2051      shadowAfter = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
2052    }
2053    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
2054    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
2055  };
2056  const recreateShadows = () => {
2057    // Set shadows
2058    swiper.params.flipEffect;
2059    swiper.slides.forEach(slideEl => {
2060      let progress = slideEl.progress;
2061      if (swiper.params.flipEffect.limitRotation) {
2062        progress = Math.max(Math.min(slideEl.progress, 1), -1);
2063      }
2064      createSlideShadows(slideEl, progress);
2065    });
2066  };
2067  const setTranslate = () => {
2068    const {
2069      slides,
2070      rtlTranslate: rtl
2071    } = swiper;
2072    const params = swiper.params.flipEffect;
2073    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.p)(swiper);
2074    for (let i = 0; i < slides.length; i += 1) {
2075      const slideEl = slides[i];
2076      let progress = slideEl.progress;
2077      if (swiper.params.flipEffect.limitRotation) {
2078        progress = Math.max(Math.min(slideEl.progress, 1), -1);
2079      }
2080      const offset = slideEl.swiperSlideOffset;
2081      const rotate = -180 * progress;
2082      let rotateY = rotate;
2083      let rotateX = 0;
2084      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
2085      let ty = 0;
2086      if (!swiper.isHorizontal()) {
2087        ty = tx;
2088        tx = 0;
2089        rotateX = -rotateY;
2090        rotateY = 0;
2091      } else if (rtl) {
2092        rotateY = -rotateY;
2093      }
2094      slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
2095      if (params.slideShadows) {
2096        createSlideShadows(slideEl, progress);
2097      }
2098      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;
2099      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
2100      targetEl.style.transform = transform;
2101    }
2102  };
2103  const setTransition = duration => {
2104    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
2105    transformElements.forEach(el => {
2106      el.style.transitionDuration = `${duration}ms`;
2107      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
2108        shadowEl.style.transitionDuration = `${duration}ms`;
2109      });
2110    });
2111    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
2112      swiper,
2113      duration,
2114      transformElements
2115    });
2116  };
2117  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
2118    effect: 'flip',
2119    swiper,
2120    on,
2121    setTranslate,
2122    setTransition,
2123    recreateShadows,
2124    getEffectParams: () => swiper.params.flipEffect,
2125    perspective: () => true,
2126    overwriteParams: () => ({
2127      slidesPerView: 1,
2128      slidesPerGroup: 1,
2129      watchSlidesProgress: true,
2130      spaceBetween: 0,
2131      virtualTranslate: !swiper.params.cssMode
2132    })
2133  });
2134}
2135
2136
2137
2138
2139/***/ }),
2140
vendor: 9,261 bytes, lines 2141-2393
2141/***/ "./node_modules/swiper/modules/free-mode.mjs":
2142/*!***************************************************!*\
2143  !*** ./node_modules/swiper/modules/free-mode.mjs ***!
2144  \***************************************************/
2145/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
2146
2147"use strict";
2148__webpack_require__.r(__webpack_exports__);
2149/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2150/* harmony export */   "default": function() { return /* binding */ freeMode; }
2151/* harmony export */ });
2152/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2153
2154
2155function freeMode(_ref) {
2156  let {
2157    swiper,
2158    extendParams,
2159    emit,
2160    once
2161  } = _ref;
2162  extendParams({
2163    freeMode: {
2164      enabled: false,
2165      momentum: true,
2166      momentumRatio: 1,
2167      momentumBounce: true,
2168      momentumBounceRatio: 1,
2169      momentumVelocityRatio: 1,
2170      sticky: false,
2171      minimumVelocity: 0.02
2172    }
2173  });
2174  function onTouchStart() {
2175    if (swiper.params.cssMode) return;
2176    const translate = swiper.getTranslate();
2177    swiper.setTranslate(translate);
2178    swiper.setTransition(0);
2179    swiper.touchEventsData.velocities.length = 0;
2180    swiper.freeMode.onTouchEnd({
2181      currentPos: swiper.rtl ? swiper.translate : -swiper.translate
2182    });
2183  }
2184  function onTouchMove() {
2185    if (swiper.params.cssMode) return;
2186    const {
2187      touchEventsData: data,
2188      touches
2189    } = swiper;
2190    // Velocity
2191    if (data.velocities.length === 0) {
2192      data.velocities.push({
2193        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
2194        time: data.touchStartTime
2195      });
2196    }
2197    data.velocities.push({
2198      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
2199      time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.f)()
2200    });
2201  }
2202  function onTouchEnd(_ref2) {
2203    let {
2204      currentPos
2205    } = _ref2;
2206    if (swiper.params.cssMode) return;
2207    const {
2208      params,
2209      wrapperEl,
2210      rtlTranslate: rtl,
2211      snapGrid,
2212      touchEventsData: data
2213    } = swiper;
2214    // Time diff
2215    const touchEndTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.f)();
2216    const timeDiff = touchEndTime - data.touchStartTime;
2217    if (currentPos < -swiper.minTranslate()) {
2218      swiper.slideTo(swiper.activeIndex);
2219      return;
2220    }
2221    if (currentPos > -swiper.maxTranslate()) {
2222      if (swiper.slides.length < snapGrid.length) {
2223        swiper.slideTo(snapGrid.length - 1);
2224      } else {
2225        swiper.slideTo(swiper.slides.length - 1);
2226      }
2227      return;
2228    }
2229    if (params.freeMode.momentum) {
2230      if (data.velocities.length > 1) {
2231        const lastMoveEvent = data.velocities.pop();
2232        const velocityEvent = data.velocities.pop();
2233        const distance = lastMoveEvent.position - velocityEvent.position;
2234        const time = lastMoveEvent.time - velocityEvent.time;
2235        swiper.velocity = distance / time;
2236        swiper.velocity /= 2;
2237        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
2238          swiper.velocity = 0;
2239        }
2240        // this implies that the user stopped moving a finger then released.
2241        // There would be no events with distance zero, so the last event is stale.
2242        if (time > 150 || (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.f)() - lastMoveEvent.time > 300) {
2243          swiper.velocity = 0;
2244        }
2245      } else {
2246        swiper.velocity = 0;
2247      }
2248      swiper.velocity *= params.freeMode.momentumVelocityRatio;
2249      data.velocities.length = 0;
2250      let momentumDuration = 1000 * params.freeMode.momentumRatio;
2251      const momentumDistance = swiper.velocity * momentumDuration;
2252      let newPosition = swiper.translate + momentumDistance;
2253      if (rtl) newPosition = -newPosition;
2254      let doBounce = false;
2255      let afterBouncePosition;
2256      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
2257      let needsLoopFix;
2258      if (newPosition < swiper.maxTranslate()) {
2259        if (params.freeMode.momentumBounce) {
2260          if (newPosition + swiper.maxTranslate() < -bounceAmount) {
2261            newPosition = swiper.maxTranslate() - bounceAmount;
2262          }
2263          afterBouncePosition = swiper.maxTranslate();
2264          doBounce = true;
2265          data.allowMomentumBounce = true;
2266        } else {
2267          newPosition = swiper.maxTranslate();
2268        }
2269        if (params.loop && params.centeredSlides) needsLoopFix = true;
2270      } else if (newPosition > swiper.minTranslate()) {
2271        if (params.freeMode.momentumBounce) {
2272          if (newPosition - swiper.minTranslate() > bounceAmount) {
2273            newPosition = swiper.minTranslate() + bounceAmount;
2274          }
2275          afterBouncePosition = swiper.minTranslate();
2276          doBounce = true;
2277          data.allowMomentumBounce = true;
2278        } else {
2279          newPosition = swiper.minTranslate();
2280        }
2281        if (params.loop && params.centeredSlides) needsLoopFix = true;
2282      } else if (params.freeMode.sticky) {
2283        let nextSlide;
2284        for (let j = 0; j < snapGrid.length; j += 1) {
2285          if (snapGrid[j] > -newPosition) {
2286            nextSlide = j;
2287            break;
2288          }
2289        }
2290        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
2291          newPosition = snapGrid[nextSlide];
2292        } else {
2293          newPosition = snapGrid[nextSlide - 1];
2294        }
2295        newPosition = -newPosition;
2296      }
2297      if (needsLoopFix) {
2298        once('transitionEnd', () => {
2299          swiper.loopFix();
2300        });
2301      }
2302      // Fix duration
2303      if (swiper.velocity !== 0) {
2304        if (rtl) {
2305          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
2306        } else {
2307          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
2308        }
2309        if (params.freeMode.sticky) {
2310          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
2311          // event, then durations can be 20+ seconds to slide one (or zero!) slides.
2312          // It's easy to see this when simulating touch with mouse events. To fix this,
2313          // limit single-slide swipes to the default slide duration. This also has the
2314          // nice side effect of matching slide speed if the user stopped moving before
2315          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
2316          // For faster swipes, also apply limits (albeit higher ones).
2317          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
2318          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
2319          if (moveDistance < currentSlideSize) {
2320            momentumDuration = params.speed;
2321          } else if (moveDistance < 2 * currentSlideSize) {
2322            momentumDuration = params.speed * 1.5;
2323          } else {
2324            momentumDuration = params.speed * 2.5;
2325          }
2326        }
2327      } else if (params.freeMode.sticky) {
2328        swiper.slideToClosest();
2329        return;
2330      }
2331      if (params.freeMode.momentumBounce && doBounce) {
2332        swiper.updateProgress(afterBouncePosition);
2333        swiper.setTransition(momentumDuration);
2334        swiper.setTranslate(newPosition);
2335        swiper.transitionStart(true, swiper.swipeDirection);
2336        swiper.animating = true;
2337        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(wrapperEl, () => {
2338          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
2339          emit('momentumBounce');
2340          swiper.setTransition(params.speed);
2341          setTimeout(() => {
2342            swiper.setTranslate(afterBouncePosition);
2343            (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(wrapperEl, () => {
2344              if (!swiper || swiper.destroyed) return;
2345              swiper.transitionEnd();
2346            });
2347          }, 0);
2348        });
2349      } else if (swiper.velocity) {
2350        emit('_freeModeNoMomentumRelease');
2351        swiper.updateProgress(newPosition);
2352        swiper.setTransition(momentumDuration);
2353        swiper.setTranslate(newPosition);
2354        swiper.transitionStart(true, swiper.swipeDirection);
2355        if (!swiper.animating) {
2356          swiper.animating = true;
2357          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(wrapperEl, () => {
2358            if (!swiper || swiper.destroyed) return;
2359            swiper.transitionEnd();
2360          });
2361        }
2362      } else {
2363        swiper.updateProgress(newPosition);
2364      }
2365      swiper.updateActiveIndex();
2366      swiper.updateSlidesClasses();
2367    } else if (params.freeMode.sticky) {
2368      swiper.slideToClosest();
2369      return;
2370    } else if (params.freeMode) {
2371      emit('_freeModeNoMomentumRelease');
2372    }
2373    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
2374      emit('_freeModeStaticRelease');
2375      swiper.updateProgress();
2376      swiper.updateActiveIndex();
2377      swiper.updateSlidesClasses();
2378    }
2379  }
2380  Object.assign(swiper, {
2381    freeMode: {
2382      onTouchStart,
2383      onTouchMove,
2384      onTouchEnd
2385    }
2386  });
2387}
2388
2389
2390
2391
2392/***/ }),
2393
vendor: 5,731 bytes, lines 2394-2563
2394/***/ "./node_modules/swiper/modules/grid.mjs":
2395/*!**********************************************!*\
2396  !*** ./node_modules/swiper/modules/grid.mjs ***!
2397  \**********************************************/
2398/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
2399
2400"use strict";
2401__webpack_require__.r(__webpack_exports__);
2402/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2403/* harmony export */   "default": function() { return /* binding */ Grid; }
2404/* harmony export */ });
2405function Grid(_ref) {
2406  let {
2407    swiper,
2408    extendParams,
2409    on
2410  } = _ref;
2411  extendParams({
2412    grid: {
2413      rows: 1,
2414      fill: 'column'
2415    }
2416  });
2417  let slidesNumberEvenToRows;
2418  let slidesPerRow;
2419  let numFullColumns;
2420  let wasMultiRow;
2421  const getSpaceBetween = () => {
2422    let spaceBetween = swiper.params.spaceBetween;
2423    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
2424      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
2425    } else if (typeof spaceBetween === 'string') {
2426      spaceBetween = parseFloat(spaceBetween);
2427    }
2428    return spaceBetween;
2429  };
2430  const initSlides = slides => {
2431    const {
2432      slidesPerView
2433    } = swiper.params;
2434    const {
2435      rows,
2436      fill
2437    } = swiper.params.grid;
2438    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
2439    numFullColumns = Math.floor(slidesLength / rows);
2440    if (Math.floor(slidesLength / rows) === slidesLength / rows) {
2441      slidesNumberEvenToRows = slidesLength;
2442    } else {
2443      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
2444    }
2445    if (slidesPerView !== 'auto' && fill === 'row') {
2446      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
2447    }
2448    slidesPerRow = slidesNumberEvenToRows / rows;
2449  };
2450  const unsetSlides = () => {
2451    if (swiper.slides) {
2452      swiper.slides.forEach(slide => {
2453        if (slide.swiperSlideGridSet) {
2454          slide.style.height = '';
2455          slide.style[swiper.getDirectionLabel('margin-top')] = '';
2456        }
2457      });
2458    }
2459  };
2460  const updateSlide = (i, slide, slides) => {
2461    const {
2462      slidesPerGroup
2463    } = swiper.params;
2464    const spaceBetween = getSpaceBetween();
2465    const {
2466      rows,
2467      fill
2468    } = swiper.params.grid;
2469    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
2470    // Set slides order
2471    let newSlideOrderIndex;
2472    let column;
2473    let row;
2474    if (fill === 'row' && slidesPerGroup > 1) {
2475      const groupIndex = Math.floor(i / (slidesPerGroup * rows));
2476      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
2477      const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
2478      row = Math.floor(slideIndexInGroup / columnsInGroup);
2479      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
2480      newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
2481      slide.style.order = newSlideOrderIndex;
2482    } else if (fill === 'column') {
2483      column = Math.floor(i / rows);
2484      row = i - column * rows;
2485      if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
2486        row += 1;
2487        if (row >= rows) {
2488          row = 0;
2489          column += 1;
2490        }
2491      }
2492    } else {
2493      row = Math.floor(i / slidesPerRow);
2494      column = i - row * slidesPerRow;
2495    }
2496    slide.row = row;
2497    slide.column = column;
2498    slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;
2499    slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
2500    slide.swiperSlideGridSet = true;
2501  };
2502  const updateWrapperSize = (slideSize, snapGrid) => {
2503    const {
2504      centeredSlides,
2505      roundLengths
2506    } = swiper.params;
2507    const spaceBetween = getSpaceBetween();
2508    const {
2509      rows
2510    } = swiper.params.grid;
2511    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
2512    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
2513    if (!swiper.params.cssMode) {
2514      swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
2515    }
2516    if (centeredSlides) {
2517      const newSlidesGrid = [];
2518      for (let i = 0; i < snapGrid.length; i += 1) {
2519        let slidesGridItem = snapGrid[i];
2520        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
2521        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
2522      }
2523      snapGrid.splice(0, snapGrid.length);
2524      snapGrid.push(...newSlidesGrid);
2525    }
2526  };
2527  const onInit = () => {
2528    wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
2529  };
2530  const onUpdate = () => {
2531    const {
2532      params,
2533      el
2534    } = swiper;
2535    const isMultiRow = params.grid && params.grid.rows > 1;
2536    if (wasMultiRow && !isMultiRow) {
2537      el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
2538      numFullColumns = 1;
2539      swiper.emitContainerClasses();
2540    } else if (!wasMultiRow && isMultiRow) {
2541      el.classList.add(`${params.containerModifierClass}grid`);
2542      if (params.grid.fill === 'column') {
2543        el.classList.add(`${params.containerModifierClass}grid-column`);
2544      }
2545      swiper.emitContainerClasses();
2546    }
2547    wasMultiRow = isMultiRow;
2548  };
2549  on('init', onInit);
2550  on('update', onUpdate);
2551  swiper.grid = {
2552    initSlides,
2553    unsetSlides,
2554    updateSlide,
2555    updateWrapperSize
2556  };
2557}
2558
2559
2560
2561
2562/***/ }),
2563
vendor: 4,427 bytes, lines 2564-2673
2564/***/ "./node_modules/swiper/modules/hash-navigation.mjs":
2565/*!*********************************************************!*\
2566  !*** ./node_modules/swiper/modules/hash-navigation.mjs ***!
2567  \*********************************************************/
2568/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
2569
2570"use strict";
2571__webpack_require__.r(__webpack_exports__);
2572/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2573/* harmony export */   "default": function() { return /* binding */ HashNavigation; }
2574/* harmony export */ });
2575/* 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");
2576/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2577
2578
2579
2580function HashNavigation(_ref) {
2581  let {
2582    swiper,
2583    extendParams,
2584    emit,
2585    on
2586  } = _ref;
2587  let initialized = false;
2588  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
2589  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2590  extendParams({
2591    hashNavigation: {
2592      enabled: false,
2593      replaceState: false,
2594      watchState: false,
2595      getSlideIndex(_s, hash) {
2596        if (swiper.virtual && swiper.params.virtual.enabled) {
2597          const slideWithHash = swiper.slides.find(slideEl => slideEl.getAttribute('data-hash') === hash);
2598          if (!slideWithHash) return 0;
2599          const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
2600          return index;
2601        }
2602        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]);
2603      }
2604    }
2605  });
2606  const onHashChange = () => {
2607    emit('hashChange');
2608    const newHash = document.location.hash.replace('#', '');
2609    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
2610    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';
2611    if (newHash !== activeSlideHash) {
2612      const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);
2613      if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;
2614      swiper.slideTo(newIndex);
2615    }
2616  };
2617  const setHash = () => {
2618    if (!initialized || !swiper.params.hashNavigation.enabled) return;
2619    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
2620    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';
2621    if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
2622      window.history.replaceState(null, null, `#${activeSlideHash}` || '');
2623      emit('hashSet');
2624    } else {
2625      document.location.hash = activeSlideHash || '';
2626      emit('hashSet');
2627    }
2628  };
2629  const init = () => {
2630    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;
2631    initialized = true;
2632    const hash = document.location.hash.replace('#', '');
2633    if (hash) {
2634      const speed = 0;
2635      const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);
2636      swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);
2637    }
2638    if (swiper.params.hashNavigation.watchState) {
2639      window.addEventListener('hashchange', onHashChange);
2640    }
2641  };
2642  const destroy = () => {
2643    if (swiper.params.hashNavigation.watchState) {
2644      window.removeEventListener('hashchange', onHashChange);
2645    }
2646  };
2647  on('init', () => {
2648    if (swiper.params.hashNavigation.enabled) {
2649      init();
2650    }
2651  });
2652  on('destroy', () => {
2653    if (swiper.params.hashNavigation.enabled) {
2654      destroy();
2655    }
2656  });
2657  on('transitionEnd _freeModeNoMomentumRelease', () => {
2658    if (initialized) {
2659      setHash();
2660    }
2661  });
2662  on('slideChange', () => {
2663    if (initialized && swiper.params.cssMode) {
2664      setHash();
2665    }
2666  });
2667}
2668
2669
2670
2671
2672/***/ }),
2673
vendor: 5,144 bytes, lines 2674-2831
2674/***/ "./node_modules/swiper/modules/history.mjs":
2675/*!*************************************************!*\
2676  !*** ./node_modules/swiper/modules/history.mjs ***!
2677  \*************************************************/
2678/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
2679
2680"use strict";
2681__webpack_require__.r(__webpack_exports__);
2682/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2683/* harmony export */   "default": function() { return /* binding */ History; }
2684/* harmony export */ });
2685/* 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");
2686
2687
2688function History(_ref) {
2689  let {
2690    swiper,
2691    extendParams,
2692    on
2693  } = _ref;
2694  extendParams({
2695    history: {
2696      enabled: false,
2697      root: '',
2698      replaceState: false,
2699      key: 'slides',
2700      keepQuery: false
2701    }
2702  });
2703  let initialized = false;
2704  let paths = {};
2705  const slugify = text => {
2706    return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
2707  };
2708  const getPathValues = urlOverride => {
2709    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2710    let location;
2711    if (urlOverride) {
2712      location = new URL(urlOverride);
2713    } else {
2714      location = window.location;
2715    }
2716    const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');
2717    const total = pathArray.length;
2718    const key = pathArray[total - 2];
2719    const value = pathArray[total - 1];
2720    return {
2721      key,
2722      value
2723    };
2724  };
2725  const setHistory = (key, index) => {
2726    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2727    if (!initialized || !swiper.params.history.enabled) return;
2728    let location;
2729    if (swiper.params.url) {
2730      location = new URL(swiper.params.url);
2731    } else {
2732      location = window.location;
2733    }
2734    const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : swiper.slides[index];
2735    let value = slugify(slide.getAttribute('data-history'));
2736    if (swiper.params.history.root.length > 0) {
2737      let root = swiper.params.history.root;
2738      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);
2739      value = `${root}/${key ? `${key}/` : ''}${value}`;
2740    } else if (!location.pathname.includes(key)) {
2741      value = `${key ? `${key}/` : ''}${value}`;
2742    }
2743    if (swiper.params.history.keepQuery) {
2744      value += location.search;
2745    }
2746    const currentState = window.history.state;
2747    if (currentState && currentState.value === value) {
2748      return;
2749    }
2750    if (swiper.params.history.replaceState) {
2751      window.history.replaceState({
2752        value
2753      }, null, value);
2754    } else {
2755      window.history.pushState({
2756        value
2757      }, null, value);
2758    }
2759  };
2760  const scrollToSlide = (speed, value, runCallbacks) => {
2761    if (value) {
2762      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
2763        const slide = swiper.slides[i];
2764        const slideHistory = slugify(slide.getAttribute('data-history'));
2765        if (slideHistory === value) {
2766          const index = swiper.getSlideIndex(slide);
2767          swiper.slideTo(index, speed, runCallbacks);
2768        }
2769      }
2770    } else {
2771      swiper.slideTo(0, speed, runCallbacks);
2772    }
2773  };
2774  const setHistoryPopState = () => {
2775    paths = getPathValues(swiper.params.url);
2776    scrollToSlide(swiper.params.speed, paths.value, false);
2777  };
2778  const init = () => {
2779    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2780    if (!swiper.params.history) return;
2781    if (!window.history || !window.history.pushState) {
2782      swiper.params.history.enabled = false;
2783      swiper.params.hashNavigation.enabled = true;
2784      return;
2785    }
2786    initialized = true;
2787    paths = getPathValues(swiper.params.url);
2788    if (!paths.key && !paths.value) {
2789      if (!swiper.params.history.replaceState) {
2790        window.addEventListener('popstate', setHistoryPopState);
2791      }
2792      return;
2793    }
2794    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
2795    if (!swiper.params.history.replaceState) {
2796      window.addEventListener('popstate', setHistoryPopState);
2797    }
2798  };
2799  const destroy = () => {
2800    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2801    if (!swiper.params.history.replaceState) {
2802      window.removeEventListener('popstate', setHistoryPopState);
2803    }
2804  };
2805  on('init', () => {
2806    if (swiper.params.history.enabled) {
2807      init();
2808    }
2809  });
2810  on('destroy', () => {
2811    if (swiper.params.history.enabled) {
2812      destroy();
2813    }
2814  });
2815  on('transitionEnd _freeModeNoMomentumRelease', () => {
2816    if (initialized) {
2817      setHistory(swiper.params.history.key, swiper.activeIndex);
2818    }
2819  });
2820  on('slideChange', () => {
2821    if (initialized && swiper.params.cssMode) {
2822      setHistory(swiper.params.history.key, swiper.activeIndex);
2823    }
2824  });
2825}
2826
2827
2828
2829
2830/***/ }),
2831
vendor: 5,339 bytes, lines 2832-2965
2832/***/ "./node_modules/swiper/modules/keyboard.mjs":
2833/*!**************************************************!*\
2834  !*** ./node_modules/swiper/modules/keyboard.mjs ***!
2835  \**************************************************/
2836/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
2837
2838"use strict";
2839__webpack_require__.r(__webpack_exports__);
2840/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2841/* harmony export */   "default": function() { return /* binding */ Keyboard; }
2842/* harmony export */ });
2843/* 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");
2844/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2845
2846
2847
2848/* eslint-disable consistent-return */
2849function Keyboard(_ref) {
2850  let {
2851    swiper,
2852    extendParams,
2853    on,
2854    emit
2855  } = _ref;
2856  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
2857  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
2858  swiper.keyboard = {
2859    enabled: false
2860  };
2861  extendParams({
2862    keyboard: {
2863      enabled: false,
2864      onlyInViewport: true,
2865      pageUpDown: true
2866    }
2867  });
2868  function handle(event) {
2869    if (!swiper.enabled) return;
2870    const {
2871      rtlTranslate: rtl
2872    } = swiper;
2873    let e = event;
2874    if (e.originalEvent) e = e.originalEvent; // jquery fix
2875    const kc = e.keyCode || e.charCode;
2876    const pageUpDown = swiper.params.keyboard.pageUpDown;
2877    const isPageUp = pageUpDown && kc === 33;
2878    const isPageDown = pageUpDown && kc === 34;
2879    const isArrowLeft = kc === 37;
2880    const isArrowRight = kc === 39;
2881    const isArrowUp = kc === 38;
2882    const isArrowDown = kc === 40;
2883    // Directions locks
2884    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {
2885      return false;
2886    }
2887    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {
2888      return false;
2889    }
2890    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
2891      return undefined;
2892    }
2893    if (document.activeElement && (document.activeElement.isContentEditable || document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea'))) {
2894      return undefined;
2895    }
2896    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {
2897      let inView = false;
2898      // Check that swiper should be inside of visible area of window
2899      if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {
2900        return undefined;
2901      }
2902      const el = swiper.el;
2903      const swiperWidth = el.clientWidth;
2904      const swiperHeight = el.clientHeight;
2905      const windowWidth = window.innerWidth;
2906      const windowHeight = window.innerHeight;
2907      const swiperOffset = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(el);
2908      if (rtl) swiperOffset.left -= el.scrollLeft;
2909      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
2910      for (let i = 0; i < swiperCoord.length; i += 1) {
2911        const point = swiperCoord[i];
2912        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
2913          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
2914          inView = true;
2915        }
2916      }
2917      if (!inView) return undefined;
2918    }
2919    if (swiper.isHorizontal()) {
2920      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
2921        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
2922      }
2923      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
2924      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
2925    } else {
2926      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
2927        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
2928      }
2929      if (isPageDown || isArrowDown) swiper.slideNext();
2930      if (isPageUp || isArrowUp) swiper.slidePrev();
2931    }
2932    emit('keyPress', kc);
2933    return undefined;
2934  }
2935  function enable() {
2936    if (swiper.keyboard.enabled) return;
2937    document.addEventListener('keydown', handle);
2938    swiper.keyboard.enabled = true;
2939  }
2940  function disable() {
2941    if (!swiper.keyboard.enabled) return;
2942    document.removeEventListener('keydown', handle);
2943    swiper.keyboard.enabled = false;
2944  }
2945  on('init', () => {
2946    if (swiper.params.keyboard.enabled) {
2947      enable();
2948    }
2949  });
2950  on('destroy', () => {
2951    if (swiper.keyboard.enabled) {
2952      disable();
2953    }
2954  });
2955  Object.assign(swiper.keyboard, {
2956    enable,
2957    disable
2958  });
2959}
2960
2961
2962
2963
2964/***/ }),
2965
vendor: 5,875 bytes, lines 2966-3174
2966/***/ "./node_modules/swiper/modules/manipulation.mjs":
2967/*!******************************************************!*\
2968  !*** ./node_modules/swiper/modules/manipulation.mjs ***!
2969  \******************************************************/
2970/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
2971
2972"use strict";
2973__webpack_require__.r(__webpack_exports__);
2974/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2975/* harmony export */   "default": function() { return /* binding */ Manipulation; }
2976/* harmony export */ });
2977/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2978
2979
2980function appendSlide(slides) {
2981  const swiper = this;
2982  const {
2983    params,
2984    slidesEl
2985  } = swiper;
2986  if (params.loop) {
2987    swiper.loopDestroy();
2988  }
2989  const appendElement = slideEl => {
2990    if (typeof slideEl === 'string') {
2991      const tempDOM = document.createElement('div');
2992      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.s)(tempDOM, slideEl);
2993      slidesEl.append(tempDOM.children[0]);
2994      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.s)(tempDOM, '');
2995    } else {
2996      slidesEl.append(slideEl);
2997    }
2998  };
2999  if (typeof slides === 'object' && 'length' in slides) {
3000    for (let i = 0; i < slides.length; i += 1) {
3001      if (slides[i]) appendElement(slides[i]);
3002    }
3003  } else {
3004    appendElement(slides);
3005  }
3006  swiper.recalcSlides();
3007  if (params.loop) {
3008    swiper.loopCreate();
3009  }
3010  if (!params.observer || swiper.isElement) {
3011    swiper.update();
3012  }
3013}
3014
3015function prependSlide(slides) {
3016  const swiper = this;
3017  const {
3018    params,
3019    activeIndex,
3020    slidesEl
3021  } = swiper;
3022  if (params.loop) {
3023    swiper.loopDestroy();
3024  }
3025  let newActiveIndex = activeIndex + 1;
3026  const prependElement = slideEl => {
3027    if (typeof slideEl === 'string') {
3028      const tempDOM = document.createElement('div');
3029      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.s)(tempDOM, slideEl);
3030      slidesEl.prepend(tempDOM.children[0]);
3031      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.s)(tempDOM, '');
3032    } else {
3033      slidesEl.prepend(slideEl);
3034    }
3035  };
3036  if (typeof slides === 'object' && 'length' in slides) {
3037    for (let i = 0; i < slides.length; i += 1) {
3038      if (slides[i]) prependElement(slides[i]);
3039    }
3040    newActiveIndex = activeIndex + slides.length;
3041  } else {
3042    prependElement(slides);
3043  }
3044  swiper.recalcSlides();
3045  if (params.loop) {
3046    swiper.loopCreate();
3047  }
3048  if (!params.observer || swiper.isElement) {
3049    swiper.update();
3050  }
3051  swiper.slideTo(newActiveIndex, 0, false);
3052}
3053
3054function addSlide(index, slides) {
3055  const swiper = this;
3056  const {
3057    params,
3058    activeIndex,
3059    slidesEl
3060  } = swiper;
3061  let activeIndexBuffer = activeIndex;
3062  if (params.loop) {
3063    activeIndexBuffer -= swiper.loopedSlides;
3064    swiper.loopDestroy();
3065    swiper.recalcSlides();
3066  }
3067  const baseLength = swiper.slides.length;
3068  if (index <= 0) {
3069    swiper.prependSlide(slides);
3070    return;
3071  }
3072  if (index >= baseLength) {
3073    swiper.appendSlide(slides);
3074    return;
3075  }
3076  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
3077  const slidesBuffer = [];
3078  for (let i = baseLength - 1; i >= index; i -= 1) {
3079    const currentSlide = swiper.slides[i];
3080    currentSlide.remove();
3081    slidesBuffer.unshift(currentSlide);
3082  }
3083  if (typeof slides === 'object' && 'length' in slides) {
3084    for (let i = 0; i < slides.length; i += 1) {
3085      if (slides[i]) slidesEl.append(slides[i]);
3086    }
3087    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
3088  } else {
3089    slidesEl.append(slides);
3090  }
3091  for (let i = 0; i < slidesBuffer.length; i += 1) {
3092    slidesEl.append(slidesBuffer[i]);
3093  }
3094  swiper.recalcSlides();
3095  if (params.loop) {
3096    swiper.loopCreate();
3097  }
3098  if (!params.observer || swiper.isElement) {
3099    swiper.update();
3100  }
3101  if (params.loop) {
3102    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
3103  } else {
3104    swiper.slideTo(newActiveIndex, 0, false);
3105  }
3106}
3107
3108function removeSlide(slidesIndexes) {
3109  const swiper = this;
3110  const {
3111    params,
3112    activeIndex
3113  } = swiper;
3114  let activeIndexBuffer = activeIndex;
3115  if (params.loop) {
3116    activeIndexBuffer -= swiper.loopedSlides;
3117    swiper.loopDestroy();
3118  }
3119  let newActiveIndex = activeIndexBuffer;
3120  let indexToRemove;
3121  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
3122    for (let i = 0; i < slidesIndexes.length; i += 1) {
3123      indexToRemove = slidesIndexes[i];
3124      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
3125      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
3126    }
3127    newActiveIndex = Math.max(newActiveIndex, 0);
3128  } else {
3129    indexToRemove = slidesIndexes;
3130    if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
3131    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
3132    newActiveIndex = Math.max(newActiveIndex, 0);
3133  }
3134  swiper.recalcSlides();
3135  if (params.loop) {
3136    swiper.loopCreate();
3137  }
3138  if (!params.observer || swiper.isElement) {
3139    swiper.update();
3140  }
3141  if (params.loop) {
3142    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
3143  } else {
3144    swiper.slideTo(newActiveIndex, 0, false);
3145  }
3146}
3147
3148function removeAllSlides() {
3149  const swiper = this;
3150  const slidesIndexes = [];
3151  for (let i = 0; i < swiper.slides.length; i += 1) {
3152    slidesIndexes.push(i);
3153  }
3154  swiper.removeSlide(slidesIndexes);
3155}
3156
3157function Manipulation(_ref) {
3158  let {
3159    swiper
3160  } = _ref;
3161  Object.assign(swiper, {
3162    appendSlide: appendSlide.bind(swiper),
3163    prependSlide: prependSlide.bind(swiper),
3164    addSlide: addSlide.bind(swiper),
3165    removeSlide: removeSlide.bind(swiper),
3166    removeAllSlides: removeAllSlides.bind(swiper)
3167  });
3168}
3169
3170
3171
3172
3173/***/ }),
3174
vendor: 16,029 bytes, lines 3175-3586
3175/***/ "./node_modules/swiper/modules/mousewheel.mjs":
3176/*!****************************************************!*\
3177  !*** ./node_modules/swiper/modules/mousewheel.mjs ***!
3178  \****************************************************/
3179/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
3180
3181"use strict";
3182__webpack_require__.r(__webpack_exports__);
3183/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3184/* harmony export */   "default": function() { return /* binding */ Mousewheel; }
3185/* harmony export */ });
3186/* 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");
3187/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3188
3189
3190
3191/* eslint-disable consistent-return */
3192function Mousewheel(_ref) {
3193  let {
3194    swiper,
3195    extendParams,
3196    on,
3197    emit
3198  } = _ref;
3199  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
3200  extendParams({
3201    mousewheel: {
3202      enabled: false,
3203      releaseOnEdges: false,
3204      invert: false,
3205      forceToAxis: false,
3206      sensitivity: 1,
3207      eventsTarget: 'container',
3208      thresholdDelta: null,
3209      thresholdTime: null,
3210      noMousewheelClass: 'swiper-no-mousewheel'
3211    }
3212  });
3213  swiper.mousewheel = {
3214    enabled: false
3215  };
3216  let timeout;
3217  let lastScrollTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
3218  let lastEventBeforeSnap;
3219  const recentWheelEvents = [];
3220  function normalize(e) {
3221    // Reasonable defaults
3222    const PIXEL_STEP = 10;
3223    const LINE_HEIGHT = 40;
3224    const PAGE_HEIGHT = 800;
3225    let sX = 0;
3226    let sY = 0; // spinX, spinY
3227    let pX = 0;
3228    let pY = 0; // pixelX, pixelY
3229
3230    // Legacy
3231    if ('detail' in e) {
3232      sY = e.detail;
3233    }
3234    if ('wheelDelta' in e) {
3235      sY = -e.wheelDelta / 120;
3236    }
3237    if ('wheelDeltaY' in e) {
3238      sY = -e.wheelDeltaY / 120;
3239    }
3240    if ('wheelDeltaX' in e) {
3241      sX = -e.wheelDeltaX / 120;
3242    }
3243
3244    // side scrolling on FF with DOMMouseScroll
3245    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {
3246      sX = sY;
3247      sY = 0;
3248    }
3249    pX = sX * PIXEL_STEP;
3250    pY = sY * PIXEL_STEP;
3251    if ('deltaY' in e) {
3252      pY = e.deltaY;
3253    }
3254    if ('deltaX' in e) {
3255      pX = e.deltaX;
3256    }
3257    if (e.shiftKey && !pX) {
3258      // if user scrolls with shift he wants horizontal scroll
3259      pX = pY;
3260      pY = 0;
3261    }
3262    if ((pX || pY) && e.deltaMode) {
3263      if (e.deltaMode === 1) {
3264        // delta in LINE units
3265        pX *= LINE_HEIGHT;
3266        pY *= LINE_HEIGHT;
3267      } else {
3268        // delta in PAGE units
3269        pX *= PAGE_HEIGHT;
3270        pY *= PAGE_HEIGHT;
3271      }
3272    }
3273
3274    // Fall-back if spin cannot be determined
3275    if (pX && !sX) {
3276      sX = pX < 1 ? -1 : 1;
3277    }
3278    if (pY && !sY) {
3279      sY = pY < 1 ? -1 : 1;
3280    }
3281    return {
3282      spinX: sX,
3283      spinY: sY,
3284      pixelX: pX,
3285      pixelY: pY
3286    };
3287  }
3288  function handleMouseEnter() {
3289    if (!swiper.enabled) return;
3290    swiper.mouseEntered = true;
3291  }
3292  function handleMouseLeave() {
3293    if (!swiper.enabled) return;
3294    swiper.mouseEntered = false;
3295  }
3296  function animateSlider(newEvent) {
3297    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {
3298      // Prevent if delta of wheel scroll delta is below configured threshold
3299      return false;
3300    }
3301    if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {
3302      // Prevent if time between scrolls is below configured threshold
3303      return false;
3304    }
3305
3306    // If the movement is NOT big enough and
3307    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):
3308    //   Don't go any further (avoid insignificant scroll movement).
3309    if (newEvent.delta >= 6 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)() - lastScrollTime < 60) {
3310      // Return false as a default
3311      return true;
3312    }
3313    // If user is scrolling towards the end:
3314    //   If the slider hasn't hit the latest slide or
3315    //   if the slider is a loop and
3316    //   if the slider isn't moving right now:
3317    //     Go to next slide and
3318    //     emit a scroll event.
3319    // Else (the user is scrolling towards the beginning) and
3320    // if the slider hasn't hit the first slide or
3321    // if the slider is a loop and
3322    // if the slider isn't moving right now:
3323    //   Go to prev slide and
3324    //   emit a scroll event.
3325    if (newEvent.direction < 0) {
3326      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {
3327        swiper.slideNext();
3328        emit('scroll', newEvent.raw);
3329      }
3330    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {
3331      swiper.slidePrev();
3332      emit('scroll', newEvent.raw);
3333    }
3334    // If you got here is because an animation has been triggered so store the current time
3335    lastScrollTime = new window.Date().getTime();
3336    // Return false as a default
3337    return false;
3338  }
3339  function releaseScroll(newEvent) {
3340    const params = swiper.params.mousewheel;
3341    if (newEvent.direction < 0) {
3342      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {
3343        // Return true to animate scroll on edges
3344        return true;
3345      }
3346    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {
3347      // Return true to animate scroll on edges
3348      return true;
3349    }
3350    return false;
3351  }
3352  function handle(event) {
3353    let e = event;
3354    let disableParentSwiper = true;
3355    if (!swiper.enabled) return;
3356
3357    // Ignore event if the target or its parents have the swiper-no-mousewheel class
3358    if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;
3359    const params = swiper.params.mousewheel;
3360    if (swiper.params.cssMode) {
3361      e.preventDefault();
3362    }
3363    let targetEl = swiper.el;
3364    if (swiper.params.mousewheel.eventsTarget !== 'container') {
3365      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
3366    }
3367    const targetElContainsTarget = targetEl && targetEl.contains(e.target);
3368    if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;
3369    if (e.originalEvent) e = e.originalEvent; // jquery fix
3370    let delta = 0;
3371    const rtlFactor = swiper.rtlTranslate ? -1 : 1;
3372    const data = normalize(e);
3373    if (params.forceToAxis) {
3374      if (swiper.isHorizontal()) {
3375        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;
3376      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;
3377    } else {
3378      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;
3379    }
3380    if (delta === 0) return true;
3381    if (params.invert) delta = -delta;
3382
3383    // Get the scroll positions
3384    let positions = swiper.getTranslate() + delta * params.sensitivity;
3385    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();
3386    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();
3387
3388    // When loop is true:
3389    //     the disableParentSwiper will be true.
3390    // When loop is false:
3391    //     if the scroll positions is not on edge,
3392    //     then the disableParentSwiper will be true.
3393    //     if the scroll on edge positions,
3394    //     then the disableParentSwiper will be false.
3395    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());
3396    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();
3397    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {
3398      // Register the new event in a variable which stores the relevant data
3399      const newEvent = {
3400        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(),
3401        delta: Math.abs(delta),
3402        direction: Math.sign(delta),
3403        raw: event
3404      };
3405
3406      // Keep the most recent events
3407      if (recentWheelEvents.length >= 2) {
3408        recentWheelEvents.shift(); // only store the last N events
3409      }
3410
3411      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
3412      recentWheelEvents.push(newEvent);
3413
3414      // If there is at least one previous recorded event:
3415      //   If direction has changed or
3416      //   if the scroll is quicker than the previous one:
3417      //     Animate the slider.
3418      // Else (this is the first time the wheel is moved):
3419      //     Animate the slider.
3420      if (prevEvent) {
3421        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {
3422          animateSlider(newEvent);
3423        }
3424      } else {
3425        animateSlider(newEvent);
3426      }
3427
3428      // If it's time to release the scroll:
3429      //   Return now so you don't hit the preventDefault.
3430      if (releaseScroll(newEvent)) {
3431        return true;
3432      }
3433    } else {
3434      // Freemode or scrollContainer:
3435
3436      // If we recently snapped after a momentum scroll, then ignore wheel events
3437      // to give time for the deceleration to finish. Stop ignoring after 500 msecs
3438      // or if it's a new scroll (larger delta or inverse sign as last event before
3439      // an end-of-momentum snap).
3440      const newEvent = {
3441        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(),
3442        delta: Math.abs(delta),
3443        direction: Math.sign(delta)
3444      };
3445      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;
3446      if (!ignoreWheelEvents) {
3447        lastEventBeforeSnap = undefined;
3448        let position = swiper.getTranslate() + delta * params.sensitivity;
3449        const wasBeginning = swiper.isBeginning;
3450        const wasEnd = swiper.isEnd;
3451        if (position >= swiper.minTranslate()) position = swiper.minTranslate();
3452        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();
3453        swiper.setTransition(0);
3454        swiper.setTranslate(position);
3455        swiper.updateProgress();
3456        swiper.updateActiveIndex();
3457        swiper.updateSlidesClasses();
3458        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {
3459          swiper.updateSlidesClasses();
3460        }
3461        if (swiper.params.loop) {
3462          swiper.loopFix({
3463            direction: newEvent.direction < 0 ? 'next' : 'prev',
3464            byMousewheel: true
3465          });
3466        }
3467        if (swiper.params.freeMode.sticky) {
3468          // When wheel scrolling starts with sticky (aka snap) enabled, then detect
3469          // the end of a momentum scroll by storing recent (N=15?) wheel events.
3470          // 1. do all N events have decreasing or same (absolute value) delta?
3471          // 2. did all N events arrive in the last M (M=500?) msecs?
3472          // 3. does the earliest event have an (absolute value) delta that's
3473          //    at least P (P=1?) larger than the most recent event's delta?
3474          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?
3475          // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration.
3476          // Snap immediately and ignore remaining wheel events in this scroll.
3477          // See comment above for "remaining wheel events in this scroll" determination.
3478          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.
3479          clearTimeout(timeout);
3480          timeout = undefined;
3481          if (recentWheelEvents.length >= 15) {
3482            recentWheelEvents.shift(); // only store the last N events
3483          }
3484
3485          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
3486          const firstEvent = recentWheelEvents[0];
3487          recentWheelEvents.push(newEvent);
3488          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {
3489            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.
3490            recentWheelEvents.splice(0);
3491          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {
3492            // We're at the end of the deceleration of a momentum scroll, so there's no need
3493            // to wait for more events. Snap ASAP on the next tick.
3494            // Also, because there's some remaining momentum we'll bias the snap in the
3495            // direction of the ongoing scroll because it's better UX for the scroll to snap
3496            // in the same direction as the scroll instead of reversing to snap.  Therefore,
3497            // if it's already scrolled more than 20% in the current direction, keep going.
3498            const snapToThreshold = delta > 0 ? 0.8 : 0.2;
3499            lastEventBeforeSnap = newEvent;
3500            recentWheelEvents.splice(0);
3501            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
3502              if (swiper.destroyed || !swiper.params) return;
3503              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
3504            }, 0); // no delay; move on next tick
3505          }
3506
3507          if (!timeout) {
3508            // if we get here, then we haven't detected the end of a momentum scroll, so
3509            // we'll consider a scroll "complete" when there haven't been any wheel events
3510            // for 500ms.
3511            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
3512              if (swiper.destroyed || !swiper.params) return;
3513              const snapToThreshold = 0.5;
3514              lastEventBeforeSnap = newEvent;
3515              recentWheelEvents.splice(0);
3516              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
3517            }, 500);
3518          }
3519        }
3520
3521        // Emit event
3522        if (!ignoreWheelEvents) emit('scroll', e);
3523
3524        // Stop autoplay
3525        if (swiper.params.autoplay && swiper.params.autoplay.disableOnInteraction) swiper.autoplay.stop();
3526        // Return page scroll on edge positions
3527        if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {
3528          return true;
3529        }
3530      }
3531    }
3532    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
3533    return false;
3534  }
3535  function events(method) {
3536    let targetEl = swiper.el;
3537    if (swiper.params.mousewheel.eventsTarget !== 'container') {
3538      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
3539    }
3540    targetEl[method]('mouseenter', handleMouseEnter);
3541    targetEl[method]('mouseleave', handleMouseLeave);
3542    targetEl[method]('wheel', handle);
3543  }
3544  function enable() {
3545    if (swiper.params.cssMode) {
3546      swiper.wrapperEl.removeEventListener('wheel', handle);
3547      return true;
3548    }
3549    if (swiper.mousewheel.enabled) return false;
3550    events('addEventListener');
3551    swiper.mousewheel.enabled = true;
3552    return true;
3553  }
3554  function disable() {
3555    if (swiper.params.cssMode) {
3556      swiper.wrapperEl.addEventListener(event, handle);
3557      return true;
3558    }
3559    if (!swiper.mousewheel.enabled) return false;
3560    events('removeEventListener');
3561    swiper.mousewheel.enabled = false;
3562    return true;
3563  }
3564  on('init', () => {
3565    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {
3566      disable();
3567    }
3568    if (swiper.params.mousewheel.enabled) enable();
3569  });
3570  on('destroy', () => {
3571    if (swiper.params.cssMode) {
3572      enable();
3573    }
3574    if (swiper.mousewheel.enabled) disable();
3575  });
3576  Object.assign(swiper.mousewheel, {
3577    enable,
3578    disable
3579  });
3580}
3581
3582
3583
3584
3585/***/ }),
3586
vendor: 7,442 bytes, lines 3587-3803
3587/***/ "./node_modules/swiper/modules/navigation.mjs":
3588/*!****************************************************!*\
3589  !*** ./node_modules/swiper/modules/navigation.mjs ***!
3590  \****************************************************/
3591/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
3592
3593"use strict";
3594__webpack_require__.r(__webpack_exports__);
3595/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3596/* harmony export */   "default": function() { return /* binding */ Navigation; }
3597/* harmony export */ });
3598/* 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");
3599/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3600
3601
3602
3603function Navigation(_ref) {
3604  let {
3605    swiper,
3606    extendParams,
3607    on,
3608    emit
3609  } = _ref;
3610  extendParams({
3611    navigation: {
3612      nextEl: null,
3613      prevEl: null,
3614      hideOnClick: false,
3615      disabledClass: 'swiper-button-disabled',
3616      hiddenClass: 'swiper-button-hidden',
3617      lockClass: 'swiper-button-lock',
3618      navigationDisabledClass: 'swiper-navigation-disabled'
3619    }
3620  });
3621  swiper.navigation = {
3622    nextEl: null,
3623    prevEl: null
3624  };
3625  function getEl(el) {
3626    let res;
3627    if (el && typeof el === 'string' && swiper.isElement) {
3628      res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);
3629      if (res) return res;
3630    }
3631    if (el) {
3632      if (typeof el === 'string') res = [...document.querySelectorAll(el)];
3633      if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {
3634        res = swiper.el.querySelector(el);
3635      } else if (res && res.length === 1) {
3636        res = res[0];
3637      }
3638    }
3639    if (el && !res) return el;
3640    // if (Array.isArray(res) && res.length === 1) res = res[0];
3641    return res;
3642  }
3643  function toggleEl(el, disabled) {
3644    const params = swiper.params.navigation;
3645    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
3646    el.forEach(subEl => {
3647      if (subEl) {
3648        subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));
3649        if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;
3650        if (swiper.params.watchOverflow && swiper.enabled) {
3651          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
3652        }
3653      }
3654    });
3655  }
3656  function update() {
3657    // Update Navigation Buttons
3658    const {
3659      nextEl,
3660      prevEl
3661    } = swiper.navigation;
3662    if (swiper.params.loop) {
3663      toggleEl(prevEl, false);
3664      toggleEl(nextEl, false);
3665      return;
3666    }
3667    toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);
3668    toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);
3669  }
3670  function onPrevClick(e) {
3671    e.preventDefault();
3672    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
3673    swiper.slidePrev();
3674    emit('navigationPrev');
3675  }
3676  function onNextClick(e) {
3677    e.preventDefault();
3678    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
3679    swiper.slideNext();
3680    emit('navigationNext');
3681  }
3682  function init() {
3683    const params = swiper.params.navigation;
3684    swiper.params.navigation = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
3685      nextEl: 'swiper-button-next',
3686      prevEl: 'swiper-button-prev'
3687    });
3688    if (!(params.nextEl || params.prevEl)) return;
3689    let nextEl = getEl(params.nextEl);
3690    let prevEl = getEl(params.prevEl);
3691    Object.assign(swiper.navigation, {
3692      nextEl,
3693      prevEl
3694    });
3695    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3696    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3697    const initButton = (el, dir) => {
3698      if (el) {
3699        el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
3700      }
3701      if (!swiper.enabled && el) {
3702        el.classList.add(...params.lockClass.split(' '));
3703      }
3704    };
3705    nextEl.forEach(el => initButton(el, 'next'));
3706    prevEl.forEach(el => initButton(el, 'prev'));
3707  }
3708  function destroy() {
3709    let {
3710      nextEl,
3711      prevEl
3712    } = swiper.navigation;
3713    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3714    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3715    const destroyButton = (el, dir) => {
3716      el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
3717      el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));
3718    };
3719    nextEl.forEach(el => destroyButton(el, 'next'));
3720    prevEl.forEach(el => destroyButton(el, 'prev'));
3721  }
3722  on('init', () => {
3723    if (swiper.params.navigation.enabled === false) {
3724      // eslint-disable-next-line
3725      disable();
3726    } else {
3727      init();
3728      update();
3729    }
3730  });
3731  on('toEdge fromEdge lock unlock', () => {
3732    update();
3733  });
3734  on('destroy', () => {
3735    destroy();
3736  });
3737  on('enable disable', () => {
3738    let {
3739      nextEl,
3740      prevEl
3741    } = swiper.navigation;
3742    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3743    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3744    if (swiper.enabled) {
3745      update();
3746      return;
3747    }
3748    [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));
3749  });
3750  on('click', (_s, e) => {
3751    let {
3752      nextEl,
3753      prevEl
3754    } = swiper.navigation;
3755    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
3756    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
3757    const targetEl = e.target;
3758    let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);
3759    if (swiper.isElement && !targetIsButton) {
3760      const path = e.path || e.composedPath && e.composedPath();
3761      if (path) {
3762        targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));
3763      }
3764    }
3765    if (swiper.params.navigation.hideOnClick && !targetIsButton) {
3766      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;
3767      let isHidden;
3768      if (nextEl.length) {
3769        isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);
3770      } else if (prevEl.length) {
3771        isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);
3772      }
3773      if (isHidden === true) {
3774        emit('navigationShow');
3775      } else {
3776        emit('navigationHide');
3777      }
3778      [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));
3779    }
3780  });
3781  const enable = () => {
3782    swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));
3783    init();
3784    update();
3785  };
3786  const disable = () => {
3787    swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));
3788    destroy();
3789  };
3790  Object.assign(swiper.navigation, {
3791    enable,
3792    disable,
3793    update,
3794    init,
3795    destroy
3796  });
3797}
3798
3799
3800
3801
3802/***/ }),
3803
vendor: 19,155 bytes, lines 3804-4281
3804/***/ "./node_modules/swiper/modules/pagination.mjs":
3805/*!****************************************************!*\
3806  !*** ./node_modules/swiper/modules/pagination.mjs ***!
3807  \****************************************************/
3808/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
3809
3810"use strict";
3811__webpack_require__.r(__webpack_exports__);
3812/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3813/* harmony export */   "default": function() { return /* binding */ Pagination; }
3814/* harmony export */ });
3815/* 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");
3816/* 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");
3817/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3818
3819
3820
3821
3822function Pagination(_ref) {
3823  let {
3824    swiper,
3825    extendParams,
3826    on,
3827    emit
3828  } = _ref;
3829  const pfx = 'swiper-pagination';
3830  extendParams({
3831    pagination: {
3832      el: null,
3833      bulletElement: 'span',
3834      clickable: false,
3835      hideOnClick: false,
3836      renderBullet: null,
3837      renderProgressbar: null,
3838      renderFraction: null,
3839      renderCustom: null,
3840      progressbarOpposite: false,
3841      type: 'bullets',
3842      // 'bullets' or 'progressbar' or 'fraction' or 'custom'
3843      dynamicBullets: false,
3844      dynamicMainBullets: 1,
3845      formatFractionCurrent: number => number,
3846      formatFractionTotal: number => number,
3847      bulletClass: `${pfx}-bullet`,
3848      bulletActiveClass: `${pfx}-bullet-active`,
3849      modifierClass: `${pfx}-`,
3850      currentClass: `${pfx}-current`,
3851      totalClass: `${pfx}-total`,
3852      hiddenClass: `${pfx}-hidden`,
3853      progressbarFillClass: `${pfx}-progressbar-fill`,
3854      progressbarOppositeClass: `${pfx}-progressbar-opposite`,
3855      clickableClass: `${pfx}-clickable`,
3856      lockClass: `${pfx}-lock`,
3857      horizontalClass: `${pfx}-horizontal`,
3858      verticalClass: `${pfx}-vertical`,
3859      paginationDisabledClass: `${pfx}-disabled`
3860    }
3861  });
3862  swiper.pagination = {
3863    el: null,
3864    bullets: []
3865  };
3866  let bulletSize;
3867  let dynamicBulletIndex = 0;
3868  function isPaginationDisabled() {
3869    return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;
3870  }
3871  function setSideBullets(bulletEl, position) {
3872    const {
3873      bulletActiveClass
3874    } = swiper.params.pagination;
3875    if (!bulletEl) return;
3876    bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
3877    if (bulletEl) {
3878      bulletEl.classList.add(`${bulletActiveClass}-${position}`);
3879      bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
3880      if (bulletEl) {
3881        bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);
3882      }
3883    }
3884  }
3885  function getMoveDirection(prevIndex, nextIndex, length) {
3886    prevIndex = prevIndex % length;
3887    nextIndex = nextIndex % length;
3888    if (nextIndex === prevIndex + 1) {
3889      return 'next';
3890    } else if (nextIndex === prevIndex - 1) {
3891      return 'previous';
3892    }
3893    return;
3894  }
3895  function onBulletClick(e) {
3896    const bulletEl = e.target.closest((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletClass));
3897    if (!bulletEl) {
3898      return;
3899    }
3900    e.preventDefault();
3901    const index = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.i)(bulletEl) * swiper.params.slidesPerGroup;
3902    if (swiper.params.loop) {
3903      if (swiper.realIndex === index) return;
3904      const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);
3905      if (moveDirection === 'next') {
3906        swiper.slideNext();
3907      } else if (moveDirection === 'previous') {
3908        swiper.slidePrev();
3909      } else {
3910        swiper.slideToLoop(index);
3911      }
3912    } else {
3913      swiper.slideTo(index);
3914    }
3915  }
3916  function update() {
3917    // Render || Update Pagination bullets/items
3918    const rtl = swiper.rtl;
3919    const params = swiper.params.pagination;
3920    if (isPaginationDisabled()) return;
3921    let el = swiper.pagination.el;
3922    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
3923    // Current/Total
3924    let current;
3925    let previousIndex;
3926    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
3927    const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
3928    if (swiper.params.loop) {
3929      previousIndex = swiper.previousRealIndex || 0;
3930      current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
3931    } else if (typeof swiper.snapIndex !== 'undefined') {
3932      current = swiper.snapIndex;
3933      previousIndex = swiper.previousSnapIndex;
3934    } else {
3935      previousIndex = swiper.previousIndex || 0;
3936      current = swiper.activeIndex || 0;
3937    }
3938    // Types
3939    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
3940      const bullets = swiper.pagination.bullets;
3941      let firstIndex;
3942      let lastIndex;
3943      let midIndex;
3944      if (params.dynamicBullets) {
3945        bulletSize = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);
3946        el.forEach(subEl => {
3947          subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
3948        });
3949        if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
3950          dynamicBulletIndex += current - (previousIndex || 0);
3951          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
3952            dynamicBulletIndex = params.dynamicMainBullets - 1;
3953          } else if (dynamicBulletIndex < 0) {
3954            dynamicBulletIndex = 0;
3955          }
3956        }
3957        firstIndex = Math.max(current - dynamicBulletIndex, 0);
3958        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
3959        midIndex = (lastIndex + firstIndex) / 2;
3960      }
3961      bullets.forEach(bulletEl => {
3962        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();
3963        bulletEl.classList.remove(...classesToRemove);
3964      });
3965      if (el.length > 1) {
3966        bullets.forEach(bullet => {
3967          const bulletIndex = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.i)(bullet);
3968          if (bulletIndex === current) {
3969            bullet.classList.add(...params.bulletActiveClass.split(' '));
3970          } else if (swiper.isElement) {
3971            bullet.setAttribute('part', 'bullet');
3972          }
3973          if (params.dynamicBullets) {
3974            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
3975              bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));
3976            }
3977            if (bulletIndex === firstIndex) {
3978              setSideBullets(bullet, 'prev');
3979            }
3980            if (bulletIndex === lastIndex) {
3981              setSideBullets(bullet, 'next');
3982            }
3983          }
3984        });
3985      } else {
3986        const bullet = bullets[current];
3987        if (bullet) {
3988          bullet.classList.add(...params.bulletActiveClass.split(' '));
3989        }
3990        if (swiper.isElement) {
3991          bullets.forEach((bulletEl, bulletIndex) => {
3992            bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
3993          });
3994        }
3995        if (params.dynamicBullets) {
3996          const firstDisplayedBullet = bullets[firstIndex];
3997          const lastDisplayedBullet = bullets[lastIndex];
3998          for (let i = firstIndex; i <= lastIndex; i += 1) {
3999            if (bullets[i]) {
4000              bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));
4001            }
4002          }
4003          setSideBullets(firstDisplayedBullet, 'prev');
4004          setSideBullets(lastDisplayedBullet, 'next');
4005        }
4006      }
4007      if (params.dynamicBullets) {
4008        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
4009        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
4010        const offsetProp = rtl ? 'right' : 'left';
4011        bullets.forEach(bullet => {
4012          bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;
4013        });
4014      }
4015    }
4016    el.forEach((subEl, subElIndex) => {
4017      if (params.type === 'fraction') {
4018        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.currentClass)).forEach(fractionEl => {
4019          fractionEl.textContent = params.formatFractionCurrent(current + 1);
4020        });
4021        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.totalClass)).forEach(totalEl => {
4022          totalEl.textContent = params.formatFractionTotal(total);
4023        });
4024      }
4025      if (params.type === 'progressbar') {
4026        let progressbarDirection;
4027        if (params.progressbarOpposite) {
4028          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
4029        } else {
4030          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
4031        }
4032        const scale = (current + 1) / total;
4033        let scaleX = 1;
4034        let scaleY = 1;
4035        if (progressbarDirection === 'horizontal') {
4036          scaleX = scale;
4037        } else {
4038          scaleY = scale;
4039        }
4040        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.progressbarFillClass)).forEach(progressEl => {
4041          progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;
4042          progressEl.style.transitionDuration = `${swiper.params.speed}ms`;
4043        });
4044      }
4045      if (params.type === 'custom' && params.renderCustom) {
4046        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.s)(subEl, params.renderCustom(swiper, current + 1, total));
4047        if (subElIndex === 0) emit('paginationRender', subEl);
4048      } else {
4049        if (subElIndex === 0) emit('paginationRender', subEl);
4050        emit('paginationUpdate', subEl);
4051      }
4052      if (swiper.params.watchOverflow && swiper.enabled) {
4053        subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
4054      }
4055    });
4056  }
4057  function render() {
4058    // Render Container
4059    const params = swiper.params.pagination;
4060    if (isPaginationDisabled()) return;
4061    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;
4062    let el = swiper.pagination.el;
4063    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4064    let paginationHTML = '';
4065    if (params.type === 'bullets') {
4066      let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
4067      if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {
4068        numberOfBullets = slidesLength;
4069      }
4070      for (let i = 0; i < numberOfBullets; i += 1) {
4071        if (params.renderBullet) {
4072          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
4073        } else {
4074          // prettier-ignore
4075          paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
4076        }
4077      }
4078    }
4079    if (params.type === 'fraction') {
4080      if (params.renderFraction) {
4081        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
4082      } else {
4083        paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
4084      }
4085    }
4086    if (params.type === 'progressbar') {
4087      if (params.renderProgressbar) {
4088        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
4089      } else {
4090        paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
4091      }
4092    }
4093    swiper.pagination.bullets = [];
4094    el.forEach(subEl => {
4095      if (params.type !== 'custom') {
4096        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.s)(subEl, paginationHTML || '');
4097      }
4098      if (params.type === 'bullets') {
4099        swiper.pagination.bullets.push(...subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.bulletClass)));
4100      }
4101    });
4102    if (params.type !== 'custom') {
4103      emit('paginationRender', el[0]);
4104    }
4105  }
4106  function init() {
4107    swiper.params.pagination = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
4108      el: 'swiper-pagination'
4109    });
4110    const params = swiper.params.pagination;
4111    if (!params.el) return;
4112    let el;
4113    if (typeof params.el === 'string' && swiper.isElement) {
4114      el = swiper.el.querySelector(params.el);
4115    }
4116    if (!el && typeof params.el === 'string') {
4117      el = [...document.querySelectorAll(params.el)];
4118    }
4119    if (!el) {
4120      el = params.el;
4121    }
4122    if (!el || el.length === 0) return;
4123    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {
4124      el = [...swiper.el.querySelectorAll(params.el)];
4125      // check if it belongs to another nested Swiper
4126      if (el.length > 1) {
4127        el = el.find(subEl => {
4128          if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.b)(subEl, '.swiper')[0] !== swiper.el) return false;
4129          return true;
4130        });
4131      }
4132    }
4133    if (Array.isArray(el) && el.length === 1) el = el[0];
4134    Object.assign(swiper.pagination, {
4135      el
4136    });
4137    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4138    el.forEach(subEl => {
4139      if (params.type === 'bullets' && params.clickable) {
4140        subEl.classList.add(...(params.clickableClass || '').split(' '));
4141      }
4142      subEl.classList.add(params.modifierClass + params.type);
4143      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4144      if (params.type === 'bullets' && params.dynamicBullets) {
4145        subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);
4146        dynamicBulletIndex = 0;
4147        if (params.dynamicMainBullets < 1) {
4148          params.dynamicMainBullets = 1;
4149        }
4150      }
4151      if (params.type === 'progressbar' && params.progressbarOpposite) {
4152        subEl.classList.add(params.progressbarOppositeClass);
4153      }
4154      if (params.clickable) {
4155        subEl.addEventListener('click', onBulletClick);
4156      }
4157      if (!swiper.enabled) {
4158        subEl.classList.add(params.lockClass);
4159      }
4160    });
4161  }
4162  function destroy() {
4163    const params = swiper.params.pagination;
4164    if (isPaginationDisabled()) return;
4165    let el = swiper.pagination.el;
4166    if (el) {
4167      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4168      el.forEach(subEl => {
4169        subEl.classList.remove(params.hiddenClass);
4170        subEl.classList.remove(params.modifierClass + params.type);
4171        subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4172        if (params.clickable) {
4173          subEl.classList.remove(...(params.clickableClass || '').split(' '));
4174          subEl.removeEventListener('click', onBulletClick);
4175        }
4176      });
4177    }
4178    if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
4179  }
4180  on('changeDirection', () => {
4181    if (!swiper.pagination || !swiper.pagination.el) return;
4182    const params = swiper.params.pagination;
4183    let {
4184      el
4185    } = swiper.pagination;
4186    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4187    el.forEach(subEl => {
4188      subEl.classList.remove(params.horizontalClass, params.verticalClass);
4189      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4190    });
4191  });
4192  on('init', () => {
4193    if (swiper.params.pagination.enabled === false) {
4194      // eslint-disable-next-line
4195      disable();
4196    } else {
4197      init();
4198      render();
4199      update();
4200    }
4201  });
4202  on('activeIndexChange', () => {
4203    if (typeof swiper.snapIndex === 'undefined') {
4204      update();
4205    }
4206  });
4207  on('snapIndexChange', () => {
4208    update();
4209  });
4210  on('snapGridLengthChange', () => {
4211    render();
4212    update();
4213  });
4214  on('destroy', () => {
4215    destroy();
4216  });
4217  on('enable disable', () => {
4218    let {
4219      el
4220    } = swiper.pagination;
4221    if (el) {
4222      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4223      el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));
4224    }
4225  });
4226  on('lock unlock', () => {
4227    update();
4228  });
4229  on('click', (_s, e) => {
4230    const targetEl = e.target;
4231    const el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
4232    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
4233      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
4234      const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
4235      if (isHidden === true) {
4236        emit('paginationShow');
4237      } else {
4238        emit('paginationHide');
4239      }
4240      el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));
4241    }
4242  });
4243  const enable = () => {
4244    swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);
4245    let {
4246      el
4247    } = swiper.pagination;
4248    if (el) {
4249      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4250      el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));
4251    }
4252    init();
4253    render();
4254    update();
4255  };
4256  const disable = () => {
4257    swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);
4258    let {
4259      el
4260    } = swiper.pagination;
4261    if (el) {
4262      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4263      el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
4264    }
4265    destroy();
4266  };
4267  Object.assign(swiper.pagination, {
4268    enable,
4269    disable,
4270    render,
4271    update,
4272    init,
4273    destroy
4274  });
4275}
4276
4277
4278
4279
4280/***/ }),
4281
vendor: 4,718 bytes, lines 4282-4421
4282/***/ "./node_modules/swiper/modules/parallax.mjs":
4283/*!**************************************************!*\
4284  !*** ./node_modules/swiper/modules/parallax.mjs ***!
4285  \**************************************************/
4286/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
4287
4288"use strict";
4289__webpack_require__.r(__webpack_exports__);
4290/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4291/* harmony export */   "default": function() { return /* binding */ Parallax; }
4292/* harmony export */ });
4293/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4294
4295
4296function Parallax(_ref) {
4297  let {
4298    swiper,
4299    extendParams,
4300    on
4301  } = _ref;
4302  extendParams({
4303    parallax: {
4304      enabled: false
4305    }
4306  });
4307  const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';
4308  const setTransform = (el, progress) => {
4309    const {
4310      rtl
4311    } = swiper;
4312    const rtlFactor = rtl ? -1 : 1;
4313    const p = el.getAttribute('data-swiper-parallax') || '0';
4314    let x = el.getAttribute('data-swiper-parallax-x');
4315    let y = el.getAttribute('data-swiper-parallax-y');
4316    const scale = el.getAttribute('data-swiper-parallax-scale');
4317    const opacity = el.getAttribute('data-swiper-parallax-opacity');
4318    const rotate = el.getAttribute('data-swiper-parallax-rotate');
4319    if (x || y) {
4320      x = x || '0';
4321      y = y || '0';
4322    } else if (swiper.isHorizontal()) {
4323      x = p;
4324      y = '0';
4325    } else {
4326      y = p;
4327      x = '0';
4328    }
4329    if (x.indexOf('%') >= 0) {
4330      x = `${parseInt(x, 10) * progress * rtlFactor}%`;
4331    } else {
4332      x = `${x * progress * rtlFactor}px`;
4333    }
4334    if (y.indexOf('%') >= 0) {
4335      y = `${parseInt(y, 10) * progress}%`;
4336    } else {
4337      y = `${y * progress}px`;
4338    }
4339    if (typeof opacity !== 'undefined' && opacity !== null) {
4340      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
4341      el.style.opacity = currentOpacity;
4342    }
4343    let transform = `translate3d(${x}, ${y}, 0px)`;
4344    if (typeof scale !== 'undefined' && scale !== null) {
4345      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
4346      transform += ` scale(${currentScale})`;
4347    }
4348    if (rotate && typeof rotate !== 'undefined' && rotate !== null) {
4349      const currentRotate = rotate * progress * -1;
4350      transform += ` rotate(${currentRotate}deg)`;
4351    }
4352    el.style.transform = transform;
4353  };
4354  const setTranslate = () => {
4355    const {
4356      el,
4357      slides,
4358      progress,
4359      snapGrid,
4360      isElement
4361    } = swiper;
4362    const elements = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(el, elementsSelector);
4363    if (swiper.isElement) {
4364      elements.push(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.hostEl, elementsSelector));
4365    }
4366    elements.forEach(subEl => {
4367      setTransform(subEl, progress);
4368    });
4369    slides.forEach((slideEl, slideIndex) => {
4370      let slideProgress = slideEl.progress;
4371      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
4372        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
4373      }
4374      slideProgress = Math.min(Math.max(slideProgress, -1), 1);
4375      slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {
4376        setTransform(subEl, slideProgress);
4377      });
4378    });
4379  };
4380  const setTransition = function (duration) {
4381    if (duration === void 0) {
4382      duration = swiper.params.speed;
4383    }
4384    const {
4385      el,
4386      hostEl
4387    } = swiper;
4388    const elements = [...el.querySelectorAll(elementsSelector)];
4389    if (swiper.isElement) {
4390      elements.push(...hostEl.querySelectorAll(elementsSelector));
4391    }
4392    elements.forEach(parallaxEl => {
4393      let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;
4394      if (duration === 0) parallaxDuration = 0;
4395      parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;
4396    });
4397  };
4398  on('beforeInit', () => {
4399    if (!swiper.params.parallax.enabled) return;
4400    swiper.params.watchSlidesProgress = true;
4401    swiper.originalParams.watchSlidesProgress = true;
4402  });
4403  on('init', () => {
4404    if (!swiper.params.parallax.enabled) return;
4405    setTranslate();
4406  });
4407  on('setTranslate', () => {
4408    if (!swiper.params.parallax.enabled) return;
4409    setTranslate();
4410  });
4411  on('setTransition', (_swiper, duration) => {
4412    if (!swiper.params.parallax.enabled) return;
4413    setTransition(duration);
4414  });
4415}
4416
4417
4418
4419
4420/***/ }),
4421
vendor: 12,551 bytes, lines 4422-4806
4422/***/ "./node_modules/swiper/modules/scrollbar.mjs":
4423/*!***************************************************!*\
4424  !*** ./node_modules/swiper/modules/scrollbar.mjs ***!
4425  \***************************************************/
4426/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
4427
4428"use strict";
4429__webpack_require__.r(__webpack_exports__);
4430/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4431/* harmony export */   "default": function() { return /* binding */ Scrollbar; }
4432/* harmony export */ });
4433/* 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");
4434/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4435/* 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");
4436/* 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");
4437
4438
4439
4440
4441
4442function Scrollbar(_ref) {
4443  let {
4444    swiper,
4445    extendParams,
4446    on,
4447    emit
4448  } = _ref;
4449  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4450  let isTouched = false;
4451  let timeout = null;
4452  let dragTimeout = null;
4453  let dragStartPos;
4454  let dragSize;
4455  let trackSize;
4456  let divider;
4457  extendParams({
4458    scrollbar: {
4459      el: null,
4460      dragSize: 'auto',
4461      hide: false,
4462      draggable: false,
4463      snapOnRelease: true,
4464      lockClass: 'swiper-scrollbar-lock',
4465      dragClass: 'swiper-scrollbar-drag',
4466      scrollbarDisabledClass: 'swiper-scrollbar-disabled',
4467      horizontalClass: `swiper-scrollbar-horizontal`,
4468      verticalClass: `swiper-scrollbar-vertical`
4469    }
4470  });
4471  swiper.scrollbar = {
4472    el: null,
4473    dragEl: null
4474  };
4475  function setTranslate() {
4476    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4477    const {
4478      scrollbar,
4479      rtlTranslate: rtl
4480    } = swiper;
4481    const {
4482      dragEl,
4483      el
4484    } = scrollbar;
4485    const params = swiper.params.scrollbar;
4486    const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;
4487    let newSize = dragSize;
4488    let newPos = (trackSize - dragSize) * progress;
4489    if (rtl) {
4490      newPos = -newPos;
4491      if (newPos > 0) {
4492        newSize = dragSize - newPos;
4493        newPos = 0;
4494      } else if (-newPos + dragSize > trackSize) {
4495        newSize = trackSize + newPos;
4496      }
4497    } else if (newPos < 0) {
4498      newSize = dragSize + newPos;
4499      newPos = 0;
4500    } else if (newPos + dragSize > trackSize) {
4501      newSize = trackSize - newPos;
4502    }
4503    if (swiper.isHorizontal()) {
4504      dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;
4505      dragEl.style.width = `${newSize}px`;
4506    } else {
4507      dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;
4508      dragEl.style.height = `${newSize}px`;
4509    }
4510    if (params.hide) {
4511      clearTimeout(timeout);
4512      el.style.opacity = 1;
4513      timeout = setTimeout(() => {
4514        el.style.opacity = 0;
4515        el.style.transitionDuration = '400ms';
4516      }, 1000);
4517    }
4518  }
4519  function setTransition(duration) {
4520    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4521    swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;
4522  }
4523  function updateSize() {
4524    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4525    const {
4526      scrollbar
4527    } = swiper;
4528    const {
4529      dragEl,
4530      el
4531    } = scrollbar;
4532    dragEl.style.width = '';
4533    dragEl.style.height = '';
4534    trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;
4535    divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));
4536    if (swiper.params.scrollbar.dragSize === 'auto') {
4537      dragSize = trackSize * divider;
4538    } else {
4539      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
4540    }
4541    if (swiper.isHorizontal()) {
4542      dragEl.style.width = `${dragSize}px`;
4543    } else {
4544      dragEl.style.height = `${dragSize}px`;
4545    }
4546    if (divider >= 1) {
4547      el.style.display = 'none';
4548    } else {
4549      el.style.display = '';
4550    }
4551    if (swiper.params.scrollbar.hide) {
4552      el.style.opacity = 0;
4553    }
4554    if (swiper.params.watchOverflow && swiper.enabled) {
4555      scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);
4556    }
4557  }
4558  function getPointerPosition(e) {
4559    return swiper.isHorizontal() ? e.clientX : e.clientY;
4560  }
4561  function setDragPosition(e) {
4562    const {
4563      scrollbar,
4564      rtlTranslate: rtl
4565    } = swiper;
4566    const {
4567      el
4568    } = scrollbar;
4569    let positionRatio;
4570    positionRatio = (getPointerPosition(e) - (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
4571    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
4572    if (rtl) {
4573      positionRatio = 1 - positionRatio;
4574    }
4575    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
4576    swiper.updateProgress(position);
4577    swiper.setTranslate(position);
4578    swiper.updateActiveIndex();
4579    swiper.updateSlidesClasses();
4580  }
4581  function onDragStart(e) {
4582    const params = swiper.params.scrollbar;
4583    const {
4584      scrollbar,
4585      wrapperEl
4586    } = swiper;
4587    const {
4588      el,
4589      dragEl
4590    } = scrollbar;
4591    isTouched = true;
4592    dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
4593    e.preventDefault();
4594    e.stopPropagation();
4595    wrapperEl.style.transitionDuration = '100ms';
4596    dragEl.style.transitionDuration = '100ms';
4597    setDragPosition(e);
4598    clearTimeout(dragTimeout);
4599    el.style.transitionDuration = '0ms';
4600    if (params.hide) {
4601      el.style.opacity = 1;
4602    }
4603    if (swiper.params.cssMode) {
4604      swiper.wrapperEl.style['scroll-snap-type'] = 'none';
4605    }
4606    emit('scrollbarDragStart', e);
4607  }
4608  function onDragMove(e) {
4609    const {
4610      scrollbar,
4611      wrapperEl
4612    } = swiper;
4613    const {
4614      el,
4615      dragEl
4616    } = scrollbar;
4617    if (!isTouched) return;
4618    if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;
4619    setDragPosition(e);
4620    wrapperEl.style.transitionDuration = '0ms';
4621    el.style.transitionDuration = '0ms';
4622    dragEl.style.transitionDuration = '0ms';
4623    emit('scrollbarDragMove', e);
4624  }
4625  function onDragEnd(e) {
4626    const params = swiper.params.scrollbar;
4627    const {
4628      scrollbar,
4629      wrapperEl
4630    } = swiper;
4631    const {
4632      el
4633    } = scrollbar;
4634    if (!isTouched) return;
4635    isTouched = false;
4636    if (swiper.params.cssMode) {
4637      swiper.wrapperEl.style['scroll-snap-type'] = '';
4638      wrapperEl.style.transitionDuration = '';
4639    }
4640    if (params.hide) {
4641      clearTimeout(dragTimeout);
4642      dragTimeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
4643        el.style.opacity = 0;
4644        el.style.transitionDuration = '400ms';
4645      }, 1000);
4646    }
4647    emit('scrollbarDragEnd', e);
4648    if (params.snapOnRelease) {
4649      swiper.slideToClosest();
4650    }
4651  }
4652  function events(method) {
4653    const {
4654      scrollbar,
4655      params
4656    } = swiper;
4657    const el = scrollbar.el;
4658    if (!el) return;
4659    const target = el;
4660    const activeListener = params.passiveListeners ? {
4661      passive: false,
4662      capture: false
4663    } : false;
4664    const passiveListener = params.passiveListeners ? {
4665      passive: true,
4666      capture: false
4667    } : false;
4668    if (!target) return;
4669    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
4670    target[eventMethod]('pointerdown', onDragStart, activeListener);
4671    document[eventMethod]('pointermove', onDragMove, activeListener);
4672    document[eventMethod]('pointerup', onDragEnd, passiveListener);
4673  }
4674  function enableDraggable() {
4675    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4676    events('on');
4677  }
4678  function disableDraggable() {
4679    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
4680    events('off');
4681  }
4682  function init() {
4683    const {
4684      scrollbar,
4685      el: swiperEl
4686    } = swiper;
4687    swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.c)(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
4688      el: 'swiper-scrollbar'
4689    });
4690    const params = swiper.params.scrollbar;
4691    if (!params.el) return;
4692    let el;
4693    if (typeof params.el === 'string' && swiper.isElement) {
4694      el = swiper.el.querySelector(params.el);
4695    }
4696    if (!el && typeof params.el === 'string') {
4697      el = document.querySelectorAll(params.el);
4698      if (!el.length) return;
4699    } else if (!el) {
4700      el = params.el;
4701    }
4702    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {
4703      el = swiperEl.querySelector(params.el);
4704    }
4705    if (el.length > 0) el = el[0];
4706    el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4707    let dragEl;
4708    if (el) {
4709      dragEl = el.querySelector((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_3__.c)(swiper.params.scrollbar.dragClass));
4710      if (!dragEl) {
4711        dragEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.scrollbar.dragClass);
4712        el.append(dragEl);
4713      }
4714    }
4715    Object.assign(scrollbar, {
4716      el,
4717      dragEl
4718    });
4719    if (params.draggable) {
4720      enableDraggable();
4721    }
4722    if (el) {
4723      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.lockClass));
4724    }
4725  }
4726  function destroy() {
4727    const params = swiper.params.scrollbar;
4728    const el = swiper.scrollbar.el;
4729    if (el) {
4730      el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));
4731    }
4732    disableDraggable();
4733  }
4734  on('changeDirection', () => {
4735    if (!swiper.scrollbar || !swiper.scrollbar.el) return;
4736    const params = swiper.params.scrollbar;
4737    let {
4738      el
4739    } = swiper.scrollbar;
4740    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
4741    el.forEach(subEl => {
4742      subEl.classList.remove(params.horizontalClass, params.verticalClass);
4743      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4744    });
4745  });
4746  on('init', () => {
4747    if (swiper.params.scrollbar.enabled === false) {
4748      // eslint-disable-next-line
4749      disable();
4750    } else {
4751      init();
4752      updateSize();
4753      setTranslate();
4754    }
4755  });
4756  on('update resize observerUpdate lock unlock changeDirection', () => {
4757    updateSize();
4758  });
4759  on('setTranslate', () => {
4760    setTranslate();
4761  });
4762  on('setTransition', (_s, duration) => {
4763    setTransition(duration);
4764  });
4765  on('enable disable', () => {
4766    const {
4767      el
4768    } = swiper.scrollbar;
4769    if (el) {
4770      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.lockClass));
4771    }
4772  });
4773  on('destroy', () => {
4774    destroy();
4775  });
4776  const enable = () => {
4777    swiper.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.scrollbarDisabledClass));
4778    if (swiper.scrollbar.el) {
4779      swiper.scrollbar.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.scrollbarDisabledClass));
4780    }
4781    init();
4782    updateSize();
4783    setTranslate();
4784  };
4785  const disable = () => {
4786    swiper.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.scrollbarDisabledClass));
4787    if (swiper.scrollbar.el) {
4788      swiper.scrollbar.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(swiper.params.scrollbar.scrollbarDisabledClass));
4789    }
4790    destroy();
4791  };
4792  Object.assign(swiper.scrollbar, {
4793    enable,
4794    disable,
4795    updateSize,
4796    setTranslate,
4797    init,
4798    destroy
4799  });
4800}
4801
4802
4803
4804
4805/***/ }),
4806
vendor: 8,213 bytes, lines 4807-5020
4807/***/ "./node_modules/swiper/modules/thumbs.mjs":
4808/*!************************************************!*\
4809  !*** ./node_modules/swiper/modules/thumbs.mjs ***!
4810  \************************************************/
4811/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
4812
4813"use strict";
4814__webpack_require__.r(__webpack_exports__);
4815/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4816/* harmony export */   "default": function() { return /* binding */ Thumb; }
4817/* harmony export */ });
4818/* 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");
4819/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4820
4821
4822
4823function Thumb(_ref) {
4824  let {
4825    swiper,
4826    extendParams,
4827    on
4828  } = _ref;
4829  extendParams({
4830    thumbs: {
4831      swiper: null,
4832      multipleActiveThumbs: true,
4833      autoScrollOffset: 0,
4834      slideThumbActiveClass: 'swiper-slide-thumb-active',
4835      thumbsContainerClass: 'swiper-thumbs'
4836    }
4837  });
4838  let initialized = false;
4839  let swiperCreated = false;
4840  swiper.thumbs = {
4841    swiper: null
4842  };
4843  function onThumbClick() {
4844    const thumbsSwiper = swiper.thumbs.swiper;
4845    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4846    const clickedIndex = thumbsSwiper.clickedIndex;
4847    const clickedSlide = thumbsSwiper.clickedSlide;
4848    if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;
4849    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;
4850    let slideToIndex;
4851    if (thumbsSwiper.params.loop) {
4852      slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
4853    } else {
4854      slideToIndex = clickedIndex;
4855    }
4856    if (swiper.params.loop) {
4857      swiper.slideToLoop(slideToIndex);
4858    } else {
4859      swiper.slideTo(slideToIndex);
4860    }
4861  }
4862  function init() {
4863    const {
4864      thumbs: thumbsParams
4865    } = swiper.params;
4866    if (initialized) return false;
4867    initialized = true;
4868    const SwiperClass = swiper.constructor;
4869    if (thumbsParams.swiper instanceof SwiperClass) {
4870      if (thumbsParams.swiper.destroyed) {
4871        initialized = false;
4872        return false;
4873      }
4874      swiper.thumbs.swiper = thumbsParams.swiper;
4875      Object.assign(swiper.thumbs.swiper.originalParams, {
4876        watchSlidesProgress: true,
4877        slideToClickedSlide: false
4878      });
4879      Object.assign(swiper.thumbs.swiper.params, {
4880        watchSlidesProgress: true,
4881        slideToClickedSlide: false
4882      });
4883      swiper.thumbs.swiper.update();
4884    } else if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(thumbsParams.swiper)) {
4885      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);
4886      Object.assign(thumbsSwiperParams, {
4887        watchSlidesProgress: true,
4888        slideToClickedSlide: false
4889      });
4890      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);
4891      swiperCreated = true;
4892    }
4893    swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);
4894    swiper.thumbs.swiper.on('tap', onThumbClick);
4895    return true;
4896  }
4897  function update(initial) {
4898    const thumbsSwiper = swiper.thumbs.swiper;
4899    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
4900    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
4901
4902    // Activate thumbs
4903    let thumbsToActivate = 1;
4904    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;
4905    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {
4906      thumbsToActivate = swiper.params.slidesPerView;
4907    }
4908    if (!swiper.params.thumbs.multipleActiveThumbs) {
4909      thumbsToActivate = 1;
4910    }
4911    thumbsToActivate = Math.floor(thumbsToActivate);
4912    thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));
4913    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
4914      for (let i = 0; i < thumbsToActivate; i += 1) {
4915        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => {
4916          slideEl.classList.add(thumbActiveClass);
4917        });
4918      }
4919    } else {
4920      for (let i = 0; i < thumbsToActivate; i += 1) {
4921        if (thumbsSwiper.slides[swiper.realIndex + i]) {
4922          thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);
4923        }
4924      }
4925    }
4926    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
4927    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
4928    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
4929      const currentThumbsIndex = thumbsSwiper.activeIndex;
4930      let newThumbsIndex;
4931      let direction;
4932      if (thumbsSwiper.params.loop) {
4933        const newThumbsSlide = thumbsSwiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`);
4934        newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);
4935        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';
4936      } else {
4937        newThumbsIndex = swiper.realIndex;
4938        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';
4939      }
4940      if (useOffset) {
4941        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;
4942      }
4943      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
4944        if (thumbsSwiper.params.centeredSlides) {
4945          if (newThumbsIndex > currentThumbsIndex) {
4946            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
4947          } else {
4948            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
4949          }
4950        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
4951        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
4952      }
4953    }
4954  }
4955  on('beforeInit', () => {
4956    const {
4957      thumbs
4958    } = swiper.params;
4959    if (!thumbs || !thumbs.swiper) return;
4960    if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {
4961      const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
4962      const getThumbsElementAndInit = () => {
4963        const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;
4964        if (thumbsElement && thumbsElement.swiper) {
4965          thumbs.swiper = thumbsElement.swiper;
4966          init();
4967          update(true);
4968        } else if (thumbsElement) {
4969          const eventName = `${swiper.params.eventsPrefix}init`;
4970          const onThumbsSwiper = e => {
4971            thumbs.swiper = e.detail[0];
4972            thumbsElement.removeEventListener(eventName, onThumbsSwiper);
4973            init();
4974            update(true);
4975            thumbs.swiper.update();
4976            swiper.update();
4977          };
4978          thumbsElement.addEventListener(eventName, onThumbsSwiper);
4979        }
4980        return thumbsElement;
4981      };
4982      const watchForThumbsToAppear = () => {
4983        if (swiper.destroyed) return;
4984        const thumbsElement = getThumbsElementAndInit();
4985        if (!thumbsElement) {
4986          requestAnimationFrame(watchForThumbsToAppear);
4987        }
4988      };
4989      requestAnimationFrame(watchForThumbsToAppear);
4990    } else {
4991      init();
4992      update(true);
4993    }
4994  });
4995  on('slideChange update resize observerUpdate', () => {
4996    update();
4997  });
4998  on('setTransition', (_s, duration) => {
4999    const thumbsSwiper = swiper.thumbs.swiper;
5000    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
5001    thumbsSwiper.setTransition(duration);
5002  });
5003  on('beforeDestroy', () => {
5004    const thumbsSwiper = swiper.thumbs.swiper;
5005    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
5006    if (swiperCreated) {
5007      thumbsSwiper.destroy();
5008    }
5009  });
5010  Object.assign(swiper.thumbs, {
5011    init,
5012    update
5013  });
5014}
5015
5016
5017
5018
5019/***/ }),
5020
vendor: 12,588 bytes, lines 5021-5386
5021/***/ "./node_modules/swiper/modules/virtual.mjs":
5022/*!*************************************************!*\
5023  !*** ./node_modules/swiper/modules/virtual.mjs ***!
5024  \*************************************************/
5025/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
5026
5027"use strict";
5028__webpack_require__.r(__webpack_exports__);
5029/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5030/* harmony export */   "default": function() { return /* binding */ Virtual; }
5031/* harmony export */ });
5032/* 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");
5033/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5034
5035
5036
5037function Virtual(_ref) {
5038  let {
5039    swiper,
5040    extendParams,
5041    on,
5042    emit
5043  } = _ref;
5044  extendParams({
5045    virtual: {
5046      enabled: false,
5047      slides: [],
5048      cache: true,
5049      renderSlide: null,
5050      renderExternal: null,
5051      renderExternalUpdate: true,
5052      addSlidesBefore: 0,
5053      addSlidesAfter: 0
5054    }
5055  });
5056  let cssModeTimeout;
5057  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
5058  swiper.virtual = {
5059    cache: {},
5060    from: undefined,
5061    to: undefined,
5062    slides: [],
5063    offset: 0,
5064    slidesGrid: []
5065  };
5066  const tempDOM = document.createElement('div');
5067  function renderSlide(slide, index) {
5068    const params = swiper.params.virtual;
5069    if (params.cache && swiper.virtual.cache[index]) {
5070      return swiper.virtual.cache[index];
5071    }
5072    // eslint-disable-next-line
5073    let slideEl;
5074    if (params.renderSlide) {
5075      slideEl = params.renderSlide.call(swiper, slide, index);
5076      if (typeof slideEl === 'string') {
5077        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(tempDOM, slideEl);
5078        slideEl = tempDOM.children[0];
5079      }
5080    } else if (swiper.isElement) {
5081      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('swiper-slide');
5082    } else {
5083      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.slideClass);
5084    }
5085    slideEl.setAttribute('data-swiper-slide-index', index);
5086    if (!params.renderSlide) {
5087      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(slideEl, slide);
5088    }
5089    if (params.cache) {
5090      swiper.virtual.cache[index] = slideEl;
5091    }
5092    return slideEl;
5093  }
5094  function update(force, beforeInit, forceActiveIndex) {
5095    const {
5096      slidesPerView,
5097      slidesPerGroup,
5098      centeredSlides,
5099      loop: isLoop,
5100      initialSlide
5101    } = swiper.params;
5102    if (beforeInit && !isLoop && initialSlide > 0) {
5103      return;
5104    }
5105    const {
5106      addSlidesBefore,
5107      addSlidesAfter
5108    } = swiper.params.virtual;
5109    const {
5110      from: previousFrom,
5111      to: previousTo,
5112      slides,
5113      slidesGrid: previousSlidesGrid,
5114      offset: previousOffset
5115    } = swiper.virtual;
5116    if (!swiper.params.cssMode) {
5117      swiper.updateActiveIndex();
5118    }
5119    const activeIndex = typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;
5120    let offsetProp;
5121    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
5122    let slidesAfter;
5123    let slidesBefore;
5124    if (centeredSlides) {
5125      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
5126      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
5127    } else {
5128      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
5129      slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;
5130    }
5131    let from = activeIndex - slidesBefore;
5132    let to = activeIndex + slidesAfter;
5133    if (!isLoop) {
5134      from = Math.max(from, 0);
5135      to = Math.min(to, slides.length - 1);
5136    }
5137    let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
5138    if (isLoop && activeIndex >= slidesBefore) {
5139      from -= slidesBefore;
5140      if (!centeredSlides) offset += swiper.slidesGrid[0];
5141    } else if (isLoop && activeIndex < slidesBefore) {
5142      from = -slidesBefore;
5143      if (centeredSlides) offset += swiper.slidesGrid[0];
5144    }
5145    Object.assign(swiper.virtual, {
5146      from,
5147      to,
5148      offset,
5149      slidesGrid: swiper.slidesGrid,
5150      slidesBefore,
5151      slidesAfter
5152    });
5153    function onRendered() {
5154      swiper.updateSlides();
5155      swiper.updateProgress();
5156      swiper.updateSlidesClasses();
5157      emit('virtualUpdate');
5158    }
5159    if (previousFrom === from && previousTo === to && !force) {
5160      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
5161        swiper.slides.forEach(slideEl => {
5162          slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
5163        });
5164      }
5165      swiper.updateProgress();
5166      emit('virtualUpdate');
5167      return;
5168    }
5169    if (swiper.params.virtual.renderExternal) {
5170      swiper.params.virtual.renderExternal.call(swiper, {
5171        offset,
5172        from,
5173        to,
5174        slides: function getSlides() {
5175          const slidesToRender = [];
5176          for (let i = from; i <= to; i += 1) {
5177            slidesToRender.push(slides[i]);
5178          }
5179          return slidesToRender;
5180        }()
5181      });
5182      if (swiper.params.virtual.renderExternalUpdate) {
5183        onRendered();
5184      } else {
5185        emit('virtualUpdate');
5186      }
5187      return;
5188    }
5189    const prependIndexes = [];
5190    const appendIndexes = [];
5191    const getSlideIndex = index => {
5192      let slideIndex = index;
5193      if (index < 0) {
5194        slideIndex = slides.length + index;
5195      } else if (slideIndex >= slides.length) {
5196        // eslint-disable-next-line
5197        slideIndex = slideIndex - slides.length;
5198      }
5199      return slideIndex;
5200    };
5201    if (force) {
5202      swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {
5203        slideEl.remove();
5204      });
5205    } else {
5206      for (let i = previousFrom; i <= previousTo; i += 1) {
5207        if (i < from || i > to) {
5208          const slideIndex = getSlideIndex(i);
5209          swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => {
5210            slideEl.remove();
5211          });
5212        }
5213      }
5214    }
5215    const loopFrom = isLoop ? -slides.length : 0;
5216    const loopTo = isLoop ? slides.length * 2 : slides.length;
5217    for (let i = loopFrom; i < loopTo; i += 1) {
5218      if (i >= from && i <= to) {
5219        const slideIndex = getSlideIndex(i);
5220        if (typeof previousTo === 'undefined' || force) {
5221          appendIndexes.push(slideIndex);
5222        } else {
5223          if (i > previousTo) appendIndexes.push(slideIndex);
5224          if (i < previousFrom) prependIndexes.push(slideIndex);
5225        }
5226      }
5227    }
5228    appendIndexes.forEach(index => {
5229      swiper.slidesEl.append(renderSlide(slides[index], index));
5230    });
5231    if (isLoop) {
5232      for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
5233        const index = prependIndexes[i];
5234        swiper.slidesEl.prepend(renderSlide(slides[index], index));
5235      }
5236    } else {
5237      prependIndexes.sort((a, b) => b - a);
5238      prependIndexes.forEach(index => {
5239        swiper.slidesEl.prepend(renderSlide(slides[index], index));
5240      });
5241    }
5242    (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
5243      slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
5244    });
5245    onRendered();
5246  }
5247  function appendSlide(slides) {
5248    if (typeof slides === 'object' && 'length' in slides) {
5249      for (let i = 0; i < slides.length; i += 1) {
5250        if (slides[i]) swiper.virtual.slides.push(slides[i]);
5251      }
5252    } else {
5253      swiper.virtual.slides.push(slides);
5254    }
5255    update(true);
5256  }
5257  function prependSlide(slides) {
5258    const activeIndex = swiper.activeIndex;
5259    let newActiveIndex = activeIndex + 1;
5260    let numberOfNewSlides = 1;
5261    if (Array.isArray(slides)) {
5262      for (let i = 0; i < slides.length; i += 1) {
5263        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
5264      }
5265      newActiveIndex = activeIndex + slides.length;
5266      numberOfNewSlides = slides.length;
5267    } else {
5268      swiper.virtual.slides.unshift(slides);
5269    }
5270    if (swiper.params.virtual.cache) {
5271      const cache = swiper.virtual.cache;
5272      const newCache = {};
5273      Object.keys(cache).forEach(cachedIndex => {
5274        const cachedEl = cache[cachedIndex];
5275        const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
5276        if (cachedElIndex) {
5277          cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
5278        }
5279        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
5280      });
5281      swiper.virtual.cache = newCache;
5282    }
5283    update(true);
5284    swiper.slideTo(newActiveIndex, 0);
5285  }
5286  function removeSlide(slidesIndexes) {
5287    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
5288    let activeIndex = swiper.activeIndex;
5289    if (Array.isArray(slidesIndexes)) {
5290      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
5291        if (swiper.params.virtual.cache) {
5292          delete swiper.virtual.cache[slidesIndexes[i]];
5293          // shift cache indexes
5294          Object.keys(swiper.virtual.cache).forEach(key => {
5295            if (key > slidesIndexes) {
5296              swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
5297              swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
5298              delete swiper.virtual.cache[key];
5299            }
5300          });
5301        }
5302        swiper.virtual.slides.splice(slidesIndexes[i], 1);
5303        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
5304        activeIndex = Math.max(activeIndex, 0);
5305      }
5306    } else {
5307      if (swiper.params.virtual.cache) {
5308        delete swiper.virtual.cache[slidesIndexes];
5309        // shift cache indexes
5310        Object.keys(swiper.virtual.cache).forEach(key => {
5311          if (key > slidesIndexes) {
5312            swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
5313            swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
5314            delete swiper.virtual.cache[key];
5315          }
5316        });
5317      }
5318      swiper.virtual.slides.splice(slidesIndexes, 1);
5319      if (slidesIndexes < activeIndex) activeIndex -= 1;
5320      activeIndex = Math.max(activeIndex, 0);
5321    }
5322    update(true);
5323    swiper.slideTo(activeIndex, 0);
5324  }
5325  function removeAllSlides() {
5326    swiper.virtual.slides = [];
5327    if (swiper.params.virtual.cache) {
5328      swiper.virtual.cache = {};
5329    }
5330    update(true);
5331    swiper.slideTo(0, 0);
5332  }
5333  on('beforeInit', () => {
5334    if (!swiper.params.virtual.enabled) return;
5335    let domSlidesAssigned;
5336    if (typeof swiper.passedParams.virtual.slides === 'undefined') {
5337      const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
5338      if (slides && slides.length) {
5339        swiper.virtual.slides = [...slides];
5340        domSlidesAssigned = true;
5341        slides.forEach((slideEl, slideIndex) => {
5342          slideEl.setAttribute('data-swiper-slide-index', slideIndex);
5343          swiper.virtual.cache[slideIndex] = slideEl;
5344          slideEl.remove();
5345        });
5346      }
5347    }
5348    if (!domSlidesAssigned) {
5349      swiper.virtual.slides = swiper.params.virtual.slides;
5350    }
5351    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
5352    swiper.params.watchSlidesProgress = true;
5353    swiper.originalParams.watchSlidesProgress = true;
5354    update(false, true);
5355  });
5356  on('setTranslate', () => {
5357    if (!swiper.params.virtual.enabled) return;
5358    if (swiper.params.cssMode && !swiper._immediateVirtual) {
5359      clearTimeout(cssModeTimeout);
5360      cssModeTimeout = setTimeout(() => {
5361        update();
5362      }, 100);
5363    } else {
5364      update();
5365    }
5366  });
5367  on('init update resize', () => {
5368    if (!swiper.params.virtual.enabled) return;
5369    if (swiper.params.cssMode) {
5370      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
5371    }
5372  });
5373  Object.assign(swiper.virtual, {
5374    appendSlide,
5375    prependSlide,
5376    removeSlide,
5377    removeAllSlides,
5378    update
5379  });
5380}
5381
5382
5383
5384
5385/***/ }),
5386
vendor: 26,521 bytes, lines 5387-6104
5387/***/ "./node_modules/swiper/modules/zoom.mjs":
5388/*!**********************************************!*\
5389  !*** ./node_modules/swiper/modules/zoom.mjs ***!
5390  \**********************************************/
5391/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
5392
5393"use strict";
5394__webpack_require__.r(__webpack_exports__);
5395/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5396/* harmony export */   "default": function() { return /* binding */ Zoom; }
5397/* harmony export */ });
5398/* 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");
5399/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5400
5401
5402
5403function Zoom(_ref) {
5404  let {
5405    swiper,
5406    extendParams,
5407    on,
5408    emit
5409  } = _ref;
5410  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
5411  extendParams({
5412    zoom: {
5413      enabled: false,
5414      limitToOriginalSize: false,
5415      maxRatio: 3,
5416      minRatio: 1,
5417      panOnMouseMove: false,
5418      toggle: true,
5419      containerClass: 'swiper-zoom-container',
5420      zoomedSlideClass: 'swiper-slide-zoomed'
5421    }
5422  });
5423  swiper.zoom = {
5424    enabled: false
5425  };
5426  let currentScale = 1;
5427  let isScaling = false;
5428  let isPanningWithMouse = false;
5429  let mousePanStart = {
5430    x: 0,
5431    y: 0
5432  };
5433  const mousePanSensitivity = -3; // Negative to invert pan direction
5434  let fakeGestureTouched;
5435  let fakeGestureMoved;
5436  const evCache = [];
5437  const gesture = {
5438    originX: 0,
5439    originY: 0,
5440    slideEl: undefined,
5441    slideWidth: undefined,
5442    slideHeight: undefined,
5443    imageEl: undefined,
5444    imageWrapEl: undefined,
5445    maxRatio: 3
5446  };
5447  const image = {
5448    isTouched: undefined,
5449    isMoved: undefined,
5450    currentX: undefined,
5451    currentY: undefined,
5452    minX: undefined,
5453    minY: undefined,
5454    maxX: undefined,
5455    maxY: undefined,
5456    width: undefined,
5457    height: undefined,
5458    startX: undefined,
5459    startY: undefined,
5460    touchesStart: {},
5461    touchesCurrent: {}
5462  };
5463  const velocity = {
5464    x: undefined,
5465    y: undefined,
5466    prevPositionX: undefined,
5467    prevPositionY: undefined,
5468    prevTime: undefined
5469  };
5470  let scale = 1;
5471  Object.defineProperty(swiper.zoom, 'scale', {
5472    get() {
5473      return scale;
5474    },
5475    set(value) {
5476      if (scale !== value) {
5477        const imageEl = gesture.imageEl;
5478        const slideEl = gesture.slideEl;
5479        emit('zoomChange', value, imageEl, slideEl);
5480      }
5481      scale = value;
5482    }
5483  });
5484  function getDistanceBetweenTouches() {
5485    if (evCache.length < 2) return 1;
5486    const x1 = evCache[0].pageX;
5487    const y1 = evCache[0].pageY;
5488    const x2 = evCache[1].pageX;
5489    const y2 = evCache[1].pageY;
5490    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
5491    return distance;
5492  }
5493  function getMaxRatio() {
5494    const params = swiper.params.zoom;
5495    const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
5496    if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {
5497      const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;
5498      return Math.min(imageMaxRatio, maxRatio);
5499    }
5500    return maxRatio;
5501  }
5502  function getScaleOrigin() {
5503    if (evCache.length < 2) return {
5504      x: null,
5505      y: null
5506    };
5507    const box = gesture.imageEl.getBoundingClientRect();
5508    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];
5509  }
5510  function getSlideSelector() {
5511    return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
5512  }
5513  function eventWithinSlide(e) {
5514    const slideSelector = getSlideSelector();
5515    if (e.target.matches(slideSelector)) return true;
5516    if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;
5517    return false;
5518  }
5519  function eventWithinZoomContainer(e) {
5520    const selector = `.${swiper.params.zoom.containerClass}`;
5521    if (e.target.matches(selector)) return true;
5522    if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;
5523    return false;
5524  }
5525
5526  // Events
5527  function onGestureStart(e) {
5528    if (e.pointerType === 'mouse') {
5529      evCache.splice(0, evCache.length);
5530    }
5531    if (!eventWithinSlide(e)) return;
5532    const params = swiper.params.zoom;
5533    fakeGestureTouched = false;
5534    fakeGestureMoved = false;
5535    evCache.push(e);
5536    if (evCache.length < 2) {
5537      return;
5538    }
5539    fakeGestureTouched = true;
5540    gesture.scaleStart = getDistanceBetweenTouches();
5541    if (!gesture.slideEl) {
5542      gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
5543      if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];
5544      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5545      if (imageEl) {
5546        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5547      }
5548      gesture.imageEl = imageEl;
5549      if (imageEl) {
5550        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.imageEl, `.${params.containerClass}`)[0];
5551      } else {
5552        gesture.imageWrapEl = undefined;
5553      }
5554      if (!gesture.imageWrapEl) {
5555        gesture.imageEl = undefined;
5556        return;
5557      }
5558      gesture.maxRatio = getMaxRatio();
5559    }
5560    if (gesture.imageEl) {
5561      const [originX, originY] = getScaleOrigin();
5562      gesture.originX = originX;
5563      gesture.originY = originY;
5564      gesture.imageEl.style.transitionDuration = '0ms';
5565    }
5566    isScaling = true;
5567  }
5568  function onGestureChange(e) {
5569    if (!eventWithinSlide(e)) return;
5570    const params = swiper.params.zoom;
5571    const zoom = swiper.zoom;
5572    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
5573    if (pointerIndex >= 0) evCache[pointerIndex] = e;
5574    if (evCache.length < 2) {
5575      return;
5576    }
5577    fakeGestureMoved = true;
5578    gesture.scaleMove = getDistanceBetweenTouches();
5579    if (!gesture.imageEl) {
5580      return;
5581    }
5582    zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;
5583    if (zoom.scale > gesture.maxRatio) {
5584      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
5585    }
5586    if (zoom.scale < params.minRatio) {
5587      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
5588    }
5589    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5590  }
5591  function onGestureEnd(e) {
5592    if (!eventWithinSlide(e)) return;
5593    if (e.pointerType === 'mouse' && e.type === 'pointerout') return;
5594    const params = swiper.params.zoom;
5595    const zoom = swiper.zoom;
5596    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
5597    if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);
5598    if (!fakeGestureTouched || !fakeGestureMoved) {
5599      return;
5600    }
5601    fakeGestureTouched = false;
5602    fakeGestureMoved = false;
5603    if (!gesture.imageEl) return;
5604    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
5605    gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;
5606    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5607    currentScale = zoom.scale;
5608    isScaling = false;
5609    if (zoom.scale > 1 && gesture.slideEl) {
5610      gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
5611    } else if (zoom.scale <= 1 && gesture.slideEl) {
5612      gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
5613    }
5614    if (zoom.scale === 1) {
5615      gesture.originX = 0;
5616      gesture.originY = 0;
5617      gesture.slideEl = undefined;
5618    }
5619  }
5620  let allowTouchMoveTimeout;
5621  function allowTouchMove() {
5622    swiper.touchEventsData.preventTouchMoveFromPointerMove = false;
5623  }
5624  function preventTouchMove() {
5625    clearTimeout(allowTouchMoveTimeout);
5626    swiper.touchEventsData.preventTouchMoveFromPointerMove = true;
5627    allowTouchMoveTimeout = setTimeout(() => {
5628      if (swiper.destroyed) return;
5629      allowTouchMove();
5630    });
5631  }
5632  function onTouchStart(e) {
5633    const device = swiper.device;
5634    if (!gesture.imageEl) return;
5635    if (image.isTouched) return;
5636    if (device.android && e.cancelable) e.preventDefault();
5637    image.isTouched = true;
5638    const event = evCache.length > 0 ? evCache[0] : e;
5639    image.touchesStart.x = event.pageX;
5640    image.touchesStart.y = event.pageY;
5641  }
5642  function onTouchMove(e) {
5643    const isMouseEvent = e.pointerType === 'mouse';
5644    const isMousePan = isMouseEvent && swiper.params.zoom.panOnMouseMove;
5645    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {
5646      return;
5647    }
5648    const zoom = swiper.zoom;
5649    if (!gesture.imageEl) {
5650      return;
5651    }
5652    if (!image.isTouched || !gesture.slideEl) {
5653      if (isMousePan) onMouseMove(e);
5654      return;
5655    }
5656    if (isMousePan) {
5657      onMouseMove(e);
5658      return;
5659    }
5660    if (!image.isMoved) {
5661      image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5662      image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5663      image.startX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.k)(gesture.imageWrapEl, 'x') || 0;
5664      image.startY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.k)(gesture.imageWrapEl, 'y') || 0;
5665      gesture.slideWidth = gesture.slideEl.offsetWidth;
5666      gesture.slideHeight = gesture.slideEl.offsetHeight;
5667      gesture.imageWrapEl.style.transitionDuration = '0ms';
5668    }
5669    // Define if we need image drag
5670    const scaledWidth = image.width * zoom.scale;
5671    const scaledHeight = image.height * zoom.scale;
5672    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
5673    image.maxX = -image.minX;
5674    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
5675    image.maxY = -image.minY;
5676    image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;
5677    image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;
5678    const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));
5679    if (touchesDiff > 5) {
5680      swiper.allowClick = false;
5681    }
5682    if (!image.isMoved && !isScaling) {
5683      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)) {
5684        image.isTouched = false;
5685        allowTouchMove();
5686        return;
5687      }
5688      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)) {
5689        image.isTouched = false;
5690        allowTouchMove();
5691        return;
5692      }
5693    }
5694    if (e.cancelable) {
5695      e.preventDefault();
5696    }
5697    e.stopPropagation();
5698    preventTouchMove();
5699    image.isMoved = true;
5700    const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);
5701    const {
5702      originX,
5703      originY
5704    } = gesture;
5705    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);
5706    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);
5707    if (image.currentX < image.minX) {
5708      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
5709    }
5710    if (image.currentX > image.maxX) {
5711      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
5712    }
5713    if (image.currentY < image.minY) {
5714      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
5715    }
5716    if (image.currentY > image.maxY) {
5717      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
5718    }
5719
5720    // Velocity
5721    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;
5722    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;
5723    if (!velocity.prevTime) velocity.prevTime = Date.now();
5724    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
5725    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
5726    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;
5727    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;
5728    velocity.prevPositionX = image.touchesCurrent.x;
5729    velocity.prevPositionY = image.touchesCurrent.y;
5730    velocity.prevTime = Date.now();
5731    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
5732  }
5733  function onTouchEnd() {
5734    const zoom = swiper.zoom;
5735    evCache.length = 0;
5736    if (!gesture.imageEl) return;
5737    if (!image.isTouched || !image.isMoved) {
5738      image.isTouched = false;
5739      image.isMoved = false;
5740      return;
5741    }
5742    image.isTouched = false;
5743    image.isMoved = false;
5744    let momentumDurationX = 300;
5745    let momentumDurationY = 300;
5746    const momentumDistanceX = velocity.x * momentumDurationX;
5747    const newPositionX = image.currentX + momentumDistanceX;
5748    const momentumDistanceY = velocity.y * momentumDurationY;
5749    const newPositionY = image.currentY + momentumDistanceY;
5750
5751    // Fix duration
5752    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
5753    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
5754    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);
5755    image.currentX = newPositionX;
5756    image.currentY = newPositionY;
5757    // Define if we need image drag
5758    const scaledWidth = image.width * zoom.scale;
5759    const scaledHeight = image.height * zoom.scale;
5760    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
5761    image.maxX = -image.minX;
5762    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
5763    image.maxY = -image.minY;
5764    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
5765    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
5766    gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;
5767    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
5768  }
5769  function onTransitionEnd() {
5770    const zoom = swiper.zoom;
5771    if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {
5772      if (gesture.imageEl) {
5773        gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
5774      }
5775      if (gesture.imageWrapEl) {
5776        gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
5777      }
5778      gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);
5779      zoom.scale = 1;
5780      currentScale = 1;
5781      gesture.slideEl = undefined;
5782      gesture.imageEl = undefined;
5783      gesture.imageWrapEl = undefined;
5784      gesture.originX = 0;
5785      gesture.originY = 0;
5786    }
5787  }
5788  function onMouseMove(e) {
5789    // Only pan if zoomed in and mouse panning is enabled
5790    if (currentScale <= 1 || !gesture.imageWrapEl) return;
5791    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;
5792    const currentTransform = window.getComputedStyle(gesture.imageWrapEl).transform;
5793    const matrix = new window.DOMMatrix(currentTransform);
5794    if (!isPanningWithMouse) {
5795      isPanningWithMouse = true;
5796      mousePanStart.x = e.clientX;
5797      mousePanStart.y = e.clientY;
5798      image.startX = matrix.e;
5799      image.startY = matrix.f;
5800      image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5801      image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5802      gesture.slideWidth = gesture.slideEl.offsetWidth;
5803      gesture.slideHeight = gesture.slideEl.offsetHeight;
5804      return;
5805    }
5806    const deltaX = (e.clientX - mousePanStart.x) * mousePanSensitivity;
5807    const deltaY = (e.clientY - mousePanStart.y) * mousePanSensitivity;
5808    const scaledWidth = image.width * currentScale;
5809    const scaledHeight = image.height * currentScale;
5810    const slideWidth = gesture.slideWidth;
5811    const slideHeight = gesture.slideHeight;
5812    const minX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
5813    const maxX = -minX;
5814    const minY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
5815    const maxY = -minY;
5816    const newX = Math.max(Math.min(image.startX + deltaX, maxX), minX);
5817    const newY = Math.max(Math.min(image.startY + deltaY, maxY), minY);
5818    gesture.imageWrapEl.style.transitionDuration = '0ms';
5819    gesture.imageWrapEl.style.transform = `translate3d(${newX}px, ${newY}px, 0)`;
5820    mousePanStart.x = e.clientX;
5821    mousePanStart.y = e.clientY;
5822    image.startX = newX;
5823    image.startY = newY;
5824    image.currentX = newX;
5825    image.currentY = newY;
5826  }
5827  function zoomIn(e) {
5828    const zoom = swiper.zoom;
5829    const params = swiper.params.zoom;
5830    if (!gesture.slideEl) {
5831      if (e && e.target) {
5832        gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
5833      }
5834      if (!gesture.slideEl) {
5835        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
5836          gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
5837        } else {
5838          gesture.slideEl = swiper.slides[swiper.activeIndex];
5839        }
5840      }
5841      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5842      if (imageEl) {
5843        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5844      }
5845      gesture.imageEl = imageEl;
5846      if (imageEl) {
5847        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.imageEl, `.${params.containerClass}`)[0];
5848      } else {
5849        gesture.imageWrapEl = undefined;
5850      }
5851    }
5852    if (!gesture.imageEl || !gesture.imageWrapEl) return;
5853    if (swiper.params.cssMode) {
5854      swiper.wrapperEl.style.overflow = 'hidden';
5855      swiper.wrapperEl.style.touchAction = 'none';
5856    }
5857    gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
5858    let touchX;
5859    let touchY;
5860    let offsetX;
5861    let offsetY;
5862    let diffX;
5863    let diffY;
5864    let translateX;
5865    let translateY;
5866    let imageWidth;
5867    let imageHeight;
5868    let scaledWidth;
5869    let scaledHeight;
5870    let translateMinX;
5871    let translateMinY;
5872    let translateMaxX;
5873    let translateMaxY;
5874    let slideWidth;
5875    let slideHeight;
5876    if (typeof image.touchesStart.x === 'undefined' && e) {
5877      touchX = e.pageX;
5878      touchY = e.pageY;
5879    } else {
5880      touchX = image.touchesStart.x;
5881      touchY = image.touchesStart.y;
5882    }
5883    const prevScale = currentScale;
5884    const forceZoomRatio = typeof e === 'number' ? e : null;
5885    if (currentScale === 1 && forceZoomRatio) {
5886      touchX = undefined;
5887      touchY = undefined;
5888      image.touchesStart.x = undefined;
5889      image.touchesStart.y = undefined;
5890    }
5891    const maxRatio = getMaxRatio();
5892    zoom.scale = forceZoomRatio || maxRatio;
5893    currentScale = forceZoomRatio || maxRatio;
5894    if (e && !(currentScale === 1 && forceZoomRatio)) {
5895      slideWidth = gesture.slideEl.offsetWidth;
5896      slideHeight = gesture.slideEl.offsetHeight;
5897      offsetX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(gesture.slideEl).left + window.scrollX;
5898      offsetY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(gesture.slideEl).top + window.scrollY;
5899      diffX = offsetX + slideWidth / 2 - touchX;
5900      diffY = offsetY + slideHeight / 2 - touchY;
5901      imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
5902      imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
5903      scaledWidth = imageWidth * zoom.scale;
5904      scaledHeight = imageHeight * zoom.scale;
5905      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
5906      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
5907      translateMaxX = -translateMinX;
5908      translateMaxY = -translateMinY;
5909      if (prevScale > 0 && forceZoomRatio && typeof image.currentX === 'number' && typeof image.currentY === 'number') {
5910        translateX = image.currentX * zoom.scale / prevScale;
5911        translateY = image.currentY * zoom.scale / prevScale;
5912      } else {
5913        translateX = diffX * zoom.scale;
5914        translateY = diffY * zoom.scale;
5915      }
5916      if (translateX < translateMinX) {
5917        translateX = translateMinX;
5918      }
5919      if (translateX > translateMaxX) {
5920        translateX = translateMaxX;
5921      }
5922      if (translateY < translateMinY) {
5923        translateY = translateMinY;
5924      }
5925      if (translateY > translateMaxY) {
5926        translateY = translateMaxY;
5927      }
5928    } else {
5929      translateX = 0;
5930      translateY = 0;
5931    }
5932    if (forceZoomRatio && zoom.scale === 1) {
5933      gesture.originX = 0;
5934      gesture.originY = 0;
5935    }
5936    image.currentX = translateX;
5937    image.currentY = translateY;
5938    gesture.imageWrapEl.style.transitionDuration = '300ms';
5939    gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;
5940    gesture.imageEl.style.transitionDuration = '300ms';
5941    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
5942  }
5943  function zoomOut() {
5944    const zoom = swiper.zoom;
5945    const params = swiper.params.zoom;
5946    if (!gesture.slideEl) {
5947      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
5948        gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
5949      } else {
5950        gesture.slideEl = swiper.slides[swiper.activeIndex];
5951      }
5952      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
5953      if (imageEl) {
5954        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
5955      }
5956      gesture.imageEl = imageEl;
5957      if (imageEl) {
5958        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.imageEl, `.${params.containerClass}`)[0];
5959      } else {
5960        gesture.imageWrapEl = undefined;
5961      }
5962    }
5963    if (!gesture.imageEl || !gesture.imageWrapEl) return;
5964    if (swiper.params.cssMode) {
5965      swiper.wrapperEl.style.overflow = '';
5966      swiper.wrapperEl.style.touchAction = '';
5967    }
5968    zoom.scale = 1;
5969    currentScale = 1;
5970    image.currentX = undefined;
5971    image.currentY = undefined;
5972    image.touchesStart.x = undefined;
5973    image.touchesStart.y = undefined;
5974    gesture.imageWrapEl.style.transitionDuration = '300ms';
5975    gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
5976    gesture.imageEl.style.transitionDuration = '300ms';
5977    gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
5978    gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
5979    gesture.slideEl = undefined;
5980    gesture.originX = 0;
5981    gesture.originY = 0;
5982    if (swiper.params.zoom.panOnMouseMove) {
5983      mousePanStart = {
5984        x: 0,
5985        y: 0
5986      };
5987      if (isPanningWithMouse) {
5988        isPanningWithMouse = false;
5989        image.startX = 0;
5990        image.startY = 0;
5991      }
5992    }
5993  }
5994
5995  // Toggle Zoom
5996  function zoomToggle(e) {
5997    const zoom = swiper.zoom;
5998    if (zoom.scale && zoom.scale !== 1) {
5999      // Zoom Out
6000      zoomOut();
6001    } else {
6002      // Zoom In
6003      zoomIn(e);
6004    }
6005  }
6006  function getListeners() {
6007    const passiveListener = swiper.params.passiveListeners ? {
6008      passive: true,
6009      capture: false
6010    } : false;
6011    const activeListenerWithCapture = swiper.params.passiveListeners ? {
6012      passive: false,
6013      capture: true
6014    } : true;
6015    return {
6016      passiveListener,
6017      activeListenerWithCapture
6018    };
6019  }
6020
6021  // Attach/Detach Events
6022  function enable() {
6023    const zoom = swiper.zoom;
6024    if (zoom.enabled) return;
6025    zoom.enabled = true;
6026    const {
6027      passiveListener,
6028      activeListenerWithCapture
6029    } = getListeners();
6030
6031    // Scale image
6032    swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);
6033    swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);
6034    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
6035      swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);
6036    });
6037
6038    // Move image
6039    swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);
6040  }
6041  function disable() {
6042    const zoom = swiper.zoom;
6043    if (!zoom.enabled) return;
6044    zoom.enabled = false;
6045    const {
6046      passiveListener,
6047      activeListenerWithCapture
6048    } = getListeners();
6049
6050    // Scale image
6051    swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);
6052    swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);
6053    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
6054      swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);
6055    });
6056
6057    // Move image
6058    swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);
6059  }
6060  on('init', () => {
6061    if (swiper.params.zoom.enabled) {
6062      enable();
6063    }
6064  });
6065  on('destroy', () => {
6066    disable();
6067  });
6068  on('touchStart', (_s, e) => {
6069    if (!swiper.zoom.enabled) return;
6070    onTouchStart(e);
6071  });
6072  on('touchEnd', (_s, e) => {
6073    if (!swiper.zoom.enabled) return;
6074    onTouchEnd();
6075  });
6076  on('doubleTap', (_s, e) => {
6077    if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
6078      zoomToggle(e);
6079    }
6080  });
6081  on('transitionEnd', () => {
6082    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {
6083      onTransitionEnd();
6084    }
6085  });
6086  on('slideChange', () => {
6087    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {
6088      onTransitionEnd();
6089    }
6090  });
6091  Object.assign(swiper.zoom, {
6092    enable,
6093    disable,
6094    in: zoomIn,
6095    out: zoomOut,
6096    toggle: zoomToggle
6097  });
6098}
6099
6100
6101
6102
6103/***/ }),
6104
vendor: 805 bytes, lines 6105-6128
6105/***/ "./node_modules/swiper/shared/classes-to-selector.mjs":
6106/*!************************************************************!*\
6107  !*** ./node_modules/swiper/shared/classes-to-selector.mjs ***!
6108  \************************************************************/
6109/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6110
6111"use strict";
6112__webpack_require__.r(__webpack_exports__);
6113/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6114/* harmony export */   c: function() { return /* binding */ classesToSelector; }
6115/* harmony export */ });
6116function classesToSelector(classes) {
6117  if (classes === void 0) {
6118    classes = '';
6119  }
6120  return `.${classes.trim().replace(/([\.:!+\/()[\]])/g, '\\$1') // eslint-disable-line
6121  .replace(/ /g, '.')}`;
6122}
6123
6124
6125
6126
6127/***/ }),
6128
vendor: 1,439 bytes, lines 6129-6165
6129/***/ "./node_modules/swiper/shared/create-element-if-not-defined.mjs":
6130/*!**********************************************************************!*\
6131  !*** ./node_modules/swiper/shared/create-element-if-not-defined.mjs ***!
6132  \**********************************************************************/
6133/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6134
6135"use strict";
6136__webpack_require__.r(__webpack_exports__);
6137/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6138/* harmony export */   c: function() { return /* binding */ createElementIfNotDefined; }
6139/* harmony export */ });
6140/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6141
6142
6143function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
6144  if (swiper.params.createElements) {
6145    Object.keys(checkProps).forEach(key => {
6146      if (!params[key] && params.auto === true) {
6147        let element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.el, `.${checkProps[key]}`)[0];
6148        if (!element) {
6149          element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', checkProps[key]);
6150          element.className = checkProps[key];
6151          swiper.el.append(element);
6152        }
6153        params[key] = element;
6154        originalParams[key] = element;
6155      }
6156    });
6157  }
6158  return params;
6159}
6160
6161
6162
6163
6164/***/ }),
6165
vendor: 1,235 bytes, lines 6166-6195
6166/***/ "./node_modules/swiper/shared/create-shadow.mjs":
6167/*!******************************************************!*\
6168  !*** ./node_modules/swiper/shared/create-shadow.mjs ***!
6169  \******************************************************/
6170/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6171
6172"use strict";
6173__webpack_require__.r(__webpack_exports__);
6174/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6175/* harmony export */   c: function() { return /* binding */ createShadow; }
6176/* harmony export */ });
6177/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6178
6179
6180function createShadow(suffix, slideEl, side) {
6181  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;
6182  const shadowContainer = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
6183  let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);
6184  if (!shadowEl) {
6185    shadowEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', shadowClass.split(' '));
6186    shadowContainer.append(shadowEl);
6187  }
6188  return shadowEl;
6189}
6190
6191
6192
6193
6194/***/ }),
6195
vendor: 2,374 bytes, lines 6196-6268
6196/***/ "./node_modules/swiper/shared/effect-init.mjs":
6197/*!****************************************************!*\
6198  !*** ./node_modules/swiper/shared/effect-init.mjs ***!
6199  \****************************************************/
6200/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6201
6202"use strict";
6203__webpack_require__.r(__webpack_exports__);
6204/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6205/* harmony export */   e: function() { return /* binding */ effectInit; }
6206/* harmony export */ });
6207function effectInit(params) {
6208  const {
6209    effect,
6210    swiper,
6211    on,
6212    setTranslate,
6213    setTransition,
6214    overwriteParams,
6215    perspective,
6216    recreateShadows,
6217    getEffectParams
6218  } = params;
6219  on('beforeInit', () => {
6220    if (swiper.params.effect !== effect) return;
6221    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
6222    if (perspective && perspective()) {
6223      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
6224    }
6225    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};
6226    Object.assign(swiper.params, overwriteParamsResult);
6227    Object.assign(swiper.originalParams, overwriteParamsResult);
6228  });
6229  on('setTranslate _virtualUpdated', () => {
6230    if (swiper.params.effect !== effect) return;
6231    setTranslate();
6232  });
6233  on('setTransition', (_s, duration) => {
6234    if (swiper.params.effect !== effect) return;
6235    setTransition(duration);
6236  });
6237  on('transitionEnd', () => {
6238    if (swiper.params.effect !== effect) return;
6239    if (recreateShadows) {
6240      if (!getEffectParams || !getEffectParams().slideShadows) return;
6241      // remove shadows
6242      swiper.slides.forEach(slideEl => {
6243        slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());
6244      });
6245      // create new one
6246      recreateShadows();
6247    }
6248  });
6249  let requireUpdateOnVirtual;
6250  on('virtualUpdate', () => {
6251    if (swiper.params.effect !== effect) return;
6252    if (!swiper.slides.length) {
6253      requireUpdateOnVirtual = true;
6254    }
6255    requestAnimationFrame(() => {
6256      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {
6257        setTranslate();
6258        requireUpdateOnVirtual = false;
6259      }
6260    });
6261  });
6262}
6263
6264
6265
6266
6267/***/ }),
6268
vendor: 1,028 bytes, lines 6269-6296
6269/***/ "./node_modules/swiper/shared/effect-target.mjs":
6270/*!******************************************************!*\
6271  !*** ./node_modules/swiper/shared/effect-target.mjs ***!
6272  \******************************************************/
6273/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6274
6275"use strict";
6276__webpack_require__.r(__webpack_exports__);
6277/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6278/* harmony export */   e: function() { return /* binding */ effectTarget; }
6279/* harmony export */ });
6280/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6281
6282
6283function effectTarget(effectParams, slideEl) {
6284  const transformEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
6285  if (transformEl !== slideEl) {
6286    transformEl.style.backfaceVisibility = 'hidden';
6287    transformEl.style['-webkit-backface-visibility'] = 'hidden';
6288  }
6289  return transformEl;
6290}
6291
6292
6293
6294
6295/***/ }),
6296
vendor: 2,131 bytes, lines 6297-6360
6297/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs":
6298/*!**********************************************************************!*\
6299  !*** ./node_modules/swiper/shared/effect-virtual-transition-end.mjs ***!
6300  \**********************************************************************/
6301/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6302
6303"use strict";
6304__webpack_require__.r(__webpack_exports__);
6305/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6306/* harmony export */   e: function() { return /* binding */ effectVirtualTransitionEnd; }
6307/* harmony export */ });
6308/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6309
6310
6311function effectVirtualTransitionEnd(_ref) {
6312  let {
6313    swiper,
6314    duration,
6315    transformElements,
6316    allSlides
6317  } = _ref;
6318  const {
6319    activeIndex
6320  } = swiper;
6321  const getSlide = el => {
6322    if (!el.parentElement) {
6323      // assume shadow root
6324      const slide = swiper.slides.find(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode);
6325      return slide;
6326    }
6327    return el.parentElement;
6328  };
6329  if (swiper.params.virtualTranslate && duration !== 0) {
6330    let eventTriggered = false;
6331    let transitionEndTarget;
6332    if (allSlides) {
6333      transitionEndTarget = transformElements;
6334    } else {
6335      transitionEndTarget = transformElements.filter(transformEl => {
6336        const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;
6337        return swiper.getSlideIndex(el) === activeIndex;
6338      });
6339    }
6340    transitionEndTarget.forEach(el => {
6341      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(el, () => {
6342        if (eventTriggered) return;
6343        if (!swiper || swiper.destroyed) return;
6344        eventTriggered = true;
6345        swiper.animating = false;
6346        const evt = new window.CustomEvent('transitionend', {
6347          bubbles: true,
6348          cancelable: true
6349        });
6350        swiper.wrapperEl.dispatchEvent(evt);
6351      });
6352    });
6353  }
6354}
6355
6356
6357
6358
6359/***/ }),
6360
vendor: 3,468 bytes, lines 6361-6522
6361/***/ "./node_modules/swiper/shared/ssr-window.esm.mjs":
6362/*!*******************************************************!*\
6363  !*** ./node_modules/swiper/shared/ssr-window.esm.mjs ***!
6364  \*******************************************************/
6365/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6366
6367"use strict";
6368__webpack_require__.r(__webpack_exports__);
6369/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6370/* harmony export */   a: function() { return /* binding */ getWindow; },
6371/* harmony export */   g: function() { return /* binding */ getDocument; }
6372/* harmony export */ });
6373/**
6374 * SSR Window 5.0.1
6375 * Better handling for window object in SSR environment
6376 * https://github.com/nolimits4web/ssr-window
6377 *
6378 * Copyright 2025, Vladimir Kharlampidi
6379 *
6380 * Licensed under MIT
6381 *
6382 * Released on: June 27, 2025
6383 */
6384/* eslint-disable no-param-reassign */
6385function isObject(obj) {
6386  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
6387}
6388function extend(target, src) {
6389  if (target === void 0) {
6390    target = {};
6391  }
6392  if (src === void 0) {
6393    src = {};
6394  }
6395  const noExtend = ['__proto__', 'constructor', 'prototype'];
6396  Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {
6397    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {
6398      extend(target[key], src[key]);
6399    }
6400  });
6401}
6402const ssrDocument = {
6403  body: {},
6404  addEventListener() {},
6405  removeEventListener() {},
6406  activeElement: {
6407    blur() {},
6408    nodeName: ''
6409  },
6410  querySelector() {
6411    return null;
6412  },
6413  querySelectorAll() {
6414    return [];
6415  },
6416  getElementById() {
6417    return null;
6418  },
6419  createEvent() {
6420    return {
6421      initEvent() {}
6422    };
6423  },
6424  createElement() {
6425    return {
6426      children: [],
6427      childNodes: [],
6428      style: {},
6429      setAttribute() {},
6430      getElementsByTagName() {
6431        return [];
6432      }
6433    };
6434  },
6435  createElementNS() {
6436    return {};
6437  },
6438  importNode() {
6439    return null;
6440  },
6441  location: {
6442    hash: '',
6443    host: '',
6444    hostname: '',
6445    href: '',
6446    origin: '',
6447    pathname: '',
6448    protocol: '',
6449    search: ''
6450  }
6451};
6452function getDocument() {
6453  const doc = typeof document !== 'undefined' ? document : {};
6454  extend(doc, ssrDocument);
6455  return doc;
6456}
6457const ssrWindow = {
6458  document: ssrDocument,
6459  navigator: {
6460    userAgent: ''
6461  },
6462  location: {
6463    hash: '',
6464    host: '',
6465    hostname: '',
6466    href: '',
6467    origin: '',
6468    pathname: '',
6469    protocol: '',
6470    search: ''
6471  },
6472  history: {
6473    replaceState() {},
6474    pushState() {},
6475    go() {},
6476    back() {}
6477  },
6478  CustomEvent: function CustomEvent() {
6479    return this;
6480  },
6481  addEventListener() {},
6482  removeEventListener() {},
6483  getComputedStyle() {
6484    return {
6485      getPropertyValue() {
6486        return '';
6487      }
6488    };
6489  },
6490  Image() {},
6491  Date() {},
6492  screen: {},
6493  setTimeout() {},
6494  clearTimeout() {},
6495  matchMedia() {
6496    return {};
6497  },
6498  requestAnimationFrame(callback) {
6499    if (typeof setTimeout === 'undefined') {
6500      callback();
6501      return null;
6502    }
6503    return setTimeout(callback, 0);
6504  },
6505  cancelAnimationFrame(id) {
6506    if (typeof setTimeout === 'undefined') {
6507      return;
6508    }
6509    clearTimeout(id);
6510  }
6511};
6512function getWindow() {
6513  const win = typeof window !== 'undefined' ? window : {};
6514  extend(win, ssrWindow);
6515  return win;
6516}
6517
6518
6519
6520
6521/***/ }),
6522
vendor: 135,087 bytes, lines 6523-10492
6523/***/ "./node_modules/swiper/shared/swiper-core.mjs":
6524/*!****************************************************!*\
6525  !*** ./node_modules/swiper/shared/swiper-core.mjs ***!
6526  \****************************************************/
6527/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6528
6529"use strict";
6530__webpack_require__.r(__webpack_exports__);
6531/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6532/* harmony export */   S: function() { return /* binding */ Swiper; },
6533/* harmony export */   d: function() { return /* binding */ defaults; }
6534/* harmony export */ });
6535/* 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");
6536/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6537
6538
6539
6540let support;
6541function calcSupport() {
6542  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6543  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
6544  return {
6545    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,
6546    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)
6547  };
6548}
6549function getSupport() {
6550  if (!support) {
6551    support = calcSupport();
6552  }
6553  return support;
6554}
6555
6556let deviceCached;
6557function calcDevice(_temp) {
6558  let {
6559    userAgent
6560  } = _temp === void 0 ? {} : _temp;
6561  const support = getSupport();
6562  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6563  const platform = window.navigator.platform;
6564  const ua = userAgent || window.navigator.userAgent;
6565  const device = {
6566    ios: false,
6567    android: false
6568  };
6569  const screenWidth = window.screen.width;
6570  const screenHeight = window.screen.height;
6571  const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
6572  let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
6573  const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
6574  const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
6575  const windows = platform === 'Win32';
6576  let macos = platform === 'MacIntel';
6577
6578  // iPadOs 13 fix
6579  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
6580  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
6581    ipad = ua.match(/(Version)\/([\d.]+)/);
6582    if (!ipad) ipad = [0, 1, '13_0_0'];
6583    macos = false;
6584  }
6585
6586  // Android
6587  if (android && !windows) {
6588    device.os = 'android';
6589    device.android = true;
6590  }
6591  if (ipad || iphone || ipod) {
6592    device.os = 'ios';
6593    device.ios = true;
6594  }
6595
6596  // Export object
6597  return device;
6598}
6599function getDevice(overrides) {
6600  if (overrides === void 0) {
6601    overrides = {};
6602  }
6603  if (!deviceCached) {
6604    deviceCached = calcDevice(overrides);
6605  }
6606  return deviceCached;
6607}
6608
6609let browser;
6610function calcBrowser() {
6611  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6612  const device = getDevice();
6613  let needPerspectiveFix = false;
6614  function isSafari() {
6615    const ua = window.navigator.userAgent.toLowerCase();
6616    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
6617  }
6618  if (isSafari()) {
6619    const ua = String(window.navigator.userAgent);
6620    if (ua.includes('Version/')) {
6621      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
6622      needPerspectiveFix = major < 16 || major === 16 && minor < 2;
6623    }
6624  }
6625  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);
6626  const isSafariBrowser = isSafari();
6627  const need3dFix = isSafariBrowser || isWebView && device.ios;
6628  return {
6629    isSafari: needPerspectiveFix || isSafariBrowser,
6630    needPerspectiveFix,
6631    need3dFix,
6632    isWebView
6633  };
6634}
6635function getBrowser() {
6636  if (!browser) {
6637    browser = calcBrowser();
6638  }
6639  return browser;
6640}
6641
6642function Resize(_ref) {
6643  let {
6644    swiper,
6645    on,
6646    emit
6647  } = _ref;
6648  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6649  let observer = null;
6650  let animationFrame = null;
6651  const resizeHandler = () => {
6652    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6653    emit('beforeResize');
6654    emit('resize');
6655  };
6656  const createObserver = () => {
6657    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6658    observer = new ResizeObserver(entries => {
6659      animationFrame = window.requestAnimationFrame(() => {
6660        const {
6661          width,
6662          height
6663        } = swiper;
6664        let newWidth = width;
6665        let newHeight = height;
6666        entries.forEach(_ref2 => {
6667          let {
6668            contentBoxSize,
6669            contentRect,
6670            target
6671          } = _ref2;
6672          if (target && target !== swiper.el) return;
6673          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
6674          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
6675        });
6676        if (newWidth !== width || newHeight !== height) {
6677          resizeHandler();
6678        }
6679      });
6680    });
6681    observer.observe(swiper.el);
6682  };
6683  const removeObserver = () => {
6684    if (animationFrame) {
6685      window.cancelAnimationFrame(animationFrame);
6686    }
6687    if (observer && observer.unobserve && swiper.el) {
6688      observer.unobserve(swiper.el);
6689      observer = null;
6690    }
6691  };
6692  const orientationChangeHandler = () => {
6693    if (!swiper || swiper.destroyed || !swiper.initialized) return;
6694    emit('orientationchange');
6695  };
6696  on('init', () => {
6697    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {
6698      createObserver();
6699      return;
6700    }
6701    window.addEventListener('resize', resizeHandler);
6702    window.addEventListener('orientationchange', orientationChangeHandler);
6703  });
6704  on('destroy', () => {
6705    removeObserver();
6706    window.removeEventListener('resize', resizeHandler);
6707    window.removeEventListener('orientationchange', orientationChangeHandler);
6708  });
6709}
6710
6711function Observer(_ref) {
6712  let {
6713    swiper,
6714    extendParams,
6715    on,
6716    emit
6717  } = _ref;
6718  const observers = [];
6719  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6720  const attach = function (target, options) {
6721    if (options === void 0) {
6722      options = {};
6723    }
6724    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
6725    const observer = new ObserverFunc(mutations => {
6726      // The observerUpdate event should only be triggered
6727      // once despite the number of mutations.  Additional
6728      // triggers are redundant and are very costly
6729      if (swiper.__preventObserver__) return;
6730      if (mutations.length === 1) {
6731        emit('observerUpdate', mutations[0]);
6732        return;
6733      }
6734      const observerUpdate = function observerUpdate() {
6735        emit('observerUpdate', mutations[0]);
6736      };
6737      if (window.requestAnimationFrame) {
6738        window.requestAnimationFrame(observerUpdate);
6739      } else {
6740        window.setTimeout(observerUpdate, 0);
6741      }
6742    });
6743    observer.observe(target, {
6744      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
6745      childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,
6746      characterData: typeof options.characterData === 'undefined' ? true : options.characterData
6747    });
6748    observers.push(observer);
6749  };
6750  const init = () => {
6751    if (!swiper.params.observer) return;
6752    if (swiper.params.observeParents) {
6753      const containerParents = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(swiper.hostEl);
6754      for (let i = 0; i < containerParents.length; i += 1) {
6755        attach(containerParents[i]);
6756      }
6757    }
6758    // Observe container
6759    attach(swiper.hostEl, {
6760      childList: swiper.params.observeSlideChildren
6761    });
6762
6763    // Observe wrapper
6764    attach(swiper.wrapperEl, {
6765      attributes: false
6766    });
6767  };
6768  const destroy = () => {
6769    observers.forEach(observer => {
6770      observer.disconnect();
6771    });
6772    observers.splice(0, observers.length);
6773  };
6774  extendParams({
6775    observer: false,
6776    observeParents: false,
6777    observeSlideChildren: false
6778  });
6779  on('init', init);
6780  on('destroy', destroy);
6781}
6782
6783/* eslint-disable no-underscore-dangle */
6784
6785var eventsEmitter = {
6786  on(events, handler, priority) {
6787    const self = this;
6788    if (!self.eventsListeners || self.destroyed) return self;
6789    if (typeof handler !== 'function') return self;
6790    const method = priority ? 'unshift' : 'push';
6791    events.split(' ').forEach(event => {
6792      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
6793      self.eventsListeners[event][method](handler);
6794    });
6795    return self;
6796  },
6797  once(events, handler, priority) {
6798    const self = this;
6799    if (!self.eventsListeners || self.destroyed) return self;
6800    if (typeof handler !== 'function') return self;
6801    function onceHandler() {
6802      self.off(events, onceHandler);
6803      if (onceHandler.__emitterProxy) {
6804        delete onceHandler.__emitterProxy;
6805      }
6806      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6807        args[_key] = arguments[_key];
6808      }
6809      handler.apply(self, args);
6810    }
6811    onceHandler.__emitterProxy = handler;
6812    return self.on(events, onceHandler, priority);
6813  },
6814  onAny(handler, priority) {
6815    const self = this;
6816    if (!self.eventsListeners || self.destroyed) return self;
6817    if (typeof handler !== 'function') return self;
6818    const method = priority ? 'unshift' : 'push';
6819    if (self.eventsAnyListeners.indexOf(handler) < 0) {
6820      self.eventsAnyListeners[method](handler);
6821    }
6822    return self;
6823  },
6824  offAny(handler) {
6825    const self = this;
6826    if (!self.eventsListeners || self.destroyed) return self;
6827    if (!self.eventsAnyListeners) return self;
6828    const index = self.eventsAnyListeners.indexOf(handler);
6829    if (index >= 0) {
6830      self.eventsAnyListeners.splice(index, 1);
6831    }
6832    return self;
6833  },
6834  off(events, handler) {
6835    const self = this;
6836    if (!self.eventsListeners || self.destroyed) return self;
6837    if (!self.eventsListeners) return self;
6838    events.split(' ').forEach(event => {
6839      if (typeof handler === 'undefined') {
6840        self.eventsListeners[event] = [];
6841      } else if (self.eventsListeners[event]) {
6842        self.eventsListeners[event].forEach((eventHandler, index) => {
6843          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
6844            self.eventsListeners[event].splice(index, 1);
6845          }
6846        });
6847      }
6848    });
6849    return self;
6850  },
6851  emit() {
6852    const self = this;
6853    if (!self.eventsListeners || self.destroyed) return self;
6854    if (!self.eventsListeners) return self;
6855    let events;
6856    let data;
6857    let context;
6858    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
6859      args[_key2] = arguments[_key2];
6860    }
6861    if (typeof args[0] === 'string' || Array.isArray(args[0])) {
6862      events = args[0];
6863      data = args.slice(1, args.length);
6864      context = self;
6865    } else {
6866      events = args[0].events;
6867      data = args[0].data;
6868      context = args[0].context || self;
6869    }
6870    data.unshift(context);
6871    const eventsArray = Array.isArray(events) ? events : events.split(' ');
6872    eventsArray.forEach(event => {
6873      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
6874        self.eventsAnyListeners.forEach(eventHandler => {
6875          eventHandler.apply(context, [event, ...data]);
6876        });
6877      }
6878      if (self.eventsListeners && self.eventsListeners[event]) {
6879        self.eventsListeners[event].forEach(eventHandler => {
6880          eventHandler.apply(context, data);
6881        });
6882      }
6883    });
6884    return self;
6885  }
6886};
6887
6888function updateSize() {
6889  const swiper = this;
6890  let width;
6891  let height;
6892  const el = swiper.el;
6893  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {
6894    width = swiper.params.width;
6895  } else {
6896    width = el.clientWidth;
6897  }
6898  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {
6899    height = swiper.params.height;
6900  } else {
6901    height = el.clientHeight;
6902  }
6903  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
6904    return;
6905  }
6906
6907  // Subtract paddings
6908  width = width - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'padding-left') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'padding-right') || 0, 10);
6909  height = height - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'padding-top') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'padding-bottom') || 0, 10);
6910  if (Number.isNaN(width)) width = 0;
6911  if (Number.isNaN(height)) height = 0;
6912  Object.assign(swiper, {
6913    width,
6914    height,
6915    size: swiper.isHorizontal() ? width : height
6916  });
6917}
6918
6919function updateSlides() {
6920  const swiper = this;
6921  function getDirectionPropertyValue(node, label) {
6922    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);
6923  }
6924  const params = swiper.params;
6925  const {
6926    wrapperEl,
6927    slidesEl,
6928    size: swiperSize,
6929    rtlTranslate: rtl,
6930    wrongRTL
6931  } = swiper;
6932  const isVirtual = swiper.virtual && params.virtual.enabled;
6933  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
6934  const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);
6935  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
6936  let snapGrid = [];
6937  const slidesGrid = [];
6938  const slidesSizesGrid = [];
6939  let offsetBefore = params.slidesOffsetBefore;
6940  if (typeof offsetBefore === 'function') {
6941    offsetBefore = params.slidesOffsetBefore.call(swiper);
6942  }
6943  let offsetAfter = params.slidesOffsetAfter;
6944  if (typeof offsetAfter === 'function') {
6945    offsetAfter = params.slidesOffsetAfter.call(swiper);
6946  }
6947  const previousSnapGridLength = swiper.snapGrid.length;
6948  const previousSlidesGridLength = swiper.slidesGrid.length;
6949  let spaceBetween = params.spaceBetween;
6950  let slidePosition = -offsetBefore;
6951  let prevSlideSize = 0;
6952  let index = 0;
6953  if (typeof swiperSize === 'undefined') {
6954    return;
6955  }
6956  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
6957    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
6958  } else if (typeof spaceBetween === 'string') {
6959    spaceBetween = parseFloat(spaceBetween);
6960  }
6961  swiper.virtualSize = -spaceBetween;
6962
6963  // reset margins
6964  slides.forEach(slideEl => {
6965    if (rtl) {
6966      slideEl.style.marginLeft = '';
6967    } else {
6968      slideEl.style.marginRight = '';
6969    }
6970    slideEl.style.marginBottom = '';
6971    slideEl.style.marginTop = '';
6972  });
6973
6974  // reset cssMode offsets
6975  if (params.centeredSlides && params.cssMode) {
6976    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(wrapperEl, '--swiper-centered-offset-before', '');
6977    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(wrapperEl, '--swiper-centered-offset-after', '');
6978  }
6979  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
6980  if (gridEnabled) {
6981    swiper.grid.initSlides(slides);
6982  } else if (swiper.grid) {
6983    swiper.grid.unsetSlides();
6984  }
6985
6986  // Calc slides
6987  let slideSize;
6988  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {
6989    return typeof params.breakpoints[key].slidesPerView !== 'undefined';
6990  }).length > 0;
6991  for (let i = 0; i < slidesLength; i += 1) {
6992    slideSize = 0;
6993    let slide;
6994    if (slides[i]) slide = slides[i];
6995    if (gridEnabled) {
6996      swiper.grid.updateSlide(i, slide, slides);
6997    }
6998    if (slides[i] && (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(slide, 'display') === 'none') continue; // eslint-disable-line
6999
7000    if (params.slidesPerView === 'auto') {
7001      if (shouldResetSlideSize) {
7002        slides[i].style[swiper.getDirectionLabel('width')] = ``;
7003      }
7004      const slideStyles = getComputedStyle(slide);
7005      const currentTransform = slide.style.transform;
7006      const currentWebKitTransform = slide.style.webkitTransform;
7007      if (currentTransform) {
7008        slide.style.transform = 'none';
7009      }
7010      if (currentWebKitTransform) {
7011        slide.style.webkitTransform = 'none';
7012      }
7013      if (params.roundLengths) {
7014        slideSize = swiper.isHorizontal() ? (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slide, 'width', true) : (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slide, 'height', true);
7015      } else {
7016        // eslint-disable-next-line
7017        const width = getDirectionPropertyValue(slideStyles, 'width');
7018        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');
7019        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');
7020        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');
7021        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');
7022        const boxSizing = slideStyles.getPropertyValue('box-sizing');
7023        if (boxSizing && boxSizing === 'border-box') {
7024          slideSize = width + marginLeft + marginRight;
7025        } else {
7026          const {
7027            clientWidth,
7028            offsetWidth
7029          } = slide;
7030          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
7031        }
7032      }
7033      if (currentTransform) {
7034        slide.style.transform = currentTransform;
7035      }
7036      if (currentWebKitTransform) {
7037        slide.style.webkitTransform = currentWebKitTransform;
7038      }
7039      if (params.roundLengths) slideSize = Math.floor(slideSize);
7040    } else {
7041      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
7042      if (params.roundLengths) slideSize = Math.floor(slideSize);
7043      if (slides[i]) {
7044        slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;
7045      }
7046    }
7047    if (slides[i]) {
7048      slides[i].swiperSlideSize = slideSize;
7049    }
7050    slidesSizesGrid.push(slideSize);
7051    if (params.centeredSlides) {
7052      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
7053      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
7054      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
7055      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
7056      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
7057      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
7058      slidesGrid.push(slidePosition);
7059    } else {
7060      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
7061      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
7062      slidesGrid.push(slidePosition);
7063      slidePosition = slidePosition + slideSize + spaceBetween;
7064    }
7065    swiper.virtualSize += slideSize + spaceBetween;
7066    prevSlideSize = slideSize;
7067    index += 1;
7068  }
7069  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
7070  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
7071    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;
7072  }
7073  if (params.setWrapperSize) {
7074    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
7075  }
7076  if (gridEnabled) {
7077    swiper.grid.updateWrapperSize(slideSize, snapGrid);
7078  }
7079
7080  // Remove last grid elements depending on width
7081  if (!params.centeredSlides) {
7082    const newSlidesGrid = [];
7083    for (let i = 0; i < snapGrid.length; i += 1) {
7084      let slidesGridItem = snapGrid[i];
7085      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
7086      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
7087        newSlidesGrid.push(slidesGridItem);
7088      }
7089    }
7090    snapGrid = newSlidesGrid;
7091    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
7092      snapGrid.push(swiper.virtualSize - swiperSize);
7093    }
7094  }
7095  if (isVirtual && params.loop) {
7096    const size = slidesSizesGrid[0] + spaceBetween;
7097    if (params.slidesPerGroup > 1) {
7098      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);
7099      const groupSize = size * params.slidesPerGroup;
7100      for (let i = 0; i < groups; i += 1) {
7101        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);
7102      }
7103    }
7104    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {
7105      if (params.slidesPerGroup === 1) {
7106        snapGrid.push(snapGrid[snapGrid.length - 1] + size);
7107      }
7108      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);
7109      swiper.virtualSize += size;
7110    }
7111  }
7112  if (snapGrid.length === 0) snapGrid = [0];
7113  if (spaceBetween !== 0) {
7114    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');
7115    slides.filter((_, slideIndex) => {
7116      if (!params.cssMode || params.loop) return true;
7117      if (slideIndex === slides.length - 1) {
7118        return false;
7119      }
7120      return true;
7121    }).forEach(slideEl => {
7122      slideEl.style[key] = `${spaceBetween}px`;
7123    });
7124  }
7125  if (params.centeredSlides && params.centeredSlidesBounds) {
7126    let allSlidesSize = 0;
7127    slidesSizesGrid.forEach(slideSizeValue => {
7128      allSlidesSize += slideSizeValue + (spaceBetween || 0);
7129    });
7130    allSlidesSize -= spaceBetween;
7131    const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;
7132    snapGrid = snapGrid.map(snap => {
7133      if (snap <= 0) return -offsetBefore;
7134      if (snap > maxSnap) return maxSnap + offsetAfter;
7135      return snap;
7136    });
7137  }
7138  if (params.centerInsufficientSlides) {
7139    let allSlidesSize = 0;
7140    slidesSizesGrid.forEach(slideSizeValue => {
7141      allSlidesSize += slideSizeValue + (spaceBetween || 0);
7142    });
7143    allSlidesSize -= spaceBetween;
7144    const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);
7145    if (allSlidesSize + offsetSize < swiperSize) {
7146      const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;
7147      snapGrid.forEach((snap, snapIndex) => {
7148        snapGrid[snapIndex] = snap - allSlidesOffset;
7149      });
7150      slidesGrid.forEach((snap, snapIndex) => {
7151        slidesGrid[snapIndex] = snap + allSlidesOffset;
7152      });
7153    }
7154  }
7155  Object.assign(swiper, {
7156    slides,
7157    snapGrid,
7158    slidesGrid,
7159    slidesSizesGrid
7160  });
7161  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
7162    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
7163    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
7164    const addToSnapGrid = -swiper.snapGrid[0];
7165    const addToSlidesGrid = -swiper.slidesGrid[0];
7166    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);
7167    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);
7168  }
7169  if (slidesLength !== previousSlidesLength) {
7170    swiper.emit('slidesLengthChange');
7171  }
7172  if (snapGrid.length !== previousSnapGridLength) {
7173    if (swiper.params.watchOverflow) swiper.checkOverflow();
7174    swiper.emit('snapGridLengthChange');
7175  }
7176  if (slidesGrid.length !== previousSlidesGridLength) {
7177    swiper.emit('slidesGridLengthChange');
7178  }
7179  if (params.watchSlidesProgress) {
7180    swiper.updateSlidesOffset();
7181  }
7182  swiper.emit('slidesUpdated');
7183  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
7184    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
7185    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);
7186    if (slidesLength <= params.maxBackfaceHiddenSlides) {
7187      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);
7188    } else if (hasClassBackfaceClassAdded) {
7189      swiper.el.classList.remove(backFaceHiddenClass);
7190    }
7191  }
7192}
7193
7194function updateAutoHeight(speed) {
7195  const swiper = this;
7196  const activeSlides = [];
7197  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
7198  let newHeight = 0;
7199  let i;
7200  if (typeof speed === 'number') {
7201    swiper.setTransition(speed);
7202  } else if (speed === true) {
7203    swiper.setTransition(swiper.params.speed);
7204  }
7205  const getSlideByIndex = index => {
7206    if (isVirtual) {
7207      return swiper.slides[swiper.getSlideIndexByData(index)];
7208    }
7209    return swiper.slides[index];
7210  };
7211  // Find slides currently in view
7212  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
7213    if (swiper.params.centeredSlides) {
7214      (swiper.visibleSlides || []).forEach(slide => {
7215        activeSlides.push(slide);
7216      });
7217    } else {
7218      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
7219        const index = swiper.activeIndex + i;
7220        if (index > swiper.slides.length && !isVirtual) break;
7221        activeSlides.push(getSlideByIndex(index));
7222      }
7223    }
7224  } else {
7225    activeSlides.push(getSlideByIndex(swiper.activeIndex));
7226  }
7227
7228  // Find new height from highest slide in view
7229  for (i = 0; i < activeSlides.length; i += 1) {
7230    if (typeof activeSlides[i] !== 'undefined') {
7231      const height = activeSlides[i].offsetHeight;
7232      newHeight = height > newHeight ? height : newHeight;
7233    }
7234  }
7235
7236  // Update Height
7237  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
7238}
7239
7240function updateSlidesOffset() {
7241  const swiper = this;
7242  const slides = swiper.slides;
7243  // eslint-disable-next-line
7244  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;
7245  for (let i = 0; i < slides.length; i += 1) {
7246    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();
7247  }
7248}
7249
7250const toggleSlideClasses$1 = (slideEl, condition, className) => {
7251  if (condition && !slideEl.classList.contains(className)) {
7252    slideEl.classList.add(className);
7253  } else if (!condition && slideEl.classList.contains(className)) {
7254    slideEl.classList.remove(className);
7255  }
7256};
7257function updateSlidesProgress(translate) {
7258  if (translate === void 0) {
7259    translate = this && this.translate || 0;
7260  }
7261  const swiper = this;
7262  const params = swiper.params;
7263  const {
7264    slides,
7265    rtlTranslate: rtl,
7266    snapGrid
7267  } = swiper;
7268  if (slides.length === 0) return;
7269  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
7270  let offsetCenter = -translate;
7271  if (rtl) offsetCenter = translate;
7272  swiper.visibleSlidesIndexes = [];
7273  swiper.visibleSlides = [];
7274  let spaceBetween = params.spaceBetween;
7275  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
7276    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
7277  } else if (typeof spaceBetween === 'string') {
7278    spaceBetween = parseFloat(spaceBetween);
7279  }
7280  for (let i = 0; i < slides.length; i += 1) {
7281    const slide = slides[i];
7282    let slideOffset = slide.swiperSlideOffset;
7283    if (params.cssMode && params.centeredSlides) {
7284      slideOffset -= slides[0].swiperSlideOffset;
7285    }
7286    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
7287    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
7288    const slideBefore = -(offsetCenter - slideOffset);
7289    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
7290    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];
7291    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
7292    if (isVisible) {
7293      swiper.visibleSlides.push(slide);
7294      swiper.visibleSlidesIndexes.push(i);
7295    }
7296    toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);
7297    toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);
7298    slide.progress = rtl ? -slideProgress : slideProgress;
7299    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
7300  }
7301}
7302
7303function updateProgress(translate) {
7304  const swiper = this;
7305  if (typeof translate === 'undefined') {
7306    const multiplier = swiper.rtlTranslate ? -1 : 1;
7307    // eslint-disable-next-line
7308    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
7309  }
7310  const params = swiper.params;
7311  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
7312  let {
7313    progress,
7314    isBeginning,
7315    isEnd,
7316    progressLoop
7317  } = swiper;
7318  const wasBeginning = isBeginning;
7319  const wasEnd = isEnd;
7320  if (translatesDiff === 0) {
7321    progress = 0;
7322    isBeginning = true;
7323    isEnd = true;
7324  } else {
7325    progress = (translate - swiper.minTranslate()) / translatesDiff;
7326    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;
7327    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;
7328    isBeginning = isBeginningRounded || progress <= 0;
7329    isEnd = isEndRounded || progress >= 1;
7330    if (isBeginningRounded) progress = 0;
7331    if (isEndRounded) progress = 1;
7332  }
7333  if (params.loop) {
7334    const firstSlideIndex = swiper.getSlideIndexByData(0);
7335    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);
7336    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];
7337    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];
7338    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];
7339    const translateAbs = Math.abs(translate);
7340    if (translateAbs >= firstSlideTranslate) {
7341      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;
7342    } else {
7343      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;
7344    }
7345    if (progressLoop > 1) progressLoop -= 1;
7346  }
7347  Object.assign(swiper, {
7348    progress,
7349    progressLoop,
7350    isBeginning,
7351    isEnd
7352  });
7353  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);
7354  if (isBeginning && !wasBeginning) {
7355    swiper.emit('reachBeginning toEdge');
7356  }
7357  if (isEnd && !wasEnd) {
7358    swiper.emit('reachEnd toEdge');
7359  }
7360  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
7361    swiper.emit('fromEdge');
7362  }
7363  swiper.emit('progress', progress);
7364}
7365
7366const toggleSlideClasses = (slideEl, condition, className) => {
7367  if (condition && !slideEl.classList.contains(className)) {
7368    slideEl.classList.add(className);
7369  } else if (!condition && slideEl.classList.contains(className)) {
7370    slideEl.classList.remove(className);
7371  }
7372};
7373function updateSlidesClasses() {
7374  const swiper = this;
7375  const {
7376    slides,
7377    params,
7378    slidesEl,
7379    activeIndex
7380  } = swiper;
7381  const isVirtual = swiper.virtual && params.virtual.enabled;
7382  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
7383  const getFilteredSlide = selector => {
7384    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];
7385  };
7386  let activeSlide;
7387  let prevSlide;
7388  let nextSlide;
7389  if (isVirtual) {
7390    if (params.loop) {
7391      let slideIndex = activeIndex - swiper.virtual.slidesBefore;
7392      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;
7393      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;
7394      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`);
7395    } else {
7396      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`);
7397    }
7398  } else {
7399    if (gridEnabled) {
7400      activeSlide = slides.find(slideEl => slideEl.column === activeIndex);
7401      nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);
7402      prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);
7403    } else {
7404      activeSlide = slides[activeIndex];
7405    }
7406  }
7407  if (activeSlide) {
7408    if (!gridEnabled) {
7409      // Next Slide
7410      nextSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.r)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
7411      if (params.loop && !nextSlide) {
7412        nextSlide = slides[0];
7413      }
7414
7415      // Prev Slide
7416      prevSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
7417      if (params.loop && !prevSlide === 0) {
7418        prevSlide = slides[slides.length - 1];
7419      }
7420    }
7421  }
7422  slides.forEach(slideEl => {
7423    toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);
7424    toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);
7425    toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);
7426  });
7427  swiper.emitSlidesClasses();
7428}
7429
7430const processLazyPreloader = (swiper, imageEl) => {
7431  if (!swiper || swiper.destroyed || !swiper.params) return;
7432  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
7433  const slideEl = imageEl.closest(slideSelector());
7434  if (slideEl) {
7435    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7436    if (!lazyEl && swiper.isElement) {
7437      if (slideEl.shadowRoot) {
7438        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7439      } else {
7440        // init later
7441        requestAnimationFrame(() => {
7442          if (slideEl.shadowRoot) {
7443            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
7444            if (lazyEl) lazyEl.remove();
7445          }
7446        });
7447      }
7448    }
7449    if (lazyEl) lazyEl.remove();
7450  }
7451};
7452const unlazy = (swiper, index) => {
7453  if (!swiper.slides[index]) return;
7454  const imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
7455  if (imageEl) imageEl.removeAttribute('loading');
7456};
7457const preload = swiper => {
7458  if (!swiper || swiper.destroyed || !swiper.params) return;
7459  let amount = swiper.params.lazyPreloadPrevNext;
7460  const len = swiper.slides.length;
7461  if (!len || !amount || amount < 0) return;
7462  amount = Math.min(amount, len);
7463  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);
7464  const activeIndex = swiper.activeIndex;
7465  if (swiper.params.grid && swiper.params.grid.rows > 1) {
7466    const activeColumn = activeIndex;
7467    const preloadColumns = [activeColumn - amount];
7468    preloadColumns.push(...Array.from({
7469      length: amount
7470    }).map((_, i) => {
7471      return activeColumn + slidesPerView + i;
7472    }));
7473    swiper.slides.forEach((slideEl, i) => {
7474      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);
7475    });
7476    return;
7477  }
7478  const slideIndexLastInView = activeIndex + slidesPerView - 1;
7479  if (swiper.params.rewind || swiper.params.loop) {
7480    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
7481      const realIndex = (i % len + len) % len;
7482      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
7483    }
7484  } else {
7485    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
7486      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
7487        unlazy(swiper, i);
7488      }
7489    }
7490  }
7491};
7492
7493function getActiveIndexByTranslate(swiper) {
7494  const {
7495    slidesGrid,
7496    params
7497  } = swiper;
7498  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7499  let activeIndex;
7500  for (let i = 0; i < slidesGrid.length; i += 1) {
7501    if (typeof slidesGrid[i + 1] !== 'undefined') {
7502      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
7503        activeIndex = i;
7504      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
7505        activeIndex = i + 1;
7506      }
7507    } else if (translate >= slidesGrid[i]) {
7508      activeIndex = i;
7509    }
7510  }
7511  // Normalize slideIndex
7512  if (params.normalizeSlideIndex) {
7513    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;
7514  }
7515  return activeIndex;
7516}
7517function updateActiveIndex(newActiveIndex) {
7518  const swiper = this;
7519  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
7520  const {
7521    snapGrid,
7522    params,
7523    activeIndex: previousIndex,
7524    realIndex: previousRealIndex,
7525    snapIndex: previousSnapIndex
7526  } = swiper;
7527  let activeIndex = newActiveIndex;
7528  let snapIndex;
7529  const getVirtualRealIndex = aIndex => {
7530    let realIndex = aIndex - swiper.virtual.slidesBefore;
7531    if (realIndex < 0) {
7532      realIndex = swiper.virtual.slides.length + realIndex;
7533    }
7534    if (realIndex >= swiper.virtual.slides.length) {
7535      realIndex -= swiper.virtual.slides.length;
7536    }
7537    return realIndex;
7538  };
7539  if (typeof activeIndex === 'undefined') {
7540    activeIndex = getActiveIndexByTranslate(swiper);
7541  }
7542  if (snapGrid.indexOf(translate) >= 0) {
7543    snapIndex = snapGrid.indexOf(translate);
7544  } else {
7545    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
7546    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
7547  }
7548  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
7549  if (activeIndex === previousIndex && !swiper.params.loop) {
7550    if (snapIndex !== previousSnapIndex) {
7551      swiper.snapIndex = snapIndex;
7552      swiper.emit('snapIndexChange');
7553    }
7554    return;
7555  }
7556  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
7557    swiper.realIndex = getVirtualRealIndex(activeIndex);
7558    return;
7559  }
7560  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
7561
7562  // Get real index
7563  let realIndex;
7564  if (swiper.virtual && params.virtual.enabled && params.loop) {
7565    realIndex = getVirtualRealIndex(activeIndex);
7566  } else if (gridEnabled) {
7567    const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);
7568    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
7569    if (Number.isNaN(activeSlideIndex)) {
7570      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);
7571    }
7572    realIndex = Math.floor(activeSlideIndex / params.grid.rows);
7573  } else if (swiper.slides[activeIndex]) {
7574    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');
7575    if (slideIndex) {
7576      realIndex = parseInt(slideIndex, 10);
7577    } else {
7578      realIndex = activeIndex;
7579    }
7580  } else {
7581    realIndex = activeIndex;
7582  }
7583  Object.assign(swiper, {
7584    previousSnapIndex,
7585    snapIndex,
7586    previousRealIndex,
7587    realIndex,
7588    previousIndex,
7589    activeIndex
7590  });
7591  if (swiper.initialized) {
7592    preload(swiper);
7593  }
7594  swiper.emit('activeIndexChange');
7595  swiper.emit('snapIndexChange');
7596  if (swiper.initialized || swiper.params.runCallbacksOnInit) {
7597    if (previousRealIndex !== realIndex) {
7598      swiper.emit('realIndexChange');
7599    }
7600    swiper.emit('slideChange');
7601  }
7602}
7603
7604function updateClickedSlide(el, path) {
7605  const swiper = this;
7606  const params = swiper.params;
7607  let slide = el.closest(`.${params.slideClass}, swiper-slide`);
7608  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {
7609    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {
7610      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {
7611        slide = pathEl;
7612      }
7613    });
7614  }
7615  let slideFound = false;
7616  let slideIndex;
7617  if (slide) {
7618    for (let i = 0; i < swiper.slides.length; i += 1) {
7619      if (swiper.slides[i] === slide) {
7620        slideFound = true;
7621        slideIndex = i;
7622        break;
7623      }
7624    }
7625  }
7626  if (slide && slideFound) {
7627    swiper.clickedSlide = slide;
7628    if (swiper.virtual && swiper.params.virtual.enabled) {
7629      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);
7630    } else {
7631      swiper.clickedIndex = slideIndex;
7632    }
7633  } else {
7634    swiper.clickedSlide = undefined;
7635    swiper.clickedIndex = undefined;
7636    return;
7637  }
7638  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
7639    swiper.slideToClickedSlide();
7640  }
7641}
7642
7643var update = {
7644  updateSize,
7645  updateSlides,
7646  updateAutoHeight,
7647  updateSlidesOffset,
7648  updateSlidesProgress,
7649  updateProgress,
7650  updateSlidesClasses,
7651  updateActiveIndex,
7652  updateClickedSlide
7653};
7654
7655function getSwiperTranslate(axis) {
7656  if (axis === void 0) {
7657    axis = this.isHorizontal() ? 'x' : 'y';
7658  }
7659  const swiper = this;
7660  const {
7661    params,
7662    rtlTranslate: rtl,
7663    translate,
7664    wrapperEl
7665  } = swiper;
7666  if (params.virtualTranslate) {
7667    return rtl ? -translate : translate;
7668  }
7669  if (params.cssMode) {
7670    return translate;
7671  }
7672  let currentTranslate = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.k)(wrapperEl, axis);
7673  currentTranslate += swiper.cssOverflowAdjustment();
7674  if (rtl) currentTranslate = -currentTranslate;
7675  return currentTranslate || 0;
7676}
7677
7678function setTranslate(translate, byController) {
7679  const swiper = this;
7680  const {
7681    rtlTranslate: rtl,
7682    params,
7683    wrapperEl,
7684    progress
7685  } = swiper;
7686  let x = 0;
7687  let y = 0;
7688  const z = 0;
7689  if (swiper.isHorizontal()) {
7690    x = rtl ? -translate : translate;
7691  } else {
7692    y = translate;
7693  }
7694  if (params.roundLengths) {
7695    x = Math.floor(x);
7696    y = Math.floor(y);
7697  }
7698  swiper.previousTranslate = swiper.translate;
7699  swiper.translate = swiper.isHorizontal() ? x : y;
7700  if (params.cssMode) {
7701    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
7702  } else if (!params.virtualTranslate) {
7703    if (swiper.isHorizontal()) {
7704      x -= swiper.cssOverflowAdjustment();
7705    } else {
7706      y -= swiper.cssOverflowAdjustment();
7707    }
7708    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;
7709  }
7710
7711  // Check if we need to update progress
7712  let newProgress;
7713  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
7714  if (translatesDiff === 0) {
7715    newProgress = 0;
7716  } else {
7717    newProgress = (translate - swiper.minTranslate()) / translatesDiff;
7718  }
7719  if (newProgress !== progress) {
7720    swiper.updateProgress(translate);
7721  }
7722  swiper.emit('setTranslate', swiper.translate, byController);
7723}
7724
7725function minTranslate() {
7726  return -this.snapGrid[0];
7727}
7728
7729function maxTranslate() {
7730  return -this.snapGrid[this.snapGrid.length - 1];
7731}
7732
7733function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
7734  if (translate === void 0) {
7735    translate = 0;
7736  }
7737  if (speed === void 0) {
7738    speed = this.params.speed;
7739  }
7740  if (runCallbacks === void 0) {
7741    runCallbacks = true;
7742  }
7743  if (translateBounds === void 0) {
7744    translateBounds = true;
7745  }
7746  const swiper = this;
7747  const {
7748    params,
7749    wrapperEl
7750  } = swiper;
7751  if (swiper.animating && params.preventInteractionOnTransition) {
7752    return false;
7753  }
7754  const minTranslate = swiper.minTranslate();
7755  const maxTranslate = swiper.maxTranslate();
7756  let newTranslate;
7757  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;
7758
7759  // Update progress
7760  swiper.updateProgress(newTranslate);
7761  if (params.cssMode) {
7762    const isH = swiper.isHorizontal();
7763    if (speed === 0) {
7764      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
7765    } else {
7766      if (!swiper.support.smoothScroll) {
7767        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({
7768          swiper,
7769          targetPosition: -newTranslate,
7770          side: isH ? 'left' : 'top'
7771        });
7772        return true;
7773      }
7774      wrapperEl.scrollTo({
7775        [isH ? 'left' : 'top']: -newTranslate,
7776        behavior: 'smooth'
7777      });
7778    }
7779    return true;
7780  }
7781  if (speed === 0) {
7782    swiper.setTransition(0);
7783    swiper.setTranslate(newTranslate);
7784    if (runCallbacks) {
7785      swiper.emit('beforeTransitionStart', speed, internal);
7786      swiper.emit('transitionEnd');
7787    }
7788  } else {
7789    swiper.setTransition(speed);
7790    swiper.setTranslate(newTranslate);
7791    if (runCallbacks) {
7792      swiper.emit('beforeTransitionStart', speed, internal);
7793      swiper.emit('transitionStart');
7794    }
7795    if (!swiper.animating) {
7796      swiper.animating = true;
7797      if (!swiper.onTranslateToWrapperTransitionEnd) {
7798        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
7799          if (!swiper || swiper.destroyed) return;
7800          if (e.target !== this) return;
7801          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
7802          swiper.onTranslateToWrapperTransitionEnd = null;
7803          delete swiper.onTranslateToWrapperTransitionEnd;
7804          swiper.animating = false;
7805          if (runCallbacks) {
7806            swiper.emit('transitionEnd');
7807          }
7808        };
7809      }
7810      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
7811    }
7812  }
7813  return true;
7814}
7815
7816var translate = {
7817  getTranslate: getSwiperTranslate,
7818  setTranslate,
7819  minTranslate,
7820  maxTranslate,
7821  translateTo
7822};
7823
7824function setTransition(duration, byController) {
7825  const swiper = this;
7826  if (!swiper.params.cssMode) {
7827    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;
7828    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';
7829  }
7830  swiper.emit('setTransition', duration, byController);
7831}
7832
7833function transitionEmit(_ref) {
7834  let {
7835    swiper,
7836    runCallbacks,
7837    direction,
7838    step
7839  } = _ref;
7840  const {
7841    activeIndex,
7842    previousIndex
7843  } = swiper;
7844  let dir = direction;
7845  if (!dir) {
7846    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';
7847  }
7848  swiper.emit(`transition${step}`);
7849  if (runCallbacks && dir === 'reset') {
7850    swiper.emit(`slideResetTransition${step}`);
7851  } else if (runCallbacks && activeIndex !== previousIndex) {
7852    swiper.emit(`slideChangeTransition${step}`);
7853    if (dir === 'next') {
7854      swiper.emit(`slideNextTransition${step}`);
7855    } else {
7856      swiper.emit(`slidePrevTransition${step}`);
7857    }
7858  }
7859}
7860
7861function transitionStart(runCallbacks, direction) {
7862  if (runCallbacks === void 0) {
7863    runCallbacks = true;
7864  }
7865  const swiper = this;
7866  const {
7867    params
7868  } = swiper;
7869  if (params.cssMode) return;
7870  if (params.autoHeight) {
7871    swiper.updateAutoHeight();
7872  }
7873  transitionEmit({
7874    swiper,
7875    runCallbacks,
7876    direction,
7877    step: 'Start'
7878  });
7879}
7880
7881function transitionEnd(runCallbacks, direction) {
7882  if (runCallbacks === void 0) {
7883    runCallbacks = true;
7884  }
7885  const swiper = this;
7886  const {
7887    params
7888  } = swiper;
7889  swiper.animating = false;
7890  if (params.cssMode) return;
7891  swiper.setTransition(0);
7892  transitionEmit({
7893    swiper,
7894    runCallbacks,
7895    direction,
7896    step: 'End'
7897  });
7898}
7899
7900var transition = {
7901  setTransition,
7902  transitionStart,
7903  transitionEnd
7904};
7905
7906function slideTo(index, speed, runCallbacks, internal, initial) {
7907  if (index === void 0) {
7908    index = 0;
7909  }
7910  if (runCallbacks === void 0) {
7911    runCallbacks = true;
7912  }
7913  if (typeof index === 'string') {
7914    index = parseInt(index, 10);
7915  }
7916  const swiper = this;
7917  let slideIndex = index;
7918  if (slideIndex < 0) slideIndex = 0;
7919  const {
7920    params,
7921    snapGrid,
7922    slidesGrid,
7923    previousIndex,
7924    activeIndex,
7925    rtlTranslate: rtl,
7926    wrapperEl,
7927    enabled
7928  } = swiper;
7929  if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {
7930    return false;
7931  }
7932  if (typeof speed === 'undefined') {
7933    speed = swiper.params.speed;
7934  }
7935  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
7936  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
7937  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
7938  const translate = -snapGrid[snapIndex];
7939  // Normalize slideIndex
7940  if (params.normalizeSlideIndex) {
7941    for (let i = 0; i < slidesGrid.length; i += 1) {
7942      const normalizedTranslate = -Math.floor(translate * 100);
7943      const normalizedGrid = Math.floor(slidesGrid[i] * 100);
7944      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);
7945      if (typeof slidesGrid[i + 1] !== 'undefined') {
7946        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {
7947          slideIndex = i;
7948        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {
7949          slideIndex = i + 1;
7950        }
7951      } else if (normalizedTranslate >= normalizedGrid) {
7952        slideIndex = i;
7953      }
7954    }
7955  }
7956  // Directions locks
7957  if (swiper.initialized && slideIndex !== activeIndex) {
7958    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {
7959      return false;
7960    }
7961    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
7962      if ((activeIndex || 0) !== slideIndex) {
7963        return false;
7964      }
7965    }
7966  }
7967  if (slideIndex !== (previousIndex || 0) && runCallbacks) {
7968    swiper.emit('beforeSlideChangeStart');
7969  }
7970
7971  // Update progress
7972  swiper.updateProgress(translate);
7973  let direction;
7974  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';
7975
7976  // initial virtual
7977  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
7978  const isInitialVirtual = isVirtual && initial;
7979  // Update Index
7980  if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {
7981    swiper.updateActiveIndex(slideIndex);
7982    // Update Height
7983    if (params.autoHeight) {
7984      swiper.updateAutoHeight();
7985    }
7986    swiper.updateSlidesClasses();
7987    if (params.effect !== 'slide') {
7988      swiper.setTranslate(translate);
7989    }
7990    if (direction !== 'reset') {
7991      swiper.transitionStart(runCallbacks, direction);
7992      swiper.transitionEnd(runCallbacks, direction);
7993    }
7994    return false;
7995  }
7996  if (params.cssMode) {
7997    const isH = swiper.isHorizontal();
7998    const t = rtl ? translate : -translate;
7999    if (speed === 0) {
8000      if (isVirtual) {
8001        swiper.wrapperEl.style.scrollSnapType = 'none';
8002        swiper._immediateVirtual = true;
8003      }
8004      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {
8005        swiper._cssModeVirtualInitialSet = true;
8006        requestAnimationFrame(() => {
8007          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
8008        });
8009      } else {
8010        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
8011      }
8012      if (isVirtual) {
8013        requestAnimationFrame(() => {
8014          swiper.wrapperEl.style.scrollSnapType = '';
8015          swiper._immediateVirtual = false;
8016        });
8017      }
8018    } else {
8019      if (!swiper.support.smoothScroll) {
8020        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({
8021          swiper,
8022          targetPosition: t,
8023          side: isH ? 'left' : 'top'
8024        });
8025        return true;
8026      }
8027      wrapperEl.scrollTo({
8028        [isH ? 'left' : 'top']: t,
8029        behavior: 'smooth'
8030      });
8031    }
8032    return true;
8033  }
8034  const browser = getBrowser();
8035  const isSafari = browser.isSafari;
8036  if (isVirtual && !initial && isSafari && swiper.isElement) {
8037    swiper.virtual.update(false, false, slideIndex);
8038  }
8039  swiper.setTransition(speed);
8040  swiper.setTranslate(translate);
8041  swiper.updateActiveIndex(slideIndex);
8042  swiper.updateSlidesClasses();
8043  swiper.emit('beforeTransitionStart', speed, internal);
8044  swiper.transitionStart(runCallbacks, direction);
8045  if (speed === 0) {
8046    swiper.transitionEnd(runCallbacks, direction);
8047  } else if (!swiper.animating) {
8048    swiper.animating = true;
8049    if (!swiper.onSlideToWrapperTransitionEnd) {
8050      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
8051        if (!swiper || swiper.destroyed) return;
8052        if (e.target !== this) return;
8053        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
8054        swiper.onSlideToWrapperTransitionEnd = null;
8055        delete swiper.onSlideToWrapperTransitionEnd;
8056        swiper.transitionEnd(runCallbacks, direction);
8057      };
8058    }
8059    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
8060  }
8061  return true;
8062}
8063
8064function slideToLoop(index, speed, runCallbacks, internal) {
8065  if (index === void 0) {
8066    index = 0;
8067  }
8068  if (runCallbacks === void 0) {
8069    runCallbacks = true;
8070  }
8071  if (typeof index === 'string') {
8072    const indexAsNumber = parseInt(index, 10);
8073    index = indexAsNumber;
8074  }
8075  const swiper = this;
8076  if (swiper.destroyed) return;
8077  if (typeof speed === 'undefined') {
8078    speed = swiper.params.speed;
8079  }
8080  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
8081  let newIndex = index;
8082  if (swiper.params.loop) {
8083    if (swiper.virtual && swiper.params.virtual.enabled) {
8084      // eslint-disable-next-line
8085      newIndex = newIndex + swiper.virtual.slidesBefore;
8086    } else {
8087      let targetSlideIndex;
8088      if (gridEnabled) {
8089        const slideIndex = newIndex * swiper.params.grid.rows;
8090        targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;
8091      } else {
8092        targetSlideIndex = swiper.getSlideIndexByData(newIndex);
8093      }
8094      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;
8095      const {
8096        centeredSlides
8097      } = swiper.params;
8098      let slidesPerView = swiper.params.slidesPerView;
8099      if (slidesPerView === 'auto') {
8100        slidesPerView = swiper.slidesPerViewDynamic();
8101      } else {
8102        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));
8103        if (centeredSlides && slidesPerView % 2 === 0) {
8104          slidesPerView = slidesPerView + 1;
8105        }
8106      }
8107      let needLoopFix = cols - targetSlideIndex < slidesPerView;
8108      if (centeredSlides) {
8109        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);
8110      }
8111      if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {
8112        needLoopFix = false;
8113      }
8114      if (needLoopFix) {
8115        const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';
8116        swiper.loopFix({
8117          direction,
8118          slideTo: true,
8119          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,
8120          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined
8121        });
8122      }
8123      if (gridEnabled) {
8124        const slideIndex = newIndex * swiper.params.grid.rows;
8125        newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;
8126      } else {
8127        newIndex = swiper.getSlideIndexByData(newIndex);
8128      }
8129    }
8130  }
8131  requestAnimationFrame(() => {
8132    swiper.slideTo(newIndex, speed, runCallbacks, internal);
8133  });
8134  return swiper;
8135}
8136
8137/* eslint no-unused-vars: "off" */
8138function slideNext(speed, runCallbacks, internal) {
8139  if (runCallbacks === void 0) {
8140    runCallbacks = true;
8141  }
8142  const swiper = this;
8143  const {
8144    enabled,
8145    params,
8146    animating
8147  } = swiper;
8148  if (!enabled || swiper.destroyed) return swiper;
8149  if (typeof speed === 'undefined') {
8150    speed = swiper.params.speed;
8151  }
8152  let perGroup = params.slidesPerGroup;
8153  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
8154    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
8155  }
8156  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
8157  const isVirtual = swiper.virtual && params.virtual.enabled;
8158  if (params.loop) {
8159    if (animating && !isVirtual && params.loopPreventsSliding) return false;
8160    swiper.loopFix({
8161      direction: 'next'
8162    });
8163    // eslint-disable-next-line
8164    swiper._clientLeft = swiper.wrapperEl.clientLeft;
8165    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {
8166      requestAnimationFrame(() => {
8167        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
8168      });
8169      return true;
8170    }
8171  }
8172  if (params.rewind && swiper.isEnd) {
8173    return swiper.slideTo(0, speed, runCallbacks, internal);
8174  }
8175  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
8176}
8177
8178/* eslint no-unused-vars: "off" */
8179function slidePrev(speed, runCallbacks, internal) {
8180  if (runCallbacks === void 0) {
8181    runCallbacks = true;
8182  }
8183  const swiper = this;
8184  const {
8185    params,
8186    snapGrid,
8187    slidesGrid,
8188    rtlTranslate,
8189    enabled,
8190    animating
8191  } = swiper;
8192  if (!enabled || swiper.destroyed) return swiper;
8193  if (typeof speed === 'undefined') {
8194    speed = swiper.params.speed;
8195  }
8196  const isVirtual = swiper.virtual && params.virtual.enabled;
8197  if (params.loop) {
8198    if (animating && !isVirtual && params.loopPreventsSliding) return false;
8199    swiper.loopFix({
8200      direction: 'prev'
8201    });
8202    // eslint-disable-next-line
8203    swiper._clientLeft = swiper.wrapperEl.clientLeft;
8204  }
8205  const translate = rtlTranslate ? swiper.translate : -swiper.translate;
8206  function normalize(val) {
8207    if (val < 0) return -Math.floor(Math.abs(val));
8208    return Math.floor(val);
8209  }
8210  const normalizedTranslate = normalize(translate);
8211  const normalizedSnapGrid = snapGrid.map(val => normalize(val));
8212  const isFreeMode = params.freeMode && params.freeMode.enabled;
8213  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
8214  if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {
8215    let prevSnapIndex;
8216    snapGrid.forEach((snap, snapIndex) => {
8217      if (normalizedTranslate >= snap) {
8218        // prevSnap = snap;
8219        prevSnapIndex = snapIndex;
8220      }
8221    });
8222    if (typeof prevSnapIndex !== 'undefined') {
8223      prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];
8224    }
8225  }
8226  let prevIndex = 0;
8227  if (typeof prevSnap !== 'undefined') {
8228    prevIndex = slidesGrid.indexOf(prevSnap);
8229    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
8230    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
8231      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
8232      prevIndex = Math.max(prevIndex, 0);
8233    }
8234  }
8235  if (params.rewind && swiper.isBeginning) {
8236    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
8237    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
8238  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {
8239    requestAnimationFrame(() => {
8240      swiper.slideTo(prevIndex, speed, runCallbacks, internal);
8241    });
8242    return true;
8243  }
8244  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
8245}
8246
8247/* eslint no-unused-vars: "off" */
8248function slideReset(speed, runCallbacks, internal) {
8249  if (runCallbacks === void 0) {
8250    runCallbacks = true;
8251  }
8252  const swiper = this;
8253  if (swiper.destroyed) return;
8254  if (typeof speed === 'undefined') {
8255    speed = swiper.params.speed;
8256  }
8257  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
8258}
8259
8260/* eslint no-unused-vars: "off" */
8261function slideToClosest(speed, runCallbacks, internal, threshold) {
8262  if (runCallbacks === void 0) {
8263    runCallbacks = true;
8264  }
8265  if (threshold === void 0) {
8266    threshold = 0.5;
8267  }
8268  const swiper = this;
8269  if (swiper.destroyed) return;
8270  if (typeof speed === 'undefined') {
8271    speed = swiper.params.speed;
8272  }
8273  let index = swiper.activeIndex;
8274  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
8275  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
8276  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
8277  if (translate >= swiper.snapGrid[snapIndex]) {
8278    // The current translate is on or after the current snap index, so the choice
8279    // is between the current index and the one after it.
8280    const currentSnap = swiper.snapGrid[snapIndex];
8281    const nextSnap = swiper.snapGrid[snapIndex + 1];
8282    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
8283      index += swiper.params.slidesPerGroup;
8284    }
8285  } else {
8286    // The current translate is before the current snap index, so the choice
8287    // is between the current index and the one before it.
8288    const prevSnap = swiper.snapGrid[snapIndex - 1];
8289    const currentSnap = swiper.snapGrid[snapIndex];
8290    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
8291      index -= swiper.params.slidesPerGroup;
8292    }
8293  }
8294  index = Math.max(index, 0);
8295  index = Math.min(index, swiper.slidesGrid.length - 1);
8296  return swiper.slideTo(index, speed, runCallbacks, internal);
8297}
8298
8299function slideToClickedSlide() {
8300  const swiper = this;
8301  if (swiper.destroyed) return;
8302  const {
8303    params,
8304    slidesEl
8305  } = swiper;
8306  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
8307  let slideToIndex = swiper.getSlideIndexWhenGrid(swiper.clickedIndex);
8308  let realIndex;
8309  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;
8310  const isGrid = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
8311  if (params.loop) {
8312    if (swiper.animating) return;
8313    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
8314    if (params.centeredSlides) {
8315      swiper.slideToLoop(realIndex);
8316    } else if (slideToIndex > (isGrid ? (swiper.slides.length - slidesPerView) / 2 - (swiper.params.grid.rows - 1) : swiper.slides.length - slidesPerView)) {
8317      swiper.loopFix();
8318      slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
8319      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
8320        swiper.slideTo(slideToIndex);
8321      });
8322    } else {
8323      swiper.slideTo(slideToIndex);
8324    }
8325  } else {
8326    swiper.slideTo(slideToIndex);
8327  }
8328}
8329
8330var slide = {
8331  slideTo,
8332  slideToLoop,
8333  slideNext,
8334  slidePrev,
8335  slideReset,
8336  slideToClosest,
8337  slideToClickedSlide
8338};
8339
8340function loopCreate(slideRealIndex, initial) {
8341  const swiper = this;
8342  const {
8343    params,
8344    slidesEl
8345  } = swiper;
8346  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
8347  const initSlides = () => {
8348    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
8349    slides.forEach((el, index) => {
8350      el.setAttribute('data-swiper-slide-index', index);
8351    });
8352  };
8353  const clearBlankSlides = () => {
8354    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideBlankClass}`);
8355    slides.forEach(el => {
8356      el.remove();
8357    });
8358    if (slides.length > 0) {
8359      swiper.recalcSlides();
8360      swiper.updateSlides();
8361    }
8362  };
8363  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8364  if (params.loopAddBlankSlides && (params.slidesPerGroup > 1 || gridEnabled)) {
8365    clearBlankSlides();
8366  }
8367  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);
8368  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;
8369  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;
8370  const addBlankSlides = amountOfSlides => {
8371    for (let i = 0; i < amountOfSlides; i += 1) {
8372      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]);
8373      swiper.slidesEl.append(slideEl);
8374    }
8375  };
8376  if (shouldFillGroup) {
8377    if (params.loopAddBlankSlides) {
8378      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;
8379      addBlankSlides(slidesToAdd);
8380      swiper.recalcSlides();
8381      swiper.updateSlides();
8382    } else {
8383      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');
8384    }
8385    initSlides();
8386  } else if (shouldFillGrid) {
8387    if (params.loopAddBlankSlides) {
8388      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;
8389      addBlankSlides(slidesToAdd);
8390      swiper.recalcSlides();
8391      swiper.updateSlides();
8392    } else {
8393      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');
8394    }
8395    initSlides();
8396  } else {
8397    initSlides();
8398  }
8399  swiper.loopFix({
8400    slideRealIndex,
8401    direction: params.centeredSlides ? undefined : 'next',
8402    initial
8403  });
8404}
8405
8406function loopFix(_temp) {
8407  let {
8408    slideRealIndex,
8409    slideTo = true,
8410    direction,
8411    setTranslate,
8412    activeSlideIndex,
8413    initial,
8414    byController,
8415    byMousewheel
8416  } = _temp === void 0 ? {} : _temp;
8417  const swiper = this;
8418  if (!swiper.params.loop) return;
8419  swiper.emit('beforeLoopFix');
8420  const {
8421    slides,
8422    allowSlidePrev,
8423    allowSlideNext,
8424    slidesEl,
8425    params
8426  } = swiper;
8427  const {
8428    centeredSlides,
8429    initialSlide
8430  } = params;
8431  swiper.allowSlidePrev = true;
8432  swiper.allowSlideNext = true;
8433  if (swiper.virtual && params.virtual.enabled) {
8434    if (slideTo) {
8435      if (!params.centeredSlides && swiper.snapIndex === 0) {
8436        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);
8437      } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {
8438        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);
8439      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {
8440        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);
8441      }
8442    }
8443    swiper.allowSlidePrev = allowSlidePrev;
8444    swiper.allowSlideNext = allowSlideNext;
8445    swiper.emit('loopFix');
8446    return;
8447  }
8448  let slidesPerView = params.slidesPerView;
8449  if (slidesPerView === 'auto') {
8450    slidesPerView = swiper.slidesPerViewDynamic();
8451  } else {
8452    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));
8453    if (centeredSlides && slidesPerView % 2 === 0) {
8454      slidesPerView = slidesPerView + 1;
8455    }
8456  }
8457  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;
8458  let loopedSlides = centeredSlides ? Math.max(slidesPerGroup, Math.ceil(slidesPerView / 2)) : slidesPerGroup;
8459  if (loopedSlides % slidesPerGroup !== 0) {
8460    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;
8461  }
8462  loopedSlides += params.loopAdditionalSlides;
8463  swiper.loopedSlides = loopedSlides;
8464  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8465  if (slides.length < slidesPerView + loopedSlides || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {
8466    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');
8467  } else if (gridEnabled && params.grid.fill === 'row') {
8468    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');
8469  }
8470  const prependSlidesIndexes = [];
8471  const appendSlidesIndexes = [];
8472  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;
8473  const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !centeredSlides;
8474  let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;
8475  if (typeof activeSlideIndex === 'undefined') {
8476    activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));
8477  } else {
8478    activeIndex = activeSlideIndex;
8479  }
8480  const isNext = direction === 'next' || !direction;
8481  const isPrev = direction === 'prev' || !direction;
8482  let slidesPrepended = 0;
8483  let slidesAppended = 0;
8484  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;
8485  const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);
8486  // prepend last slides before start
8487  if (activeColIndexWithShift < loopedSlides) {
8488    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);
8489    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
8490      const index = i - Math.floor(i / cols) * cols;
8491      if (gridEnabled) {
8492        const colIndexToPrepend = cols - index - 1;
8493        for (let i = slides.length - 1; i >= 0; i -= 1) {
8494          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);
8495        }
8496        // slides.forEach((slide, slideIndex) => {
8497        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);
8498        // });
8499      } else {
8500        prependSlidesIndexes.push(cols - index - 1);
8501      }
8502    }
8503  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {
8504    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);
8505    if (isInitialOverflow) {
8506      slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);
8507    }
8508    for (let i = 0; i < slidesAppended; i += 1) {
8509      const index = i - Math.floor(i / cols) * cols;
8510      if (gridEnabled) {
8511        slides.forEach((slide, slideIndex) => {
8512          if (slide.column === index) appendSlidesIndexes.push(slideIndex);
8513        });
8514      } else {
8515        appendSlidesIndexes.push(index);
8516      }
8517    }
8518  }
8519  swiper.__preventObserver__ = true;
8520  requestAnimationFrame(() => {
8521    swiper.__preventObserver__ = false;
8522  });
8523  if (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {
8524    if (appendSlidesIndexes.includes(activeSlideIndex)) {
8525      appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);
8526    }
8527    if (prependSlidesIndexes.includes(activeSlideIndex)) {
8528      prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);
8529    }
8530  }
8531  if (isPrev) {
8532    prependSlidesIndexes.forEach(index => {
8533      slides[index].swiperLoopMoveDOM = true;
8534      slidesEl.prepend(slides[index]);
8535      slides[index].swiperLoopMoveDOM = false;
8536    });
8537  }
8538  if (isNext) {
8539    appendSlidesIndexes.forEach(index => {
8540      slides[index].swiperLoopMoveDOM = true;
8541      slidesEl.append(slides[index]);
8542      slides[index].swiperLoopMoveDOM = false;
8543    });
8544  }
8545  swiper.recalcSlides();
8546  if (params.slidesPerView === 'auto') {
8547    swiper.updateSlides();
8548  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {
8549    swiper.slides.forEach((slide, slideIndex) => {
8550      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);
8551    });
8552  }
8553  if (params.watchSlidesProgress) {
8554    swiper.updateSlidesOffset();
8555  }
8556  if (slideTo) {
8557    if (prependSlidesIndexes.length > 0 && isPrev) {
8558      if (typeof slideRealIndex === 'undefined') {
8559        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
8560        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];
8561        const diff = newSlideTranslate - currentSlideTranslate;
8562        if (byMousewheel) {
8563          swiper.setTranslate(swiper.translate - diff);
8564        } else {
8565          swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);
8566          if (setTranslate) {
8567            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
8568            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
8569          }
8570        }
8571      } else {
8572        if (setTranslate) {
8573          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;
8574          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);
8575          swiper.touchEventsData.currentTranslate = swiper.translate;
8576        }
8577      }
8578    } else if (appendSlidesIndexes.length > 0 && isNext) {
8579      if (typeof slideRealIndex === 'undefined') {
8580        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
8581        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];
8582        const diff = newSlideTranslate - currentSlideTranslate;
8583        if (byMousewheel) {
8584          swiper.setTranslate(swiper.translate - diff);
8585        } else {
8586          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);
8587          if (setTranslate) {
8588            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
8589            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
8590          }
8591        }
8592      } else {
8593        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;
8594        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);
8595      }
8596    }
8597  }
8598  swiper.allowSlidePrev = allowSlidePrev;
8599  swiper.allowSlideNext = allowSlideNext;
8600  if (swiper.controller && swiper.controller.control && !byController) {
8601    const loopParams = {
8602      slideRealIndex,
8603      direction,
8604      setTranslate,
8605      activeSlideIndex,
8606      byController: true
8607    };
8608    if (Array.isArray(swiper.controller.control)) {
8609      swiper.controller.control.forEach(c => {
8610        if (!c.destroyed && c.params.loop) c.loopFix({
8611          ...loopParams,
8612          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false
8613        });
8614      });
8615    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {
8616      swiper.controller.control.loopFix({
8617        ...loopParams,
8618        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false
8619      });
8620    }
8621  }
8622  swiper.emit('loopFix');
8623}
8624
8625function loopDestroy() {
8626  const swiper = this;
8627  const {
8628    params,
8629    slidesEl
8630  } = swiper;
8631  if (!params.loop || !slidesEl || swiper.virtual && swiper.params.virtual.enabled) return;
8632  swiper.recalcSlides();
8633  const newSlidesOrder = [];
8634  swiper.slides.forEach(slideEl => {
8635    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;
8636    newSlidesOrder[index] = slideEl;
8637  });
8638  swiper.slides.forEach(slideEl => {
8639    slideEl.removeAttribute('data-swiper-slide-index');
8640  });
8641  newSlidesOrder.forEach(slideEl => {
8642    slidesEl.append(slideEl);
8643  });
8644  swiper.recalcSlides();
8645  swiper.slideTo(swiper.realIndex, 0);
8646}
8647
8648var loop = {
8649  loopCreate,
8650  loopFix,
8651  loopDestroy
8652};
8653
8654function setGrabCursor(moving) {
8655  const swiper = this;
8656  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
8657  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;
8658  if (swiper.isElement) {
8659    swiper.__preventObserver__ = true;
8660  }
8661  el.style.cursor = 'move';
8662  el.style.cursor = moving ? 'grabbing' : 'grab';
8663  if (swiper.isElement) {
8664    requestAnimationFrame(() => {
8665      swiper.__preventObserver__ = false;
8666    });
8667  }
8668}
8669
8670function unsetGrabCursor() {
8671  const swiper = this;
8672  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
8673    return;
8674  }
8675  if (swiper.isElement) {
8676    swiper.__preventObserver__ = true;
8677  }
8678  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';
8679  if (swiper.isElement) {
8680    requestAnimationFrame(() => {
8681      swiper.__preventObserver__ = false;
8682    });
8683  }
8684}
8685
8686var grabCursor = {
8687  setGrabCursor,
8688  unsetGrabCursor
8689};
8690
8691// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
8692function closestElement(selector, base) {
8693  if (base === void 0) {
8694    base = this;
8695  }
8696  function __closestFrom(el) {
8697    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;
8698    if (el.assignedSlot) el = el.assignedSlot;
8699    const found = el.closest(selector);
8700    if (!found && !el.getRootNode) {
8701      return null;
8702    }
8703    return found || __closestFrom(el.getRootNode().host);
8704  }
8705  return __closestFrom(base);
8706}
8707function preventEdgeSwipe(swiper, event, startX) {
8708  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
8709  const {
8710    params
8711  } = swiper;
8712  const edgeSwipeDetection = params.edgeSwipeDetection;
8713  const edgeSwipeThreshold = params.edgeSwipeThreshold;
8714  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {
8715    if (edgeSwipeDetection === 'prevent') {
8716      event.preventDefault();
8717      return true;
8718    }
8719    return false;
8720  }
8721  return true;
8722}
8723function onTouchStart(event) {
8724  const swiper = this;
8725  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
8726  let e = event;
8727  if (e.originalEvent) e = e.originalEvent;
8728  const data = swiper.touchEventsData;
8729  if (e.type === 'pointerdown') {
8730    if (data.pointerId !== null && data.pointerId !== e.pointerId) {
8731      return;
8732    }
8733    data.pointerId = e.pointerId;
8734  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {
8735    data.touchId = e.targetTouches[0].identifier;
8736  }
8737  if (e.type === 'touchstart') {
8738    // don't proceed touch event
8739    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);
8740    return;
8741  }
8742  const {
8743    params,
8744    touches,
8745    enabled
8746  } = swiper;
8747  if (!enabled) return;
8748  if (!params.simulateTouch && e.pointerType === 'mouse') return;
8749  if (swiper.animating && params.preventInteractionOnTransition) {
8750    return;
8751  }
8752  if (!swiper.animating && params.cssMode && params.loop) {
8753    swiper.loopFix();
8754  }
8755  let targetEl = e.target;
8756  if (params.touchEventsTarget === 'wrapper') {
8757    if (!(0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(targetEl, swiper.wrapperEl)) return;
8758  }
8759  if ('which' in e && e.which === 3) return;
8760  if ('button' in e && e.button > 0) return;
8761  if (data.isTouched && data.isMoved) return;
8762
8763  // change target el for shadow root component
8764  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';
8765  // eslint-disable-next-line
8766  const eventPath = e.composedPath ? e.composedPath() : e.path;
8767  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {
8768    targetEl = eventPath[0];
8769  }
8770  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;
8771  const isTargetShadow = !!(e.target && e.target.shadowRoot);
8772
8773  // use closestElement for shadow root element to get the actual closest for nested shadow root element
8774  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {
8775    swiper.allowClick = true;
8776    return;
8777  }
8778  if (params.swipeHandler) {
8779    if (!targetEl.closest(params.swipeHandler)) return;
8780  }
8781  touches.currentX = e.pageX;
8782  touches.currentY = e.pageY;
8783  const startX = touches.currentX;
8784  const startY = touches.currentY;
8785
8786  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
8787
8788  if (!preventEdgeSwipe(swiper, e, startX)) {
8789    return;
8790  }
8791  Object.assign(data, {
8792    isTouched: true,
8793    isMoved: false,
8794    allowTouchCallbacks: true,
8795    isScrolling: undefined,
8796    startMoving: undefined
8797  });
8798  touches.startX = startX;
8799  touches.startY = startY;
8800  data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
8801  swiper.allowClick = true;
8802  swiper.updateSize();
8803  swiper.swipeDirection = undefined;
8804  if (params.threshold > 0) data.allowThresholdMove = false;
8805  let preventDefault = true;
8806  if (targetEl.matches(data.focusableElements)) {
8807    preventDefault = false;
8808    if (targetEl.nodeName === 'SELECT') {
8809      data.isTouched = false;
8810    }
8811  }
8812  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {
8813    document.activeElement.blur();
8814  }
8815  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
8816  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {
8817    e.preventDefault();
8818  }
8819  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
8820    swiper.freeMode.onTouchStart();
8821  }
8822  swiper.emit('touchStart', e);
8823}
8824
8825function onTouchMove(event) {
8826  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
8827  const swiper = this;
8828  const data = swiper.touchEventsData;
8829  const {
8830    params,
8831    touches,
8832    rtlTranslate: rtl,
8833    enabled
8834  } = swiper;
8835  if (!enabled) return;
8836  if (!params.simulateTouch && event.pointerType === 'mouse') return;
8837  let e = event;
8838  if (e.originalEvent) e = e.originalEvent;
8839  if (e.type === 'pointermove') {
8840    if (data.touchId !== null) return; // return from pointer if we use touch
8841    const id = e.pointerId;
8842    if (id !== data.pointerId) return;
8843  }
8844  let targetTouch;
8845  if (e.type === 'touchmove') {
8846    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);
8847    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
8848  } else {
8849    targetTouch = e;
8850  }
8851  if (!data.isTouched) {
8852    if (data.startMoving && data.isScrolling) {
8853      swiper.emit('touchMoveOpposite', e);
8854    }
8855    return;
8856  }
8857  const pageX = targetTouch.pageX;
8858  const pageY = targetTouch.pageY;
8859  if (e.preventedByNestedSwiper) {
8860    touches.startX = pageX;
8861    touches.startY = pageY;
8862    return;
8863  }
8864  if (!swiper.allowTouchMove) {
8865    if (!e.target.matches(data.focusableElements)) {
8866      swiper.allowClick = false;
8867    }
8868    if (data.isTouched) {
8869      Object.assign(touches, {
8870        startX: pageX,
8871        startY: pageY,
8872        currentX: pageX,
8873        currentY: pageY
8874      });
8875      data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
8876    }
8877    return;
8878  }
8879  if (params.touchReleaseOnEdges && !params.loop) {
8880    if (swiper.isVertical()) {
8881      // Vertical
8882      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {
8883        data.isTouched = false;
8884        data.isMoved = false;
8885        return;
8886      }
8887    } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {
8888      return;
8889    } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {
8890      return;
8891    }
8892  }
8893  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {
8894    document.activeElement.blur();
8895  }
8896  if (document.activeElement) {
8897    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {
8898      data.isMoved = true;
8899      swiper.allowClick = false;
8900      return;
8901    }
8902  }
8903  if (data.allowTouchCallbacks) {
8904    swiper.emit('touchMove', e);
8905  }
8906  touches.previousX = touches.currentX;
8907  touches.previousY = touches.currentY;
8908  touches.currentX = pageX;
8909  touches.currentY = pageY;
8910  const diffX = touches.currentX - touches.startX;
8911  const diffY = touches.currentY - touches.startY;
8912  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
8913  if (typeof data.isScrolling === 'undefined') {
8914    let touchAngle;
8915    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {
8916      data.isScrolling = false;
8917    } else {
8918      // eslint-disable-next-line
8919      if (diffX * diffX + diffY * diffY >= 25) {
8920        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
8921        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
8922      }
8923    }
8924  }
8925  if (data.isScrolling) {
8926    swiper.emit('touchMoveOpposite', e);
8927  }
8928  if (typeof data.startMoving === 'undefined') {
8929    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
8930      data.startMoving = true;
8931    }
8932  }
8933  if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {
8934    data.isTouched = false;
8935    return;
8936  }
8937  if (!data.startMoving) {
8938    return;
8939  }
8940  swiper.allowClick = false;
8941  if (!params.cssMode && e.cancelable) {
8942    e.preventDefault();
8943  }
8944  if (params.touchMoveStopPropagation && !params.nested) {
8945    e.stopPropagation();
8946  }
8947  let diff = swiper.isHorizontal() ? diffX : diffY;
8948  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;
8949  if (params.oneWayMovement) {
8950    diff = Math.abs(diff) * (rtl ? 1 : -1);
8951    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);
8952  }
8953  touches.diff = diff;
8954  diff *= params.touchRatio;
8955  if (rtl) {
8956    diff = -diff;
8957    touchesDiff = -touchesDiff;
8958  }
8959  const prevTouchesDirection = swiper.touchesDirection;
8960  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
8961  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';
8962  const isLoop = swiper.params.loop && !params.cssMode;
8963  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;
8964  if (!data.isMoved) {
8965    if (isLoop && allowLoopFix) {
8966      swiper.loopFix({
8967        direction: swiper.swipeDirection
8968      });
8969    }
8970    data.startTranslate = swiper.getTranslate();
8971    swiper.setTransition(0);
8972    if (swiper.animating) {
8973      const evt = new window.CustomEvent('transitionend', {
8974        bubbles: true,
8975        cancelable: true,
8976        detail: {
8977          bySwiperTouchMove: true
8978        }
8979      });
8980      swiper.wrapperEl.dispatchEvent(evt);
8981    }
8982    data.allowMomentumBounce = false;
8983    // Grab Cursor
8984    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
8985      swiper.setGrabCursor(true);
8986    }
8987    swiper.emit('sliderFirstMove', e);
8988  }
8989  let loopFixed;
8990  new Date().getTime();
8991  if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {
8992    Object.assign(touches, {
8993      startX: pageX,
8994      startY: pageY,
8995      currentX: pageX,
8996      currentY: pageY,
8997      startTranslate: data.currentTranslate
8998    });
8999    data.loopSwapReset = true;
9000    data.startTranslate = data.currentTranslate;
9001    return;
9002  }
9003  swiper.emit('sliderMove', e);
9004  data.isMoved = true;
9005  data.currentTranslate = diff + data.startTranslate;
9006  let disableParentSwiper = true;
9007  let resistanceRatio = params.resistanceRatio;
9008  if (params.touchReleaseOnEdges) {
9009    resistanceRatio = 0;
9010  }
9011  if (diff > 0) {
9012    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())) {
9013      swiper.loopFix({
9014        direction: 'prev',
9015        setTranslate: true,
9016        activeSlideIndex: 0
9017      });
9018    }
9019    if (data.currentTranslate > swiper.minTranslate()) {
9020      disableParentSwiper = false;
9021      if (params.resistance) {
9022        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
9023      }
9024    }
9025  } else if (diff < 0) {
9026    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())) {
9027      swiper.loopFix({
9028        direction: 'next',
9029        setTranslate: true,
9030        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))
9031      });
9032    }
9033    if (data.currentTranslate < swiper.maxTranslate()) {
9034      disableParentSwiper = false;
9035      if (params.resistance) {
9036        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
9037      }
9038    }
9039  }
9040  if (disableParentSwiper) {
9041    e.preventedByNestedSwiper = true;
9042  }
9043
9044  // Directions locks
9045  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
9046    data.currentTranslate = data.startTranslate;
9047  }
9048  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
9049    data.currentTranslate = data.startTranslate;
9050  }
9051  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {
9052    data.currentTranslate = data.startTranslate;
9053  }
9054
9055  // Threshold
9056  if (params.threshold > 0) {
9057    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
9058      if (!data.allowThresholdMove) {
9059        data.allowThresholdMove = true;
9060        touches.startX = touches.currentX;
9061        touches.startY = touches.currentY;
9062        data.currentTranslate = data.startTranslate;
9063        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
9064        return;
9065      }
9066    } else {
9067      data.currentTranslate = data.startTranslate;
9068      return;
9069    }
9070  }
9071  if (!params.followFinger || params.cssMode) return;
9072
9073  // Update active index in free mode
9074  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {
9075    swiper.updateActiveIndex();
9076    swiper.updateSlidesClasses();
9077  }
9078  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {
9079    swiper.freeMode.onTouchMove();
9080  }
9081  // Update progress
9082  swiper.updateProgress(data.currentTranslate);
9083  // Update translate
9084  swiper.setTranslate(data.currentTranslate);
9085}
9086
9087function onTouchEnd(event) {
9088  const swiper = this;
9089  const data = swiper.touchEventsData;
9090  let e = event;
9091  if (e.originalEvent) e = e.originalEvent;
9092  let targetTouch;
9093  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';
9094  if (!isTouchEvent) {
9095    if (data.touchId !== null) return; // return from pointer if we use touch
9096    if (e.pointerId !== data.pointerId) return;
9097    targetTouch = e;
9098  } else {
9099    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);
9100    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
9101  }
9102  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {
9103    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);
9104    if (!proceed) {
9105      return;
9106    }
9107  }
9108  data.pointerId = null;
9109  data.touchId = null;
9110  const {
9111    params,
9112    touches,
9113    rtlTranslate: rtl,
9114    slidesGrid,
9115    enabled
9116  } = swiper;
9117  if (!enabled) return;
9118  if (!params.simulateTouch && e.pointerType === 'mouse') return;
9119  if (data.allowTouchCallbacks) {
9120    swiper.emit('touchEnd', e);
9121  }
9122  data.allowTouchCallbacks = false;
9123  if (!data.isTouched) {
9124    if (data.isMoved && params.grabCursor) {
9125      swiper.setGrabCursor(false);
9126    }
9127    data.isMoved = false;
9128    data.startMoving = false;
9129    return;
9130  }
9131
9132  // Return Grab Cursor
9133  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
9134    swiper.setGrabCursor(false);
9135  }
9136
9137  // Time diff
9138  const touchEndTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
9139  const timeDiff = touchEndTime - data.touchStartTime;
9140
9141  // Tap, doubleTap, Click
9142  if (swiper.allowClick) {
9143    const pathTree = e.path || e.composedPath && e.composedPath();
9144    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);
9145    swiper.emit('tap click', e);
9146    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
9147      swiper.emit('doubleTap doubleClick', e);
9148    }
9149  }
9150  data.lastClickTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)();
9151  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
9152    if (!swiper.destroyed) swiper.allowClick = true;
9153  });
9154  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {
9155    data.isTouched = false;
9156    data.isMoved = false;
9157    data.startMoving = false;
9158    return;
9159  }
9160  data.isTouched = false;
9161  data.isMoved = false;
9162  data.startMoving = false;
9163  let currentPos;
9164  if (params.followFinger) {
9165    currentPos = rtl ? swiper.translate : -swiper.translate;
9166  } else {
9167    currentPos = -data.currentTranslate;
9168  }
9169  if (params.cssMode) {
9170    return;
9171  }
9172  if (params.freeMode && params.freeMode.enabled) {
9173    swiper.freeMode.onTouchEnd({
9174      currentPos
9175    });
9176    return;
9177  }
9178
9179  // Find current slide
9180  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;
9181  let stopIndex = 0;
9182  let groupSize = swiper.slidesSizesGrid[0];
9183  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {
9184    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
9185    if (typeof slidesGrid[i + increment] !== 'undefined') {
9186      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
9187        stopIndex = i;
9188        groupSize = slidesGrid[i + increment] - slidesGrid[i];
9189      }
9190    } else if (swipeToLast || currentPos >= slidesGrid[i]) {
9191      stopIndex = i;
9192      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
9193    }
9194  }
9195  let rewindFirstIndex = null;
9196  let rewindLastIndex = null;
9197  if (params.rewind) {
9198    if (swiper.isBeginning) {
9199      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
9200    } else if (swiper.isEnd) {
9201      rewindFirstIndex = 0;
9202    }
9203  }
9204  // Find current slide size
9205  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
9206  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
9207  if (timeDiff > params.longSwipesMs) {
9208    // Long touches
9209    if (!params.longSwipes) {
9210      swiper.slideTo(swiper.activeIndex);
9211      return;
9212    }
9213    if (swiper.swipeDirection === 'next') {
9214      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
9215    }
9216    if (swiper.swipeDirection === 'prev') {
9217      if (ratio > 1 - params.longSwipesRatio) {
9218        swiper.slideTo(stopIndex + increment);
9219      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
9220        swiper.slideTo(rewindLastIndex);
9221      } else {
9222        swiper.slideTo(stopIndex);
9223      }
9224    }
9225  } else {
9226    // Short swipes
9227    if (!params.shortSwipes) {
9228      swiper.slideTo(swiper.activeIndex);
9229      return;
9230    }
9231    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
9232    if (!isNavButtonTarget) {
9233      if (swiper.swipeDirection === 'next') {
9234        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
9235      }
9236      if (swiper.swipeDirection === 'prev') {
9237        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
9238      }
9239    } else if (e.target === swiper.navigation.nextEl) {
9240      swiper.slideTo(stopIndex + increment);
9241    } else {
9242      swiper.slideTo(stopIndex);
9243    }
9244  }
9245}
9246
9247function onResize() {
9248  const swiper = this;
9249  const {
9250    params,
9251    el
9252  } = swiper;
9253  if (el && el.offsetWidth === 0) return;
9254
9255  // Breakpoints
9256  if (params.breakpoints) {
9257    swiper.setBreakpoint();
9258  }
9259
9260  // Save locks
9261  const {
9262    allowSlideNext,
9263    allowSlidePrev,
9264    snapGrid
9265  } = swiper;
9266  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
9267
9268  // Disable locks on resize
9269  swiper.allowSlideNext = true;
9270  swiper.allowSlidePrev = true;
9271  swiper.updateSize();
9272  swiper.updateSlides();
9273  swiper.updateSlidesClasses();
9274  const isVirtualLoop = isVirtual && params.loop;
9275  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
9276    swiper.slideTo(swiper.slides.length - 1, 0, false, true);
9277  } else {
9278    if (swiper.params.loop && !isVirtual) {
9279      swiper.slideToLoop(swiper.realIndex, 0, false, true);
9280    } else {
9281      swiper.slideTo(swiper.activeIndex, 0, false, true);
9282    }
9283  }
9284  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
9285    clearTimeout(swiper.autoplay.resizeTimeout);
9286    swiper.autoplay.resizeTimeout = setTimeout(() => {
9287      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
9288        swiper.autoplay.resume();
9289      }
9290    }, 500);
9291  }
9292  // Return locks after resize
9293  swiper.allowSlidePrev = allowSlidePrev;
9294  swiper.allowSlideNext = allowSlideNext;
9295  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
9296    swiper.checkOverflow();
9297  }
9298}
9299
9300function onClick(e) {
9301  const swiper = this;
9302  if (!swiper.enabled) return;
9303  if (!swiper.allowClick) {
9304    if (swiper.params.preventClicks) e.preventDefault();
9305    if (swiper.params.preventClicksPropagation && swiper.animating) {
9306      e.stopPropagation();
9307      e.stopImmediatePropagation();
9308    }
9309  }
9310}
9311
9312function onScroll() {
9313  const swiper = this;
9314  const {
9315    wrapperEl,
9316    rtlTranslate,
9317    enabled
9318  } = swiper;
9319  if (!enabled) return;
9320  swiper.previousTranslate = swiper.translate;
9321  if (swiper.isHorizontal()) {
9322    swiper.translate = -wrapperEl.scrollLeft;
9323  } else {
9324    swiper.translate = -wrapperEl.scrollTop;
9325  }
9326  // eslint-disable-next-line
9327  if (swiper.translate === 0) swiper.translate = 0;
9328  swiper.updateActiveIndex();
9329  swiper.updateSlidesClasses();
9330  let newProgress;
9331  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
9332  if (translatesDiff === 0) {
9333    newProgress = 0;
9334  } else {
9335    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;
9336  }
9337  if (newProgress !== swiper.progress) {
9338    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);
9339  }
9340  swiper.emit('setTranslate', swiper.translate, false);
9341}
9342
9343function onLoad(e) {
9344  const swiper = this;
9345  processLazyPreloader(swiper, e.target);
9346  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
9347    return;
9348  }
9349  swiper.update();
9350}
9351
9352function onDocumentTouchStart() {
9353  const swiper = this;
9354  if (swiper.documentTouchHandlerProceeded) return;
9355  swiper.documentTouchHandlerProceeded = true;
9356  if (swiper.params.touchReleaseOnEdges) {
9357    swiper.el.style.touchAction = 'auto';
9358  }
9359}
9360
9361const events = (swiper, method) => {
9362  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9363  const {
9364    params,
9365    el,
9366    wrapperEl,
9367    device
9368  } = swiper;
9369  const capture = !!params.nested;
9370  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
9371  const swiperMethod = method;
9372  if (!el || typeof el === 'string') return;
9373
9374  // Touch Events
9375  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {
9376    passive: false,
9377    capture
9378  });
9379  el[domMethod]('touchstart', swiper.onTouchStart, {
9380    passive: false
9381  });
9382  el[domMethod]('pointerdown', swiper.onTouchStart, {
9383    passive: false
9384  });
9385  document[domMethod]('touchmove', swiper.onTouchMove, {
9386    passive: false,
9387    capture
9388  });
9389  document[domMethod]('pointermove', swiper.onTouchMove, {
9390    passive: false,
9391    capture
9392  });
9393  document[domMethod]('touchend', swiper.onTouchEnd, {
9394    passive: true
9395  });
9396  document[domMethod]('pointerup', swiper.onTouchEnd, {
9397    passive: true
9398  });
9399  document[domMethod]('pointercancel', swiper.onTouchEnd, {
9400    passive: true
9401  });
9402  document[domMethod]('touchcancel', swiper.onTouchEnd, {
9403    passive: true
9404  });
9405  document[domMethod]('pointerout', swiper.onTouchEnd, {
9406    passive: true
9407  });
9408  document[domMethod]('pointerleave', swiper.onTouchEnd, {
9409    passive: true
9410  });
9411  document[domMethod]('contextmenu', swiper.onTouchEnd, {
9412    passive: true
9413  });
9414
9415  // Prevent Links Clicks
9416  if (params.preventClicks || params.preventClicksPropagation) {
9417    el[domMethod]('click', swiper.onClick, true);
9418  }
9419  if (params.cssMode) {
9420    wrapperEl[domMethod]('scroll', swiper.onScroll);
9421  }
9422
9423  // Resize handler
9424  if (params.updateOnWindowResize) {
9425    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);
9426  } else {
9427    swiper[swiperMethod]('observerUpdate', onResize, true);
9428  }
9429
9430  // Images loader
9431  el[domMethod]('load', swiper.onLoad, {
9432    capture: true
9433  });
9434};
9435function attachEvents() {
9436  const swiper = this;
9437  const {
9438    params
9439  } = swiper;
9440  swiper.onTouchStart = onTouchStart.bind(swiper);
9441  swiper.onTouchMove = onTouchMove.bind(swiper);
9442  swiper.onTouchEnd = onTouchEnd.bind(swiper);
9443  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);
9444  if (params.cssMode) {
9445    swiper.onScroll = onScroll.bind(swiper);
9446  }
9447  swiper.onClick = onClick.bind(swiper);
9448  swiper.onLoad = onLoad.bind(swiper);
9449  events(swiper, 'on');
9450}
9451function detachEvents() {
9452  const swiper = this;
9453  events(swiper, 'off');
9454}
9455var events$1 = {
9456  attachEvents,
9457  detachEvents
9458};
9459
9460const isGridEnabled = (swiper, params) => {
9461  return swiper.grid && params.grid && params.grid.rows > 1;
9462};
9463function setBreakpoint() {
9464  const swiper = this;
9465  const {
9466    realIndex,
9467    initialized,
9468    params,
9469    el
9470  } = swiper;
9471  const breakpoints = params.breakpoints;
9472  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;
9473  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9474
9475  // Get breakpoint for window/container width and update parameters
9476  const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';
9477  const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);
9478  const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);
9479  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
9480  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
9481  const breakpointParams = breakpointOnlyParams || swiper.originalParams;
9482  const wasMultiRow = isGridEnabled(swiper, params);
9483  const isMultiRow = isGridEnabled(swiper, breakpointParams);
9484  const wasGrabCursor = swiper.params.grabCursor;
9485  const isGrabCursor = breakpointParams.grabCursor;
9486  const wasEnabled = params.enabled;
9487  if (wasMultiRow && !isMultiRow) {
9488    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
9489    swiper.emitContainerClasses();
9490  } else if (!wasMultiRow && isMultiRow) {
9491    el.classList.add(`${params.containerModifierClass}grid`);
9492    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {
9493      el.classList.add(`${params.containerModifierClass}grid-column`);
9494    }
9495    swiper.emitContainerClasses();
9496  }
9497  if (wasGrabCursor && !isGrabCursor) {
9498    swiper.unsetGrabCursor();
9499  } else if (!wasGrabCursor && isGrabCursor) {
9500    swiper.setGrabCursor();
9501  }
9502
9503  // Toggle navigation, pagination, scrollbar
9504  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {
9505    if (typeof breakpointParams[prop] === 'undefined') return;
9506    const wasModuleEnabled = params[prop] && params[prop].enabled;
9507    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
9508    if (wasModuleEnabled && !isModuleEnabled) {
9509      swiper[prop].disable();
9510    }
9511    if (!wasModuleEnabled && isModuleEnabled) {
9512      swiper[prop].enable();
9513    }
9514  });
9515  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
9516  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
9517  const wasLoop = params.loop;
9518  if (directionChanged && initialized) {
9519    swiper.changeDirection();
9520  }
9521  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(swiper.params, breakpointParams);
9522  const isEnabled = swiper.params.enabled;
9523  const hasLoop = swiper.params.loop;
9524  Object.assign(swiper, {
9525    allowTouchMove: swiper.params.allowTouchMove,
9526    allowSlideNext: swiper.params.allowSlideNext,
9527    allowSlidePrev: swiper.params.allowSlidePrev
9528  });
9529  if (wasEnabled && !isEnabled) {
9530    swiper.disable();
9531  } else if (!wasEnabled && isEnabled) {
9532    swiper.enable();
9533  }
9534  swiper.currentBreakpoint = breakpoint;
9535  swiper.emit('_beforeBreakpoint', breakpointParams);
9536  if (initialized) {
9537    if (needsReLoop) {
9538      swiper.loopDestroy();
9539      swiper.loopCreate(realIndex);
9540      swiper.updateSlides();
9541    } else if (!wasLoop && hasLoop) {
9542      swiper.loopCreate(realIndex);
9543      swiper.updateSlides();
9544    } else if (wasLoop && !hasLoop) {
9545      swiper.loopDestroy();
9546    }
9547  }
9548  swiper.emit('breakpoint', breakpointParams);
9549}
9550
9551function getBreakpoint(breakpoints, base, containerEl) {
9552  if (base === void 0) {
9553    base = 'window';
9554  }
9555  if (!breakpoints || base === 'container' && !containerEl) return undefined;
9556  let breakpoint = false;
9557  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
9558  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
9559  const points = Object.keys(breakpoints).map(point => {
9560    if (typeof point === 'string' && point.indexOf('@') === 0) {
9561      const minRatio = parseFloat(point.substr(1));
9562      const value = currentHeight * minRatio;
9563      return {
9564        value,
9565        point
9566      };
9567    }
9568    return {
9569      value: point,
9570      point
9571    };
9572  });
9573  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));
9574  for (let i = 0; i < points.length; i += 1) {
9575    const {
9576      point,
9577      value
9578    } = points[i];
9579    if (base === 'window') {
9580      if (window.matchMedia(`(min-width: ${value}px)`).matches) {
9581        breakpoint = point;
9582      }
9583    } else if (value <= containerEl.clientWidth) {
9584      breakpoint = point;
9585    }
9586  }
9587  return breakpoint || 'max';
9588}
9589
9590var breakpoints = {
9591  setBreakpoint,
9592  getBreakpoint
9593};
9594
9595function prepareClasses(entries, prefix) {
9596  const resultClasses = [];
9597  entries.forEach(item => {
9598    if (typeof item === 'object') {
9599      Object.keys(item).forEach(classNames => {
9600        if (item[classNames]) {
9601          resultClasses.push(prefix + classNames);
9602        }
9603      });
9604    } else if (typeof item === 'string') {
9605      resultClasses.push(prefix + item);
9606    }
9607  });
9608  return resultClasses;
9609}
9610function addClasses() {
9611  const swiper = this;
9612  const {
9613    classNames,
9614    params,
9615    rtl,
9616    el,
9617    device
9618  } = swiper;
9619  // prettier-ignore
9620  const suffixes = prepareClasses(['initialized', params.direction, {
9621    'free-mode': swiper.params.freeMode && params.freeMode.enabled
9622  }, {
9623    'autoheight': params.autoHeight
9624  }, {
9625    'rtl': rtl
9626  }, {
9627    'grid': params.grid && params.grid.rows > 1
9628  }, {
9629    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
9630  }, {
9631    'android': device.android
9632  }, {
9633    'ios': device.ios
9634  }, {
9635    'css-mode': params.cssMode
9636  }, {
9637    'centered': params.cssMode && params.centeredSlides
9638  }, {
9639    'watch-progress': params.watchSlidesProgress
9640  }], params.containerModifierClass);
9641  classNames.push(...suffixes);
9642  el.classList.add(...classNames);
9643  swiper.emitContainerClasses();
9644}
9645
9646function removeClasses() {
9647  const swiper = this;
9648  const {
9649    el,
9650    classNames
9651  } = swiper;
9652  if (!el || typeof el === 'string') return;
9653  el.classList.remove(...classNames);
9654  swiper.emitContainerClasses();
9655}
9656
9657var classes = {
9658  addClasses,
9659  removeClasses
9660};
9661
9662function checkOverflow() {
9663  const swiper = this;
9664  const {
9665    isLocked: wasLocked,
9666    params
9667  } = swiper;
9668  const {
9669    slidesOffsetBefore
9670  } = params;
9671  if (slidesOffsetBefore) {
9672    const lastSlideIndex = swiper.slides.length - 1;
9673    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
9674    swiper.isLocked = swiper.size > lastSlideRightEdge;
9675  } else {
9676    swiper.isLocked = swiper.snapGrid.length === 1;
9677  }
9678  if (params.allowSlideNext === true) {
9679    swiper.allowSlideNext = !swiper.isLocked;
9680  }
9681  if (params.allowSlidePrev === true) {
9682    swiper.allowSlidePrev = !swiper.isLocked;
9683  }
9684  if (wasLocked && wasLocked !== swiper.isLocked) {
9685    swiper.isEnd = false;
9686  }
9687  if (wasLocked !== swiper.isLocked) {
9688    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
9689  }
9690}
9691var checkOverflow$1 = {
9692  checkOverflow
9693};
9694
9695var defaults = {
9696  init: true,
9697  direction: 'horizontal',
9698  oneWayMovement: false,
9699  swiperElementNodeName: 'SWIPER-CONTAINER',
9700  touchEventsTarget: 'wrapper',
9701  initialSlide: 0,
9702  speed: 300,
9703  cssMode: false,
9704  updateOnWindowResize: true,
9705  resizeObserver: true,
9706  nested: false,
9707  createElements: false,
9708  eventsPrefix: 'swiper',
9709  enabled: true,
9710  focusableElements: 'input, select, option, textarea, button, video, label',
9711  // Overrides
9712  width: null,
9713  height: null,
9714  //
9715  preventInteractionOnTransition: false,
9716  // ssr
9717  userAgent: null,
9718  url: null,
9719  // To support iOS's swipe-to-go-back gesture (when being used in-app).
9720  edgeSwipeDetection: false,
9721  edgeSwipeThreshold: 20,
9722  // Autoheight
9723  autoHeight: false,
9724  // Set wrapper width
9725  setWrapperSize: false,
9726  // Virtual Translate
9727  virtualTranslate: false,
9728  // Effects
9729  effect: 'slide',
9730  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
9731
9732  // Breakpoints
9733  breakpoints: undefined,
9734  breakpointsBase: 'window',
9735  // Slides grid
9736  spaceBetween: 0,
9737  slidesPerView: 1,
9738  slidesPerGroup: 1,
9739  slidesPerGroupSkip: 0,
9740  slidesPerGroupAuto: false,
9741  centeredSlides: false,
9742  centeredSlidesBounds: false,
9743  slidesOffsetBefore: 0,
9744  // in px
9745  slidesOffsetAfter: 0,
9746  // in px
9747  normalizeSlideIndex: true,
9748  centerInsufficientSlides: false,
9749  // Disable swiper and hide navigation when container not overflow
9750  watchOverflow: true,
9751  // Round length
9752  roundLengths: false,
9753  // Touches
9754  touchRatio: 1,
9755  touchAngle: 45,
9756  simulateTouch: true,
9757  shortSwipes: true,
9758  longSwipes: true,
9759  longSwipesRatio: 0.5,
9760  longSwipesMs: 300,
9761  followFinger: true,
9762  allowTouchMove: true,
9763  threshold: 5,
9764  touchMoveStopPropagation: false,
9765  touchStartPreventDefault: true,
9766  touchStartForcePreventDefault: false,
9767  touchReleaseOnEdges: false,
9768  // Unique Navigation Elements
9769  uniqueNavElements: true,
9770  // Resistance
9771  resistance: true,
9772  resistanceRatio: 0.85,
9773  // Progress
9774  watchSlidesProgress: false,
9775  // Cursor
9776  grabCursor: false,
9777  // Clicks
9778  preventClicks: true,
9779  preventClicksPropagation: true,
9780  slideToClickedSlide: false,
9781  // loop
9782  loop: false,
9783  loopAddBlankSlides: true,
9784  loopAdditionalSlides: 0,
9785  loopPreventsSliding: true,
9786  // rewind
9787  rewind: false,
9788  // Swiping/no swiping
9789  allowSlidePrev: true,
9790  allowSlideNext: true,
9791  swipeHandler: null,
9792  // '.swipe-handler',
9793  noSwiping: true,
9794  noSwipingClass: 'swiper-no-swiping',
9795  noSwipingSelector: null,
9796  // Passive Listeners
9797  passiveListeners: true,
9798  maxBackfaceHiddenSlides: 10,
9799  // NS
9800  containerModifierClass: 'swiper-',
9801  // NEW
9802  slideClass: 'swiper-slide',
9803  slideBlankClass: 'swiper-slide-blank',
9804  slideActiveClass: 'swiper-slide-active',
9805  slideVisibleClass: 'swiper-slide-visible',
9806  slideFullyVisibleClass: 'swiper-slide-fully-visible',
9807  slideNextClass: 'swiper-slide-next',
9808  slidePrevClass: 'swiper-slide-prev',
9809  wrapperClass: 'swiper-wrapper',
9810  lazyPreloaderClass: 'swiper-lazy-preloader',
9811  lazyPreloadPrevNext: 0,
9812  // Callbacks
9813  runCallbacksOnInit: true,
9814  // Internals
9815  _emitClasses: false
9816};
9817
9818function moduleExtendParams(params, allModulesParams) {
9819  return function extendParams(obj) {
9820    if (obj === void 0) {
9821      obj = {};
9822    }
9823    const moduleParamName = Object.keys(obj)[0];
9824    const moduleParams = obj[moduleParamName];
9825    if (typeof moduleParams !== 'object' || moduleParams === null) {
9826      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(allModulesParams, obj);
9827      return;
9828    }
9829    if (params[moduleParamName] === true) {
9830      params[moduleParamName] = {
9831        enabled: true
9832      };
9833    }
9834    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {
9835      params[moduleParamName].auto = true;
9836    }
9837    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {
9838      params[moduleParamName].auto = true;
9839    }
9840    if (!(moduleParamName in params && 'enabled' in moduleParams)) {
9841      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(allModulesParams, obj);
9842      return;
9843    }
9844    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
9845      params[moduleParamName].enabled = true;
9846    }
9847    if (!params[moduleParamName]) params[moduleParamName] = {
9848      enabled: false
9849    };
9850    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(allModulesParams, obj);
9851  };
9852}
9853
9854/* eslint no-param-reassign: "off" */
9855const prototypes = {
9856  eventsEmitter,
9857  update,
9858  translate,
9859  transition,
9860  slide,
9861  loop,
9862  grabCursor,
9863  events: events$1,
9864  breakpoints,
9865  checkOverflow: checkOverflow$1,
9866  classes
9867};
9868const extendedDefaults = {};
9869class Swiper {
9870  constructor() {
9871    let el;
9872    let params;
9873    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
9874      args[_key] = arguments[_key];
9875    }
9876    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
9877      params = args[0];
9878    } else {
9879      [el, params] = args;
9880    }
9881    if (!params) params = {};
9882    params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, params);
9883    if (el && !params.el) params.el = el;
9884    const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9885    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {
9886      const swipers = [];
9887      document.querySelectorAll(params.el).forEach(containerEl => {
9888        const newParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, params, {
9889          el: containerEl
9890        });
9891        swipers.push(new Swiper(newParams));
9892      });
9893      // eslint-disable-next-line no-constructor-return
9894      return swipers;
9895    }
9896
9897    // Swiper Instance
9898    const swiper = this;
9899    swiper.__swiper__ = true;
9900    swiper.support = getSupport();
9901    swiper.device = getDevice({
9902      userAgent: params.userAgent
9903    });
9904    swiper.browser = getBrowser();
9905    swiper.eventsListeners = {};
9906    swiper.eventsAnyListeners = [];
9907    swiper.modules = [...swiper.__modules__];
9908    if (params.modules && Array.isArray(params.modules)) {
9909      swiper.modules.push(...params.modules);
9910    }
9911    const allModulesParams = {};
9912    swiper.modules.forEach(mod => {
9913      mod({
9914        params,
9915        swiper,
9916        extendParams: moduleExtendParams(params, allModulesParams),
9917        on: swiper.on.bind(swiper),
9918        once: swiper.once.bind(swiper),
9919        off: swiper.off.bind(swiper),
9920        emit: swiper.emit.bind(swiper)
9921      });
9922    });
9923
9924    // Extend defaults with modules params
9925    const swiperParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, defaults, allModulesParams);
9926
9927    // Extend defaults with passed params
9928    swiper.params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, swiperParams, extendedDefaults, params);
9929    swiper.originalParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, swiper.params);
9930    swiper.passedParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)({}, params);
9931
9932    // add event listeners
9933    if (swiper.params && swiper.params.on) {
9934      Object.keys(swiper.params.on).forEach(eventName => {
9935        swiper.on(eventName, swiper.params.on[eventName]);
9936      });
9937    }
9938    if (swiper.params && swiper.params.onAny) {
9939      swiper.onAny(swiper.params.onAny);
9940    }
9941
9942    // Extend Swiper
9943    Object.assign(swiper, {
9944      enabled: swiper.params.enabled,
9945      el,
9946      // Classes
9947      classNames: [],
9948      // Slides
9949      slides: [],
9950      slidesGrid: [],
9951      snapGrid: [],
9952      slidesSizesGrid: [],
9953      // isDirection
9954      isHorizontal() {
9955        return swiper.params.direction === 'horizontal';
9956      },
9957      isVertical() {
9958        return swiper.params.direction === 'vertical';
9959      },
9960      // Indexes
9961      activeIndex: 0,
9962      realIndex: 0,
9963      //
9964      isBeginning: true,
9965      isEnd: false,
9966      // Props
9967      translate: 0,
9968      previousTranslate: 0,
9969      progress: 0,
9970      velocity: 0,
9971      animating: false,
9972      cssOverflowAdjustment() {
9973        // Returns 0 unless `translate` is > 2**23
9974        // Should be subtracted from css values to prevent overflow
9975        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
9976      },
9977      // Locks
9978      allowSlideNext: swiper.params.allowSlideNext,
9979      allowSlidePrev: swiper.params.allowSlidePrev,
9980      // Touch Events
9981      touchEventsData: {
9982        isTouched: undefined,
9983        isMoved: undefined,
9984        allowTouchCallbacks: undefined,
9985        touchStartTime: undefined,
9986        isScrolling: undefined,
9987        currentTranslate: undefined,
9988        startTranslate: undefined,
9989        allowThresholdMove: undefined,
9990        // Form elements to match
9991        focusableElements: swiper.params.focusableElements,
9992        // Last click time
9993        lastClickTime: 0,
9994        clickTimeout: undefined,
9995        // Velocities
9996        velocities: [],
9997        allowMomentumBounce: undefined,
9998        startMoving: undefined,
9999        pointerId: null,
10000        touchId: null
10001      },
10002      // Clicks
10003      allowClick: true,
10004      // Touches
10005      allowTouchMove: swiper.params.allowTouchMove,
10006      touches: {
10007        startX: 0,
10008        startY: 0,
10009        currentX: 0,
10010        currentY: 0,
10011        diff: 0
10012      },
10013      // Images
10014      imagesToLoad: [],
10015      imagesLoaded: 0
10016    });
10017    swiper.emit('_swiper');
10018
10019    // Init
10020    if (swiper.params.init) {
10021      swiper.init();
10022    }
10023
10024    // Return app instance
10025    // eslint-disable-next-line no-constructor-return
10026    return swiper;
10027  }
10028  getDirectionLabel(property) {
10029    if (this.isHorizontal()) {
10030      return property;
10031    }
10032    // prettier-ignore
10033    return {
10034      'width': 'height',
10035      'margin-top': 'margin-left',
10036      'margin-bottom ': 'margin-right',
10037      'margin-left': 'margin-top',
10038      'margin-right': 'margin-bottom',
10039      'padding-left': 'padding-top',
10040      'padding-right': 'padding-bottom',
10041      'marginRight': 'marginBottom'
10042    }[property];
10043  }
10044  getSlideIndex(slideEl) {
10045    const {
10046      slidesEl,
10047      params
10048    } = this;
10049    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
10050    const firstSlideIndex = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(slides[0]);
10051    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(slideEl) - firstSlideIndex;
10052  }
10053  getSlideIndexByData(index) {
10054    return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));
10055  }
10056  getSlideIndexWhenGrid(index) {
10057    if (this.grid && this.params.grid && this.params.grid.rows > 1) {
10058      if (this.params.grid.fill === 'column') {
10059        index = Math.floor(index / this.params.grid.rows);
10060      } else if (this.params.grid.fill === 'row') {
10061        index = index % Math.ceil(this.slides.length / this.params.grid.rows);
10062      }
10063    }
10064    return index;
10065  }
10066  recalcSlides() {
10067    const swiper = this;
10068    const {
10069      slidesEl,
10070      params
10071    } = swiper;
10072    swiper.slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
10073  }
10074  enable() {
10075    const swiper = this;
10076    if (swiper.enabled) return;
10077    swiper.enabled = true;
10078    if (swiper.params.grabCursor) {
10079      swiper.setGrabCursor();
10080    }
10081    swiper.emit('enable');
10082  }
10083  disable() {
10084    const swiper = this;
10085    if (!swiper.enabled) return;
10086    swiper.enabled = false;
10087    if (swiper.params.grabCursor) {
10088      swiper.unsetGrabCursor();
10089    }
10090    swiper.emit('disable');
10091  }
10092  setProgress(progress, speed) {
10093    const swiper = this;
10094    progress = Math.min(Math.max(progress, 0), 1);
10095    const min = swiper.minTranslate();
10096    const max = swiper.maxTranslate();
10097    const current = (max - min) * progress + min;
10098    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);
10099    swiper.updateActiveIndex();
10100    swiper.updateSlidesClasses();
10101  }
10102  emitContainerClasses() {
10103    const swiper = this;
10104    if (!swiper.params._emitClasses || !swiper.el) return;
10105    const cls = swiper.el.className.split(' ').filter(className => {
10106      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;
10107    });
10108    swiper.emit('_containerClasses', cls.join(' '));
10109  }
10110  getSlideClasses(slideEl) {
10111    const swiper = this;
10112    if (swiper.destroyed) return '';
10113    return slideEl.className.split(' ').filter(className => {
10114      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;
10115    }).join(' ');
10116  }
10117  emitSlidesClasses() {
10118    const swiper = this;
10119    if (!swiper.params._emitClasses || !swiper.el) return;
10120    const updates = [];
10121    swiper.slides.forEach(slideEl => {
10122      const classNames = swiper.getSlideClasses(slideEl);
10123      updates.push({
10124        slideEl,
10125        classNames
10126      });
10127      swiper.emit('_slideClass', slideEl, classNames);
10128    });
10129    swiper.emit('_slideClasses', updates);
10130  }
10131  slidesPerViewDynamic(view, exact) {
10132    if (view === void 0) {
10133      view = 'current';
10134    }
10135    if (exact === void 0) {
10136      exact = false;
10137    }
10138    const swiper = this;
10139    const {
10140      params,
10141      slides,
10142      slidesGrid,
10143      slidesSizesGrid,
10144      size: swiperSize,
10145      activeIndex
10146    } = swiper;
10147    let spv = 1;
10148    if (typeof params.slidesPerView === 'number') return params.slidesPerView;
10149    if (params.centeredSlides) {
10150      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;
10151      let breakLoop;
10152      for (let i = activeIndex + 1; i < slides.length; i += 1) {
10153        if (slides[i] && !breakLoop) {
10154          slideSize += Math.ceil(slides[i].swiperSlideSize);
10155          spv += 1;
10156          if (slideSize > swiperSize) breakLoop = true;
10157        }
10158      }
10159      for (let i = activeIndex - 1; i >= 0; i -= 1) {
10160        if (slides[i] && !breakLoop) {
10161          slideSize += slides[i].swiperSlideSize;
10162          spv += 1;
10163          if (slideSize > swiperSize) breakLoop = true;
10164        }
10165      }
10166    } else {
10167      // eslint-disable-next-line
10168      if (view === 'current') {
10169        for (let i = activeIndex + 1; i < slides.length; i += 1) {
10170          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
10171          if (slideInView) {
10172            spv += 1;
10173          }
10174        }
10175      } else {
10176        // previous
10177        for (let i = activeIndex - 1; i >= 0; i -= 1) {
10178          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
10179          if (slideInView) {
10180            spv += 1;
10181          }
10182        }
10183      }
10184    }
10185    return spv;
10186  }
10187  update() {
10188    const swiper = this;
10189    if (!swiper || swiper.destroyed) return;
10190    const {
10191      snapGrid,
10192      params
10193    } = swiper;
10194    // Breakpoints
10195    if (params.breakpoints) {
10196      swiper.setBreakpoint();
10197    }
10198    [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => {
10199      if (imageEl.complete) {
10200        processLazyPreloader(swiper, imageEl);
10201      }
10202    });
10203    swiper.updateSize();
10204    swiper.updateSlides();
10205    swiper.updateProgress();
10206    swiper.updateSlidesClasses();
10207    function setTranslate() {
10208      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
10209      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
10210      swiper.setTranslate(newTranslate);
10211      swiper.updateActiveIndex();
10212      swiper.updateSlidesClasses();
10213    }
10214    let translated;
10215    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {
10216      setTranslate();
10217      if (params.autoHeight) {
10218        swiper.updateAutoHeight();
10219      }
10220    } else {
10221      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {
10222        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;
10223        translated = swiper.slideTo(slides.length - 1, 0, false, true);
10224      } else {
10225        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
10226      }
10227      if (!translated) {
10228        setTranslate();
10229      }
10230    }
10231    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {
10232      swiper.checkOverflow();
10233    }
10234    swiper.emit('update');
10235  }
10236  changeDirection(newDirection, needUpdate) {
10237    if (needUpdate === void 0) {
10238      needUpdate = true;
10239    }
10240    const swiper = this;
10241    const currentDirection = swiper.params.direction;
10242    if (!newDirection) {
10243      // eslint-disable-next-line
10244      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
10245    }
10246    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {
10247      return swiper;
10248    }
10249    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);
10250    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);
10251    swiper.emitContainerClasses();
10252    swiper.params.direction = newDirection;
10253    swiper.slides.forEach(slideEl => {
10254      if (newDirection === 'vertical') {
10255        slideEl.style.width = '';
10256      } else {
10257        slideEl.style.height = '';
10258      }
10259    });
10260    swiper.emit('changeDirection');
10261    if (needUpdate) swiper.update();
10262    return swiper;
10263  }
10264  changeLanguageDirection(direction) {
10265    const swiper = this;
10266    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;
10267    swiper.rtl = direction === 'rtl';
10268    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;
10269    if (swiper.rtl) {
10270      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);
10271      swiper.el.dir = 'rtl';
10272    } else {
10273      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);
10274      swiper.el.dir = 'ltr';
10275    }
10276    swiper.update();
10277  }
10278  mount(element) {
10279    const swiper = this;
10280    if (swiper.mounted) return true;
10281
10282    // Find el
10283    let el = element || swiper.params.el;
10284    if (typeof el === 'string') {
10285      el = document.querySelector(el);
10286    }
10287    if (!el) {
10288      return false;
10289    }
10290    el.swiper = swiper;
10291    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {
10292      swiper.isElement = true;
10293    }
10294    const getWrapperSelector = () => {
10295      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;
10296    };
10297    const getWrapper = () => {
10298      if (el && el.shadowRoot && el.shadowRoot.querySelector) {
10299        const res = el.shadowRoot.querySelector(getWrapperSelector());
10300        // Children needs to return slot items
10301        return res;
10302      }
10303      return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, getWrapperSelector())[0];
10304    };
10305    // Find Wrapper
10306    let wrapperEl = getWrapper();
10307    if (!wrapperEl && swiper.params.createElements) {
10308      wrapperEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.wrapperClass);
10309      el.append(wrapperEl);
10310      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, `.${swiper.params.slideClass}`).forEach(slideEl => {
10311        wrapperEl.append(slideEl);
10312      });
10313    }
10314    Object.assign(swiper, {
10315      el,
10316      wrapperEl,
10317      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
10318      hostEl: swiper.isElement ? el.parentNode.host : el,
10319      mounted: true,
10320      // RTL
10321      rtl: el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'direction') === 'rtl',
10322      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(el, 'direction') === 'rtl'),
10323      wrongRTL: (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(wrapperEl, 'display') === '-webkit-box'
10324    });
10325    return true;
10326  }
10327  init(el) {
10328    const swiper = this;
10329    if (swiper.initialized) return swiper;
10330    const mounted = swiper.mount(el);
10331    if (mounted === false) return swiper;
10332    swiper.emit('beforeInit');
10333
10334    // Set breakpoint
10335    if (swiper.params.breakpoints) {
10336      swiper.setBreakpoint();
10337    }
10338
10339    // Add Classes
10340    swiper.addClasses();
10341
10342    // Update size
10343    swiper.updateSize();
10344
10345    // Update slides
10346    swiper.updateSlides();
10347    if (swiper.params.watchOverflow) {
10348      swiper.checkOverflow();
10349    }
10350
10351    // Set Grab Cursor
10352    if (swiper.params.grabCursor && swiper.enabled) {
10353      swiper.setGrabCursor();
10354    }
10355
10356    // Slide To Initial Slide
10357    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
10358      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);
10359    } else {
10360      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
10361    }
10362
10363    // Create loop
10364    if (swiper.params.loop) {
10365      swiper.loopCreate(undefined, true);
10366    }
10367
10368    // Attach events
10369    swiper.attachEvents();
10370    const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')];
10371    if (swiper.isElement) {
10372      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]'));
10373    }
10374    lazyElements.forEach(imageEl => {
10375      if (imageEl.complete) {
10376        processLazyPreloader(swiper, imageEl);
10377      } else {
10378        imageEl.addEventListener('load', e => {
10379          processLazyPreloader(swiper, e.target);
10380        });
10381      }
10382    });
10383    preload(swiper);
10384
10385    // Init Flag
10386    swiper.initialized = true;
10387    preload(swiper);
10388
10389    // Emit
10390    swiper.emit('init');
10391    swiper.emit('afterInit');
10392    return swiper;
10393  }
10394  destroy(deleteInstance, cleanStyles) {
10395    if (deleteInstance === void 0) {
10396      deleteInstance = true;
10397    }
10398    if (cleanStyles === void 0) {
10399      cleanStyles = true;
10400    }
10401    const swiper = this;
10402    const {
10403      params,
10404      el,
10405      wrapperEl,
10406      slides
10407    } = swiper;
10408    if (typeof swiper.params === 'undefined' || swiper.destroyed) {
10409      return null;
10410    }
10411    swiper.emit('beforeDestroy');
10412
10413    // Init Flag
10414    swiper.initialized = false;
10415
10416    // Detach events
10417    swiper.detachEvents();
10418
10419    // Destroy loop
10420    if (params.loop) {
10421      swiper.loopDestroy();
10422    }
10423
10424    // Cleanup styles
10425    if (cleanStyles) {
10426      swiper.removeClasses();
10427      if (el && typeof el !== 'string') {
10428        el.removeAttribute('style');
10429      }
10430      if (wrapperEl) {
10431        wrapperEl.removeAttribute('style');
10432      }
10433      if (slides && slides.length) {
10434        slides.forEach(slideEl => {
10435          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);
10436          slideEl.removeAttribute('style');
10437          slideEl.removeAttribute('data-swiper-slide-index');
10438        });
10439      }
10440    }
10441    swiper.emit('destroy');
10442
10443    // Detach emitter events
10444    Object.keys(swiper.eventsListeners).forEach(eventName => {
10445      swiper.off(eventName);
10446    });
10447    if (deleteInstance !== false) {
10448      if (swiper.el && typeof swiper.el !== 'string') {
10449        swiper.el.swiper = null;
10450      }
10451      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.y)(swiper);
10452    }
10453    swiper.destroyed = true;
10454    return null;
10455  }
10456  static extendDefaults(newDefaults) {
10457    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(extendedDefaults, newDefaults);
10458  }
10459  static get extendedDefaults() {
10460    return extendedDefaults;
10461  }
10462  static get defaults() {
10463    return defaults;
10464  }
10465  static installModule(mod) {
10466    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];
10467    const modules = Swiper.prototype.__modules__;
10468    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {
10469      modules.push(mod);
10470    }
10471  }
10472  static use(module) {
10473    if (Array.isArray(module)) {
10474      module.forEach(m => Swiper.installModule(m));
10475      return Swiper;
10476    }
10477    Swiper.installModule(module);
10478    return Swiper;
10479  }
10480}
10481Object.keys(prototypes).forEach(prototypeGroup => {
10482  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {
10483    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
10484  });
10485});
10486Swiper.use([Resize, Observer]);
10487
10488
10489
10490
10491/***/ }),
10492
vendor: 13,873 bytes, lines 10493-10875
10493/***/ "./node_modules/swiper/shared/utils.mjs":
10494/*!**********************************************!*\
10495  !*** ./node_modules/swiper/shared/utils.mjs ***!
10496  \**********************************************/
10497/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
10498
10499"use strict";
10500__webpack_require__.r(__webpack_exports__);
10501/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10502/* harmony export */   a: function() { return /* binding */ setCSSProperty; },
10503/* harmony export */   b: function() { return /* binding */ elementParents; },
10504/* harmony export */   c: function() { return /* binding */ createElement; },
10505/* harmony export */   d: function() { return /* binding */ elementOffset; },
10506/* harmony export */   e: function() { return /* binding */ elementChildren; },
10507/* harmony export */   f: function() { return /* binding */ now; },
10508/* harmony export */   g: function() { return /* binding */ getSlideTransformEl; },
10509/* harmony export */   h: function() { return /* binding */ elementOuterSize; },
10510/* harmony export */   i: function() { return /* binding */ elementIndex; },
10511/* harmony export */   j: function() { return /* binding */ classesToTokens; },
10512/* harmony export */   k: function() { return /* binding */ getTranslate; },
10513/* harmony export */   l: function() { return /* binding */ elementTransitionEnd; },
10514/* harmony export */   m: function() { return /* binding */ makeElementsArray; },
10515/* harmony export */   n: function() { return /* binding */ nextTick; },
10516/* harmony export */   o: function() { return /* binding */ isObject; },
10517/* harmony export */   p: function() { return /* binding */ getRotateFix; },
10518/* harmony export */   q: function() { return /* binding */ elementStyle; },
10519/* harmony export */   r: function() { return /* binding */ elementNextAll; },
10520/* harmony export */   s: function() { return /* binding */ setInnerHTML; },
10521/* harmony export */   t: function() { return /* binding */ elementPrevAll; },
10522/* harmony export */   u: function() { return /* binding */ animateCSSModeScroll; },
10523/* harmony export */   v: function() { return /* binding */ showWarning; },
10524/* harmony export */   w: function() { return /* binding */ elementIsChildOf; },
10525/* harmony export */   x: function() { return /* binding */ extend; },
10526/* harmony export */   y: function() { return /* binding */ deleteProps; }
10527/* harmony export */ });
10528/* 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");
10529
10530
10531function classesToTokens(classes) {
10532  if (classes === void 0) {
10533    classes = '';
10534  }
10535  return classes.trim().split(' ').filter(c => !!c.trim());
10536}
10537
10538function deleteProps(obj) {
10539  const object = obj;
10540  Object.keys(object).forEach(key => {
10541    try {
10542      object[key] = null;
10543    } catch (e) {
10544      // no getter for object
10545    }
10546    try {
10547      delete object[key];
10548    } catch (e) {
10549      // something got wrong
10550    }
10551  });
10552}
10553function nextTick(callback, delay) {
10554  if (delay === void 0) {
10555    delay = 0;
10556  }
10557  return setTimeout(callback, delay);
10558}
10559function now() {
10560  return Date.now();
10561}
10562function getComputedStyle(el) {
10563  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10564  let style;
10565  if (window.getComputedStyle) {
10566    style = window.getComputedStyle(el, null);
10567  }
10568  if (!style && el.currentStyle) {
10569    style = el.currentStyle;
10570  }
10571  if (!style) {
10572    style = el.style;
10573  }
10574  return style;
10575}
10576function getTranslate(el, axis) {
10577  if (axis === void 0) {
10578    axis = 'x';
10579  }
10580  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10581  let matrix;
10582  let curTransform;
10583  let transformMatrix;
10584  const curStyle = getComputedStyle(el);
10585  if (window.WebKitCSSMatrix) {
10586    curTransform = curStyle.transform || curStyle.webkitTransform;
10587    if (curTransform.split(',').length > 6) {
10588      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');
10589    }
10590    // Some old versions of Webkit choke when 'none' is passed; pass
10591    // empty string instead in this case
10592    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
10593  } else {
10594    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
10595    matrix = transformMatrix.toString().split(',');
10596  }
10597  if (axis === 'x') {
10598    // Latest Chrome and webkits Fix
10599    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;
10600    // Crazy IE10 Matrix
10601    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);
10602    // Normal Browsers
10603    else curTransform = parseFloat(matrix[4]);
10604  }
10605  if (axis === 'y') {
10606    // Latest Chrome and webkits Fix
10607    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;
10608    // Crazy IE10 Matrix
10609    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);
10610    // Normal Browsers
10611    else curTransform = parseFloat(matrix[5]);
10612  }
10613  return curTransform || 0;
10614}
10615function isObject(o) {
10616  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
10617}
10618function isNode(node) {
10619  // eslint-disable-next-line
10620  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
10621    return node instanceof HTMLElement;
10622  }
10623  return node && (node.nodeType === 1 || node.nodeType === 11);
10624}
10625function extend() {
10626  const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
10627  const noExtend = ['__proto__', 'constructor', 'prototype'];
10628  for (let i = 1; i < arguments.length; i += 1) {
10629    const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
10630    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
10631      const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
10632      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
10633        const nextKey = keysArray[nextIndex];
10634        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
10635        if (desc !== undefined && desc.enumerable) {
10636          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
10637            if (nextSource[nextKey].__swiper__) {
10638              to[nextKey] = nextSource[nextKey];
10639            } else {
10640              extend(to[nextKey], nextSource[nextKey]);
10641            }
10642          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
10643            to[nextKey] = {};
10644            if (nextSource[nextKey].__swiper__) {
10645              to[nextKey] = nextSource[nextKey];
10646            } else {
10647              extend(to[nextKey], nextSource[nextKey]);
10648            }
10649          } else {
10650            to[nextKey] = nextSource[nextKey];
10651          }
10652        }
10653      }
10654    }
10655  }
10656  return to;
10657}
10658function setCSSProperty(el, varName, varValue) {
10659  el.style.setProperty(varName, varValue);
10660}
10661function animateCSSModeScroll(_ref) {
10662  let {
10663    swiper,
10664    targetPosition,
10665    side
10666  } = _ref;
10667  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10668  const startPosition = -swiper.translate;
10669  let startTime = null;
10670  let time;
10671  const duration = swiper.params.speed;
10672  swiper.wrapperEl.style.scrollSnapType = 'none';
10673  window.cancelAnimationFrame(swiper.cssModeFrameID);
10674  const dir = targetPosition > startPosition ? 'next' : 'prev';
10675  const isOutOfBound = (current, target) => {
10676    return dir === 'next' && current >= target || dir === 'prev' && current <= target;
10677  };
10678  const animate = () => {
10679    time = new Date().getTime();
10680    if (startTime === null) {
10681      startTime = time;
10682    }
10683    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
10684    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
10685    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
10686    if (isOutOfBound(currentPosition, targetPosition)) {
10687      currentPosition = targetPosition;
10688    }
10689    swiper.wrapperEl.scrollTo({
10690      [side]: currentPosition
10691    });
10692    if (isOutOfBound(currentPosition, targetPosition)) {
10693      swiper.wrapperEl.style.overflow = 'hidden';
10694      swiper.wrapperEl.style.scrollSnapType = '';
10695      setTimeout(() => {
10696        swiper.wrapperEl.style.overflow = '';
10697        swiper.wrapperEl.scrollTo({
10698          [side]: currentPosition
10699        });
10700      });
10701      window.cancelAnimationFrame(swiper.cssModeFrameID);
10702      return;
10703    }
10704    swiper.cssModeFrameID = window.requestAnimationFrame(animate);
10705  };
10706  animate();
10707}
10708function getSlideTransformEl(slideEl) {
10709  return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;
10710}
10711function elementChildren(element, selector) {
10712  if (selector === void 0) {
10713    selector = '';
10714  }
10715  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10716  const children = [...element.children];
10717  if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {
10718    children.push(...element.assignedElements());
10719  }
10720  if (!selector) {
10721    return children;
10722  }
10723  return children.filter(el => el.matches(selector));
10724}
10725function elementIsChildOfSlot(el, slot) {
10726  // Breadth-first search through all parent's children and assigned elements
10727  const elementsQueue = [slot];
10728  while (elementsQueue.length > 0) {
10729    const elementToCheck = elementsQueue.shift();
10730    if (el === elementToCheck) {
10731      return true;
10732    }
10733    elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));
10734  }
10735}
10736function elementIsChildOf(el, parent) {
10737  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10738  let isChild = parent.contains(el);
10739  if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {
10740    const children = [...parent.assignedElements()];
10741    isChild = children.includes(el);
10742    if (!isChild) {
10743      isChild = elementIsChildOfSlot(el, parent);
10744    }
10745  }
10746  return isChild;
10747}
10748function showWarning(text) {
10749  try {
10750    console.warn(text);
10751    return;
10752  } catch (err) {
10753    // err
10754  }
10755}
10756function createElement(tag, classes) {
10757  if (classes === void 0) {
10758    classes = [];
10759  }
10760  const el = document.createElement(tag);
10761  el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));
10762  return el;
10763}
10764function elementOffset(el) {
10765  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10766  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
10767  const box = el.getBoundingClientRect();
10768  const body = document.body;
10769  const clientTop = el.clientTop || body.clientTop || 0;
10770  const clientLeft = el.clientLeft || body.clientLeft || 0;
10771  const scrollTop = el === window ? window.scrollY : el.scrollTop;
10772  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
10773  return {
10774    top: box.top + scrollTop - clientTop,
10775    left: box.left + scrollLeft - clientLeft
10776  };
10777}
10778function elementPrevAll(el, selector) {
10779  const prevEls = [];
10780  while (el.previousElementSibling) {
10781    const prev = el.previousElementSibling; // eslint-disable-line
10782    if (selector) {
10783      if (prev.matches(selector)) prevEls.push(prev);
10784    } else prevEls.push(prev);
10785    el = prev;
10786  }
10787  return prevEls;
10788}
10789function elementNextAll(el, selector) {
10790  const nextEls = [];
10791  while (el.nextElementSibling) {
10792    const next = el.nextElementSibling; // eslint-disable-line
10793    if (selector) {
10794      if (next.matches(selector)) nextEls.push(next);
10795    } else nextEls.push(next);
10796    el = next;
10797  }
10798  return nextEls;
10799}
10800function elementStyle(el, prop) {
10801  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10802  return window.getComputedStyle(el, null).getPropertyValue(prop);
10803}
10804function elementIndex(el) {
10805  let child = el;
10806  let i;
10807  if (child) {
10808    i = 0;
10809    // eslint-disable-next-line
10810    while ((child = child.previousSibling) !== null) {
10811      if (child.nodeType === 1) i += 1;
10812    }
10813    return i;
10814  }
10815  return undefined;
10816}
10817function elementParents(el, selector) {
10818  const parents = []; // eslint-disable-line
10819  let parent = el.parentElement; // eslint-disable-line
10820  while (parent) {
10821    if (selector) {
10822      if (parent.matches(selector)) parents.push(parent);
10823    } else {
10824      parents.push(parent);
10825    }
10826    parent = parent.parentElement;
10827  }
10828  return parents;
10829}
10830function elementTransitionEnd(el, callback) {
10831  function fireCallBack(e) {
10832    if (e.target !== el) return;
10833    callback.call(el, e);
10834    el.removeEventListener('transitionend', fireCallBack);
10835  }
10836  if (callback) {
10837    el.addEventListener('transitionend', fireCallBack);
10838  }
10839}
10840function elementOuterSize(el, size, includeMargins) {
10841  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10842  if (includeMargins) {
10843    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'));
10844  }
10845  return el.offsetWidth;
10846}
10847function makeElementsArray(el) {
10848  return (Array.isArray(el) ? el : [el]).filter(e => !!e);
10849}
10850function getRotateFix(swiper) {
10851  return v => {
10852    if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {
10853      return v + 0.001;
10854    }
10855    return v;
10856  };
10857}
10858function setInnerHTML(el, html) {
10859  if (html === void 0) {
10860    html = '';
10861  }
10862  if (typeof trustedTypes !== 'undefined') {
10863    el.innerHTML = trustedTypes.createPolicy('html', {
10864      createHTML: s => s
10865    }).createHTML(html);
10866  } else {
10867    el.innerHTML = html;
10868  }
10869}
10870
10871
10872
10873
10874/***/ }),
10875
vendor: 6,926 bytes, lines 10876-10956
10876/***/ "./node_modules/swiper/swiper-bundle.mjs":
10877/*!***********************************************!*\
10878  !*** ./node_modules/swiper/swiper-bundle.mjs ***!
10879  \***********************************************/
10880/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
10881
10882"use strict";
10883__webpack_require__.r(__webpack_exports__);
10884/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10885/* harmony export */   Swiper: function() { return /* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S; },
10886/* harmony export */   "default": function() { return /* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S; }
10887/* harmony export */ });
10888/* harmony import */ var _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared/swiper-core.mjs */ "./node_modules/swiper/shared/swiper-core.mjs");
10889/* harmony import */ var _modules_virtual_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual.mjs */ "./node_modules/swiper/modules/virtual.mjs");
10890/* harmony import */ var _modules_keyboard_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard.mjs */ "./node_modules/swiper/modules/keyboard.mjs");
10891/* harmony import */ var _modules_mousewheel_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel.mjs */ "./node_modules/swiper/modules/mousewheel.mjs");
10892/* harmony import */ var _modules_navigation_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation.mjs */ "./node_modules/swiper/modules/navigation.mjs");
10893/* harmony import */ var _modules_pagination_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination.mjs */ "./node_modules/swiper/modules/pagination.mjs");
10894/* harmony import */ var _modules_scrollbar_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar.mjs */ "./node_modules/swiper/modules/scrollbar.mjs");
10895/* harmony import */ var _modules_parallax_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax.mjs */ "./node_modules/swiper/modules/parallax.mjs");
10896/* harmony import */ var _modules_zoom_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom.mjs */ "./node_modules/swiper/modules/zoom.mjs");
10897/* harmony import */ var _modules_controller_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/controller.mjs */ "./node_modules/swiper/modules/controller.mjs");
10898/* harmony import */ var _modules_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/a11y.mjs */ "./node_modules/swiper/modules/a11y.mjs");
10899/* harmony import */ var _modules_history_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/history.mjs */ "./node_modules/swiper/modules/history.mjs");
10900/* harmony import */ var _modules_hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/hash-navigation.mjs */ "./node_modules/swiper/modules/hash-navigation.mjs");
10901/* harmony import */ var _modules_autoplay_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/autoplay.mjs */ "./node_modules/swiper/modules/autoplay.mjs");
10902/* harmony import */ var _modules_thumbs_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/thumbs.mjs */ "./node_modules/swiper/modules/thumbs.mjs");
10903/* harmony import */ var _modules_free_mode_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/free-mode.mjs */ "./node_modules/swiper/modules/free-mode.mjs");
10904/* harmony import */ var _modules_grid_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/grid.mjs */ "./node_modules/swiper/modules/grid.mjs");
10905/* harmony import */ var _modules_manipulation_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/manipulation.mjs */ "./node_modules/swiper/modules/manipulation.mjs");
10906/* harmony import */ var _modules_effect_fade_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/effect-fade.mjs */ "./node_modules/swiper/modules/effect-fade.mjs");
10907/* harmony import */ var _modules_effect_cube_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/effect-cube.mjs */ "./node_modules/swiper/modules/effect-cube.mjs");
10908/* harmony import */ var _modules_effect_flip_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/effect-flip.mjs */ "./node_modules/swiper/modules/effect-flip.mjs");
10909/* harmony import */ var _modules_effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/effect-coverflow.mjs */ "./node_modules/swiper/modules/effect-coverflow.mjs");
10910/* harmony import */ var _modules_effect_creative_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/effect-creative.mjs */ "./node_modules/swiper/modules/effect-creative.mjs");
10911/* harmony import */ var _modules_effect_cards_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/effect-cards.mjs */ "./node_modules/swiper/modules/effect-cards.mjs");
10912/**
10913 * Swiper 11.2.10
10914 * Most modern mobile touch slider and framework with hardware accelerated transitions
10915 * https://swiperjs.com
10916 *
10917 * Copyright 2014-2025 Vladimir Kharlampidi
10918 *
10919 * Released under the MIT License
10920 *
10921 * Released on: June 28, 2025
10922 */
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949// Swiper Class
10950const 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"]];
10951_shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S.use(modules);
10952
10953
10954
10955
10956/***/ })
vendor: 3,051 bytes, lines 10956-11027
10956
10957
10958/******/ 	});
10959/************************************************************************/
10960/******/ 	// The module cache
10961/******/ 	var __webpack_module_cache__ = {};
10962/******/ 	
10963/******/ 	// The require function
10964/******/ 	function __webpack_require__(moduleId) {
10965/******/ 		// Check if module is in cache
10966/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
10967/******/ 		if (cachedModule !== undefined) {
10968/******/ 			return cachedModule.exports;
10969/******/ 		}
10970/******/ 		// Create a new module (and put it into the cache)
10971/******/ 		var module = __webpack_module_cache__[moduleId] = {
10972/******/ 			// no module.id needed
10973/******/ 			// no module.loaded needed
10974/******/ 			exports: {}
10975/******/ 		};
10976/******/ 	
10977/******/ 		// Execute the module function
10978/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10979/******/ 	
10980/******/ 		// Return the exports of the module
10981/******/ 		return module.exports;
10982/******/ 	}
10983/******/ 	
10984/************************************************************************/
10985/******/ 	/* webpack/runtime/define property getters */
10986/******/ 	!function() {
10987/******/ 		// define getter functions for harmony exports
10988/******/ 		__webpack_require__.d = function(exports, definition) {
10989/******/ 			for(var key in definition) {
10990/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
10991/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
10992/******/ 				}
10993/******/ 			}
10994/******/ 		};
10995/******/ 	}();
10996/******/ 	
10997/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
10998/******/ 	!function() {
10999/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
11000/******/ 	}();
11001/******/ 	
11002/******/ 	/* webpack/runtime/make namespace object */
11003/******/ 	!function() {
11004/******/ 		// define __esModule on exports
11005/******/ 		__webpack_require__.r = function(exports) {
11006/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
11007/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
11008/******/ 			}
11009/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
11010/******/ 		};
11011/******/ 	}();
11012/******/ 	
11013/************************************************************************/
11014var __webpack_exports__ = {};
11015// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
11016!function() {
11017/*!**********************************************************************!*\
11018  !*** ./cartridges/org_marykay/cartridge/client/default/js/slider.js ***!
11019  \**********************************************************************/
11020var processInclude = __webpack_require__(/*! base/util */ "./cartridges/app_storefront_base/cartridge/client/default/js/util.js");
11021$(document).ready(function () {
11022  processInclude(__webpack_require__(/*! ./components/swiper */ "./cartridges/org_marykay/cartridge/client/default/js/components/swiper.js"));
11023});
11024}();
11025/******/ })()
11026;
11027//# sourceMappingURL=slider.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.