PageSourceSearch

https://www.britishgardencentres.com/wp-content/themes/britishgardencentres.com/public/build/js/app.js

js britishgardencentres.com collected 2026-10-03 22:43:44 UTC 510,508 bytes, 11,588 lines download raw bytes

1(self["webpackChunkaffinity_wordpress"] = self["webpackChunkaffinity_wordpress"] || []).push([["/js/app"],{
2
3/***/ "./wp-content/themes/britishgardencentres.com/public/js/app.js":
4/*!*********************************************************************!*\
5  !*** ./wp-content/themes/britishgardencentres.com/public/js/app.js ***!
6  \*********************************************************************/
7/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
9"use strict";
10__webpack_require__.r(__webpack_exports__);
11/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
12/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
13/* harmony import */ var _svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./svg */ "./wp-content/themes/britishgardencentres.com/public/js/svg.js");
14/* harmony import */ var _svg__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_svg__WEBPACK_IMPORTED_MODULE_1__);
15/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.mjs");
16/* harmony import */ var swiper_modules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! swiper/modules */ "./node_modules/swiper/modules/index.mjs");
17/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! swiper/css */ "./node_modules/swiper/swiper.css");
18/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! swiper/css/navigation */ "./node_modules/swiper/modules/navigation.css");
19/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! swiper/css/pagination */ "./node_modules/swiper/modules/pagination.css");
20/* harmony import */ var bootstrap_dist_js_bootstrap_bundle_min_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! bootstrap/dist/js/bootstrap.bundle.min.js */ "./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js");
21/* harmony import */ var bootstrap_dist_js_bootstrap_bundle_min_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(bootstrap_dist_js_bootstrap_bundle_min_js__WEBPACK_IMPORTED_MODULE_7__);
22/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
23function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
24function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
26function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
27function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
28function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
29
30
31
32
33
34
35
36
37
38var swiper = new swiper__WEBPACK_IMPORTED_MODULE_2__["default"](".mySwiper", {
39  modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Pagination, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Navigation],
40  spaceBetween: 15,
41  slidesPerView: 2,
42  loop: false,
43  autoplay: {
44    delay: 3000
45  },
46  breakpoints: {
47    768: {
48      slidesPerView: 3
49    },
50    992: {
51      slidesPerView: 3
52    }
53  },
54  navigation: {
55    nextEl: '.next',
56    prevEl: '.prev'
57  }
58});
59$(function () {
60  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.hero', {
61    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Navigation, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Pagination],
62    spaceBetween: 15,
63    slidesPerView: 1,
64    loop: true,
65    autoplay: {
66      delay: 6000
67    },
68    pagination: {
69      el: '.pagination'
70    },
71    navigation: {
72      nextEl: '.hero-next',
73      prevEl: '.hero-prev'
74    }
75  });
76  var heroCarouselThumbsSwiper = new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.hero-carousel-thumbs', {
77    slidesPerView: 4,
78    spaceBetween: 10,
79    freeMode: true,
80    watchSlidesProgress: true,
81    breakpoints: {
82      1200: {
83        slidesPerView: 5
84      }
85    }
86  });
87  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.hero-carousel', {
88    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Thumbs, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Navigation, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Pagination],
89    thumbs: {
90      swiper: heroCarouselThumbsSwiper
91    },
92    spaceBetween: 15,
93    slidesPerView: 1,
94    loop: true,
95    autoplay: {
96      delay: 5000
97    },
98    pagination: {
99      el: '.pagination'
100    },
101    navigation: {
102      nextEl: '.next',
103      prevEl: '.prev'
104    }
105  });
106  var thumbsSwiper = new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('#single-product-thumb-slider.swiper', {
107    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Navigation],
108    slidesPerView: 4,
109    slidesPerGroup: 4,
110    spaceBetween: 10,
111    freeMode: true,
112    watchSlidesProgress: true
113  });
114  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('#single-product-slider.swiper', {
115    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Thumbs, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Pagination, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Navigation],
116    thumbs: {
117      swiper: thumbsSwiper,
118      autoScroll: true
119    },
120    pagination: {
121      el: '.single-product-thumb-slider-pagination'
122    },
123    navigation: {
124      nextEl: '.single-product-thumb-slider-next',
125      prevEl: '.single-product-thumb-slider-prev'
126    }
127  });
128  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.usp', {
129    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay],
130    spaceBetween: 15,
131    slidesPerView: 1,
132    loop: true,
133    autoplay: {
134      delay: 3000
135    },
136    breakpoints: {
137      768: {
138        slidesPerView: 2
139      },
140      992: {
141        slidesPerView: 3
142      }
143    }
144  });
145  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.logos-swiper', {
146    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Pagination],
147    spaceBetween: 30,
148    slidesPerView: 1,
149    centerInsufficientSlides: true,
150    loop: true,
151    loopAddBlankSlides: true,
152    autoplay: {
153      delay: 3000
154    },
155    pagination: {
156      el: '.pagination',
157      clickable: true,
158      loopAddBlankSlides: true
159    },
160    breakpoints: {
161      500: {
162        slidesPerView: 2,
163        slidesPerGroup: 2
164      },
165      768: {
166        slidesPerView: 3,
167        slidesPerGroup: 3
168      },
169      992: {
170        slidesPerView: 6,
171        slidesPerGroup: 6
172      }
173    }
174  });
175  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('#single-product-slider.swiper', {
176    thumbs: {
177      autoScrollOffset: 3,
178      swiper: thumbsSwiper
179    }
180  });
181  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.usps-swiper', {
182    slidesPerView: 3,
183    spaceBetween: 30,
184    loop: true,
185    autoplay: {
186      delay: 3000
187    },
188    breakpoints: {
189      320: {
190        slidesPerView: 1
191      },
192      640: {
193        slidesPerView: 2
194      },
195      1400: {
196        slidesPerView: 3
197      }
198    }
199  });
200  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.best-sellers', {
201    slidesPerView: 1,
202    slidesPerGroup: 1,
203    navigation: {
204      nextEl: '.swiper-button-next',
205      prevEl: '.swiper-button-prev'
206    },
207    breakpoints: {
208      576: {
209        slidesPerView: 2,
210        slidesPerGroup: 2,
211        grid: {
212          rows: 2,
213          fill: 'row'
214        }
215      },
216      992: {
217        slidesPerView: 3,
218        slidesPerGroup: 3,
219        grid: {
220          rows: 2,
221          fill: 'row'
222        }
223      },
224      1200: {
225        slidesPerView: 4,
226        slidesPerGroup: 4,
227        grid: {
228          rows: 2,
229          fill: 'row'
230        }
231      }
232    }
233  });
234  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.latest-posts', {
235    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Pagination],
236    spaceBetween: 30,
237    slidesPerView: 1,
238    loop: true,
239    autoplay: {
240      delay: 3000
241    },
242    breakpoints: {
243      500: {
244        slidesPerView: 2,
245        spaceBetween: 30
246      },
247      768: {
248        slidesPerView: 3,
249        spaceBetween: 30
250      }
251    },
252    pagination: {
253      el: '.pagination'
254    }
255  });
256  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.related-posts', {
257    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay],
258    spaceBetween: 30,
259    slidesPerView: 1,
260    loop: true,
261    autoplay: {
262      delay: 3000
263    },
264    breakpoints: {
265      500: {
266        slidesPerView: 2,
267        spaceBetween: 30
268      },
269      991: {
270        slidesPerView: 3,
271        spaceBetween: 30
272      },
273      1200: {
274        slidesPerView: 4,
275        spaceBetween: 30
276      }
277    }
278  });
279  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.quotes', {
280    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay],
281    spaceBetween: 30,
282    slidesPerView: 1,
283    loop: true,
284    autoplay: {
285      delay: 3000
286    },
287    breakpoints: {
288      500: {
289        slidesPerView: 2
290      },
291      768: {
292        slidesPerView: 3
293      }
294    }
295  });
296  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.full-width-quotes', {
297    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Navigation],
298    spaceBetween: 30,
299    slidesPerView: 1,
300    loop: true,
301    autoplay: {
302      delay: 4000
303    },
304    navigation: {
305      nextEl: '.next',
306      prevEl: '.prev'
307    }
308  });
309  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.swiper.home-best-buys', {
310    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Navigation],
311    spaceBetween: 30,
312    slidesPerView: 1,
313    loop: true,
314    autoplay: {
315      delay: 3000
316    },
317    breakpoints: {
318      768: {
319        slidesPerView: 2,
320        spaceBetween: 30
321      }
322    },
323    navigation: {
324      nextEl: '.next',
325      prevEl: '.prev'
326    }
327  });
328  new swiper__WEBPACK_IMPORTED_MODULE_2__["default"]('.featured-events-swiper', {
329    modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Autoplay, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Navigation, swiper_modules__WEBPACK_IMPORTED_MODULE_3__.Pagination],
330    slidesPerView: 1,
331    spaceBetween: 30,
332    loop: true,
333    autoplay: {
334      delay: 5000
335    },
336    pagination: {
337      el: '.pagination'
338    },
339    navigation: {
340      nextEl: '.events-next',
341      prevEl: '.events-prev'
342    }
343  });
344
345  // when clicking best-sellers-nex and best-sellers-next trigger click event on swiper-button-next and swiper-button-prev
346  var bestSellersNext = document.querySelector('.best-sellers-next');
347  var bestSellersPrev = document.querySelector('.best-sellers-prev');
348  if (bestSellersNext) {
349    bestSellersNext.addEventListener('click', function () {
350      document.querySelector('.swiper-button-next').click();
351    });
352  }
353  if (bestSellersPrev) {
354    bestSellersPrev.addEventListener('click', function () {
355      document.querySelector('.swiper-button-prev').click();
356    });
357  }
358
359  // Show basket-popup when hovering over the basket icon
360
361  var basketIcon = document.querySelector('.basket-icon');
362  var basketPopup = document.querySelector('.basket-popup');
363  if (basketIcon) {
364    basketIcon.addEventListener('mouseenter', function () {
365      basketPopup ? basketPopup.classList.add('d-md-block') : '';
366    });
367    basketIcon.addEventListener('mouseleave', function () {
368      basketPopup ? basketPopup.classList.remove('d-md-block') : '';
369    });
370    basketPopup.addEventListener('mouseenter', function () {
371      basketPopup ? basketPopup.classList.add('d-md-block') : '';
372    });
373    basketPopup.addEventListener('mouseleave', function () {
374      basketPopup ? basketPopup.classList.remove('d-md-block') : '';
375    });
376  }
377
378  // Toggle mobile menu
379  var menuIcon = document.querySelector('.nav-container > button.mobile-menu-btn');
380  if (menuIcon) {
381    menuIcon.addEventListener('click', function () {
382      if (menuIcon.classList.contains('active')) {
383        menuIcon.classList.remove('active');
384        document.querySelector('#menu-main-menu').classList.remove('d-block');
385        document.querySelector('#menu-main-menu').classList.add('d-none');
386      } else {
387        menuIcon.classList.add('active');
388        document.querySelector('#menu-main-menu').classList.remove('d-none');
389        document.querySelector('#menu-main-menu').classList.add('d-block');
390      }
391    });
392  }
393  var menuButtons = document.querySelectorAll('.menu-icon');
394  if (menuButtons) {
395    menuButtons.forEach(function (menuButton) {
396      menuButton.addEventListener('click', function (event) {
397        event.preventDefault();
398        document.querySelector('header .mobile').classList.toggle('active');
399      });
400    });
401  }
402  var subMenus = document.querySelectorAll('.menu-item-has-children');
403  var mediaQuery = window.matchMedia('(max-width: 991px)');
404  if (mediaQuery.matches && subMenus) {
405    subMenus.forEach(function (subMenu) {
406      var subMenuContainer = subMenu.querySelector(':scope > .sub-menu');
407      var subMenuButton = subMenu.querySelector(':scope > a');
408      var goBackListItem = document.createElement('li');
409      var goBackButton = document.createElement('a');
410      goBackListItem.classList.add('go-back');
411      goBackButton.innerHTML = "<span class=\"chevron-left-mini go-back-icon\"></span><span>".concat(subMenuButton.innerText, "</span>");
412      goBackButton.href = '';
413      if (subMenuContainer) {
414        goBackListItem.appendChild(goBackButton);
415        subMenuContainer.prepend(goBackListItem);
416        subMenuButton.addEventListener('click', function (event) {
417          event.preventDefault();
418          subMenuContainer.classList.toggle('active');
419        });
420        goBackButton.addEventListener('click', function (event) {
421          event.preventDefault();
422          subMenuContainer.classList.remove('active');
423        });
424      }
425    });
426  }
427});
428document.addEventListener('DOMContentLoaded', function () {
429  var cookieAlert = document.querySelector(".cookie-alert");
430  var acceptCookies = document.querySelector(".accept-cookies");
431  if (getCookie("acceptCookies") !== "true") {
432    if (cookieAlert) {
433      cookieAlert.classList.add("show");
434    }
435  }
436  if (acceptCookies) {
437    acceptCookies.addEventListener("click", function () {
438      setCookie("acceptCookies", true, 14);
439      if (cookieAlert) {
440        cookieAlert.classList.remove("show");
441      }
442    });
443  }
444
445  // Add custom required tag to contact form fields
446  var labels = document.querySelectorAll('.frm_primary_label');
447  if (labels) {
448    labels.forEach(function (label) {
449      if (label.querySelector(':scope > .frm_required').childNodes.length > 0) {
450        var inputEl = label.nextElementSibling;
451        if (inputEl instanceof HTMLInputElement || inputEl instanceof HTMLTextAreaElement) {
452          var oldOuterHTML = inputEl.outerHTML;
453          var newOuterHTML = "<div class=\"required-container has-input\">".concat(oldOuterHTML, "<span class=\"required\">Required</span></div>");
454          inputEl.outerHTML = newOuterHTML;
455        } else {
456          var _oldOuterHTML = label.outerHTML;
457          var _newOuterHTML = "<div class=\"required-container\">".concat(_oldOuterHTML, "<span class=\"required\">Required</span></div>");
458          label.outerHTML = _newOuterHTML;
459        }
460      }
461    });
462  }
463  headerBasketAjax();
464});
465function setCookie(cname, cvalue, exdays) {
466  var d = new Date();
467  d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
468  var expires = "expires=" + d.toUTCString();
469  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
470}
471function getCookie(cname) {
472  var name = cname + "=";
473  var decodedCookie = decodeURIComponent(document.cookie);
474  var ca = decodedCookie.split(';');
475  for (var i = 0; i < ca.length; i++) {
476    var c = ca[i];
477    while (c.charAt(0) === ' ') {
478      c = c.substring(1);
479    }
480    if (c.indexOf(name) === 0) {
481      return c.substring(name.length, c.length);
482    }
483  }
484  return "";
485}
486function makeSameHeightAsTallest(el, maxHeight) {
487  // Make all history carousel text containers height of the tallest item
488  var contentItems = document.querySelectorAll(el);
489  var contentItemHeights = [];
490  contentItems.forEach(function (item) {
491    contentItemHeights.push(item.clientHeight);
492  });
493  var tallestNewsItem = Math.max.apply(null, contentItemHeights);
494  if (maxHeight && maxHeight < tallestNewsItem) {
495    tallestNewsItem = maxHeight;
496  }
497  contentItems.forEach(function (item) {
498    item.style.height = tallestNewsItem + 'px';
499  });
500}
501function headerBasketAjax() {
502  $.ajax({
503    url: '/shop/static/mini-basket.html',
504    success: function success(data) {
505      var $headerCart = $('#mini-basket');
506      $headerCart.html(data);
507    }
508  });
509}
510$(function () {
511  var svgs = _toConsumableArray(document.getElementsByClassName('svg'));
512  svgs.forEach(function (element) {
513    var $element = $(element);
514    var imgID = $element.attr('id');
515    var imgClass = $element.attr('class');
516    var imgURL = $element.attr('src');
517    $.get(imgURL, function (data) {
518      var $svg = $(data).find('svg');
519      if (typeof imgID !== 'undefined') {
520        $svg = $svg.attr('id', imgID);
521      }
522      if (typeof imgClass !== 'undefined') {
523        $svg = $svg.attr('class', imgClass + ' replaced-svg');
524      }
525      $svg = $svg.removeAttr('xmlns:a');
526      if (!$svg.attr('viewBox') && $svg.attr('height') && $svg.attr('width')) {
527        $svg.attr('viewBox', "0 0 ".concat($svg.attr('height'), " ").concat($svg.attr('width')));
528      }
529      $element.replaceWith($svg);
530    }, 'xml');
531  });
532});
533document.addEventListener("DOMContentLoaded", function () {
534  var prefix = "81169";
535  var isLive = window.location.hostname === "www.britishgardencentres.com";
536  var initCustomCardField = function initCustomCardField() {
537    var hiddenInput = isLive ? document.querySelector("#field_fuirm4, #frm_desc_field_fuirm43, #frm_desc_field_fuirm44, #field_fuirm45") : document.querySelector("#field_fuirm4, #field_fuirm42, #field_fuirm45");
538    var fieldWrapper = isLive ? document.querySelector("#frm_field_595_container, frm_field_1133_container, frm_field_1147_container, #frm_field_1172_container") : document.querySelector("#frm_field_256_container, #frm_field_291_container, #frm_field_1172_container");
539    if (!hiddenInput || !fieldWrapper || document.querySelector("#card_custom_wrapper")) {
540      setTimeout(initCustomCardField, 500);
541      return;
542    }
543    hiddenInput.style.display = "none";
544    var container = document.createElement("div");
545    container.id = "card_custom_wrapper";
546    container.style.display = "flex";
547    container.style.gap = "8px";
548    var prefixInput = document.createElement("input");
549    prefixInput.type = "text";
550    prefixInput.disabled = true;
551    prefixInput.value = prefix;
552    prefixInput.style.setProperty("width", "100px", "important");
553    var userInput = document.createElement("input");
554    userInput.type = "text";
555    userInput.id = "card_suffix";
556    userInput.placeholder = "Enter last digits";
557    userInput.inputMode = "numeric";
558    userInput.minLength = 7;
559    userInput.maxLength = 7;
560    userInput.style.setProperty("width", "100%", "important");
561    var errorMsg = document.createElement("div");
562    errorMsg.id = "card_error_msg";
563    errorMsg.style.color = "red";
564    errorMsg.style.fontSize = "1.3rem";
565    errorMsg.style.display = "none";
566    errorMsg.textContent = "Card number must be valid.";
567    var minLengthMsg = document.createElement("div");
568    minLengthMsg.id = "card_minlength_msg";
569    minLengthMsg.style.color = "red";
570    minLengthMsg.style.fontSize = "1.3rem";
571    minLengthMsg.style.display = "none";
572    minLengthMsg.textContent = "Card number must be at least 7 digits.";
573    userInput.addEventListener("input", function () {
574      var value = userInput.value.replace(/\D/g, '');
575      hiddenInput.value = prefix + value;
576    });
577    container.appendChild(prefixInput);
578    container.appendChild(userInput);
579    fieldWrapper.appendChild(container);
580    fieldWrapper.appendChild(errorMsg);
581    fieldWrapper.appendChild(minLengthMsg);
582    var form = document.getElementById("form_sign-up-to-family-card-april-2025");
583    if (form) {
584      form.addEventListener("submit", function (e) {
585        var val = userInput.value.trim();
586        var hasError = false;
587        errorMsg.style.display = "none";
588        minLengthMsg.style.display = "none";
589        if (!val) {
590          errorMsg.style.display = "block";
591          hasError = true;
592        } else if (val.length < 7) {
593          minLengthMsg.style.display = "block";
594          hasError = true;
595        }
596        if (hasError) {
597          e.preventDefault();
598          e.stopPropagation();
599        }
600      });
601    }
602  };
603  initCustomCardField();
604});
605document.addEventListener('DOMContentLoaded', function () {
606  var addressLookupForms = [{
607    search: 'item_meta[593]',
608    line_1: 'item_meta[590]',
609    town: 'item_meta[591]',
610    county: 'item_meta[592]',
611    postcode: 'item_meta[593]'
612  }, {
613    search: 'item_meta[1128]',
614    line_1: 'item_meta[1129]',
615    town: 'item_meta[1130]',
616    county: 'item_meta[1131]',
617    postcode: 'item_meta[1128]'
618  }, {
619    search: 'item_meta[1142]',
620    line_1: 'item_meta[1143]',
621    town: 'item_meta[1144]',
622    county: 'item_meta[1145]',
623    postcode: 'item_meta[1142]'
624  }];
625  addressLookupForms.forEach(function (dom) {
626    var inputField = document.getElementsByName(dom.search)[0];
627    if (!inputField) return;
628    inputField.addEventListener('focus', function initAddressLookup() {
629      if (inputField.dataset.addressLookupInitiated) return;
630      new clickToAddress({
631        accessToken: 'fb68f-7f33a-b655b-0a361',
632        dom: dom,
633        domMode: 'name'
634      });
635      inputField.dataset.addressLookupInitiated = 'true';
636    });
637  });
638});
639document.addEventListener('click', function (event) {
640  if (event.target.closest('[data-q-up]')) {
641    var btnUp = event.target.closest('[data-q-up]');
642    var container = btnUp.closest('.product-quantity');
643    var input = container.querySelector('input[name="quantity"]');
644    if (input) {
645      var current = parseInt(input.value) || 0;
646      input.value = current + 1;
647    }
648  } else if (event.target.closest('[data-q-down]')) {
649    var btnDown = event.target.closest('[data-q-down]');
650    var _container = btnDown.closest('.product-quantity');
651    var _input = _container.querySelector('input[name="quantity"]');
652    if (_input) {
653      var _current = parseInt(_input.value) || 0;
654      var min = _input.hasAttribute('min') ? parseInt(_input.min) : 1;
655      if (_current > min) {
656        _input.value = _current - 1;
657      }
658    }
659  }
660});
661
662/***/ }),
663
664/***/ "./wp-content/themes/britishgardencentres.com/public/js/svg.js":
665/*!*********************************************************************!*\
666  !*** ./wp-content/themes/britishgardencentres.com/public/js/svg.js ***!
667  \*********************************************************************/
668/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
669
670/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
671function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
672function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
673function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
674function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
675function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
676function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
677$(function () {
678  var svgs = _toConsumableArray(document.getElementsByClassName('svg'));
679  svgs.forEach(function (element) {
680    var $element = $(element);
681    var imgID = $element.attr('id');
682    var imgClass = $element.attr('class');
683    var imgURL = $element.attr('src');
684    $.get(imgURL, function (data) {
685      var $svg = $(data).find('svg');
686      if (typeof imgID !== 'undefined') {
687        $svg = $svg.attr('id', imgID);
688      }
689      if (typeof imgClass !== 'undefined') {
690        $svg = $svg.attr('class', imgClass + ' replaced-svg');
691      }
692      $svg = $svg.removeAttr('xmlns:a');
693      if (!$svg.attr('viewBox') && $svg.attr('height') && $svg.attr('width')) {
694        $svg.attr('viewBox', "0 0 ".concat($svg.attr('height'), " ").concat($svg.attr('width')));
695      }
696      $element.replaceWith($svg);
697    }, 'xml');
698  });
699});
700
701/***/ }),
702
vendor: 103,688 bytes, lines 703-791
703/***/ "./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js":
704/*!****************************************************************!*\
705  !*** ./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js ***!
706  \****************************************************************/
707/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
708
709/* provided dependency */ var __webpack_provided_window_dot_jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
710/*!
711  * Bootstrap v5.3.2 (https://getbootstrap.com/)
712  * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
713  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
714  */
715!function(t,e){ true?module.exports=e():0}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>__webpack_provided_window_dot_jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?__webpack_provided_window_dot_jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.2"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?n(i.trim()):null}return e},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=be(O),k=Fe(O)===Xt,L=[zt,Rt].indexOf(x)>=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function mi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?fi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},fi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:pe(t)?Je(t):t.contextElement?Je(t.contextElement):[],popper:Je(e)};var r,c,u=function(t){var e=ui(t);return de.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled})),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(pi(e,i)){a.rects={reference:di(e,$e(i),"fixed"===a.options.strategy),popper:Ce(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!pi(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var gi=mi(),_i=mi({defaultModifiers:[Re,ci,Be,_e]}),bi=mi({defaultModifiers:[Re,ci,Be,_e,li,si,hi,je,ai]});const vi=Object.freeze(Object.defineProperty({__proto__:null,afterMain:ae,afterRead:se,afterWrite:he,applyStyles:_e,arrow:je,auto:Kt,basePlacements:Qt,beforeMain:oe,beforeRead:ie,beforeWrite:le,bottom:Rt,clippingParents:Ut,computeStyles:Be,createPopper:bi,createPopperBase:gi,createPopperLite:_i,detectOverflow:ii,end:Yt,eventListeners:Re,flip:si,hide:ai,left:Vt,main:re,modifierPhases:de,offset:li,placements:ee,popper:Jt,popperGenerator:mi,popperOffsets:ci,preventOverflow:hi,read:ne,reference:Zt,right:qt,start:Xt,top:zt,variationPlacements:te,viewport:Gt,write:ce},Symbol.toStringTag,{value:"Module"})),yi="dropdown",wi=".bs.dropdown",Ai=".data-api",Ei="ArrowUp",Ti="ArrowDown",Ci=`hide${wi}`,Oi=`hidden${wi}`,xi=`show${wi}`,ki=`shown${wi}`,Li=`click${wi}${Ai}`,Si=`keydown${wi}${Ai}`,Di=`keyup${wi}${Ai}`,$i="show",Ii='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Ni=`${Ii}.${$i}`,Pi=".dropdown-menu",Mi=p()?"top-end":"top-start",ji=p()?"top-start":"top-end",Fi=p()?"bottom-end":"bottom-start",Hi=p()?"bottom-start":"bottom-end",Wi=p()?"left-start":"right-start",Bi=p()?"right-start":"left-start",zi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ri={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qi extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=z.next(this._element,Pi)[0]||z.prev(this._element,Pi)[0]||z.findOne(Pi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return zi}static get DefaultType(){return Ri}static get NAME(){return yi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(l(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!N.trigger(this._element,xi,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add($i),this._element.classList.add($i),N.trigger(this._element,ki,t)}}hide(){if(l(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!N.trigger(this._element,Ci,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._popper&&this._popper.destroy(),this._menu.classList.remove($i),this._element.classList.remove($i),this._element.setAttribute("aria-expanded","false"),F.removeDataAttribute(this._menu,"popper"),N.trigger(this._element,Oi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${yi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===vi)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:o(this._config.reference)?t=r(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=bi(t,this._menu,e)}_isShown(){return this._menu.classList.contains($i)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Wi;if(t.classList.contains("dropstart"))return Bi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ji:Mi:e?Hi:Fi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=".dropdown-toggle",zs=`:not(${Bs})`,Rs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`,Vs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Ks extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return z.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(Bs,Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(qs)?t:z.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,Rs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Ks.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(Vs))Ks.getOrCreateInstance(t)})),m(Ks);const Qs=".bs.toast",Xs=`mouseover${Qs}`,Ys=`mouseout${Qs}`,Us=`focusin${Qs}`,Gs=`focusout${Qs}`,Js=`hide${Qs}`,Zs=`hidden${Qs}`,to=`show${Qs}`,eo=`shown${Qs}`,io="hide",no="show",so="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:5e3};class ao extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ro}static get DefaultType(){return oo}static get NAME(){return"toast"}show(){N.trigger(this._element,to).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(io),d(this._element),this._element.classList.add(no,so),this._queueCallback((()=>{this._element.classList.remove(so),N.trigger(this._element,eo),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Js).defaultPrevented||(this._element.classList.add(so),this._queueCallback((()=>{this._element.classList.add(io),this._element.classList.remove(so,no),N.trigger(this._element,Zs)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(no),super.dispose()}isShown(){return this._element.classList.contains(no)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Xs,(t=>this._onInteraction(t,!0))),N.on(this._element,Ys,(t=>this._onInteraction(t,!1))),N.on(this._element,Us,(t=>this._onInteraction(t,!0))),N.on(this._element,Gs,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ao.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ao),m(ao),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Ks,Toast:ao,Tooltip:cs}}));
716//# sourceMappingURL=bootstrap.bundle.min.js.map
717
718/***/ }),
719
720/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/modules/navigation.css":
721/*!**************************************************************************************************************************************************************************************************************!*\
722  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/modules/navigation.css ***!
723  \**************************************************************************************************************************************************************************************************************/
724/***/ ((module, __webpack_exports__, __webpack_require__) => {
725
726"use strict";
727__webpack_require__.r(__webpack_exports__);
728/* harmony export */ __webpack_require__.d(__webpack_exports__, {
729/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
730/* harmony export */ });
731/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
732/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
733// Imports
734
735var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
736// Module
737___CSS_LOADER_EXPORT___.push([module.id, ":root {\n  --swiper-navigation-size: 44px;\n  /*\n  --swiper-navigation-top-offset: 50%;\n  --swiper-navigation-sides-offset: 10px;\n  --swiper-navigation-color: var(--swiper-theme-color);\n  */\n}\n.swiper-button-prev,\n.swiper-button-next {\n  position: absolute;\n  top: var(--swiper-navigation-top-offset, 50%);\n  width: calc(var(--swiper-navigation-size) / 44 * 27);\n  height: var(--swiper-navigation-size);\n  margin-top: calc(0px - (var(--swiper-navigation-size) / 2));\n  z-index: 10;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: var(--swiper-navigation-color, var(--swiper-theme-color));\n}\n.swiper-button-prev.swiper-button-disabled,\n.swiper-button-next.swiper-button-disabled {\n  opacity: 0.35;\n  cursor: auto;\n  pointer-events: none;\n}\n.swiper-button-prev.swiper-button-hidden,\n.swiper-button-next.swiper-button-hidden {\n  opacity: 0;\n  cursor: auto;\n  pointer-events: none;\n}\n.swiper-navigation-disabled .swiper-button-prev,\n.swiper-navigation-disabled .swiper-button-next {\n  display: none !important;\n}\n.swiper-button-prev svg,\n.swiper-button-next svg {\n  width: 100%;\n  height: 100%;\n  -o-object-fit: contain;\n     object-fit: contain;\n  transform-origin: center;\n}\n.swiper-rtl .swiper-button-prev svg,\n.swiper-rtl .swiper-button-next svg {\n  transform: rotate(180deg);\n}\n.swiper-button-prev,\n.swiper-rtl .swiper-button-next {\n  left: var(--swiper-navigation-sides-offset, 10px);\n  right: auto;\n}\n.swiper-button-next,\n.swiper-rtl .swiper-button-prev {\n  right: var(--swiper-navigation-sides-offset, 10px);\n  left: auto;\n}\n.swiper-button-lock {\n  display: none;\n}\n/* Navigation font start */\n.swiper-button-prev:after,\n.swiper-button-next:after {\n  font-family: swiper-icons;\n  font-size: var(--swiper-navigation-size);\n  text-transform: none !important;\n  letter-spacing: 0;\n  font-variant: initial;\n  line-height: 1;\n}\n.swiper-button-prev:after,\n.swiper-rtl .swiper-button-next:after {\n  content: 'prev';\n}\n.swiper-button-next,\n.swiper-rtl .swiper-button-prev {\n  right: var(--swiper-navigation-sides-offset, 10px);\n  left: auto;\n}\n.swiper-button-next:after,\n.swiper-rtl .swiper-button-prev:after {\n  content: 'next';\n}\n/* Navigation font end */\n", ""]);
738// Exports
739/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
740
741
742/***/ }),
743
744/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/modules/pagination.css":
745/*!**************************************************************************************************************************************************************************************************************!*\
746  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/modules/pagination.css ***!
747  \**************************************************************************************************************************************************************************************************************/
748/***/ ((module, __webpack_exports__, __webpack_require__) => {
749
750"use strict";
751__webpack_require__.r(__webpack_exports__);
752/* harmony export */ __webpack_require__.d(__webpack_exports__, {
753/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
754/* harmony export */ });
755/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
756/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
757// Imports
758
759var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
760// Module
761___CSS_LOADER_EXPORT___.push([module.id, ":root {\n  /*\n  --swiper-pagination-color: var(--swiper-theme-color);\n  --swiper-pagination-left: auto;\n  --swiper-pagination-right: 8px;\n  --swiper-pagination-bottom: 8px;\n  --swiper-pagination-top: auto;\n  --swiper-pagination-fraction-color: inherit;\n  --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25);\n  --swiper-pagination-progressbar-size: 4px;\n  --swiper-pagination-bullet-size: 8px;\n  --swiper-pagination-bullet-width: 8px;\n  --swiper-pagination-bullet-height: 8px;\n  --swiper-pagination-bullet-border-radius: 50%;\n  --swiper-pagination-bullet-inactive-color: #000;\n  --swiper-pagination-bullet-inactive-opacity: 0.2;\n  --swiper-pagination-bullet-opacity: 1;\n  --swiper-pagination-bullet-horizontal-gap: 4px;\n  --swiper-pagination-bullet-vertical-gap: 6px;\n  */\n}\n.swiper-pagination {\n  position: absolute;\n  text-align: center;\n  transition: 300ms opacity;\n  transform: translate3d(0, 0, 0);\n  z-index: 10;\n}\n.swiper-pagination.swiper-pagination-hidden {\n  opacity: 0;\n}\n.swiper-pagination-disabled > .swiper-pagination,\n.swiper-pagination.swiper-pagination-disabled {\n  display: none !important;\n}\n/* Common Styles */\n.swiper-pagination-fraction,\n.swiper-pagination-custom,\n.swiper-horizontal > .swiper-pagination-bullets,\n.swiper-pagination-bullets.swiper-pagination-horizontal {\n  bottom: var(--swiper-pagination-bottom, 8px);\n  top: var(--swiper-pagination-top, auto);\n  left: 0;\n  width: 100%;\n}\n/* Bullets */\n.swiper-pagination-bullets-dynamic {\n  overflow: hidden;\n  font-size: 0;\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\n  transform: scale(0.33);\n  position: relative;\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {\n  transform: scale(1);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {\n  transform: scale(1);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {\n  transform: scale(0.66);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {\n  transform: scale(0.33);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {\n  transform: scale(0.66);\n}\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {\n  transform: scale(0.33);\n}\n.swiper-pagination-bullet {\n  width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));\n  height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));\n  display: inline-block;\n  border-radius: var(--swiper-pagination-bullet-border-radius, 50%);\n  background: var(--swiper-pagination-bullet-inactive-color, #000);\n  opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);\n}\nbutton.swiper-pagination-bullet {\n  border: none;\n  margin: 0;\n  padding: 0;\n  box-shadow: none;\n  -webkit-appearance: none;\n          -moz-appearance: none;\n       appearance: none;\n}\n.swiper-pagination-clickable .swiper-pagination-bullet {\n  cursor: pointer;\n}\n.swiper-pagination-bullet:only-child {\n  display: none !important;\n}\n.swiper-pagination-bullet-active {\n  opacity: var(--swiper-pagination-bullet-opacity, 1);\n  background: var(--swiper-pagination-color, var(--swiper-theme-color));\n}\n.swiper-vertical > .swiper-pagination-bullets,\n.swiper-pagination-vertical.swiper-pagination-bullets {\n  right: var(--swiper-pagination-right, 8px);\n  left: var(--swiper-pagination-left, auto);\n  top: 50%;\n  transform: translate3d(0px, -50%, 0);\n}\n.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet,\n.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet {\n  margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;\n  display: block;\n}\n.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,\n.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {\n  top: 50%;\n  transform: translateY(-50%);\n  width: 8px;\n}\n.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,\n.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\n  display: inline-block;\n  transition: 200ms transform,\n        200ms top;\n}\n.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,\n.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {\n  margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);\n}\n.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,\n.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {\n  left: 50%;\n  transform: translateX(-50%);\n  white-space: nowrap;\n}\n.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,\n.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\n  transition: 200ms transform,\n        200ms left;\n}\n.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\n  transition: 200ms transform,\n    200ms right;\n}\n/* Fraction */\n.swiper-pagination-fraction {\n  color: var(--swiper-pagination-fraction-color, inherit);\n}\n/* Progress */\n.swiper-pagination-progressbar {\n  background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25));\n  position: absolute;\n}\n.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {\n  background: var(--swiper-pagination-color, var(--swiper-theme-color));\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  transform: scale(0);\n  transform-origin: left top;\n}\n.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {\n  transform-origin: right top;\n}\n.swiper-horizontal > .swiper-pagination-progressbar,\n.swiper-pagination-progressbar.swiper-pagination-horizontal,\n.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,\n.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {\n  width: 100%;\n  height: var(--swiper-pagination-progressbar-size, 4px);\n  left: 0;\n  top: 0;\n}\n.swiper-vertical > .swiper-pagination-progressbar,\n.swiper-pagination-progressbar.swiper-pagination-vertical,\n.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,\n.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {\n  width: var(--swiper-pagination-progressbar-size, 4px);\n  height: 100%;\n  left: 0;\n  top: 0;\n}\n.swiper-pagination-lock {\n  display: none;\n}\n", ""]);
762// Exports
763/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
764
765
766/***/ }),
767
768/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/swiper.css":
769/*!**************************************************************************************************************************************************************************************************!*\
770  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/swiper.css ***!
771  \**************************************************************************************************************************************************************************************************/
772/***/ ((module, __webpack_exports__, __webpack_require__) => {
773
774"use strict";
775__webpack_require__.r(__webpack_exports__);
776/* harmony export */ __webpack_require__.d(__webpack_exports__, {
777/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
778/* harmony export */ });
779/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
780/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
781// Imports
782
783var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
784// Module
785___CSS_LOADER_EXPORT___.push([module.id, "/**\n * Swiper 11.0.6\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2024 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: February 5, 2024\n */\n\n/* FONT_START */\n@font-face {\n  font-family: 'swiper-icons';\n  src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');\n  font-weight: 400;\n  font-style: normal;\n}\n/* FONT_END */\n:root {\n  --swiper-theme-color: #007aff;\n  /*\n  --swiper-preloader-color: var(--swiper-theme-color);\n  --swiper-wrapper-transition-timing-function: initial;\n  */\n}\n:host {\n  position: relative;\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  z-index: 1;\n}\n.swiper {\n  margin-left: auto;\n  margin-right: auto;\n  position: relative;\n  overflow: hidden;\n  list-style: none;\n  padding: 0;\n  /* Fix of Webkit flickering */\n  z-index: 1;\n  display: block;\n}\n.swiper-vertical > .swiper-wrapper {\n  flex-direction: column;\n}\n.swiper-wrapper {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  z-index: 1;\n  display: flex;\n  transition-property: transform;\n  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);\n  box-sizing: content-box;\n}\n.swiper-android .swiper-slide,\n.swiper-ios .swiper-slide,\n.swiper-wrapper {\n  transform: translate3d(0px, 0, 0);\n}\n.swiper-horizontal {\n  touch-action: pan-y;\n}\n.swiper-vertical {\n  touch-action: pan-x;\n}\n.swiper-slide {\n  flex-shrink: 0;\n  width: 100%;\n  height: 100%;\n  position: relative;\n  transition-property: transform;\n  display: block;\n}\n.swiper-slide-invisible-blank {\n  visibility: hidden;\n}\n/* Auto Height */\n.swiper-autoheight,\n.swiper-autoheight .swiper-slide {\n  height: auto;\n}\n.swiper-autoheight .swiper-wrapper {\n  align-items: flex-start;\n  transition-property: transform, height;\n}\n.swiper-backface-hidden .swiper-slide {\n  transform: translateZ(0);\n  backface-visibility: hidden;\n}\n/* 3D Effects */\n.swiper-3d.swiper-css-mode .swiper-wrapper {\n  perspective: 1200px;\n}\n.swiper-3d .swiper-wrapper {\n  transform-style: preserve-3d;\n}\n.swiper-3d {\n  perspective: 1200px;\n}\n.swiper-3d .swiper-slide,\n.swiper-3d .swiper-cube-shadow {\n  transform-style: preserve-3d;\n}\n/* CSS Mode */\n.swiper-css-mode > .swiper-wrapper {\n  overflow: auto;\n  scrollbar-width: none;\n  /* For Firefox */\n  -ms-overflow-style: none;\n  /* For Internet Explorer and Edge */\n}\n.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {\n  display: none;\n}\n.swiper-css-mode > .swiper-wrapper > .swiper-slide {\n  scroll-snap-align: start start;\n}\n.swiper-css-mode.swiper-horizontal > .swiper-wrapper {\n  scroll-snap-type: x mandatory;\n}\n.swiper-css-mode.swiper-vertical > .swiper-wrapper {\n  scroll-snap-type: y mandatory;\n}\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper {\n  scroll-snap-type: none;\n}\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {\n  scroll-snap-align: none;\n}\n.swiper-css-mode.swiper-centered > .swiper-wrapper::before {\n  content: '';\n  flex-shrink: 0;\n  order: 9999;\n}\n.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {\n  scroll-snap-align: center center;\n  scroll-snap-stop: always;\n}\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {\n  margin-inline-start: var(--swiper-centered-offset-before);\n}\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {\n  height: 100%;\n  min-height: 1px;\n  width: var(--swiper-centered-offset-after);\n}\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {\n  margin-block-start: var(--swiper-centered-offset-before);\n}\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {\n  width: 100%;\n  min-width: 1px;\n  height: var(--swiper-centered-offset-after);\n}\n/* Slide styles start */\n/* 3D Shadows */\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom,\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  pointer-events: none;\n  z-index: 10;\n}\n.swiper-3d .swiper-slide-shadow {\n  background: rgba(0, 0, 0, 0.15);\n}\n.swiper-3d .swiper-slide-shadow-left {\n  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-right {\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-top {\n  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-bottom {\n  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-lazy-preloader {\n  width: 42px;\n  height: 42px;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  margin-left: -21px;\n  margin-top: -21px;\n  z-index: 10;\n  transform-origin: 50%;\n  box-sizing: border-box;\n  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));\n  border-radius: 50%;\n  border-top-color: transparent;\n}\n.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,\n.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {\n  animation: swiper-preloader-spin 1s infinite linear;\n}\n.swiper-lazy-preloader-white {\n  --swiper-preloader-color: #fff;\n}\n.swiper-lazy-preloader-black {\n  --swiper-preloader-color: #000;\n}\n@keyframes swiper-preloader-spin {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n/* Slide styles end */\n", ""]);
786// Exports
787/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
788
789
790/***/ }),
791
vendor: 1,872 bytes, lines 792-867
792/***/ "./node_modules/css-loader/dist/runtime/api.js":
793/*!*****************************************************!*\
794  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
795  \*****************************************************/
796/***/ ((module) => {
797
798"use strict";
799
800
801/*
802  MIT License http://www.opensource.org/licenses/mit-license.php
803  Author Tobias Koppers @sokra
804*/
805// css base code, injected by the css-loader
806// eslint-disable-next-line func-names
807module.exports = function (cssWithMappingToString) {
808  var list = []; // return the list of modules as css string
809
810  list.toString = function toString() {
811    return this.map(function (item) {
812      var content = cssWithMappingToString(item);
813
814      if (item[2]) {
815        return "@media ".concat(item[2], " {").concat(content, "}");
816      }
817
818      return content;
819    }).join("");
820  }; // import a list of modules into the list
821  // eslint-disable-next-line func-names
822
823
824  list.i = function (modules, mediaQuery, dedupe) {
825    if (typeof modules === "string") {
826      // eslint-disable-next-line no-param-reassign
827      modules = [[null, modules, ""]];
828    }
829
830    var alreadyImportedModules = {};
831
832    if (dedupe) {
833      for (var i = 0; i < this.length; i++) {
834        // eslint-disable-next-line prefer-destructuring
835        var id = this[i][0];
836
837        if (id != null) {
838          alreadyImportedModules[id] = true;
839        }
840      }
841    }
842
843    for (var _i = 0; _i < modules.length; _i++) {
844      var item = [].concat(modules[_i]);
845
846      if (dedupe && alreadyImportedModules[item[0]]) {
847        // eslint-disable-next-line no-continue
848        continue;
849      }
850
851      if (mediaQuery) {
852        if (!item[2]) {
853          item[2] = mediaQuery;
854        } else {
855          item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
856        }
857      }
858
859      list.push(item);
860    }
861  };
862
863  return list;
864};
865
866/***/ }),
867
868/***/ "./wp-content/themes/britishgardencentres.com/public/scss/styles.scss":
869/*!****************************************************************************!*\
870  !*** ./wp-content/themes/britishgardencentres.com/public/scss/styles.scss ***!
871  \****************************************************************************/
872/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
873
874"use strict";
875__webpack_require__.r(__webpack_exports__);
876// extracted by mini-css-extract-plugin
877
878
879/***/ }),
880
881/***/ "./wp-content/themes/britishgardencentres.com/public/scss/editor.scss":
882/*!****************************************************************************!*\
883  !*** ./wp-content/themes/britishgardencentres.com/public/scss/editor.scss ***!
884  \****************************************************************************/
885/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
886
887"use strict";
888__webpack_require__.r(__webpack_exports__);
889// extracted by mini-css-extract-plugin
890
891
892/***/ }),
893
vendor: 2,249 bytes, lines 894-923
894/***/ "./node_modules/swiper/modules/navigation.css":
895/*!****************************************************!*\
896  !*** ./node_modules/swiper/modules/navigation.css ***!
897  \****************************************************/
898/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
899
900"use strict";
901__webpack_require__.r(__webpack_exports__);
902/* harmony export */ __webpack_require__.d(__webpack_exports__, {
903/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
904/* harmony export */ });
905/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
906/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
907/* harmony import */ var _css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_navigation_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!../../postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./navigation.css */ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/modules/navigation.css");
908
909            
910
911var options = {};
912
913options.insert = "head";
914options.singleton = false;
915
916var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_navigation_css__WEBPACK_IMPORTED_MODULE_1__["default"], options);
917
918
919
920/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_navigation_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
921
922/***/ }),
923
vendor: 2,249 bytes, lines 924-953
924/***/ "./node_modules/swiper/modules/pagination.css":
925/*!****************************************************!*\
926  !*** ./node_modules/swiper/modules/pagination.css ***!
927  \****************************************************/
928/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
929
930"use strict";
931__webpack_require__.r(__webpack_exports__);
932/* harmony export */ __webpack_require__.d(__webpack_exports__, {
933/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
934/* harmony export */ });
935/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
936/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
937/* harmony import */ var _css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_pagination_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!../../postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./pagination.css */ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/modules/pagination.css");
938
939            
940
941var options = {};
942
943options.insert = "head";
944options.singleton = false;
945
946var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_pagination_css__WEBPACK_IMPORTED_MODULE_1__["default"], options);
947
948
949
950/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_pagination_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
951
952/***/ }),
953
vendor: 2,164 bytes, lines 954-983
954/***/ "./node_modules/swiper/swiper.css":
955/*!****************************************!*\
956  !*** ./node_modules/swiper/swiper.css ***!
957  \****************************************/
958/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
959
960"use strict";
961__webpack_require__.r(__webpack_exports__);
962/* harmony export */ __webpack_require__.d(__webpack_exports__, {
963/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
964/* harmony export */ });
965/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
966/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
967/* harmony import */ var _css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_swiper_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!../postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./swiper.css */ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./node_modules/swiper/swiper.css");
968
969            
970
971var options = {};
972
973options.insert = "head";
974options.singleton = false;
975
976var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_swiper_css__WEBPACK_IMPORTED_MODULE_1__["default"], options);
977
978
979
980/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_7_oneOf_1_use_2_swiper_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {});
981
982/***/ }),
983
vendor: 7,200 bytes, lines 984-1262
984/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
985/*!****************************************************************************!*\
986  !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
987  \****************************************************************************/
988/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
989
990"use strict";
991
992
993var isOldIE = function isOldIE() {
994  var memo;
995  return function memorize() {
996    if (typeof memo === 'undefined') {
997      // Test for IE <= 9 as proposed by Browserhacks
998      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
999      // Tests for existence of standard globals is to allow style-loader
1000      // to operate correctly into non-standard environments
1001      // @see https://github.com/webpack-contrib/style-loader/issues/177
1002      memo = Boolean(window && document && document.all && !window.atob);
1003    }
1004
1005    return memo;
1006  };
1007}();
1008
1009var getTarget = function getTarget() {
1010  var memo = {};
1011  return function memorize(target) {
1012    if (typeof memo[target] === 'undefined') {
1013      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
1014
1015      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
1016        try {
1017          // This will throw an exception if access to iframe is blocked
1018          // due to cross-origin restrictions
1019          styleTarget = styleTarget.contentDocument.head;
1020        } catch (e) {
1021          // istanbul ignore next
1022          styleTarget = null;
1023        }
1024      }
1025
1026      memo[target] = styleTarget;
1027    }
1028
1029    return memo[target];
1030  };
1031}();
1032
1033var stylesInDom = [];
1034
1035function getIndexByIdentifier(identifier) {
1036  var result = -1;
1037
1038  for (var i = 0; i < stylesInDom.length; i++) {
1039    if (stylesInDom[i].identifier === identifier) {
1040      result = i;
1041      break;
1042    }
1043  }
1044
1045  return result;
1046}
1047
1048function modulesToDom(list, options) {
1049  var idCountMap = {};
1050  var identifiers = [];
1051
1052  for (var i = 0; i < list.length; i++) {
1053    var item = list[i];
1054    var id = options.base ? item[0] + options.base : item[0];
1055    var count = idCountMap[id] || 0;
1056    var identifier = "".concat(id, " ").concat(count);
1057    idCountMap[id] = count + 1;
1058    var index = getIndexByIdentifier(identifier);
1059    var obj = {
1060      css: item[1],
1061      media: item[2],
1062      sourceMap: item[3]
1063    };
1064
1065    if (index !== -1) {
1066      stylesInDom[index].references++;
1067      stylesInDom[index].updater(obj);
1068    } else {
1069      stylesInDom.push({
1070        identifier: identifier,
1071        updater: addStyle(obj, options),
1072        references: 1
1073      });
1074    }
1075
1076    identifiers.push(identifier);
1077  }
1078
1079  return identifiers;
1080}
1081
1082function insertStyleElement(options) {
1083  var style = document.createElement('style');
1084  var attributes = options.attributes || {};
1085
1086  if (typeof attributes.nonce === 'undefined') {
1087    var nonce =  true ? __webpack_require__.nc : 0;
1088
1089    if (nonce) {
1090      attributes.nonce = nonce;
1091    }
1092  }
1093
1094  Object.keys(attributes).forEach(function (key) {
1095    style.setAttribute(key, attributes[key]);
1096  });
1097
1098  if (typeof options.insert === 'function') {
1099    options.insert(style);
1100  } else {
1101    var target = getTarget(options.insert || 'head');
1102
1103    if (!target) {
1104      throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
1105    }
1106
1107    target.appendChild(style);
1108  }
1109
1110  return style;
1111}
1112
1113function removeStyleElement(style) {
1114  // istanbul ignore if
1115  if (style.parentNode === null) {
1116    return false;
1117  }
1118
1119  style.parentNode.removeChild(style);
1120}
1121/* istanbul ignore next  */
1122
1123
1124var replaceText = function replaceText() {
1125  var textStore = [];
1126  return function replace(index, replacement) {
1127    textStore[index] = replacement;
1128    return textStore.filter(Boolean).join('\n');
1129  };
1130}();
1131
1132function applyToSingletonTag(style, index, remove, obj) {
1133  var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
1134
1135  /* istanbul ignore if  */
1136
1137  if (style.styleSheet) {
1138    style.styleSheet.cssText = replaceText(index, css);
1139  } else {
1140    var cssNode = document.createTextNode(css);
1141    var childNodes = style.childNodes;
1142
1143    if (childNodes[index]) {
1144      style.removeChild(childNodes[index]);
1145    }
1146
1147    if (childNodes.length) {
1148      style.insertBefore(cssNode, childNodes[index]);
1149    } else {
1150      style.appendChild(cssNode);
1151    }
1152  }
1153}
1154
1155function applyToTag(style, options, obj) {
1156  var css = obj.css;
1157  var media = obj.media;
1158  var sourceMap = obj.sourceMap;
1159
1160  if (media) {
1161    style.setAttribute('media', media);
1162  } else {
1163    style.removeAttribute('media');
1164  }
1165
1166  if (sourceMap && typeof btoa !== 'undefined') {
1167    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
1168  } // For old IE
1169
1170  /* istanbul ignore if  */
1171
1172
1173  if (style.styleSheet) {
1174    style.styleSheet.cssText = css;
1175  } else {
1176    while (style.firstChild) {
1177      style.removeChild(style.firstChild);
1178    }
1179
1180    style.appendChild(document.createTextNode(css));
1181  }
1182}
1183
1184var singleton = null;
1185var singletonCounter = 0;
1186
1187function addStyle(obj, options) {
1188  var style;
1189  var update;
1190  var remove;
1191
1192  if (options.singleton) {
1193    var styleIndex = singletonCounter++;
1194    style = singleton || (singleton = insertStyleElement(options));
1195    update = applyToSingletonTag.bind(null, style, styleIndex, false);
1196    remove = applyToSingletonTag.bind(null, style, styleIndex, true);
1197  } else {
1198    style = insertStyleElement(options);
1199    update = applyToTag.bind(null, style, options);
1200
1201    remove = function remove() {
1202      removeStyleElement(style);
1203    };
1204  }
1205
1206  update(obj);
1207  return function updateStyle(newObj) {
1208    if (newObj) {
1209      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
1210        return;
1211      }
1212
1213      update(obj = newObj);
1214    } else {
1215      remove();
1216    }
1217  };
1218}
1219
1220module.exports = function (list, options) {
1221  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
1222  // tags it will allow on a page
1223
1224  if (!options.singleton && typeof options.singleton !== 'boolean') {
1225    options.singleton = isOldIE();
1226  }
1227
1228  list = list || [];
1229  var lastIdentifiers = modulesToDom(list, options);
1230  return function update(newList) {
1231    newList = newList || [];
1232
1233    if (Object.prototype.toString.call(newList) !== '[object Array]') {
1234      return;
1235    }
1236
1237    for (var i = 0; i < lastIdentifiers.length; i++) {
1238      var identifier = lastIdentifiers[i];
1239      var index = getIndexByIdentifier(identifier);
1240      stylesInDom[index].references--;
1241    }
1242
1243    var newLastIdentifiers = modulesToDom(newList, options);
1244
1245    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
1246      var _identifier = lastIdentifiers[_i];
1247
1248      var _index = getIndexByIdentifier(_identifier);
1249
1250      if (stylesInDom[_index].references === 0) {
1251        stylesInDom[_index].updater();
1252
1253        stylesInDom.splice(_index, 1);
1254      }
1255    }
1256
1257    lastIdentifiers = newLastIdentifiers;
1258  };
1259};
1260
1261/***/ }),
1262
vendor: 12,305 bytes, lines 1263-1621
1263/***/ "./node_modules/swiper/modules/a11y.mjs":
1264/*!**********************************************!*\
1265  !*** ./node_modules/swiper/modules/a11y.mjs ***!
1266  \**********************************************/
1267/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1268
1269"use strict";
1270__webpack_require__.r(__webpack_exports__);
1271/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1272/* harmony export */   "default": () => (/* binding */ A11y)
1273/* harmony export */ });
1274/* 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");
1275/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1276
1277
1278
1279function A11y(_ref) {
1280  let {
1281    swiper,
1282    extendParams,
1283    on
1284  } = _ref;
1285  extendParams({
1286    a11y: {
1287      enabled: true,
1288      notificationClass: 'swiper-notification',
1289      prevSlideMessage: 'Previous slide',
1290      nextSlideMessage: 'Next slide',
1291      firstSlideMessage: 'This is the first slide',
1292      lastSlideMessage: 'This is the last slide',
1293      paginationBulletMessage: 'Go to slide {{index}}',
1294      slideLabelMessage: '{{index}} / {{slidesLength}}',
1295      containerMessage: null,
1296      containerRoleDescriptionMessage: null,
1297      itemRoleDescriptionMessage: null,
1298      slideRole: 'group',
1299      id: null
1300    }
1301  });
1302  swiper.a11y = {
1303    clicked: false
1304  };
1305  let liveRegion = null;
1306  function notify(message) {
1307    const notification = liveRegion;
1308    if (notification.length === 0) return;
1309    notification.innerHTML = '';
1310    notification.innerHTML = message;
1311  }
1312  function getRandomNumber(size) {
1313    if (size === void 0) {
1314      size = 16;
1315    }
1316    const randomChar = () => Math.round(16 * Math.random()).toString(16);
1317    return 'x'.repeat(size).replace(/x/g, randomChar);
1318  }
1319  function makeElFocusable(el) {
1320    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1321    el.forEach(subEl => {
1322      subEl.setAttribute('tabIndex', '0');
1323    });
1324  }
1325  function makeElNotFocusable(el) {
1326    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1327    el.forEach(subEl => {
1328      subEl.setAttribute('tabIndex', '-1');
1329    });
1330  }
1331  function addElRole(el, role) {
1332    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1333    el.forEach(subEl => {
1334      subEl.setAttribute('role', role);
1335    });
1336  }
1337  function addElRoleDescription(el, description) {
1338    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1339    el.forEach(subEl => {
1340      subEl.setAttribute('aria-roledescription', description);
1341    });
1342  }
1343  function addElControls(el, controls) {
1344    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1345    el.forEach(subEl => {
1346      subEl.setAttribute('aria-controls', controls);
1347    });
1348  }
1349  function addElLabel(el, label) {
1350    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1351    el.forEach(subEl => {
1352      subEl.setAttribute('aria-label', label);
1353    });
1354  }
1355  function addElId(el, id) {
1356    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1357    el.forEach(subEl => {
1358      subEl.setAttribute('id', id);
1359    });
1360  }
1361  function addElLive(el, live) {
1362    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1363    el.forEach(subEl => {
1364      subEl.setAttribute('aria-live', live);
1365    });
1366  }
1367  function disableEl(el) {
1368    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1369    el.forEach(subEl => {
1370      subEl.setAttribute('aria-disabled', true);
1371    });
1372  }
1373  function enableEl(el) {
1374    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
1375    el.forEach(subEl => {
1376      subEl.setAttribute('aria-disabled', false);
1377    });
1378  }
1379  function onEnterOrSpaceKey(e) {
1380    if (e.keyCode !== 13 && e.keyCode !== 32) return;
1381    const params = swiper.params.a11y;
1382    const targetEl = e.target;
1383    if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {
1384      if (!e.target.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletClass))) return;
1385    }
1386    if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {
1387      if (!(swiper.isEnd && !swiper.params.loop)) {
1388        swiper.slideNext();
1389      }
1390      if (swiper.isEnd) {
1391        notify(params.lastSlideMessage);
1392      } else {
1393        notify(params.nextSlideMessage);
1394      }
1395    }
1396    if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {
1397      if (!(swiper.isBeginning && !swiper.params.loop)) {
1398        swiper.slidePrev();
1399      }
1400      if (swiper.isBeginning) {
1401        notify(params.firstSlideMessage);
1402      } else {
1403        notify(params.prevSlideMessage);
1404      }
1405    }
1406    if (swiper.pagination && targetEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletClass))) {
1407      targetEl.click();
1408    }
1409  }
1410  function updateNavigation() {
1411    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
1412    const {
1413      nextEl,
1414      prevEl
1415    } = swiper.navigation;
1416    if (prevEl) {
1417      if (swiper.isBeginning) {
1418        disableEl(prevEl);
1419        makeElNotFocusable(prevEl);
1420      } else {
1421        enableEl(prevEl);
1422        makeElFocusable(prevEl);
1423      }
1424    }
1425    if (nextEl) {
1426      if (swiper.isEnd) {
1427        disableEl(nextEl);
1428        makeElNotFocusable(nextEl);
1429      } else {
1430        enableEl(nextEl);
1431        makeElFocusable(nextEl);
1432      }
1433    }
1434  }
1435  function hasPagination() {
1436    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
1437  }
1438  function hasClickablePagination() {
1439    return hasPagination() && swiper.params.pagination.clickable;
1440  }
1441  function updatePagination() {
1442    const params = swiper.params.a11y;
1443    if (!hasPagination()) return;
1444    swiper.pagination.bullets.forEach(bulletEl => {
1445      if (swiper.params.pagination.clickable) {
1446        makeElFocusable(bulletEl);
1447        if (!swiper.params.pagination.renderBullet) {
1448          addElRole(bulletEl, 'button');
1449          addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.g)(bulletEl) + 1));
1450        }
1451      }
1452      if (bulletEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletActiveClass))) {
1453        bulletEl.setAttribute('aria-current', 'true');
1454      } else {
1455        bulletEl.removeAttribute('aria-current');
1456      }
1457    });
1458  }
1459  const initNavEl = (el, wrapperId, message) => {
1460    makeElFocusable(el);
1461    if (el.tagName !== 'BUTTON') {
1462      addElRole(el, 'button');
1463      el.addEventListener('keydown', onEnterOrSpaceKey);
1464    }
1465    addElLabel(el, message);
1466    addElControls(el, wrapperId);
1467  };
1468  const handlePointerDown = () => {
1469    swiper.a11y.clicked = true;
1470  };
1471  const handlePointerUp = () => {
1472    requestAnimationFrame(() => {
1473      requestAnimationFrame(() => {
1474        if (!swiper.destroyed) {
1475          swiper.a11y.clicked = false;
1476        }
1477      });
1478    });
1479  };
1480  const handleFocus = e => {
1481    if (swiper.a11y.clicked) return;
1482    const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
1483    if (!slideEl || !swiper.slides.includes(slideEl)) return;
1484    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
1485    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
1486    if (isActive || isVisible) return;
1487    if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
1488    if (swiper.isHorizontal()) {
1489      swiper.el.scrollLeft = 0;
1490    } else {
1491      swiper.el.scrollTop = 0;
1492    }
1493    swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
1494  };
1495  const initSlides = () => {
1496    const params = swiper.params.a11y;
1497    if (params.itemRoleDescriptionMessage) {
1498      addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);
1499    }
1500    if (params.slideRole) {
1501      addElRole(swiper.slides, params.slideRole);
1502    }
1503    const slidesLength = swiper.slides.length;
1504    if (params.slideLabelMessage) {
1505      swiper.slides.forEach((slideEl, index) => {
1506        const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;
1507        const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
1508        addElLabel(slideEl, ariaLabelMessage);
1509      });
1510    }
1511  };
1512  const init = () => {
1513    const params = swiper.params.a11y;
1514    swiper.el.append(liveRegion);
1515
1516    // Container
1517    const containerEl = swiper.el;
1518    if (params.containerRoleDescriptionMessage) {
1519      addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);
1520    }
1521    if (params.containerMessage) {
1522      addElLabel(containerEl, params.containerMessage);
1523    }
1524
1525    // Wrapper
1526    const wrapperEl = swiper.wrapperEl;
1527    const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;
1528    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
1529    addElId(wrapperEl, wrapperId);
1530    addElLive(wrapperEl, live);
1531
1532    // Slide
1533    initSlides();
1534
1535    // Navigation
1536    let {
1537      nextEl,
1538      prevEl
1539    } = swiper.navigation ? swiper.navigation : {};
1540    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
1541    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
1542    if (nextEl) {
1543      nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));
1544    }
1545    if (prevEl) {
1546      prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));
1547    }
1548
1549    // Pagination
1550    if (hasClickablePagination()) {
1551      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(swiper.pagination.el);
1552      paginationEl.forEach(el => {
1553        el.addEventListener('keydown', onEnterOrSpaceKey);
1554      });
1555    }
1556
1557    // Tab focus
1558    swiper.el.addEventListener('focus', handleFocus, true);
1559    swiper.el.addEventListener('pointerdown', handlePointerDown, true);
1560    swiper.el.addEventListener('pointerup', handlePointerUp, true);
1561  };
1562  function destroy() {
1563    if (liveRegion) liveRegion.remove();
1564    let {
1565      nextEl,
1566      prevEl
1567    } = swiper.navigation ? swiper.navigation : {};
1568    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
1569    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
1570    if (nextEl) {
1571      nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
1572    }
1573    if (prevEl) {
1574      prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
1575    }
1576
1577    // Pagination
1578    if (hasClickablePagination()) {
1579      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(swiper.pagination.el);
1580      paginationEl.forEach(el => {
1581        el.removeEventListener('keydown', onEnterOrSpaceKey);
1582      });
1583    }
1584
1585    // Tab focus
1586    swiper.el.removeEventListener('focus', handleFocus, true);
1587    swiper.el.removeEventListener('pointerdown', handlePointerDown, true);
1588    swiper.el.removeEventListener('pointerup', handlePointerUp, true);
1589  }
1590  on('beforeInit', () => {
1591    liveRegion = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('span', swiper.params.a11y.notificationClass);
1592    liveRegion.setAttribute('aria-live', 'assertive');
1593    liveRegion.setAttribute('aria-atomic', 'true');
1594  });
1595  on('afterInit', () => {
1596    if (!swiper.params.a11y.enabled) return;
1597    init();
1598  });
1599  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
1600    if (!swiper.params.a11y.enabled) return;
1601    initSlides();
1602  });
1603  on('fromEdge toEdge afterInit lock unlock', () => {
1604    if (!swiper.params.a11y.enabled) return;
1605    updateNavigation();
1606  });
1607  on('paginationUpdate', () => {
1608    if (!swiper.params.a11y.enabled) return;
1609    updatePagination();
1610  });
1611  on('destroy', () => {
1612    if (!swiper.params.a11y.enabled) return;
1613    destroy();
1614  });
1615}
1616
1617
1618
1619
1620/***/ }),
1621
vendor: 9,943 bytes, lines 1622-1939
1622/***/ "./node_modules/swiper/modules/autoplay.mjs":
1623/*!**************************************************!*\
1624  !*** ./node_modules/swiper/modules/autoplay.mjs ***!
1625  \**************************************************/
1626/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1627
1628"use strict";
1629__webpack_require__.r(__webpack_exports__);
1630/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1631/* harmony export */   "default": () => (/* binding */ Autoplay)
1632/* harmony export */ });
1633/* 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");
1634
1635
1636/* eslint no-underscore-dangle: "off" */
1637/* eslint no-use-before-define: "off" */
1638function Autoplay(_ref) {
1639  let {
1640    swiper,
1641    extendParams,
1642    on,
1643    emit,
1644    params
1645  } = _ref;
1646  swiper.autoplay = {
1647    running: false,
1648    paused: false,
1649    timeLeft: 0
1650  };
1651  extendParams({
1652    autoplay: {
1653      enabled: false,
1654      delay: 3000,
1655      waitForTransition: true,
1656      disableOnInteraction: false,
1657      stopOnLastSlide: false,
1658      reverseDirection: false,
1659      pauseOnMouseEnter: false
1660    }
1661  });
1662  let timeout;
1663  let raf;
1664  let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;
1665  let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;
1666  let autoplayTimeLeft;
1667  let autoplayStartTime = new Date().getTime();
1668  let wasPaused;
1669  let isTouched;
1670  let pausedByTouch;
1671  let touchStartTimeout;
1672  let slideChanged;
1673  let pausedByInteraction;
1674  let pausedByPointerEnter;
1675  function onTransitionEnd(e) {
1676    if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;
1677    if (e.target !== swiper.wrapperEl) return;
1678    swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);
1679    if (pausedByPointerEnter) {
1680      return;
1681    }
1682    resume();
1683  }
1684  const calcTimeLeft = () => {
1685    if (swiper.destroyed || !swiper.autoplay.running) return;
1686    if (swiper.autoplay.paused) {
1687      wasPaused = true;
1688    } else if (wasPaused) {
1689      autoplayDelayCurrent = autoplayTimeLeft;
1690      wasPaused = false;
1691    }
1692    const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();
1693    swiper.autoplay.timeLeft = timeLeft;
1694    emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);
1695    raf = requestAnimationFrame(() => {
1696      calcTimeLeft();
1697    });
1698  };
1699  const getSlideDelay = () => {
1700    let activeSlideEl;
1701    if (swiper.virtual && swiper.params.virtual.enabled) {
1702      activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];
1703    } else {
1704      activeSlideEl = swiper.slides[swiper.activeIndex];
1705    }
1706    if (!activeSlideEl) return undefined;
1707    const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);
1708    return currentSlideDelay;
1709  };
1710  const run = delayForce => {
1711    if (swiper.destroyed || !swiper.autoplay.running) return;
1712    cancelAnimationFrame(raf);
1713    calcTimeLeft();
1714    let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;
1715    autoplayDelayTotal = swiper.params.autoplay.delay;
1716    autoplayDelayCurrent = swiper.params.autoplay.delay;
1717    const currentSlideDelay = getSlideDelay();
1718    if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {
1719      delay = currentSlideDelay;
1720      autoplayDelayTotal = currentSlideDelay;
1721      autoplayDelayCurrent = currentSlideDelay;
1722    }
1723    autoplayTimeLeft = delay;
1724    const speed = swiper.params.speed;
1725    const proceed = () => {
1726      if (!swiper || swiper.destroyed) return;
1727      if (swiper.params.autoplay.reverseDirection) {
1728        if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {
1729          swiper.slidePrev(speed, true, true);
1730          emit('autoplay');
1731        } else if (!swiper.params.autoplay.stopOnLastSlide) {
1732          swiper.slideTo(swiper.slides.length - 1, speed, true, true);
1733          emit('autoplay');
1734        }
1735      } else {
1736        if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {
1737          swiper.slideNext(speed, true, true);
1738          emit('autoplay');
1739        } else if (!swiper.params.autoplay.stopOnLastSlide) {
1740          swiper.slideTo(0, speed, true, true);
1741          emit('autoplay');
1742        }
1743      }
1744      if (swiper.params.cssMode) {
1745        autoplayStartTime = new Date().getTime();
1746        requestAnimationFrame(() => {
1747          run();
1748        });
1749      }
1750    };
1751    if (delay > 0) {
1752      clearTimeout(timeout);
1753      timeout = setTimeout(() => {
1754        proceed();
1755      }, delay);
1756    } else {
1757      requestAnimationFrame(() => {
1758        proceed();
1759      });
1760    }
1761
1762    // eslint-disable-next-line
1763    return delay;
1764  };
1765  const start = () => {
1766    autoplayStartTime = new Date().getTime();
1767    swiper.autoplay.running = true;
1768    run();
1769    emit('autoplayStart');
1770  };
1771  const stop = () => {
1772    swiper.autoplay.running = false;
1773    clearTimeout(timeout);
1774    cancelAnimationFrame(raf);
1775    emit('autoplayStop');
1776  };
1777  const pause = (internal, reset) => {
1778    if (swiper.destroyed || !swiper.autoplay.running) return;
1779    clearTimeout(timeout);
1780    if (!internal) {
1781      pausedByInteraction = true;
1782    }
1783    const proceed = () => {
1784      emit('autoplayPause');
1785      if (swiper.params.autoplay.waitForTransition) {
1786        swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);
1787      } else {
1788        resume();
1789      }
1790    };
1791    swiper.autoplay.paused = true;
1792    if (reset) {
1793      if (slideChanged) {
1794        autoplayTimeLeft = swiper.params.autoplay.delay;
1795      }
1796      slideChanged = false;
1797      proceed();
1798      return;
1799    }
1800    const delay = autoplayTimeLeft || swiper.params.autoplay.delay;
1801    autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);
1802    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;
1803    if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;
1804    proceed();
1805  };
1806  const resume = () => {
1807    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;
1808    autoplayStartTime = new Date().getTime();
1809    if (pausedByInteraction) {
1810      pausedByInteraction = false;
1811      run(autoplayTimeLeft);
1812    } else {
1813      run();
1814    }
1815    swiper.autoplay.paused = false;
1816    emit('autoplayResume');
1817  };
1818  const onVisibilityChange = () => {
1819    if (swiper.destroyed || !swiper.autoplay.running) return;
1820    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
1821    if (document.visibilityState === 'hidden') {
1822      pausedByInteraction = true;
1823      pause(true);
1824    }
1825    if (document.visibilityState === 'visible') {
1826      resume();
1827    }
1828  };
1829  const onPointerEnter = e => {
1830    if (e.pointerType !== 'mouse') return;
1831    pausedByInteraction = true;
1832    pausedByPointerEnter = true;
1833    if (swiper.animating || swiper.autoplay.paused) return;
1834    pause(true);
1835  };
1836  const onPointerLeave = e => {
1837    if (e.pointerType !== 'mouse') return;
1838    pausedByPointerEnter = false;
1839    if (swiper.autoplay.paused) {
1840      resume();
1841    }
1842  };
1843  const attachMouseEvents = () => {
1844    if (swiper.params.autoplay.pauseOnMouseEnter) {
1845      swiper.el.addEventListener('pointerenter', onPointerEnter);
1846      swiper.el.addEventListener('pointerleave', onPointerLeave);
1847    }
1848  };
1849  const detachMouseEvents = () => {
1850    swiper.el.removeEventListener('pointerenter', onPointerEnter);
1851    swiper.el.removeEventListener('pointerleave', onPointerLeave);
1852  };
1853  const attachDocumentEvents = () => {
1854    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
1855    document.addEventListener('visibilitychange', onVisibilityChange);
1856  };
1857  const detachDocumentEvents = () => {
1858    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
1859    document.removeEventListener('visibilitychange', onVisibilityChange);
1860  };
1861  on('init', () => {
1862    if (swiper.params.autoplay.enabled) {
1863      attachMouseEvents();
1864      attachDocumentEvents();
1865      start();
1866    }
1867  });
1868  on('destroy', () => {
1869    detachMouseEvents();
1870    detachDocumentEvents();
1871    if (swiper.autoplay.running) {
1872      stop();
1873    }
1874  });
1875  on('_freeModeStaticRelease', () => {
1876    if (pausedByTouch || pausedByInteraction) {
1877      resume();
1878    }
1879  });
1880  on('_freeModeNoMomentumRelease', () => {
1881    if (!swiper.params.autoplay.disableOnInteraction) {
1882      pause(true, true);
1883    } else {
1884      stop();
1885    }
1886  });
1887  on('beforeTransitionStart', (_s, speed, internal) => {
1888    if (swiper.destroyed || !swiper.autoplay.running) return;
1889    if (internal || !swiper.params.autoplay.disableOnInteraction) {
1890      pause(true, true);
1891    } else {
1892      stop();
1893    }
1894  });
1895  on('sliderFirstMove', () => {
1896    if (swiper.destroyed || !swiper.autoplay.running) return;
1897    if (swiper.params.autoplay.disableOnInteraction) {
1898      stop();
1899      return;
1900    }
1901    isTouched = true;
1902    pausedByTouch = false;
1903    pausedByInteraction = false;
1904    touchStartTimeout = setTimeout(() => {
1905      pausedByInteraction = true;
1906      pausedByTouch = true;
1907      pause(true);
1908    }, 200);
1909  });
1910  on('touchEnd', () => {
1911    if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;
1912    clearTimeout(touchStartTimeout);
1913    clearTimeout(timeout);
1914    if (swiper.params.autoplay.disableOnInteraction) {
1915      pausedByTouch = false;
1916      isTouched = false;
1917      return;
1918    }
1919    if (pausedByTouch && swiper.params.cssMode) resume();
1920    pausedByTouch = false;
1921    isTouched = false;
1922  });
1923  on('slideChange', () => {
1924    if (swiper.destroyed || !swiper.autoplay.running) return;
1925    slideChanged = true;
1926  });
1927  Object.assign(swiper.autoplay, {
1928    start,
1929    stop,
1930    pause,
1931    resume
1932  });
1933}
1934
1935
1936
1937
1938/***/ }),
1939
vendor: 7,181 bytes, lines 1940-2142
1940/***/ "./node_modules/swiper/modules/controller.mjs":
1941/*!****************************************************!*\
1942  !*** ./node_modules/swiper/modules/controller.mjs ***!
1943  \****************************************************/
1944/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1945
1946"use strict";
1947__webpack_require__.r(__webpack_exports__);
1948/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1949/* harmony export */   "default": () => (/* binding */ Controller)
1950/* harmony export */ });
1951/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
1952
1953
1954/* eslint no-bitwise: ["error", { "allow": [">>"] }] */
1955function Controller(_ref) {
1956  let {
1957    swiper,
1958    extendParams,
1959    on
1960  } = _ref;
1961  extendParams({
1962    controller: {
1963      control: undefined,
1964      inverse: false,
1965      by: 'slide' // or 'container'
1966    }
1967  });
1968
1969  swiper.controller = {
1970    control: undefined
1971  };
1972  function LinearSpline(x, y) {
1973    const binarySearch = function search() {
1974      let maxIndex;
1975      let minIndex;
1976      let guess;
1977      return (array, val) => {
1978        minIndex = -1;
1979        maxIndex = array.length;
1980        while (maxIndex - minIndex > 1) {
1981          guess = maxIndex + minIndex >> 1;
1982          if (array[guess] <= val) {
1983            minIndex = guess;
1984          } else {
1985            maxIndex = guess;
1986          }
1987        }
1988        return maxIndex;
1989      };
1990    }();
1991    this.x = x;
1992    this.y = y;
1993    this.lastIndex = x.length - 1;
1994    // Given an x value (x2), return the expected y2 value:
1995    // (x1,y1) is the known point before given value,
1996    // (x3,y3) is the known point after given value.
1997    let i1;
1998    let i3;
1999    this.interpolate = function interpolate(x2) {
2000      if (!x2) return 0;
2001
2002      // Get the indexes of x1 and x3 (the array indexes before and after given x2):
2003      i3 = binarySearch(this.x, x2);
2004      i1 = i3 - 1;
2005
2006      // We have our indexes i1 & i3, so we can calculate already:
2007      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
2008      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
2009    };
2010    return this;
2011  }
2012  function getInterpolateFunction(c) {
2013    swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
2014  }
2015  function setTranslate(_t, byController) {
2016    const controlled = swiper.controller.control;
2017    let multiplier;
2018    let controlledTranslate;
2019    const Swiper = swiper.constructor;
2020    function setControlledTranslate(c) {
2021      if (c.destroyed) return;
2022
2023      // this will create an Interpolate function based on the snapGrids
2024      // x is the Grid of the scrolled scroller and y will be the controlled scroller
2025      // it makes sense to create this only once and recall it for the interpolation
2026      // the function does a lot of value caching for performance
2027      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;
2028      if (swiper.params.controller.by === 'slide') {
2029        getInterpolateFunction(c);
2030        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
2031        // but it did not work out
2032        controlledTranslate = -swiper.controller.spline.interpolate(-translate);
2033      }
2034      if (!controlledTranslate || swiper.params.controller.by === 'container') {
2035        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
2036        if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {
2037          multiplier = 1;
2038        }
2039        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
2040      }
2041      if (swiper.params.controller.inverse) {
2042        controlledTranslate = c.maxTranslate() - controlledTranslate;
2043      }
2044      c.updateProgress(controlledTranslate);
2045      c.setTranslate(controlledTranslate, swiper);
2046      c.updateActiveIndex();
2047      c.updateSlidesClasses();
2048    }
2049    if (Array.isArray(controlled)) {
2050      for (let i = 0; i < controlled.length; i += 1) {
2051        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
2052          setControlledTranslate(controlled[i]);
2053        }
2054      }
2055    } else if (controlled instanceof Swiper && byController !== controlled) {
2056      setControlledTranslate(controlled);
2057    }
2058  }
2059  function setTransition(duration, byController) {
2060    const Swiper = swiper.constructor;
2061    const controlled = swiper.controller.control;
2062    let i;
2063    function setControlledTransition(c) {
2064      if (c.destroyed) return;
2065      c.setTransition(duration, swiper);
2066      if (duration !== 0) {
2067        c.transitionStart();
2068        if (c.params.autoHeight) {
2069          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.n)(() => {
2070            c.updateAutoHeight();
2071          });
2072        }
2073        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.j)(c.wrapperEl, () => {
2074          if (!controlled) return;
2075          c.transitionEnd();
2076        });
2077      }
2078    }
2079    if (Array.isArray(controlled)) {
2080      for (i = 0; i < controlled.length; i += 1) {
2081        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
2082          setControlledTransition(controlled[i]);
2083        }
2084      }
2085    } else if (controlled instanceof Swiper && byController !== controlled) {
2086      setControlledTransition(controlled);
2087    }
2088  }
2089  function removeSpline() {
2090    if (!swiper.controller.control) return;
2091    if (swiper.controller.spline) {
2092      swiper.controller.spline = undefined;
2093      delete swiper.controller.spline;
2094    }
2095  }
2096  on('beforeInit', () => {
2097    if (typeof window !== 'undefined' && (
2098    // eslint-disable-line
2099    typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {
2100      const controlElement = document.querySelector(swiper.params.controller.control);
2101      if (controlElement && controlElement.swiper) {
2102        swiper.controller.control = controlElement.swiper;
2103      } else if (controlElement) {
2104        const onControllerSwiper = e => {
2105          swiper.controller.control = e.detail[0];
2106          swiper.update();
2107          controlElement.removeEventListener('init', onControllerSwiper);
2108        };
2109        controlElement.addEventListener('init', onControllerSwiper);
2110      }
2111      return;
2112    }
2113    swiper.controller.control = swiper.params.controller.control;
2114  });
2115  on('update', () => {
2116    removeSpline();
2117  });
2118  on('resize', () => {
2119    removeSpline();
2120  });
2121  on('observerUpdate', () => {
2122    removeSpline();
2123  });
2124  on('setTranslate', (_s, translate, byController) => {
2125    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
2126    swiper.controller.setTranslate(translate, byController);
2127  });
2128  on('setTransition', (_s, duration, byController) => {
2129    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
2130    swiper.controller.setTransition(duration, byController);
2131  });
2132  Object.assign(swiper.controller, {
2133    setTranslate,
2134    setTransition
2135  });
2136}
2137
2138
2139
2140
2141/***/ }),
2142
vendor: 5,910 bytes, lines 2143-2287
2143/***/ "./node_modules/swiper/modules/effect-cards.mjs":
2144/*!******************************************************!*\
2145  !*** ./node_modules/swiper/modules/effect-cards.mjs ***!
2146  \******************************************************/
2147/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2148
2149"use strict";
2150__webpack_require__.r(__webpack_exports__);
2151/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2152/* harmony export */   "default": () => (/* binding */ EffectCards)
2153/* harmony export */ });
2154/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
2155/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
2156/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
2157/* 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");
2158/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2159
2160
2161
2162
2163
2164
2165function EffectCards(_ref) {
2166  let {
2167    swiper,
2168    extendParams,
2169    on
2170  } = _ref;
2171  extendParams({
2172    cardsEffect: {
2173      slideShadows: true,
2174      rotate: true,
2175      perSlideRotate: 2,
2176      perSlideOffset: 8
2177    }
2178  });
2179  const setTranslate = () => {
2180    const {
2181      slides,
2182      activeIndex,
2183      rtlTranslate: rtl
2184    } = swiper;
2185    const params = swiper.params.cardsEffect;
2186    const {
2187      startTranslate,
2188      isTouched
2189    } = swiper.touchEventsData;
2190    const currentTranslate = rtl ? -swiper.translate : swiper.translate;
2191    for (let i = 0; i < slides.length; i += 1) {
2192      const slideEl = slides[i];
2193      const slideProgress = slideEl.progress;
2194      const progress = Math.min(Math.max(slideProgress, -4), 4);
2195      let offset = slideEl.swiperSlideOffset;
2196      if (swiper.params.centeredSlides && !swiper.params.cssMode) {
2197        swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;
2198      }
2199      if (swiper.params.centeredSlides && swiper.params.cssMode) {
2200        offset -= slides[0].swiperSlideOffset;
2201      }
2202      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;
2203      let tY = 0;
2204      const tZ = -100 * Math.abs(progress);
2205      let scale = 1;
2206      let rotate = -params.perSlideRotate * progress;
2207      let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;
2208      const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;
2209      const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;
2210      const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;
2211      if (isSwipeToNext || isSwipeToPrev) {
2212        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
2213        rotate += -28 * progress * subProgress;
2214        scale += -0.5 * subProgress;
2215        tXAdd += 96 * subProgress;
2216        tY = `${-25 * subProgress * Math.abs(progress)}%`;
2217      }
2218      if (progress < 0) {
2219        // next
2220        tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;
2221      } else if (progress > 0) {
2222        // prev
2223        tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;
2224      } else {
2225        tX = `${tX}px`;
2226      }
2227      if (!swiper.isHorizontal()) {
2228        const prevY = tY;
2229        tY = tX;
2230        tX = prevY;
2231      }
2232      const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
2233
2234      /* eslint-disable */
2235      const transform = `
2236        translate3d(${tX}, ${tY}, ${tZ}px)
2237        rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)
2238        scale(${scaleString})
2239      `;
2240      /* eslint-enable */
2241
2242      if (params.slideShadows) {
2243        // Set shadows
2244        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
2245        if (!shadowEl) {
2246          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('cards', slideEl);
2247        }
2248        if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
2249      }
2250      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
2251      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
2252      targetEl.style.transform = transform;
2253    }
2254  };
2255  const setTransition = duration => {
2256    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.l)(slideEl));
2257    transformElements.forEach(el => {
2258      el.style.transitionDuration = `${duration}ms`;
2259      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
2260        shadowEl.style.transitionDuration = `${duration}ms`;
2261      });
2262    });
2263    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
2264      swiper,
2265      duration,
2266      transformElements
2267    });
2268  };
2269  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
2270    effect: 'cards',
2271    swiper,
2272    on,
2273    setTranslate,
2274    setTransition,
2275    perspective: () => true,
2276    overwriteParams: () => ({
2277      watchSlidesProgress: true,
2278      virtualTranslate: !swiper.params.cssMode
2279    })
2280  });
2281}
2282
2283
2284
2285
2286/***/ }),
2287
vendor: 5,848 bytes, lines 2288-2417
2288/***/ "./node_modules/swiper/modules/effect-coverflow.mjs":
2289/*!**********************************************************!*\
2290  !*** ./node_modules/swiper/modules/effect-coverflow.mjs ***!
2291  \**********************************************************/
2292/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2293
2294"use strict";
2295__webpack_require__.r(__webpack_exports__);
2296/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2297/* harmony export */   "default": () => (/* binding */ EffectCoverflow)
2298/* harmony export */ });
2299/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
2300/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
2301/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
2302/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2303
2304
2305
2306
2307
2308function EffectCoverflow(_ref) {
2309  let {
2310    swiper,
2311    extendParams,
2312    on
2313  } = _ref;
2314  extendParams({
2315    coverflowEffect: {
2316      rotate: 50,
2317      stretch: 0,
2318      depth: 100,
2319      scale: 1,
2320      modifier: 1,
2321      slideShadows: true
2322    }
2323  });
2324  const setTranslate = () => {
2325    const {
2326      width: swiperWidth,
2327      height: swiperHeight,
2328      slides,
2329      slidesSizesGrid
2330    } = swiper;
2331    const params = swiper.params.coverflowEffect;
2332    const isHorizontal = swiper.isHorizontal();
2333    const transform = swiper.translate;
2334    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
2335    const rotate = isHorizontal ? params.rotate : -params.rotate;
2336    const translate = params.depth;
2337    // Each slide offset from center
2338    for (let i = 0, length = slides.length; i < length; i += 1) {
2339      const slideEl = slides[i];
2340      const slideSize = slidesSizesGrid[i];
2341      const slideOffset = slideEl.swiperSlideOffset;
2342      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
2343      const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
2344      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
2345      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
2346      // var rotateZ = 0
2347      let translateZ = -translate * Math.abs(offsetMultiplier);
2348      let stretch = params.stretch;
2349      // Allow percentage to make a relative stretch for responsive sliders
2350      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
2351        stretch = parseFloat(params.stretch) / 100 * slideSize;
2352      }
2353      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
2354      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
2355      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);
2356
2357      // Fix for ultra small values
2358      if (Math.abs(translateX) < 0.001) translateX = 0;
2359      if (Math.abs(translateY) < 0.001) translateY = 0;
2360      if (Math.abs(translateZ) < 0.001) translateZ = 0;
2361      if (Math.abs(rotateY) < 0.001) rotateY = 0;
2362      if (Math.abs(rotateX) < 0.001) rotateX = 0;
2363      if (Math.abs(scale) < 0.001) scale = 0;
2364      if (swiper.browser && swiper.browser.need3dFix) {
2365        if (Math.abs(rotateY) / 90 % 2 === 1) {
2366          rotateY += 0.001;
2367        }
2368        if (Math.abs(rotateX) / 90 % 2 === 1) {
2369          rotateX += 0.001;
2370        }
2371      }
2372      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;
2373      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
2374      targetEl.style.transform = slideTransform;
2375      slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
2376      if (params.slideShadows) {
2377        // Set shadows
2378        let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
2379        let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
2380        if (!shadowBeforeEl) {
2381          shadowBeforeEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'left' : 'top');
2382        }
2383        if (!shadowAfterEl) {
2384          shadowAfterEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
2385        }
2386        if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
2387        if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
2388      }
2389    }
2390  };
2391  const setTransition = duration => {
2392    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.l)(slideEl));
2393    transformElements.forEach(el => {
2394      el.style.transitionDuration = `${duration}ms`;
2395      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
2396        shadowEl.style.transitionDuration = `${duration}ms`;
2397      });
2398    });
2399  };
2400  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
2401    effect: 'coverflow',
2402    swiper,
2403    on,
2404    setTranslate,
2405    setTransition,
2406    perspective: () => true,
2407    overwriteParams: () => ({
2408      watchSlidesProgress: true
2409    })
2410  });
2411}
2412
2413
2414
2415
2416/***/ }),
2417
vendor: 6,470 bytes, lines 2418-2585
2418/***/ "./node_modules/swiper/modules/effect-creative.mjs":
2419/*!*********************************************************!*\
2420  !*** ./node_modules/swiper/modules/effect-creative.mjs ***!
2421  \*********************************************************/
2422/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2423
2424"use strict";
2425__webpack_require__.r(__webpack_exports__);
2426/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2427/* harmony export */   "default": () => (/* binding */ EffectCreative)
2428/* harmony export */ });
2429/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
2430/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
2431/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
2432/* 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");
2433/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2434
2435
2436
2437
2438
2439
2440function EffectCreative(_ref) {
2441  let {
2442    swiper,
2443    extendParams,
2444    on
2445  } = _ref;
2446  extendParams({
2447    creativeEffect: {
2448      limitProgress: 1,
2449      shadowPerProgress: false,
2450      progressMultiplier: 1,
2451      perspective: true,
2452      prev: {
2453        translate: [0, 0, 0],
2454        rotate: [0, 0, 0],
2455        opacity: 1,
2456        scale: 1
2457      },
2458      next: {
2459        translate: [0, 0, 0],
2460        rotate: [0, 0, 0],
2461        opacity: 1,
2462        scale: 1
2463      }
2464    }
2465  });
2466  const getTranslateValue = value => {
2467    if (typeof value === 'string') return value;
2468    return `${value}px`;
2469  };
2470  const setTranslate = () => {
2471    const {
2472      slides,
2473      wrapperEl,
2474      slidesSizesGrid
2475    } = swiper;
2476    const params = swiper.params.creativeEffect;
2477    const {
2478      progressMultiplier: multiplier
2479    } = params;
2480    const isCenteredSlides = swiper.params.centeredSlides;
2481    if (isCenteredSlides) {
2482      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;
2483      wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;
2484    }
2485    for (let i = 0; i < slides.length; i += 1) {
2486      const slideEl = slides[i];
2487      const slideProgress = slideEl.progress;
2488      const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);
2489      let originalProgress = progress;
2490      if (!isCenteredSlides) {
2491        originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);
2492      }
2493      const offset = slideEl.swiperSlideOffset;
2494      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];
2495      const r = [0, 0, 0];
2496      let custom = false;
2497      if (!swiper.isHorizontal()) {
2498        t[1] = t[0];
2499        t[0] = 0;
2500      }
2501      let data = {
2502        translate: [0, 0, 0],
2503        rotate: [0, 0, 0],
2504        scale: 1,
2505        opacity: 1
2506      };
2507      if (progress < 0) {
2508        data = params.next;
2509        custom = true;
2510      } else if (progress > 0) {
2511        data = params.prev;
2512        custom = true;
2513      }
2514      // set translate
2515      t.forEach((value, index) => {
2516        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
2517      });
2518      // set rotates
2519      r.forEach((value, index) => {
2520        let val = data.rotate[index] * Math.abs(progress * multiplier);
2521        if (swiper.browser && swiper.browser.need3dFix && Math.abs(val) / 90 % 2 === 1) {
2522          val += 0.001;
2523        }
2524        r[index] = val;
2525      });
2526      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
2527      const translateString = t.join(', ');
2528      const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;
2529      const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
2530      const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;
2531      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;
2532
2533      // Set shadows
2534      if (custom && data.shadow || !custom) {
2535        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
2536        if (!shadowEl && data.shadow) {
2537          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('creative', slideEl);
2538        }
2539        if (shadowEl) {
2540          const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
2541          shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
2542        }
2543      }
2544      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
2545      targetEl.style.transform = transform;
2546      targetEl.style.opacity = opacityString;
2547      if (data.origin) {
2548        targetEl.style.transformOrigin = data.origin;
2549      }
2550    }
2551  };
2552  const setTransition = duration => {
2553    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.l)(slideEl));
2554    transformElements.forEach(el => {
2555      el.style.transitionDuration = `${duration}ms`;
2556      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
2557        shadowEl.style.transitionDuration = `${duration}ms`;
2558      });
2559    });
2560    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
2561      swiper,
2562      duration,
2563      transformElements,
2564      allSlides: true
2565    });
2566  };
2567  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
2568    effect: 'creative',
2569    swiper,
2570    on,
2571    setTranslate,
2572    setTransition,
2573    perspective: () => swiper.params.creativeEffect.perspective,
2574    overwriteParams: () => ({
2575      watchSlidesProgress: true,
2576      virtualTranslate: !swiper.params.cssMode
2577    })
2578  });
2579}
2580
2581
2582
2583
2584/***/ }),
2585
vendor: 7,672 bytes, lines 2586-2778
2586/***/ "./node_modules/swiper/modules/effect-cube.mjs":
2587/*!*****************************************************!*\
2588  !*** ./node_modules/swiper/modules/effect-cube.mjs ***!
2589  \*****************************************************/
2590/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2591
2592"use strict";
2593__webpack_require__.r(__webpack_exports__);
2594/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2595/* harmony export */   "default": () => (/* binding */ EffectCube)
2596/* harmony export */ });
2597/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
2598/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2599
2600
2601
2602function EffectCube(_ref) {
2603  let {
2604    swiper,
2605    extendParams,
2606    on
2607  } = _ref;
2608  extendParams({
2609    cubeEffect: {
2610      slideShadows: true,
2611      shadow: true,
2612      shadowOffset: 20,
2613      shadowScale: 0.94
2614    }
2615  });
2616  const createSlideShadows = (slideEl, progress, isHorizontal) => {
2617    let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
2618    let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
2619    if (!shadowBefore) {
2620      shadowBefore = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));
2621      slideEl.append(shadowBefore);
2622    }
2623    if (!shadowAfter) {
2624      shadowAfter = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));
2625      slideEl.append(shadowAfter);
2626    }
2627    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
2628    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
2629  };
2630  const recreateShadows = () => {
2631    // create new ones
2632    const isHorizontal = swiper.isHorizontal();
2633    swiper.slides.forEach(slideEl => {
2634      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
2635      createSlideShadows(slideEl, progress, isHorizontal);
2636    });
2637  };
2638  const setTranslate = () => {
2639    const {
2640      el,
2641      wrapperEl,
2642      slides,
2643      width: swiperWidth,
2644      height: swiperHeight,
2645      rtlTranslate: rtl,
2646      size: swiperSize,
2647      browser
2648    } = swiper;
2649    const params = swiper.params.cubeEffect;
2650    const isHorizontal = swiper.isHorizontal();
2651    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
2652    let wrapperRotate = 0;
2653    let cubeShadowEl;
2654    if (params.shadow) {
2655      if (isHorizontal) {
2656        cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');
2657        if (!cubeShadowEl) {
2658          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
2659          swiper.wrapperEl.append(cubeShadowEl);
2660        }
2661        cubeShadowEl.style.height = `${swiperWidth}px`;
2662      } else {
2663        cubeShadowEl = el.querySelector('.swiper-cube-shadow');
2664        if (!cubeShadowEl) {
2665          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
2666          el.append(cubeShadowEl);
2667        }
2668      }
2669    }
2670    for (let i = 0; i < slides.length; i += 1) {
2671      const slideEl = slides[i];
2672      let slideIndex = i;
2673      if (isVirtual) {
2674        slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);
2675      }
2676      let slideAngle = slideIndex * 90;
2677      let round = Math.floor(slideAngle / 360);
2678      if (rtl) {
2679        slideAngle = -slideAngle;
2680        round = Math.floor(-slideAngle / 360);
2681      }
2682      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
2683      let tx = 0;
2684      let ty = 0;
2685      let tz = 0;
2686      if (slideIndex % 4 === 0) {
2687        tx = -round * 4 * swiperSize;
2688        tz = 0;
2689      } else if ((slideIndex - 1) % 4 === 0) {
2690        tx = 0;
2691        tz = -round * 4 * swiperSize;
2692      } else if ((slideIndex - 2) % 4 === 0) {
2693        tx = swiperSize + round * 4 * swiperSize;
2694        tz = swiperSize;
2695      } else if ((slideIndex - 3) % 4 === 0) {
2696        tx = -swiperSize;
2697        tz = 3 * swiperSize + swiperSize * 4 * round;
2698      }
2699      if (rtl) {
2700        tx = -tx;
2701      }
2702      if (!isHorizontal) {
2703        ty = tx;
2704        tx = 0;
2705      }
2706      const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
2707      if (progress <= 1 && progress > -1) {
2708        wrapperRotate = slideIndex * 90 + progress * 90;
2709        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
2710        if (swiper.browser && swiper.browser.need3dFix && Math.abs(wrapperRotate) / 90 % 2 === 1) {
2711          wrapperRotate += 0.001;
2712        }
2713      }
2714      slideEl.style.transform = transform;
2715      if (params.slideShadows) {
2716        createSlideShadows(slideEl, progress, isHorizontal);
2717      }
2718    }
2719    wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;
2720    wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;
2721    if (params.shadow) {
2722      if (isHorizontal) {
2723        cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;
2724      } else {
2725        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
2726        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
2727        const scale1 = params.shadowScale;
2728        const scale2 = params.shadowScale / multiplier;
2729        const offset = params.shadowOffset;
2730        cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;
2731      }
2732    }
2733    const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;
2734    wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`;
2735    wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
2736  };
2737  const setTransition = duration => {
2738    const {
2739      el,
2740      slides
2741    } = swiper;
2742    slides.forEach(slideEl => {
2743      slideEl.style.transitionDuration = `${duration}ms`;
2744      slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {
2745        subEl.style.transitionDuration = `${duration}ms`;
2746      });
2747    });
2748    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {
2749      const shadowEl = el.querySelector('.swiper-cube-shadow');
2750      if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;
2751    }
2752  };
2753  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
2754    effect: 'cube',
2755    swiper,
2756    on,
2757    setTranslate,
2758    setTransition,
2759    recreateShadows,
2760    getEffectParams: () => swiper.params.cubeEffect,
2761    perspective: () => true,
2762    overwriteParams: () => ({
2763      slidesPerView: 1,
2764      slidesPerGroup: 1,
2765      watchSlidesProgress: true,
2766      resistanceRatio: 0,
2767      spaceBetween: 0,
2768      centeredSlides: false,
2769      virtualTranslate: true
2770    })
2771  });
2772}
2773
2774
2775
2776
2777/***/ }),
2778
vendor: 3,083 bytes, lines 2779-2863
2779/***/ "./node_modules/swiper/modules/effect-fade.mjs":
2780/*!*****************************************************!*\
2781  !*** ./node_modules/swiper/modules/effect-fade.mjs ***!
2782  \*****************************************************/
2783/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2784
2785"use strict";
2786__webpack_require__.r(__webpack_exports__);
2787/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2788/* harmony export */   "default": () => (/* binding */ EffectFade)
2789/* harmony export */ });
2790/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
2791/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
2792/* 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");
2793/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2794
2795
2796
2797
2798
2799function EffectFade(_ref) {
2800  let {
2801    swiper,
2802    extendParams,
2803    on
2804  } = _ref;
2805  extendParams({
2806    fadeEffect: {
2807      crossFade: false
2808    }
2809  });
2810  const setTranslate = () => {
2811    const {
2812      slides
2813    } = swiper;
2814    const params = swiper.params.fadeEffect;
2815    for (let i = 0; i < slides.length; i += 1) {
2816      const slideEl = swiper.slides[i];
2817      const offset = slideEl.swiperSlideOffset;
2818      let tx = -offset;
2819      if (!swiper.params.virtualTranslate) tx -= swiper.translate;
2820      let ty = 0;
2821      if (!swiper.isHorizontal()) {
2822        ty = tx;
2823        tx = 0;
2824      }
2825      const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);
2826      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(params, slideEl);
2827      targetEl.style.opacity = slideOpacity;
2828      targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;
2829    }
2830  };
2831  const setTransition = duration => {
2832    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.l)(slideEl));
2833    transformElements.forEach(el => {
2834      el.style.transitionDuration = `${duration}ms`;
2835    });
2836    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_2__.e)({
2837      swiper,
2838      duration,
2839      transformElements,
2840      allSlides: true
2841    });
2842  };
2843  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
2844    effect: 'fade',
2845    swiper,
2846    on,
2847    setTranslate,
2848    setTransition,
2849    overwriteParams: () => ({
2850      slidesPerView: 1,
2851      slidesPerGroup: 1,
2852      watchSlidesProgress: true,
2853      spaceBetween: 0,
2854      virtualTranslate: !swiper.params.cssMode
2855    })
2856  });
2857}
2858
2859
2860
2861
2862/***/ }),
2863
vendor: 5,446 bytes, lines 2864-3001
2864/***/ "./node_modules/swiper/modules/effect-flip.mjs":
2865/*!*****************************************************!*\
2866  !*** ./node_modules/swiper/modules/effect-flip.mjs ***!
2867  \*****************************************************/
2868/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2869
2870"use strict";
2871__webpack_require__.r(__webpack_exports__);
2872/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2873/* harmony export */   "default": () => (/* binding */ EffectFlip)
2874/* harmony export */ });
2875/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
2876/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
2877/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
2878/* 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");
2879/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
2880
2881
2882
2883
2884
2885
2886function EffectFlip(_ref) {
2887  let {
2888    swiper,
2889    extendParams,
2890    on
2891  } = _ref;
2892  extendParams({
2893    flipEffect: {
2894      slideShadows: true,
2895      limitRotation: true
2896    }
2897  });
2898  const createSlideShadows = (slideEl, progress) => {
2899    let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
2900    let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
2901    if (!shadowBefore) {
2902      shadowBefore = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
2903    }
2904    if (!shadowAfter) {
2905      shadowAfter = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
2906    }
2907    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
2908    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
2909  };
2910  const recreateShadows = () => {
2911    // Set shadows
2912    swiper.params.flipEffect;
2913    swiper.slides.forEach(slideEl => {
2914      let progress = slideEl.progress;
2915      if (swiper.params.flipEffect.limitRotation) {
2916        progress = Math.max(Math.min(slideEl.progress, 1), -1);
2917      }
2918      createSlideShadows(slideEl, progress);
2919    });
2920  };
2921  const setTranslate = () => {
2922    const {
2923      slides,
2924      rtlTranslate: rtl
2925    } = swiper;
2926    const params = swiper.params.flipEffect;
2927    for (let i = 0; i < slides.length; i += 1) {
2928      const slideEl = slides[i];
2929      let progress = slideEl.progress;
2930      if (swiper.params.flipEffect.limitRotation) {
2931        progress = Math.max(Math.min(slideEl.progress, 1), -1);
2932      }
2933      const offset = slideEl.swiperSlideOffset;
2934      const rotate = -180 * progress;
2935      let rotateY = rotate;
2936      let rotateX = 0;
2937      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
2938      let ty = 0;
2939      if (!swiper.isHorizontal()) {
2940        ty = tx;
2941        tx = 0;
2942        rotateX = -rotateY;
2943        rotateY = 0;
2944      } else if (rtl) {
2945        rotateY = -rotateY;
2946      }
2947      if (swiper.browser && swiper.browser.need3dFix) {
2948        if (Math.abs(rotateY) / 90 % 2 === 1) {
2949          rotateY += 0.001;
2950        }
2951        if (Math.abs(rotateX) / 90 % 2 === 1) {
2952          rotateX += 0.001;
2953        }
2954      }
2955      slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
2956      if (params.slideShadows) {
2957        createSlideShadows(slideEl, progress);
2958      }
2959      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
2960      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
2961      targetEl.style.transform = transform;
2962    }
2963  };
2964  const setTransition = duration => {
2965    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.l)(slideEl));
2966    transformElements.forEach(el => {
2967      el.style.transitionDuration = `${duration}ms`;
2968      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
2969        shadowEl.style.transitionDuration = `${duration}ms`;
2970      });
2971    });
2972    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
2973      swiper,
2974      duration,
2975      transformElements
2976    });
2977  };
2978  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
2979    effect: 'flip',
2980    swiper,
2981    on,
2982    setTranslate,
2983    setTransition,
2984    recreateShadows,
2985    getEffectParams: () => swiper.params.flipEffect,
2986    perspective: () => true,
2987    overwriteParams: () => ({
2988      slidesPerView: 1,
2989      slidesPerGroup: 1,
2990      watchSlidesProgress: true,
2991      spaceBetween: 0,
2992      virtualTranslate: !swiper.params.cssMode
2993    })
2994  });
2995}
2996
2997
2998
2999
3000/***/ }),
3001
vendor: 9,241 bytes, lines 3002-3254
3002/***/ "./node_modules/swiper/modules/free-mode.mjs":
3003/*!***************************************************!*\
3004  !*** ./node_modules/swiper/modules/free-mode.mjs ***!
3005  \***************************************************/
3006/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3007
3008"use strict";
3009__webpack_require__.r(__webpack_exports__);
3010/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3011/* harmony export */   "default": () => (/* binding */ freeMode)
3012/* harmony export */ });
3013/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3014
3015
3016function freeMode(_ref) {
3017  let {
3018    swiper,
3019    extendParams,
3020    emit,
3021    once
3022  } = _ref;
3023  extendParams({
3024    freeMode: {
3025      enabled: false,
3026      momentum: true,
3027      momentumRatio: 1,
3028      momentumBounce: true,
3029      momentumBounceRatio: 1,
3030      momentumVelocityRatio: 1,
3031      sticky: false,
3032      minimumVelocity: 0.02
3033    }
3034  });
3035  function onTouchStart() {
3036    if (swiper.params.cssMode) return;
3037    const translate = swiper.getTranslate();
3038    swiper.setTranslate(translate);
3039    swiper.setTransition(0);
3040    swiper.touchEventsData.velocities.length = 0;
3041    swiper.freeMode.onTouchEnd({
3042      currentPos: swiper.rtl ? swiper.translate : -swiper.translate
3043    });
3044  }
3045  function onTouchMove() {
3046    if (swiper.params.cssMode) return;
3047    const {
3048      touchEventsData: data,
3049      touches
3050    } = swiper;
3051    // Velocity
3052    if (data.velocities.length === 0) {
3053      data.velocities.push({
3054        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
3055        time: data.touchStartTime
3056      });
3057    }
3058    data.velocities.push({
3059      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
3060      time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)()
3061    });
3062  }
3063  function onTouchEnd(_ref2) {
3064    let {
3065      currentPos
3066    } = _ref2;
3067    if (swiper.params.cssMode) return;
3068    const {
3069      params,
3070      wrapperEl,
3071      rtlTranslate: rtl,
3072      snapGrid,
3073      touchEventsData: data
3074    } = swiper;
3075    // Time diff
3076    const touchEndTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)();
3077    const timeDiff = touchEndTime - data.touchStartTime;
3078    if (currentPos < -swiper.minTranslate()) {
3079      swiper.slideTo(swiper.activeIndex);
3080      return;
3081    }
3082    if (currentPos > -swiper.maxTranslate()) {
3083      if (swiper.slides.length < snapGrid.length) {
3084        swiper.slideTo(snapGrid.length - 1);
3085      } else {
3086        swiper.slideTo(swiper.slides.length - 1);
3087      }
3088      return;
3089    }
3090    if (params.freeMode.momentum) {
3091      if (data.velocities.length > 1) {
3092        const lastMoveEvent = data.velocities.pop();
3093        const velocityEvent = data.velocities.pop();
3094        const distance = lastMoveEvent.position - velocityEvent.position;
3095        const time = lastMoveEvent.time - velocityEvent.time;
3096        swiper.velocity = distance / time;
3097        swiper.velocity /= 2;
3098        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
3099          swiper.velocity = 0;
3100        }
3101        // this implies that the user stopped moving a finger then released.
3102        // There would be no events with distance zero, so the last event is stale.
3103        if (time > 150 || (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)() - lastMoveEvent.time > 300) {
3104          swiper.velocity = 0;
3105        }
3106      } else {
3107        swiper.velocity = 0;
3108      }
3109      swiper.velocity *= params.freeMode.momentumVelocityRatio;
3110      data.velocities.length = 0;
3111      let momentumDuration = 1000 * params.freeMode.momentumRatio;
3112      const momentumDistance = swiper.velocity * momentumDuration;
3113      let newPosition = swiper.translate + momentumDistance;
3114      if (rtl) newPosition = -newPosition;
3115      let doBounce = false;
3116      let afterBouncePosition;
3117      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
3118      let needsLoopFix;
3119      if (newPosition < swiper.maxTranslate()) {
3120        if (params.freeMode.momentumBounce) {
3121          if (newPosition + swiper.maxTranslate() < -bounceAmount) {
3122            newPosition = swiper.maxTranslate() - bounceAmount;
3123          }
3124          afterBouncePosition = swiper.maxTranslate();
3125          doBounce = true;
3126          data.allowMomentumBounce = true;
3127        } else {
3128          newPosition = swiper.maxTranslate();
3129        }
3130        if (params.loop && params.centeredSlides) needsLoopFix = true;
3131      } else if (newPosition > swiper.minTranslate()) {
3132        if (params.freeMode.momentumBounce) {
3133          if (newPosition - swiper.minTranslate() > bounceAmount) {
3134            newPosition = swiper.minTranslate() + bounceAmount;
3135          }
3136          afterBouncePosition = swiper.minTranslate();
3137          doBounce = true;
3138          data.allowMomentumBounce = true;
3139        } else {
3140          newPosition = swiper.minTranslate();
3141        }
3142        if (params.loop && params.centeredSlides) needsLoopFix = true;
3143      } else if (params.freeMode.sticky) {
3144        let nextSlide;
3145        for (let j = 0; j < snapGrid.length; j += 1) {
3146          if (snapGrid[j] > -newPosition) {
3147            nextSlide = j;
3148            break;
3149          }
3150        }
3151        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
3152          newPosition = snapGrid[nextSlide];
3153        } else {
3154          newPosition = snapGrid[nextSlide - 1];
3155        }
3156        newPosition = -newPosition;
3157      }
3158      if (needsLoopFix) {
3159        once('transitionEnd', () => {
3160          swiper.loopFix();
3161        });
3162      }
3163      // Fix duration
3164      if (swiper.velocity !== 0) {
3165        if (rtl) {
3166          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
3167        } else {
3168          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
3169        }
3170        if (params.freeMode.sticky) {
3171          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
3172          // event, then durations can be 20+ seconds to slide one (or zero!) slides.
3173          // It's easy to see this when simulating touch with mouse events. To fix this,
3174          // limit single-slide swipes to the default slide duration. This also has the
3175          // nice side effect of matching slide speed if the user stopped moving before
3176          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
3177          // For faster swipes, also apply limits (albeit higher ones).
3178          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
3179          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
3180          if (moveDistance < currentSlideSize) {
3181            momentumDuration = params.speed;
3182          } else if (moveDistance < 2 * currentSlideSize) {
3183            momentumDuration = params.speed * 1.5;
3184          } else {
3185            momentumDuration = params.speed * 2.5;
3186          }
3187        }
3188      } else if (params.freeMode.sticky) {
3189        swiper.slideToClosest();
3190        return;
3191      }
3192      if (params.freeMode.momentumBounce && doBounce) {
3193        swiper.updateProgress(afterBouncePosition);
3194        swiper.setTransition(momentumDuration);
3195        swiper.setTranslate(newPosition);
3196        swiper.transitionStart(true, swiper.swipeDirection);
3197        swiper.animating = true;
3198        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.j)(wrapperEl, () => {
3199          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
3200          emit('momentumBounce');
3201          swiper.setTransition(params.speed);
3202          setTimeout(() => {
3203            swiper.setTranslate(afterBouncePosition);
3204            (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.j)(wrapperEl, () => {
3205              if (!swiper || swiper.destroyed) return;
3206              swiper.transitionEnd();
3207            });
3208          }, 0);
3209        });
3210      } else if (swiper.velocity) {
3211        emit('_freeModeNoMomentumRelease');
3212        swiper.updateProgress(newPosition);
3213        swiper.setTransition(momentumDuration);
3214        swiper.setTranslate(newPosition);
3215        swiper.transitionStart(true, swiper.swipeDirection);
3216        if (!swiper.animating) {
3217          swiper.animating = true;
3218          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.j)(wrapperEl, () => {
3219            if (!swiper || swiper.destroyed) return;
3220            swiper.transitionEnd();
3221          });
3222        }
3223      } else {
3224        swiper.updateProgress(newPosition);
3225      }
3226      swiper.updateActiveIndex();
3227      swiper.updateSlidesClasses();
3228    } else if (params.freeMode.sticky) {
3229      swiper.slideToClosest();
3230      return;
3231    } else if (params.freeMode) {
3232      emit('_freeModeNoMomentumRelease');
3233    }
3234    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
3235      emit('_freeModeStaticRelease');
3236      swiper.updateProgress();
3237      swiper.updateActiveIndex();
3238      swiper.updateSlidesClasses();
3239    }
3240  }
3241  Object.assign(swiper, {
3242    freeMode: {
3243      onTouchStart,
3244      onTouchMove,
3245      onTouchEnd
3246    }
3247  });
3248}
3249
3250
3251
3252
3253/***/ }),
3254
vendor: 5,711 bytes, lines 3255-3424
3255/***/ "./node_modules/swiper/modules/grid.mjs":
3256/*!**********************************************!*\
3257  !*** ./node_modules/swiper/modules/grid.mjs ***!
3258  \**********************************************/
3259/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3260
3261"use strict";
3262__webpack_require__.r(__webpack_exports__);
3263/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3264/* harmony export */   "default": () => (/* binding */ Grid)
3265/* harmony export */ });
3266function Grid(_ref) {
3267  let {
3268    swiper,
3269    extendParams,
3270    on
3271  } = _ref;
3272  extendParams({
3273    grid: {
3274      rows: 1,
3275      fill: 'column'
3276    }
3277  });
3278  let slidesNumberEvenToRows;
3279  let slidesPerRow;
3280  let numFullColumns;
3281  let wasMultiRow;
3282  const getSpaceBetween = () => {
3283    let spaceBetween = swiper.params.spaceBetween;
3284    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
3285      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
3286    } else if (typeof spaceBetween === 'string') {
3287      spaceBetween = parseFloat(spaceBetween);
3288    }
3289    return spaceBetween;
3290  };
3291  const initSlides = slides => {
3292    const {
3293      slidesPerView
3294    } = swiper.params;
3295    const {
3296      rows,
3297      fill
3298    } = swiper.params.grid;
3299    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
3300    numFullColumns = Math.floor(slidesLength / rows);
3301    if (Math.floor(slidesLength / rows) === slidesLength / rows) {
3302      slidesNumberEvenToRows = slidesLength;
3303    } else {
3304      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
3305    }
3306    if (slidesPerView !== 'auto' && fill === 'row') {
3307      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
3308    }
3309    slidesPerRow = slidesNumberEvenToRows / rows;
3310  };
3311  const unsetSlides = () => {
3312    if (swiper.slides) {
3313      swiper.slides.forEach(slide => {
3314        if (slide.swiperSlideGridSet) {
3315          slide.style.height = '';
3316          slide.style[swiper.getDirectionLabel('margin-top')] = '';
3317        }
3318      });
3319    }
3320  };
3321  const updateSlide = (i, slide, slides) => {
3322    const {
3323      slidesPerGroup
3324    } = swiper.params;
3325    const spaceBetween = getSpaceBetween();
3326    const {
3327      rows,
3328      fill
3329    } = swiper.params.grid;
3330    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
3331    // Set slides order
3332    let newSlideOrderIndex;
3333    let column;
3334    let row;
3335    if (fill === 'row' && slidesPerGroup > 1) {
3336      const groupIndex = Math.floor(i / (slidesPerGroup * rows));
3337      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
3338      const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
3339      row = Math.floor(slideIndexInGroup / columnsInGroup);
3340      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
3341      newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
3342      slide.style.order = newSlideOrderIndex;
3343    } else if (fill === 'column') {
3344      column = Math.floor(i / rows);
3345      row = i - column * rows;
3346      if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
3347        row += 1;
3348        if (row >= rows) {
3349          row = 0;
3350          column += 1;
3351        }
3352      }
3353    } else {
3354      row = Math.floor(i / slidesPerRow);
3355      column = i - row * slidesPerRow;
3356    }
3357    slide.row = row;
3358    slide.column = column;
3359    slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;
3360    slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
3361    slide.swiperSlideGridSet = true;
3362  };
3363  const updateWrapperSize = (slideSize, snapGrid) => {
3364    const {
3365      centeredSlides,
3366      roundLengths
3367    } = swiper.params;
3368    const spaceBetween = getSpaceBetween();
3369    const {
3370      rows
3371    } = swiper.params.grid;
3372    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
3373    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
3374    if (!swiper.params.cssMode) {
3375      swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
3376    }
3377    if (centeredSlides) {
3378      const newSlidesGrid = [];
3379      for (let i = 0; i < snapGrid.length; i += 1) {
3380        let slidesGridItem = snapGrid[i];
3381        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
3382        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
3383      }
3384      snapGrid.splice(0, snapGrid.length);
3385      snapGrid.push(...newSlidesGrid);
3386    }
3387  };
3388  const onInit = () => {
3389    wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
3390  };
3391  const onUpdate = () => {
3392    const {
3393      params,
3394      el
3395    } = swiper;
3396    const isMultiRow = params.grid && params.grid.rows > 1;
3397    if (wasMultiRow && !isMultiRow) {
3398      el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
3399      numFullColumns = 1;
3400      swiper.emitContainerClasses();
3401    } else if (!wasMultiRow && isMultiRow) {
3402      el.classList.add(`${params.containerModifierClass}grid`);
3403      if (params.grid.fill === 'column') {
3404        el.classList.add(`${params.containerModifierClass}grid-column`);
3405      }
3406      swiper.emitContainerClasses();
3407    }
3408    wasMultiRow = isMultiRow;
3409  };
3410  on('init', onInit);
3411  on('update', onUpdate);
3412  swiper.grid = {
3413    initSlides,
3414    unsetSlides,
3415    updateSlide,
3416    updateWrapperSize
3417  };
3418}
3419
3420
3421
3422
3423/***/ }),
3424
vendor: 4,412 bytes, lines 3425-3534
3425/***/ "./node_modules/swiper/modules/hash-navigation.mjs":
3426/*!*********************************************************!*\
3427  !*** ./node_modules/swiper/modules/hash-navigation.mjs ***!
3428  \*********************************************************/
3429/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3430
3431"use strict";
3432__webpack_require__.r(__webpack_exports__);
3433/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3434/* harmony export */   "default": () => (/* binding */ HashNavigation)
3435/* harmony export */ });
3436/* 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");
3437/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3438
3439
3440
3441function HashNavigation(_ref) {
3442  let {
3443    swiper,
3444    extendParams,
3445    emit,
3446    on
3447  } = _ref;
3448  let initialized = false;
3449  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
3450  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
3451  extendParams({
3452    hashNavigation: {
3453      enabled: false,
3454      replaceState: false,
3455      watchState: false,
3456      getSlideIndex(_s, hash) {
3457        if (swiper.virtual && swiper.params.virtual.enabled) {
3458          const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];
3459          if (!slideWithHash) return 0;
3460          const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
3461          return index;
3462        }
3463        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]);
3464      }
3465    }
3466  });
3467  const onHashChange = () => {
3468    emit('hashChange');
3469    const newHash = document.location.hash.replace('#', '');
3470    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
3471    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';
3472    if (newHash !== activeSlideHash) {
3473      const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);
3474      if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;
3475      swiper.slideTo(newIndex);
3476    }
3477  };
3478  const setHash = () => {
3479    if (!initialized || !swiper.params.hashNavigation.enabled) return;
3480    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
3481    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';
3482    if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
3483      window.history.replaceState(null, null, `#${activeSlideHash}` || '');
3484      emit('hashSet');
3485    } else {
3486      document.location.hash = activeSlideHash || '';
3487      emit('hashSet');
3488    }
3489  };
3490  const init = () => {
3491    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;
3492    initialized = true;
3493    const hash = document.location.hash.replace('#', '');
3494    if (hash) {
3495      const speed = 0;
3496      const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);
3497      swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);
3498    }
3499    if (swiper.params.hashNavigation.watchState) {
3500      window.addEventListener('hashchange', onHashChange);
3501    }
3502  };
3503  const destroy = () => {
3504    if (swiper.params.hashNavigation.watchState) {
3505      window.removeEventListener('hashchange', onHashChange);
3506    }
3507  };
3508  on('init', () => {
3509    if (swiper.params.hashNavigation.enabled) {
3510      init();
3511    }
3512  });
3513  on('destroy', () => {
3514    if (swiper.params.hashNavigation.enabled) {
3515      destroy();
3516    }
3517  });
3518  on('transitionEnd _freeModeNoMomentumRelease', () => {
3519    if (initialized) {
3520      setHash();
3521    }
3522  });
3523  on('slideChange', () => {
3524    if (initialized && swiper.params.cssMode) {
3525      setHash();
3526    }
3527  });
3528}
3529
3530
3531
3532
3533/***/ }),
3534
vendor: 5,002 bytes, lines 3535-3692
3535/***/ "./node_modules/swiper/modules/history.mjs":
3536/*!*************************************************!*\
3537  !*** ./node_modules/swiper/modules/history.mjs ***!
3538  \*************************************************/
3539/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3540
3541"use strict";
3542__webpack_require__.r(__webpack_exports__);
3543/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3544/* harmony export */   "default": () => (/* binding */ History)
3545/* harmony export */ });
3546/* 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");
3547
3548
3549function History(_ref) {
3550  let {
3551    swiper,
3552    extendParams,
3553    on
3554  } = _ref;
3555  extendParams({
3556    history: {
3557      enabled: false,
3558      root: '',
3559      replaceState: false,
3560      key: 'slides',
3561      keepQuery: false
3562    }
3563  });
3564  let initialized = false;
3565  let paths = {};
3566  const slugify = text => {
3567    return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
3568  };
3569  const getPathValues = urlOverride => {
3570    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
3571    let location;
3572    if (urlOverride) {
3573      location = new URL(urlOverride);
3574    } else {
3575      location = window.location;
3576    }
3577    const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');
3578    const total = pathArray.length;
3579    const key = pathArray[total - 2];
3580    const value = pathArray[total - 1];
3581    return {
3582      key,
3583      value
3584    };
3585  };
3586  const setHistory = (key, index) => {
3587    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
3588    if (!initialized || !swiper.params.history.enabled) return;
3589    let location;
3590    if (swiper.params.url) {
3591      location = new URL(swiper.params.url);
3592    } else {
3593      location = window.location;
3594    }
3595    const slide = swiper.slides[index];
3596    let value = slugify(slide.getAttribute('data-history'));
3597    if (swiper.params.history.root.length > 0) {
3598      let root = swiper.params.history.root;
3599      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);
3600      value = `${root}/${key ? `${key}/` : ''}${value}`;
3601    } else if (!location.pathname.includes(key)) {
3602      value = `${key ? `${key}/` : ''}${value}`;
3603    }
3604    if (swiper.params.history.keepQuery) {
3605      value += location.search;
3606    }
3607    const currentState = window.history.state;
3608    if (currentState && currentState.value === value) {
3609      return;
3610    }
3611    if (swiper.params.history.replaceState) {
3612      window.history.replaceState({
3613        value
3614      }, null, value);
3615    } else {
3616      window.history.pushState({
3617        value
3618      }, null, value);
3619    }
3620  };
3621  const scrollToSlide = (speed, value, runCallbacks) => {
3622    if (value) {
3623      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
3624        const slide = swiper.slides[i];
3625        const slideHistory = slugify(slide.getAttribute('data-history'));
3626        if (slideHistory === value) {
3627          const index = swiper.getSlideIndex(slide);
3628          swiper.slideTo(index, speed, runCallbacks);
3629        }
3630      }
3631    } else {
3632      swiper.slideTo(0, speed, runCallbacks);
3633    }
3634  };
3635  const setHistoryPopState = () => {
3636    paths = getPathValues(swiper.params.url);
3637    scrollToSlide(swiper.params.speed, paths.value, false);
3638  };
3639  const init = () => {
3640    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
3641    if (!swiper.params.history) return;
3642    if (!window.history || !window.history.pushState) {
3643      swiper.params.history.enabled = false;
3644      swiper.params.hashNavigation.enabled = true;
3645      return;
3646    }
3647    initialized = true;
3648    paths = getPathValues(swiper.params.url);
3649    if (!paths.key && !paths.value) {
3650      if (!swiper.params.history.replaceState) {
3651        window.addEventListener('popstate', setHistoryPopState);
3652      }
3653      return;
3654    }
3655    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
3656    if (!swiper.params.history.replaceState) {
3657      window.addEventListener('popstate', setHistoryPopState);
3658    }
3659  };
3660  const destroy = () => {
3661    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
3662    if (!swiper.params.history.replaceState) {
3663      window.removeEventListener('popstate', setHistoryPopState);
3664    }
3665  };
3666  on('init', () => {
3667    if (swiper.params.history.enabled) {
3668      init();
3669    }
3670  });
3671  on('destroy', () => {
3672    if (swiper.params.history.enabled) {
3673      destroy();
3674    }
3675  });
3676  on('transitionEnd _freeModeNoMomentumRelease', () => {
3677    if (initialized) {
3678      setHistory(swiper.params.history.key, swiper.activeIndex);
3679    }
3680  });
3681  on('slideChange', () => {
3682    if (initialized && swiper.params.cssMode) {
3683      setHistory(swiper.params.history.key, swiper.activeIndex);
3684    }
3685  });
3686}
3687
3688
3689
3690
3691/***/ }),
3692
vendor: 6,991 bytes, lines 3693-3774
3693/***/ "./node_modules/swiper/modules/index.mjs":
3694/*!***********************************************!*\
3695  !*** ./node_modules/swiper/modules/index.mjs ***!
3696  \***********************************************/
3697/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3698
3699"use strict";
3700__webpack_require__.r(__webpack_exports__);
3701/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3702/* harmony export */   A11y: () => (/* reexport safe */ _a11y_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
3703/* harmony export */   Autoplay: () => (/* reexport safe */ _autoplay_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
3704/* harmony export */   Controller: () => (/* reexport safe */ _controller_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
3705/* harmony export */   EffectCards: () => (/* reexport safe */ _effect_cards_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
3706/* harmony export */   EffectCoverflow: () => (/* reexport safe */ _effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
3707/* harmony export */   EffectCreative: () => (/* reexport safe */ _effect_creative_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]),
3708/* harmony export */   EffectCube: () => (/* reexport safe */ _effect_cube_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
3709/* harmony export */   EffectFade: () => (/* reexport safe */ _effect_fade_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
3710/* harmony export */   EffectFlip: () => (/* reexport safe */ _effect_flip_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
3711/* harmony export */   FreeMode: () => (/* reexport safe */ _free_mode_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
3712/* harmony export */   Grid: () => (/* reexport safe */ _grid_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
3713/* harmony export */   HashNavigation: () => (/* reexport safe */ _hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
3714/* harmony export */   History: () => (/* reexport safe */ _history_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
3715/* harmony export */   Keyboard: () => (/* reexport safe */ _keyboard_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]),
3716/* harmony export */   Manipulation: () => (/* reexport safe */ _manipulation_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
3717/* harmony export */   Mousewheel: () => (/* reexport safe */ _mousewheel_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
3718/* harmony export */   Navigation: () => (/* reexport safe */ _navigation_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
3719/* harmony export */   Pagination: () => (/* reexport safe */ _pagination_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
3720/* harmony export */   Parallax: () => (/* reexport safe */ _parallax_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
3721/* harmony export */   Scrollbar: () => (/* reexport safe */ _scrollbar_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
3722/* harmony export */   Thumbs: () => (/* reexport safe */ _thumbs_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
3723/* harmony export */   Virtual: () => (/* reexport safe */ _virtual_mjs__WEBPACK_IMPORTED_MODULE_0__["default"]),
3724/* harmony export */   Zoom: () => (/* reexport safe */ _zoom_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])
3725/* harmony export */ });
3726/* harmony import */ var _virtual_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./virtual.mjs */ "./node_modules/swiper/modules/virtual.mjs");
3727/* harmony import */ var _keyboard_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keyboard.mjs */ "./node_modules/swiper/modules/keyboard.mjs");
3728/* harmony import */ var _mousewheel_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mousewheel.mjs */ "./node_modules/swiper/modules/mousewheel.mjs");
3729/* harmony import */ var _navigation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./navigation.mjs */ "./node_modules/swiper/modules/navigation.mjs");
3730/* harmony import */ var _pagination_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pagination.mjs */ "./node_modules/swiper/modules/pagination.mjs");
3731/* harmony import */ var _scrollbar_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./scrollbar.mjs */ "./node_modules/swiper/modules/scrollbar.mjs");
3732/* harmony import */ var _parallax_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parallax.mjs */ "./node_modules/swiper/modules/parallax.mjs");
3733/* harmony import */ var _zoom_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./zoom.mjs */ "./node_modules/swiper/modules/zoom.mjs");
3734/* harmony import */ var _controller_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./controller.mjs */ "./node_modules/swiper/modules/controller.mjs");
3735/* harmony import */ var _a11y_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./a11y.mjs */ "./node_modules/swiper/modules/a11y.mjs");
3736/* harmony import */ var _history_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./history.mjs */ "./node_modules/swiper/modules/history.mjs");
3737/* harmony import */ var _hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./hash-navigation.mjs */ "./node_modules/swiper/modules/hash-navigation.mjs");
3738/* harmony import */ var _autoplay_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./autoplay.mjs */ "./node_modules/swiper/modules/autoplay.mjs");
3739/* harmony import */ var _thumbs_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./thumbs.mjs */ "./node_modules/swiper/modules/thumbs.mjs");
3740/* harmony import */ var _free_mode_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./free-mode.mjs */ "./node_modules/swiper/modules/free-mode.mjs");
3741/* harmony import */ var _grid_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./grid.mjs */ "./node_modules/swiper/modules/grid.mjs");
3742/* harmony import */ var _manipulation_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./manipulation.mjs */ "./node_modules/swiper/modules/manipulation.mjs");
3743/* harmony import */ var _effect_fade_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./effect-fade.mjs */ "./node_modules/swiper/modules/effect-fade.mjs");
3744/* harmony import */ var _effect_cube_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./effect-cube.mjs */ "./node_modules/swiper/modules/effect-cube.mjs");
3745/* harmony import */ var _effect_flip_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./effect-flip.mjs */ "./node_modules/swiper/modules/effect-flip.mjs");
3746/* harmony import */ var _effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./effect-coverflow.mjs */ "./node_modules/swiper/modules/effect-coverflow.mjs");
3747/* harmony import */ var _effect_creative_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./effect-creative.mjs */ "./node_modules/swiper/modules/effect-creative.mjs");
3748/* harmony import */ var _effect_cards_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./effect-cards.mjs */ "./node_modules/swiper/modules/effect-cards.mjs");
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773/***/ }),
3774
vendor: 5,273 bytes, lines 3775-3908
3775/***/ "./node_modules/swiper/modules/keyboard.mjs":
3776/*!**************************************************!*\
3777  !*** ./node_modules/swiper/modules/keyboard.mjs ***!
3778  \**************************************************/
3779/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3780
3781"use strict";
3782__webpack_require__.r(__webpack_exports__);
3783/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3784/* harmony export */   "default": () => (/* binding */ Keyboard)
3785/* harmony export */ });
3786/* 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");
3787/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
3788
3789
3790
3791/* eslint-disable consistent-return */
3792function Keyboard(_ref) {
3793  let {
3794    swiper,
3795    extendParams,
3796    on,
3797    emit
3798  } = _ref;
3799  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
3800  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
3801  swiper.keyboard = {
3802    enabled: false
3803  };
3804  extendParams({
3805    keyboard: {
3806      enabled: false,
3807      onlyInViewport: true,
3808      pageUpDown: true
3809    }
3810  });
3811  function handle(event) {
3812    if (!swiper.enabled) return;
3813    const {
3814      rtlTranslate: rtl
3815    } = swiper;
3816    let e = event;
3817    if (e.originalEvent) e = e.originalEvent; // jquery fix
3818    const kc = e.keyCode || e.charCode;
3819    const pageUpDown = swiper.params.keyboard.pageUpDown;
3820    const isPageUp = pageUpDown && kc === 33;
3821    const isPageDown = pageUpDown && kc === 34;
3822    const isArrowLeft = kc === 37;
3823    const isArrowRight = kc === 39;
3824    const isArrowUp = kc === 38;
3825    const isArrowDown = kc === 40;
3826    // Directions locks
3827    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {
3828      return false;
3829    }
3830    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {
3831      return false;
3832    }
3833    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
3834      return undefined;
3835    }
3836    if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {
3837      return undefined;
3838    }
3839    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {
3840      let inView = false;
3841      // Check that swiper should be inside of visible area of window
3842      if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {
3843        return undefined;
3844      }
3845      const el = swiper.el;
3846      const swiperWidth = el.clientWidth;
3847      const swiperHeight = el.clientHeight;
3848      const windowWidth = window.innerWidth;
3849      const windowHeight = window.innerHeight;
3850      const swiperOffset = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(el);
3851      if (rtl) swiperOffset.left -= el.scrollLeft;
3852      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
3853      for (let i = 0; i < swiperCoord.length; i += 1) {
3854        const point = swiperCoord[i];
3855        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
3856          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
3857          inView = true;
3858        }
3859      }
3860      if (!inView) return undefined;
3861    }
3862    if (swiper.isHorizontal()) {
3863      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
3864        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
3865      }
3866      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
3867      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
3868    } else {
3869      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
3870        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
3871      }
3872      if (isPageDown || isArrowDown) swiper.slideNext();
3873      if (isPageUp || isArrowUp) swiper.slidePrev();
3874    }
3875    emit('keyPress', kc);
3876    return undefined;
3877  }
3878  function enable() {
3879    if (swiper.keyboard.enabled) return;
3880    document.addEventListener('keydown', handle);
3881    swiper.keyboard.enabled = true;
3882  }
3883  function disable() {
3884    if (!swiper.keyboard.enabled) return;
3885    document.removeEventListener('keydown', handle);
3886    swiper.keyboard.enabled = false;
3887  }
3888  on('init', () => {
3889    if (swiper.params.keyboard.enabled) {
3890      enable();
3891    }
3892  });
3893  on('destroy', () => {
3894    if (swiper.keyboard.enabled) {
3895      disable();
3896    }
3897  });
3898  Object.assign(swiper.keyboard, {
3899    enable,
3900    disable
3901  });
3902}
3903
3904
3905
3906
3907/***/ }),
3908
vendor: 5,517 bytes, lines 3909-4114
3909/***/ "./node_modules/swiper/modules/manipulation.mjs":
3910/*!******************************************************!*\
3911  !*** ./node_modules/swiper/modules/manipulation.mjs ***!
3912  \******************************************************/
3913/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3914
3915"use strict";
3916__webpack_require__.r(__webpack_exports__);
3917/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3918/* harmony export */   "default": () => (/* binding */ Manipulation)
3919/* harmony export */ });
3920function appendSlide(slides) {
3921  const swiper = this;
3922  const {
3923    params,
3924    slidesEl
3925  } = swiper;
3926  if (params.loop) {
3927    swiper.loopDestroy();
3928  }
3929  const appendElement = slideEl => {
3930    if (typeof slideEl === 'string') {
3931      const tempDOM = document.createElement('div');
3932      tempDOM.innerHTML = slideEl;
3933      slidesEl.append(tempDOM.children[0]);
3934      tempDOM.innerHTML = '';
3935    } else {
3936      slidesEl.append(slideEl);
3937    }
3938  };
3939  if (typeof slides === 'object' && 'length' in slides) {
3940    for (let i = 0; i < slides.length; i += 1) {
3941      if (slides[i]) appendElement(slides[i]);
3942    }
3943  } else {
3944    appendElement(slides);
3945  }
3946  swiper.recalcSlides();
3947  if (params.loop) {
3948    swiper.loopCreate();
3949  }
3950  if (!params.observer || swiper.isElement) {
3951    swiper.update();
3952  }
3953}
3954
3955function prependSlide(slides) {
3956  const swiper = this;
3957  const {
3958    params,
3959    activeIndex,
3960    slidesEl
3961  } = swiper;
3962  if (params.loop) {
3963    swiper.loopDestroy();
3964  }
3965  let newActiveIndex = activeIndex + 1;
3966  const prependElement = slideEl => {
3967    if (typeof slideEl === 'string') {
3968      const tempDOM = document.createElement('div');
3969      tempDOM.innerHTML = slideEl;
3970      slidesEl.prepend(tempDOM.children[0]);
3971      tempDOM.innerHTML = '';
3972    } else {
3973      slidesEl.prepend(slideEl);
3974    }
3975  };
3976  if (typeof slides === 'object' && 'length' in slides) {
3977    for (let i = 0; i < slides.length; i += 1) {
3978      if (slides[i]) prependElement(slides[i]);
3979    }
3980    newActiveIndex = activeIndex + slides.length;
3981  } else {
3982    prependElement(slides);
3983  }
3984  swiper.recalcSlides();
3985  if (params.loop) {
3986    swiper.loopCreate();
3987  }
3988  if (!params.observer || swiper.isElement) {
3989    swiper.update();
3990  }
3991  swiper.slideTo(newActiveIndex, 0, false);
3992}
3993
3994function addSlide(index, slides) {
3995  const swiper = this;
3996  const {
3997    params,
3998    activeIndex,
3999    slidesEl
4000  } = swiper;
4001  let activeIndexBuffer = activeIndex;
4002  if (params.loop) {
4003    activeIndexBuffer -= swiper.loopedSlides;
4004    swiper.loopDestroy();
4005    swiper.recalcSlides();
4006  }
4007  const baseLength = swiper.slides.length;
4008  if (index <= 0) {
4009    swiper.prependSlide(slides);
4010    return;
4011  }
4012  if (index >= baseLength) {
4013    swiper.appendSlide(slides);
4014    return;
4015  }
4016  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
4017  const slidesBuffer = [];
4018  for (let i = baseLength - 1; i >= index; i -= 1) {
4019    const currentSlide = swiper.slides[i];
4020    currentSlide.remove();
4021    slidesBuffer.unshift(currentSlide);
4022  }
4023  if (typeof slides === 'object' && 'length' in slides) {
4024    for (let i = 0; i < slides.length; i += 1) {
4025      if (slides[i]) slidesEl.append(slides[i]);
4026    }
4027    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
4028  } else {
4029    slidesEl.append(slides);
4030  }
4031  for (let i = 0; i < slidesBuffer.length; i += 1) {
4032    slidesEl.append(slidesBuffer[i]);
4033  }
4034  swiper.recalcSlides();
4035  if (params.loop) {
4036    swiper.loopCreate();
4037  }
4038  if (!params.observer || swiper.isElement) {
4039    swiper.update();
4040  }
4041  if (params.loop) {
4042    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
4043  } else {
4044    swiper.slideTo(newActiveIndex, 0, false);
4045  }
4046}
4047
4048function removeSlide(slidesIndexes) {
4049  const swiper = this;
4050  const {
4051    params,
4052    activeIndex
4053  } = swiper;
4054  let activeIndexBuffer = activeIndex;
4055  if (params.loop) {
4056    activeIndexBuffer -= swiper.loopedSlides;
4057    swiper.loopDestroy();
4058  }
4059  let newActiveIndex = activeIndexBuffer;
4060  let indexToRemove;
4061  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
4062    for (let i = 0; i < slidesIndexes.length; i += 1) {
4063      indexToRemove = slidesIndexes[i];
4064      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
4065      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
4066    }
4067    newActiveIndex = Math.max(newActiveIndex, 0);
4068  } else {
4069    indexToRemove = slidesIndexes;
4070    if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
4071    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
4072    newActiveIndex = Math.max(newActiveIndex, 0);
4073  }
4074  swiper.recalcSlides();
4075  if (params.loop) {
4076    swiper.loopCreate();
4077  }
4078  if (!params.observer || swiper.isElement) {
4079    swiper.update();
4080  }
4081  if (params.loop) {
4082    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
4083  } else {
4084    swiper.slideTo(newActiveIndex, 0, false);
4085  }
4086}
4087
4088function removeAllSlides() {
4089  const swiper = this;
4090  const slidesIndexes = [];
4091  for (let i = 0; i < swiper.slides.length; i += 1) {
4092    slidesIndexes.push(i);
4093  }
4094  swiper.removeSlide(slidesIndexes);
4095}
4096
4097function Manipulation(_ref) {
4098  let {
4099    swiper
4100  } = _ref;
4101  Object.assign(swiper, {
4102    appendSlide: appendSlide.bind(swiper),
4103    prependSlide: prependSlide.bind(swiper),
4104    addSlide: addSlide.bind(swiper),
4105    removeSlide: removeSlide.bind(swiper),
4106    removeAllSlides: removeAllSlides.bind(swiper)
4107  });
4108}
4109
4110
4111
4112
4113/***/ }),
4114
vendor: 15,884 bytes, lines 4115-4524
4115/***/ "./node_modules/swiper/modules/mousewheel.mjs":
4116/*!****************************************************!*\
4117  !*** ./node_modules/swiper/modules/mousewheel.mjs ***!
4118  \****************************************************/
4119/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4120
4121"use strict";
4122__webpack_require__.r(__webpack_exports__);
4123/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4124/* harmony export */   "default": () => (/* binding */ Mousewheel)
4125/* harmony export */ });
4126/* 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");
4127/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4128
4129
4130
4131/* eslint-disable consistent-return */
4132function Mousewheel(_ref) {
4133  let {
4134    swiper,
4135    extendParams,
4136    on,
4137    emit
4138  } = _ref;
4139  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
4140  extendParams({
4141    mousewheel: {
4142      enabled: false,
4143      releaseOnEdges: false,
4144      invert: false,
4145      forceToAxis: false,
4146      sensitivity: 1,
4147      eventsTarget: 'container',
4148      thresholdDelta: null,
4149      thresholdTime: null,
4150      noMousewheelClass: 'swiper-no-mousewheel'
4151    }
4152  });
4153  swiper.mousewheel = {
4154    enabled: false
4155  };
4156  let timeout;
4157  let lastScrollTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
4158  let lastEventBeforeSnap;
4159  const recentWheelEvents = [];
4160  function normalize(e) {
4161    // Reasonable defaults
4162    const PIXEL_STEP = 10;
4163    const LINE_HEIGHT = 40;
4164    const PAGE_HEIGHT = 800;
4165    let sX = 0;
4166    let sY = 0; // spinX, spinY
4167    let pX = 0;
4168    let pY = 0; // pixelX, pixelY
4169
4170    // Legacy
4171    if ('detail' in e) {
4172      sY = e.detail;
4173    }
4174    if ('wheelDelta' in e) {
4175      sY = -e.wheelDelta / 120;
4176    }
4177    if ('wheelDeltaY' in e) {
4178      sY = -e.wheelDeltaY / 120;
4179    }
4180    if ('wheelDeltaX' in e) {
4181      sX = -e.wheelDeltaX / 120;
4182    }
4183
4184    // side scrolling on FF with DOMMouseScroll
4185    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {
4186      sX = sY;
4187      sY = 0;
4188    }
4189    pX = sX * PIXEL_STEP;
4190    pY = sY * PIXEL_STEP;
4191    if ('deltaY' in e) {
4192      pY = e.deltaY;
4193    }
4194    if ('deltaX' in e) {
4195      pX = e.deltaX;
4196    }
4197    if (e.shiftKey && !pX) {
4198      // if user scrolls with shift he wants horizontal scroll
4199      pX = pY;
4200      pY = 0;
4201    }
4202    if ((pX || pY) && e.deltaMode) {
4203      if (e.deltaMode === 1) {
4204        // delta in LINE units
4205        pX *= LINE_HEIGHT;
4206        pY *= LINE_HEIGHT;
4207      } else {
4208        // delta in PAGE units
4209        pX *= PAGE_HEIGHT;
4210        pY *= PAGE_HEIGHT;
4211      }
4212    }
4213
4214    // Fall-back if spin cannot be determined
4215    if (pX && !sX) {
4216      sX = pX < 1 ? -1 : 1;
4217    }
4218    if (pY && !sY) {
4219      sY = pY < 1 ? -1 : 1;
4220    }
4221    return {
4222      spinX: sX,
4223      spinY: sY,
4224      pixelX: pX,
4225      pixelY: pY
4226    };
4227  }
4228  function handleMouseEnter() {
4229    if (!swiper.enabled) return;
4230    swiper.mouseEntered = true;
4231  }
4232  function handleMouseLeave() {
4233    if (!swiper.enabled) return;
4234    swiper.mouseEntered = false;
4235  }
4236  function animateSlider(newEvent) {
4237    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {
4238      // Prevent if delta of wheel scroll delta is below configured threshold
4239      return false;
4240    }
4241    if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {
4242      // Prevent if time between scrolls is below configured threshold
4243      return false;
4244    }
4245
4246    // If the movement is NOT big enough and
4247    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):
4248    //   Don't go any further (avoid insignificant scroll movement).
4249    if (newEvent.delta >= 6 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)() - lastScrollTime < 60) {
4250      // Return false as a default
4251      return true;
4252    }
4253    // If user is scrolling towards the end:
4254    //   If the slider hasn't hit the latest slide or
4255    //   if the slider is a loop and
4256    //   if the slider isn't moving right now:
4257    //     Go to next slide and
4258    //     emit a scroll event.
4259    // Else (the user is scrolling towards the beginning) and
4260    // if the slider hasn't hit the first slide or
4261    // if the slider is a loop and
4262    // if the slider isn't moving right now:
4263    //   Go to prev slide and
4264    //   emit a scroll event.
4265    if (newEvent.direction < 0) {
4266      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {
4267        swiper.slideNext();
4268        emit('scroll', newEvent.raw);
4269      }
4270    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {
4271      swiper.slidePrev();
4272      emit('scroll', newEvent.raw);
4273    }
4274    // If you got here is because an animation has been triggered so store the current time
4275    lastScrollTime = new window.Date().getTime();
4276    // Return false as a default
4277    return false;
4278  }
4279  function releaseScroll(newEvent) {
4280    const params = swiper.params.mousewheel;
4281    if (newEvent.direction < 0) {
4282      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {
4283        // Return true to animate scroll on edges
4284        return true;
4285      }
4286    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {
4287      // Return true to animate scroll on edges
4288      return true;
4289    }
4290    return false;
4291  }
4292  function handle(event) {
4293    let e = event;
4294    let disableParentSwiper = true;
4295    if (!swiper.enabled) return;
4296
4297    // Ignore event if the target or its parents have the swiper-no-mousewheel class
4298    if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;
4299    const params = swiper.params.mousewheel;
4300    if (swiper.params.cssMode) {
4301      e.preventDefault();
4302    }
4303    let targetEl = swiper.el;
4304    if (swiper.params.mousewheel.eventsTarget !== 'container') {
4305      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
4306    }
4307    const targetElContainsTarget = targetEl && targetEl.contains(e.target);
4308    if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;
4309    if (e.originalEvent) e = e.originalEvent; // jquery fix
4310    let delta = 0;
4311    const rtlFactor = swiper.rtlTranslate ? -1 : 1;
4312    const data = normalize(e);
4313    if (params.forceToAxis) {
4314      if (swiper.isHorizontal()) {
4315        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;
4316      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;
4317    } else {
4318      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;
4319    }
4320    if (delta === 0) return true;
4321    if (params.invert) delta = -delta;
4322
4323    // Get the scroll positions
4324    let positions = swiper.getTranslate() + delta * params.sensitivity;
4325    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();
4326    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();
4327
4328    // When loop is true:
4329    //     the disableParentSwiper will be true.
4330    // When loop is false:
4331    //     if the scroll positions is not on edge,
4332    //     then the disableParentSwiper will be true.
4333    //     if the scroll on edge positions,
4334    //     then the disableParentSwiper will be false.
4335    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());
4336    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();
4337    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {
4338      // Register the new event in a variable which stores the relevant data
4339      const newEvent = {
4340        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(),
4341        delta: Math.abs(delta),
4342        direction: Math.sign(delta),
4343        raw: event
4344      };
4345
4346      // Keep the most recent events
4347      if (recentWheelEvents.length >= 2) {
4348        recentWheelEvents.shift(); // only store the last N events
4349      }
4350
4351      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
4352      recentWheelEvents.push(newEvent);
4353
4354      // If there is at least one previous recorded event:
4355      //   If direction has changed or
4356      //   if the scroll is quicker than the previous one:
4357      //     Animate the slider.
4358      // Else (this is the first time the wheel is moved):
4359      //     Animate the slider.
4360      if (prevEvent) {
4361        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {
4362          animateSlider(newEvent);
4363        }
4364      } else {
4365        animateSlider(newEvent);
4366      }
4367
4368      // If it's time to release the scroll:
4369      //   Return now so you don't hit the preventDefault.
4370      if (releaseScroll(newEvent)) {
4371        return true;
4372      }
4373    } else {
4374      // Freemode or scrollContainer:
4375
4376      // If we recently snapped after a momentum scroll, then ignore wheel events
4377      // to give time for the deceleration to finish. Stop ignoring after 500 msecs
4378      // or if it's a new scroll (larger delta or inverse sign as last event before
4379      // an end-of-momentum snap).
4380      const newEvent = {
4381        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(),
4382        delta: Math.abs(delta),
4383        direction: Math.sign(delta)
4384      };
4385      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;
4386      if (!ignoreWheelEvents) {
4387        lastEventBeforeSnap = undefined;
4388        let position = swiper.getTranslate() + delta * params.sensitivity;
4389        const wasBeginning = swiper.isBeginning;
4390        const wasEnd = swiper.isEnd;
4391        if (position >= swiper.minTranslate()) position = swiper.minTranslate();
4392        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();
4393        swiper.setTransition(0);
4394        swiper.setTranslate(position);
4395        swiper.updateProgress();
4396        swiper.updateActiveIndex();
4397        swiper.updateSlidesClasses();
4398        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {
4399          swiper.updateSlidesClasses();
4400        }
4401        if (swiper.params.loop) {
4402          swiper.loopFix({
4403            direction: newEvent.direction < 0 ? 'next' : 'prev',
4404            byMousewheel: true
4405          });
4406        }
4407        if (swiper.params.freeMode.sticky) {
4408          // When wheel scrolling starts with sticky (aka snap) enabled, then detect
4409          // the end of a momentum scroll by storing recent (N=15?) wheel events.
4410          // 1. do all N events have decreasing or same (absolute value) delta?
4411          // 2. did all N events arrive in the last M (M=500?) msecs?
4412          // 3. does the earliest event have an (absolute value) delta that's
4413          //    at least P (P=1?) larger than the most recent event's delta?
4414          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?
4415          // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration.
4416          // Snap immediately and ignore remaining wheel events in this scroll.
4417          // See comment above for "remaining wheel events in this scroll" determination.
4418          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.
4419          clearTimeout(timeout);
4420          timeout = undefined;
4421          if (recentWheelEvents.length >= 15) {
4422            recentWheelEvents.shift(); // only store the last N events
4423          }
4424
4425          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
4426          const firstEvent = recentWheelEvents[0];
4427          recentWheelEvents.push(newEvent);
4428          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {
4429            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.
4430            recentWheelEvents.splice(0);
4431          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {
4432            // We're at the end of the deceleration of a momentum scroll, so there's no need
4433            // to wait for more events. Snap ASAP on the next tick.
4434            // Also, because there's some remaining momentum we'll bias the snap in the
4435            // direction of the ongoing scroll because it's better UX for the scroll to snap
4436            // in the same direction as the scroll instead of reversing to snap.  Therefore,
4437            // if it's already scrolled more than 20% in the current direction, keep going.
4438            const snapToThreshold = delta > 0 ? 0.8 : 0.2;
4439            lastEventBeforeSnap = newEvent;
4440            recentWheelEvents.splice(0);
4441            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
4442              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
4443            }, 0); // no delay; move on next tick
4444          }
4445
4446          if (!timeout) {
4447            // if we get here, then we haven't detected the end of a momentum scroll, so
4448            // we'll consider a scroll "complete" when there haven't been any wheel events
4449            // for 500ms.
4450            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
4451              const snapToThreshold = 0.5;
4452              lastEventBeforeSnap = newEvent;
4453              recentWheelEvents.splice(0);
4454              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
4455            }, 500);
4456          }
4457        }
4458
4459        // Emit event
4460        if (!ignoreWheelEvents) emit('scroll', e);
4461
4462        // Stop autoplay
4463        if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();
4464        // Return page scroll on edge positions
4465        if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {
4466          return true;
4467        }
4468      }
4469    }
4470    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
4471    return false;
4472  }
4473  function events(method) {
4474    let targetEl = swiper.el;
4475    if (swiper.params.mousewheel.eventsTarget !== 'container') {
4476      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
4477    }
4478    targetEl[method]('mouseenter', handleMouseEnter);
4479    targetEl[method]('mouseleave', handleMouseLeave);
4480    targetEl[method]('wheel', handle);
4481  }
4482  function enable() {
4483    if (swiper.params.cssMode) {
4484      swiper.wrapperEl.removeEventListener('wheel', handle);
4485      return true;
4486    }
4487    if (swiper.mousewheel.enabled) return false;
4488    events('addEventListener');
4489    swiper.mousewheel.enabled = true;
4490    return true;
4491  }
4492  function disable() {
4493    if (swiper.params.cssMode) {
4494      swiper.wrapperEl.addEventListener(event, handle);
4495      return true;
4496    }
4497    if (!swiper.mousewheel.enabled) return false;
4498    events('removeEventListener');
4499    swiper.mousewheel.enabled = false;
4500    return true;
4501  }
4502  on('init', () => {
4503    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {
4504      disable();
4505    }
4506    if (swiper.params.mousewheel.enabled) enable();
4507  });
4508  on('destroy', () => {
4509    if (swiper.params.cssMode) {
4510      enable();
4511    }
4512    if (swiper.mousewheel.enabled) disable();
4513  });
4514  Object.assign(swiper.mousewheel, {
4515    enable,
4516    disable
4517  });
4518}
4519
4520
4521
4522
4523/***/ }),
4524
vendor: 7,032 bytes, lines 4525-4732
4525/***/ "./node_modules/swiper/modules/navigation.mjs":
4526/*!****************************************************!*\
4527  !*** ./node_modules/swiper/modules/navigation.mjs ***!
4528  \****************************************************/
4529/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4530
4531"use strict";
4532__webpack_require__.r(__webpack_exports__);
4533/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4534/* harmony export */   "default": () => (/* binding */ Navigation)
4535/* harmony export */ });
4536/* 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");
4537/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4538
4539
4540
4541function Navigation(_ref) {
4542  let {
4543    swiper,
4544    extendParams,
4545    on,
4546    emit
4547  } = _ref;
4548  extendParams({
4549    navigation: {
4550      nextEl: null,
4551      prevEl: null,
4552      hideOnClick: false,
4553      disabledClass: 'swiper-button-disabled',
4554      hiddenClass: 'swiper-button-hidden',
4555      lockClass: 'swiper-button-lock',
4556      navigationDisabledClass: 'swiper-navigation-disabled'
4557    }
4558  });
4559  swiper.navigation = {
4560    nextEl: null,
4561    prevEl: null
4562  };
4563  function getEl(el) {
4564    let res;
4565    if (el && typeof el === 'string' && swiper.isElement) {
4566      res = swiper.el.querySelector(el);
4567      if (res) return res;
4568    }
4569    if (el) {
4570      if (typeof el === 'string') res = [...document.querySelectorAll(el)];
4571      if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {
4572        res = swiper.el.querySelector(el);
4573      }
4574    }
4575    if (el && !res) return el;
4576    // if (Array.isArray(res) && res.length === 1) res = res[0];
4577    return res;
4578  }
4579  function toggleEl(el, disabled) {
4580    const params = swiper.params.navigation;
4581    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
4582    el.forEach(subEl => {
4583      if (subEl) {
4584        subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));
4585        if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;
4586        if (swiper.params.watchOverflow && swiper.enabled) {
4587          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
4588        }
4589      }
4590    });
4591  }
4592  function update() {
4593    // Update Navigation Buttons
4594    const {
4595      nextEl,
4596      prevEl
4597    } = swiper.navigation;
4598    if (swiper.params.loop) {
4599      toggleEl(prevEl, false);
4600      toggleEl(nextEl, false);
4601      return;
4602    }
4603    toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);
4604    toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);
4605  }
4606  function onPrevClick(e) {
4607    e.preventDefault();
4608    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
4609    swiper.slidePrev();
4610    emit('navigationPrev');
4611  }
4612  function onNextClick(e) {
4613    e.preventDefault();
4614    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
4615    swiper.slideNext();
4616    emit('navigationNext');
4617  }
4618  function init() {
4619    const params = swiper.params.navigation;
4620    swiper.params.navigation = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
4621      nextEl: 'swiper-button-next',
4622      prevEl: 'swiper-button-prev'
4623    });
4624    if (!(params.nextEl || params.prevEl)) return;
4625    let nextEl = getEl(params.nextEl);
4626    let prevEl = getEl(params.prevEl);
4627    Object.assign(swiper.navigation, {
4628      nextEl,
4629      prevEl
4630    });
4631    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
4632    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
4633    const initButton = (el, dir) => {
4634      if (el) {
4635        el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
4636      }
4637      if (!swiper.enabled && el) {
4638        el.classList.add(...params.lockClass.split(' '));
4639      }
4640    };
4641    nextEl.forEach(el => initButton(el, 'next'));
4642    prevEl.forEach(el => initButton(el, 'prev'));
4643  }
4644  function destroy() {
4645    let {
4646      nextEl,
4647      prevEl
4648    } = swiper.navigation;
4649    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
4650    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
4651    const destroyButton = (el, dir) => {
4652      el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
4653      el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));
4654    };
4655    nextEl.forEach(el => destroyButton(el, 'next'));
4656    prevEl.forEach(el => destroyButton(el, 'prev'));
4657  }
4658  on('init', () => {
4659    if (swiper.params.navigation.enabled === false) {
4660      // eslint-disable-next-line
4661      disable();
4662    } else {
4663      init();
4664      update();
4665    }
4666  });
4667  on('toEdge fromEdge lock unlock', () => {
4668    update();
4669  });
4670  on('destroy', () => {
4671    destroy();
4672  });
4673  on('enable disable', () => {
4674    let {
4675      nextEl,
4676      prevEl
4677    } = swiper.navigation;
4678    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
4679    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
4680    if (swiper.enabled) {
4681      update();
4682      return;
4683    }
4684    [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));
4685  });
4686  on('click', (_s, e) => {
4687    let {
4688      nextEl,
4689      prevEl
4690    } = swiper.navigation;
4691    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
4692    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
4693    const targetEl = e.target;
4694    if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {
4695      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;
4696      let isHidden;
4697      if (nextEl.length) {
4698        isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);
4699      } else if (prevEl.length) {
4700        isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);
4701      }
4702      if (isHidden === true) {
4703        emit('navigationShow');
4704      } else {
4705        emit('navigationHide');
4706      }
4707      [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));
4708    }
4709  });
4710  const enable = () => {
4711    swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));
4712    init();
4713    update();
4714  };
4715  const disable = () => {
4716    swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));
4717    destroy();
4718  };
4719  Object.assign(swiper.navigation, {
4720    enable,
4721    disable,
4722    update,
4723    init,
4724    destroy
4725  });
4726}
4727
4728
4729
4730
4731/***/ }),
4732
vendor: 18,508 bytes, lines 4733-5193
4733/***/ "./node_modules/swiper/modules/pagination.mjs":
4734/*!****************************************************!*\
4735  !*** ./node_modules/swiper/modules/pagination.mjs ***!
4736  \****************************************************/
4737/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4738
4739"use strict";
4740__webpack_require__.r(__webpack_exports__);
4741/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4742/* harmony export */   "default": () => (/* binding */ Pagination)
4743/* harmony export */ });
4744/* 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");
4745/* 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");
4746/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
4747
4748
4749
4750
4751function Pagination(_ref) {
4752  let {
4753    swiper,
4754    extendParams,
4755    on,
4756    emit
4757  } = _ref;
4758  const pfx = 'swiper-pagination';
4759  extendParams({
4760    pagination: {
4761      el: null,
4762      bulletElement: 'span',
4763      clickable: false,
4764      hideOnClick: false,
4765      renderBullet: null,
4766      renderProgressbar: null,
4767      renderFraction: null,
4768      renderCustom: null,
4769      progressbarOpposite: false,
4770      type: 'bullets',
4771      // 'bullets' or 'progressbar' or 'fraction' or 'custom'
4772      dynamicBullets: false,
4773      dynamicMainBullets: 1,
4774      formatFractionCurrent: number => number,
4775      formatFractionTotal: number => number,
4776      bulletClass: `${pfx}-bullet`,
4777      bulletActiveClass: `${pfx}-bullet-active`,
4778      modifierClass: `${pfx}-`,
4779      currentClass: `${pfx}-current`,
4780      totalClass: `${pfx}-total`,
4781      hiddenClass: `${pfx}-hidden`,
4782      progressbarFillClass: `${pfx}-progressbar-fill`,
4783      progressbarOppositeClass: `${pfx}-progressbar-opposite`,
4784      clickableClass: `${pfx}-clickable`,
4785      lockClass: `${pfx}-lock`,
4786      horizontalClass: `${pfx}-horizontal`,
4787      verticalClass: `${pfx}-vertical`,
4788      paginationDisabledClass: `${pfx}-disabled`
4789    }
4790  });
4791  swiper.pagination = {
4792    el: null,
4793    bullets: []
4794  };
4795  let bulletSize;
4796  let dynamicBulletIndex = 0;
4797  function isPaginationDisabled() {
4798    return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;
4799  }
4800  function setSideBullets(bulletEl, position) {
4801    const {
4802      bulletActiveClass
4803    } = swiper.params.pagination;
4804    if (!bulletEl) return;
4805    bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
4806    if (bulletEl) {
4807      bulletEl.classList.add(`${bulletActiveClass}-${position}`);
4808      bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
4809      if (bulletEl) {
4810        bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);
4811      }
4812    }
4813  }
4814  function onBulletClick(e) {
4815    const bulletEl = e.target.closest((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletClass));
4816    if (!bulletEl) {
4817      return;
4818    }
4819    e.preventDefault();
4820    const index = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.g)(bulletEl) * swiper.params.slidesPerGroup;
4821    if (swiper.params.loop) {
4822      if (swiper.realIndex === index) return;
4823      swiper.slideToLoop(index);
4824    } else {
4825      swiper.slideTo(index);
4826    }
4827  }
4828  function update() {
4829    // Render || Update Pagination bullets/items
4830    const rtl = swiper.rtl;
4831    const params = swiper.params.pagination;
4832    if (isPaginationDisabled()) return;
4833    let el = swiper.pagination.el;
4834    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4835    // Current/Total
4836    let current;
4837    let previousIndex;
4838    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
4839    const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
4840    if (swiper.params.loop) {
4841      previousIndex = swiper.previousRealIndex || 0;
4842      current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
4843    } else if (typeof swiper.snapIndex !== 'undefined') {
4844      current = swiper.snapIndex;
4845      previousIndex = swiper.previousSnapIndex;
4846    } else {
4847      previousIndex = swiper.previousIndex || 0;
4848      current = swiper.activeIndex || 0;
4849    }
4850    // Types
4851    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
4852      const bullets = swiper.pagination.bullets;
4853      let firstIndex;
4854      let lastIndex;
4855      let midIndex;
4856      if (params.dynamicBullets) {
4857        bulletSize = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.f)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);
4858        el.forEach(subEl => {
4859          subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
4860        });
4861        if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
4862          dynamicBulletIndex += current - (previousIndex || 0);
4863          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
4864            dynamicBulletIndex = params.dynamicMainBullets - 1;
4865          } else if (dynamicBulletIndex < 0) {
4866            dynamicBulletIndex = 0;
4867          }
4868        }
4869        firstIndex = Math.max(current - dynamicBulletIndex, 0);
4870        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
4871        midIndex = (lastIndex + firstIndex) / 2;
4872      }
4873      bullets.forEach(bulletEl => {
4874        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();
4875        bulletEl.classList.remove(...classesToRemove);
4876      });
4877      if (el.length > 1) {
4878        bullets.forEach(bullet => {
4879          const bulletIndex = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.g)(bullet);
4880          if (bulletIndex === current) {
4881            bullet.classList.add(...params.bulletActiveClass.split(' '));
4882          } else if (swiper.isElement) {
4883            bullet.setAttribute('part', 'bullet');
4884          }
4885          if (params.dynamicBullets) {
4886            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
4887              bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));
4888            }
4889            if (bulletIndex === firstIndex) {
4890              setSideBullets(bullet, 'prev');
4891            }
4892            if (bulletIndex === lastIndex) {
4893              setSideBullets(bullet, 'next');
4894            }
4895          }
4896        });
4897      } else {
4898        const bullet = bullets[current];
4899        if (bullet) {
4900          bullet.classList.add(...params.bulletActiveClass.split(' '));
4901        }
4902        if (swiper.isElement) {
4903          bullets.forEach((bulletEl, bulletIndex) => {
4904            bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
4905          });
4906        }
4907        if (params.dynamicBullets) {
4908          const firstDisplayedBullet = bullets[firstIndex];
4909          const lastDisplayedBullet = bullets[lastIndex];
4910          for (let i = firstIndex; i <= lastIndex; i += 1) {
4911            if (bullets[i]) {
4912              bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));
4913            }
4914          }
4915          setSideBullets(firstDisplayedBullet, 'prev');
4916          setSideBullets(lastDisplayedBullet, 'next');
4917        }
4918      }
4919      if (params.dynamicBullets) {
4920        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
4921        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
4922        const offsetProp = rtl ? 'right' : 'left';
4923        bullets.forEach(bullet => {
4924          bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;
4925        });
4926      }
4927    }
4928    el.forEach((subEl, subElIndex) => {
4929      if (params.type === 'fraction') {
4930        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.currentClass)).forEach(fractionEl => {
4931          fractionEl.textContent = params.formatFractionCurrent(current + 1);
4932        });
4933        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.totalClass)).forEach(totalEl => {
4934          totalEl.textContent = params.formatFractionTotal(total);
4935        });
4936      }
4937      if (params.type === 'progressbar') {
4938        let progressbarDirection;
4939        if (params.progressbarOpposite) {
4940          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
4941        } else {
4942          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
4943        }
4944        const scale = (current + 1) / total;
4945        let scaleX = 1;
4946        let scaleY = 1;
4947        if (progressbarDirection === 'horizontal') {
4948          scaleX = scale;
4949        } else {
4950          scaleY = scale;
4951        }
4952        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.progressbarFillClass)).forEach(progressEl => {
4953          progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;
4954          progressEl.style.transitionDuration = `${swiper.params.speed}ms`;
4955        });
4956      }
4957      if (params.type === 'custom' && params.renderCustom) {
4958        subEl.innerHTML = params.renderCustom(swiper, current + 1, total);
4959        if (subElIndex === 0) emit('paginationRender', subEl);
4960      } else {
4961        if (subElIndex === 0) emit('paginationRender', subEl);
4962        emit('paginationUpdate', subEl);
4963      }
4964      if (swiper.params.watchOverflow && swiper.enabled) {
4965        subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
4966      }
4967    });
4968  }
4969  function render() {
4970    // Render Container
4971    const params = swiper.params.pagination;
4972    if (isPaginationDisabled()) return;
4973    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;
4974    let el = swiper.pagination.el;
4975    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
4976    let paginationHTML = '';
4977    if (params.type === 'bullets') {
4978      let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
4979      if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {
4980        numberOfBullets = slidesLength;
4981      }
4982      for (let i = 0; i < numberOfBullets; i += 1) {
4983        if (params.renderBullet) {
4984          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
4985        } else {
4986          // prettier-ignore
4987          paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
4988        }
4989      }
4990    }
4991    if (params.type === 'fraction') {
4992      if (params.renderFraction) {
4993        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
4994      } else {
4995        paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
4996      }
4997    }
4998    if (params.type === 'progressbar') {
4999      if (params.renderProgressbar) {
5000        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
5001      } else {
5002        paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
5003      }
5004    }
5005    swiper.pagination.bullets = [];
5006    el.forEach(subEl => {
5007      if (params.type !== 'custom') {
5008        subEl.innerHTML = paginationHTML || '';
5009      }
5010      if (params.type === 'bullets') {
5011        swiper.pagination.bullets.push(...subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.bulletClass)));
5012      }
5013    });
5014    if (params.type !== 'custom') {
5015      emit('paginationRender', el[0]);
5016    }
5017  }
5018  function init() {
5019    swiper.params.pagination = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
5020      el: 'swiper-pagination'
5021    });
5022    const params = swiper.params.pagination;
5023    if (!params.el) return;
5024    let el;
5025    if (typeof params.el === 'string' && swiper.isElement) {
5026      el = swiper.el.querySelector(params.el);
5027    }
5028    if (!el && typeof params.el === 'string') {
5029      el = [...document.querySelectorAll(params.el)];
5030    }
5031    if (!el) {
5032      el = params.el;
5033    }
5034    if (!el || el.length === 0) return;
5035    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {
5036      el = [...swiper.el.querySelectorAll(params.el)];
5037      // check if it belongs to another nested Swiper
5038      if (el.length > 1) {
5039        el = el.filter(subEl => {
5040          if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.a)(subEl, '.swiper')[0] !== swiper.el) return false;
5041          return true;
5042        })[0];
5043      }
5044    }
5045    if (Array.isArray(el) && el.length === 1) el = el[0];
5046    Object.assign(swiper.pagination, {
5047      el
5048    });
5049    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
5050    el.forEach(subEl => {
5051      if (params.type === 'bullets' && params.clickable) {
5052        subEl.classList.add(...(params.clickableClass || '').split(' '));
5053      }
5054      subEl.classList.add(params.modifierClass + params.type);
5055      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
5056      if (params.type === 'bullets' && params.dynamicBullets) {
5057        subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);
5058        dynamicBulletIndex = 0;
5059        if (params.dynamicMainBullets < 1) {
5060          params.dynamicMainBullets = 1;
5061        }
5062      }
5063      if (params.type === 'progressbar' && params.progressbarOpposite) {
5064        subEl.classList.add(params.progressbarOppositeClass);
5065      }
5066      if (params.clickable) {
5067        subEl.addEventListener('click', onBulletClick);
5068      }
5069      if (!swiper.enabled) {
5070        subEl.classList.add(params.lockClass);
5071      }
5072    });
5073  }
5074  function destroy() {
5075    const params = swiper.params.pagination;
5076    if (isPaginationDisabled()) return;
5077    let el = swiper.pagination.el;
5078    if (el) {
5079      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
5080      el.forEach(subEl => {
5081        subEl.classList.remove(params.hiddenClass);
5082        subEl.classList.remove(params.modifierClass + params.type);
5083        subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
5084        if (params.clickable) {
5085          subEl.classList.remove(...(params.clickableClass || '').split(' '));
5086          subEl.removeEventListener('click', onBulletClick);
5087        }
5088      });
5089    }
5090    if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
5091  }
5092  on('changeDirection', () => {
5093    if (!swiper.pagination || !swiper.pagination.el) return;
5094    const params = swiper.params.pagination;
5095    let {
5096      el
5097    } = swiper.pagination;
5098    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
5099    el.forEach(subEl => {
5100      subEl.classList.remove(params.horizontalClass, params.verticalClass);
5101      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
5102    });
5103  });
5104  on('init', () => {
5105    if (swiper.params.pagination.enabled === false) {
5106      // eslint-disable-next-line
5107      disable();
5108    } else {
5109      init();
5110      render();
5111      update();
5112    }
5113  });
5114  on('activeIndexChange', () => {
5115    if (typeof swiper.snapIndex === 'undefined') {
5116      update();
5117    }
5118  });
5119  on('snapIndexChange', () => {
5120    update();
5121  });
5122  on('snapGridLengthChange', () => {
5123    render();
5124    update();
5125  });
5126  on('destroy', () => {
5127    destroy();
5128  });
5129  on('enable disable', () => {
5130    let {
5131      el
5132    } = swiper.pagination;
5133    if (el) {
5134      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
5135      el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));
5136    }
5137  });
5138  on('lock unlock', () => {
5139    update();
5140  });
5141  on('click', (_s, e) => {
5142    const targetEl = e.target;
5143    const el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
5144    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
5145      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
5146      const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
5147      if (isHidden === true) {
5148        emit('paginationShow');
5149      } else {
5150        emit('paginationHide');
5151      }
5152      el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));
5153    }
5154  });
5155  const enable = () => {
5156    swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);
5157    let {
5158      el
5159    } = swiper.pagination;
5160    if (el) {
5161      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
5162      el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));
5163    }
5164    init();
5165    render();
5166    update();
5167  };
5168  const disable = () => {
5169    swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);
5170    let {
5171      el
5172    } = swiper.pagination;
5173    if (el) {
5174      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
5175      el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
5176    }
5177    destroy();
5178  };
5179  Object.assign(swiper.pagination, {
5180    enable,
5181    disable,
5182    render,
5183    update,
5184    init,
5185    destroy
5186  });
5187}
5188
5189
5190
5191
5192/***/ }),
5193
vendor: 4,698 bytes, lines 5194-5333
5194/***/ "./node_modules/swiper/modules/parallax.mjs":
5195/*!**************************************************!*\
5196  !*** ./node_modules/swiper/modules/parallax.mjs ***!
5197  \**************************************************/
5198/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5199
5200"use strict";
5201__webpack_require__.r(__webpack_exports__);
5202/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5203/* harmony export */   "default": () => (/* binding */ Parallax)
5204/* harmony export */ });
5205/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5206
5207
5208function Parallax(_ref) {
5209  let {
5210    swiper,
5211    extendParams,
5212    on
5213  } = _ref;
5214  extendParams({
5215    parallax: {
5216      enabled: false
5217    }
5218  });
5219  const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';
5220  const setTransform = (el, progress) => {
5221    const {
5222      rtl
5223    } = swiper;
5224    const rtlFactor = rtl ? -1 : 1;
5225    const p = el.getAttribute('data-swiper-parallax') || '0';
5226    let x = el.getAttribute('data-swiper-parallax-x');
5227    let y = el.getAttribute('data-swiper-parallax-y');
5228    const scale = el.getAttribute('data-swiper-parallax-scale');
5229    const opacity = el.getAttribute('data-swiper-parallax-opacity');
5230    const rotate = el.getAttribute('data-swiper-parallax-rotate');
5231    if (x || y) {
5232      x = x || '0';
5233      y = y || '0';
5234    } else if (swiper.isHorizontal()) {
5235      x = p;
5236      y = '0';
5237    } else {
5238      y = p;
5239      x = '0';
5240    }
5241    if (x.indexOf('%') >= 0) {
5242      x = `${parseInt(x, 10) * progress * rtlFactor}%`;
5243    } else {
5244      x = `${x * progress * rtlFactor}px`;
5245    }
5246    if (y.indexOf('%') >= 0) {
5247      y = `${parseInt(y, 10) * progress}%`;
5248    } else {
5249      y = `${y * progress}px`;
5250    }
5251    if (typeof opacity !== 'undefined' && opacity !== null) {
5252      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
5253      el.style.opacity = currentOpacity;
5254    }
5255    let transform = `translate3d(${x}, ${y}, 0px)`;
5256    if (typeof scale !== 'undefined' && scale !== null) {
5257      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
5258      transform += ` scale(${currentScale})`;
5259    }
5260    if (rotate && typeof rotate !== 'undefined' && rotate !== null) {
5261      const currentRotate = rotate * progress * -1;
5262      transform += ` rotate(${currentRotate}deg)`;
5263    }
5264    el.style.transform = transform;
5265  };
5266  const setTranslate = () => {
5267    const {
5268      el,
5269      slides,
5270      progress,
5271      snapGrid,
5272      isElement
5273    } = swiper;
5274    const elements = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(el, elementsSelector);
5275    if (swiper.isElement) {
5276      elements.push(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.hostEl, elementsSelector));
5277    }
5278    elements.forEach(subEl => {
5279      setTransform(subEl, progress);
5280    });
5281    slides.forEach((slideEl, slideIndex) => {
5282      let slideProgress = slideEl.progress;
5283      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
5284        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
5285      }
5286      slideProgress = Math.min(Math.max(slideProgress, -1), 1);
5287      slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {
5288        setTransform(subEl, slideProgress);
5289      });
5290    });
5291  };
5292  const setTransition = function (duration) {
5293    if (duration === void 0) {
5294      duration = swiper.params.speed;
5295    }
5296    const {
5297      el,
5298      hostEl
5299    } = swiper;
5300    const elements = [...el.querySelectorAll(elementsSelector)];
5301    if (swiper.isElement) {
5302      elements.push(...hostEl.querySelectorAll(elementsSelector));
5303    }
5304    elements.forEach(parallaxEl => {
5305      let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;
5306      if (duration === 0) parallaxDuration = 0;
5307      parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;
5308    });
5309  };
5310  on('beforeInit', () => {
5311    if (!swiper.params.parallax.enabled) return;
5312    swiper.params.watchSlidesProgress = true;
5313    swiper.originalParams.watchSlidesProgress = true;
5314  });
5315  on('init', () => {
5316    if (!swiper.params.parallax.enabled) return;
5317    setTranslate();
5318  });
5319  on('setTranslate', () => {
5320    if (!swiper.params.parallax.enabled) return;
5321    setTranslate();
5322  });
5323  on('setTransition', (_swiper, duration) => {
5324    if (!swiper.params.parallax.enabled) return;
5325    setTransition(duration);
5326  });
5327}
5328
5329
5330
5331
5332/***/ }),
5333
vendor: 12,515 bytes, lines 5334-5718
5334/***/ "./node_modules/swiper/modules/scrollbar.mjs":
5335/*!***************************************************!*\
5336  !*** ./node_modules/swiper/modules/scrollbar.mjs ***!
5337  \***************************************************/
5338/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5339
5340"use strict";
5341__webpack_require__.r(__webpack_exports__);
5342/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5343/* harmony export */   "default": () => (/* binding */ Scrollbar)
5344/* harmony export */ });
5345/* 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");
5346/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5347/* 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");
5348/* 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");
5349
5350
5351
5352
5353
5354function Scrollbar(_ref) {
5355  let {
5356    swiper,
5357    extendParams,
5358    on,
5359    emit
5360  } = _ref;
5361  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
5362  let isTouched = false;
5363  let timeout = null;
5364  let dragTimeout = null;
5365  let dragStartPos;
5366  let dragSize;
5367  let trackSize;
5368  let divider;
5369  extendParams({
5370    scrollbar: {
5371      el: null,
5372      dragSize: 'auto',
5373      hide: false,
5374      draggable: false,
5375      snapOnRelease: true,
5376      lockClass: 'swiper-scrollbar-lock',
5377      dragClass: 'swiper-scrollbar-drag',
5378      scrollbarDisabledClass: 'swiper-scrollbar-disabled',
5379      horizontalClass: `swiper-scrollbar-horizontal`,
5380      verticalClass: `swiper-scrollbar-vertical`
5381    }
5382  });
5383  swiper.scrollbar = {
5384    el: null,
5385    dragEl: null
5386  };
5387  function setTranslate() {
5388    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
5389    const {
5390      scrollbar,
5391      rtlTranslate: rtl
5392    } = swiper;
5393    const {
5394      dragEl,
5395      el
5396    } = scrollbar;
5397    const params = swiper.params.scrollbar;
5398    const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;
5399    let newSize = dragSize;
5400    let newPos = (trackSize - dragSize) * progress;
5401    if (rtl) {
5402      newPos = -newPos;
5403      if (newPos > 0) {
5404        newSize = dragSize - newPos;
5405        newPos = 0;
5406      } else if (-newPos + dragSize > trackSize) {
5407        newSize = trackSize + newPos;
5408      }
5409    } else if (newPos < 0) {
5410      newSize = dragSize + newPos;
5411      newPos = 0;
5412    } else if (newPos + dragSize > trackSize) {
5413      newSize = trackSize - newPos;
5414    }
5415    if (swiper.isHorizontal()) {
5416      dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;
5417      dragEl.style.width = `${newSize}px`;
5418    } else {
5419      dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;
5420      dragEl.style.height = `${newSize}px`;
5421    }
5422    if (params.hide) {
5423      clearTimeout(timeout);
5424      el.style.opacity = 1;
5425      timeout = setTimeout(() => {
5426        el.style.opacity = 0;
5427        el.style.transitionDuration = '400ms';
5428      }, 1000);
5429    }
5430  }
5431  function setTransition(duration) {
5432    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
5433    swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;
5434  }
5435  function updateSize() {
5436    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
5437    const {
5438      scrollbar
5439    } = swiper;
5440    const {
5441      dragEl,
5442      el
5443    } = scrollbar;
5444    dragEl.style.width = '';
5445    dragEl.style.height = '';
5446    trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;
5447    divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));
5448    if (swiper.params.scrollbar.dragSize === 'auto') {
5449      dragSize = trackSize * divider;
5450    } else {
5451      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
5452    }
5453    if (swiper.isHorizontal()) {
5454      dragEl.style.width = `${dragSize}px`;
5455    } else {
5456      dragEl.style.height = `${dragSize}px`;
5457    }
5458    if (divider >= 1) {
5459      el.style.display = 'none';
5460    } else {
5461      el.style.display = '';
5462    }
5463    if (swiper.params.scrollbar.hide) {
5464      el.style.opacity = 0;
5465    }
5466    if (swiper.params.watchOverflow && swiper.enabled) {
5467      scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);
5468    }
5469  }
5470  function getPointerPosition(e) {
5471    return swiper.isHorizontal() ? e.clientX : e.clientY;
5472  }
5473  function setDragPosition(e) {
5474    const {
5475      scrollbar,
5476      rtlTranslate: rtl
5477    } = swiper;
5478    const {
5479      el
5480    } = scrollbar;
5481    let positionRatio;
5482    positionRatio = (getPointerPosition(e) - (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
5483    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
5484    if (rtl) {
5485      positionRatio = 1 - positionRatio;
5486    }
5487    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
5488    swiper.updateProgress(position);
5489    swiper.setTranslate(position);
5490    swiper.updateActiveIndex();
5491    swiper.updateSlidesClasses();
5492  }
5493  function onDragStart(e) {
5494    const params = swiper.params.scrollbar;
5495    const {
5496      scrollbar,
5497      wrapperEl
5498    } = swiper;
5499    const {
5500      el,
5501      dragEl
5502    } = scrollbar;
5503    isTouched = true;
5504    dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
5505    e.preventDefault();
5506    e.stopPropagation();
5507    wrapperEl.style.transitionDuration = '100ms';
5508    dragEl.style.transitionDuration = '100ms';
5509    setDragPosition(e);
5510    clearTimeout(dragTimeout);
5511    el.style.transitionDuration = '0ms';
5512    if (params.hide) {
5513      el.style.opacity = 1;
5514    }
5515    if (swiper.params.cssMode) {
5516      swiper.wrapperEl.style['scroll-snap-type'] = 'none';
5517    }
5518    emit('scrollbarDragStart', e);
5519  }
5520  function onDragMove(e) {
5521    const {
5522      scrollbar,
5523      wrapperEl
5524    } = swiper;
5525    const {
5526      el,
5527      dragEl
5528    } = scrollbar;
5529    if (!isTouched) return;
5530    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
5531    setDragPosition(e);
5532    wrapperEl.style.transitionDuration = '0ms';
5533    el.style.transitionDuration = '0ms';
5534    dragEl.style.transitionDuration = '0ms';
5535    emit('scrollbarDragMove', e);
5536  }
5537  function onDragEnd(e) {
5538    const params = swiper.params.scrollbar;
5539    const {
5540      scrollbar,
5541      wrapperEl
5542    } = swiper;
5543    const {
5544      el
5545    } = scrollbar;
5546    if (!isTouched) return;
5547    isTouched = false;
5548    if (swiper.params.cssMode) {
5549      swiper.wrapperEl.style['scroll-snap-type'] = '';
5550      wrapperEl.style.transitionDuration = '';
5551    }
5552    if (params.hide) {
5553      clearTimeout(dragTimeout);
5554      dragTimeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
5555        el.style.opacity = 0;
5556        el.style.transitionDuration = '400ms';
5557      }, 1000);
5558    }
5559    emit('scrollbarDragEnd', e);
5560    if (params.snapOnRelease) {
5561      swiper.slideToClosest();
5562    }
5563  }
5564  function events(method) {
5565    const {
5566      scrollbar,
5567      params
5568    } = swiper;
5569    const el = scrollbar.el;
5570    if (!el) return;
5571    const target = el;
5572    const activeListener = params.passiveListeners ? {
5573      passive: false,
5574      capture: false
5575    } : false;
5576    const passiveListener = params.passiveListeners ? {
5577      passive: true,
5578      capture: false
5579    } : false;
5580    if (!target) return;
5581    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
5582    target[eventMethod]('pointerdown', onDragStart, activeListener);
5583    document[eventMethod]('pointermove', onDragMove, activeListener);
5584    document[eventMethod]('pointerup', onDragEnd, passiveListener);
5585  }
5586  function enableDraggable() {
5587    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
5588    events('on');
5589  }
5590  function disableDraggable() {
5591    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
5592    events('off');
5593  }
5594  function init() {
5595    const {
5596      scrollbar,
5597      el: swiperEl
5598    } = swiper;
5599    swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.c)(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
5600      el: 'swiper-scrollbar'
5601    });
5602    const params = swiper.params.scrollbar;
5603    if (!params.el) return;
5604    let el;
5605    if (typeof params.el === 'string' && swiper.isElement) {
5606      el = swiper.el.querySelector(params.el);
5607    }
5608    if (!el && typeof params.el === 'string') {
5609      el = document.querySelectorAll(params.el);
5610      if (!el.length) return;
5611    } else if (!el) {
5612      el = params.el;
5613    }
5614    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {
5615      el = swiperEl.querySelector(params.el);
5616    }
5617    if (el.length > 0) el = el[0];
5618    el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
5619    let dragEl;
5620    if (el) {
5621      dragEl = el.querySelector((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_3__.c)(swiper.params.scrollbar.dragClass));
5622      if (!dragEl) {
5623        dragEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.scrollbar.dragClass);
5624        el.append(dragEl);
5625      }
5626    }
5627    Object.assign(scrollbar, {
5628      el,
5629      dragEl
5630    });
5631    if (params.draggable) {
5632      enableDraggable();
5633    }
5634    if (el) {
5635      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(swiper.params.scrollbar.lockClass));
5636    }
5637  }
5638  function destroy() {
5639    const params = swiper.params.scrollbar;
5640    const el = swiper.scrollbar.el;
5641    if (el) {
5642      el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));
5643    }
5644    disableDraggable();
5645  }
5646  on('changeDirection', () => {
5647    if (!swiper.scrollbar || !swiper.scrollbar.el) return;
5648    const params = swiper.params.scrollbar;
5649    let {
5650      el
5651    } = swiper.scrollbar;
5652    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
5653    el.forEach(subEl => {
5654      subEl.classList.remove(params.horizontalClass, params.verticalClass);
5655      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
5656    });
5657  });
5658  on('init', () => {
5659    if (swiper.params.scrollbar.enabled === false) {
5660      // eslint-disable-next-line
5661      disable();
5662    } else {
5663      init();
5664      updateSize();
5665      setTranslate();
5666    }
5667  });
5668  on('update resize observerUpdate lock unlock changeDirection', () => {
5669    updateSize();
5670  });
5671  on('setTranslate', () => {
5672    setTranslate();
5673  });
5674  on('setTransition', (_s, duration) => {
5675    setTransition(duration);
5676  });
5677  on('enable disable', () => {
5678    const {
5679      el
5680    } = swiper.scrollbar;
5681    if (el) {
5682      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(swiper.params.scrollbar.lockClass));
5683    }
5684  });
5685  on('destroy', () => {
5686    destroy();
5687  });
5688  const enable = () => {
5689    swiper.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(swiper.params.scrollbar.scrollbarDisabledClass));
5690    if (swiper.scrollbar.el) {
5691      swiper.scrollbar.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(swiper.params.scrollbar.scrollbarDisabledClass));
5692    }
5693    init();
5694    updateSize();
5695    setTranslate();
5696  };
5697  const disable = () => {
5698    swiper.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(swiper.params.scrollbar.scrollbarDisabledClass));
5699    if (swiper.scrollbar.el) {
5700      swiper.scrollbar.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(swiper.params.scrollbar.scrollbarDisabledClass));
5701    }
5702    destroy();
5703  };
5704  Object.assign(swiper.scrollbar, {
5705    enable,
5706    disable,
5707    updateSize,
5708    setTranslate,
5709    init,
5710    destroy
5711  });
5712}
5713
5714
5715
5716
5717/***/ }),
5718
vendor: 8,025 bytes, lines 5719-5927
5719/***/ "./node_modules/swiper/modules/thumbs.mjs":
5720/*!************************************************!*\
5721  !*** ./node_modules/swiper/modules/thumbs.mjs ***!
5722  \************************************************/
5723/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5724
5725"use strict";
5726__webpack_require__.r(__webpack_exports__);
5727/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5728/* harmony export */   "default": () => (/* binding */ Thumb)
5729/* harmony export */ });
5730/* 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");
5731/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5732
5733
5734
5735function Thumb(_ref) {
5736  let {
5737    swiper,
5738    extendParams,
5739    on
5740  } = _ref;
5741  extendParams({
5742    thumbs: {
5743      swiper: null,
5744      multipleActiveThumbs: true,
5745      autoScrollOffset: 0,
5746      slideThumbActiveClass: 'swiper-slide-thumb-active',
5747      thumbsContainerClass: 'swiper-thumbs'
5748    }
5749  });
5750  let initialized = false;
5751  let swiperCreated = false;
5752  swiper.thumbs = {
5753    swiper: null
5754  };
5755  function onThumbClick() {
5756    const thumbsSwiper = swiper.thumbs.swiper;
5757    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
5758    const clickedIndex = thumbsSwiper.clickedIndex;
5759    const clickedSlide = thumbsSwiper.clickedSlide;
5760    if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;
5761    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;
5762    let slideToIndex;
5763    if (thumbsSwiper.params.loop) {
5764      slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
5765    } else {
5766      slideToIndex = clickedIndex;
5767    }
5768    if (swiper.params.loop) {
5769      swiper.slideToLoop(slideToIndex);
5770    } else {
5771      swiper.slideTo(slideToIndex);
5772    }
5773  }
5774  function init() {
5775    const {
5776      thumbs: thumbsParams
5777    } = swiper.params;
5778    if (initialized) return false;
5779    initialized = true;
5780    const SwiperClass = swiper.constructor;
5781    if (thumbsParams.swiper instanceof SwiperClass) {
5782      swiper.thumbs.swiper = thumbsParams.swiper;
5783      Object.assign(swiper.thumbs.swiper.originalParams, {
5784        watchSlidesProgress: true,
5785        slideToClickedSlide: false
5786      });
5787      Object.assign(swiper.thumbs.swiper.params, {
5788        watchSlidesProgress: true,
5789        slideToClickedSlide: false
5790      });
5791      swiper.thumbs.swiper.update();
5792    } else if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.k)(thumbsParams.swiper)) {
5793      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);
5794      Object.assign(thumbsSwiperParams, {
5795        watchSlidesProgress: true,
5796        slideToClickedSlide: false
5797      });
5798      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);
5799      swiperCreated = true;
5800    }
5801    swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);
5802    swiper.thumbs.swiper.on('tap', onThumbClick);
5803    return true;
5804  }
5805  function update(initial) {
5806    const thumbsSwiper = swiper.thumbs.swiper;
5807    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
5808    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
5809
5810    // Activate thumbs
5811    let thumbsToActivate = 1;
5812    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;
5813    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {
5814      thumbsToActivate = swiper.params.slidesPerView;
5815    }
5816    if (!swiper.params.thumbs.multipleActiveThumbs) {
5817      thumbsToActivate = 1;
5818    }
5819    thumbsToActivate = Math.floor(thumbsToActivate);
5820    thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));
5821    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
5822      for (let i = 0; i < thumbsToActivate; i += 1) {
5823        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => {
5824          slideEl.classList.add(thumbActiveClass);
5825        });
5826      }
5827    } else {
5828      for (let i = 0; i < thumbsToActivate; i += 1) {
5829        if (thumbsSwiper.slides[swiper.realIndex + i]) {
5830          thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);
5831        }
5832      }
5833    }
5834    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
5835    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
5836    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
5837      const currentThumbsIndex = thumbsSwiper.activeIndex;
5838      let newThumbsIndex;
5839      let direction;
5840      if (thumbsSwiper.params.loop) {
5841        const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];
5842        newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);
5843        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';
5844      } else {
5845        newThumbsIndex = swiper.realIndex;
5846        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';
5847      }
5848      if (useOffset) {
5849        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;
5850      }
5851      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
5852        if (thumbsSwiper.params.centeredSlides) {
5853          if (newThumbsIndex > currentThumbsIndex) {
5854            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
5855          } else {
5856            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
5857          }
5858        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
5859        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
5860      }
5861    }
5862  }
5863  on('beforeInit', () => {
5864    const {
5865      thumbs
5866    } = swiper.params;
5867    if (!thumbs || !thumbs.swiper) return;
5868    if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {
5869      const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
5870      const getThumbsElementAndInit = () => {
5871        const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;
5872        if (thumbsElement && thumbsElement.swiper) {
5873          thumbs.swiper = thumbsElement.swiper;
5874          init();
5875          update(true);
5876        } else if (thumbsElement) {
5877          const onThumbsSwiper = e => {
5878            thumbs.swiper = e.detail[0];
5879            thumbsElement.removeEventListener('init', onThumbsSwiper);
5880            init();
5881            update(true);
5882            thumbs.swiper.update();
5883            swiper.update();
5884          };
5885          thumbsElement.addEventListener('init', onThumbsSwiper);
5886        }
5887        return thumbsElement;
5888      };
5889      const watchForThumbsToAppear = () => {
5890        if (swiper.destroyed) return;
5891        const thumbsElement = getThumbsElementAndInit();
5892        if (!thumbsElement) {
5893          requestAnimationFrame(watchForThumbsToAppear);
5894        }
5895      };
5896      requestAnimationFrame(watchForThumbsToAppear);
5897    } else {
5898      init();
5899      update(true);
5900    }
5901  });
5902  on('slideChange update resize observerUpdate', () => {
5903    update();
5904  });
5905  on('setTransition', (_s, duration) => {
5906    const thumbsSwiper = swiper.thumbs.swiper;
5907    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
5908    thumbsSwiper.setTransition(duration);
5909  });
5910  on('beforeDestroy', () => {
5911    const thumbsSwiper = swiper.thumbs.swiper;
5912    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
5913    if (swiperCreated) {
5914      thumbsSwiper.destroy();
5915    }
5916  });
5917  Object.assign(swiper.thumbs, {
5918    init,
5919    update
5920  });
5921}
5922
5923
5924
5925
5926/***/ }),
5927
vendor: 12,287 bytes, lines 5928-6289
5928/***/ "./node_modules/swiper/modules/virtual.mjs":
5929/*!*************************************************!*\
5930  !*** ./node_modules/swiper/modules/virtual.mjs ***!
5931  \*************************************************/
5932/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
5933
5934"use strict";
5935__webpack_require__.r(__webpack_exports__);
5936/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5937/* harmony export */   "default": () => (/* binding */ Virtual)
5938/* harmony export */ });
5939/* 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");
5940/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
5941
5942
5943
5944function Virtual(_ref) {
5945  let {
5946    swiper,
5947    extendParams,
5948    on,
5949    emit
5950  } = _ref;
5951  extendParams({
5952    virtual: {
5953      enabled: false,
5954      slides: [],
5955      cache: true,
5956      renderSlide: null,
5957      renderExternal: null,
5958      renderExternalUpdate: true,
5959      addSlidesBefore: 0,
5960      addSlidesAfter: 0
5961    }
5962  });
5963  let cssModeTimeout;
5964  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
5965  swiper.virtual = {
5966    cache: {},
5967    from: undefined,
5968    to: undefined,
5969    slides: [],
5970    offset: 0,
5971    slidesGrid: []
5972  };
5973  const tempDOM = document.createElement('div');
5974  function renderSlide(slide, index) {
5975    const params = swiper.params.virtual;
5976    if (params.cache && swiper.virtual.cache[index]) {
5977      return swiper.virtual.cache[index];
5978    }
5979    // eslint-disable-next-line
5980    let slideEl;
5981    if (params.renderSlide) {
5982      slideEl = params.renderSlide.call(swiper, slide, index);
5983      if (typeof slideEl === 'string') {
5984        tempDOM.innerHTML = slideEl;
5985        slideEl = tempDOM.children[0];
5986      }
5987    } else if (swiper.isElement) {
5988      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('swiper-slide');
5989    } else {
5990      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.slideClass);
5991    }
5992    slideEl.setAttribute('data-swiper-slide-index', index);
5993    if (!params.renderSlide) {
5994      slideEl.innerHTML = slide;
5995    }
5996    if (params.cache) {
5997      swiper.virtual.cache[index] = slideEl;
5998    }
5999    return slideEl;
6000  }
6001  function update(force) {
6002    const {
6003      slidesPerView,
6004      slidesPerGroup,
6005      centeredSlides,
6006      loop: isLoop
6007    } = swiper.params;
6008    const {
6009      addSlidesBefore,
6010      addSlidesAfter
6011    } = swiper.params.virtual;
6012    const {
6013      from: previousFrom,
6014      to: previousTo,
6015      slides,
6016      slidesGrid: previousSlidesGrid,
6017      offset: previousOffset
6018    } = swiper.virtual;
6019    if (!swiper.params.cssMode) {
6020      swiper.updateActiveIndex();
6021    }
6022    const activeIndex = swiper.activeIndex || 0;
6023    let offsetProp;
6024    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
6025    let slidesAfter;
6026    let slidesBefore;
6027    if (centeredSlides) {
6028      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
6029      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
6030    } else {
6031      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
6032      slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;
6033    }
6034    let from = activeIndex - slidesBefore;
6035    let to = activeIndex + slidesAfter;
6036    if (!isLoop) {
6037      from = Math.max(from, 0);
6038      to = Math.min(to, slides.length - 1);
6039    }
6040    let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
6041    if (isLoop && activeIndex >= slidesBefore) {
6042      from -= slidesBefore;
6043      if (!centeredSlides) offset += swiper.slidesGrid[0];
6044    } else if (isLoop && activeIndex < slidesBefore) {
6045      from = -slidesBefore;
6046      if (centeredSlides) offset += swiper.slidesGrid[0];
6047    }
6048    Object.assign(swiper.virtual, {
6049      from,
6050      to,
6051      offset,
6052      slidesGrid: swiper.slidesGrid,
6053      slidesBefore,
6054      slidesAfter
6055    });
6056    function onRendered() {
6057      swiper.updateSlides();
6058      swiper.updateProgress();
6059      swiper.updateSlidesClasses();
6060      emit('virtualUpdate');
6061    }
6062    if (previousFrom === from && previousTo === to && !force) {
6063      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
6064        swiper.slides.forEach(slideEl => {
6065          slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
6066        });
6067      }
6068      swiper.updateProgress();
6069      emit('virtualUpdate');
6070      return;
6071    }
6072    if (swiper.params.virtual.renderExternal) {
6073      swiper.params.virtual.renderExternal.call(swiper, {
6074        offset,
6075        from,
6076        to,
6077        slides: function getSlides() {
6078          const slidesToRender = [];
6079          for (let i = from; i <= to; i += 1) {
6080            slidesToRender.push(slides[i]);
6081          }
6082          return slidesToRender;
6083        }()
6084      });
6085      if (swiper.params.virtual.renderExternalUpdate) {
6086        onRendered();
6087      } else {
6088        emit('virtualUpdate');
6089      }
6090      return;
6091    }
6092    const prependIndexes = [];
6093    const appendIndexes = [];
6094    const getSlideIndex = index => {
6095      let slideIndex = index;
6096      if (index < 0) {
6097        slideIndex = slides.length + index;
6098      } else if (slideIndex >= slides.length) {
6099        // eslint-disable-next-line
6100        slideIndex = slideIndex - slides.length;
6101      }
6102      return slideIndex;
6103    };
6104    if (force) {
6105      swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {
6106        slideEl.remove();
6107      });
6108    } else {
6109      for (let i = previousFrom; i <= previousTo; i += 1) {
6110        if (i < from || i > to) {
6111          const slideIndex = getSlideIndex(i);
6112          swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => {
6113            slideEl.remove();
6114          });
6115        }
6116      }
6117    }
6118    const loopFrom = isLoop ? -slides.length : 0;
6119    const loopTo = isLoop ? slides.length * 2 : slides.length;
6120    for (let i = loopFrom; i < loopTo; i += 1) {
6121      if (i >= from && i <= to) {
6122        const slideIndex = getSlideIndex(i);
6123        if (typeof previousTo === 'undefined' || force) {
6124          appendIndexes.push(slideIndex);
6125        } else {
6126          if (i > previousTo) appendIndexes.push(slideIndex);
6127          if (i < previousFrom) prependIndexes.push(slideIndex);
6128        }
6129      }
6130    }
6131    appendIndexes.forEach(index => {
6132      swiper.slidesEl.append(renderSlide(slides[index], index));
6133    });
6134    if (isLoop) {
6135      for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
6136        const index = prependIndexes[i];
6137        swiper.slidesEl.prepend(renderSlide(slides[index], index));
6138      }
6139    } else {
6140      prependIndexes.sort((a, b) => b - a);
6141      prependIndexes.forEach(index => {
6142        swiper.slidesEl.prepend(renderSlide(slides[index], index));
6143      });
6144    }
6145    (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
6146      slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
6147    });
6148    onRendered();
6149  }
6150  function appendSlide(slides) {
6151    if (typeof slides === 'object' && 'length' in slides) {
6152      for (let i = 0; i < slides.length; i += 1) {
6153        if (slides[i]) swiper.virtual.slides.push(slides[i]);
6154      }
6155    } else {
6156      swiper.virtual.slides.push(slides);
6157    }
6158    update(true);
6159  }
6160  function prependSlide(slides) {
6161    const activeIndex = swiper.activeIndex;
6162    let newActiveIndex = activeIndex + 1;
6163    let numberOfNewSlides = 1;
6164    if (Array.isArray(slides)) {
6165      for (let i = 0; i < slides.length; i += 1) {
6166        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
6167      }
6168      newActiveIndex = activeIndex + slides.length;
6169      numberOfNewSlides = slides.length;
6170    } else {
6171      swiper.virtual.slides.unshift(slides);
6172    }
6173    if (swiper.params.virtual.cache) {
6174      const cache = swiper.virtual.cache;
6175      const newCache = {};
6176      Object.keys(cache).forEach(cachedIndex => {
6177        const cachedEl = cache[cachedIndex];
6178        const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
6179        if (cachedElIndex) {
6180          cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
6181        }
6182        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
6183      });
6184      swiper.virtual.cache = newCache;
6185    }
6186    update(true);
6187    swiper.slideTo(newActiveIndex, 0);
6188  }
6189  function removeSlide(slidesIndexes) {
6190    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
6191    let activeIndex = swiper.activeIndex;
6192    if (Array.isArray(slidesIndexes)) {
6193      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
6194        if (swiper.params.virtual.cache) {
6195          delete swiper.virtual.cache[slidesIndexes[i]];
6196          // shift cache indexes
6197          Object.keys(swiper.virtual.cache).forEach(key => {
6198            if (key > slidesIndexes) {
6199              swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
6200              swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
6201              delete swiper.virtual.cache[key];
6202            }
6203          });
6204        }
6205        swiper.virtual.slides.splice(slidesIndexes[i], 1);
6206        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
6207        activeIndex = Math.max(activeIndex, 0);
6208      }
6209    } else {
6210      if (swiper.params.virtual.cache) {
6211        delete swiper.virtual.cache[slidesIndexes];
6212        // shift cache indexes
6213        Object.keys(swiper.virtual.cache).forEach(key => {
6214          if (key > slidesIndexes) {
6215            swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
6216            swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
6217            delete swiper.virtual.cache[key];
6218          }
6219        });
6220      }
6221      swiper.virtual.slides.splice(slidesIndexes, 1);
6222      if (slidesIndexes < activeIndex) activeIndex -= 1;
6223      activeIndex = Math.max(activeIndex, 0);
6224    }
6225    update(true);
6226    swiper.slideTo(activeIndex, 0);
6227  }
6228  function removeAllSlides() {
6229    swiper.virtual.slides = [];
6230    if (swiper.params.virtual.cache) {
6231      swiper.virtual.cache = {};
6232    }
6233    update(true);
6234    swiper.slideTo(0, 0);
6235  }
6236  on('beforeInit', () => {
6237    if (!swiper.params.virtual.enabled) return;
6238    let domSlidesAssigned;
6239    if (typeof swiper.passedParams.virtual.slides === 'undefined') {
6240      const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
6241      if (slides && slides.length) {
6242        swiper.virtual.slides = [...slides];
6243        domSlidesAssigned = true;
6244        slides.forEach((slideEl, slideIndex) => {
6245          slideEl.setAttribute('data-swiper-slide-index', slideIndex);
6246          swiper.virtual.cache[slideIndex] = slideEl;
6247          slideEl.remove();
6248        });
6249      }
6250    }
6251    if (!domSlidesAssigned) {
6252      swiper.virtual.slides = swiper.params.virtual.slides;
6253    }
6254    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
6255    swiper.params.watchSlidesProgress = true;
6256    swiper.originalParams.watchSlidesProgress = true;
6257    update();
6258  });
6259  on('setTranslate', () => {
6260    if (!swiper.params.virtual.enabled) return;
6261    if (swiper.params.cssMode && !swiper._immediateVirtual) {
6262      clearTimeout(cssModeTimeout);
6263      cssModeTimeout = setTimeout(() => {
6264        update();
6265      }, 100);
6266    } else {
6267      update();
6268    }
6269  });
6270  on('init update resize', () => {
6271    if (!swiper.params.virtual.enabled) return;
6272    if (swiper.params.cssMode) {
6273      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
6274    }
6275  });
6276  Object.assign(swiper.virtual, {
6277    appendSlide,
6278    prependSlide,
6279    removeSlide,
6280    removeAllSlides,
6281    update
6282  });
6283}
6284
6285
6286
6287
6288/***/ }),
6289
vendor: 22,561 bytes, lines 6290-6897
6290/***/ "./node_modules/swiper/modules/zoom.mjs":
6291/*!**********************************************!*\
6292  !*** ./node_modules/swiper/modules/zoom.mjs ***!
6293  \**********************************************/
6294/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6295
6296"use strict";
6297__webpack_require__.r(__webpack_exports__);
6298/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6299/* harmony export */   "default": () => (/* binding */ Zoom)
6300/* harmony export */ });
6301/* 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");
6302/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6303
6304
6305
6306function Zoom(_ref) {
6307  let {
6308    swiper,
6309    extendParams,
6310    on,
6311    emit
6312  } = _ref;
6313  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
6314  extendParams({
6315    zoom: {
6316      enabled: false,
6317      maxRatio: 3,
6318      minRatio: 1,
6319      toggle: true,
6320      containerClass: 'swiper-zoom-container',
6321      zoomedSlideClass: 'swiper-slide-zoomed'
6322    }
6323  });
6324  swiper.zoom = {
6325    enabled: false
6326  };
6327  let currentScale = 1;
6328  let isScaling = false;
6329  let fakeGestureTouched;
6330  let fakeGestureMoved;
6331  const evCache = [];
6332  const gesture = {
6333    originX: 0,
6334    originY: 0,
6335    slideEl: undefined,
6336    slideWidth: undefined,
6337    slideHeight: undefined,
6338    imageEl: undefined,
6339    imageWrapEl: undefined,
6340    maxRatio: 3
6341  };
6342  const image = {
6343    isTouched: undefined,
6344    isMoved: undefined,
6345    currentX: undefined,
6346    currentY: undefined,
6347    minX: undefined,
6348    minY: undefined,
6349    maxX: undefined,
6350    maxY: undefined,
6351    width: undefined,
6352    height: undefined,
6353    startX: undefined,
6354    startY: undefined,
6355    touchesStart: {},
6356    touchesCurrent: {}
6357  };
6358  const velocity = {
6359    x: undefined,
6360    y: undefined,
6361    prevPositionX: undefined,
6362    prevPositionY: undefined,
6363    prevTime: undefined
6364  };
6365  let scale = 1;
6366  Object.defineProperty(swiper.zoom, 'scale', {
6367    get() {
6368      return scale;
6369    },
6370    set(value) {
6371      if (scale !== value) {
6372        const imageEl = gesture.imageEl;
6373        const slideEl = gesture.slideEl;
6374        emit('zoomChange', value, imageEl, slideEl);
6375      }
6376      scale = value;
6377    }
6378  });
6379  function getDistanceBetweenTouches() {
6380    if (evCache.length < 2) return 1;
6381    const x1 = evCache[0].pageX;
6382    const y1 = evCache[0].pageY;
6383    const x2 = evCache[1].pageX;
6384    const y2 = evCache[1].pageY;
6385    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
6386    return distance;
6387  }
6388  function getScaleOrigin() {
6389    if (evCache.length < 2) return {
6390      x: null,
6391      y: null
6392    };
6393    const box = gesture.imageEl.getBoundingClientRect();
6394    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];
6395  }
6396  function getSlideSelector() {
6397    return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
6398  }
6399  function eventWithinSlide(e) {
6400    const slideSelector = getSlideSelector();
6401    if (e.target.matches(slideSelector)) return true;
6402    if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;
6403    return false;
6404  }
6405  function eventWithinZoomContainer(e) {
6406    const selector = `.${swiper.params.zoom.containerClass}`;
6407    if (e.target.matches(selector)) return true;
6408    if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;
6409    return false;
6410  }
6411
6412  // Events
6413  function onGestureStart(e) {
6414    if (e.pointerType === 'mouse') {
6415      evCache.splice(0, evCache.length);
6416    }
6417    if (!eventWithinSlide(e)) return;
6418    const params = swiper.params.zoom;
6419    fakeGestureTouched = false;
6420    fakeGestureMoved = false;
6421    evCache.push(e);
6422    if (evCache.length < 2) {
6423      return;
6424    }
6425    fakeGestureTouched = true;
6426    gesture.scaleStart = getDistanceBetweenTouches();
6427    if (!gesture.slideEl) {
6428      gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
6429      if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];
6430      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
6431      if (imageEl) {
6432        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
6433      }
6434      gesture.imageEl = imageEl;
6435      if (imageEl) {
6436        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
6437      } else {
6438        gesture.imageWrapEl = undefined;
6439      }
6440      if (!gesture.imageWrapEl) {
6441        gesture.imageEl = undefined;
6442        return;
6443      }
6444      gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
6445    }
6446    if (gesture.imageEl) {
6447      const [originX, originY] = getScaleOrigin();
6448      gesture.originX = originX;
6449      gesture.originY = originY;
6450      gesture.imageEl.style.transitionDuration = '0ms';
6451    }
6452    isScaling = true;
6453  }
6454  function onGestureChange(e) {
6455    if (!eventWithinSlide(e)) return;
6456    const params = swiper.params.zoom;
6457    const zoom = swiper.zoom;
6458    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
6459    if (pointerIndex >= 0) evCache[pointerIndex] = e;
6460    if (evCache.length < 2) {
6461      return;
6462    }
6463    fakeGestureMoved = true;
6464    gesture.scaleMove = getDistanceBetweenTouches();
6465    if (!gesture.imageEl) {
6466      return;
6467    }
6468    zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;
6469    if (zoom.scale > gesture.maxRatio) {
6470      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
6471    }
6472    if (zoom.scale < params.minRatio) {
6473      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
6474    }
6475    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
6476  }
6477  function onGestureEnd(e) {
6478    if (!eventWithinSlide(e)) return;
6479    if (e.pointerType === 'mouse' && e.type === 'pointerout') return;
6480    const params = swiper.params.zoom;
6481    const zoom = swiper.zoom;
6482    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
6483    if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);
6484    if (!fakeGestureTouched || !fakeGestureMoved) {
6485      return;
6486    }
6487    fakeGestureTouched = false;
6488    fakeGestureMoved = false;
6489    if (!gesture.imageEl) return;
6490    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
6491    gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;
6492    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
6493    currentScale = zoom.scale;
6494    isScaling = false;
6495    if (zoom.scale > 1 && gesture.slideEl) {
6496      gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
6497    } else if (zoom.scale <= 1 && gesture.slideEl) {
6498      gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
6499    }
6500    if (zoom.scale === 1) {
6501      gesture.originX = 0;
6502      gesture.originY = 0;
6503      gesture.slideEl = undefined;
6504    }
6505  }
6506  function onTouchStart(e) {
6507    const device = swiper.device;
6508    if (!gesture.imageEl) return;
6509    if (image.isTouched) return;
6510    if (device.android && e.cancelable) e.preventDefault();
6511    image.isTouched = true;
6512    const event = evCache.length > 0 ? evCache[0] : e;
6513    image.touchesStart.x = event.pageX;
6514    image.touchesStart.y = event.pageY;
6515  }
6516  function onTouchMove(e) {
6517    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;
6518    const zoom = swiper.zoom;
6519    if (!gesture.imageEl) return;
6520    if (!image.isTouched || !gesture.slideEl) return;
6521    if (!image.isMoved) {
6522      image.width = gesture.imageEl.offsetWidth;
6523      image.height = gesture.imageEl.offsetHeight;
6524      image.startX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(gesture.imageWrapEl, 'x') || 0;
6525      image.startY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(gesture.imageWrapEl, 'y') || 0;
6526      gesture.slideWidth = gesture.slideEl.offsetWidth;
6527      gesture.slideHeight = gesture.slideEl.offsetHeight;
6528      gesture.imageWrapEl.style.transitionDuration = '0ms';
6529    }
6530    // Define if we need image drag
6531    const scaledWidth = image.width * zoom.scale;
6532    const scaledHeight = image.height * zoom.scale;
6533    if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;
6534    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
6535    image.maxX = -image.minX;
6536    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
6537    image.maxY = -image.minY;
6538    image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;
6539    image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;
6540    const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));
6541    if (touchesDiff > 5) {
6542      swiper.allowClick = false;
6543    }
6544    if (!image.isMoved && !isScaling) {
6545      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)) {
6546        image.isTouched = false;
6547        return;
6548      }
6549      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)) {
6550        image.isTouched = false;
6551        return;
6552      }
6553    }
6554    if (e.cancelable) {
6555      e.preventDefault();
6556    }
6557    e.stopPropagation();
6558    image.isMoved = true;
6559    const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);
6560    const {
6561      originX,
6562      originY
6563    } = gesture;
6564    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);
6565    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);
6566    if (image.currentX < image.minX) {
6567      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
6568    }
6569    if (image.currentX > image.maxX) {
6570      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
6571    }
6572    if (image.currentY < image.minY) {
6573      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
6574    }
6575    if (image.currentY > image.maxY) {
6576      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
6577    }
6578
6579    // Velocity
6580    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;
6581    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;
6582    if (!velocity.prevTime) velocity.prevTime = Date.now();
6583    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
6584    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
6585    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;
6586    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;
6587    velocity.prevPositionX = image.touchesCurrent.x;
6588    velocity.prevPositionY = image.touchesCurrent.y;
6589    velocity.prevTime = Date.now();
6590    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
6591  }
6592  function onTouchEnd() {
6593    const zoom = swiper.zoom;
6594    if (!gesture.imageEl) return;
6595    if (!image.isTouched || !image.isMoved) {
6596      image.isTouched = false;
6597      image.isMoved = false;
6598      return;
6599    }
6600    image.isTouched = false;
6601    image.isMoved = false;
6602    let momentumDurationX = 300;
6603    let momentumDurationY = 300;
6604    const momentumDistanceX = velocity.x * momentumDurationX;
6605    const newPositionX = image.currentX + momentumDistanceX;
6606    const momentumDistanceY = velocity.y * momentumDurationY;
6607    const newPositionY = image.currentY + momentumDistanceY;
6608
6609    // Fix duration
6610    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
6611    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
6612    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);
6613    image.currentX = newPositionX;
6614    image.currentY = newPositionY;
6615    // Define if we need image drag
6616    const scaledWidth = image.width * zoom.scale;
6617    const scaledHeight = image.height * zoom.scale;
6618    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
6619    image.maxX = -image.minX;
6620    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
6621    image.maxY = -image.minY;
6622    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
6623    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
6624    gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;
6625    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
6626  }
6627  function onTransitionEnd() {
6628    const zoom = swiper.zoom;
6629    if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {
6630      if (gesture.imageEl) {
6631        gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
6632      }
6633      if (gesture.imageWrapEl) {
6634        gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
6635      }
6636      gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);
6637      zoom.scale = 1;
6638      currentScale = 1;
6639      gesture.slideEl = undefined;
6640      gesture.imageEl = undefined;
6641      gesture.imageWrapEl = undefined;
6642      gesture.originX = 0;
6643      gesture.originY = 0;
6644    }
6645  }
6646  function zoomIn(e) {
6647    const zoom = swiper.zoom;
6648    const params = swiper.params.zoom;
6649    if (!gesture.slideEl) {
6650      if (e && e.target) {
6651        gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
6652      }
6653      if (!gesture.slideEl) {
6654        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
6655          gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
6656        } else {
6657          gesture.slideEl = swiper.slides[swiper.activeIndex];
6658        }
6659      }
6660      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
6661      if (imageEl) {
6662        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
6663      }
6664      gesture.imageEl = imageEl;
6665      if (imageEl) {
6666        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
6667      } else {
6668        gesture.imageWrapEl = undefined;
6669      }
6670    }
6671    if (!gesture.imageEl || !gesture.imageWrapEl) return;
6672    if (swiper.params.cssMode) {
6673      swiper.wrapperEl.style.overflow = 'hidden';
6674      swiper.wrapperEl.style.touchAction = 'none';
6675    }
6676    gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
6677    let touchX;
6678    let touchY;
6679    let offsetX;
6680    let offsetY;
6681    let diffX;
6682    let diffY;
6683    let translateX;
6684    let translateY;
6685    let imageWidth;
6686    let imageHeight;
6687    let scaledWidth;
6688    let scaledHeight;
6689    let translateMinX;
6690    let translateMinY;
6691    let translateMaxX;
6692    let translateMaxY;
6693    let slideWidth;
6694    let slideHeight;
6695    if (typeof image.touchesStart.x === 'undefined' && e) {
6696      touchX = e.pageX;
6697      touchY = e.pageY;
6698    } else {
6699      touchX = image.touchesStart.x;
6700      touchY = image.touchesStart.y;
6701    }
6702    const forceZoomRatio = typeof e === 'number' ? e : null;
6703    if (currentScale === 1 && forceZoomRatio) {
6704      touchX = undefined;
6705      touchY = undefined;
6706    }
6707    zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
6708    currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
6709    if (e && !(currentScale === 1 && forceZoomRatio)) {
6710      slideWidth = gesture.slideEl.offsetWidth;
6711      slideHeight = gesture.slideEl.offsetHeight;
6712      offsetX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.slideEl).left + window.scrollX;
6713      offsetY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.slideEl).top + window.scrollY;
6714      diffX = offsetX + slideWidth / 2 - touchX;
6715      diffY = offsetY + slideHeight / 2 - touchY;
6716      imageWidth = gesture.imageEl.offsetWidth;
6717      imageHeight = gesture.imageEl.offsetHeight;
6718      scaledWidth = imageWidth * zoom.scale;
6719      scaledHeight = imageHeight * zoom.scale;
6720      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
6721      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
6722      translateMaxX = -translateMinX;
6723      translateMaxY = -translateMinY;
6724      translateX = diffX * zoom.scale;
6725      translateY = diffY * zoom.scale;
6726      if (translateX < translateMinX) {
6727        translateX = translateMinX;
6728      }
6729      if (translateX > translateMaxX) {
6730        translateX = translateMaxX;
6731      }
6732      if (translateY < translateMinY) {
6733        translateY = translateMinY;
6734      }
6735      if (translateY > translateMaxY) {
6736        translateY = translateMaxY;
6737      }
6738    } else {
6739      translateX = 0;
6740      translateY = 0;
6741    }
6742    if (forceZoomRatio && zoom.scale === 1) {
6743      gesture.originX = 0;
6744      gesture.originY = 0;
6745    }
6746    gesture.imageWrapEl.style.transitionDuration = '300ms';
6747    gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;
6748    gesture.imageEl.style.transitionDuration = '300ms';
6749    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
6750  }
6751  function zoomOut() {
6752    const zoom = swiper.zoom;
6753    const params = swiper.params.zoom;
6754    if (!gesture.slideEl) {
6755      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
6756        gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
6757      } else {
6758        gesture.slideEl = swiper.slides[swiper.activeIndex];
6759      }
6760      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
6761      if (imageEl) {
6762        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
6763      }
6764      gesture.imageEl = imageEl;
6765      if (imageEl) {
6766        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
6767      } else {
6768        gesture.imageWrapEl = undefined;
6769      }
6770    }
6771    if (!gesture.imageEl || !gesture.imageWrapEl) return;
6772    if (swiper.params.cssMode) {
6773      swiper.wrapperEl.style.overflow = '';
6774      swiper.wrapperEl.style.touchAction = '';
6775    }
6776    zoom.scale = 1;
6777    currentScale = 1;
6778    gesture.imageWrapEl.style.transitionDuration = '300ms';
6779    gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
6780    gesture.imageEl.style.transitionDuration = '300ms';
6781    gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
6782    gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
6783    gesture.slideEl = undefined;
6784    gesture.originX = 0;
6785    gesture.originY = 0;
6786  }
6787
6788  // Toggle Zoom
6789  function zoomToggle(e) {
6790    const zoom = swiper.zoom;
6791    if (zoom.scale && zoom.scale !== 1) {
6792      // Zoom Out
6793      zoomOut();
6794    } else {
6795      // Zoom In
6796      zoomIn(e);
6797    }
6798  }
6799  function getListeners() {
6800    const passiveListener = swiper.params.passiveListeners ? {
6801      passive: true,
6802      capture: false
6803    } : false;
6804    const activeListenerWithCapture = swiper.params.passiveListeners ? {
6805      passive: false,
6806      capture: true
6807    } : true;
6808    return {
6809      passiveListener,
6810      activeListenerWithCapture
6811    };
6812  }
6813
6814  // Attach/Detach Events
6815  function enable() {
6816    const zoom = swiper.zoom;
6817    if (zoom.enabled) return;
6818    zoom.enabled = true;
6819    const {
6820      passiveListener,
6821      activeListenerWithCapture
6822    } = getListeners();
6823
6824    // Scale image
6825    swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);
6826    swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);
6827    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
6828      swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);
6829    });
6830
6831    // Move image
6832    swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);
6833  }
6834  function disable() {
6835    const zoom = swiper.zoom;
6836    if (!zoom.enabled) return;
6837    zoom.enabled = false;
6838    const {
6839      passiveListener,
6840      activeListenerWithCapture
6841    } = getListeners();
6842
6843    // Scale image
6844    swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);
6845    swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);
6846    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
6847      swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);
6848    });
6849
6850    // Move image
6851    swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);
6852  }
6853  on('init', () => {
6854    if (swiper.params.zoom.enabled) {
6855      enable();
6856    }
6857  });
6858  on('destroy', () => {
6859    disable();
6860  });
6861  on('touchStart', (_s, e) => {
6862    if (!swiper.zoom.enabled) return;
6863    onTouchStart(e);
6864  });
6865  on('touchEnd', (_s, e) => {
6866    if (!swiper.zoom.enabled) return;
6867    onTouchEnd();
6868  });
6869  on('doubleTap', (_s, e) => {
6870    if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
6871      zoomToggle(e);
6872    }
6873  });
6874  on('transitionEnd', () => {
6875    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {
6876      onTransitionEnd();
6877    }
6878  });
6879  on('slideChange', () => {
6880    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {
6881      onTransitionEnd();
6882    }
6883  });
6884  Object.assign(swiper.zoom, {
6885    enable,
6886    disable,
6887    in: zoomIn,
6888    out: zoomOut,
6889    toggle: zoomToggle
6890  });
6891}
6892
6893
6894
6895
6896/***/ }),
6897
vendor: 780 bytes, lines 6898-6921
6898/***/ "./node_modules/swiper/shared/classes-to-selector.mjs":
6899/*!************************************************************!*\
6900  !*** ./node_modules/swiper/shared/classes-to-selector.mjs ***!
6901  \************************************************************/
6902/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6903
6904"use strict";
6905__webpack_require__.r(__webpack_exports__);
6906/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6907/* harmony export */   c: () => (/* binding */ classesToSelector)
6908/* harmony export */ });
6909function classesToSelector(classes) {
6910  if (classes === void 0) {
6911    classes = '';
6912  }
6913  return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line
6914  .replace(/ /g, '.')}`;
6915}
6916
6917
6918
6919
6920/***/ }),
6921
vendor: 1,419 bytes, lines 6922-6958
6922/***/ "./node_modules/swiper/shared/create-element-if-not-defined.mjs":
6923/*!**********************************************************************!*\
6924  !*** ./node_modules/swiper/shared/create-element-if-not-defined.mjs ***!
6925  \**********************************************************************/
6926/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6927
6928"use strict";
6929__webpack_require__.r(__webpack_exports__);
6930/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6931/* harmony export */   c: () => (/* binding */ createElementIfNotDefined)
6932/* harmony export */ });
6933/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6934
6935
6936function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
6937  if (swiper.params.createElements) {
6938    Object.keys(checkProps).forEach(key => {
6939      if (!params[key] && params.auto === true) {
6940        let element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.el, `.${checkProps[key]}`)[0];
6941        if (!element) {
6942          element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', checkProps[key]);
6943          element.className = checkProps[key];
6944          swiper.el.append(element);
6945        }
6946        params[key] = element;
6947        originalParams[key] = element;
6948      }
6949    });
6950  }
6951  return params;
6952}
6953
6954
6955
6956
6957/***/ }),
6958
vendor: 1,215 bytes, lines 6959-6988
6959/***/ "./node_modules/swiper/shared/create-shadow.mjs":
6960/*!******************************************************!*\
6961  !*** ./node_modules/swiper/shared/create-shadow.mjs ***!
6962  \******************************************************/
6963/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6964
6965"use strict";
6966__webpack_require__.r(__webpack_exports__);
6967/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6968/* harmony export */   c: () => (/* binding */ createShadow)
6969/* harmony export */ });
6970/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
6971
6972
6973function createShadow(suffix, slideEl, side) {
6974  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;
6975  const shadowContainer = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(slideEl);
6976  let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);
6977  if (!shadowEl) {
6978    shadowEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', shadowClass.split(' '));
6979    shadowContainer.append(shadowEl);
6980  }
6981  return shadowEl;
6982}
6983
6984
6985
6986
6987/***/ }),
6988
vendor: 2,338 bytes, lines 6989-7061
6989/***/ "./node_modules/swiper/shared/effect-init.mjs":
6990/*!****************************************************!*\
6991  !*** ./node_modules/swiper/shared/effect-init.mjs ***!
6992  \****************************************************/
6993/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6994
6995"use strict";
6996__webpack_require__.r(__webpack_exports__);
6997/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6998/* harmony export */   e: () => (/* binding */ effectInit)
6999/* harmony export */ });
7000function effectInit(params) {
7001  const {
7002    effect,
7003    swiper,
7004    on,
7005    setTranslate,
7006    setTransition,
7007    overwriteParams,
7008    perspective,
7009    recreateShadows,
7010    getEffectParams
7011  } = params;
7012  on('beforeInit', () => {
7013    if (swiper.params.effect !== effect) return;
7014    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
7015    if (perspective && perspective()) {
7016      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
7017    }
7018    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};
7019    Object.assign(swiper.params, overwriteParamsResult);
7020    Object.assign(swiper.originalParams, overwriteParamsResult);
7021  });
7022  on('setTranslate', () => {
7023    if (swiper.params.effect !== effect) return;
7024    setTranslate();
7025  });
7026  on('setTransition', (_s, duration) => {
7027    if (swiper.params.effect !== effect) return;
7028    setTransition(duration);
7029  });
7030  on('transitionEnd', () => {
7031    if (swiper.params.effect !== effect) return;
7032    if (recreateShadows) {
7033      if (!getEffectParams || !getEffectParams().slideShadows) return;
7034      // remove shadows
7035      swiper.slides.forEach(slideEl => {
7036        slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());
7037      });
7038      // create new one
7039      recreateShadows();
7040    }
7041  });
7042  let requireUpdateOnVirtual;
7043  on('virtualUpdate', () => {
7044    if (swiper.params.effect !== effect) return;
7045    if (!swiper.slides.length) {
7046      requireUpdateOnVirtual = true;
7047    }
7048    requestAnimationFrame(() => {
7049      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {
7050        setTranslate();
7051        requireUpdateOnVirtual = false;
7052      }
7053    });
7054  });
7055}
7056
7057
7058
7059
7060/***/ }),
7061
vendor: 1,008 bytes, lines 7062-7089
7062/***/ "./node_modules/swiper/shared/effect-target.mjs":
7063/*!******************************************************!*\
7064  !*** ./node_modules/swiper/shared/effect-target.mjs ***!
7065  \******************************************************/
7066/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
7067
7068"use strict";
7069__webpack_require__.r(__webpack_exports__);
7070/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7071/* harmony export */   e: () => (/* binding */ effectTarget)
7072/* harmony export */ });
7073/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
7074
7075
7076function effectTarget(effectParams, slideEl) {
7077  const transformEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.l)(slideEl);
7078  if (transformEl !== slideEl) {
7079    transformEl.style.backfaceVisibility = 'hidden';
7080    transformEl.style['-webkit-backface-visibility'] = 'hidden';
7081  }
7082  return transformEl;
7083}
7084
7085
7086
7087
7088/***/ }),
7089
vendor: 2,116 bytes, lines 7090-7153
7090/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs":
7091/*!**********************************************************************!*\
7092  !*** ./node_modules/swiper/shared/effect-virtual-transition-end.mjs ***!
7093  \**********************************************************************/
7094/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
7095
7096"use strict";
7097__webpack_require__.r(__webpack_exports__);
7098/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7099/* harmony export */   e: () => (/* binding */ effectVirtualTransitionEnd)
7100/* harmony export */ });
7101/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
7102
7103
7104function effectVirtualTransitionEnd(_ref) {
7105  let {
7106    swiper,
7107    duration,
7108    transformElements,
7109    allSlides
7110  } = _ref;
7111  const {
7112    activeIndex
7113  } = swiper;
7114  const getSlide = el => {
7115    if (!el.parentElement) {
7116      // assume shadow root
7117      const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];
7118      return slide;
7119    }
7120    return el.parentElement;
7121  };
7122  if (swiper.params.virtualTranslate && duration !== 0) {
7123    let eventTriggered = false;
7124    let transitionEndTarget;
7125    if (allSlides) {
7126      transitionEndTarget = transformElements;
7127    } else {
7128      transitionEndTarget = transformElements.filter(transformEl => {
7129        const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;
7130        return swiper.getSlideIndex(el) === activeIndex;
7131      });
7132    }
7133    transitionEndTarget.forEach(el => {
7134      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.j)(el, () => {
7135        if (eventTriggered) return;
7136        if (!swiper || swiper.destroyed) return;
7137        eventTriggered = true;
7138        swiper.animating = false;
7139        const evt = new window.CustomEvent('transitionend', {
7140          bubbles: true,
7141          cancelable: true
7142        });
7143        swiper.wrapperEl.dispatchEvent(evt);
7144      });
7145    });
7146  }
7147}
7148
7149
7150
7151
7152/***/ }),
7153
vendor: 3,334 bytes, lines 7154-7314
7154/***/ "./node_modules/swiper/shared/ssr-window.esm.mjs":
7155/*!*******************************************************!*\
7156  !*** ./node_modules/swiper/shared/ssr-window.esm.mjs ***!
7157  \*******************************************************/
7158/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
7159
7160"use strict";
7161__webpack_require__.r(__webpack_exports__);
7162/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7163/* harmony export */   a: () => (/* binding */ getWindow),
7164/* harmony export */   g: () => (/* binding */ getDocument)
7165/* harmony export */ });
7166/**
7167 * SSR Window 4.0.2
7168 * Better handling for window object in SSR environment
7169 * https://github.com/nolimits4web/ssr-window
7170 *
7171 * Copyright 2021, Vladimir Kharlampidi
7172 *
7173 * Licensed under MIT
7174 *
7175 * Released on: December 13, 2021
7176 */
7177/* eslint-disable no-param-reassign */
7178function isObject(obj) {
7179  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
7180}
7181function extend(target, src) {
7182  if (target === void 0) {
7183    target = {};
7184  }
7185  if (src === void 0) {
7186    src = {};
7187  }
7188  Object.keys(src).forEach(key => {
7189    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {
7190      extend(target[key], src[key]);
7191    }
7192  });
7193}
7194const ssrDocument = {
7195  body: {},
7196  addEventListener() {},
7197  removeEventListener() {},
7198  activeElement: {
7199    blur() {},
7200    nodeName: ''
7201  },
7202  querySelector() {
7203    return null;
7204  },
7205  querySelectorAll() {
7206    return [];
7207  },
7208  getElementById() {
7209    return null;
7210  },
7211  createEvent() {
7212    return {
7213      initEvent() {}
7214    };
7215  },
7216  createElement() {
7217    return {
7218      children: [],
7219      childNodes: [],
7220      style: {},
7221      setAttribute() {},
7222      getElementsByTagName() {
7223        return [];
7224      }
7225    };
7226  },
7227  createElementNS() {
7228    return {};
7229  },
7230  importNode() {
7231    return null;
7232  },
7233  location: {
7234    hash: '',
7235    host: '',
7236    hostname: '',
7237    href: '',
7238    origin: '',
7239    pathname: '',
7240    protocol: '',
7241    search: ''
7242  }
7243};
7244function getDocument() {
7245  const doc = typeof document !== 'undefined' ? document : {};
7246  extend(doc, ssrDocument);
7247  return doc;
7248}
7249const ssrWindow = {
7250  document: ssrDocument,
7251  navigator: {
7252    userAgent: ''
7253  },
7254  location: {
7255    hash: '',
7256    host: '',
7257    hostname: '',
7258    href: '',
7259    origin: '',
7260    pathname: '',
7261    protocol: '',
7262    search: ''
7263  },
7264  history: {
7265    replaceState() {},
7266    pushState() {},
7267    go() {},
7268    back() {}
7269  },
7270  CustomEvent: function CustomEvent() {
7271    return this;
7272  },
7273  addEventListener() {},
7274  removeEventListener() {},
7275  getComputedStyle() {
7276    return {
7277      getPropertyValue() {
7278        return '';
7279      }
7280    };
7281  },
7282  Image() {},
7283  Date() {},
7284  screen: {},
7285  setTimeout() {},
7286  clearTimeout() {},
7287  matchMedia() {
7288    return {};
7289  },
7290  requestAnimationFrame(callback) {
7291    if (typeof setTimeout === 'undefined') {
7292      callback();
7293      return null;
7294    }
7295    return setTimeout(callback, 0);
7296  },
7297  cancelAnimationFrame(id) {
7298    if (typeof setTimeout === 'undefined') {
7299      return;
7300    }
7301    clearTimeout(id);
7302  }
7303};
7304function getWindow() {
7305  const win = typeof window !== 'undefined' ? window : {};
7306  extend(win, ssrWindow);
7307  return win;
7308}
7309
7310
7311
7312
7313/***/ }),
7314
vendor: 130,769 bytes, lines 7315-11222
7315/***/ "./node_modules/swiper/shared/swiper-core.mjs":
7316/*!****************************************************!*\
7317  !*** ./node_modules/swiper/shared/swiper-core.mjs ***!
7318  \****************************************************/
7319/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
7320
7321"use strict";
7322__webpack_require__.r(__webpack_exports__);
7323/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7324/* harmony export */   S: () => (/* binding */ Swiper),
7325/* harmony export */   d: () => (/* binding */ defaults)
7326/* harmony export */ });
7327/* 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");
7328/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
7329
7330
7331
7332let support;
7333function calcSupport() {
7334  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
7335  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
7336  return {
7337    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,
7338    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)
7339  };
7340}
7341function getSupport() {
7342  if (!support) {
7343    support = calcSupport();
7344  }
7345  return support;
7346}
7347
7348let deviceCached;
7349function calcDevice(_temp) {
7350  let {
7351    userAgent
7352  } = _temp === void 0 ? {} : _temp;
7353  const support = getSupport();
7354  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
7355  const platform = window.navigator.platform;
7356  const ua = userAgent || window.navigator.userAgent;
7357  const device = {
7358    ios: false,
7359    android: false
7360  };
7361  const screenWidth = window.screen.width;
7362  const screenHeight = window.screen.height;
7363  const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
7364  let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
7365  const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
7366  const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
7367  const windows = platform === 'Win32';
7368  let macos = platform === 'MacIntel';
7369
7370  // iPadOs 13 fix
7371  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
7372  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
7373    ipad = ua.match(/(Version)\/([\d.]+)/);
7374    if (!ipad) ipad = [0, 1, '13_0_0'];
7375    macos = false;
7376  }
7377
7378  // Android
7379  if (android && !windows) {
7380    device.os = 'android';
7381    device.android = true;
7382  }
7383  if (ipad || iphone || ipod) {
7384    device.os = 'ios';
7385    device.ios = true;
7386  }
7387
7388  // Export object
7389  return device;
7390}
7391function getDevice(overrides) {
7392  if (overrides === void 0) {
7393    overrides = {};
7394  }
7395  if (!deviceCached) {
7396    deviceCached = calcDevice(overrides);
7397  }
7398  return deviceCached;
7399}
7400
7401let browser;
7402function calcBrowser() {
7403  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
7404  const device = getDevice();
7405  let needPerspectiveFix = false;
7406  function isSafari() {
7407    const ua = window.navigator.userAgent.toLowerCase();
7408    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
7409  }
7410  if (isSafari()) {
7411    const ua = String(window.navigator.userAgent);
7412    if (ua.includes('Version/')) {
7413      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
7414      needPerspectiveFix = major < 16 || major === 16 && minor < 2;
7415    }
7416  }
7417  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);
7418  const isSafariBrowser = isSafari();
7419  const need3dFix = isSafariBrowser || isWebView && device.ios;
7420  return {
7421    isSafari: needPerspectiveFix || isSafariBrowser,
7422    needPerspectiveFix,
7423    need3dFix,
7424    isWebView
7425  };
7426}
7427function getBrowser() {
7428  if (!browser) {
7429    browser = calcBrowser();
7430  }
7431  return browser;
7432}
7433
7434function Resize(_ref) {
7435  let {
7436    swiper,
7437    on,
7438    emit
7439  } = _ref;
7440  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
7441  let observer = null;
7442  let animationFrame = null;
7443  const resizeHandler = () => {
7444    if (!swiper || swiper.destroyed || !swiper.initialized) return;
7445    emit('beforeResize');
7446    emit('resize');
7447  };
7448  const createObserver = () => {
7449    if (!swiper || swiper.destroyed || !swiper.initialized) return;
7450    observer = new ResizeObserver(entries => {
7451      animationFrame = window.requestAnimationFrame(() => {
7452        const {
7453          width,
7454          height
7455        } = swiper;
7456        let newWidth = width;
7457        let newHeight = height;
7458        entries.forEach(_ref2 => {
7459          let {
7460            contentBoxSize,
7461            contentRect,
7462            target
7463          } = _ref2;
7464          if (target && target !== swiper.el) return;
7465          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
7466          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
7467        });
7468        if (newWidth !== width || newHeight !== height) {
7469          resizeHandler();
7470        }
7471      });
7472    });
7473    observer.observe(swiper.el);
7474  };
7475  const removeObserver = () => {
7476    if (animationFrame) {
7477      window.cancelAnimationFrame(animationFrame);
7478    }
7479    if (observer && observer.unobserve && swiper.el) {
7480      observer.unobserve(swiper.el);
7481      observer = null;
7482    }
7483  };
7484  const orientationChangeHandler = () => {
7485    if (!swiper || swiper.destroyed || !swiper.initialized) return;
7486    emit('orientationchange');
7487  };
7488  on('init', () => {
7489    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {
7490      createObserver();
7491      return;
7492    }
7493    window.addEventListener('resize', resizeHandler);
7494    window.addEventListener('orientationchange', orientationChangeHandler);
7495  });
7496  on('destroy', () => {
7497    removeObserver();
7498    window.removeEventListener('resize', resizeHandler);
7499    window.removeEventListener('orientationchange', orientationChangeHandler);
7500  });
7501}
7502
7503function Observer(_ref) {
7504  let {
7505    swiper,
7506    extendParams,
7507    on,
7508    emit
7509  } = _ref;
7510  const observers = [];
7511  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
7512  const attach = function (target, options) {
7513    if (options === void 0) {
7514      options = {};
7515    }
7516    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
7517    const observer = new ObserverFunc(mutations => {
7518      // The observerUpdate event should only be triggered
7519      // once despite the number of mutations.  Additional
7520      // triggers are redundant and are very costly
7521      if (swiper.__preventObserver__) return;
7522      if (mutations.length === 1) {
7523        emit('observerUpdate', mutations[0]);
7524        return;
7525      }
7526      const observerUpdate = function observerUpdate() {
7527        emit('observerUpdate', mutations[0]);
7528      };
7529      if (window.requestAnimationFrame) {
7530        window.requestAnimationFrame(observerUpdate);
7531      } else {
7532        window.setTimeout(observerUpdate, 0);
7533      }
7534    });
7535    observer.observe(target, {
7536      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
7537      childList: typeof options.childList === 'undefined' ? true : options.childList,
7538      characterData: typeof options.characterData === 'undefined' ? true : options.characterData
7539    });
7540    observers.push(observer);
7541  };
7542  const init = () => {
7543    if (!swiper.params.observer) return;
7544    if (swiper.params.observeParents) {
7545      const containerParents = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.hostEl);
7546      for (let i = 0; i < containerParents.length; i += 1) {
7547        attach(containerParents[i]);
7548      }
7549    }
7550    // Observe container
7551    attach(swiper.hostEl, {
7552      childList: swiper.params.observeSlideChildren
7553    });
7554
7555    // Observe wrapper
7556    attach(swiper.wrapperEl, {
7557      attributes: false
7558    });
7559  };
7560  const destroy = () => {
7561    observers.forEach(observer => {
7562      observer.disconnect();
7563    });
7564    observers.splice(0, observers.length);
7565  };
7566  extendParams({
7567    observer: false,
7568    observeParents: false,
7569    observeSlideChildren: false
7570  });
7571  on('init', init);
7572  on('destroy', destroy);
7573}
7574
7575/* eslint-disable no-underscore-dangle */
7576
7577var eventsEmitter = {
7578  on(events, handler, priority) {
7579    const self = this;
7580    if (!self.eventsListeners || self.destroyed) return self;
7581    if (typeof handler !== 'function') return self;
7582    const method = priority ? 'unshift' : 'push';
7583    events.split(' ').forEach(event => {
7584      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
7585      self.eventsListeners[event][method](handler);
7586    });
7587    return self;
7588  },
7589  once(events, handler, priority) {
7590    const self = this;
7591    if (!self.eventsListeners || self.destroyed) return self;
7592    if (typeof handler !== 'function') return self;
7593    function onceHandler() {
7594      self.off(events, onceHandler);
7595      if (onceHandler.__emitterProxy) {
7596        delete onceHandler.__emitterProxy;
7597      }
7598      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
7599        args[_key] = arguments[_key];
7600      }
7601      handler.apply(self, args);
7602    }
7603    onceHandler.__emitterProxy = handler;
7604    return self.on(events, onceHandler, priority);
7605  },
7606  onAny(handler, priority) {
7607    const self = this;
7608    if (!self.eventsListeners || self.destroyed) return self;
7609    if (typeof handler !== 'function') return self;
7610    const method = priority ? 'unshift' : 'push';
7611    if (self.eventsAnyListeners.indexOf(handler) < 0) {
7612      self.eventsAnyListeners[method](handler);
7613    }
7614    return self;
7615  },
7616  offAny(handler) {
7617    const self = this;
7618    if (!self.eventsListeners || self.destroyed) return self;
7619    if (!self.eventsAnyListeners) return self;
7620    const index = self.eventsAnyListeners.indexOf(handler);
7621    if (index >= 0) {
7622      self.eventsAnyListeners.splice(index, 1);
7623    }
7624    return self;
7625  },
7626  off(events, handler) {
7627    const self = this;
7628    if (!self.eventsListeners || self.destroyed) return self;
7629    if (!self.eventsListeners) return self;
7630    events.split(' ').forEach(event => {
7631      if (typeof handler === 'undefined') {
7632        self.eventsListeners[event] = [];
7633      } else if (self.eventsListeners[event]) {
7634        self.eventsListeners[event].forEach((eventHandler, index) => {
7635          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
7636            self.eventsListeners[event].splice(index, 1);
7637          }
7638        });
7639      }
7640    });
7641    return self;
7642  },
7643  emit() {
7644    const self = this;
7645    if (!self.eventsListeners || self.destroyed) return self;
7646    if (!self.eventsListeners) return self;
7647    let events;
7648    let data;
7649    let context;
7650    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
7651      args[_key2] = arguments[_key2];
7652    }
7653    if (typeof args[0] === 'string' || Array.isArray(args[0])) {
7654      events = args[0];
7655      data = args.slice(1, args.length);
7656      context = self;
7657    } else {
7658      events = args[0].events;
7659      data = args[0].data;
7660      context = args[0].context || self;
7661    }
7662    data.unshift(context);
7663    const eventsArray = Array.isArray(events) ? events : events.split(' ');
7664    eventsArray.forEach(event => {
7665      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
7666        self.eventsAnyListeners.forEach(eventHandler => {
7667          eventHandler.apply(context, [event, ...data]);
7668        });
7669      }
7670      if (self.eventsListeners && self.eventsListeners[event]) {
7671        self.eventsListeners[event].forEach(eventHandler => {
7672          eventHandler.apply(context, data);
7673        });
7674      }
7675    });
7676    return self;
7677  }
7678};
7679
7680function updateSize() {
7681  const swiper = this;
7682  let width;
7683  let height;
7684  const el = swiper.el;
7685  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {
7686    width = swiper.params.width;
7687  } else {
7688    width = el.clientWidth;
7689  }
7690  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {
7691    height = swiper.params.height;
7692  } else {
7693    height = el.clientHeight;
7694  }
7695  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
7696    return;
7697  }
7698
7699  // Subtract paddings
7700  width = width - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(el, 'padding-left') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(el, 'padding-right') || 0, 10);
7701  height = height - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(el, 'padding-top') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(el, 'padding-bottom') || 0, 10);
7702  if (Number.isNaN(width)) width = 0;
7703  if (Number.isNaN(height)) height = 0;
7704  Object.assign(swiper, {
7705    width,
7706    height,
7707    size: swiper.isHorizontal() ? width : height
7708  });
7709}
7710
7711function updateSlides() {
7712  const swiper = this;
7713  function getDirectionPropertyValue(node, label) {
7714    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);
7715  }
7716  const params = swiper.params;
7717  const {
7718    wrapperEl,
7719    slidesEl,
7720    size: swiperSize,
7721    rtlTranslate: rtl,
7722    wrongRTL
7723  } = swiper;
7724  const isVirtual = swiper.virtual && params.virtual.enabled;
7725  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
7726  const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);
7727  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
7728  let snapGrid = [];
7729  const slidesGrid = [];
7730  const slidesSizesGrid = [];
7731  let offsetBefore = params.slidesOffsetBefore;
7732  if (typeof offsetBefore === 'function') {
7733    offsetBefore = params.slidesOffsetBefore.call(swiper);
7734  }
7735  let offsetAfter = params.slidesOffsetAfter;
7736  if (typeof offsetAfter === 'function') {
7737    offsetAfter = params.slidesOffsetAfter.call(swiper);
7738  }
7739  const previousSnapGridLength = swiper.snapGrid.length;
7740  const previousSlidesGridLength = swiper.slidesGrid.length;
7741  let spaceBetween = params.spaceBetween;
7742  let slidePosition = -offsetBefore;
7743  let prevSlideSize = 0;
7744  let index = 0;
7745  if (typeof swiperSize === 'undefined') {
7746    return;
7747  }
7748  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
7749    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
7750  } else if (typeof spaceBetween === 'string') {
7751    spaceBetween = parseFloat(spaceBetween);
7752  }
7753  swiper.virtualSize = -spaceBetween;
7754
7755  // reset margins
7756  slides.forEach(slideEl => {
7757    if (rtl) {
7758      slideEl.style.marginLeft = '';
7759    } else {
7760      slideEl.style.marginRight = '';
7761    }
7762    slideEl.style.marginBottom = '';
7763    slideEl.style.marginTop = '';
7764  });
7765
7766  // reset cssMode offsets
7767  if (params.centeredSlides && params.cssMode) {
7768    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-before', '');
7769    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-after', '');
7770  }
7771  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
7772  if (gridEnabled) {
7773    swiper.grid.initSlides(slides);
7774  } else if (swiper.grid) {
7775    swiper.grid.unsetSlides();
7776  }
7777
7778  // Calc slides
7779  let slideSize;
7780  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {
7781    return typeof params.breakpoints[key].slidesPerView !== 'undefined';
7782  }).length > 0;
7783  for (let i = 0; i < slidesLength; i += 1) {
7784    slideSize = 0;
7785    let slide;
7786    if (slides[i]) slide = slides[i];
7787    if (gridEnabled) {
7788      swiper.grid.updateSlide(i, slide, slides);
7789    }
7790    if (slides[i] && (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(slide, 'display') === 'none') continue; // eslint-disable-line
7791
7792    if (params.slidesPerView === 'auto') {
7793      if (shouldResetSlideSize) {
7794        slides[i].style[swiper.getDirectionLabel('width')] = ``;
7795      }
7796      const slideStyles = getComputedStyle(slide);
7797      const currentTransform = slide.style.transform;
7798      const currentWebKitTransform = slide.style.webkitTransform;
7799      if (currentTransform) {
7800        slide.style.transform = 'none';
7801      }
7802      if (currentWebKitTransform) {
7803        slide.style.webkitTransform = 'none';
7804      }
7805      if (params.roundLengths) {
7806        slideSize = swiper.isHorizontal() ? (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(slide, 'width', true) : (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(slide, 'height', true);
7807      } else {
7808        // eslint-disable-next-line
7809        const width = getDirectionPropertyValue(slideStyles, 'width');
7810        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');
7811        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');
7812        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');
7813        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');
7814        const boxSizing = slideStyles.getPropertyValue('box-sizing');
7815        if (boxSizing && boxSizing === 'border-box') {
7816          slideSize = width + marginLeft + marginRight;
7817        } else {
7818          const {
7819            clientWidth,
7820            offsetWidth
7821          } = slide;
7822          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
7823        }
7824      }
7825      if (currentTransform) {
7826        slide.style.transform = currentTransform;
7827      }
7828      if (currentWebKitTransform) {
7829        slide.style.webkitTransform = currentWebKitTransform;
7830      }
7831      if (params.roundLengths) slideSize = Math.floor(slideSize);
7832    } else {
7833      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
7834      if (params.roundLengths) slideSize = Math.floor(slideSize);
7835      if (slides[i]) {
7836        slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;
7837      }
7838    }
7839    if (slides[i]) {
7840      slides[i].swiperSlideSize = slideSize;
7841    }
7842    slidesSizesGrid.push(slideSize);
7843    if (params.centeredSlides) {
7844      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
7845      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
7846      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
7847      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
7848      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
7849      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
7850      slidesGrid.push(slidePosition);
7851    } else {
7852      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
7853      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
7854      slidesGrid.push(slidePosition);
7855      slidePosition = slidePosition + slideSize + spaceBetween;
7856    }
7857    swiper.virtualSize += slideSize + spaceBetween;
7858    prevSlideSize = slideSize;
7859    index += 1;
7860  }
7861  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
7862  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
7863    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;
7864  }
7865  if (params.setWrapperSize) {
7866    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
7867  }
7868  if (gridEnabled) {
7869    swiper.grid.updateWrapperSize(slideSize, snapGrid);
7870  }
7871
7872  // Remove last grid elements depending on width
7873  if (!params.centeredSlides) {
7874    const newSlidesGrid = [];
7875    for (let i = 0; i < snapGrid.length; i += 1) {
7876      let slidesGridItem = snapGrid[i];
7877      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
7878      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
7879        newSlidesGrid.push(slidesGridItem);
7880      }
7881    }
7882    snapGrid = newSlidesGrid;
7883    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
7884      snapGrid.push(swiper.virtualSize - swiperSize);
7885    }
7886  }
7887  if (isVirtual && params.loop) {
7888    const size = slidesSizesGrid[0] + spaceBetween;
7889    if (params.slidesPerGroup > 1) {
7890      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);
7891      const groupSize = size * params.slidesPerGroup;
7892      for (let i = 0; i < groups; i += 1) {
7893        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);
7894      }
7895    }
7896    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {
7897      if (params.slidesPerGroup === 1) {
7898        snapGrid.push(snapGrid[snapGrid.length - 1] + size);
7899      }
7900      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);
7901      swiper.virtualSize += size;
7902    }
7903  }
7904  if (snapGrid.length === 0) snapGrid = [0];
7905  if (spaceBetween !== 0) {
7906    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');
7907    slides.filter((_, slideIndex) => {
7908      if (!params.cssMode || params.loop) return true;
7909      if (slideIndex === slides.length - 1) {
7910        return false;
7911      }
7912      return true;
7913    }).forEach(slideEl => {
7914      slideEl.style[key] = `${spaceBetween}px`;
7915    });
7916  }
7917  if (params.centeredSlides && params.centeredSlidesBounds) {
7918    let allSlidesSize = 0;
7919    slidesSizesGrid.forEach(slideSizeValue => {
7920      allSlidesSize += slideSizeValue + (spaceBetween || 0);
7921    });
7922    allSlidesSize -= spaceBetween;
7923    const maxSnap = allSlidesSize - swiperSize;
7924    snapGrid = snapGrid.map(snap => {
7925      if (snap <= 0) return -offsetBefore;
7926      if (snap > maxSnap) return maxSnap + offsetAfter;
7927      return snap;
7928    });
7929  }
7930  if (params.centerInsufficientSlides) {
7931    let allSlidesSize = 0;
7932    slidesSizesGrid.forEach(slideSizeValue => {
7933      allSlidesSize += slideSizeValue + (spaceBetween || 0);
7934    });
7935    allSlidesSize -= spaceBetween;
7936    if (allSlidesSize < swiperSize) {
7937      const allSlidesOffset = (swiperSize - allSlidesSize) / 2;
7938      snapGrid.forEach((snap, snapIndex) => {
7939        snapGrid[snapIndex] = snap - allSlidesOffset;
7940      });
7941      slidesGrid.forEach((snap, snapIndex) => {
7942        slidesGrid[snapIndex] = snap + allSlidesOffset;
7943      });
7944    }
7945  }
7946  Object.assign(swiper, {
7947    slides,
7948    snapGrid,
7949    slidesGrid,
7950    slidesSizesGrid
7951  });
7952  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
7953    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
7954    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
7955    const addToSnapGrid = -swiper.snapGrid[0];
7956    const addToSlidesGrid = -swiper.slidesGrid[0];
7957    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);
7958    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);
7959  }
7960  if (slidesLength !== previousSlidesLength) {
7961    swiper.emit('slidesLengthChange');
7962  }
7963  if (snapGrid.length !== previousSnapGridLength) {
7964    if (swiper.params.watchOverflow) swiper.checkOverflow();
7965    swiper.emit('snapGridLengthChange');
7966  }
7967  if (slidesGrid.length !== previousSlidesGridLength) {
7968    swiper.emit('slidesGridLengthChange');
7969  }
7970  if (params.watchSlidesProgress) {
7971    swiper.updateSlidesOffset();
7972  }
7973  swiper.emit('slidesUpdated');
7974  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
7975    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
7976    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);
7977    if (slidesLength <= params.maxBackfaceHiddenSlides) {
7978      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);
7979    } else if (hasClassBackfaceClassAdded) {
7980      swiper.el.classList.remove(backFaceHiddenClass);
7981    }
7982  }
7983}
7984
7985function updateAutoHeight(speed) {
7986  const swiper = this;
7987  const activeSlides = [];
7988  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
7989  let newHeight = 0;
7990  let i;
7991  if (typeof speed === 'number') {
7992    swiper.setTransition(speed);
7993  } else if (speed === true) {
7994    swiper.setTransition(swiper.params.speed);
7995  }
7996  const getSlideByIndex = index => {
7997    if (isVirtual) {
7998      return swiper.slides[swiper.getSlideIndexByData(index)];
7999    }
8000    return swiper.slides[index];
8001  };
8002  // Find slides currently in view
8003  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
8004    if (swiper.params.centeredSlides) {
8005      (swiper.visibleSlides || []).forEach(slide => {
8006        activeSlides.push(slide);
8007      });
8008    } else {
8009      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
8010        const index = swiper.activeIndex + i;
8011        if (index > swiper.slides.length && !isVirtual) break;
8012        activeSlides.push(getSlideByIndex(index));
8013      }
8014    }
8015  } else {
8016    activeSlides.push(getSlideByIndex(swiper.activeIndex));
8017  }
8018
8019  // Find new height from highest slide in view
8020  for (i = 0; i < activeSlides.length; i += 1) {
8021    if (typeof activeSlides[i] !== 'undefined') {
8022      const height = activeSlides[i].offsetHeight;
8023      newHeight = height > newHeight ? height : newHeight;
8024    }
8025  }
8026
8027  // Update Height
8028  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
8029}
8030
8031function updateSlidesOffset() {
8032  const swiper = this;
8033  const slides = swiper.slides;
8034  // eslint-disable-next-line
8035  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;
8036  for (let i = 0; i < slides.length; i += 1) {
8037    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();
8038  }
8039}
8040
8041function updateSlidesProgress(translate) {
8042  if (translate === void 0) {
8043    translate = this && this.translate || 0;
8044  }
8045  const swiper = this;
8046  const params = swiper.params;
8047  const {
8048    slides,
8049    rtlTranslate: rtl,
8050    snapGrid
8051  } = swiper;
8052  if (slides.length === 0) return;
8053  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
8054  let offsetCenter = -translate;
8055  if (rtl) offsetCenter = translate;
8056
8057  // Visible Slides
8058  slides.forEach(slideEl => {
8059    slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass);
8060  });
8061  swiper.visibleSlidesIndexes = [];
8062  swiper.visibleSlides = [];
8063  let spaceBetween = params.spaceBetween;
8064  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
8065    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
8066  } else if (typeof spaceBetween === 'string') {
8067    spaceBetween = parseFloat(spaceBetween);
8068  }
8069  for (let i = 0; i < slides.length; i += 1) {
8070    const slide = slides[i];
8071    let slideOffset = slide.swiperSlideOffset;
8072    if (params.cssMode && params.centeredSlides) {
8073      slideOffset -= slides[0].swiperSlideOffset;
8074    }
8075    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
8076    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
8077    const slideBefore = -(offsetCenter - slideOffset);
8078    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
8079    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];
8080    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
8081    if (isVisible) {
8082      swiper.visibleSlides.push(slide);
8083      swiper.visibleSlidesIndexes.push(i);
8084      slides[i].classList.add(params.slideVisibleClass);
8085    }
8086    if (isFullyVisible) {
8087      slides[i].classList.add(params.slideFullyVisibleClass);
8088    }
8089    slide.progress = rtl ? -slideProgress : slideProgress;
8090    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
8091  }
8092}
8093
8094function updateProgress(translate) {
8095  const swiper = this;
8096  if (typeof translate === 'undefined') {
8097    const multiplier = swiper.rtlTranslate ? -1 : 1;
8098    // eslint-disable-next-line
8099    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
8100  }
8101  const params = swiper.params;
8102  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
8103  let {
8104    progress,
8105    isBeginning,
8106    isEnd,
8107    progressLoop
8108  } = swiper;
8109  const wasBeginning = isBeginning;
8110  const wasEnd = isEnd;
8111  if (translatesDiff === 0) {
8112    progress = 0;
8113    isBeginning = true;
8114    isEnd = true;
8115  } else {
8116    progress = (translate - swiper.minTranslate()) / translatesDiff;
8117    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;
8118    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;
8119    isBeginning = isBeginningRounded || progress <= 0;
8120    isEnd = isEndRounded || progress >= 1;
8121    if (isBeginningRounded) progress = 0;
8122    if (isEndRounded) progress = 1;
8123  }
8124  if (params.loop) {
8125    const firstSlideIndex = swiper.getSlideIndexByData(0);
8126    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);
8127    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];
8128    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];
8129    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];
8130    const translateAbs = Math.abs(translate);
8131    if (translateAbs >= firstSlideTranslate) {
8132      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;
8133    } else {
8134      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;
8135    }
8136    if (progressLoop > 1) progressLoop -= 1;
8137  }
8138  Object.assign(swiper, {
8139    progress,
8140    progressLoop,
8141    isBeginning,
8142    isEnd
8143  });
8144  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);
8145  if (isBeginning && !wasBeginning) {
8146    swiper.emit('reachBeginning toEdge');
8147  }
8148  if (isEnd && !wasEnd) {
8149    swiper.emit('reachEnd toEdge');
8150  }
8151  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
8152    swiper.emit('fromEdge');
8153  }
8154  swiper.emit('progress', progress);
8155}
8156
8157function updateSlidesClasses() {
8158  const swiper = this;
8159  const {
8160    slides,
8161    params,
8162    slidesEl,
8163    activeIndex
8164  } = swiper;
8165  const isVirtual = swiper.virtual && params.virtual.enabled;
8166  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8167  const getFilteredSlide = selector => {
8168    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];
8169  };
8170  slides.forEach(slideEl => {
8171    slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);
8172  });
8173  let activeSlide;
8174  let prevSlide;
8175  let nextSlide;
8176  if (isVirtual) {
8177    if (params.loop) {
8178      let slideIndex = activeIndex - swiper.virtual.slidesBefore;
8179      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;
8180      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;
8181      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`);
8182    } else {
8183      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`);
8184    }
8185  } else {
8186    if (gridEnabled) {
8187      activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];
8188      nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];
8189      prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];
8190    } else {
8191      activeSlide = slides[activeIndex];
8192    }
8193  }
8194  if (activeSlide) {
8195    // Active classes
8196    activeSlide.classList.add(params.slideActiveClass);
8197    if (gridEnabled) {
8198      if (nextSlide) {
8199        nextSlide.classList.add(params.slideNextClass);
8200      }
8201      if (prevSlide) {
8202        prevSlide.classList.add(params.slidePrevClass);
8203      }
8204    } else {
8205      // Next Slide
8206      nextSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
8207      if (params.loop && !nextSlide) {
8208        nextSlide = slides[0];
8209      }
8210      if (nextSlide) {
8211        nextSlide.classList.add(params.slideNextClass);
8212      }
8213
8214      // Prev Slide
8215      prevSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
8216      if (params.loop && !prevSlide === 0) {
8217        prevSlide = slides[slides.length - 1];
8218      }
8219      if (prevSlide) {
8220        prevSlide.classList.add(params.slidePrevClass);
8221      }
8222    }
8223  }
8224  swiper.emitSlidesClasses();
8225}
8226
8227const processLazyPreloader = (swiper, imageEl) => {
8228  if (!swiper || swiper.destroyed || !swiper.params) return;
8229  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
8230  const slideEl = imageEl.closest(slideSelector());
8231  if (slideEl) {
8232    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);
8233    if (!lazyEl && swiper.isElement) {
8234      if (slideEl.shadowRoot) {
8235        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
8236      } else {
8237        // init later
8238        requestAnimationFrame(() => {
8239          if (slideEl.shadowRoot) {
8240            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
8241            if (lazyEl) lazyEl.remove();
8242          }
8243        });
8244      }
8245    }
8246    if (lazyEl) lazyEl.remove();
8247  }
8248};
8249const unlazy = (swiper, index) => {
8250  if (!swiper.slides[index]) return;
8251  const imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
8252  if (imageEl) imageEl.removeAttribute('loading');
8253};
8254const preload = swiper => {
8255  if (!swiper || swiper.destroyed || !swiper.params) return;
8256  let amount = swiper.params.lazyPreloadPrevNext;
8257  const len = swiper.slides.length;
8258  if (!len || !amount || amount < 0) return;
8259  amount = Math.min(amount, len);
8260  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);
8261  const activeIndex = swiper.activeIndex;
8262  if (swiper.params.grid && swiper.params.grid.rows > 1) {
8263    const activeColumn = activeIndex;
8264    const preloadColumns = [activeColumn - amount];
8265    preloadColumns.push(...Array.from({
8266      length: amount
8267    }).map((_, i) => {
8268      return activeColumn + slidesPerView + i;
8269    }));
8270    swiper.slides.forEach((slideEl, i) => {
8271      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);
8272    });
8273    return;
8274  }
8275  const slideIndexLastInView = activeIndex + slidesPerView - 1;
8276  if (swiper.params.rewind || swiper.params.loop) {
8277    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
8278      const realIndex = (i % len + len) % len;
8279      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
8280    }
8281  } else {
8282    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
8283      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
8284        unlazy(swiper, i);
8285      }
8286    }
8287  }
8288};
8289
8290function getActiveIndexByTranslate(swiper) {
8291  const {
8292    slidesGrid,
8293    params
8294  } = swiper;
8295  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
8296  let activeIndex;
8297  for (let i = 0; i < slidesGrid.length; i += 1) {
8298    if (typeof slidesGrid[i + 1] !== 'undefined') {
8299      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
8300        activeIndex = i;
8301      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
8302        activeIndex = i + 1;
8303      }
8304    } else if (translate >= slidesGrid[i]) {
8305      activeIndex = i;
8306    }
8307  }
8308  // Normalize slideIndex
8309  if (params.normalizeSlideIndex) {
8310    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;
8311  }
8312  return activeIndex;
8313}
8314function updateActiveIndex(newActiveIndex) {
8315  const swiper = this;
8316  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
8317  const {
8318    snapGrid,
8319    params,
8320    activeIndex: previousIndex,
8321    realIndex: previousRealIndex,
8322    snapIndex: previousSnapIndex
8323  } = swiper;
8324  let activeIndex = newActiveIndex;
8325  let snapIndex;
8326  const getVirtualRealIndex = aIndex => {
8327    let realIndex = aIndex - swiper.virtual.slidesBefore;
8328    if (realIndex < 0) {
8329      realIndex = swiper.virtual.slides.length + realIndex;
8330    }
8331    if (realIndex >= swiper.virtual.slides.length) {
8332      realIndex -= swiper.virtual.slides.length;
8333    }
8334    return realIndex;
8335  };
8336  if (typeof activeIndex === 'undefined') {
8337    activeIndex = getActiveIndexByTranslate(swiper);
8338  }
8339  if (snapGrid.indexOf(translate) >= 0) {
8340    snapIndex = snapGrid.indexOf(translate);
8341  } else {
8342    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
8343    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
8344  }
8345  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
8346  if (activeIndex === previousIndex && !swiper.params.loop) {
8347    if (snapIndex !== previousSnapIndex) {
8348      swiper.snapIndex = snapIndex;
8349      swiper.emit('snapIndexChange');
8350    }
8351    return;
8352  }
8353  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
8354    swiper.realIndex = getVirtualRealIndex(activeIndex);
8355    return;
8356  }
8357  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
8358
8359  // Get real index
8360  let realIndex;
8361  if (swiper.virtual && params.virtual.enabled && params.loop) {
8362    realIndex = getVirtualRealIndex(activeIndex);
8363  } else if (gridEnabled) {
8364    const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];
8365    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
8366    if (Number.isNaN(activeSlideIndex)) {
8367      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);
8368    }
8369    realIndex = Math.floor(activeSlideIndex / params.grid.rows);
8370  } else if (swiper.slides[activeIndex]) {
8371    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');
8372    if (slideIndex) {
8373      realIndex = parseInt(slideIndex, 10);
8374    } else {
8375      realIndex = activeIndex;
8376    }
8377  } else {
8378    realIndex = activeIndex;
8379  }
8380  Object.assign(swiper, {
8381    previousSnapIndex,
8382    snapIndex,
8383    previousRealIndex,
8384    realIndex,
8385    previousIndex,
8386    activeIndex
8387  });
8388  if (swiper.initialized) {
8389    preload(swiper);
8390  }
8391  swiper.emit('activeIndexChange');
8392  swiper.emit('snapIndexChange');
8393  if (swiper.initialized || swiper.params.runCallbacksOnInit) {
8394    if (previousRealIndex !== realIndex) {
8395      swiper.emit('realIndexChange');
8396    }
8397    swiper.emit('slideChange');
8398  }
8399}
8400
8401function updateClickedSlide(el, path) {
8402  const swiper = this;
8403  const params = swiper.params;
8404  let slide = el.closest(`.${params.slideClass}, swiper-slide`);
8405  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {
8406    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {
8407      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {
8408        slide = pathEl;
8409      }
8410    });
8411  }
8412  let slideFound = false;
8413  let slideIndex;
8414  if (slide) {
8415    for (let i = 0; i < swiper.slides.length; i += 1) {
8416      if (swiper.slides[i] === slide) {
8417        slideFound = true;
8418        slideIndex = i;
8419        break;
8420      }
8421    }
8422  }
8423  if (slide && slideFound) {
8424    swiper.clickedSlide = slide;
8425    if (swiper.virtual && swiper.params.virtual.enabled) {
8426      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);
8427    } else {
8428      swiper.clickedIndex = slideIndex;
8429    }
8430  } else {
8431    swiper.clickedSlide = undefined;
8432    swiper.clickedIndex = undefined;
8433    return;
8434  }
8435  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
8436    swiper.slideToClickedSlide();
8437  }
8438}
8439
8440var update = {
8441  updateSize,
8442  updateSlides,
8443  updateAutoHeight,
8444  updateSlidesOffset,
8445  updateSlidesProgress,
8446  updateProgress,
8447  updateSlidesClasses,
8448  updateActiveIndex,
8449  updateClickedSlide
8450};
8451
8452function getSwiperTranslate(axis) {
8453  if (axis === void 0) {
8454    axis = this.isHorizontal() ? 'x' : 'y';
8455  }
8456  const swiper = this;
8457  const {
8458    params,
8459    rtlTranslate: rtl,
8460    translate,
8461    wrapperEl
8462  } = swiper;
8463  if (params.virtualTranslate) {
8464    return rtl ? -translate : translate;
8465  }
8466  if (params.cssMode) {
8467    return translate;
8468  }
8469  let currentTranslate = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(wrapperEl, axis);
8470  currentTranslate += swiper.cssOverflowAdjustment();
8471  if (rtl) currentTranslate = -currentTranslate;
8472  return currentTranslate || 0;
8473}
8474
8475function setTranslate(translate, byController) {
8476  const swiper = this;
8477  const {
8478    rtlTranslate: rtl,
8479    params,
8480    wrapperEl,
8481    progress
8482  } = swiper;
8483  let x = 0;
8484  let y = 0;
8485  const z = 0;
8486  if (swiper.isHorizontal()) {
8487    x = rtl ? -translate : translate;
8488  } else {
8489    y = translate;
8490  }
8491  if (params.roundLengths) {
8492    x = Math.floor(x);
8493    y = Math.floor(y);
8494  }
8495  swiper.previousTranslate = swiper.translate;
8496  swiper.translate = swiper.isHorizontal() ? x : y;
8497  if (params.cssMode) {
8498    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
8499  } else if (!params.virtualTranslate) {
8500    if (swiper.isHorizontal()) {
8501      x -= swiper.cssOverflowAdjustment();
8502    } else {
8503      y -= swiper.cssOverflowAdjustment();
8504    }
8505    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;
8506  }
8507
8508  // Check if we need to update progress
8509  let newProgress;
8510  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
8511  if (translatesDiff === 0) {
8512    newProgress = 0;
8513  } else {
8514    newProgress = (translate - swiper.minTranslate()) / translatesDiff;
8515  }
8516  if (newProgress !== progress) {
8517    swiper.updateProgress(translate);
8518  }
8519  swiper.emit('setTranslate', swiper.translate, byController);
8520}
8521
8522function minTranslate() {
8523  return -this.snapGrid[0];
8524}
8525
8526function maxTranslate() {
8527  return -this.snapGrid[this.snapGrid.length - 1];
8528}
8529
8530function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
8531  if (translate === void 0) {
8532    translate = 0;
8533  }
8534  if (speed === void 0) {
8535    speed = this.params.speed;
8536  }
8537  if (runCallbacks === void 0) {
8538    runCallbacks = true;
8539  }
8540  if (translateBounds === void 0) {
8541    translateBounds = true;
8542  }
8543  const swiper = this;
8544  const {
8545    params,
8546    wrapperEl
8547  } = swiper;
8548  if (swiper.animating && params.preventInteractionOnTransition) {
8549    return false;
8550  }
8551  const minTranslate = swiper.minTranslate();
8552  const maxTranslate = swiper.maxTranslate();
8553  let newTranslate;
8554  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;
8555
8556  // Update progress
8557  swiper.updateProgress(newTranslate);
8558  if (params.cssMode) {
8559    const isH = swiper.isHorizontal();
8560    if (speed === 0) {
8561      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
8562    } else {
8563      if (!swiper.support.smoothScroll) {
8564        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.r)({
8565          swiper,
8566          targetPosition: -newTranslate,
8567          side: isH ? 'left' : 'top'
8568        });
8569        return true;
8570      }
8571      wrapperEl.scrollTo({
8572        [isH ? 'left' : 'top']: -newTranslate,
8573        behavior: 'smooth'
8574      });
8575    }
8576    return true;
8577  }
8578  if (speed === 0) {
8579    swiper.setTransition(0);
8580    swiper.setTranslate(newTranslate);
8581    if (runCallbacks) {
8582      swiper.emit('beforeTransitionStart', speed, internal);
8583      swiper.emit('transitionEnd');
8584    }
8585  } else {
8586    swiper.setTransition(speed);
8587    swiper.setTranslate(newTranslate);
8588    if (runCallbacks) {
8589      swiper.emit('beforeTransitionStart', speed, internal);
8590      swiper.emit('transitionStart');
8591    }
8592    if (!swiper.animating) {
8593      swiper.animating = true;
8594      if (!swiper.onTranslateToWrapperTransitionEnd) {
8595        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
8596          if (!swiper || swiper.destroyed) return;
8597          if (e.target !== this) return;
8598          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
8599          swiper.onTranslateToWrapperTransitionEnd = null;
8600          delete swiper.onTranslateToWrapperTransitionEnd;
8601          if (runCallbacks) {
8602            swiper.emit('transitionEnd');
8603          }
8604        };
8605      }
8606      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
8607    }
8608  }
8609  return true;
8610}
8611
8612var translate = {
8613  getTranslate: getSwiperTranslate,
8614  setTranslate,
8615  minTranslate,
8616  maxTranslate,
8617  translateTo
8618};
8619
8620function setTransition(duration, byController) {
8621  const swiper = this;
8622  if (!swiper.params.cssMode) {
8623    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;
8624    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';
8625  }
8626  swiper.emit('setTransition', duration, byController);
8627}
8628
8629function transitionEmit(_ref) {
8630  let {
8631    swiper,
8632    runCallbacks,
8633    direction,
8634    step
8635  } = _ref;
8636  const {
8637    activeIndex,
8638    previousIndex
8639  } = swiper;
8640  let dir = direction;
8641  if (!dir) {
8642    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';
8643  }
8644  swiper.emit(`transition${step}`);
8645  if (runCallbacks && activeIndex !== previousIndex) {
8646    if (dir === 'reset') {
8647      swiper.emit(`slideResetTransition${step}`);
8648      return;
8649    }
8650    swiper.emit(`slideChangeTransition${step}`);
8651    if (dir === 'next') {
8652      swiper.emit(`slideNextTransition${step}`);
8653    } else {
8654      swiper.emit(`slidePrevTransition${step}`);
8655    }
8656  }
8657}
8658
8659function transitionStart(runCallbacks, direction) {
8660  if (runCallbacks === void 0) {
8661    runCallbacks = true;
8662  }
8663  const swiper = this;
8664  const {
8665    params
8666  } = swiper;
8667  if (params.cssMode) return;
8668  if (params.autoHeight) {
8669    swiper.updateAutoHeight();
8670  }
8671  transitionEmit({
8672    swiper,
8673    runCallbacks,
8674    direction,
8675    step: 'Start'
8676  });
8677}
8678
8679function transitionEnd(runCallbacks, direction) {
8680  if (runCallbacks === void 0) {
8681    runCallbacks = true;
8682  }
8683  const swiper = this;
8684  const {
8685    params
8686  } = swiper;
8687  swiper.animating = false;
8688  if (params.cssMode) return;
8689  swiper.setTransition(0);
8690  transitionEmit({
8691    swiper,
8692    runCallbacks,
8693    direction,
8694    step: 'End'
8695  });
8696}
8697
8698var transition = {
8699  setTransition,
8700  transitionStart,
8701  transitionEnd
8702};
8703
8704function slideTo(index, speed, runCallbacks, internal, initial) {
8705  if (index === void 0) {
8706    index = 0;
8707  }
8708  if (speed === void 0) {
8709    speed = this.params.speed;
8710  }
8711  if (runCallbacks === void 0) {
8712    runCallbacks = true;
8713  }
8714  if (typeof index === 'string') {
8715    index = parseInt(index, 10);
8716  }
8717  const swiper = this;
8718  let slideIndex = index;
8719  if (slideIndex < 0) slideIndex = 0;
8720  const {
8721    params,
8722    snapGrid,
8723    slidesGrid,
8724    previousIndex,
8725    activeIndex,
8726    rtlTranslate: rtl,
8727    wrapperEl,
8728    enabled
8729  } = swiper;
8730  if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial || swiper.destroyed) {
8731    return false;
8732  }
8733  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
8734  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
8735  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
8736  const translate = -snapGrid[snapIndex];
8737  // Normalize slideIndex
8738  if (params.normalizeSlideIndex) {
8739    for (let i = 0; i < slidesGrid.length; i += 1) {
8740      const normalizedTranslate = -Math.floor(translate * 100);
8741      const normalizedGrid = Math.floor(slidesGrid[i] * 100);
8742      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);
8743      if (typeof slidesGrid[i + 1] !== 'undefined') {
8744        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {
8745          slideIndex = i;
8746        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {
8747          slideIndex = i + 1;
8748        }
8749      } else if (normalizedTranslate >= normalizedGrid) {
8750        slideIndex = i;
8751      }
8752    }
8753  }
8754  // Directions locks
8755  if (swiper.initialized && slideIndex !== activeIndex) {
8756    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {
8757      return false;
8758    }
8759    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
8760      if ((activeIndex || 0) !== slideIndex) {
8761        return false;
8762      }
8763    }
8764  }
8765  if (slideIndex !== (previousIndex || 0) && runCallbacks) {
8766    swiper.emit('beforeSlideChangeStart');
8767  }
8768
8769  // Update progress
8770  swiper.updateProgress(translate);
8771  let direction;
8772  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';
8773
8774  // Update Index
8775  if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {
8776    swiper.updateActiveIndex(slideIndex);
8777    // Update Height
8778    if (params.autoHeight) {
8779      swiper.updateAutoHeight();
8780    }
8781    swiper.updateSlidesClasses();
8782    if (params.effect !== 'slide') {
8783      swiper.setTranslate(translate);
8784    }
8785    if (direction !== 'reset') {
8786      swiper.transitionStart(runCallbacks, direction);
8787      swiper.transitionEnd(runCallbacks, direction);
8788    }
8789    return false;
8790  }
8791  if (params.cssMode) {
8792    const isH = swiper.isHorizontal();
8793    const t = rtl ? translate : -translate;
8794    if (speed === 0) {
8795      const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
8796      if (isVirtual) {
8797        swiper.wrapperEl.style.scrollSnapType = 'none';
8798        swiper._immediateVirtual = true;
8799      }
8800      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {
8801        swiper._cssModeVirtualInitialSet = true;
8802        requestAnimationFrame(() => {
8803          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
8804        });
8805      } else {
8806        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
8807      }
8808      if (isVirtual) {
8809        requestAnimationFrame(() => {
8810          swiper.wrapperEl.style.scrollSnapType = '';
8811          swiper._immediateVirtual = false;
8812        });
8813      }
8814    } else {
8815      if (!swiper.support.smoothScroll) {
8816        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.r)({
8817          swiper,
8818          targetPosition: t,
8819          side: isH ? 'left' : 'top'
8820        });
8821        return true;
8822      }
8823      wrapperEl.scrollTo({
8824        [isH ? 'left' : 'top']: t,
8825        behavior: 'smooth'
8826      });
8827    }
8828    return true;
8829  }
8830  swiper.setTransition(speed);
8831  swiper.setTranslate(translate);
8832  swiper.updateActiveIndex(slideIndex);
8833  swiper.updateSlidesClasses();
8834  swiper.emit('beforeTransitionStart', speed, internal);
8835  swiper.transitionStart(runCallbacks, direction);
8836  if (speed === 0) {
8837    swiper.transitionEnd(runCallbacks, direction);
8838  } else if (!swiper.animating) {
8839    swiper.animating = true;
8840    if (!swiper.onSlideToWrapperTransitionEnd) {
8841      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
8842        if (!swiper || swiper.destroyed) return;
8843        if (e.target !== this) return;
8844        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
8845        swiper.onSlideToWrapperTransitionEnd = null;
8846        delete swiper.onSlideToWrapperTransitionEnd;
8847        swiper.transitionEnd(runCallbacks, direction);
8848      };
8849    }
8850    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
8851  }
8852  return true;
8853}
8854
8855function slideToLoop(index, speed, runCallbacks, internal) {
8856  if (index === void 0) {
8857    index = 0;
8858  }
8859  if (speed === void 0) {
8860    speed = this.params.speed;
8861  }
8862  if (runCallbacks === void 0) {
8863    runCallbacks = true;
8864  }
8865  if (typeof index === 'string') {
8866    const indexAsNumber = parseInt(index, 10);
8867    index = indexAsNumber;
8868  }
8869  const swiper = this;
8870  if (swiper.destroyed) return;
8871  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
8872  let newIndex = index;
8873  if (swiper.params.loop) {
8874    if (swiper.virtual && swiper.params.virtual.enabled) {
8875      // eslint-disable-next-line
8876      newIndex = newIndex + swiper.virtual.slidesBefore;
8877    } else {
8878      let targetSlideIndex;
8879      if (gridEnabled) {
8880        const slideIndex = newIndex * swiper.params.grid.rows;
8881        targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;
8882      } else {
8883        targetSlideIndex = swiper.getSlideIndexByData(newIndex);
8884      }
8885      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;
8886      const {
8887        centeredSlides
8888      } = swiper.params;
8889      let slidesPerView = swiper.params.slidesPerView;
8890      if (slidesPerView === 'auto') {
8891        slidesPerView = swiper.slidesPerViewDynamic();
8892      } else {
8893        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));
8894        if (centeredSlides && slidesPerView % 2 === 0) {
8895          slidesPerView = slidesPerView + 1;
8896        }
8897      }
8898      let needLoopFix = cols - targetSlideIndex < slidesPerView;
8899      if (centeredSlides) {
8900        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);
8901      }
8902      if (needLoopFix) {
8903        const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';
8904        swiper.loopFix({
8905          direction,
8906          slideTo: true,
8907          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,
8908          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined
8909        });
8910      }
8911      if (gridEnabled) {
8912        const slideIndex = newIndex * swiper.params.grid.rows;
8913        newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;
8914      } else {
8915        newIndex = swiper.getSlideIndexByData(newIndex);
8916      }
8917    }
8918  }
8919  requestAnimationFrame(() => {
8920    swiper.slideTo(newIndex, speed, runCallbacks, internal);
8921  });
8922  return swiper;
8923}
8924
8925/* eslint no-unused-vars: "off" */
8926function slideNext(speed, runCallbacks, internal) {
8927  if (speed === void 0) {
8928    speed = this.params.speed;
8929  }
8930  if (runCallbacks === void 0) {
8931    runCallbacks = true;
8932  }
8933  const swiper = this;
8934  const {
8935    enabled,
8936    params,
8937    animating
8938  } = swiper;
8939  if (!enabled || swiper.destroyed) return swiper;
8940  let perGroup = params.slidesPerGroup;
8941  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
8942    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
8943  }
8944  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
8945  const isVirtual = swiper.virtual && params.virtual.enabled;
8946  if (params.loop) {
8947    if (animating && !isVirtual && params.loopPreventsSliding) return false;
8948    swiper.loopFix({
8949      direction: 'next'
8950    });
8951    // eslint-disable-next-line
8952    swiper._clientLeft = swiper.wrapperEl.clientLeft;
8953    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {
8954      requestAnimationFrame(() => {
8955        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
8956      });
8957      return true;
8958    }
8959  }
8960  if (params.rewind && swiper.isEnd) {
8961    return swiper.slideTo(0, speed, runCallbacks, internal);
8962  }
8963  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
8964}
8965
8966/* eslint no-unused-vars: "off" */
8967function slidePrev(speed, runCallbacks, internal) {
8968  if (speed === void 0) {
8969    speed = this.params.speed;
8970  }
8971  if (runCallbacks === void 0) {
8972    runCallbacks = true;
8973  }
8974  const swiper = this;
8975  const {
8976    params,
8977    snapGrid,
8978    slidesGrid,
8979    rtlTranslate,
8980    enabled,
8981    animating
8982  } = swiper;
8983  if (!enabled || swiper.destroyed) return swiper;
8984  const isVirtual = swiper.virtual && params.virtual.enabled;
8985  if (params.loop) {
8986    if (animating && !isVirtual && params.loopPreventsSliding) return false;
8987    swiper.loopFix({
8988      direction: 'prev'
8989    });
8990    // eslint-disable-next-line
8991    swiper._clientLeft = swiper.wrapperEl.clientLeft;
8992  }
8993  const translate = rtlTranslate ? swiper.translate : -swiper.translate;
8994  function normalize(val) {
8995    if (val < 0) return -Math.floor(Math.abs(val));
8996    return Math.floor(val);
8997  }
8998  const normalizedTranslate = normalize(translate);
8999  const normalizedSnapGrid = snapGrid.map(val => normalize(val));
9000  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
9001  if (typeof prevSnap === 'undefined' && params.cssMode) {
9002    let prevSnapIndex;
9003    snapGrid.forEach((snap, snapIndex) => {
9004      if (normalizedTranslate >= snap) {
9005        // prevSnap = snap;
9006        prevSnapIndex = snapIndex;
9007      }
9008    });
9009    if (typeof prevSnapIndex !== 'undefined') {
9010      prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];
9011    }
9012  }
9013  let prevIndex = 0;
9014  if (typeof prevSnap !== 'undefined') {
9015    prevIndex = slidesGrid.indexOf(prevSnap);
9016    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
9017    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
9018      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
9019      prevIndex = Math.max(prevIndex, 0);
9020    }
9021  }
9022  if (params.rewind && swiper.isBeginning) {
9023    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
9024    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
9025  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {
9026    requestAnimationFrame(() => {
9027      swiper.slideTo(prevIndex, speed, runCallbacks, internal);
9028    });
9029    return true;
9030  }
9031  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
9032}
9033
9034/* eslint no-unused-vars: "off" */
9035function slideReset(speed, runCallbacks, internal) {
9036  if (speed === void 0) {
9037    speed = this.params.speed;
9038  }
9039  if (runCallbacks === void 0) {
9040    runCallbacks = true;
9041  }
9042  const swiper = this;
9043  if (swiper.destroyed) return;
9044  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
9045}
9046
9047/* eslint no-unused-vars: "off" */
9048function slideToClosest(speed, runCallbacks, internal, threshold) {
9049  if (speed === void 0) {
9050    speed = this.params.speed;
9051  }
9052  if (runCallbacks === void 0) {
9053    runCallbacks = true;
9054  }
9055  if (threshold === void 0) {
9056    threshold = 0.5;
9057  }
9058  const swiper = this;
9059  if (swiper.destroyed) return;
9060  let index = swiper.activeIndex;
9061  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
9062  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
9063  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
9064  if (translate >= swiper.snapGrid[snapIndex]) {
9065    // The current translate is on or after the current snap index, so the choice
9066    // is between the current index and the one after it.
9067    const currentSnap = swiper.snapGrid[snapIndex];
9068    const nextSnap = swiper.snapGrid[snapIndex + 1];
9069    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
9070      index += swiper.params.slidesPerGroup;
9071    }
9072  } else {
9073    // The current translate is before the current snap index, so the choice
9074    // is between the current index and the one before it.
9075    const prevSnap = swiper.snapGrid[snapIndex - 1];
9076    const currentSnap = swiper.snapGrid[snapIndex];
9077    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
9078      index -= swiper.params.slidesPerGroup;
9079    }
9080  }
9081  index = Math.max(index, 0);
9082  index = Math.min(index, swiper.slidesGrid.length - 1);
9083  return swiper.slideTo(index, speed, runCallbacks, internal);
9084}
9085
9086function slideToClickedSlide() {
9087  const swiper = this;
9088  if (swiper.destroyed) return;
9089  const {
9090    params,
9091    slidesEl
9092  } = swiper;
9093  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
9094  let slideToIndex = swiper.clickedIndex;
9095  let realIndex;
9096  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;
9097  if (params.loop) {
9098    if (swiper.animating) return;
9099    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
9100    if (params.centeredSlides) {
9101      if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {
9102        swiper.loopFix();
9103        slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
9104        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
9105          swiper.slideTo(slideToIndex);
9106        });
9107      } else {
9108        swiper.slideTo(slideToIndex);
9109      }
9110    } else if (slideToIndex > swiper.slides.length - slidesPerView) {
9111      swiper.loopFix();
9112      slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
9113      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
9114        swiper.slideTo(slideToIndex);
9115      });
9116    } else {
9117      swiper.slideTo(slideToIndex);
9118    }
9119  } else {
9120    swiper.slideTo(slideToIndex);
9121  }
9122}
9123
9124var slide = {
9125  slideTo,
9126  slideToLoop,
9127  slideNext,
9128  slidePrev,
9129  slideReset,
9130  slideToClosest,
9131  slideToClickedSlide
9132};
9133
9134function loopCreate(slideRealIndex) {
9135  const swiper = this;
9136  const {
9137    params,
9138    slidesEl
9139  } = swiper;
9140  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
9141  const initSlides = () => {
9142    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
9143    slides.forEach((el, index) => {
9144      el.setAttribute('data-swiper-slide-index', index);
9145    });
9146  };
9147  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
9148  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);
9149  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;
9150  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;
9151  const addBlankSlides = amountOfSlides => {
9152    for (let i = 0; i < amountOfSlides; i += 1) {
9153      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]);
9154      swiper.slidesEl.append(slideEl);
9155    }
9156  };
9157  if (shouldFillGroup) {
9158    if (params.loopAddBlankSlides) {
9159      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;
9160      addBlankSlides(slidesToAdd);
9161      swiper.recalcSlides();
9162      swiper.updateSlides();
9163    } else {
9164      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)('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)');
9165    }
9166    initSlides();
9167  } else if (shouldFillGrid) {
9168    if (params.loopAddBlankSlides) {
9169      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;
9170      addBlankSlides(slidesToAdd);
9171      swiper.recalcSlides();
9172      swiper.updateSlides();
9173    } else {
9174      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)('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)');
9175    }
9176    initSlides();
9177  } else {
9178    initSlides();
9179  }
9180  swiper.loopFix({
9181    slideRealIndex,
9182    direction: params.centeredSlides ? undefined : 'next'
9183  });
9184}
9185
9186function loopFix(_temp) {
9187  let {
9188    slideRealIndex,
9189    slideTo = true,
9190    direction,
9191    setTranslate,
9192    activeSlideIndex,
9193    byController,
9194    byMousewheel
9195  } = _temp === void 0 ? {} : _temp;
9196  const swiper = this;
9197  if (!swiper.params.loop) return;
9198  swiper.emit('beforeLoopFix');
9199  const {
9200    slides,
9201    allowSlidePrev,
9202    allowSlideNext,
9203    slidesEl,
9204    params
9205  } = swiper;
9206  const {
9207    centeredSlides
9208  } = params;
9209  swiper.allowSlidePrev = true;
9210  swiper.allowSlideNext = true;
9211  if (swiper.virtual && params.virtual.enabled) {
9212    if (slideTo) {
9213      if (!params.centeredSlides && swiper.snapIndex === 0) {
9214        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);
9215      } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {
9216        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);
9217      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {
9218        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);
9219      }
9220    }
9221    swiper.allowSlidePrev = allowSlidePrev;
9222    swiper.allowSlideNext = allowSlideNext;
9223    swiper.emit('loopFix');
9224    return;
9225  }
9226  let slidesPerView = params.slidesPerView;
9227  if (slidesPerView === 'auto') {
9228    slidesPerView = swiper.slidesPerViewDynamic();
9229  } else {
9230    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));
9231    if (centeredSlides && slidesPerView % 2 === 0) {
9232      slidesPerView = slidesPerView + 1;
9233    }
9234  }
9235  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;
9236  let loopedSlides = slidesPerGroup;
9237  if (loopedSlides % slidesPerGroup !== 0) {
9238    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;
9239  }
9240  loopedSlides += params.loopAdditionalSlides;
9241  swiper.loopedSlides = loopedSlides;
9242  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
9243  if (slides.length < slidesPerView + loopedSlides) {
9244    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');
9245  } else if (gridEnabled && params.grid.fill === 'row') {
9246    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');
9247  }
9248  const prependSlidesIndexes = [];
9249  const appendSlidesIndexes = [];
9250  let activeIndex = swiper.activeIndex;
9251  if (typeof activeSlideIndex === 'undefined') {
9252    activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);
9253  } else {
9254    activeIndex = activeSlideIndex;
9255  }
9256  const isNext = direction === 'next' || !direction;
9257  const isPrev = direction === 'prev' || !direction;
9258  let slidesPrepended = 0;
9259  let slidesAppended = 0;
9260  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;
9261  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;
9262  const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);
9263  // prepend last slides before start
9264  if (activeColIndexWithShift < loopedSlides) {
9265    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);
9266    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
9267      const index = i - Math.floor(i / cols) * cols;
9268      if (gridEnabled) {
9269        const colIndexToPrepend = cols - index - 1;
9270        for (let i = slides.length - 1; i >= 0; i -= 1) {
9271          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);
9272        }
9273        // slides.forEach((slide, slideIndex) => {
9274        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);
9275        // });
9276      } else {
9277        prependSlidesIndexes.push(cols - index - 1);
9278      }
9279    }
9280  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {
9281    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);
9282    for (let i = 0; i < slidesAppended; i += 1) {
9283      const index = i - Math.floor(i / cols) * cols;
9284      if (gridEnabled) {
9285        slides.forEach((slide, slideIndex) => {
9286          if (slide.column === index) appendSlidesIndexes.push(slideIndex);
9287        });
9288      } else {
9289        appendSlidesIndexes.push(index);
9290      }
9291    }
9292  }
9293  swiper.__preventObserver__ = true;
9294  requestAnimationFrame(() => {
9295    swiper.__preventObserver__ = false;
9296  });
9297  if (isPrev) {
9298    prependSlidesIndexes.forEach(index => {
9299      slides[index].swiperLoopMoveDOM = true;
9300      slidesEl.prepend(slides[index]);
9301      slides[index].swiperLoopMoveDOM = false;
9302    });
9303  }
9304  if (isNext) {
9305    appendSlidesIndexes.forEach(index => {
9306      slides[index].swiperLoopMoveDOM = true;
9307      slidesEl.append(slides[index]);
9308      slides[index].swiperLoopMoveDOM = false;
9309    });
9310  }
9311  swiper.recalcSlides();
9312  if (params.slidesPerView === 'auto') {
9313    swiper.updateSlides();
9314  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {
9315    swiper.slides.forEach((slide, slideIndex) => {
9316      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);
9317    });
9318  }
9319  if (params.watchSlidesProgress) {
9320    swiper.updateSlidesOffset();
9321  }
9322  if (slideTo) {
9323    if (prependSlidesIndexes.length > 0 && isPrev) {
9324      if (typeof slideRealIndex === 'undefined') {
9325        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
9326        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];
9327        const diff = newSlideTranslate - currentSlideTranslate;
9328        if (byMousewheel) {
9329          swiper.setTranslate(swiper.translate - diff);
9330        } else {
9331          swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);
9332          if (setTranslate) {
9333            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
9334            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
9335          }
9336        }
9337      } else {
9338        if (setTranslate) {
9339          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;
9340          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);
9341          swiper.touchEventsData.currentTranslate = swiper.translate;
9342        }
9343      }
9344    } else if (appendSlidesIndexes.length > 0 && isNext) {
9345      if (typeof slideRealIndex === 'undefined') {
9346        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
9347        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];
9348        const diff = newSlideTranslate - currentSlideTranslate;
9349        if (byMousewheel) {
9350          swiper.setTranslate(swiper.translate - diff);
9351        } else {
9352          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);
9353          if (setTranslate) {
9354            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
9355            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
9356          }
9357        }
9358      } else {
9359        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;
9360        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);
9361      }
9362    }
9363  }
9364  swiper.allowSlidePrev = allowSlidePrev;
9365  swiper.allowSlideNext = allowSlideNext;
9366  if (swiper.controller && swiper.controller.control && !byController) {
9367    const loopParams = {
9368      slideRealIndex,
9369      direction,
9370      setTranslate,
9371      activeSlideIndex,
9372      byController: true
9373    };
9374    if (Array.isArray(swiper.controller.control)) {
9375      swiper.controller.control.forEach(c => {
9376        if (!c.destroyed && c.params.loop) c.loopFix({
9377          ...loopParams,
9378          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false
9379        });
9380      });
9381    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {
9382      swiper.controller.control.loopFix({
9383        ...loopParams,
9384        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false
9385      });
9386    }
9387  }
9388  swiper.emit('loopFix');
9389}
9390
9391function loopDestroy() {
9392  const swiper = this;
9393  const {
9394    params,
9395    slidesEl
9396  } = swiper;
9397  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
9398  swiper.recalcSlides();
9399  const newSlidesOrder = [];
9400  swiper.slides.forEach(slideEl => {
9401    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;
9402    newSlidesOrder[index] = slideEl;
9403  });
9404  swiper.slides.forEach(slideEl => {
9405    slideEl.removeAttribute('data-swiper-slide-index');
9406  });
9407  newSlidesOrder.forEach(slideEl => {
9408    slidesEl.append(slideEl);
9409  });
9410  swiper.recalcSlides();
9411  swiper.slideTo(swiper.realIndex, 0);
9412}
9413
9414var loop = {
9415  loopCreate,
9416  loopFix,
9417  loopDestroy
9418};
9419
9420function setGrabCursor(moving) {
9421  const swiper = this;
9422  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
9423  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;
9424  if (swiper.isElement) {
9425    swiper.__preventObserver__ = true;
9426  }
9427  el.style.cursor = 'move';
9428  el.style.cursor = moving ? 'grabbing' : 'grab';
9429  if (swiper.isElement) {
9430    requestAnimationFrame(() => {
9431      swiper.__preventObserver__ = false;
9432    });
9433  }
9434}
9435
9436function unsetGrabCursor() {
9437  const swiper = this;
9438  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
9439    return;
9440  }
9441  if (swiper.isElement) {
9442    swiper.__preventObserver__ = true;
9443  }
9444  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';
9445  if (swiper.isElement) {
9446    requestAnimationFrame(() => {
9447      swiper.__preventObserver__ = false;
9448    });
9449  }
9450}
9451
9452var grabCursor = {
9453  setGrabCursor,
9454  unsetGrabCursor
9455};
9456
9457// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
9458function closestElement(selector, base) {
9459  if (base === void 0) {
9460    base = this;
9461  }
9462  function __closestFrom(el) {
9463    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;
9464    if (el.assignedSlot) el = el.assignedSlot;
9465    const found = el.closest(selector);
9466    if (!found && !el.getRootNode) {
9467      return null;
9468    }
9469    return found || __closestFrom(el.getRootNode().host);
9470  }
9471  return __closestFrom(base);
9472}
9473function preventEdgeSwipe(swiper, event, startX) {
9474  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
9475  const {
9476    params
9477  } = swiper;
9478  const edgeSwipeDetection = params.edgeSwipeDetection;
9479  const edgeSwipeThreshold = params.edgeSwipeThreshold;
9480  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {
9481    if (edgeSwipeDetection === 'prevent') {
9482      event.preventDefault();
9483      return true;
9484    }
9485    return false;
9486  }
9487  return true;
9488}
9489function onTouchStart(event) {
9490  const swiper = this;
9491  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9492  let e = event;
9493  if (e.originalEvent) e = e.originalEvent;
9494  const data = swiper.touchEventsData;
9495  if (e.type === 'pointerdown') {
9496    if (data.pointerId !== null && data.pointerId !== e.pointerId) {
9497      return;
9498    }
9499    data.pointerId = e.pointerId;
9500  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {
9501    data.touchId = e.targetTouches[0].identifier;
9502  }
9503  if (e.type === 'touchstart') {
9504    // don't proceed touch event
9505    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);
9506    return;
9507  }
9508  const {
9509    params,
9510    touches,
9511    enabled
9512  } = swiper;
9513  if (!enabled) return;
9514  if (!params.simulateTouch && e.pointerType === 'mouse') return;
9515  if (swiper.animating && params.preventInteractionOnTransition) {
9516    return;
9517  }
9518  if (!swiper.animating && params.cssMode && params.loop) {
9519    swiper.loopFix();
9520  }
9521  let targetEl = e.target;
9522  if (params.touchEventsTarget === 'wrapper') {
9523    if (!swiper.wrapperEl.contains(targetEl)) return;
9524  }
9525  if ('which' in e && e.which === 3) return;
9526  if ('button' in e && e.button > 0) return;
9527  if (data.isTouched && data.isMoved) return;
9528
9529  // change target el for shadow root component
9530  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';
9531  // eslint-disable-next-line
9532  const eventPath = e.composedPath ? e.composedPath() : e.path;
9533  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {
9534    targetEl = eventPath[0];
9535  }
9536  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;
9537  const isTargetShadow = !!(e.target && e.target.shadowRoot);
9538
9539  // use closestElement for shadow root element to get the actual closest for nested shadow root element
9540  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {
9541    swiper.allowClick = true;
9542    return;
9543  }
9544  if (params.swipeHandler) {
9545    if (!targetEl.closest(params.swipeHandler)) return;
9546  }
9547  touches.currentX = e.pageX;
9548  touches.currentY = e.pageY;
9549  const startX = touches.currentX;
9550  const startY = touches.currentY;
9551
9552  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
9553
9554  if (!preventEdgeSwipe(swiper, e, startX)) {
9555    return;
9556  }
9557  Object.assign(data, {
9558    isTouched: true,
9559    isMoved: false,
9560    allowTouchCallbacks: true,
9561    isScrolling: undefined,
9562    startMoving: undefined
9563  });
9564  touches.startX = startX;
9565  touches.startY = startY;
9566  data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
9567  swiper.allowClick = true;
9568  swiper.updateSize();
9569  swiper.swipeDirection = undefined;
9570  if (params.threshold > 0) data.allowThresholdMove = false;
9571  let preventDefault = true;
9572  if (targetEl.matches(data.focusableElements)) {
9573    preventDefault = false;
9574    if (targetEl.nodeName === 'SELECT') {
9575      data.isTouched = false;
9576    }
9577  }
9578  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {
9579    document.activeElement.blur();
9580  }
9581  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
9582  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {
9583    e.preventDefault();
9584  }
9585  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
9586    swiper.freeMode.onTouchStart();
9587  }
9588  swiper.emit('touchStart', e);
9589}
9590
9591function onTouchMove(event) {
9592  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
9593  const swiper = this;
9594  const data = swiper.touchEventsData;
9595  const {
9596    params,
9597    touches,
9598    rtlTranslate: rtl,
9599    enabled
9600  } = swiper;
9601  if (!enabled) return;
9602  if (!params.simulateTouch && event.pointerType === 'mouse') return;
9603  let e = event;
9604  if (e.originalEvent) e = e.originalEvent;
9605  if (e.type === 'pointermove') {
9606    if (data.touchId !== null) return; // return from pointer if we use touch
9607    const id = e.pointerId;
9608    if (id !== data.pointerId) return;
9609  }
9610  let targetTouch;
9611  if (e.type === 'touchmove') {
9612    targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];
9613    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
9614  } else {
9615    targetTouch = e;
9616  }
9617  if (!data.isTouched) {
9618    if (data.startMoving && data.isScrolling) {
9619      swiper.emit('touchMoveOpposite', e);
9620    }
9621    return;
9622  }
9623  const pageX = targetTouch.pageX;
9624  const pageY = targetTouch.pageY;
9625  if (e.preventedByNestedSwiper) {
9626    touches.startX = pageX;
9627    touches.startY = pageY;
9628    return;
9629  }
9630  if (!swiper.allowTouchMove) {
9631    if (!e.target.matches(data.focusableElements)) {
9632      swiper.allowClick = false;
9633    }
9634    if (data.isTouched) {
9635      Object.assign(touches, {
9636        startX: pageX,
9637        startY: pageY,
9638        currentX: pageX,
9639        currentY: pageY
9640      });
9641      data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
9642    }
9643    return;
9644  }
9645  if (params.touchReleaseOnEdges && !params.loop) {
9646    if (swiper.isVertical()) {
9647      // Vertical
9648      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {
9649        data.isTouched = false;
9650        data.isMoved = false;
9651        return;
9652      }
9653    } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {
9654      return;
9655    }
9656  }
9657  if (document.activeElement) {
9658    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {
9659      data.isMoved = true;
9660      swiper.allowClick = false;
9661      return;
9662    }
9663  }
9664  if (data.allowTouchCallbacks) {
9665    swiper.emit('touchMove', e);
9666  }
9667  touches.previousX = touches.currentX;
9668  touches.previousY = touches.currentY;
9669  touches.currentX = pageX;
9670  touches.currentY = pageY;
9671  const diffX = touches.currentX - touches.startX;
9672  const diffY = touches.currentY - touches.startY;
9673  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
9674  if (typeof data.isScrolling === 'undefined') {
9675    let touchAngle;
9676    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {
9677      data.isScrolling = false;
9678    } else {
9679      // eslint-disable-next-line
9680      if (diffX * diffX + diffY * diffY >= 25) {
9681        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
9682        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
9683      }
9684    }
9685  }
9686  if (data.isScrolling) {
9687    swiper.emit('touchMoveOpposite', e);
9688  }
9689  if (typeof data.startMoving === 'undefined') {
9690    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
9691      data.startMoving = true;
9692    }
9693  }
9694  if (data.isScrolling) {
9695    data.isTouched = false;
9696    return;
9697  }
9698  if (!data.startMoving) {
9699    return;
9700  }
9701  swiper.allowClick = false;
9702  if (!params.cssMode && e.cancelable) {
9703    e.preventDefault();
9704  }
9705  if (params.touchMoveStopPropagation && !params.nested) {
9706    e.stopPropagation();
9707  }
9708  let diff = swiper.isHorizontal() ? diffX : diffY;
9709  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;
9710  if (params.oneWayMovement) {
9711    diff = Math.abs(diff) * (rtl ? 1 : -1);
9712    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);
9713  }
9714  touches.diff = diff;
9715  diff *= params.touchRatio;
9716  if (rtl) {
9717    diff = -diff;
9718    touchesDiff = -touchesDiff;
9719  }
9720  const prevTouchesDirection = swiper.touchesDirection;
9721  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
9722  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';
9723  const isLoop = swiper.params.loop && !params.cssMode;
9724  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;
9725  if (!data.isMoved) {
9726    if (isLoop && allowLoopFix) {
9727      swiper.loopFix({
9728        direction: swiper.swipeDirection
9729      });
9730    }
9731    data.startTranslate = swiper.getTranslate();
9732    swiper.setTransition(0);
9733    if (swiper.animating) {
9734      const evt = new window.CustomEvent('transitionend', {
9735        bubbles: true,
9736        cancelable: true
9737      });
9738      swiper.wrapperEl.dispatchEvent(evt);
9739    }
9740    data.allowMomentumBounce = false;
9741    // Grab Cursor
9742    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
9743      swiper.setGrabCursor(true);
9744    }
9745    swiper.emit('sliderFirstMove', e);
9746  }
9747  let loopFixed;
9748  new Date().getTime();
9749  if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {
9750    Object.assign(touches, {
9751      startX: pageX,
9752      startY: pageY,
9753      currentX: pageX,
9754      currentY: pageY,
9755      startTranslate: data.currentTranslate
9756    });
9757    data.loopSwapReset = true;
9758    data.startTranslate = data.currentTranslate;
9759    return;
9760  }
9761  swiper.emit('sliderMove', e);
9762  data.isMoved = true;
9763  data.currentTranslate = diff + data.startTranslate;
9764  let disableParentSwiper = true;
9765  let resistanceRatio = params.resistanceRatio;
9766  if (params.touchReleaseOnEdges) {
9767    resistanceRatio = 0;
9768  }
9769  if (diff > 0) {
9770    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {
9771      swiper.loopFix({
9772        direction: 'prev',
9773        setTranslate: true,
9774        activeSlideIndex: 0
9775      });
9776    }
9777    if (data.currentTranslate > swiper.minTranslate()) {
9778      disableParentSwiper = false;
9779      if (params.resistance) {
9780        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
9781      }
9782    }
9783  } else if (diff < 0) {
9784    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {
9785      swiper.loopFix({
9786        direction: 'next',
9787        setTranslate: true,
9788        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))
9789      });
9790    }
9791    if (data.currentTranslate < swiper.maxTranslate()) {
9792      disableParentSwiper = false;
9793      if (params.resistance) {
9794        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
9795      }
9796    }
9797  }
9798  if (disableParentSwiper) {
9799    e.preventedByNestedSwiper = true;
9800  }
9801
9802  // Directions locks
9803  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
9804    data.currentTranslate = data.startTranslate;
9805  }
9806  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
9807    data.currentTranslate = data.startTranslate;
9808  }
9809  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {
9810    data.currentTranslate = data.startTranslate;
9811  }
9812
9813  // Threshold
9814  if (params.threshold > 0) {
9815    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
9816      if (!data.allowThresholdMove) {
9817        data.allowThresholdMove = true;
9818        touches.startX = touches.currentX;
9819        touches.startY = touches.currentY;
9820        data.currentTranslate = data.startTranslate;
9821        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
9822        return;
9823      }
9824    } else {
9825      data.currentTranslate = data.startTranslate;
9826      return;
9827    }
9828  }
9829  if (!params.followFinger || params.cssMode) return;
9830
9831  // Update active index in free mode
9832  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {
9833    swiper.updateActiveIndex();
9834    swiper.updateSlidesClasses();
9835  }
9836  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {
9837    swiper.freeMode.onTouchMove();
9838  }
9839  // Update progress
9840  swiper.updateProgress(data.currentTranslate);
9841  // Update translate
9842  swiper.setTranslate(data.currentTranslate);
9843}
9844
9845function onTouchEnd(event) {
9846  const swiper = this;
9847  const data = swiper.touchEventsData;
9848  let e = event;
9849  if (e.originalEvent) e = e.originalEvent;
9850  let targetTouch;
9851  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';
9852  if (!isTouchEvent) {
9853    if (data.touchId !== null) return; // return from pointer if we use touch
9854    if (e.pointerId !== data.pointerId) return;
9855    targetTouch = e;
9856  } else {
9857    targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];
9858    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
9859  }
9860  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {
9861    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);
9862    if (!proceed) {
9863      return;
9864    }
9865  }
9866  data.pointerId = null;
9867  data.touchId = null;
9868  const {
9869    params,
9870    touches,
9871    rtlTranslate: rtl,
9872    slidesGrid,
9873    enabled
9874  } = swiper;
9875  if (!enabled) return;
9876  if (!params.simulateTouch && e.pointerType === 'mouse') return;
9877  if (data.allowTouchCallbacks) {
9878    swiper.emit('touchEnd', e);
9879  }
9880  data.allowTouchCallbacks = false;
9881  if (!data.isTouched) {
9882    if (data.isMoved && params.grabCursor) {
9883      swiper.setGrabCursor(false);
9884    }
9885    data.isMoved = false;
9886    data.startMoving = false;
9887    return;
9888  }
9889
9890  // Return Grab Cursor
9891  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
9892    swiper.setGrabCursor(false);
9893  }
9894
9895  // Time diff
9896  const touchEndTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
9897  const timeDiff = touchEndTime - data.touchStartTime;
9898
9899  // Tap, doubleTap, Click
9900  if (swiper.allowClick) {
9901    const pathTree = e.path || e.composedPath && e.composedPath();
9902    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);
9903    swiper.emit('tap click', e);
9904    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
9905      swiper.emit('doubleTap doubleClick', e);
9906    }
9907  }
9908  data.lastClickTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
9909  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
9910    if (!swiper.destroyed) swiper.allowClick = true;
9911  });
9912  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {
9913    data.isTouched = false;
9914    data.isMoved = false;
9915    data.startMoving = false;
9916    return;
9917  }
9918  data.isTouched = false;
9919  data.isMoved = false;
9920  data.startMoving = false;
9921  let currentPos;
9922  if (params.followFinger) {
9923    currentPos = rtl ? swiper.translate : -swiper.translate;
9924  } else {
9925    currentPos = -data.currentTranslate;
9926  }
9927  if (params.cssMode) {
9928    return;
9929  }
9930  if (params.freeMode && params.freeMode.enabled) {
9931    swiper.freeMode.onTouchEnd({
9932      currentPos
9933    });
9934    return;
9935  }
9936
9937  // Find current slide
9938  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;
9939  let stopIndex = 0;
9940  let groupSize = swiper.slidesSizesGrid[0];
9941  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {
9942    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
9943    if (typeof slidesGrid[i + increment] !== 'undefined') {
9944      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
9945        stopIndex = i;
9946        groupSize = slidesGrid[i + increment] - slidesGrid[i];
9947      }
9948    } else if (swipeToLast || currentPos >= slidesGrid[i]) {
9949      stopIndex = i;
9950      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
9951    }
9952  }
9953  let rewindFirstIndex = null;
9954  let rewindLastIndex = null;
9955  if (params.rewind) {
9956    if (swiper.isBeginning) {
9957      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
9958    } else if (swiper.isEnd) {
9959      rewindFirstIndex = 0;
9960    }
9961  }
9962  // Find current slide size
9963  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
9964  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
9965  if (timeDiff > params.longSwipesMs) {
9966    // Long touches
9967    if (!params.longSwipes) {
9968      swiper.slideTo(swiper.activeIndex);
9969      return;
9970    }
9971    if (swiper.swipeDirection === 'next') {
9972      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
9973    }
9974    if (swiper.swipeDirection === 'prev') {
9975      if (ratio > 1 - params.longSwipesRatio) {
9976        swiper.slideTo(stopIndex + increment);
9977      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
9978        swiper.slideTo(rewindLastIndex);
9979      } else {
9980        swiper.slideTo(stopIndex);
9981      }
9982    }
9983  } else {
9984    // Short swipes
9985    if (!params.shortSwipes) {
9986      swiper.slideTo(swiper.activeIndex);
9987      return;
9988    }
9989    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
9990    if (!isNavButtonTarget) {
9991      if (swiper.swipeDirection === 'next') {
9992        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
9993      }
9994      if (swiper.swipeDirection === 'prev') {
9995        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
9996      }
9997    } else if (e.target === swiper.navigation.nextEl) {
9998      swiper.slideTo(stopIndex + increment);
9999    } else {
10000      swiper.slideTo(stopIndex);
10001    }
10002  }
10003}
10004
10005function onResize() {
10006  const swiper = this;
10007  const {
10008    params,
10009    el
10010  } = swiper;
10011  if (el && el.offsetWidth === 0) return;
10012
10013  // Breakpoints
10014  if (params.breakpoints) {
10015    swiper.setBreakpoint();
10016  }
10017
10018  // Save locks
10019  const {
10020    allowSlideNext,
10021    allowSlidePrev,
10022    snapGrid
10023  } = swiper;
10024  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
10025
10026  // Disable locks on resize
10027  swiper.allowSlideNext = true;
10028  swiper.allowSlidePrev = true;
10029  swiper.updateSize();
10030  swiper.updateSlides();
10031  swiper.updateSlidesClasses();
10032  const isVirtualLoop = isVirtual && params.loop;
10033  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
10034    swiper.slideTo(swiper.slides.length - 1, 0, false, true);
10035  } else {
10036    if (swiper.params.loop && !isVirtual) {
10037      swiper.slideToLoop(swiper.realIndex, 0, false, true);
10038    } else {
10039      swiper.slideTo(swiper.activeIndex, 0, false, true);
10040    }
10041  }
10042  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
10043    clearTimeout(swiper.autoplay.resizeTimeout);
10044    swiper.autoplay.resizeTimeout = setTimeout(() => {
10045      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
10046        swiper.autoplay.resume();
10047      }
10048    }, 500);
10049  }
10050  // Return locks after resize
10051  swiper.allowSlidePrev = allowSlidePrev;
10052  swiper.allowSlideNext = allowSlideNext;
10053  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
10054    swiper.checkOverflow();
10055  }
10056}
10057
10058function onClick(e) {
10059  const swiper = this;
10060  if (!swiper.enabled) return;
10061  if (!swiper.allowClick) {
10062    if (swiper.params.preventClicks) e.preventDefault();
10063    if (swiper.params.preventClicksPropagation && swiper.animating) {
10064      e.stopPropagation();
10065      e.stopImmediatePropagation();
10066    }
10067  }
10068}
10069
10070function onScroll() {
10071  const swiper = this;
10072  const {
10073    wrapperEl,
10074    rtlTranslate,
10075    enabled
10076  } = swiper;
10077  if (!enabled) return;
10078  swiper.previousTranslate = swiper.translate;
10079  if (swiper.isHorizontal()) {
10080    swiper.translate = -wrapperEl.scrollLeft;
10081  } else {
10082    swiper.translate = -wrapperEl.scrollTop;
10083  }
10084  // eslint-disable-next-line
10085  if (swiper.translate === 0) swiper.translate = 0;
10086  swiper.updateActiveIndex();
10087  swiper.updateSlidesClasses();
10088  let newProgress;
10089  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
10090  if (translatesDiff === 0) {
10091    newProgress = 0;
10092  } else {
10093    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;
10094  }
10095  if (newProgress !== swiper.progress) {
10096    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);
10097  }
10098  swiper.emit('setTranslate', swiper.translate, false);
10099}
10100
10101function onLoad(e) {
10102  const swiper = this;
10103  processLazyPreloader(swiper, e.target);
10104  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
10105    return;
10106  }
10107  swiper.update();
10108}
10109
10110function onDocumentTouchStart() {
10111  const swiper = this;
10112  if (swiper.documentTouchHandlerProceeded) return;
10113  swiper.documentTouchHandlerProceeded = true;
10114  if (swiper.params.touchReleaseOnEdges) {
10115    swiper.el.style.touchAction = 'auto';
10116  }
10117}
10118
10119const events = (swiper, method) => {
10120  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
10121  const {
10122    params,
10123    el,
10124    wrapperEl,
10125    device
10126  } = swiper;
10127  const capture = !!params.nested;
10128  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
10129  const swiperMethod = method;
10130
10131  // Touch Events
10132  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {
10133    passive: false,
10134    capture
10135  });
10136  el[domMethod]('touchstart', swiper.onTouchStart, {
10137    passive: false
10138  });
10139  el[domMethod]('pointerdown', swiper.onTouchStart, {
10140    passive: false
10141  });
10142  document[domMethod]('touchmove', swiper.onTouchMove, {
10143    passive: false,
10144    capture
10145  });
10146  document[domMethod]('pointermove', swiper.onTouchMove, {
10147    passive: false,
10148    capture
10149  });
10150  document[domMethod]('touchend', swiper.onTouchEnd, {
10151    passive: true
10152  });
10153  document[domMethod]('pointerup', swiper.onTouchEnd, {
10154    passive: true
10155  });
10156  document[domMethod]('pointercancel', swiper.onTouchEnd, {
10157    passive: true
10158  });
10159  document[domMethod]('touchcancel', swiper.onTouchEnd, {
10160    passive: true
10161  });
10162  document[domMethod]('pointerout', swiper.onTouchEnd, {
10163    passive: true
10164  });
10165  document[domMethod]('pointerleave', swiper.onTouchEnd, {
10166    passive: true
10167  });
10168  document[domMethod]('contextmenu', swiper.onTouchEnd, {
10169    passive: true
10170  });
10171
10172  // Prevent Links Clicks
10173  if (params.preventClicks || params.preventClicksPropagation) {
10174    el[domMethod]('click', swiper.onClick, true);
10175  }
10176  if (params.cssMode) {
10177    wrapperEl[domMethod]('scroll', swiper.onScroll);
10178  }
10179
10180  // Resize handler
10181  if (params.updateOnWindowResize) {
10182    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);
10183  } else {
10184    swiper[swiperMethod]('observerUpdate', onResize, true);
10185  }
10186
10187  // Images loader
10188  el[domMethod]('load', swiper.onLoad, {
10189    capture: true
10190  });
10191};
10192function attachEvents() {
10193  const swiper = this;
10194  const {
10195    params
10196  } = swiper;
10197  swiper.onTouchStart = onTouchStart.bind(swiper);
10198  swiper.onTouchMove = onTouchMove.bind(swiper);
10199  swiper.onTouchEnd = onTouchEnd.bind(swiper);
10200  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);
10201  if (params.cssMode) {
10202    swiper.onScroll = onScroll.bind(swiper);
10203  }
10204  swiper.onClick = onClick.bind(swiper);
10205  swiper.onLoad = onLoad.bind(swiper);
10206  events(swiper, 'on');
10207}
10208function detachEvents() {
10209  const swiper = this;
10210  events(swiper, 'off');
10211}
10212var events$1 = {
10213  attachEvents,
10214  detachEvents
10215};
10216
10217const isGridEnabled = (swiper, params) => {
10218  return swiper.grid && params.grid && params.grid.rows > 1;
10219};
10220function setBreakpoint() {
10221  const swiper = this;
10222  const {
10223    realIndex,
10224    initialized,
10225    params,
10226    el
10227  } = swiper;
10228  const breakpoints = params.breakpoints;
10229  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;
10230
10231  // Get breakpoint for window width and update parameters
10232  const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);
10233  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
10234  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
10235  const breakpointParams = breakpointOnlyParams || swiper.originalParams;
10236  const wasMultiRow = isGridEnabled(swiper, params);
10237  const isMultiRow = isGridEnabled(swiper, breakpointParams);
10238  const wasEnabled = params.enabled;
10239  if (wasMultiRow && !isMultiRow) {
10240    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
10241    swiper.emitContainerClasses();
10242  } else if (!wasMultiRow && isMultiRow) {
10243    el.classList.add(`${params.containerModifierClass}grid`);
10244    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {
10245      el.classList.add(`${params.containerModifierClass}grid-column`);
10246    }
10247    swiper.emitContainerClasses();
10248  }
10249
10250  // Toggle navigation, pagination, scrollbar
10251  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {
10252    if (typeof breakpointParams[prop] === 'undefined') return;
10253    const wasModuleEnabled = params[prop] && params[prop].enabled;
10254    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
10255    if (wasModuleEnabled && !isModuleEnabled) {
10256      swiper[prop].disable();
10257    }
10258    if (!wasModuleEnabled && isModuleEnabled) {
10259      swiper[prop].enable();
10260    }
10261  });
10262  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
10263  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
10264  const wasLoop = params.loop;
10265  if (directionChanged && initialized) {
10266    swiper.changeDirection();
10267  }
10268  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)(swiper.params, breakpointParams);
10269  const isEnabled = swiper.params.enabled;
10270  const hasLoop = swiper.params.loop;
10271  Object.assign(swiper, {
10272    allowTouchMove: swiper.params.allowTouchMove,
10273    allowSlideNext: swiper.params.allowSlideNext,
10274    allowSlidePrev: swiper.params.allowSlidePrev
10275  });
10276  if (wasEnabled && !isEnabled) {
10277    swiper.disable();
10278  } else if (!wasEnabled && isEnabled) {
10279    swiper.enable();
10280  }
10281  swiper.currentBreakpoint = breakpoint;
10282  swiper.emit('_beforeBreakpoint', breakpointParams);
10283  if (initialized) {
10284    if (needsReLoop) {
10285      swiper.loopDestroy();
10286      swiper.loopCreate(realIndex);
10287      swiper.updateSlides();
10288    } else if (!wasLoop && hasLoop) {
10289      swiper.loopCreate(realIndex);
10290      swiper.updateSlides();
10291    } else if (wasLoop && !hasLoop) {
10292      swiper.loopDestroy();
10293    }
10294  }
10295  swiper.emit('breakpoint', breakpointParams);
10296}
10297
10298function getBreakpoint(breakpoints, base, containerEl) {
10299  if (base === void 0) {
10300    base = 'window';
10301  }
10302  if (!breakpoints || base === 'container' && !containerEl) return undefined;
10303  let breakpoint = false;
10304  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
10305  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
10306  const points = Object.keys(breakpoints).map(point => {
10307    if (typeof point === 'string' && point.indexOf('@') === 0) {
10308      const minRatio = parseFloat(point.substr(1));
10309      const value = currentHeight * minRatio;
10310      return {
10311        value,
10312        point
10313      };
10314    }
10315    return {
10316      value: point,
10317      point
10318    };
10319  });
10320  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));
10321  for (let i = 0; i < points.length; i += 1) {
10322    const {
10323      point,
10324      value
10325    } = points[i];
10326    if (base === 'window') {
10327      if (window.matchMedia(`(min-width: ${value}px)`).matches) {
10328        breakpoint = point;
10329      }
10330    } else if (value <= containerEl.clientWidth) {
10331      breakpoint = point;
10332    }
10333  }
10334  return breakpoint || 'max';
10335}
10336
10337var breakpoints = {
10338  setBreakpoint,
10339  getBreakpoint
10340};
10341
10342function prepareClasses(entries, prefix) {
10343  const resultClasses = [];
10344  entries.forEach(item => {
10345    if (typeof item === 'object') {
10346      Object.keys(item).forEach(classNames => {
10347        if (item[classNames]) {
10348          resultClasses.push(prefix + classNames);
10349        }
10350      });
10351    } else if (typeof item === 'string') {
10352      resultClasses.push(prefix + item);
10353    }
10354  });
10355  return resultClasses;
10356}
10357function addClasses() {
10358  const swiper = this;
10359  const {
10360    classNames,
10361    params,
10362    rtl,
10363    el,
10364    device
10365  } = swiper;
10366  // prettier-ignore
10367  const suffixes = prepareClasses(['initialized', params.direction, {
10368    'free-mode': swiper.params.freeMode && params.freeMode.enabled
10369  }, {
10370    'autoheight': params.autoHeight
10371  }, {
10372    'rtl': rtl
10373  }, {
10374    'grid': params.grid && params.grid.rows > 1
10375  }, {
10376    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
10377  }, {
10378    'android': device.android
10379  }, {
10380    'ios': device.ios
10381  }, {
10382    'css-mode': params.cssMode
10383  }, {
10384    'centered': params.cssMode && params.centeredSlides
10385  }, {
10386    'watch-progress': params.watchSlidesProgress
10387  }], params.containerModifierClass);
10388  classNames.push(...suffixes);
10389  el.classList.add(...classNames);
10390  swiper.emitContainerClasses();
10391}
10392
10393function removeClasses() {
10394  const swiper = this;
10395  const {
10396    el,
10397    classNames
10398  } = swiper;
10399  el.classList.remove(...classNames);
10400  swiper.emitContainerClasses();
10401}
10402
10403var classes = {
10404  addClasses,
10405  removeClasses
10406};
10407
10408function checkOverflow() {
10409  const swiper = this;
10410  const {
10411    isLocked: wasLocked,
10412    params
10413  } = swiper;
10414  const {
10415    slidesOffsetBefore
10416  } = params;
10417  if (slidesOffsetBefore) {
10418    const lastSlideIndex = swiper.slides.length - 1;
10419    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
10420    swiper.isLocked = swiper.size > lastSlideRightEdge;
10421  } else {
10422    swiper.isLocked = swiper.snapGrid.length === 1;
10423  }
10424  if (params.allowSlideNext === true) {
10425    swiper.allowSlideNext = !swiper.isLocked;
10426  }
10427  if (params.allowSlidePrev === true) {
10428    swiper.allowSlidePrev = !swiper.isLocked;
10429  }
10430  if (wasLocked && wasLocked !== swiper.isLocked) {
10431    swiper.isEnd = false;
10432  }
10433  if (wasLocked !== swiper.isLocked) {
10434    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
10435  }
10436}
10437var checkOverflow$1 = {
10438  checkOverflow
10439};
10440
10441var defaults = {
10442  init: true,
10443  direction: 'horizontal',
10444  oneWayMovement: false,
10445  swiperElementNodeName: 'SWIPER-CONTAINER',
10446  touchEventsTarget: 'wrapper',
10447  initialSlide: 0,
10448  speed: 300,
10449  cssMode: false,
10450  updateOnWindowResize: true,
10451  resizeObserver: true,
10452  nested: false,
10453  createElements: false,
10454  eventsPrefix: 'swiper',
10455  enabled: true,
10456  focusableElements: 'input, select, option, textarea, button, video, label',
10457  // Overrides
10458  width: null,
10459  height: null,
10460  //
10461  preventInteractionOnTransition: false,
10462  // ssr
10463  userAgent: null,
10464  url: null,
10465  // To support iOS's swipe-to-go-back gesture (when being used in-app).
10466  edgeSwipeDetection: false,
10467  edgeSwipeThreshold: 20,
10468  // Autoheight
10469  autoHeight: false,
10470  // Set wrapper width
10471  setWrapperSize: false,
10472  // Virtual Translate
10473  virtualTranslate: false,
10474  // Effects
10475  effect: 'slide',
10476  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
10477
10478  // Breakpoints
10479  breakpoints: undefined,
10480  breakpointsBase: 'window',
10481  // Slides grid
10482  spaceBetween: 0,
10483  slidesPerView: 1,
10484  slidesPerGroup: 1,
10485  slidesPerGroupSkip: 0,
10486  slidesPerGroupAuto: false,
10487  centeredSlides: false,
10488  centeredSlidesBounds: false,
10489  slidesOffsetBefore: 0,
10490  // in px
10491  slidesOffsetAfter: 0,
10492  // in px
10493  normalizeSlideIndex: true,
10494  centerInsufficientSlides: false,
10495  // Disable swiper and hide navigation when container not overflow
10496  watchOverflow: true,
10497  // Round length
10498  roundLengths: false,
10499  // Touches
10500  touchRatio: 1,
10501  touchAngle: 45,
10502  simulateTouch: true,
10503  shortSwipes: true,
10504  longSwipes: true,
10505  longSwipesRatio: 0.5,
10506  longSwipesMs: 300,
10507  followFinger: true,
10508  allowTouchMove: true,
10509  threshold: 5,
10510  touchMoveStopPropagation: false,
10511  touchStartPreventDefault: true,
10512  touchStartForcePreventDefault: false,
10513  touchReleaseOnEdges: false,
10514  // Unique Navigation Elements
10515  uniqueNavElements: true,
10516  // Resistance
10517  resistance: true,
10518  resistanceRatio: 0.85,
10519  // Progress
10520  watchSlidesProgress: false,
10521  // Cursor
10522  grabCursor: false,
10523  // Clicks
10524  preventClicks: true,
10525  preventClicksPropagation: true,
10526  slideToClickedSlide: false,
10527  // loop
10528  loop: false,
10529  loopAddBlankSlides: true,
10530  loopAdditionalSlides: 0,
10531  loopPreventsSliding: true,
10532  // rewind
10533  rewind: false,
10534  // Swiping/no swiping
10535  allowSlidePrev: true,
10536  allowSlideNext: true,
10537  swipeHandler: null,
10538  // '.swipe-handler',
10539  noSwiping: true,
10540  noSwipingClass: 'swiper-no-swiping',
10541  noSwipingSelector: null,
10542  // Passive Listeners
10543  passiveListeners: true,
10544  maxBackfaceHiddenSlides: 10,
10545  // NS
10546  containerModifierClass: 'swiper-',
10547  // NEW
10548  slideClass: 'swiper-slide',
10549  slideBlankClass: 'swiper-slide-blank',
10550  slideActiveClass: 'swiper-slide-active',
10551  slideVisibleClass: 'swiper-slide-visible',
10552  slideFullyVisibleClass: 'swiper-slide-fully-visible',
10553  slideNextClass: 'swiper-slide-next',
10554  slidePrevClass: 'swiper-slide-prev',
10555  wrapperClass: 'swiper-wrapper',
10556  lazyPreloaderClass: 'swiper-lazy-preloader',
10557  lazyPreloadPrevNext: 0,
10558  // Callbacks
10559  runCallbacksOnInit: true,
10560  // Internals
10561  _emitClasses: false
10562};
10563
10564function moduleExtendParams(params, allModulesParams) {
10565  return function extendParams(obj) {
10566    if (obj === void 0) {
10567      obj = {};
10568    }
10569    const moduleParamName = Object.keys(obj)[0];
10570    const moduleParams = obj[moduleParamName];
10571    if (typeof moduleParams !== 'object' || moduleParams === null) {
10572      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)(allModulesParams, obj);
10573      return;
10574    }
10575    if (params[moduleParamName] === true) {
10576      params[moduleParamName] = {
10577        enabled: true
10578      };
10579    }
10580    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {
10581      params[moduleParamName].auto = true;
10582    }
10583    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {
10584      params[moduleParamName].auto = true;
10585    }
10586    if (!(moduleParamName in params && 'enabled' in moduleParams)) {
10587      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)(allModulesParams, obj);
10588      return;
10589    }
10590    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
10591      params[moduleParamName].enabled = true;
10592    }
10593    if (!params[moduleParamName]) params[moduleParamName] = {
10594      enabled: false
10595    };
10596    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)(allModulesParams, obj);
10597  };
10598}
10599
10600/* eslint no-param-reassign: "off" */
10601const prototypes = {
10602  eventsEmitter,
10603  update,
10604  translate,
10605  transition,
10606  slide,
10607  loop,
10608  grabCursor,
10609  events: events$1,
10610  breakpoints,
10611  checkOverflow: checkOverflow$1,
10612  classes
10613};
10614const extendedDefaults = {};
10615class Swiper {
10616  constructor() {
10617    let el;
10618    let params;
10619    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10620      args[_key] = arguments[_key];
10621    }
10622    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
10623      params = args[0];
10624    } else {
10625      [el, params] = args;
10626    }
10627    if (!params) params = {};
10628    params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({}, params);
10629    if (el && !params.el) params.el = el;
10630    const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
10631    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {
10632      const swipers = [];
10633      document.querySelectorAll(params.el).forEach(containerEl => {
10634        const newParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({}, params, {
10635          el: containerEl
10636        });
10637        swipers.push(new Swiper(newParams));
10638      });
10639      // eslint-disable-next-line no-constructor-return
10640      return swipers;
10641    }
10642
10643    // Swiper Instance
10644    const swiper = this;
10645    swiper.__swiper__ = true;
10646    swiper.support = getSupport();
10647    swiper.device = getDevice({
10648      userAgent: params.userAgent
10649    });
10650    swiper.browser = getBrowser();
10651    swiper.eventsListeners = {};
10652    swiper.eventsAnyListeners = [];
10653    swiper.modules = [...swiper.__modules__];
10654    if (params.modules && Array.isArray(params.modules)) {
10655      swiper.modules.push(...params.modules);
10656    }
10657    const allModulesParams = {};
10658    swiper.modules.forEach(mod => {
10659      mod({
10660        params,
10661        swiper,
10662        extendParams: moduleExtendParams(params, allModulesParams),
10663        on: swiper.on.bind(swiper),
10664        once: swiper.once.bind(swiper),
10665        off: swiper.off.bind(swiper),
10666        emit: swiper.emit.bind(swiper)
10667      });
10668    });
10669
10670    // Extend defaults with modules params
10671    const swiperParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({}, defaults, allModulesParams);
10672
10673    // Extend defaults with passed params
10674    swiper.params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({}, swiperParams, extendedDefaults, params);
10675    swiper.originalParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({}, swiper.params);
10676    swiper.passedParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)({}, params);
10677
10678    // add event listeners
10679    if (swiper.params && swiper.params.on) {
10680      Object.keys(swiper.params.on).forEach(eventName => {
10681        swiper.on(eventName, swiper.params.on[eventName]);
10682      });
10683    }
10684    if (swiper.params && swiper.params.onAny) {
10685      swiper.onAny(swiper.params.onAny);
10686    }
10687
10688    // Extend Swiper
10689    Object.assign(swiper, {
10690      enabled: swiper.params.enabled,
10691      el,
10692      // Classes
10693      classNames: [],
10694      // Slides
10695      slides: [],
10696      slidesGrid: [],
10697      snapGrid: [],
10698      slidesSizesGrid: [],
10699      // isDirection
10700      isHorizontal() {
10701        return swiper.params.direction === 'horizontal';
10702      },
10703      isVertical() {
10704        return swiper.params.direction === 'vertical';
10705      },
10706      // Indexes
10707      activeIndex: 0,
10708      realIndex: 0,
10709      //
10710      isBeginning: true,
10711      isEnd: false,
10712      // Props
10713      translate: 0,
10714      previousTranslate: 0,
10715      progress: 0,
10716      velocity: 0,
10717      animating: false,
10718      cssOverflowAdjustment() {
10719        // Returns 0 unless `translate` is > 2**23
10720        // Should be subtracted from css values to prevent overflow
10721        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
10722      },
10723      // Locks
10724      allowSlideNext: swiper.params.allowSlideNext,
10725      allowSlidePrev: swiper.params.allowSlidePrev,
10726      // Touch Events
10727      touchEventsData: {
10728        isTouched: undefined,
10729        isMoved: undefined,
10730        allowTouchCallbacks: undefined,
10731        touchStartTime: undefined,
10732        isScrolling: undefined,
10733        currentTranslate: undefined,
10734        startTranslate: undefined,
10735        allowThresholdMove: undefined,
10736        // Form elements to match
10737        focusableElements: swiper.params.focusableElements,
10738        // Last click time
10739        lastClickTime: 0,
10740        clickTimeout: undefined,
10741        // Velocities
10742        velocities: [],
10743        allowMomentumBounce: undefined,
10744        startMoving: undefined,
10745        pointerId: null,
10746        touchId: null
10747      },
10748      // Clicks
10749      allowClick: true,
10750      // Touches
10751      allowTouchMove: swiper.params.allowTouchMove,
10752      touches: {
10753        startX: 0,
10754        startY: 0,
10755        currentX: 0,
10756        currentY: 0,
10757        diff: 0
10758      },
10759      // Images
10760      imagesToLoad: [],
10761      imagesLoaded: 0
10762    });
10763    swiper.emit('_swiper');
10764
10765    // Init
10766    if (swiper.params.init) {
10767      swiper.init();
10768    }
10769
10770    // Return app instance
10771    // eslint-disable-next-line no-constructor-return
10772    return swiper;
10773  }
10774  getDirectionLabel(property) {
10775    if (this.isHorizontal()) {
10776      return property;
10777    }
10778    // prettier-ignore
10779    return {
10780      'width': 'height',
10781      'margin-top': 'margin-left',
10782      'margin-bottom ': 'margin-right',
10783      'margin-left': 'margin-top',
10784      'margin-right': 'margin-bottom',
10785      'padding-left': 'padding-top',
10786      'padding-right': 'padding-bottom',
10787      'marginRight': 'marginBottom'
10788    }[property];
10789  }
10790  getSlideIndex(slideEl) {
10791    const {
10792      slidesEl,
10793      params
10794    } = this;
10795    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
10796    const firstSlideIndex = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.g)(slides[0]);
10797    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.g)(slideEl) - firstSlideIndex;
10798  }
10799  getSlideIndexByData(index) {
10800    return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);
10801  }
10802  recalcSlides() {
10803    const swiper = this;
10804    const {
10805      slidesEl,
10806      params
10807    } = swiper;
10808    swiper.slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
10809  }
10810  enable() {
10811    const swiper = this;
10812    if (swiper.enabled) return;
10813    swiper.enabled = true;
10814    if (swiper.params.grabCursor) {
10815      swiper.setGrabCursor();
10816    }
10817    swiper.emit('enable');
10818  }
10819  disable() {
10820    const swiper = this;
10821    if (!swiper.enabled) return;
10822    swiper.enabled = false;
10823    if (swiper.params.grabCursor) {
10824      swiper.unsetGrabCursor();
10825    }
10826    swiper.emit('disable');
10827  }
10828  setProgress(progress, speed) {
10829    const swiper = this;
10830    progress = Math.min(Math.max(progress, 0), 1);
10831    const min = swiper.minTranslate();
10832    const max = swiper.maxTranslate();
10833    const current = (max - min) * progress + min;
10834    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);
10835    swiper.updateActiveIndex();
10836    swiper.updateSlidesClasses();
10837  }
10838  emitContainerClasses() {
10839    const swiper = this;
10840    if (!swiper.params._emitClasses || !swiper.el) return;
10841    const cls = swiper.el.className.split(' ').filter(className => {
10842      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;
10843    });
10844    swiper.emit('_containerClasses', cls.join(' '));
10845  }
10846  getSlideClasses(slideEl) {
10847    const swiper = this;
10848    if (swiper.destroyed) return '';
10849    return slideEl.className.split(' ').filter(className => {
10850      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;
10851    }).join(' ');
10852  }
10853  emitSlidesClasses() {
10854    const swiper = this;
10855    if (!swiper.params._emitClasses || !swiper.el) return;
10856    const updates = [];
10857    swiper.slides.forEach(slideEl => {
10858      const classNames = swiper.getSlideClasses(slideEl);
10859      updates.push({
10860        slideEl,
10861        classNames
10862      });
10863      swiper.emit('_slideClass', slideEl, classNames);
10864    });
10865    swiper.emit('_slideClasses', updates);
10866  }
10867  slidesPerViewDynamic(view, exact) {
10868    if (view === void 0) {
10869      view = 'current';
10870    }
10871    if (exact === void 0) {
10872      exact = false;
10873    }
10874    const swiper = this;
10875    const {
10876      params,
10877      slides,
10878      slidesGrid,
10879      slidesSizesGrid,
10880      size: swiperSize,
10881      activeIndex
10882    } = swiper;
10883    let spv = 1;
10884    if (typeof params.slidesPerView === 'number') return params.slidesPerView;
10885    if (params.centeredSlides) {
10886      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;
10887      let breakLoop;
10888      for (let i = activeIndex + 1; i < slides.length; i += 1) {
10889        if (slides[i] && !breakLoop) {
10890          slideSize += Math.ceil(slides[i].swiperSlideSize);
10891          spv += 1;
10892          if (slideSize > swiperSize) breakLoop = true;
10893        }
10894      }
10895      for (let i = activeIndex - 1; i >= 0; i -= 1) {
10896        if (slides[i] && !breakLoop) {
10897          slideSize += slides[i].swiperSlideSize;
10898          spv += 1;
10899          if (slideSize > swiperSize) breakLoop = true;
10900        }
10901      }
10902    } else {
10903      // eslint-disable-next-line
10904      if (view === 'current') {
10905        for (let i = activeIndex + 1; i < slides.length; i += 1) {
10906          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
10907          if (slideInView) {
10908            spv += 1;
10909          }
10910        }
10911      } else {
10912        // previous
10913        for (let i = activeIndex - 1; i >= 0; i -= 1) {
10914          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
10915          if (slideInView) {
10916            spv += 1;
10917          }
10918        }
10919      }
10920    }
10921    return spv;
10922  }
10923  update() {
10924    const swiper = this;
10925    if (!swiper || swiper.destroyed) return;
10926    const {
10927      snapGrid,
10928      params
10929    } = swiper;
10930    // Breakpoints
10931    if (params.breakpoints) {
10932      swiper.setBreakpoint();
10933    }
10934    [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => {
10935      if (imageEl.complete) {
10936        processLazyPreloader(swiper, imageEl);
10937      }
10938    });
10939    swiper.updateSize();
10940    swiper.updateSlides();
10941    swiper.updateProgress();
10942    swiper.updateSlidesClasses();
10943    function setTranslate() {
10944      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
10945      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
10946      swiper.setTranslate(newTranslate);
10947      swiper.updateActiveIndex();
10948      swiper.updateSlidesClasses();
10949    }
10950    let translated;
10951    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {
10952      setTranslate();
10953      if (params.autoHeight) {
10954        swiper.updateAutoHeight();
10955      }
10956    } else {
10957      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {
10958        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;
10959        translated = swiper.slideTo(slides.length - 1, 0, false, true);
10960      } else {
10961        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
10962      }
10963      if (!translated) {
10964        setTranslate();
10965      }
10966    }
10967    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {
10968      swiper.checkOverflow();
10969    }
10970    swiper.emit('update');
10971  }
10972  changeDirection(newDirection, needUpdate) {
10973    if (needUpdate === void 0) {
10974      needUpdate = true;
10975    }
10976    const swiper = this;
10977    const currentDirection = swiper.params.direction;
10978    if (!newDirection) {
10979      // eslint-disable-next-line
10980      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
10981    }
10982    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {
10983      return swiper;
10984    }
10985    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);
10986    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);
10987    swiper.emitContainerClasses();
10988    swiper.params.direction = newDirection;
10989    swiper.slides.forEach(slideEl => {
10990      if (newDirection === 'vertical') {
10991        slideEl.style.width = '';
10992      } else {
10993        slideEl.style.height = '';
10994      }
10995    });
10996    swiper.emit('changeDirection');
10997    if (needUpdate) swiper.update();
10998    return swiper;
10999  }
11000  changeLanguageDirection(direction) {
11001    const swiper = this;
11002    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;
11003    swiper.rtl = direction === 'rtl';
11004    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;
11005    if (swiper.rtl) {
11006      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);
11007      swiper.el.dir = 'rtl';
11008    } else {
11009      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);
11010      swiper.el.dir = 'ltr';
11011    }
11012    swiper.update();
11013  }
11014  mount(element) {
11015    const swiper = this;
11016    if (swiper.mounted) return true;
11017
11018    // Find el
11019    let el = element || swiper.params.el;
11020    if (typeof el === 'string') {
11021      el = document.querySelector(el);
11022    }
11023    if (!el) {
11024      return false;
11025    }
11026    el.swiper = swiper;
11027    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {
11028      swiper.isElement = true;
11029    }
11030    const getWrapperSelector = () => {
11031      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;
11032    };
11033    const getWrapper = () => {
11034      if (el && el.shadowRoot && el.shadowRoot.querySelector) {
11035        const res = el.shadowRoot.querySelector(getWrapperSelector());
11036        // Children needs to return slot items
11037        return res;
11038      }
11039      return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, getWrapperSelector())[0];
11040    };
11041    // Find Wrapper
11042    let wrapperEl = getWrapper();
11043    if (!wrapperEl && swiper.params.createElements) {
11044      wrapperEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.wrapperClass);
11045      el.append(wrapperEl);
11046      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, `.${swiper.params.slideClass}`).forEach(slideEl => {
11047        wrapperEl.append(slideEl);
11048      });
11049    }
11050    Object.assign(swiper, {
11051      el,
11052      wrapperEl,
11053      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
11054      hostEl: swiper.isElement ? el.parentNode.host : el,
11055      mounted: true,
11056      // RTL
11057      rtl: el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(el, 'direction') === 'rtl',
11058      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(el, 'direction') === 'rtl'),
11059      wrongRTL: (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(wrapperEl, 'display') === '-webkit-box'
11060    });
11061    return true;
11062  }
11063  init(el) {
11064    const swiper = this;
11065    if (swiper.initialized) return swiper;
11066    const mounted = swiper.mount(el);
11067    if (mounted === false) return swiper;
11068    swiper.emit('beforeInit');
11069
11070    // Set breakpoint
11071    if (swiper.params.breakpoints) {
11072      swiper.setBreakpoint();
11073    }
11074
11075    // Add Classes
11076    swiper.addClasses();
11077
11078    // Update size
11079    swiper.updateSize();
11080
11081    // Update slides
11082    swiper.updateSlides();
11083    if (swiper.params.watchOverflow) {
11084      swiper.checkOverflow();
11085    }
11086
11087    // Set Grab Cursor
11088    if (swiper.params.grabCursor && swiper.enabled) {
11089      swiper.setGrabCursor();
11090    }
11091
11092    // Slide To Initial Slide
11093    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
11094      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);
11095    } else {
11096      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
11097    }
11098
11099    // Create loop
11100    if (swiper.params.loop) {
11101      swiper.loopCreate();
11102    }
11103
11104    // Attach events
11105    swiper.attachEvents();
11106    const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')];
11107    if (swiper.isElement) {
11108      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]'));
11109    }
11110    lazyElements.forEach(imageEl => {
11111      if (imageEl.complete) {
11112        processLazyPreloader(swiper, imageEl);
11113      } else {
11114        imageEl.addEventListener('load', e => {
11115          processLazyPreloader(swiper, e.target);
11116        });
11117      }
11118    });
11119    preload(swiper);
11120
11121    // Init Flag
11122    swiper.initialized = true;
11123    preload(swiper);
11124
11125    // Emit
11126    swiper.emit('init');
11127    swiper.emit('afterInit');
11128    return swiper;
11129  }
11130  destroy(deleteInstance, cleanStyles) {
11131    if (deleteInstance === void 0) {
11132      deleteInstance = true;
11133    }
11134    if (cleanStyles === void 0) {
11135      cleanStyles = true;
11136    }
11137    const swiper = this;
11138    const {
11139      params,
11140      el,
11141      wrapperEl,
11142      slides
11143    } = swiper;
11144    if (typeof swiper.params === 'undefined' || swiper.destroyed) {
11145      return null;
11146    }
11147    swiper.emit('beforeDestroy');
11148
11149    // Init Flag
11150    swiper.initialized = false;
11151
11152    // Detach events
11153    swiper.detachEvents();
11154
11155    // Destroy loop
11156    if (params.loop) {
11157      swiper.loopDestroy();
11158    }
11159
11160    // Cleanup styles
11161    if (cleanStyles) {
11162      swiper.removeClasses();
11163      el.removeAttribute('style');
11164      wrapperEl.removeAttribute('style');
11165      if (slides && slides.length) {
11166        slides.forEach(slideEl => {
11167          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);
11168          slideEl.removeAttribute('style');
11169          slideEl.removeAttribute('data-swiper-slide-index');
11170        });
11171      }
11172    }
11173    swiper.emit('destroy');
11174
11175    // Detach emitter events
11176    Object.keys(swiper.eventsListeners).forEach(eventName => {
11177      swiper.off(eventName);
11178    });
11179    if (deleteInstance !== false) {
11180      swiper.el.swiper = null;
11181      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)(swiper);
11182    }
11183    swiper.destroyed = true;
11184    return null;
11185  }
11186  static extendDefaults(newDefaults) {
11187    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)(extendedDefaults, newDefaults);
11188  }
11189  static get extendedDefaults() {
11190    return extendedDefaults;
11191  }
11192  static get defaults() {
11193    return defaults;
11194  }
11195  static installModule(mod) {
11196    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];
11197    const modules = Swiper.prototype.__modules__;
11198    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {
11199      modules.push(mod);
11200    }
11201  }
11202  static use(module) {
11203    if (Array.isArray(module)) {
11204      module.forEach(m => Swiper.installModule(m));
11205      return Swiper;
11206    }
11207    Swiper.installModule(module);
11208    return Swiper;
11209  }
11210}
11211Object.keys(prototypes).forEach(prototypeGroup => {
11212  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {
11213    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
11214  });
11215});
11216Swiper.use([Resize, Observer]);
11217
11218
11219
11220
11221/***/ }),
11222
vendor: 11,632 bytes, lines 11223-11551
11223/***/ "./node_modules/swiper/shared/utils.mjs":
11224/*!**********************************************!*\
11225  !*** ./node_modules/swiper/shared/utils.mjs ***!
11226  \**********************************************/
11227/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
11228
11229"use strict";
11230__webpack_require__.r(__webpack_exports__);
11231/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11232/* harmony export */   a: () => (/* binding */ elementParents),
11233/* harmony export */   b: () => (/* binding */ elementOffset),
11234/* harmony export */   c: () => (/* binding */ createElement),
11235/* harmony export */   d: () => (/* binding */ now),
11236/* harmony export */   e: () => (/* binding */ elementChildren),
11237/* harmony export */   f: () => (/* binding */ elementOuterSize),
11238/* harmony export */   g: () => (/* binding */ elementIndex),
11239/* harmony export */   h: () => (/* binding */ classesToTokens),
11240/* harmony export */   i: () => (/* binding */ getTranslate),
11241/* harmony export */   j: () => (/* binding */ elementTransitionEnd),
11242/* harmony export */   k: () => (/* binding */ isObject),
11243/* harmony export */   l: () => (/* binding */ getSlideTransformEl),
11244/* harmony export */   m: () => (/* binding */ makeElementsArray),
11245/* harmony export */   n: () => (/* binding */ nextTick),
11246/* harmony export */   o: () => (/* binding */ elementStyle),
11247/* harmony export */   p: () => (/* binding */ elementNextAll),
11248/* harmony export */   q: () => (/* binding */ elementPrevAll),
11249/* harmony export */   r: () => (/* binding */ animateCSSModeScroll),
11250/* harmony export */   s: () => (/* binding */ setCSSProperty),
11251/* harmony export */   t: () => (/* binding */ showWarning),
11252/* harmony export */   u: () => (/* binding */ extend),
11253/* harmony export */   v: () => (/* binding */ deleteProps)
11254/* harmony export */ });
11255/* 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");
11256
11257
11258function classesToTokens(classes) {
11259  if (classes === void 0) {
11260    classes = '';
11261  }
11262  return classes.trim().split(' ').filter(c => !!c.trim());
11263}
11264
11265function deleteProps(obj) {
11266  const object = obj;
11267  Object.keys(object).forEach(key => {
11268    try {
11269      object[key] = null;
11270    } catch (e) {
11271      // no getter for object
11272    }
11273    try {
11274      delete object[key];
11275    } catch (e) {
11276      // something got wrong
11277    }
11278  });
11279}
11280function nextTick(callback, delay) {
11281  if (delay === void 0) {
11282    delay = 0;
11283  }
11284  return setTimeout(callback, delay);
11285}
11286function now() {
11287  return Date.now();
11288}
11289function getComputedStyle(el) {
11290  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
11291  let style;
11292  if (window.getComputedStyle) {
11293    style = window.getComputedStyle(el, null);
11294  }
11295  if (!style && el.currentStyle) {
11296    style = el.currentStyle;
11297  }
11298  if (!style) {
11299    style = el.style;
11300  }
11301  return style;
11302}
11303function getTranslate(el, axis) {
11304  if (axis === void 0) {
11305    axis = 'x';
11306  }
11307  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
11308  let matrix;
11309  let curTransform;
11310  let transformMatrix;
11311  const curStyle = getComputedStyle(el);
11312  if (window.WebKitCSSMatrix) {
11313    curTransform = curStyle.transform || curStyle.webkitTransform;
11314    if (curTransform.split(',').length > 6) {
11315      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');
11316    }
11317    // Some old versions of Webkit choke when 'none' is passed; pass
11318    // empty string instead in this case
11319    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
11320  } else {
11321    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
11322    matrix = transformMatrix.toString().split(',');
11323  }
11324  if (axis === 'x') {
11325    // Latest Chrome and webkits Fix
11326    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;
11327    // Crazy IE10 Matrix
11328    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);
11329    // Normal Browsers
11330    else curTransform = parseFloat(matrix[4]);
11331  }
11332  if (axis === 'y') {
11333    // Latest Chrome and webkits Fix
11334    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;
11335    // Crazy IE10 Matrix
11336    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);
11337    // Normal Browsers
11338    else curTransform = parseFloat(matrix[5]);
11339  }
11340  return curTransform || 0;
11341}
11342function isObject(o) {
11343  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
11344}
11345function isNode(node) {
11346  // eslint-disable-next-line
11347  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
11348    return node instanceof HTMLElement;
11349  }
11350  return node && (node.nodeType === 1 || node.nodeType === 11);
11351}
11352function extend() {
11353  const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
11354  const noExtend = ['__proto__', 'constructor', 'prototype'];
11355  for (let i = 1; i < arguments.length; i += 1) {
11356    const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
11357    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
11358      const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
11359      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
11360        const nextKey = keysArray[nextIndex];
11361        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
11362        if (desc !== undefined && desc.enumerable) {
11363          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
11364            if (nextSource[nextKey].__swiper__) {
11365              to[nextKey] = nextSource[nextKey];
11366            } else {
11367              extend(to[nextKey], nextSource[nextKey]);
11368            }
11369          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
11370            to[nextKey] = {};
11371            if (nextSource[nextKey].__swiper__) {
11372              to[nextKey] = nextSource[nextKey];
11373            } else {
11374              extend(to[nextKey], nextSource[nextKey]);
11375            }
11376          } else {
11377            to[nextKey] = nextSource[nextKey];
11378          }
11379        }
11380      }
11381    }
11382  }
11383  return to;
11384}
11385function setCSSProperty(el, varName, varValue) {
11386  el.style.setProperty(varName, varValue);
11387}
11388function animateCSSModeScroll(_ref) {
11389  let {
11390    swiper,
11391    targetPosition,
11392    side
11393  } = _ref;
11394  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
11395  const startPosition = -swiper.translate;
11396  let startTime = null;
11397  let time;
11398  const duration = swiper.params.speed;
11399  swiper.wrapperEl.style.scrollSnapType = 'none';
11400  window.cancelAnimationFrame(swiper.cssModeFrameID);
11401  const dir = targetPosition > startPosition ? 'next' : 'prev';
11402  const isOutOfBound = (current, target) => {
11403    return dir === 'next' && current >= target || dir === 'prev' && current <= target;
11404  };
11405  const animate = () => {
11406    time = new Date().getTime();
11407    if (startTime === null) {
11408      startTime = time;
11409    }
11410    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
11411    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
11412    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
11413    if (isOutOfBound(currentPosition, targetPosition)) {
11414      currentPosition = targetPosition;
11415    }
11416    swiper.wrapperEl.scrollTo({
11417      [side]: currentPosition
11418    });
11419    if (isOutOfBound(currentPosition, targetPosition)) {
11420      swiper.wrapperEl.style.overflow = 'hidden';
11421      swiper.wrapperEl.style.scrollSnapType = '';
11422      setTimeout(() => {
11423        swiper.wrapperEl.style.overflow = '';
11424        swiper.wrapperEl.scrollTo({
11425          [side]: currentPosition
11426        });
11427      });
11428      window.cancelAnimationFrame(swiper.cssModeFrameID);
11429      return;
11430    }
11431    swiper.cssModeFrameID = window.requestAnimationFrame(animate);
11432  };
11433  animate();
11434}
11435function getSlideTransformEl(slideEl) {
11436  return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;
11437}
11438function elementChildren(element, selector) {
11439  if (selector === void 0) {
11440    selector = '';
11441  }
11442  return [...element.children].filter(el => el.matches(selector));
11443}
11444function showWarning(text) {
11445  try {
11446    console.warn(text);
11447    return;
11448  } catch (err) {
11449    // err
11450  }
11451}
11452function createElement(tag, classes) {
11453  if (classes === void 0) {
11454    classes = [];
11455  }
11456  const el = document.createElement(tag);
11457  el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));
11458  return el;
11459}
11460function elementOffset(el) {
11461  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
11462  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
11463  const box = el.getBoundingClientRect();
11464  const body = document.body;
11465  const clientTop = el.clientTop || body.clientTop || 0;
11466  const clientLeft = el.clientLeft || body.clientLeft || 0;
11467  const scrollTop = el === window ? window.scrollY : el.scrollTop;
11468  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
11469  return {
11470    top: box.top + scrollTop - clientTop,
11471    left: box.left + scrollLeft - clientLeft
11472  };
11473}
11474function elementPrevAll(el, selector) {
11475  const prevEls = [];
11476  while (el.previousElementSibling) {
11477    const prev = el.previousElementSibling; // eslint-disable-line
11478    if (selector) {
11479      if (prev.matches(selector)) prevEls.push(prev);
11480    } else prevEls.push(prev);
11481    el = prev;
11482  }
11483  return prevEls;
11484}
11485function elementNextAll(el, selector) {
11486  const nextEls = [];
11487  while (el.nextElementSibling) {
11488    const next = el.nextElementSibling; // eslint-disable-line
11489    if (selector) {
11490      if (next.matches(selector)) nextEls.push(next);
11491    } else nextEls.push(next);
11492    el = next;
11493  }
11494  return nextEls;
11495}
11496function elementStyle(el, prop) {
11497  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
11498  return window.getComputedStyle(el, null).getPropertyValue(prop);
11499}
11500function elementIndex(el) {
11501  let child = el;
11502  let i;
11503  if (child) {
11504    i = 0;
11505    // eslint-disable-next-line
11506    while ((child = child.previousSibling) !== null) {
11507      if (child.nodeType === 1) i += 1;
11508    }
11509    return i;
11510  }
11511  return undefined;
11512}
11513function elementParents(el, selector) {
11514  const parents = []; // eslint-disable-line
11515  let parent = el.parentElement; // eslint-disable-line
11516  while (parent) {
11517    if (selector) {
11518      if (parent.matches(selector)) parents.push(parent);
11519    } else {
11520      parents.push(parent);
11521    }
11522    parent = parent.parentElement;
11523  }
11524  return parents;
11525}
11526function elementTransitionEnd(el, callback) {
11527  function fireCallBack(e) {
11528    if (e.target !== el) return;
11529    callback.call(el, e);
11530    el.removeEventListener('transitionend', fireCallBack);
11531  }
11532  if (callback) {
11533    el.addEventListener('transitionend', fireCallBack);
11534  }
11535}
11536function elementOuterSize(el, size, includeMargins) {
11537  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
11538  if (includeMargins) {
11539    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'));
11540  }
11541  return el.offsetWidth;
11542}
11543function makeElementsArray(el) {
11544  return (Array.isArray(el) ? el : [el]).filter(e => !!e);
11545}
11546
11547
11548
11549
11550/***/ }),
11551
vendor: 1,102 bytes, lines 11552-11580
11552/***/ "./node_modules/swiper/swiper.mjs":
11553/*!****************************************!*\
11554  !*** ./node_modules/swiper/swiper.mjs ***!
11555  \****************************************/
11556/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
11557
11558"use strict";
11559__webpack_require__.r(__webpack_exports__);
11560/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11561/* harmony export */   Swiper: () => (/* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S),
11562/* harmony export */   "default": () => (/* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S)
11563/* harmony export */ });
11564/* harmony import */ var _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared/swiper-core.mjs */ "./node_modules/swiper/shared/swiper-core.mjs");
11565/**
11566 * Swiper 11.0.6
11567 * Most modern mobile touch slider and framework with hardware accelerated transitions
11568 * https://swiperjs.com
11569 *
11570 * Copyright 2014-2024 Vladimir Kharlampidi
11571 *
11572 * Released under the MIT License
11573 *
11574 * Released on: February 5, 2024
11575 */
11576
11577
11578
11579
11580/***/ })
11580
11581
11582},
11583/******/ __webpack_require__ => { // webpackRuntimeModules
11584/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
11585/******/ __webpack_require__.O(0, ["css/editor","css/styles","/js/vendor"], () => (__webpack_exec__("./wp-content/themes/britishgardencentres.com/public/js/app.js"), __webpack_exec__("./wp-content/themes/britishgardencentres.com/public/scss/styles.scss"), __webpack_exec__("./wp-content/themes/britishgardencentres.com/public/scss/editor.scss")));
11586/******/ var __webpack_exports__ = __webpack_require__.O();
11587/******/ }
11588]);

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.