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.