1/** 2 * Swiper 11.0.7 3 * Most modern mobile touch slider and framework with hardware accelerated transitions 4 * https://swiperjs.com 5 * 6 * Copyright 2014-2024 Vladimir Kharlampidi 7 * 8 * Released under the MIT License 9 * 10 * Released on: February 27, 2024 11 */ 12 13var Swiper = (function () { 14 "use strict"; 15 function e(e) { 16 return ( 17 null !== e && 18 "object" == typeof e && 19 "constructor" in e && 20 e.constructor === Object 21 ); 22 } 23 function t(s, a) { 24 void 0 === s && (s = {}), 25 void 0 === a && (a = {}), 26 Object.keys(a).forEach((i) => { 27 void 0 === s[i] 28 ? (s[i] = a[i]) 29 : e(a[i]) && e(s[i]) && Object.keys(a[i]).length > 0 && t(s[i], a[i]); 30 }); 31 } 32 const s = { 33 body: {}, 34 addEventListener() {}, 35 removeEventListener() {}, 36 activeElement: { blur() {}, nodeName: "" }, 37 querySelector: () => null, 38 querySelectorAll: () => [], 39 getElementById: () => null, 40 createEvent: () => ({ initEvent() {} }), 41 createElement: () => ({ 42 children: [], 43 childNodes: [], 44 style: {}, 45 setAttribute() {}, 46 getElementsByTagName: () => [], 47 }), 48 createElementNS: () => ({}), 49 importNode: () => null, 50 location: { 51 hash: "", 52 host: "", 53 hostname: "", 54 href: "", 55 origin: "", 56 pathname: "", 57 protocol: "", 58 search: "", 59 }, 60 }; 61 function a() { 62 const e = "undefined" != typeof document ? document : {}; 63 return t(e, s), e; 64 } 65 const i = { 66 document: s, 67 navigator: { userAgent: "" }, 68 location: { 69 hash: "", 70 host: "", 71 hostname: "", 72 href: "", 73 origin: "", 74 pathname: "", 75 protocol: "", 76 search: "", 77 }, 78 history: { replaceState() {}, pushState() {}, go() {}, back() {} }, 79 CustomEvent: function () { 80 return this; 81 }, 82 addEventListener() {}, 83 removeEventListener() {}, 84 getComputedStyle: () => ({ getPropertyValue: () => "" }), 85 Image() {}, 86 Date() {}, 87 screen: {}, 88 setTimeout() {}, 89 clearTimeout() {}, 90 matchMedia: () => ({}), 91 requestAnimationFrame: (e) => 92 "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0), 93 cancelAnimationFrame(e) { 94 "undefined" != typeof setTimeout && clearTimeout(e); 95 }, 96 }; 97 function r() { 98 const e = "undefined" != typeof window ? window : {}; 99 return t(e, i), e; 100 } 101 function n(e) { 102 return ( 103 void 0 === e && (e = ""), 104 e 105 .trim() 106 .split(" ") 107 .filter((e) => !!e.trim()) 108 ); 109 } 110 function l(e, t) { 111 return void 0 === t && (t = 0), setTimeout(e, t); 112 } 113 function o() { 114 return Date.now(); 115 } 116 function d(e, t) { 117 void 0 === t && (t = "x"); 118 const s = r(); 119 let a, i, n; 120 const l = (function (e) { 121 const t = r(); 122 let s; 123 return ( 124 t.getComputedStyle && (s = t.getComputedStyle(e, null)), 125 !s && e.currentStyle && (s = e.currentStyle), 126 s || (s = e.style), 127 s 128 ); 129 })(e); 130 return ( 131 s.WebKitCSSMatrix 132 ? ((i = l.transform || l.webkitTransform), 133 i.split(",").length > 6 && 134 (i = i 135 .split(", ") 136 .map((e) => e.replace(",", ".")) 137 .join(", ")), 138 (n = new s.WebKitCSSMatrix("none" === i ? "" : i))) 139 : ((n = 140 l.MozTransform || 141 l.OTransform || 142 l.MsTransform || 143 l.msTransform || 144 l.transform || 145 l 146 .getPropertyValue("transform") 147 .replace("translate(", "matrix(1, 0, 0, 1,")), 148 (a = n.toString().split(","))), 149 "x" === t && 150 (i = s.WebKitCSSMatrix 151 ? n.m41 152 : 16 === a.length 153 ? parseFloat(a[12]) 154 : parseFloat(a[4])), 155 "y" === t && 156 (i = s.WebKitCSSMatrix 157 ? n.m42 158 : 16 === a.length 159 ? parseFloat(a[13]) 160 : parseFloat(a[5])), 161 i || 0 162 ); 163 } 164 function c(e) { 165 return ( 166 "object" == typeof e && 167 null !== e && 168 e.constructor && 169 "Object" === Object.prototype.toString.call(e).slice(8, -1) 170 ); 171 } 172 function p() { 173 const e = Object(arguments.length <= 0 ? void 0 : arguments[0]), 174 t = ["__proto__", "constructor", "prototype"]; 175 for (let a = 1; a < arguments.length; a += 1) { 176 const i = a < 0 || arguments.length <= a ? void 0 : arguments[a]; 177 if ( 178 null != i && 179 ((s = i), 180 !("undefined" != typeof window && void 0 !== window.HTMLElement 181 ? s instanceof HTMLElement 182 : s && (1 === s.nodeType || 11 === s.nodeType))) 183 ) { 184 const s = Object.keys(Object(i)).filter((e) => t.indexOf(e) < 0); 185 for (let t = 0, a = s.length; t < a; t += 1) { 186 const a = s[t], 187 r = Object.getOwnPropertyDescriptor(i, a); 188 void 0 !== r && 189 r.enumerable && 190 (c(e[a]) && c(i[a]) 191 ? i[a].__swiper__ 192 ? (e[a] = i[a]) 193 : p(e[a], i[a]) 194 : !c(e[a]) && c(i[a]) 195 ? ((e[a] = {}), i[a].__swiper__ ? (e[a] = i[a]) : p(e[a], i[a])) 196 : (e[a] = i[a])); 197 } 198 } 199 } 200 var s; 201 return e; 202 } 203 function u(e, t, s) { 204 e.style.setProperty(t, s); 205 } 206 function m(e) { 207 let { swiper: t, targetPosition: s, side: a } = e; 208 const i = r(), 209 n = -t.translate; 210 let l, 211 o = null; 212 const d = t.params.speed; 213 (t.wrapperEl.style.scrollSnapType = "none"), 214 i.cancelAnimationFrame(t.cssModeFrameID); 215 const c = s > n ? "next" : "prev", 216 p = (e, t) => ("next" === c && e >= t) || ("prev" === c && e <= t), 217 u = () => { 218 (l = new Date().getTime()), null === o && (o = l); 219 const e = Math.max(Math.min((l - o) / d, 1), 0), 220 r = 0.5 - Math.cos(e * Math.PI) / 2; 221 let c = n + r * (s - n); 222 if ((p(c, s) && (c = s), t.wrapperEl.scrollTo({ [a]: c }), p(c, s))) 223 return ( 224 (t.wrapperEl.style.overflow = "hidden"), 225 (t.wrapperEl.style.scrollSnapType = ""), 226 setTimeout(() => { 227 (t.wrapperEl.style.overflow = ""), 228 t.wrapperEl.scrollTo({ [a]: c }); 229 }), 230 void i.cancelAnimationFrame(t.cssModeFrameID) 231 ); 232 t.cssModeFrameID = i.requestAnimationFrame(u); 233 }; 234 u(); 235 } 236 function h(e) { 237 return ( 238 e.querySelector(".swiper-slide-transform") || 239 (e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform")) || 240 e 241 ); 242 } 243 function f(e, t) { 244 return ( 245 void 0 === t && (t = ""), [...e.children].filter((e) => e.matches(t)) 246 ); 247 } 248 function g(e) { 249 try { 250 return void console.warn(e); 251 } catch (e) {} 252 } 253 function v(e, t) { 254 void 0 === t && (t = []); 255 const s = document.createElement(e); 256 return s.classList.add(...(Array.isArray(t) ? t : n(t))), s; 257 } 258 function w(e) { 259 const t = r(), 260 s = a(), 261 i = e.getBoundingClientRect(), 262 n = s.body, 263 l = e.clientTop || n.clientTop || 0, 264 o = e.clientLeft || n.clientLeft || 0, 265 d = e === t ? t.scrollY : e.scrollTop, 266 c = e === t ? t.scrollX : e.scrollLeft; 267 return { top: i.top + d - l, left: i.left + c - o }; 268 } 269 function b(e, t) { 270 return r().getComputedStyle(e, null).getPropertyValue(t); 271 } 272 function y(e) { 273 let t, 274 s = e; 275 if (s) { 276 for (t = 0; null !== (s = s.previousSibling); ) 277 1 === s.nodeType && (t += 1); 278 return t; 279 } 280 } 281 function E(e, t) { 282 const s = []; 283 let a = e.parentElement; 284 for (; a; ) 285 t ? a.matches(t) && s.push(a) : s.push(a), (a = a.parentElement); 286 return s; 287 } 288 function x(e, t) { 289 t && 290 e.addEventListener("transitionend", function s(a) { 291 a.target === e && 292 (t.call(e, a), e.removeEventListener("transitionend", s)); 293 }); 294 } 295 function S(e, t, s) { 296 const a = r(); 297 return s 298 ? e["width" === t ? "offsetWidth" : "offsetHeight"] + 299 parseFloat( 300 a 301 .getComputedStyle(e, null) 302 .getPropertyValue("width" === t ? "margin-right" : "margin-top") 303 ) + 304 parseFloat( 305 a 306 .getComputedStyle(e, null) 307 .getPropertyValue("width" === t ? "margin-left" : "margin-bottom") 308 ) 309 : e.offsetWidth; 310 } 311 function T(e) { 312 return (Array.isArray(e) ? e : [e]).filter((e) => !!e); 313 } 314 let M, C, P; 315 function L() { 316 return ( 317 M || 318 (M = (function () { 319 const e = r(), 320 t = a(); 321 return { 322 smoothScroll: 323 t.documentElement && 324 t.documentElement.style && 325 "scrollBehavior" in t.documentElement.style, 326 touch: !!( 327 "ontouchstart" in e || 328 (e.DocumentTouch && t instanceof e.DocumentTouch) 329 ), 330 }; 331 })()), 332 M 333 ); 334 } 335 function I(e) { 336 return ( 337 void 0 === e && (e = {}), 338 C || 339 (C = (function (e) { 340 let { userAgent: t } = void 0 === e ? {} : e; 341 const s = L(), 342 a = r(), 343 i = a.navigator.platform, 344 n = t || a.navigator.userAgent, 345 l = { ios: !1, android: !1 }, 346 o = a.screen.width, 347 d = a.screen.height, 348 c = n.match(/(Android);?[\s\/]+([\d.]+)?/); 349 let p = n.match(/(iPad).*OS\s([\d_]+)/); 350 const u = n.match(/(iPod)(.*OS\s([\d_]+))?/), 351 m = !p && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/), 352 h = "Win32" === i; 353 let f = "MacIntel" === i; 354 return ( 355 !p && 356 f && 357 s.touch && 358 [ 359 "1024x1366", 360 "1366x1024", 361 "834x1194", 362 "1194x834", 363 "834x1112", 364 "1112x834", 365 "768x1024", 366 "1024x768", 367 "820x1180", 368 "1180x820", 369 "810x1080", 370 "1080x810", 371 ].indexOf(`${o}x${d}`) >= 0 && 372 ((p = n.match(/(Version)\/([\d.]+)/)), 373 p || (p = [0, 1, "13_0_0"]), 374 (f = !1)), 375 c && !h && ((l.os = "android"), (l.android = !0)), 376 (p || m || u) && ((l.os = "ios"), (l.ios = !0)), 377 l 378 ); 379 })(e)), 380 C 381 ); 382 } 383 function z() { 384 return ( 385 P || 386 (P = (function () { 387 const e = r(), 388 t = I(); 389 let s = !1; 390 function a() { 391 const t = e.navigator.userAgent.toLowerCase(); 392 return ( 393 t.indexOf("safari") >= 0 && 394 t.indexOf("chrome") < 0 && 395 t.indexOf("android") < 0 396 ); 397 } 398 if (a()) { 399 const t = String(e.navigator.userAgent); 400 if (t.includes("Version/")) { 401 const [e, a] = t 402 .split("Version/")[1] 403 .split(" ")[0] 404 .split(".") 405 .map((e) => Number(e)); 406 s = e < 16 || (16 === e && a < 2); 407 } 408 }
409 const i = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( 410 e.navigator.userAgent 411 ), 412 n = a(); 413 return { 414 isSafari: s || n, 415 needPerspectiveFix: s, 416 need3dFix: n || (i && t.ios), 417 isWebView: i, 418 }; 419 })()), 420 P 421 ); 422 } 423 var A = { 424 on(e, t, s) { 425 const a = this; 426 if (!a.eventsListeners || a.destroyed) return a; 427 if ("function" != typeof t) return a; 428 const i = s ? "unshift" : "push"; 429 return ( 430 e.split(" ").forEach((e) => { 431 a.eventsListeners[e] || (a.eventsListeners[e] = []), 432 a.eventsListeners[e][i](t); 433 }), 434 a 435 ); 436 }, 437 once(e, t, s) { 438 const a = this; 439 if (!a.eventsListeners || a.destroyed) return a; 440 if ("function" != typeof t) return a; 441 function i() { 442 a.off(e, i), i.__emitterProxy && delete i.__emitterProxy; 443 for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++) 444 r[n] = arguments[n]; 445 t.apply(a, r); 446 } 447 return (i.__emitterProxy = t), a.on(e, i, s); 448 }, 449 onAny(e, t) { 450 const s = this; 451 if (!s.eventsListeners || s.destroyed) return s; 452 if ("function" != typeof e) return s; 453 const a = t ? "unshift" : "push"; 454 return ( 455 s.eventsAnyListeners.indexOf(e) < 0 && s.eventsAnyListeners[a](e), s 456 ); 457 }, 458 offAny(e) { 459 const t = this; 460 if (!t.eventsListeners || t.destroyed) return t; 461 if (!t.eventsAnyListeners) return t; 462 const s = t.eventsAnyListeners.indexOf(e); 463 return s >= 0 && t.eventsAnyListeners.splice(s, 1), t; 464 }, 465 off(e, t) { 466 const s = this; 467 return !s.eventsListeners || s.destroyed 468 ? s 469 : s.eventsListeners 470 ? (e.split(" ").forEach((e) => { 471 void 0 === t 472 ? (s.eventsListeners[e] = []) 473 : s.eventsListeners[e] && 474 s.eventsListeners[e].forEach((a, i) => { 475 (a === t || (a.__emitterProxy && a.__emitterProxy === t)) && 476 s.eventsListeners[e].splice(i, 1); 477 }); 478 }), 479 s) 480 : s; 481 }, 482 emit() { 483 const e = this; 484 if (!e.eventsListeners || e.destroyed) return e; 485 if (!e.eventsListeners) return e; 486 let t, s, a; 487 for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++) 488 r[n] = arguments[n]; 489 "string" == typeof r[0] || Array.isArray(r[0]) 490 ? ((t = r[0]), (s = r.slice(1, r.length)), (a = e)) 491 : ((t = r[0].events), (s = r[0].data), (a = r[0].context || e)), 492 s.unshift(a); 493 return ( 494 (Array.isArray(t) ? t : t.split(" ")).forEach((t) => { 495 e.eventsAnyListeners && 496 e.eventsAnyListeners.length && 497 e.eventsAnyListeners.forEach((e) => { 498 e.apply(a, [t, ...s]); 499 }), 500 e.eventsListeners && 501 e.eventsListeners[t] && 502 e.eventsListeners[t].forEach((e) => { 503 e.apply(a, s); 504 }); 505 }), 506 e 507 ); 508 }, 509 }; 510 const $ = (e, t) => { 511 if (!e || e.destroyed || !e.params) return; 512 const s = t.closest( 513 e.isElement ? "swiper-slide" : `.${e.params.slideClass}` 514 ); 515 if (s) { 516 let t = s.querySelector(`.${e.params.lazyPreloaderClass}`); 517 !t && 518 e.isElement && 519 (s.shadowRoot 520 ? (t = s.shadowRoot.querySelector( 521 `.${e.params.lazyPreloaderClass}` 522 )) 523 : requestAnimationFrame(() => { 524 s.shadowRoot && 525 ((t = s.shadowRoot.querySelector( 526 `.${e.params.lazyPreloaderClass}` 527 )), 528 t && t.remove()); 529 })), 530 t && t.remove(); 531 } 532 }, 533 k = (e, t) => { 534 if (!e.slides[t]) return; 535 const s = e.slides[t].querySelector('[loading="lazy"]'); 536 s && s.removeAttribute("loading"); 537 }, 538 O = (e) => { 539 if (!e || e.destroyed || !e.params) return; 540 let t = e.params.lazyPreloadPrevNext; 541 const s = e.slides.length; 542 if (!s || !t || t < 0) return; 543 t = Math.min(t, s); 544 const a = 545 "auto" === e.params.slidesPerView 546 ? e.slidesPerViewDynamic()
547 : Math.ceil(e.params.slidesPerView), 548 i = e.activeIndex; 549 if (e.params.grid && e.params.grid.rows > 1) { 550 const s = i, 551 r = [s - t]; 552 return ( 553 r.push(...Array.from({ length: t }).map((e, t) => s + a + t)), 554 void e.slides.forEach((t, s) => { 555 r.includes(t.column) && k(e, s); 556 }) 557 ); 558 } 559 const r = i + a - 1; 560 if (e.params.rewind || e.params.loop) 561 for (let a = i - t; a <= r + t; a += 1) { 562 const t = ((a % s) + s) % s; 563 (t < i || t > r) && k(e, t); 564 } 565 else 566 for (let a = Math.max(i - t, 0); a <= Math.min(r + t, s - 1); a += 1) 567 a !== i && (a > r || a < i) && k(e, a); 568 }; 569 var D = { 570 updateSize: function () { 571 const e = this; 572 let t, s; 573 const a = e.el; 574 (t = 575 void 0 !== e.params.width && null !== e.params.width 576 ? e.params.width 577 : a.clientWidth), 578 (s = 579 void 0 !== e.params.height && null !== e.params.height 580 ? e.params.height 581 : a.clientHeight), 582 (0 === t && e.isHorizontal()) || 583 (0 === s && e.isVertical()) || 584 ((t = 585 t - 586 parseInt(b(a, "padding-left") || 0, 10) - 587 parseInt(b(a, "padding-right") || 0, 10)), 588 (s = 589 s - 590 parseInt(b(a, "padding-top") || 0, 10) - 591 parseInt(b(a, "padding-bottom") || 0, 10)), 592 Number.isNaN(t) && (t = 0), 593 Number.isNaN(s) && (s = 0), 594 Object.assign(e, { 595 width: t, 596 height: s, 597 size: e.isHorizontal() ? t : s, 598 })); 599 }, 600 updateSlides: function () { 601 const e = this; 602 function t(t, s) { 603 return parseFloat(t.getPropertyValue(e.getDirectionLabel(s)) || 0); 604 } 605 const s = e.params, 606 { 607 wrapperEl: a, 608 slidesEl: i, 609 size: r, 610 rtlTranslate: n, 611 wrongRTL: l, 612 } = e, 613 o = e.virtual && s.virtual.enabled, 614 d = o ? e.virtual.slides.length : e.slides.length, 615 c = f(i, `.${e.params.slideClass}, swiper-slide`), 616 p = o ? e.virtual.slides.length : c.length; 617 let m = []; 618 const h = [], 619 g = []; 620 let v = s.slidesOffsetBefore; 621 "function" == typeof v && (v = s.slidesOffsetBefore.call(e)); 622 let w = s.slidesOffsetAfter; 623 "function" == typeof w && (w = s.slidesOffsetAfter.call(e)); 624 const y = e.snapGrid.length, 625 E = e.slidesGrid.length; 626 let x = s.spaceBetween, 627 T = -v, 628 M = 0, 629 C = 0; 630 if (void 0 === r) return; 631 "string" == typeof x && x.indexOf("%") >= 0 632 ? (x = (parseFloat(x.replace("%", "")) / 100) * r) 633 : "string" == typeof x && (x = parseFloat(x)), 634 (e.virtualSize = -x), 635 c.forEach((e) => { 636 n ? (e.style.marginLeft = "") : (e.style.marginRight = ""), 637 (e.style.marginBottom = ""), 638 (e.style.marginTop = ""); 639 }), 640 s.centeredSlides && 641 s.cssMode && 642 (u(a, "--swiper-centered-offset-before", ""), 643 u(a, "--swiper-centered-offset-after", "")); 644 const P = s.grid && s.grid.rows > 1 && e.grid; 645 let L; 646 P ? e.grid.initSlides(c) : e.grid && e.grid.unsetSlides(); 647 const I = 648 "auto" === s.slidesPerView && 649 s.breakpoints && 650 Object.keys(s.breakpoints).filter( 651 (e) => void 0 !== s.breakpoints[e].slidesPerView 652 ).length > 0; 653 for (let a = 0; a < p; a += 1) { 654 let i; 655 if ( 656 ((L = 0), 657 c[a] && (i = c[a]), 658 P && e.grid.updateSlide(a, i, c), 659 !c[a] || "none" !== b(i, "display")) 660 ) { 661 if ("auto" === s.slidesPerView) { 662 I && (c[a].style[e.getDirectionLabel("width")] = ""); 663 const r = getComputedStyle(i), 664 n = i.style.transform, 665 l = i.style.webkitTransform; 666 if ( 667 (n && (i.style.transform = "none"), 668 l && (i.style.webkitTransform = "none"), 669 s.roundLengths) 670 ) 671 L = e.isHorizontal() ? S(i, "width", !0) : S(i, "height", !0); 672 else { 673 const e = t(r, "width"), 674 s = t(r, "padding-left"), 675 a = t(r, "padding-right"), 676 n = t(r, "margin-left"), 677 l = t(r, "margin-right"), 678 o = r.getPropertyValue("box-sizing"); 679 if (o && "border-box" === o) L = e + n + l; 680 else { 681 const { clientWidth: t, offsetWidth: r } = i; 682 L = e + s + a + n + l + (r - t); 683 } 684 } 685 n && (i.style.transform = n), 686 l && (i.style.webkitTransform = l), 687 s.roundLengths && (L = Math.floor(L)); 688 } else 689 (L = (r - (s.slidesPerView - 1) * x) / s.slidesPerView), 690 s.roundLengths && (L = Math.floor(L)), 691 c[a] && (c[a].style[e.getDirectionLabel("width")] = `${L}px`); 692 c[a] && (c[a].swiperSlideSize = L), 693 g.push(L), 694 s.centeredSlides 695 ? ((T = T + L / 2 + M / 2 + x), 696 0 === M && 0 !== a && (T = T - r / 2 - x), 697 0 === a && (T = T - r / 2 - x), 698 Math.abs(T) < 0.001 && (T = 0), 699 s.roundLengths && (T = Math.floor(T)), 700 C % s.slidesPerGroup == 0 && m.push(T), 701 h.push(T)) 702 : (s.roundLengths && (T = Math.floor(T)), 703 (C - Math.min(e.params.slidesPerGroupSkip, C)) % 704 e.params.slidesPerGroup == 705 0 && m.push(T), 706 h.push(T), 707 (T = T + L + x)), 708 (e.virtualSize += L + x), 709 (M = L), 710 (C += 1); 711 } 712 } 713 if ( 714 ((e.virtualSize = Math.max(e.virtualSize, r) + w), 715 n && 716 l && 717 ("slide" === s.effect || "coverflow" === s.effect) && 718 (a.style.width = `${e.virtualSize + x}px`), 719 s.setWrapperSize && 720 (a.style[e.getDirectionLabel("width")] = `${e.virtualSize + x}px`), 721 P && e.grid.updateWrapperSize(L, m), 722 !s.centeredSlides) 723 ) { 724 const t = []; 725 for (let a = 0; a < m.length; a += 1) { 726 let i = m[a]; 727 s.roundLengths && (i = Math.floor(i)), 728 m[a] <= e.virtualSize - r && t.push(i); 729 } 730 (m = t), 731 Math.floor(e.virtualSize - r) - Math.floor(m[m.length - 1]) > 1 && 732 m.push(e.virtualSize - r); 733 } 734 if (o && s.loop) { 735 const t = g[0] + x; 736 if (s.slidesPerGroup > 1) { 737 const a = Math.ceil( 738 (e.virtual.slidesBefore + e.virtual.slidesAfter) / 739 s.slidesPerGroup 740 ), 741 i = t * s.slidesPerGroup; 742 for (let e = 0; e < a; e += 1) m.push(m[m.length - 1] + i); 743 } 744 for ( 745 let a = 0; 746 a < e.virtual.slidesBefore + e.virtual.slidesAfter; 747 a += 1 748 ) 749 1 === s.slidesPerGroup && m.push(m[m.length - 1] + t), 750 h.push(h[h.length - 1] + t), 751 (e.virtualSize += t); 752 } 753 if ((0 === m.length && (m = [0]), 0 !== x)) { 754 const t = 755 e.isHorizontal() && n 756 ? "marginLeft" 757 : e.getDirectionLabel("marginRight"); 758 c.filter( 759 (e, t) => !(s.cssMode && !s.loop) || t !== c.length - 1 760 ).forEach((e) => { 761 e.style[t] = `${x}px`; 762 }); 763 }
764 if (s.centeredSlides && s.centeredSlidesBounds) { 765 let e = 0; 766 g.forEach((t) => { 767 e += t + (x || 0); 768 }), 769 (e -= x); 770 const t = e - r; 771 m = m.map((e) => (e <= 0 ? -v : e > t ? t + w : e)); 772 } 773 if (s.centerInsufficientSlides) { 774 let e = 0; 775 if ( 776 (g.forEach((t) => { 777 e += t + (x || 0); 778 }), 779 (e -= x), 780 e < r) 781 ) { 782 const t = (r - e) / 2; 783 m.forEach((e, s) => { 784 m[s] = e - t; 785 }), 786 h.forEach((e, s) => { 787 h[s] = e + t; 788 }); 789 } 790 } 791 if ( 792 (Object.assign(e, { 793 slides: c, 794 snapGrid: m, 795 slidesGrid: h, 796 slidesSizesGrid: g, 797 }), 798 s.centeredSlides && s.cssMode && !s.centeredSlidesBounds) 799 ) { 800 u(a, "--swiper-centered-offset-before", -m[0] + "px"), 801 u( 802 a, 803 "--swiper-centered-offset-after", 804 e.size / 2 - g[g.length - 1] / 2 + "px" 805 ); 806 const t = -e.snapGrid[0], 807 s = -e.slidesGrid[0]; 808 (e.snapGrid = e.snapGrid.map((e) => e + t)), 809 (e.slidesGrid = e.slidesGrid.map((e) => e + s)); 810 } 811 if ( 812 (p !== d && e.emit("slidesLengthChange"), 813 m.length !== y && 814 (e.params.watchOverflow && e.checkOverflow(), 815 e.emit("snapGridLengthChange")), 816 h.length !== E && e.emit("slidesGridLengthChange"), 817 s.watchSlidesProgress && e.updateSlidesOffset(), 818 e.emit("slidesUpdated"), 819 !(o || s.cssMode || ("slide" !== s.effect && "fade" !== s.effect))) 820 ) { 821 const t = `${s.containerModifierClass}backface-hidden`, 822 a = e.el.classList.contains(t); 823 p <= s.maxBackfaceHiddenSlides 824 ? a || e.el.classList.add(t) 825 : a && e.el.classList.remove(t); 826 } 827 }, 828 updateAutoHeight: function (e) { 829 const t = this, 830 s = [], 831 a = t.virtual && t.params.virtual.enabled; 832 let i, 833 r = 0; 834 "number" == typeof e 835 ? t.setTransition(e) 836 : !0 === e && t.setTransition(t.params.speed); 837 const n = (e) => (a ? t.slides[t.getSlideIndexByData(e)] : t.slides[e]); 838 if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1) 839 if (t.params.centeredSlides) 840 (t.visibleSlides || []).forEach((e) => { 841 s.push(e); 842 }); 843 else 844 for (i = 0; i < Math.ceil(t.params.slidesPerView); i += 1) { 845 const e = t.activeIndex + i; 846 if (e > t.slides.length && !a) break; 847 s.push(n(e)); 848 } 849 else s.push(n(t.activeIndex)); 850 for (i = 0; i < s.length; i += 1) 851 if (void 0 !== s[i]) { 852 const e = s[i].offsetHeight; 853 r = e > r ? e : r; 854 } 855 (r || 0 === r) && (t.wrapperEl.style.height = `${r}px`); 856 }, 857 updateSlidesOffset: function () { 858 const e = this, 859 t = e.slides, 860 s = e.isElement 861 ? e.isHorizontal() 862 ? e.wrapperEl.offsetLeft 863 : e.wrapperEl.offsetTop 864 : 0; 865 for (let a = 0; a < t.length; a += 1) 866 t[a].swiperSlideOffset = 867 (e.isHorizontal() ? t[a].offsetLeft : t[a].offsetTop) - 868 s - 869 e.cssOverflowAdjustment(); 870 }, 871 updateSlidesProgress: function (e) { 872 void 0 === e && (e = (this && this.translate) || 0); 873 const t = this, 874 s = t.params, 875 { slides: a, rtlTranslate: i, snapGrid: r } = t; 876 if (0 === a.length) return; 877 void 0 === a[0].swiperSlideOffset && t.updateSlidesOffset(); 878 let n = -e; 879 i && (n = e), 880 a.forEach((e) => { 881 e.classList.remove(s.slideVisibleClass, s.slideFullyVisibleClass); 882 }), 883 (t.visibleSlidesIndexes = []), 884 (t.visibleSlides = []); 885 let l = s.spaceBetween; 886 "string" == typeof l && l.indexOf("%") >= 0 887 ? (l = (parseFloat(l.replace("%", "")) / 100) * t.size) 888 : "string" == typeof l && (l = parseFloat(l)); 889 for (let e = 0; e < a.length; e += 1) { 890 const o = a[e]; 891 let d = o.swiperSlideOffset; 892 s.cssMode && s.centeredSlides && (d -= a[0].swiperSlideOffset); 893 const c = 894 (n + (s.centeredSlides ? t.minTranslate() : 0) - d) / 895 (o.swiperSlideSize + l), 896 p = 897 (n - r[0] + (s.centeredSlides ? t.minTranslate() : 0) - d) / 898 (o.swiperSlideSize + l), 899 u = -(n - d), 900 m = u + t.slidesSizesGrid[e], 901 h = u >= 0 && u <= t.size - t.slidesSizesGrid[e]; 902 ((u >= 0 && u < t.size - 1) || 903 (m > 1 && m <= t.size) || 904 (u <= 0 && m >= t.size)) && 905 (t.visibleSlides.push(o), 906 t.visibleSlidesIndexes.push(e), 907 a[e].classList.add(s.slideVisibleClass)), 908 h && a[e].classList.add(s.slideFullyVisibleClass), 909 (o.progress = i ? -c : c), 910 (o.originalProgress = i ? -p : p); 911 } 912 }, 913 updateProgress: function (e) { 914 const t = this; 915 if (void 0 === e) { 916 const s = t.rtlTranslate ? -1 : 1; 917 e = (t && t.translate && t.translate * s) || 0; 918 } 919 const s = t.params, 920 a = t.maxTranslate() - t.minTranslate(); 921 let { progress: i, isBeginning: r, isEnd: n, progressLoop: l } = t; 922 const o = r, 923 d = n; 924 if (0 === a) (i = 0), (r = !0), (n = !0); 925 else { 926 i = (e - t.minTranslate()) / a; 927 const s = Math.abs(e - t.minTranslate()) < 1, 928 l = Math.abs(e - t.maxTranslate()) < 1; 929 (r = s || i <= 0), (n = l || i >= 1), s && (i = 0), l && (i = 1); 930 } 931 if (s.loop) { 932 const s = t.getSlideIndexByData(0), 933 a = t.getSlideIndexByData(t.slides.length - 1), 934 i = t.slidesGrid[s], 935 r = t.slidesGrid[a], 936 n = t.slidesGrid[t.slidesGrid.length - 1], 937 o = Math.abs(e); 938 (l = o >= i ? (o - i) / n : (o + n - r) / n), l > 1 && (l -= 1); 939 } 940 Object.assign(t, { 941 progress: i, 942 progressLoop: l, 943 isBeginning: r, 944 isEnd: n, 945 }), 946 (s.watchSlidesProgress || (s.centeredSlides && s.autoHeight)) && 947 t.updateSlidesProgress(e), 948 r && !o && t.emit("reachBeginning toEdge"), 949 n && !d && t.emit("reachEnd toEdge"), 950 ((o && !r) || (d && !n)) && t.emit("fromEdge"), 951 t.emit("progress", i); 952 }, 953 updateSlidesClasses: function () { 954 const e = this, 955 { slides: t, params: s, slidesEl: a, activeIndex: i } = e, 956 r = e.virtual && s.virtual.enabled, 957 n = e.grid && s.grid && s.grid.rows > 1, 958 l = (e) => f(a, `.${s.slideClass}${e}, swiper-slide${e}`)[0]; 959 let o, d, c; 960 if ( 961 (t.forEach((e) => { 962 e.classList.remove( 963 s.slideActiveClass, 964 s.slideNextClass, 965 s.slidePrevClass 966 ); 967 }), 968 r) 969 ) 970 if (s.loop) { 971 let t = i - e.virtual.slidesBefore; 972 t < 0 && (t = e.virtual.slides.length + t), 973 t >= e.virtual.slides.length && (t -= e.virtual.slides.length), 974 (o = l(`[data-swiper-slide-index="${t}"]`)); 975 } else o = l(`[data-swiper-slide-index="${i}"]`); 976 else 977 n 978 ? ((o = t.filter((e) => e.column === i)[0]), 979 (c = t.filter((e) => e.column === i + 1)[0]), 980 (d = t.filter((e) => e.column === i - 1)[0])) 981 : (o = t[i]); 982 o && 983 (o.classList.add(s.slideActiveClass), 984 n 985 ? (c && c.classList.add(s.slideNextClass), 986 d && d.classList.add(s.slidePrevClass)) 987 : ((c = (function (e, t) { 988 const s = []; 989 for (; e.nextElementSibling; ) { 990 const a = e.nextElementSibling; 991 t ? a.matches(t) && s.push(a) : s.push(a), (e = a); 992 } 993 return s; 994 })(o, `.${s.slideClass}, swiper-slide`)[0]), 995 s.loop && !c && (c = t[0]), 996 c && c.classList.add(s.slideNextClass), 997 (d = (function (e, t) { 998 const s = []; 999 for (; e.previousElementSibling; ) { 1000 const a = e.previousElementSibling; 1001 t ? a.matches(t) && s.push(a) : s.push(a), (e = a); 1002 } 1003 return s; 1004 })(o, `.${s.slideClass}, swiper-slide`)[0]), 1005 s.loop && 0 === !d && (d = t[t.length - 1]), 1006 d && d.classList.add(s.slidePrevClass))), 1007 e.emitSlidesClasses(); 1008 }, 1009 updateActiveIndex: function (e) { 1010 const t = this, 1011 s = t.rtlTranslate ? t.translate : -t.translate, 1012 { 1013 snapGrid: a, 1014 params: i, 1015 activeIndex: r, 1016 realIndex: n, 1017 snapIndex: l, 1018 } = t; 1019 let o, 1020 d = e; 1021 const c = (e) => { 1022 let s = e - t.virtual.slidesBefore; 1023 return ( 1024 s < 0 && (s = t.virtual.slides.length + s), 1025 s >= t.virtual.slides.length && (s -= t.virtual.slides.length), 1026 s 1027 ); 1028 }; 1029 if ( 1030 (void 0 === d && 1031 (d = (function (e) { 1032 const { slidesGrid: t, params: s } = e, 1033 a = e.rtlTranslate ? e.translate : -e.translate; 1034 let i; 1035 for (let e = 0; e < t.length; e += 1) 1036 void 0 !== t[e + 1] 1037 ? a >= t[e] && a < t[e + 1] - (t[e + 1] - t[e]) / 2 1038 ? (i = e) 1039 : a >= t[e] && a < t[e + 1] && (i = e + 1) 1040 : a >= t[e] && (i = e); 1041 return ( 1042 s.normalizeSlideIndex && (i < 0 || void 0 === i) && (i = 0), i 1043 ); 1044 })(t)), 1045 a.indexOf(s) >= 0) 1046 ) 1047 o = a.indexOf(s); 1048 else { 1049 const e = Math.min(i.slidesPerGroupSkip, d); 1050 o = e + Math.floor((d - e) / i.slidesPerGroup); 1051 } 1052 if ((o >= a.length && (o = a.length - 1), d === r && !t.params.loop)) 1053 return void (o !== l && ((t.snapIndex = o), t.emit("snapIndexChange"))); 1054 if (d === r && t.params.loop && t.virtual && t.params.virtual.enabled) 1055 return void (t.realIndex = c(d)); 1056 const p = t.grid && i.grid && i.grid.rows > 1; 1057 let u; 1058 if (t.virtual && i.virtual.enabled && i.loop) u = c(d); 1059 else if (p) { 1060 const e = t.slides.filter((e) => e.column === d)[0]; 1061 let s = parseInt(e.getAttribute("data-swiper-slide-index"), 10); 1062 Number.isNaN(s) && (s = Math.max(t.slides.indexOf(e), 0)), 1063 (u = Math.floor(s / i.grid.rows)); 1064 } else if (t.slides[d]) { 1065 const e = t.slides[d].getAttribute("data-swiper-slide-index"); 1066 u = e ? parseInt(e, 10) : d; 1067 } else u = d; 1068 Object.assign(t, { 1069 previousSnapIndex: l, 1070 snapIndex: o, 1071 previousRealIndex: n, 1072 realIndex: u, 1073 previousIndex: r, 1074 activeIndex: d, 1075 }), 1076 t.initialized && O(t), 1077 t.emit("activeIndexChange"), 1078 t.emit("snapIndexChange"), 1079 (t.initialized || t.params.runCallbacksOnInit) && 1080 (n !== u && t.emit("realIndexChange"), t.emit("slideChange")); 1081 }, 1082 updateClickedSlide: function (e, t) { 1083 const s = this, 1084 a = s.params; 1085 let i = e.closest(`.${a.slideClass}, swiper-slide`); 1086 !i && 1087 s.isElement && 1088 t && 1089 t.length > 1 && 1090 t.includes(e) &&
1091 [...t.slice(t.indexOf(e) + 1, t.length)].forEach((e) => { 1092 !i && 1093 e.matches && 1094 e.matches(`.${a.slideClass}, swiper-slide`) && 1095 (i = e); 1096 }); 1097 let r, 1098 n = !1; 1099 if (i) 1100 for (let e = 0; e < s.slides.length; e += 1) 1101 if (s.slides[e] === i) { 1102 (n = !0), (r = e); 1103 break; 1104 } 1105 if (!i || !n) 1106 return (s.clickedSlide = void 0), void (s.clickedIndex = void 0); 1107 (s.clickedSlide = i), 1108 s.virtual && s.params.virtual.enabled 1109 ? (s.clickedIndex = parseInt( 1110 i.getAttribute("data-swiper-slide-index"), 1111 10 1112 )) 1113 : (s.clickedIndex = r), 1114 a.slideToClickedSlide && 1115 void 0 !== s.clickedIndex && 1116 s.clickedIndex !== s.activeIndex && 1117 s.slideToClickedSlide(); 1118 }, 1119 }; 1120 var G = { 1121 getTranslate: function (e) { 1122 void 0 === e && (e = this.isHorizontal() ? "x" : "y"); 1123 const { params: t, rtlTranslate: s, translate: a, wrapperEl: i } = this; 1124 if (t.virtualTranslate) return s ? -a : a; 1125 if (t.cssMode) return a; 1126 let r = d(i, e); 1127 return (r += this.cssOverflowAdjustment()), s && (r = -r), r || 0; 1128 }, 1129 setTranslate: function (e, t) { 1130 const s = this, 1131 { rtlTranslate: a, params: i, wrapperEl: r, progress: n } = s; 1132 let l, 1133 o = 0, 1134 d = 0; 1135 s.isHorizontal() ? (o = a ? -e : e) : (d = e), 1136 i.roundLengths && ((o = Math.floor(o)), (d = Math.floor(d))), 1137 (s.previousTranslate = s.translate), 1138 (s.translate = s.isHorizontal() ? o : d), 1139 i.cssMode 1140 ? (r[s.isHorizontal() ? "scrollLeft" : "scrollTop"] = s.isHorizontal() 1141 ? -o 1142 : -d) 1143 : i.virtualTranslate || 1144 (s.isHorizontal() 1145 ? (o -= s.cssOverflowAdjustment()) 1146 : (d -= s.cssOverflowAdjustment()), 1147 (r.style.transform = `translate3d(${o}px, ${d}px, 0px)`)); 1148 const c = s.maxTranslate() - s.minTranslate(); 1149 (l = 0 === c ? 0 : (e - s.minTranslate()) / c), 1150 l !== n && s.updateProgress(e), 1151 s.emit("setTranslate", s.translate, t); 1152 }, 1153 minTranslate: function () { 1154 return -this.snapGrid[0]; 1155 }, 1156 maxTranslate: function () { 1157 return -this.snapGrid[this.snapGrid.length - 1]; 1158 }, 1159 translateTo: function (e, t, s, a, i) { 1160 void 0 === e && (e = 0), 1161 void 0 === t && (t = this.params.speed), 1162 void 0 === s && (s = !0), 1163 void 0 === a && (a = !0); 1164 const r = this, 1165 { params: n, wrapperEl: l } = r; 1166 if (r.animating && n.preventInteractionOnTransition) return !1; 1167 const o = r.minTranslate(), 1168 d = r.maxTranslate(); 1169 let c; 1170 if ( 1171 ((c = a && e > o ? o : a && e < d ? d : e), 1172 r.updateProgress(c), 1173 n.cssMode) 1174 ) { 1175 const e = r.isHorizontal(); 1176 if (0 === t) l[e ? "scrollLeft" : "scrollTop"] = -c; 1177 else { 1178 if (!r.support.smoothScroll) 1179 return ( 1180 m({ swiper: r, targetPosition: -c, side: e ? "left" : "top" }), !0 1181 ); 1182 l.scrollTo({ [e ? "left" : "top"]: -c, behavior: "smooth" }); 1183 } 1184 return !0; 1185 } 1186 return ( 1187 0 === t 1188 ? (r.setTransition(0), 1189 r.setTranslate(c), 1190 s && 1191 (r.emit("beforeTransitionStart", t, i), r.emit("transitionEnd"))) 1192 : (r.setTransition(t), 1193 r.setTranslate(c), 1194 s && 1195 (r.emit("beforeTransitionStart", t, i), 1196 r.emit("transitionStart")), 1197 r.animating || 1198 ((r.animating = !0), 1199 r.onTranslateToWrapperTransitionEnd || 1200 (r.onTranslateToWrapperTransitionEnd = function (e) { 1201 r && 1202 !r.destroyed && 1203 e.target === this && 1204 (r.wrapperEl.removeEventListener( 1205 "transitionend", 1206 r.onTranslateToWrapperTransitionEnd 1207 ), 1208 (r.onTranslateToWrapperTransitionEnd = null),
1209 delete r.onTranslateToWrapperTransitionEnd, 1210 s && r.emit("transitionEnd")); 1211 }), 1212 r.wrapperEl.addEventListener( 1213 "transitionend", 1214 r.onTranslateToWrapperTransitionEnd 1215 ))), 1216 !0 1217 ); 1218 }, 1219 }; 1220 function N(e) { 1221 let { swiper: t, runCallbacks: s, direction: a, step: i } = e; 1222 const { activeIndex: r, previousIndex: n } = t; 1223 let l = a; 1224 if ( 1225 (l || (l = r > n ? "next" : r < n ? "prev" : "reset"), 1226 t.emit(`transition${i}`), 1227 s && r !== n) 1228 ) { 1229 if ("reset" === l) return void t.emit(`slideResetTransition${i}`); 1230 t.emit(`slideChangeTransition${i}`), 1231 "next" === l 1232 ? t.emit(`slideNextTransition${i}`) 1233 : t.emit(`slidePrevTransition${i}`); 1234 } 1235 } 1236 var H = { 1237 slideTo: function (e, t, s, a, i) { 1238 void 0 === e && (e = 0), 1239 void 0 === t && (t = this.params.speed), 1240 void 0 === s && (s = !0), 1241 "string" == typeof e && (e = parseInt(e, 10)); 1242 const r = this; 1243 let n = e; 1244 n < 0 && (n = 0); 1245 const { 1246 params: l, 1247 snapGrid: o, 1248 slidesGrid: d, 1249 previousIndex: c, 1250 activeIndex: p, 1251 rtlTranslate: u, 1252 wrapperEl: h, 1253 enabled: f, 1254 } = r; 1255 if ( 1256 (r.animating && l.preventInteractionOnTransition) || 1257 (!f && !a && !i) || 1258 r.destroyed 1259 ) 1260 return !1; 1261 const g = Math.min(r.params.slidesPerGroupSkip, n); 1262 let v = g + Math.floor((n - g) / r.params.slidesPerGroup); 1263 v >= o.length && (v = o.length - 1); 1264 const w = -o[v]; 1265 if (l.normalizeSlideIndex) 1266 for (let e = 0; e < d.length; e += 1) { 1267 const t = -Math.floor(100 * w), 1268 s = Math.floor(100 * d[e]), 1269 a = Math.floor(100 * d[e + 1]); 1270 void 0 !== d[e + 1] 1271 ? t >= s && t < a - (a - s) / 2 1272 ? (n = e) 1273 : t >= s && t < a && (n = e + 1) 1274 : t >= s && (n = e); 1275 } 1276 if (r.initialized && n !== p) { 1277 if ( 1278 !r.allowSlideNext && 1279 (u 1280 ? w > r.translate && w > r.minTranslate() 1281 : w < r.translate && w < r.minTranslate()) 1282 ) 1283 return !1; 1284 if ( 1285 !r.allowSlidePrev && 1286 w > r.translate && 1287 w > r.maxTranslate() && 1288 (p || 0) !== n 1289 ) 1290 return !1; 1291 } 1292 let b; 1293 if ( 1294 (n !== (c || 0) && s && r.emit("beforeSlideChangeStart"), 1295 r.updateProgress(w), 1296 (b = n > p ? "next" : n < p ? "prev" : "reset"), 1297 (u && -w === r.translate) || (!u && w === r.translate)) 1298 ) 1299 return ( 1300 r.updateActiveIndex(n), 1301 l.autoHeight && r.updateAutoHeight(), 1302 r.updateSlidesClasses(), 1303 "slide" !== l.effect && r.setTranslate(w), 1304 "reset" !== b && (r.transitionStart(s, b), r.transitionEnd(s, b)), 1305 !1 1306 ); 1307 if (l.cssMode) { 1308 const e = r.isHorizontal(), 1309 s = u ? w : -w; 1310 if (0 === t) { 1311 const t = r.virtual && r.params.virtual.enabled; 1312 t && 1313 ((r.wrapperEl.style.scrollSnapType = "none"), 1314 (r._immediateVirtual = !0)), 1315 t && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0 1316 ? ((r._cssModeVirtualInitialSet = !0), 1317 requestAnimationFrame(() => { 1318 h[e ? "scrollLeft" : "scrollTop"] = s; 1319 })) 1320 : (h[e ? "scrollLeft" : "scrollTop"] = s), 1321 t && 1322 requestAnimationFrame(() => { 1323 (r.wrapperEl.style.scrollSnapType = ""), 1324 (r._immediateVirtual = !1); 1325 }); 1326 } else { 1327 if (!r.support.smoothScroll) 1328 return ( 1329 m({ swiper: r, targetPosition: s, side: e ? "left" : "top" }), !0 1330 ); 1331 h.scrollTo({ [e ? "left" : "top"]: s, behavior: "smooth" }); 1332 } 1333 return !0; 1334 } 1335 return ( 1336 r.setTransition(t), 1337 r.setTranslate(w), 1338 r.updateActiveIndex(n), 1339 r.updateSlidesClasses(), 1340 r.emit("beforeTransitionStart", t, a), 1341 r.transitionStart(s, b), 1342 0 === t 1343 ? r.transitionEnd(s, b) 1344 : r.animating || 1345 ((r.animating = !0), 1346 r.onSlideToWrapperTransitionEnd || 1347 (r.onSlideToWrapperTransitionEnd = function (e) { 1348 r && 1349 !r.destroyed && 1350 e.target === this && 1351 (r.wrapperEl.removeEventListener( 1352 "transitionend", 1353 r.onSlideToWrapperTransitionEnd 1354 ), 1355 (r.onSlideToWrapperTransitionEnd = null),
1356 delete r.onSlideToWrapperTransitionEnd, 1357 r.transitionEnd(s, b)); 1358 }), 1359 r.wrapperEl.addEventListener( 1360 "transitionend", 1361 r.onSlideToWrapperTransitionEnd 1362 )), 1363 !0 1364 ); 1365 }, 1366 slideToLoop: function (e, t, s, a) { 1367 if ( 1368 (void 0 === e && (e = 0), 1369 void 0 === t && (t = this.params.speed), 1370 void 0 === s && (s = !0), 1371 "string" == typeof e) 1372 ) { 1373 e = parseInt(e, 10); 1374 } 1375 const i = this; 1376 if (i.destroyed) return; 1377 const r = i.grid && i.params.grid && i.params.grid.rows > 1; 1378 let n = e; 1379 if (i.params.loop) 1380 if (i.virtual && i.params.virtual.enabled) n += i.virtual.slidesBefore; 1381 else { 1382 let e; 1383 if (r) { 1384 const t = n * i.params.grid.rows; 1385 e = i.slides.filter( 1386 (e) => 1 * e.getAttribute("data-swiper-slide-index") === t 1387 )[0].column; 1388 } else e = i.getSlideIndexByData(n); 1389 const t = r 1390 ? Math.ceil(i.slides.length / i.params.grid.rows) 1391 : i.slides.length, 1392 { centeredSlides: s } = i.params; 1393 let a = i.params.slidesPerView; 1394 "auto" === a 1395 ? (a = i.slidesPerViewDynamic()) 1396 : ((a = Math.ceil(parseFloat(i.params.slidesPerView, 10))), 1397 s && a % 2 == 0 && (a += 1)); 1398 let l = t - e < a; 1399 if ((s && (l = l || e < Math.ceil(a / 2)), l)) { 1400 const a = s 1401 ? e < i.activeIndex 1402 ? "prev" 1403 : "next" 1404 : e - i.activeIndex - 1 < i.params.slidesPerView 1405 ? "next" 1406 : "prev"; 1407 i.loopFix({ 1408 direction: a, 1409 slideTo: !0, 1410 activeSlideIndex: "next" === a ? e + 1 : e - t + 1, 1411 slideRealIndex: "next" === a ? i.realIndex : void 0, 1412 }); 1413 } 1414 if (r) { 1415 const e = n * i.params.grid.rows; 1416 n = i.slides.filter( 1417 (t) => 1 * t.getAttribute("data-swiper-slide-index") === e 1418 )[0].column; 1419 } else n = i.getSlideIndexByData(n); 1420 } 1421 return ( 1422 requestAnimationFrame(() => { 1423 i.slideTo(n, t, s, a); 1424 }), 1425 i 1426 ); 1427 }, 1428 slideNext: function (e, t, s) { 1429 void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); 1430 const a = this, 1431 { enabled: i, params: r, animating: n } = a; 1432 if (!i || a.destroyed) return a; 1433 let l = r.slidesPerGroup; 1434 "auto" === r.slidesPerView && 1435 1 === r.slidesPerGroup && 1436 r.slidesPerGroupAuto && 1437 (l = Math.max(a.slidesPerViewDynamic("current", !0), 1)); 1438 const o = a.activeIndex < r.slidesPerGroupSkip ? 1 : l, 1439 d = a.virtual && r.virtual.enabled; 1440 if (r.loop) { 1441 if (n && !d && r.loopPreventsSliding) return !1; 1442 if ( 1443 (a.loopFix({ direction: "next" }), 1444 (a._clientLeft = a.wrapperEl.clientLeft), 1445 a.activeIndex === a.slides.length - 1 && r.cssMode) 1446 ) 1447 return ( 1448 requestAnimationFrame(() => { 1449 a.slideTo(a.activeIndex + o, e, t, s); 1450 }), 1451 !0 1452 ); 1453 } 1454 return r.rewind && a.isEnd 1455 ? a.slideTo(0, e, t, s) 1456 : a.slideTo(a.activeIndex + o, e, t, s); 1457 }, 1458 slidePrev: function (e, t, s) { 1459 void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); 1460 const a = this, 1461 { 1462 params: i, 1463 snapGrid: r, 1464 slidesGrid: n, 1465 rtlTranslate: l, 1466 enabled: o, 1467 animating: d, 1468 } = a; 1469 if (!o || a.destroyed) return a; 1470 const c = a.virtual && i.virtual.enabled; 1471 if (i.loop) { 1472 if (d && !c && i.loopPreventsSliding) return !1; 1473 a.loopFix({ direction: "prev" }), 1474 (a._clientLeft = a.wrapperEl.clientLeft); 1475 } 1476 function p(e) { 1477 return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e); 1478 } 1479 const u = p(l ? a.translate : -a.translate), 1480 m = r.map((e) => p(e)); 1481 let h = r[m.indexOf(u) - 1]; 1482 if (void 0 === h && i.cssMode) { 1483 let e; 1484 r.forEach((t, s) => { 1485 u >= t && (e = s); 1486 }), 1487 void 0 !== e && (h = r[e > 0 ? e - 1 : e]); 1488 } 1489 let f = 0; 1490 if ( 1491 (void 0 !== h && 1492 ((f = n.indexOf(h)), 1493 f < 0 && (f = a.activeIndex - 1), 1494 "auto" === i.slidesPerView && 1495 1 === i.slidesPerGroup && 1496 i.slidesPerGroupAuto && 1497 ((f = f - a.slidesPerViewDynamic("previous", !0) + 1), 1498 (f = Math.max(f, 0)))), 1499 i.rewind && a.isBeginning) 1500 ) { 1501 const i = 1502 a.params.virtual && a.params.virtual.enabled && a.virtual 1503 ? a.virtual.slides.length - 1 1504 : a.slides.length - 1; 1505 return a.slideTo(i, e, t, s); 1506 } 1507 return i.loop && 0 === a.activeIndex && i.cssMode 1508 ? (requestAnimationFrame(() => { 1509 a.slideTo(f, e, t, s); 1510 }), 1511 !0) 1512 : a.slideTo(f, e, t, s); 1513 }, 1514 slideReset: function (e, t, s) { 1515 void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); 1516 const a = this; 1517 if (!a.destroyed) return a.slideTo(a.activeIndex, e, t, s); 1518 }, 1519 slideToClosest: function (e, t, s, a) { 1520 void 0 === e && (e = this.params.speed), 1521 void 0 === t && (t = !0), 1522 void 0 === a && (a = 0.5); 1523 const i = this; 1524 if (i.destroyed) return; 1525 let r = i.activeIndex; 1526 const n = Math.min(i.params.slidesPerGroupSkip, r), 1527 l = n + Math.floor((r - n) / i.params.slidesPerGroup), 1528 o = i.rtlTranslate ? i.translate : -i.translate; 1529 if (o >= i.snapGrid[l]) { 1530 const e = i.snapGrid[l]; 1531 o - e > (i.snapGrid[l + 1] - e) * a && (r += i.params.slidesPerGroup); 1532 } else { 1533 const e = i.snapGrid[l - 1]; 1534 o - e <= (i.snapGrid[l] - e) * a && (r -= i.params.slidesPerGroup); 1535 } 1536 return ( 1537 (r = Math.max(r, 0)), 1538 (r = Math.min(r, i.slidesGrid.length - 1)), 1539 i.slideTo(r, e, t, s) 1540 ); 1541 }, 1542 slideToClickedSlide: function () { 1543 const e = this; 1544 if (e.destroyed) return; 1545 const { params: t, slidesEl: s } = e, 1546 a = 1547 "auto" === t.slidesPerView 1548 ? e.slidesPerViewDynamic() 1549 : t.slidesPerView; 1550 let i, 1551 r = e.clickedIndex; 1552 const n = e.isElement ? "swiper-slide" : `.${t.slideClass}`; 1553 if (t.loop) { 1554 if (e.animating) return; 1555 (i = parseInt( 1556 e.clickedSlide.getAttribute("data-swiper-slide-index"), 1557 10 1558 )), 1559 t.centeredSlides 1560 ? r < e.loopedSlides - a / 2 || 1561 r > e.slides.length - e.loopedSlides + a / 2 1562 ? (e.loopFix(), 1563 (r = e.getSlideIndex( 1564 f(s, `${n}[data-swiper-slide-index="${i}"]`)[0] 1565 )), 1566 l(() => { 1567 e.slideTo(r); 1568 })) 1569 : e.slideTo(r) 1570 : r > e.slides.length - a 1571 ? (e.loopFix(), 1572 (r = e.getSlideIndex( 1573 f(s, `${n}[data-swiper-slide-index="${i}"]`)[0] 1574 )), 1575 l(() => { 1576 e.slideTo(r); 1577 })) 1578 : e.slideTo(r); 1579 } else e.slideTo(r); 1580 }, 1581 }; 1582 var X = { 1583 loopCreate: function (e) { 1584 const t = this, 1585 { params: s, slidesEl: a } = t; 1586 if (!s.loop || (t.virtual && t.params.virtual.enabled)) return; 1587 const i = () => { 1588 f(a, `.${s.slideClass}, swiper-slide`).forEach((e, t) => { 1589 e.setAttribute("data-swiper-slide-index", t); 1590 }); 1591 }, 1592 r = t.grid && s.grid && s.grid.rows > 1, 1593 n = s.slidesPerGroup * (r ? s.grid.rows : 1), 1594 l = t.slides.length % n != 0, 1595 o = r && t.slides.length % s.grid.rows != 0, 1596 d = (e) => { 1597 for (let a = 0; a < e; a += 1) { 1598 const e = t.isElement 1599 ? v("swiper-slide", [s.slideBlankClass]) 1600 : v("div", [s.slideClass, s.slideBlankClass]); 1601 t.slidesEl.append(e); 1602 } 1603 }; 1604 if (l) { 1605 if (s.loopAddBlankSlides) { 1606 d(n - (t.slides.length % n)), t.recalcSlides(), t.updateSlides(); 1607 } else 1608 g( 1609 "Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may
1609not function properly. You need to add more slides (or make duplicates, or empty slides)" 1610 ); 1611 i(); 1612 } else if (o) { 1613 if (s.loopAddBlankSlides) { 1614 d(s.grid.rows - (t.slides.length % s.grid.rows)), 1615 t.recalcSlides(), 1616 t.updateSlides(); 1617 } else 1618 g( 1619 "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)" 1620 ); 1621 i(); 1622 } else i(); 1623 t.loopFix({ 1624 slideRealIndex: e, 1625 direction: s.centeredSlides ? void 0 : "next", 1626 }); 1627 }, 1628 loopFix: function (e) { 1629 let { 1630 slideRealIndex: t, 1631 slideTo: s = !0, 1632 direction: a, 1633 setTranslate: i, 1634 activeSlideIndex: r, 1635 byController: n, 1636 byMousewheel: l, 1637 } = void 0 === e ? {} : e; 1638 const o = this; 1639 if (!o.params.loop) return; 1640 o.emit("beforeLoopFix"); 1641 const { 1642 slides: d, 1643 allowSlidePrev: c, 1644 allowSlideNext: p, 1645 slidesEl: u, 1646 params: m, 1647 } = o, 1648 { centeredSlides: h } = m; 1649 if ( 1650 ((o.allowSlidePrev = !0), 1651 (o.allowSlideNext = !0), 1652 o.virtual && m.virtual.enabled) 1653 ) 1654 return ( 1655 s && 1656 (m.centeredSlides || 0 !== o.snapIndex 1657 ? m.centeredSlides && o.snapIndex < m.slidesPerView 1658 ? o.slideTo(o.virtual.slides.length + o.snapIndex, 0, !1, !0) 1659 : o.snapIndex === o.snapGrid.length - 1 && 1660 o.slideTo(o.virtual.slidesBefore, 0, !1, !0) 1661 : o.slideTo(o.virtual.slides.length, 0, !1, !0)), 1662 (o.allowSlidePrev = c), 1663 (o.allowSlideNext = p), 1664 void o.emit("loopFix") 1665 ); 1666 let f = m.slidesPerView; 1667 "auto" === f 1668 ? (f = o.slidesPerViewDynamic()) 1669 : ((f = Math.ceil(parseFloat(m.slidesPerView, 10))), 1670 h && f % 2 == 0 && (f += 1)); 1671 const v = m.slidesPerGroupAuto ? f : m.slidesPerGroup; 1672 let w = v; 1673 w % v != 0 && (w += v - (w % v)), 1674 (w += m.loopAdditionalSlides), 1675 (o.loopedSlides = w); 1676 const b = o.grid && m.grid && m.grid.rows > 1; 1677 d.length < f + w 1678 ? g( 1679 "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" 1680 ) 1681 : b && 1682 "row" === m.grid.fill && 1683 g( 1684 "Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`" 1685 ); 1686 const y = [], 1687 E = []; 1688 let x = o.activeIndex; 1689 void 0 === r 1690 ? (r = o.getSlideIndex( 1691 d.filter((e) => e.classList.contains(m.slideActiveClass))[0] 1692 )) 1693 : (x = r); 1694 const S = "next" === a || !a, 1695 T = "prev" === a || !a; 1696 let M = 0, 1697 C = 0; 1698 const P = b ? Math.ceil(d.length / m.grid.rows) : d.length, 1699 L = (b ? d[r].column : r) + (h && void 0 === i ? -f / 2 + 0.5 : 0); 1700 if (L < w) { 1701 M = Math.max(w - L, v); 1702 for (let e = 0; e < w - L; e += 1) { 1703 const t = e - Math.floor(e / P) * P; 1704 if (b) { 1705 const e = P - t - 1; 1706 for (let t = d.length - 1; t >= 0; t -= 1) 1707 d[t].column === e && y.push(t); 1708 } else y.push(P - t - 1); 1709 } 1710 } else if (L + f > P - w) { 1711 C = Math.max(L - (P - 2 * w), v); 1712 for (let e = 0; e < C; e += 1) { 1713 const t = e - Math.floor(e / P) * P; 1714 b 1715 ? d.forEach((e, s) => { 1716 e.column === t && E.push(s); 1717 }) 1718 : E.push(t); 1719 } 1720 } 1721 if ( 1722 ((o.__preventObserver__ = !0), 1723 requestAnimationFrame(() => { 1724 o.__preventObserver__ = !1; 1725 }), 1726 T && 1727 y.forEach((e) => { 1728 (d[e].swiperLoopMoveDOM = !0), 1729 u.prepend(d[e]), 1730 (d[e].swiperLoopMoveDOM = !1); 1731 }), 1732 S &&
1733 E.forEach((e) => { 1734 (d[e].swiperLoopMoveDOM = !0), 1735 u.append(d[e]), 1736 (d[e].swiperLoopMoveDOM = !1); 1737 }), 1738 o.recalcSlides(), 1739 "auto" === m.slidesPerView 1740 ? o.updateSlides() 1741 : b && 1742 ((y.length > 0 && T) || (E.length > 0 && S)) && 1743 o.slides.forEach((e, t) => { 1744 o.grid.updateSlide(t, e, o.slides); 1745 }), 1746 m.watchSlidesProgress && o.updateSlidesOffset(), 1747 s) 1748 ) 1749 if (y.length > 0 && T) { 1750 if (void 0 === t) { 1751 const e = o.slidesGrid[x], 1752 t = o.slidesGrid[x + M] - e; 1753 l 1754 ? o.setTranslate(o.translate - t) 1755 : (o.slideTo(x + Math.ceil(M), 0, !1, !0), 1756 i && 1757 ((o.touchEventsData.startTranslate = 1758 o.touchEventsData.startTranslate - t), 1759 (o.touchEventsData.currentTranslate = 1760 o.touchEventsData.currentTranslate - t))); 1761 } else if (i) { 1762 const e = b ? y.length / m.grid.rows : y.length; 1763 o.slideTo(o.activeIndex + e, 0, !1, !0), 1764 (o.touchEventsData.currentTranslate = o.translate); 1765 } 1766 } else if (E.length > 0 && S) 1767 if (void 0 === t) { 1768 const e = o.slidesGrid[x], 1769 t = o.slidesGrid[x - C] - e; 1770 l 1771 ? o.setTranslate(o.translate - t) 1772 : (o.slideTo(x - C, 0, !1, !0), 1773 i && 1774 ((o.touchEventsData.startTranslate = 1775 o.touchEventsData.startTranslate - t), 1776 (o.touchEventsData.currentTranslate = 1777 o.touchEventsData.currentTranslate - t))); 1778 } else { 1779 const e = b ? E.length / m.grid.rows : E.length; 1780 o.slideTo(o.activeIndex - e, 0, !1, !0); 1781 } 1782 if ( 1783 ((o.allowSlidePrev = c), 1784 (o.allowSlideNext = p), 1785 o.controller && o.controller.control && !n) 1786 ) { 1787 const e = { 1788 slideRealIndex: t, 1789 direction: a, 1790 setTranslate: i, 1791 activeSlideIndex: r, 1792 byController: !0, 1793 }; 1794 Array.isArray(o.controller.control) 1795 ? o.controller.control.forEach((t) => { 1796 !t.destroyed && 1797 t.params.loop && 1798 t.loopFix({ 1799 ...e, 1800 slideTo: t.params.slidesPerView === m.slidesPerView && s, 1801 }); 1802 }) 1803 : o.controller.control instanceof o.constructor && 1804 o.controller.control.params.loop && 1805 o.controller.control.loopFix({ 1806 ...e, 1807 slideTo: 1808 o.controller.control.params.slidesPerView === m.slidesPerView && 1809 s, 1810 }); 1811 } 1812 o.emit("loopFix"); 1813 }, 1814 loopDestroy: function () { 1815 const e = this, 1816 { params: t, slidesEl: s } = e; 1817 if (!t.loop || (e.virtual && e.params.virtual.enabled)) return; 1818 e.recalcSlides(); 1819 const a = []; 1820 e.slides.forEach((e) => { 1821 const t = 1822 void 0 === e.swiperSlideIndex 1823 ? 1 * e.getAttribute("data-swiper-slide-index") 1824 : e.swiperSlideIndex; 1825 a[t] = e; 1826 }), 1827 e.slides.forEach((e) => { 1828 e.removeAttribute("data-swiper-slide-index"); 1829 }), 1830 a.forEach((e) => { 1831 s.append(e); 1832 }), 1833 e.recalcSlides(), 1834 e.slideTo(e.realIndex, 0); 1835 }, 1836 }; 1837 function Y(e, t, s) { 1838 const a = r(), 1839 { params: i } = e, 1840 n = i.edgeSwipeDetection, 1841 l = i.edgeSwipeThreshold; 1842 return ( 1843 !n || 1844 !(s <= l || s >= a.innerWidth - l) || 1845 ("prevent" === n && (t.preventDefault(), !0)) 1846 ); 1847 } 1848 function B(e) { 1849 const t = this, 1850 s = a(); 1851 let i = e; 1852 i.originalEvent && (i = i.originalEvent); 1853 const n = t.touchEventsData; 1854 if ("pointerdown" === i.type) { 1855 if (null !== n.pointerId && n.pointerId !== i.pointerId) return; 1856 n.pointerId = i.pointerId; 1857 } else 1858 "touchstart" === i.type && 1859 1 === i.targetTouches.length && 1860 (n.touchId = i.targetTouches[0].identifier); 1861 if ("touchstart" === i.type) return void Y(t, i, i.targetTouches[0].pageX); 1862 const { params: l, touches: d, enabled: c } = t; 1863 if (!c) return; 1864 if (!l.simulateTouch && "mouse" === i.pointerType) return; 1865 if (t.animating && l.preventInteractionOnTransition) return; 1866 !t.animating && l.cssMode && l.loop && t.loopFix(); 1867 let p = i.target; 1868 if ("wrapper" === l.touchEventsTarget && !t.wrapperEl.contains(p)) return; 1869 if ("which" in i && 3 === i.which) return; 1870 if ("button" in i && i.button > 0) return; 1871 if (n.isTouched && n.isMoved) return; 1872 const u = !!l.noSwipingClass && "" !== l.noSwipingClass, 1873 m = i.composedPath ? i.composedPath() : i.path; 1874 u && i.target && i.target.shadowRoot && m && (p = m[0]); 1875 const h = l.noSwipingSelector 1876 ? l.noSwipingSelector 1877 : `.${l.noSwipingClass}`, 1878 f = !(!i.target || !i.target.shadowRoot); 1879 if ( 1880 l.noSwiping && 1881 (f 1882 ? (function (e, t) { 1883 return ( 1884 void 0 === t && (t = this), 1885 (function t(s) { 1886 if (!s || s === a() || s === r()) return null; 1887 s.assignedSlot && (s = s.assignedSlot); 1888 const i = s.closest(e); 1889 return i || s.getRootNode ? i || t(s.getRootNode().host) : null; 1890 })(t) 1891 ); 1892 })(h, p) 1893 : p.closest(h)) 1894 ) 1895 return void (t.allowClick = !0); 1896 if (l.swipeHandler && !p.closest(l.swipeHandler)) return; 1897 (d.currentX = i.pageX), (d.currentY = i.pageY); 1898 const g = d.currentX, 1899 v = d.currentY; 1900 if (!Y(t, i, g)) return;
1901 Object.assign(n, { 1902 isTouched: !0, 1903 isMoved: !1, 1904 allowTouchCallbacks: !0, 1905 isScrolling: void 0, 1906 startMoving: void 0, 1907 }), 1908 (d.startX = g), 1909 (d.startY = v), 1910 (n.touchStartTime = o()), 1911 (t.allowClick = !0), 1912 t.updateSize(), 1913 (t.swipeDirection = void 0), 1914 l.threshold > 0 && (n.allowThresholdMove = !1); 1915 let w = !0; 1916 p.matches(n.focusableElements) && 1917 ((w = !1), "SELECT" === p.nodeName && (n.isTouched = !1)), 1918 s.activeElement && 1919 s.activeElement.matches(n.focusableElements) && 1920 s.activeElement !== p && 1921 s.activeElement.blur(); 1922 const b = w && t.allowTouchMove && l.touchStartPreventDefault; 1923 (!l.touchStartForcePreventDefault && !b) || 1924 p.isContentEditable || 1925 i.preventDefault(), 1926 l.freeMode && 1927 l.freeMode.enabled && 1928 t.freeMode && 1929 t.animating && 1930 !l.cssMode && 1931 t.freeMode.onTouchStart(), 1932 t.emit("touchStart", i); 1933 } 1934 function R(e) { 1935 const t = a(), 1936 s = this, 1937 i = s.touchEventsData, 1938 { params: r, touches: n, rtlTranslate: l, enabled: d } = s; 1939 if (!d) return; 1940 if (!r.simulateTouch && "mouse" === e.pointerType) return; 1941 let c, 1942 p = e; 1943 if ((p.originalEvent && (p = p.originalEvent), "pointermove" === p.type)) { 1944 if (null !== i.touchId) return; 1945 if (p.pointerId !== i.pointerId) return; 1946 } 1947 if ("touchmove" === p.type) { 1948 if ( 1949 ((c = [...p.changedTouches].filter( 1950 (e) => e.identifier === i.touchId 1951 )[0]), 1952 !c || c.identifier !== i.touchId) 1953 ) 1954 return; 1955 } else c = p; 1956 if (!i.isTouched) 1957 return void ( 1958 i.startMoving && 1959 i.isScrolling && 1960 s.emit("touchMoveOpposite", p) 1961 ); 1962 const u = c.pageX, 1963 m = c.pageY; 1964 if (p.preventedByNestedSwiper) return (n.startX = u), void (n.startY = m); 1965 if (!s.allowTouchMove) 1966 return ( 1967 p.target.matches(i.focusableElements) || (s.allowClick = !1), 1968 void ( 1969 i.isTouched && 1970 (Object.assign(n, { startX: u, startY: m, currentX: u, currentY: m }), 1971 (i.touchStartTime = o())) 1972 ) 1973 ); 1974 if (r.touchReleaseOnEdges && !r.loop) 1975 if (s.isVertical()) { 1976 if ( 1977 (m < n.startY && s.translate <= s.maxTranslate()) || 1978 (m > n.startY && s.translate >= s.minTranslate()) 1979 ) 1980 return (i.isTouched = !1), void (i.isMoved = !1); 1981 } else if ( 1982 (u < n.startX && s.translate <= s.maxTranslate()) || 1983 (u > n.startX && s.translate >= s.minTranslate()) 1984 ) 1985 return; 1986 if ( 1987 t.activeElement && 1988 p.target === t.activeElement && 1989 p.target.matches(i.focusableElements) 1990 ) 1991 return (i.isMoved = !0), void (s.allowClick = !1); 1992 i.allowTouchCallbacks && s.emit("touchMove", p), 1993 (n.previousX = n.currentX), 1994 (n.previousY = n.currentY), 1995 (n.currentX = u), 1996 (n.currentY = m); 1997 const h = n.currentX - n.startX, 1998 f = n.currentY - n.startY; 1999 if (s.params.threshold && Math.sqrt(h ** 2 + f ** 2) < s.params.threshold) 2000 return; 2001 if (void 0 === i.isScrolling) { 2002 let e; 2003 (s.isHorizontal() && n.currentY === n.startY) || 2004 (s.isVertical() && n.currentX === n.startX) 2005 ? (i.isScrolling = !1) 2006 : h * h + f * f >= 25 && 2007 ((e = (180 * Math.atan2(Math.abs(f), Math.abs(h))) / Math.PI), 2008 (i.isScrolling = s.isHorizontal() 2009 ? e > r.touchAngle 2010 : 90 - e > r.touchAngle)); 2011 } 2012 if ( 2013 (i.isScrolling && s.emit("touchMoveOpposite", p), 2014 void 0 === i.startMoving && 2015 ((n.currentX === n.startX && n.currentY === n.startY) || 2016 (i.startMoving = !0)), 2017 i.isScrolling) 2018 ) 2019 return void (i.isTouched = !1); 2020 if (!i.startMoving) return; 2021 (s.allowClick = !1), 2022 !r.cssMode && p.cancelable && p.preventDefault(), 2023 r.touchMoveStopPropagation && !r.nested && p.stopPropagation(); 2024 let g = s.isHorizontal() ? h : f, 2025 v = s.isHorizontal() 2026 ? n.currentX - n.previousX 2027 : n.currentY - n.previousY; 2028 r.oneWayMovement && 2029 ((g = Math.abs(g) * (l ? 1 : -1)), (v = Math.abs(v) * (l ? 1 : -1))), 2030 (n.diff = g), 2031 (g *= r.touchRatio), 2032 l && ((g = -g), (v = -v)); 2033 const w = s.touchesDirection; 2034 (s.swipeDirection = g > 0 ? "prev" : "next"), 2035 (s.touchesDirection = v > 0 ? "prev" : "next"); 2036 const b = s.params.loop && !r.cssMode, 2037 y = 2038 ("next" === s.touchesDirection && s.allowSlideNext) || 2039 ("prev" === s.touchesDirection && s.allowSlidePrev); 2040 if (!i.isMoved) { 2041 if ( 2042 (b && y && s.loopFix({ direction: s.swipeDirection }), 2043 (i.startTranslate = s.getTranslate()), 2044 s.setTransition(0), 2045 s.animating) 2046 ) { 2047 const e = new window.CustomEvent("transitionend", { 2048 bubbles: !0, 2049 cancelable: !0, 2050 });
2051 s.wrapperEl.dispatchEvent(e); 2052 } 2053 (i.allowMomentumBounce = !1), 2054 !r.grabCursor || 2055 (!0 !== s.allowSlideNext && !0 !== s.allowSlidePrev) || 2056 s.setGrabCursor(!0), 2057 s.emit("sliderFirstMove", p); 2058 } 2059 if ( 2060 (new Date().getTime(), 2061 i.isMoved && 2062 i.allowThresholdMove && 2063 w !== s.touchesDirection && 2064 b && 2065 y && 2066 Math.abs(g) >= 1) 2067 ) 2068 return ( 2069 Object.assign(n, { 2070 startX: u, 2071 startY: m, 2072 currentX: u, 2073 currentY: m, 2074 startTranslate: i.currentTranslate, 2075 }), 2076 (i.loopSwapReset = !0), 2077 void (i.startTranslate = i.currentTranslate) 2078 ); 2079 s.emit("sliderMove", p), 2080 (i.isMoved = !0), 2081 (i.currentTranslate = g + i.startTranslate); 2082 let E = !0, 2083 x = r.resistanceRatio; 2084 if ( 2085 (r.touchReleaseOnEdges && (x = 0), 2086 g > 0 2087 ? (b && 2088 y && 2089 i.allowThresholdMove && 2090 i.currentTranslate > 2091 (r.centeredSlides 2092 ? s.minTranslate() - s.slidesSizesGrid[s.activeIndex + 1] 2093 : s.minTranslate()) && 2094 s.loopFix({ 2095 direction: "prev", 2096 setTranslate: !0, 2097 activeSlideIndex: 0, 2098 }), 2099 i.currentTranslate > s.minTranslate() && 2100 ((E = !1), 2101 r.resistance && 2102 (i.currentTranslate = 2103 s.minTranslate() - 2104 1 + 2105 (-s.minTranslate() + i.startTranslate + g) ** x))) 2106 : g < 0 && 2107 (b && 2108 y && 2109 i.allowThresholdMove && 2110 i.currentTranslate < 2111 (r.centeredSlides 2112 ? s.maxTranslate() + 2113 s.slidesSizesGrid[s.slidesSizesGrid.length - 1] 2114 : s.maxTranslate()) && 2115 s.loopFix({ 2116 direction: "next", 2117 setTranslate: !0, 2118 activeSlideIndex: 2119 s.slides.length - 2120 ("auto" === r.slidesPerView 2121 ? s.slidesPerViewDynamic() 2122 : Math.ceil(parseFloat(r.slidesPerView, 10))), 2123 }), 2124 i.currentTranslate < s.maxTranslate() && 2125 ((E = !1), 2126 r.resistance && 2127 (i.currentTranslate = 2128 s.maxTranslate() + 2129 1 - 2130 (s.maxTranslate() - i.startTranslate - g) ** x))), 2131 E && (p.preventedByNestedSwiper = !0), 2132 !s.allowSlideNext && 2133 "next" === s.swipeDirection && 2134 i.currentTranslate < i.startTranslate && 2135 (i.currentTranslate = i.startTranslate), 2136 !s.allowSlidePrev && 2137 "prev" === s.swipeDirection && 2138 i.currentTranslate > i.startTranslate && 2139 (i.currentTranslate = i.startTranslate), 2140 s.allowSlidePrev || 2141 s.allowSlideNext || 2142 (i.currentTranslate = i.startTranslate), 2143 r.threshold > 0) 2144 ) { 2145 if (!(Math.abs(g) > r.threshold || i.allowThresholdMove)) 2146 return void (i.currentTranslate = i.startTranslate); 2147 if (!i.allowThresholdMove) 2148 return ( 2149 (i.allowThresholdMove = !0), 2150 (n.startX = n.currentX), 2151 (n.startY = n.currentY), 2152 (i.currentTranslate = i.startTranslate), 2153 void (n.diff = s.isHorizontal() 2154 ? n.currentX - n.startX 2155 : n.currentY - n.startY) 2156 ); 2157 } 2158 r.followFinger && 2159 !r.cssMode && 2160 (((r.freeMode && r.freeMode.enabled && s.freeMode) || 2161 r.watchSlidesProgress) && 2162 (s.updateActiveIndex(), s.updateSlidesClasses()), 2163 r.freeMode && 2164 r.freeMode.enabled && 2165 s.freeMode && 2166 s.freeMode.onTouchMove(), 2167 s.updateProgress(i.currentTranslate), 2168 s.setTranslate(i.currentTranslate)); 2169 } 2170 function q(e) { 2171 const t = this, 2172 s = t.touchEventsData; 2173 let a, 2174 i = e; 2175 i.originalEvent && (i = i.originalEvent); 2176 if ("touchend" === i.type || "touchcancel" === i.type) { 2177 if ( 2178 ((a = [...i.changedTouches].filter( 2179 (e) => e.identifier === s.touchId 2180 )[0]), 2181 !a || a.identifier !== s.touchId) 2182 ) 2183 return; 2184 } else { 2185 if (null !== s.touchId) return; 2186 if (i.pointerId !== s.pointerId) return; 2187 a = i; 2188 } 2189 if ( 2190 ["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes( 2191 i.type 2192 ) 2193 ) { 2194 if ( 2195 !( 2196 ["pointercancel", "contextmenu"].includes(i.type) && 2197 (t.browser.isSafari || t.browser.isWebView) 2198 ) 2199 ) 2200 return; 2201 } 2202 (s.pointerId = null), (s.touchId = null); 2203 const { 2204 params: r, 2205 touches: n, 2206 rtlTranslate: d, 2207 slidesGrid: c, 2208 enabled: p, 2209 } = t; 2210 if (!p) return; 2211 if (!r.simulateTouch && "mouse" === i.pointerType) return; 2212 if ( 2213 (s.allowTouchCallbacks && t.emit("touchEnd", i), 2214 (s.allowTouchCallbacks = !1), 2215 !s.isTouched) 2216 ) 2217 return ( 2218 s.isMoved && r.grabCursor && t.setGrabCursor(!1), 2219 (s.isMoved = !1), 2220 void (s.startMoving = !1) 2221 ); 2222 r.grabCursor && 2223 s.isMoved && 2224 s.isTouched && 2225 (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && 2226 t.setGrabCursor(!1); 2227 const u = o(), 2228 m = u - s.touchStartTime; 2229 if (t.allowClick) { 2230 const e = i.path || (i.composedPath && i.composedPath()); 2231 t.updateClickedSlide((e && e[0]) || i.target, e), 2232 t.emit("tap click", i), 2233 m < 300 && 2234 u - s.lastClickTime < 300 && 2235 t.emit("doubleTap doubleClick", i); 2236 } 2237 if ( 2238 ((s.lastClickTime = o()), 2239 l(() => { 2240 t.destroyed || (t.allowClick = !0); 2241 }), 2242 !s.isTouched || 2243 !s.isMoved || 2244 !t.swipeDirection || 2245 (0 === n.diff && !s.loopSwapReset) || 2246 (s.currentTranslate === s.startTranslate && !s.loopSwapReset)) 2247 ) 2248 return (s.isTouched = !1), (s.isMoved = !1), void (s.startMoving = !1); 2249 let h; 2250 if ( 2251 ((s.isTouched = !1), 2252 (s.isMoved = !1), 2253 (s.startMoving = !1), 2254 (h = r.followFinger 2255 ? d 2256 ? t.translate 2257 : -t.translate 2258 : -s.currentTranslate), 2259 r.cssMode) 2260 ) 2261 return; 2262 if (r.freeMode && r.freeMode.enabled) 2263 return void t.freeMode.onTouchEnd({ currentPos: h }); 2264 const f = h >= -t.maxTranslate() && !t.params.loop; 2265 let g = 0, 2266 v = t.slidesSizesGrid[0]; 2267 for ( 2268 let e = 0; 2269 e < c.length; 2270 e += e < r.slidesPerGroupSkip ? 1 : r.slidesPerGroup 2271 ) { 2272 const t = e < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup; 2273 void 0 !== c[e + t] 2274 ? (f || (h >= c[e] && h < c[e + t])) && ((g = e), (v = c[e + t] - c[e])) 2275 : (f || h >= c[e]) && 2276 ((g = e), (v = c[c.length - 1] - c[c.length - 2])); 2277 } 2278 let w = null, 2279 b = null; 2280 r.rewind && 2281 (t.isBeginning 2282 ? (b = 2283 r.virtual && r.virtual.enabled && t.virtual 2284 ? t.virtual.slides.length - 1 2285 : t.slides.length - 1) 2286 : t.isEnd && (w = 0)); 2287 const y = (h - c[g]) / v, 2288 E = g < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup; 2289 if (m > r.longSwipesMs) { 2290 if (!r.longSwipes) return void t.slideTo(t.activeIndex); 2291 "next" === t.swipeDirection && 2292 (y >= r.longSwipesRatio 2293 ? t.slideTo(r.rewind && t.isEnd ? w : g + E) 2294 : t.slideTo(g)), 2295 "prev" === t.swipeDirection && 2296 (y > 1 - r.longSwipesRatio 2297 ? t.slideTo(g + E) 2298 : null !== b && y < 0 && Math.abs(y) > r.longSwipesRatio 2299 ? t.slideTo(b) 2300 : t.slideTo(g)); 2301 } else { 2302 if (!r.shortSwipes) return void t.slideTo(t.activeIndex); 2303 t.navigation && 2304 (i.target === t.navigation.nextEl || i.target === t.navigation.prevEl) 2305 ? i.target === t.navigation.nextEl 2306 ? t.slideTo(g + E) 2307 : t.slideTo(g) 2308 : ("next" === t.swipeDirection && t.slideTo(null !== w ? w : g + E), 2309 "prev" === t.swipeDirection && t.slideTo(null !== b ? b : g)); 2310 } 2311 } 2312 function F() { 2313 const e = this, 2314 { params: t, el: s } = e; 2315 if (s && 0 === s.offsetWidth) return; 2316 t.breakpoints && e.setBreakpoint(); 2317 const { allowSlideNext: a, allowSlidePrev: i, snapGrid: r } = e, 2318 n = e.virtual && e.params.virtual.enabled; 2319 (e.allowSlideNext = !0), 2320 (e.allowSlidePrev = !0), 2321 e.updateSize(), 2322 e.updateSlides(), 2323 e.updateSlidesClasses(); 2324 const l = n && t.loop; 2325 !("auto" === t.slidesPerView || t.slidesPerView > 1) || 2326 !e.isEnd || 2327 e.isBeginning || 2328 e.params.centeredSlides || 2329 l 2330 ? e.params.loop && !n 2331 ? e.slideToLoop(e.realIndex, 0, !1, !0) 2332 : e.slideTo(e.activeIndex, 0, !1, !0) 2333 : e.slideTo(e.slides.length - 1, 0, !1, !0), 2334 e.autoplay && 2335 e.autoplay.running && 2336 e.autoplay.paused && 2337 (clearTimeout(e.autoplay.resizeTimeout), 2338 (e.autoplay.resizeTimeout = setTimeout(() => { 2339 e.autoplay && 2340 e.autoplay.running && 2341 e.autoplay.paused && 2342 e.autoplay.resume(); 2343 }, 500))), 2344 (e.allowSlidePrev = i), 2345 (e.allowSlideNext = a), 2346 e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow(); 2347 } 2348 function V(e) { 2349 const t = this; 2350 t.enabled && 2351 (t.allowClick || 2352 (t.params.preventClicks && e.preventDefault(), 2353 t.params.preventClicksPropagation && 2354 t.animating && 2355 (e.stopPropagation(), e.stopImmediatePropagation()))); 2356 } 2357 function _() { 2358 const e = this, 2359 { wrapperEl: t, rtlTranslate: s, enabled: a } = e; 2360 if (!a) return; 2361 let i; 2362 (e.previousTranslate = e.translate), 2363 e.isHorizontal() 2364 ? (e.translate = -t.scrollLeft) 2365 : (e.translate = -t.scrollTop), 2366 0 === e.translate && (e.translate = 0), 2367 e.updateActiveIndex(), 2368 e.updateSlidesClasses(); 2369 const r = e.maxTranslate() - e.minTranslate(); 2370 (i = 0 === r ? 0 : (e.translate - e.minTranslate()) / r), 2371 i !== e.progress && e.updateProgress(s ? -e.translate : e.translate), 2372 e.emit("setTranslate", e.translate, !1); 2373 } 2374 function W(e) { 2375 const t = this; 2376 $(t, e.target), 2377 t.params.cssMode || 2378 ("auto" !== t.params.slidesPerView && !t.params.autoHeight) ||
2379 t.update(); 2380 } 2381 function j() { 2382 const e = this; 2383 e.documentTouchHandlerProceeded || 2384 ((e.documentTouchHandlerProceeded = !0), 2385 e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto")); 2386 } 2387 const U = (e, t) => { 2388 const s = a(), 2389 { params: i, el: r, wrapperEl: n, device: l } = e, 2390 o = !!i.nested, 2391 d = "on" === t ? "addEventListener" : "removeEventListener", 2392 c = t; 2393 s[d]("touchstart", e.onDocumentTouchStart, { passive: !1, capture: o }), 2394 r[d]("touchstart", e.onTouchStart, { passive: !1 }), 2395 r[d]("pointerdown", e.onTouchStart, { passive: !1 }), 2396 s[d]("touchmove", e.onTouchMove, { passive: !1, capture: o }), 2397 s[d]("pointermove", e.onTouchMove, { passive: !1, capture: o }), 2398 s[d]("touchend", e.onTouchEnd, { passive: !0 }), 2399 s[d]("pointerup", e.onTouchEnd, { passive: !0 }), 2400 s[d]("pointercancel", e.onTouchEnd, { passive: !0 }), 2401 s[d]("touchcancel", e.onTouchEnd, { passive: !0 }), 2402 s[d]("pointerout", e.onTouchEnd, { passive: !0 }), 2403 s[d]("pointerleave", e.onTouchEnd, { passive: !0 }), 2404 s[d]("contextmenu", e.onTouchEnd, { passive: !0 }), 2405 (i.preventClicks || i.preventClicksPropagation) && 2406 r[d]("click", e.onClick, !0), 2407 i.cssMode && n[d]("scroll", e.onScroll), 2408 i.updateOnWindowResize 2409 ? e[c]( 2410 l.ios || l.android 2411 ? "resize orientationchange observerUpdate" 2412 : "resize observerUpdate", 2413 F, 2414 !0 2415 ) 2416 : e[c]("observerUpdate", F, !0), 2417 r[d]("load", e.onLoad, { capture: !0 }); 2418 }; 2419 const K = (e, t) => e.grid && t.grid && t.grid.rows > 1; 2420 var Z = { 2421 init: !0, 2422 direction: "horizontal", 2423 oneWayMovement: !1, 2424 swiperElementNodeName: "SWIPER-CONTAINER", 2425 touchEventsTarget: "wrapper", 2426 initialSlide: 0, 2427 speed: 300, 2428 cssMode: !1, 2429 updateOnWindowResize: !0, 2430 resizeObserver: !0, 2431 nested: !1, 2432 createElements: !1, 2433 eventsPrefix: "swiper", 2434 enabled: !0, 2435 focusableElements: "input, select, option, textarea, button, video, label", 2436 width: null, 2437 height: null, 2438 preventInteractionOnTransition: !1, 2439 userAgent: null, 2440 url: null, 2441 edgeSwipeDetection: !1, 2442 edgeSwipeThreshold: 20, 2443 autoHeight: !1, 2444 setWrapperSize: !1, 2445 virtualTranslate: !1, 2446 effect: "slide", 2447 breakpoints: void 0, 2448 breakpointsBase: "window", 2449 spaceBetween: 0, 2450 slidesPerView: 1, 2451 slidesPerGroup: 1, 2452 slidesPerGroupSkip: 0, 2453 slidesPerGroupAuto: !1, 2454 centeredSlides: !1, 2455 centeredSlidesBounds: !1, 2456 slidesOffsetBefore: 0, 2457 slidesOffsetAfter: 0, 2458 normalizeSlideIndex: !0, 2459 centerInsufficientSlides: !1, 2460 watchOverflow: !0, 2461 roundLengths: !1, 2462 touchRatio: 1, 2463 touchAngle: 45, 2464 simulateTouch: !0, 2465 shortSwipes: !0, 2466 longSwipes: !0, 2467 longSwipesRatio: 0.5, 2468 longSwipesMs: 300, 2469 followFinger: !0, 2470 allowTouchMove: !0, 2471 threshold: 5, 2472 touchMoveStopPropagation: !1, 2473 touchStartPreventDefault: !0, 2474 touchStartForcePreventDefault: !1, 2475 touchReleaseOnEdges: !1, 2476 uniqueNavElements: !0, 2477 resistance: !0, 2478 resistanceRatio: 0.85, 2479 watchSlidesProgress: !1, 2480 grabCursor: !1, 2481 preventClicks: !0, 2482 preventClicksPropagation: !0, 2483 slideToClickedSlide: !1, 2484 loop: !1, 2485 loopAddBlankSlides: !0, 2486 loopAdditionalSlides: 0, 2487 loopPreventsSliding: !0, 2488 rewind: !1, 2489 allowSlidePrev: !0, 2490 allowSlideNext: !0, 2491 swipeHandler: null, 2492 noSwiping: !0, 2493 noSwipingClass: "swiper-no-swiping", 2494 noSwipingSelector: null, 2495 passiveListeners: !0, 2496 maxBackfaceHiddenSlides: 10, 2497 containerModifierClass: "swiper-", 2498 slideClass: "swiper-slide", 2499 slideBlankClass: "swiper-slide-blank", 2500 slideActiveClass: "swiper-slide-active", 2501 slideVisibleClass: "swiper-slide-visible", 2502 slideFullyVisibleClass: "swiper-slide-fully-visible", 2503 slideNextClass: "swiper-slide-next", 2504 slidePrevClass: "swiper-slide-prev", 2505 wrapperClass: "swiper-wrapper", 2506 lazyPreloaderClass: "swiper-lazy-preloader", 2507 lazyPreloadPrevNext: 0, 2508 runCallbacksOnInit: !0, 2509 _emitClasses: !1, 2510 }; 2511 function Q(e, t) { 2512 return function (s) { 2513 void 0 === s && (s = {}); 2514 const a = Object.keys(s)[0], 2515 i = s[a]; 2516 "object" == typeof i && null !== i 2517 ? (!0 === e[a] && (e[a] = { enabled: !0 }), 2518 "navigation" === a && 2519 e[a] && 2520 e[a].enabled && 2521 !e[a].prevEl && 2522 !e[a].nextEl && 2523 (e[a].auto = !0), 2524 ["pagination", "scrollbar"].indexOf(a) >= 0 && 2525 e[a] && 2526 e[a].enabled && 2527 !e[a].el && 2528 (e[a].auto = !0), 2529 a in e && "enabled" in i 2530 ? ("object" != typeof e[a] || 2531 "enabled" in e[a] || 2532 (e[a].enabled = !0), 2533 e[a] || (e[a] = { enabled: !1 }), 2534 p(t, s)) 2535 : p(t, s)) 2536 : p(t, s); 2537 }; 2538 } 2539 const J = { 2540 eventsEmitter: A, 2541 update: D, 2542 translate: G, 2543 transition: { 2544 setTransition: function (e, t) { 2545 const s = this; 2546 s.params.cssMode || 2547 ((s.wrapperEl.style.transitionDuration = `${e}ms`), 2548 (s.wrapperEl.style.transitionDelay = 0 === e ? "0ms" : "")), 2549 s.emit("setTransition", e, t); 2550 }, 2551 transitionStart: function (e, t) { 2552 void 0 === e && (e = !0); 2553 const s = this, 2554 { params: a } = s; 2555 a.cssMode || 2556 (a.autoHeight && s.updateAutoHeight(), 2557 N({ swiper: s, runCallbacks: e, direction: t, step: "Start" })); 2558 }, 2559 transitionEnd: function (e, t) { 2560 void 0 === e && (e = !0); 2561 const s = this, 2562 { params: a } = s; 2563 (s.animating = !1), 2564 a.cssMode || 2565 (s.setTransition(0), 2566 N({ swiper: s, runCallbacks: e, direction: t, step: "End" })); 2567 }, 2568 }, 2569 slide: H, 2570 loop: X, 2571 grabCursor: { 2572 setGrabCursor: function (e) { 2573 const t = this; 2574 if ( 2575 !t.params.simulateTouch || 2576 (t.params.watchOverflow && t.isLocked) || 2577 t.params.cssMode 2578 ) 2579 return; 2580 const s = 2581 "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl; 2582 t.isElement && (t.__preventObserver__ = !0), 2583 (s.style.cursor = "move"), 2584 (s.style.cursor = e ? "grabbing" : "grab"), 2585 t.isElement && 2586 requestAnimationFrame(() => { 2587 t.__preventObserver__ = !1; 2588 }); 2589 }, 2590 unsetGrabCursor: function () { 2591 const e = this; 2592 (e.params.watchOverflow && e.isLocked) || 2593 e.params.cssMode || 2594 (e.isElement && (e.__preventObserver__ = !0), 2595 (e[ 2596 "container" === e.params.touchEventsTarget ? "el" : "wrapperEl" 2597 ].style.cursor = ""), 2598 e.isElement && 2599 requestAnimationFrame(() => { 2600 e.__preventObserver__ = !1; 2601 })); 2602 }, 2603 }, 2604 events: { 2605 attachEvents: function () { 2606 const e = this, 2607 { params: t } = e; 2608 (e.onTouchStart = B.bind(e)), 2609 (e.onTouchMove = R.bind(e)), 2610 (e.onTouchEnd = q.bind(e)), 2611 (e.onDocumentTouchStart = j.bind(e)), 2612 t.cssMode && (e.onScroll = _.bind(e)), 2613 (e.onClick = V.bind(e)), 2614 (e.onLoad = W.bind(e)), 2615 U(e, "on"); 2616 }, 2617 detachEvents: function () { 2618 U(this, "off"); 2619 }, 2620 }, 2621 breakpoints: { 2622 setBreakpoint: function () { 2623 const e = this, 2624 { realIndex: t, initialized: s, params: a, el: i } = e, 2625 r = a.breakpoints; 2626 if (!r || (r && 0 === Object.keys(r).length)) return;
2627 const n = e.getBreakpoint(r, e.params.breakpointsBase, e.el); 2628 if (!n || e.currentBreakpoint === n) return; 2629 const l = (n in r ? r[n] : void 0) || e.originalParams, 2630 o = K(e, a), 2631 d = K(e, l), 2632 c = a.enabled; 2633 o && !d 2634 ? (i.classList.remove( 2635 `${a.containerModifierClass}grid`, 2636 `${a.containerModifierClass}grid-column` 2637 ), 2638 e.emitContainerClasses()) 2639 : !o && 2640 d && 2641 (i.classList.add(`${a.containerModifierClass}grid`), 2642 ((l.grid.fill && "column" === l.grid.fill) || 2643 (!l.grid.fill && "column" === a.grid.fill)) && 2644 i.classList.add(`${a.containerModifierClass}grid-column`), 2645 e.emitContainerClasses()), 2646 ["navigation", "pagination", "scrollbar"].forEach((t) => { 2647 if (void 0 === l[t]) return; 2648 const s = a[t] && a[t].enabled, 2649 i = l[t] && l[t].enabled; 2650 s && !i && e[t].disable(), !s && i && e[t].enable(); 2651 }); 2652 const u = l.direction && l.direction !== a.direction, 2653 m = a.loop && (l.slidesPerView !== a.slidesPerView || u), 2654 h = a.loop; 2655 u && s && e.changeDirection(), p(e.params, l); 2656 const f = e.params.enabled, 2657 g = e.params.loop; 2658 Object.assign(e, { 2659 allowTouchMove: e.params.allowTouchMove, 2660 allowSlideNext: e.params.allowSlideNext, 2661 allowSlidePrev: e.params.allowSlidePrev, 2662 }), 2663 c && !f ? e.disable() : !c && f && e.enable(), 2664 (e.currentBreakpoint = n), 2665 e.emit("_beforeBreakpoint", l), 2666 s && 2667 (m 2668 ? (e.loopDestroy(), e.loopCreate(t), e.updateSlides()) 2669 : !h && g 2670 ? (e.loopCreate(t), e.updateSlides()) 2671 : h && !g && e.loopDestroy()), 2672 e.emit("breakpoint", l); 2673 }, 2674 getBreakpoint: function (e, t, s) { 2675 if ((void 0 === t && (t = "window"), !e || ("container" === t && !s))) 2676 return; 2677 let a = !1; 2678 const i = r(), 2679 n = "window" === t ? i.innerHeight : s.clientHeight, 2680 l = Object.keys(e).map((e) => { 2681 if ("string" == typeof e && 0 === e.indexOf("@")) { 2682 const t = parseFloat(e.substr(1)); 2683 return { value: n * t, point: e }; 2684 } 2685 return { value: e, point: e }; 2686 }); 2687 l.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10)); 2688 for (let e = 0; e < l.length; e += 1) { 2689 const { point: r, value: n } = l[e]; 2690 "window" === t 2691 ? i.matchMedia(`(min-width: ${n}px)`).matches && (a = r) 2692 : n <= s.clientWidth && (a = r); 2693 } 2694 return a || "max"; 2695 }, 2696 }, 2697 checkOverflow: { 2698 checkOverflow: function () { 2699 const e = this, 2700 { isLocked: t, params: s } = e, 2701 { slidesOffsetBefore: a } = s; 2702 if (a) { 2703 const t = e.slides.length - 1, 2704 s = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * a; 2705 e.isLocked = e.size > s; 2706 } else e.isLocked = 1 === e.snapGrid.length; 2707 !0 === s.allowSlideNext && (e.allowSlideNext = !e.isLocked), 2708 !0 === s.allowSlidePrev && (e.allowSlidePrev = !e.isLocked), 2709 t && t !== e.isLocked && (e.isEnd = !1), 2710 t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"); 2711 }, 2712 }, 2713 classes: { 2714 addClasses: function () { 2715 const e = this, 2716 { classNames: t, params: s, rtl: a, el: i, device: r } = e, 2717 n = (function (e, t) { 2718 const s = []; 2719 return ( 2720 e.forEach((e) => { 2721 "object" == typeof e 2722 ? Object.keys(e).forEach((a) => { 2723 e[a] && s.push(t + a); 2724 }) 2725 : "string" == typeof e && s.push(t + e); 2726 }), 2727 s 2728 ); 2729 })( 2730 [ 2731 "initialized", 2732 s.direction, 2733 { "free-mode": e.params.freeMode && s.freeMode.enabled }, 2734 { autoheight: s.autoHeight }, 2735 { rtl: a }, 2736 { grid: s.grid && s.grid.rows > 1 }, 2737 { 2738 "grid-column": 2739 s.grid && s.grid.rows > 1 && "column" === s.grid.fill, 2740 }, 2741 { android: r.android }, 2742 { ios: r.ios }, 2743 { "css-mode": s.cssMode }, 2744 { centered: s.cssMode && s.centeredSlides }, 2745 { "watch-progress": s.watchSlidesProgress }, 2746 ], 2747 s.containerModifierClass 2748 ); 2749 t.push(...n), i.classList.add(...t), e.emitContainerClasses(); 2750 }, 2751 removeClasses: function () { 2752 const { el: e, classNames: t } = this; 2753 e.classList.remove(...t), this.emitContainerClasses(); 2754 }, 2755 }, 2756 }, 2757 ee = {}; 2758 class te { 2759 constructor() { 2760 let e, t; 2761 for (var s = arguments.length, i = new Array(s), r = 0; r < s; r++) 2762 i[r] = arguments[r]; 2763 1 === i.length && 2764 i[0].constructor && 2765 "Object" === Object.prototype.toString.call(i[0]).slice(8, -1) 2766 ? (t = i[0]) 2767 : ([e, t] = i), 2768 t || (t = {}), 2769 (t = p({}, t)), 2770 e && !t.el && (t.el = e); 2771 const n = a(); 2772 if ( 2773 t.el && 2774 "string" == typeof t.el && 2775 n.querySelectorAll(t.el).length > 1 2776 ) { 2777 const e = []; 2778 return ( 2779 n.querySelectorAll(t.el).forEach((s) => { 2780 const a = p({}, t, { el: s }); 2781 e.push(new te(a)); 2782 }), 2783 e 2784 ); 2785 } 2786 const l = this; 2787 (l.__swiper__ = !0), 2788 (l.support = L()), 2789 (l.device = I({ userAgent: t.userAgent })), 2790 (l.browser = z()), 2791 (l.eventsListeners = {}), 2792 (l.eventsAnyListeners = []), 2793 (l.modules = [...l.__modules__]), 2794 t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules); 2795 const o = {};
2796 l.modules.forEach((e) => { 2797 e({ 2798 params: t, 2799 swiper: l, 2800 extendParams: Q(t, o), 2801 on: l.on.bind(l), 2802 once: l.once.bind(l), 2803 off: l.off.bind(l), 2804 emit: l.emit.bind(l), 2805 }); 2806 }); 2807 const d = p({}, Z, o); 2808 return ( 2809 (l.params = p({}, d, ee, t)), 2810 (l.originalParams = p({}, l.params)), 2811 (l.passedParams = p({}, t)), 2812 l.params && 2813 l.params.on && 2814 Object.keys(l.params.on).forEach((e) => { 2815 l.on(e, l.params.on[e]); 2816 }), 2817 l.params && l.params.onAny && l.onAny(l.params.onAny), 2818 Object.assign(l, { 2819 enabled: l.params.enabled, 2820 el: e, 2821 classNames: [], 2822 slides: [], 2823 slidesGrid: [], 2824 snapGrid: [], 2825 slidesSizesGrid: [], 2826 isHorizontal: () => "horizontal" === l.params.direction, 2827 isVertical: () => "vertical" === l.params.direction, 2828 activeIndex: 0, 2829 realIndex: 0, 2830 isBeginning: !0, 2831 isEnd: !1, 2832 translate: 0, 2833 previousTranslate: 0, 2834 progress: 0, 2835 velocity: 0, 2836 animating: !1, 2837 cssOverflowAdjustment() { 2838 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 2839 }, 2840 allowSlideNext: l.params.allowSlideNext, 2841 allowSlidePrev: l.params.allowSlidePrev, 2842 touchEventsData: { 2843 isTouched: void 0, 2844 isMoved: void 0, 2845 allowTouchCallbacks: void 0, 2846 touchStartTime: void 0, 2847 isScrolling: void 0, 2848 currentTranslate: void 0, 2849 startTranslate: void 0, 2850 allowThresholdMove: void 0, 2851 focusableElements: l.params.focusableElements, 2852 lastClickTime: 0, 2853 clickTimeout: void 0, 2854 velocities: [], 2855 allowMomentumBounce: void 0, 2856 startMoving: void 0, 2857 pointerId: null, 2858 touchId: null, 2859 }, 2860 allowClick: !0, 2861 allowTouchMove: l.params.allowTouchMove, 2862 touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, 2863 imagesToLoad: [], 2864 imagesLoaded: 0, 2865 }), 2866 l.emit("_swiper"), 2867 l.params.init && l.init(), 2868 l 2869 ); 2870 } 2871 getDirectionLabel(e) { 2872 return this.isHorizontal() 2873 ? e 2874 : { 2875 width: "height", 2876 "margin-top": "margin-left", 2877 "margin-bottom ": "margin-right", 2878 "margin-left": "margin-top", 2879 "margin-right": "margin-bottom", 2880 "padding-left": "padding-top", 2881 "padding-right": "padding-bottom", 2882 marginRight: "marginBottom", 2883 }[e]; 2884 } 2885 getSlideIndex(e) { 2886 const { slidesEl: t, params: s } = this, 2887 a = y(f(t, `.${s.slideClass}, swiper-slide`)[0]); 2888 return y(e) - a; 2889 } 2890 getSlideIndexByData(e) { 2891 return this.getSlideIndex( 2892 this.slides.filter( 2893 (t) => 1 * t.getAttribute("data-swiper-slide-index") === e 2894 )[0] 2895 ); 2896 } 2897 recalcSlides() { 2898 const { slidesEl: e, params: t } = this; 2899 this.slides = f(e, `.${t.slideClass}, swiper-slide`); 2900 } 2901 enable() { 2902 const e = this; 2903 e.enabled || 2904 ((e.enabled = !0), 2905 e.params.grabCursor && e.setGrabCursor(), 2906 e.emit("enable")); 2907 } 2908 disable() { 2909 const e = this; 2910 e.enabled && 2911 ((e.enabled = !1), 2912 e.params.grabCursor && e.unsetGrabCursor(), 2913 e.emit("disable")); 2914 } 2915 setProgress(e, t) { 2916 const s = this; 2917 e = Math.min(Math.max(e, 0), 1); 2918 const a = s.minTranslate(), 2919 i = (s.maxTranslate() - a) * e + a; 2920 s.translateTo(i, void 0 === t ? 0 : t), 2921 s.updateActiveIndex(), 2922 s.updateSlidesClasses(); 2923 } 2924 emitContainerClasses() { 2925 const e = this; 2926 if (!e.params._emitClasses || !e.el) return; 2927 const t = e.el.className 2928 .split(" ") 2929 .filter( 2930 (t) => 2931 0 === t.indexOf("swiper") || 2932 0 === t.indexOf(e.params.containerModifierClass) 2933 ); 2934 e.emit("_containerClasses", t.join(" ")); 2935 } 2936 getSlideClasses(e) { 2937 const t = this; 2938 return t.destroyed 2939 ? "" 2940 : e.className 2941 .split(" ") 2942 .filter( 2943 (e) => 2944 0 === e.indexOf("swiper-slide") || 2945 0 === e.indexOf(t.params.slideClass) 2946 ) 2947 .join(" "); 2948 } 2949 emitSlidesClasses() { 2950 const e = this; 2951 if (!e.params._emitClasses || !e.el) return; 2952 const t = [];
2953 e.slides.forEach((s) => { 2954 const a = e.getSlideClasses(s); 2955 t.push({ slideEl: s, classNames: a }), e.emit("_slideClass", s, a); 2956 }), 2957 e.emit("_slideClasses", t); 2958 } 2959 slidesPerViewDynamic(e, t) { 2960 void 0 === e && (e = "current"), void 0 === t && (t = !1); 2961 const { 2962 params: s, 2963 slides: a, 2964 slidesGrid: i, 2965 slidesSizesGrid: r, 2966 size: n, 2967 activeIndex: l, 2968 } = this; 2969 let o = 1; 2970 if ("number" == typeof s.slidesPerView) return s.slidesPerView; 2971 if (s.centeredSlides) { 2972 let e, 2973 t = a[l] ? Math.ceil(a[l].swiperSlideSize) : 0; 2974 for (let s = l + 1; s < a.length; s += 1) 2975 a[s] && 2976 !e && 2977 ((t += Math.ceil(a[s].swiperSlideSize)), 2978 (o += 1), 2979 t > n && (e = !0)); 2980 for (let s = l - 1; s >= 0; s -= 1) 2981 a[s] && 2982 !e && 2983 ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0)); 2984 } else if ("current" === e) 2985 for (let e = l + 1; e < a.length; e += 1) { 2986 (t ? i[e] + r[e] - i[l] < n : i[e] - i[l] < n) && (o += 1); 2987 } 2988 else 2989 for (let e = l - 1; e >= 0; e -= 1) { 2990 i[l] - i[e] < n && (o += 1); 2991 } 2992 return o; 2993 } 2994 update() { 2995 const e = this; 2996 if (!e || e.destroyed) return; 2997 const { snapGrid: t, params: s } = e; 2998 function a() { 2999 const t = e.rtlTranslate ? -1 * e.translate : e.translate, 3000 s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); 3001 e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses(); 3002 } 3003 let i; 3004 if ( 3005 (s.breakpoints && e.setBreakpoint(), 3006 [...e.el.querySelectorAll('[loading="lazy"]')].forEach((t) => { 3007 t.complete && $(e, t); 3008 }), 3009 e.updateSize(), 3010 e.updateSlides(), 3011 e.updateProgress(), 3012 e.updateSlidesClasses(), 3013 s.freeMode && s.freeMode.enabled && !s.cssMode) 3014 ) 3015 a(), s.autoHeight && e.updateAutoHeight(); 3016 else { 3017 if ( 3018 ("auto" === s.slidesPerView || s.slidesPerView > 1) && 3019 e.isEnd && 3020 !s.centeredSlides 3021 ) { 3022 const t = 3023 e.virtual && s.virtual.enabled ? e.virtual.slides : e.slides; 3024 i = e.slideTo(t.length - 1, 0, !1, !0); 3025 } else i = e.slideTo(e.activeIndex, 0, !1, !0); 3026 i || a(); 3027 } 3028 s.watchOverflow && t !== e.snapGrid && e.checkOverflow(), 3029 e.emit("update"); 3030 } 3031 changeDirection(e, t) { 3032 void 0 === t && (t = !0); 3033 const s = this, 3034 a = s.params.direction; 3035 return ( 3036 e || (e = "horizontal" === a ? "vertical" : "horizontal"), 3037 e === a || 3038 ("horizontal" !== e && "vertical" !== e) || 3039 (s.el.classList.remove(`${s.params.containerModifierClass}${a}`), 3040 s.el.classList.add(`${s.params.containerModifierClass}${e}`), 3041 s.emitContainerClasses(), 3042 (s.params.direction = e), 3043 s.slides.forEach((t) => { 3044 "vertical" === e ? (t.style.width = "") : (t.style.height = ""); 3045 }), 3046 s.emit("changeDirection"), 3047 t && s.update()), 3048 s 3049 ); 3050 } 3051 changeLanguageDirection(e) { 3052 const t = this; 3053 (t.rtl && "rtl" === e) || 3054 (!t.rtl && "ltr" === e) || 3055 ((t.rtl = "rtl" === e), 3056 (t.rtlTranslate = "horizontal" === t.params.direction && t.rtl), 3057 t.rtl 3058 ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`), 3059 (t.el.dir = "rtl")) 3060 : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`), 3061 (t.el.dir = "ltr")), 3062 t.update()); 3063 } 3064 mount(e) { 3065 const t = this; 3066 if (t.mounted) return !0; 3067 let s = e || t.params.el; 3068 if (("string" == typeof s && (s = document.querySelector(s)), !s)) 3069 return !1; 3070 (s.swiper = t), 3071 s.parentNode && 3072 s.parentNode.host && 3073 s.parentNode.host.nodeName === 3074 t.params.swiperElementNodeName.toUpperCase() && 3075 (t.isElement = !0); 3076 const a = () => 3077 `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`; 3078 let i = (() => { 3079 if (s && s.shadowRoot && s.shadowRoot.querySelector) { 3080 return s.shadowRoot.querySelector(a()); 3081 } 3082 return f(s, a())[0]; 3083 })(); 3084 return ( 3085 !i && 3086 t.params.createElements && 3087 ((i = v("div", t.params.wrapperClass)), 3088 s.append(i), 3089 f(s, `.${t.params.slideClass}`).forEach((e) => { 3090 i.append(e); 3091 })), 3092 Object.assign(t, { 3093 el: s, 3094 wrapperEl: i, 3095 slidesEl: 3096 t.isElement && !s.parentNode.host.slideSlots 3097 ? s.parentNode.host 3098 : i, 3099 hostEl: t.isElement ? s.parentNode.host : s, 3100 mounted: !0, 3101 rtl: "rtl" === s.dir.toLowerCase() || "rtl" === b(s, "direction"), 3102 rtlTranslate: 3103 "horizontal" === t.params.direction && 3104 ("rtl" === s.dir.toLowerCase() || "rtl" === b(s, "direction")), 3105 wrongRTL: "-webkit-box" === b(i, "display"), 3106 }), 3107 !0 3108 ); 3109 } 3110 init(e) { 3111 const t = this; 3112 if (t.initialized) return t; 3113 if (!1 === t.mount(e)) return t; 3114 t.emit("beforeInit"), 3115 t.params.breakpoints && t.setBreakpoint(), 3116 t.addClasses(), 3117 t.updateSize(), 3118 t.updateSlides(), 3119 t.params.watchOverflow && t.checkOverflow(),
3120 t.params.grabCursor && t.enabled && t.setGrabCursor(), 3121 t.params.loop && t.virtual && t.params.virtual.enabled 3122 ? t.slideTo( 3123 t.params.initialSlide + t.virtual.slidesBefore, 3124 0, 3125 t.params.runCallbacksOnInit, 3126 !1, 3127 !0 3128 ) 3129 : t.slideTo( 3130 t.params.initialSlide, 3131 0, 3132 t.params.runCallbacksOnInit, 3133 !1, 3134 !0 3135 ), 3136 t.params.loop && t.loopCreate(), 3137 t.attachEvents(); 3138 const s = [...t.el.querySelectorAll('[loading="lazy"]')]; 3139 return ( 3140 t.isElement && s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')), 3141 s.forEach((e) => { 3142 e.complete 3143 ? $(t, e) 3144 : e.addEventListener("load", (e) => { 3145 $(t, e.target); 3146 }); 3147 }), 3148 O(t), 3149 (t.initialized = !0), 3150 O(t), 3151 t.emit("init"), 3152 t.emit("afterInit"), 3153 t 3154 ); 3155 } 3156 destroy(e, t) { 3157 void 0 === e && (e = !0), void 0 === t && (t = !0); 3158 const s = this, 3159 { params: a, el: i, wrapperEl: r, slides: n } = s; 3160 return ( 3161 void 0 === s.params || 3162 s.destroyed || 3163 (s.emit("beforeDestroy"), 3164 (s.initialized = !1), 3165 s.detachEvents(), 3166 a.loop && s.loopDestroy(), 3167 t && 3168 (s.removeClasses(), 3169 i.removeAttribute("style"), 3170 r.removeAttribute("style"), 3171 n && 3172 n.length && 3173 n.forEach((e) => { 3174 e.classList.remove( 3175 a.slideVisibleClass, 3176 a.slideFullyVisibleClass, 3177 a.slideActiveClass, 3178 a.slideNextClass, 3179 a.slidePrevClass 3180 ), 3181 e.removeAttribute("style"), 3182 e.removeAttribute("data-swiper-slide-index"); 3183 })), 3184 s.emit("destroy"), 3185 Object.keys(s.eventsListeners).forEach((e) => { 3186 s.off(e); 3187 }), 3188 !1 !== e && 3189 ((s.el.swiper = null), 3190 (function (e) { 3191 const t = e; 3192 Object.keys(t).forEach((e) => { 3193 try { 3194 t[e] = null; 3195 } catch (e) {} 3196 try { 3197 delete t[e]; 3198 } catch (e) {} 3199 }); 3200 })(s)), 3201 (s.destroyed = !0)), 3202 null 3203 ); 3204 } 3205 static extendDefaults(e) { 3206 p(ee, e); 3207 } 3208 static get extendedDefaults() { 3209 return ee; 3210 } 3211 static get defaults() { 3212 return Z; 3213 } 3214 static installModule(e) { 3215 te.prototype.__modules__ || (te.prototype.__modules__ = []); 3216 const t = te.prototype.__modules__; 3217 "function" == typeof e && t.indexOf(e) < 0 && t.push(e); 3218 } 3219 static use(e) { 3220 return Array.isArray(e) 3221 ? (e.forEach((e) => te.installModule(e)), te) 3222 : (te.installModule(e), te); 3223 } 3224 } 3225 function se(e, t, s, a) { 3226 return ( 3227 e.params.createElements && 3228 Object.keys(a).forEach((i) => { 3229 if (!s[i] && !0 === s.auto) { 3230 let r = f(e.el, `.${a[i]}`)[0]; 3231 r || ((r = v("div", a[i])), (r.className = a[i]), e.el.append(r)), 3232 (s[i] = r), 3233 (t[i] = r); 3234 } 3235 }), 3236 s 3237 ); 3238 } 3239 function ae(e) { 3240 return ( 3241 void 0 === e && (e = ""), 3242 `.${e 3243 .trim() 3244 .replace(/([\.:!+\/])/g, "\\$1") 3245 .replace(/ /g, ".")}` 3246 ); 3247 } 3248 function ie(e) { 3249 const t = this, 3250 { params: s, slidesEl: a } = t; 3251 s.loop && t.loopDestroy(); 3252 const i = (e) => { 3253 if ("string" == typeof e) { 3254 const t = document.createElement("div"); 3255 (t.innerHTML = e), a.append(t.children[0]), (t.innerHTML = ""); 3256 } else a.append(e); 3257 }; 3258 if ("object" == typeof e && "length" in e) 3259 for (let t = 0; t < e.length; t += 1) e[t] && i(e[t]); 3260 else i(e); 3261 t.recalcSlides(), 3262 s.loop && t.loopCreate(),
3263 (s.observer && !t.isElement) || t.update(); 3264 } 3265 function re(e) { 3266 const t = this, 3267 { params: s, activeIndex: a, slidesEl: i } = t; 3268 s.loop && t.loopDestroy(); 3269 let r = a + 1; 3270 const n = (e) => { 3271 if ("string" == typeof e) { 3272 const t = document.createElement("div"); 3273 (t.innerHTML = e), i.prepend(t.children[0]), (t.innerHTML = ""); 3274 } else i.prepend(e); 3275 }; 3276 if ("object" == typeof e && "length" in e) { 3277 for (let t = 0; t < e.length; t += 1) e[t] && n(e[t]); 3278 r = a + e.length; 3279 } else n(e); 3280 t.recalcSlides(), 3281 s.loop && t.loopCreate(), 3282 (s.observer && !t.isElement) || t.update(), 3283 t.slideTo(r, 0, !1); 3284 } 3285 function ne(e, t) { 3286 const s = this, 3287 { params: a, activeIndex: i, slidesEl: r } = s; 3288 let n = i; 3289 a.loop && ((n -= s.loopedSlides), s.loopDestroy(), s.recalcSlides()); 3290 const l = s.slides.length; 3291 if (e <= 0) return void s.prependSlide(t); 3292 if (e >= l) return void s.appendSlide(t); 3293 let o = n > e ? n + 1 : n; 3294 const d = []; 3295 for (let t = l - 1; t >= e; t -= 1) { 3296 const e = s.slides[t]; 3297 e.remove(), d.unshift(e); 3298 } 3299 if ("object" == typeof t && "length" in t) { 3300 for (let e = 0; e < t.length; e += 1) t[e] && r.append(t[e]); 3301 o = n > e ? n + t.length : n; 3302 } else r.append(t); 3303 for (let e = 0; e < d.length; e += 1) r.append(d[e]); 3304 s.recalcSlides(), 3305 a.loop && s.loopCreate(), 3306 (a.observer && !s.isElement) || s.update(), 3307 a.loop ? s.slideTo(o + s.loopedSlides, 0, !1) : s.slideTo(o, 0, !1); 3308 } 3309 function le(e) { 3310 const t = this, 3311 { params: s, activeIndex: a } = t; 3312 let i = a; 3313 s.loop && ((i -= t.loopedSlides), t.loopDestroy()); 3314 let r, 3315 n = i; 3316 if ("object" == typeof e && "length" in e) { 3317 for (let s = 0; s < e.length; s += 1) 3318 (r = e[s]), t.slides[r] && t.slides[r].remove(), r < n && (n -= 1); 3319 n = Math.max(n, 0); 3320 } else 3321 (r = e), 3322 t.slides[r] && t.slides[r].remove(), 3323 r < n && (n -= 1), 3324 (n = Math.max(n, 0)); 3325 t.recalcSlides(), 3326 s.loop && t.loopCreate(), 3327 (s.observer && !t.isElement) || t.update(), 3328 s.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1); 3329 } 3330 function oe() { 3331 const e = this, 3332 t = []; 3333 for (let s = 0; s < e.slides.length; s += 1) t.push(s); 3334 e.removeSlide(t); 3335 } 3336 function de(e) { 3337 const { 3338 effect: t, 3339 swiper: s, 3340 on: a, 3341 setTranslate: i, 3342 setTransition: r, 3343 overwriteParams: n, 3344 perspective: l, 3345 recreateShadows: o, 3346 getEffectParams: d, 3347 } = e;
3348 let c; 3349 a("beforeInit", () => { 3350 if (s.params.effect !== t) return; 3351 s.classNames.push(`${s.params.containerModifierClass}${t}`), 3352 l && l() && s.classNames.push(`${s.params.containerModifierClass}3d`); 3353 const e = n ? n() : {}; 3354 Object.assign(s.params, e), Object.assign(s.originalParams, e); 3355 }), 3356 a("setTranslate", () => { 3357 s.params.effect === t && i(); 3358 }), 3359 a("setTransition", (e, a) => { 3360 s.params.effect === t && r(a); 3361 }), 3362 a("transitionEnd", () => { 3363 if (s.params.effect === t && o) { 3364 if (!d || !d().slideShadows) return; 3365 s.slides.forEach((e) => { 3366 e.querySelectorAll( 3367 ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" 3368 ).forEach((e) => e.remove()); 3369 }), 3370 o(); 3371 } 3372 }), 3373 a("virtualUpdate", () => { 3374 s.params.effect === t && 3375 (s.slides.length || (c = !0), 3376 requestAnimationFrame(() => { 3377 c && s.slides && s.slides.length && (i(), (c = !1)); 3378 })); 3379 }); 3380 } 3381 function ce(e, t) { 3382 const s = h(t); 3383 return ( 3384 s !== t && 3385 ((s.style.backfaceVisibility = "hidden"), 3386 (s.style["-webkit-backface-visibility"] = "hidden")), 3387 s 3388 ); 3389 } 3390 function pe(e) { 3391 let { swiper: t, duration: s, transformElements: a, allSlides: i } = e; 3392 const { activeIndex: r } = t; 3393 if (t.params.virtualTranslate && 0 !== s) { 3394 let e, 3395 s = !1; 3396 (e = i 3397 ? a 3398 : a.filter((e) => { 3399 const s = e.classList.contains("swiper-slide-transform") 3400 ? ((e) => { 3401 if (!e.parentElement) 3402 return t.slides.filter( 3403 (t) => t.shadowRoot && t.shadowRoot === e.parentNode 3404 )[0]; 3405 return e.parentElement; 3406 })(e) 3407 : e; 3408 return t.getSlideIndex(s) === r; 3409 })), 3410 e.forEach((e) => { 3411 x(e, () => { 3412 if (s) return; 3413 if (!t || t.destroyed) return; 3414 (s = !0), (t.animating = !1); 3415 const e = new window.CustomEvent("transitionend", { 3416 bubbles: !0, 3417 cancelable: !0, 3418 }); 3419 t.wrapperEl.dispatchEvent(e); 3420 }); 3421 }); 3422 } 3423 } 3424 function ue(e, t, s) { 3425 const a = `swiper-slide-shadow${s ? `-${s}` : ""}${ 3426 e ? ` swiper-slide-shadow-${e}` : "" 3427 }`, 3428 i = h(t); 3429 let r = i.querySelector(`.${a.split(" ").join(".")}`); 3430 return r || ((r = v("div", a.split(" "))), i.append(r)), r; 3431 } 3432 Object.keys(J).forEach((e) => {
3433 Object.keys(J[e]).forEach((t) => { 3434 te.prototype[t] = J[e][t]; 3435 }); 3436 }), 3437 te.use([ 3438 function (e) { 3439 let { swiper: t, on: s, emit: a } = e; 3440 const i = r(); 3441 let n = null, 3442 l = null; 3443 const o = () => { 3444 t && 3445 !t.destroyed && 3446 t.initialized && 3447 (a("beforeResize"), a("resize")); 3448 }, 3449 d = () => { 3450 t && !t.destroyed && t.initialized && a("orientationchange"); 3451 }; 3452 s("init", () => { 3453 t.params.resizeObserver && void 0 !== i.ResizeObserver 3454 ? t && 3455 !t.destroyed && 3456 t.initialized && 3457 ((n = new ResizeObserver((e) => { 3458 l = i.requestAnimationFrame(() => { 3459 const { width: s, height: a } = t; 3460 let i = s, 3461 r = a; 3462 e.forEach((e) => { 3463 let { contentBoxSize: s, contentRect: a, target: n } = e; 3464 (n && n !== t.el) || 3465 ((i = a ? a.width : (s[0] || s).inlineSize), 3466 (r = a ? a.height : (s[0] || s).blockSize)); 3467 }), 3468 (i === s && r === a) || o(); 3469 }); 3470 })), 3471 n.observe(t.el)) 3472 : (i.addEventListener("resize", o), 3473 i.addEventListener("orientationchange", d)); 3474 }), 3475 s("destroy", () => { 3476 l && i.cancelAnimationFrame(l), 3477 n && n.unobserve && t.el && (n.unobserve(t.el), (n = null)), 3478 i.removeEventListener("resize", o), 3479 i.removeEventListener("orientationchange", d); 3480 }); 3481 }, 3482 function (e) { 3483 let { swiper: t, extendParams: s, on: a, emit: i } = e; 3484 const n = [], 3485 l = r(), 3486 o = function (e, s) { 3487 void 0 === s && (s = {}); 3488 const a = new (l.MutationObserver || l.WebkitMutationObserver)( 3489 (e) => { 3490 if (t.__preventObserver__) return; 3491 if (1 === e.length) return void i("observerUpdate", e[0]); 3492 const s = function () { 3493 i("observerUpdate", e[0]); 3494 }; 3495 l.requestAnimationFrame 3496 ? l.requestAnimationFrame(s) 3497 : l.setTimeout(s, 0); 3498 } 3499 ); 3500 a.observe(e, { 3501 attributes: void 0 === s.attributes || s.attributes, 3502 childList: void 0 === s.childList || s.childList, 3503 characterData: void 0 === s.characterData || s.characterData, 3504 }), 3505 n.push(a); 3506 }; 3507 s({ observer: !1, observeParents: !1, observeSlideChildren: !1 }), 3508 a("init", () => { 3509 if (t.params.observer) { 3510 if (t.params.observeParents) { 3511 const e = E(t.hostEl); 3512 for (let t = 0; t < e.length; t += 1) o(e[t]); 3513 } 3514 o(t.hostEl, { childList: t.params.observeSlideChildren }), 3515 o(t.wrapperEl, { attributes: !1 }); 3516 } 3517 }), 3518 a("destroy", () => { 3519 n.forEach((e) => { 3520 e.disconnect(); 3521 }), 3522 n.splice(0, n.length); 3523 }); 3524 }, 3525 ]); 3526 const me = [ 3527 function (e) { 3528 let t, 3529 { swiper: s, extendParams: i, on: r, emit: n } = e; 3530 i({ 3531 virtual: { 3532 enabled: !1, 3533 slides: [], 3534 cache: !0, 3535 renderSlide: null, 3536 renderExternal: null, 3537 renderExternalUpdate: !0, 3538 addSlidesBefore: 0, 3539 addSlidesAfter: 0, 3540 }, 3541 }); 3542 const l = a(); 3543 s.virtual = { 3544 cache: {}, 3545 from: void 0, 3546 to: void 0, 3547 slides: [], 3548 offset: 0, 3549 slidesGrid: [], 3550 }; 3551 const o = l.createElement("div"); 3552 function d(e, t) { 3553 const a = s.params.virtual; 3554 if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t]; 3555 let i; 3556 return ( 3557 a.renderSlide 3558 ? ((i = a.renderSlide.call(s, e, t)), 3559 "string" == typeof i && ((o.innerHTML = i), (i = o.children[0]))) 3560 : (i = s.isElement 3561 ? v("swiper-slide") 3562 : v("div", s.params.slideClass)), 3563 i.setAttribute("data-swiper-slide-index", t), 3564 a.renderSlide || (i.innerHTML = e), 3565 a.cache && (s.virtual.cache[t] = i), 3566 i 3567 ); 3568 } 3569 function c(e) { 3570 const { 3571 slidesPerView: t, 3572 slidesPerGroup: a, 3573 centeredSlides: i, 3574 loop: r, 3575 } = s.params, 3576 { addSlidesBefore: l, addSlidesAfter: o } = s.params.virtual, 3577 { from: c, to: p, slides: u, slidesGrid: m, offset: h } = s.virtual; 3578 s.params.cssMode || s.updateActiveIndex(); 3579 const g = s.activeIndex || 0; 3580 let v, w, b; 3581 (v = s.rtlTranslate ? "right" : s.isHorizontal() ? "left" : "top"), 3582 i 3583 ? ((w = Math.floor(t / 2) + a + o), (b = Math.floor(t / 2) + a + l)) 3584 : ((w = t + (a - 1) + o), (b = (r ? t : a) + l)); 3585 let y = g - b, 3586 E = g + w; 3587 r || ((y = Math.max(y, 0)), (E = Math.min(E, u.length - 1))); 3588 let x = (s.slidesGrid[y] || 0) - (s.slidesGrid[0] || 0); 3589 function S() { 3590 s.updateSlides(), 3591 s.updateProgress(), 3592 s.updateSlidesClasses(), 3593 n("virtualUpdate"); 3594 } 3595 if ( 3596 (r && g >= b 3597 ? ((y -= b), i || (x += s.slidesGrid[0])) 3598 : r && g < b && ((y = -b), i && (x += s.slidesGrid[0])), 3599 Object.assign(s.virtual, { 3600 from: y, 3601 to: E, 3602 offset: x, 3603 slidesGrid: s.slidesGrid, 3604 slidesBefore: b, 3605 slidesAfter: w, 3606 }), 3607 c === y && p === E && !e) 3608 ) 3609 return ( 3610 s.slidesGrid !== m && 3611 x !== h &&
3612 s.slides.forEach((e) => { 3613 e.style[v] = x - Math.abs(s.cssOverflowAdjustment()) + "px"; 3614 }), 3615 s.updateProgress(), 3616 void n("virtualUpdate") 3617 ); 3618 if (s.params.virtual.renderExternal) 3619 return ( 3620 s.params.virtual.renderExternal.call(s, { 3621 offset: x, 3622 from: y, 3623 to: E, 3624 slides: (function () { 3625 const e = []; 3626 for (let t = y; t <= E; t += 1) e.push(u[t]); 3627 return e; 3628 })(), 3629 }), 3630 void (s.params.virtual.renderExternalUpdate 3631 ? S() 3632 : n("virtualUpdate")) 3633 ); 3634 const T = [], 3635 M = [], 3636 C = (e) => { 3637 let t = e; 3638 return ( 3639 e < 0 ? (t = u.length + e) : t >= u.length && (t -= u.length), t 3640 ); 3641 }; 3642 if (e) 3643 s.slides 3644 .filter((e) => e.matches(`.${s.params.slideClass}, swiper-slide`)) 3645 .forEach((e) => { 3646 e.remove(); 3647 }); 3648 else 3649 for (let e = c; e <= p; e += 1) 3650 if (e < y || e > E) { 3651 const t = C(e); 3652 s.slides 3653 .filter((e) => 3654 e.matches( 3655 `.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]` 3656 ) 3657 ) 3658 .forEach((e) => { 3659 e.remove(); 3660 }); 3661 } 3662 const P = r ? -u.length : 0, 3663 L = r ? 2 * u.length : u.length; 3664 for (let t = P; t < L; t += 1) 3665 if (t >= y && t <= E) { 3666 const s = C(t); 3667 void 0 === p || e 3668 ? M.push(s) 3669 : (t > p && M.push(s), t < c && T.push(s)); 3670 } 3671 if ( 3672 (M.forEach((e) => { 3673 s.slidesEl.append(d(u[e], e)); 3674 }), 3675 r) 3676 ) 3677 for (let e = T.length - 1; e >= 0; e -= 1) { 3678 const t = T[e]; 3679 s.slidesEl.prepend(d(u[t], t)); 3680 } 3681 else 3682 T.sort((e, t) => t - e), 3683 T.forEach((e) => { 3684 s.slidesEl.prepend(d(u[e], e)); 3685 }); 3686 f(s.slidesEl, ".swiper-slide, swiper-slide").forEach((e) => { 3687 e.style[v] = x - Math.abs(s.cssOverflowAdjustment()) + "px"; 3688 }), 3689 S(); 3690 } 3691 r("beforeInit", () => { 3692 if (!s.params.virtual.enabled) return; 3693 let e; 3694 if (void 0 === s.passedParams.virtual.slides) { 3695 const t = [...s.slidesEl.children].filter((e) => 3696 e.matches(`.${s.params.slideClass}, swiper-slide`) 3697 ); 3698 t && 3699 t.length && 3700 ((s.virtual.slides = [...t]), 3701 (e = !0), 3702 t.forEach((e, t) => { 3703 e.setAttribute("data-swiper-slide-index", t), 3704 (s.virtual.cache[t] = e), 3705 e.remove(); 3706 })); 3707 } 3708 e || (s.virtual.slides = s.params.virtual.slides), 3709 s.classNames.push(`${s.params.containerModifierClass}virtual`), 3710 (s.params.watchSlidesProgress = !0), 3711 (s.originalParams.watchSlidesProgress = !0), 3712 c(); 3713 }), 3714 r("setTranslate", () => { 3715 s.params.virtual.enabled && 3716 (s.params.cssMode && !s._immediateVirtual 3717 ? (clearTimeout(t), 3718 (t = setTimeout(() => { 3719 c(); 3720 }, 100))) 3721 : c()); 3722 }), 3723 r("init update resize", () => { 3724 s.params.virtual.enabled && 3725 s.params.cssMode && 3726 u(s.wrapperEl, "--swiper-virtual-size", `${s.virtualSize}px`); 3727 }), 3728 Object.assign(s.virtual, { 3729 appendSlide: function (e) { 3730 if ("object" == typeof e && "length" in e) 3731 for (let t = 0; t < e.length; t += 1) 3732 e[t] && s.virtual.slides.push(e[t]); 3733 else s.virtual.slides.push(e); 3734 c(!0); 3735 }, 3736 prependSlide: function (e) { 3737 const t = s.activeIndex; 3738 let a = t + 1, 3739 i = 1; 3740 if (Array.isArray(e)) { 3741 for (let t = 0; t < e.length; t += 1) 3742 e[t] && s.virtual.slides.unshift(e[t]); 3743 (a = t + e.length), (i = e.length); 3744 } else s.virtual.slides.unshift(e); 3745 if (s.params.virtual.cache) { 3746 const e = s.virtual.cache, 3747 t = {}; 3748 Object.keys(e).forEach((s) => { 3749 const a = e[s], 3750 r = a.getAttribute("data-swiper-slide-index"); 3751 r && 3752 a.setAttribute( 3753 "data-swiper-slide-index", 3754 parseInt(r, 10) + i 3755 ), 3756 (t[parseInt(s, 10) + i] = a); 3757 }), 3758 (s.virtual.cache = t); 3759 } 3760 c(!0), s.slideTo(a, 0); 3761 }, 3762 removeSlide: function (e) { 3763 if (null == e) return; 3764 let t = s.activeIndex; 3765 if (Array.isArray(e)) 3766 for (let a = e.length - 1; a >= 0; a -= 1) 3767 s.params.virtual.cache && 3768 (delete s.virtual.cache[e[a]], 3769 Object.keys(s.virtual.cache).forEach((t) => { 3770 t > e && 3771 ((s.virtual.cache[t - 1] = s.virtual.cache[t]), 3772 s.virtual.cache[t - 1].setAttribute( 3773 "data-swiper-slide-index", 3774 t - 1 3775 ), 3776 delete s.virtual.cache[t]); 3777 })), 3778 s.virtual.slides.splice(e[a], 1), 3779 e[a] < t && (t -= 1), 3780 (t = Math.max(t, 0)); 3781 else 3782 s.params.virtual.cache && 3783 (delete s.virtual.cache[e], 3784 Object.keys(s.virtual.cache).forEach((t) => { 3785 t > e && 3786 ((s.virtual.cache[t - 1] = s.virtual.cache[t]), 3787 s.virtual.cache[t - 1].setAttribute( 3788 "data-swiper-slide-index", 3789 t - 1 3790 ), 3791 delete s.virtual.cache[t]); 3792 })), 3793 s.virtual.slides.splice(e, 1), 3794 e < t && (t -= 1), 3795 (t = Math.max(t, 0)); 3796 c(!0), s.slideTo(t, 0); 3797 }, 3798 removeAllSlides: function () { 3799 (s.virtual.slides = []), 3800 s.params.virtual.cache && (s.virtual.cache = {}), 3801 c(!0), 3802 s.slideTo(0, 0); 3803 }, 3804 update: c, 3805 }); 3806 }, 3807 function (e) { 3808 let { swiper: t, extendParams: s, on: i, emit: n } = e; 3809 const l = a(), 3810 o = r(); 3811 function d(e) { 3812 if (!t.enabled) return; 3813 const { rtlTranslate: s } = t; 3814 let a = e; 3815 a.originalEvent && (a = a.originalEvent); 3816 const i = a.keyCode || a.charCode, 3817 r = t.params.keyboard.pageUpDown, 3818 d = r && 33 === i, 3819 c = r && 34 === i, 3820 p = 37 === i, 3821 u = 39 === i, 3822 m = 38 === i, 3823 h = 40 === i; 3824 if ( 3825 !t.allowSlideNext && 3826 ((t.isHorizontal() && u) || (t.isVertical() && h) || c) 3827 ) 3828 return !1; 3829 if ( 3830 !t.allowSlidePrev && 3831 ((t.isHorizontal() && p) || (t.isVertical() && m) || d) 3832 ) 3833 return !1; 3834 if ( 3835 !( 3836 a.shiftKey || 3837 a.altKey || 3838 a.ctrlKey || 3839 a.metaKey || 3840 (l.activeElement && 3841 l.activeElement.nodeName && 3842 ("input" === l.activeElement.nodeName.toLowerCase() || 3843 "textarea" === l.activeElement.nodeName.toLowerCase())) 3844 ) 3845 ) { 3846 if ( 3847 t.params.keyboard.onlyInViewport && 3848 (d || c || p || u || m || h) 3849 ) { 3850 let e = !1; 3851 if ( 3852 E(t.el, `.${t.params.slideClass}, swiper-slide`).length > 0 && 3853 0 === E(t.el, `.${t.params.slideActiveClass}`).length 3854 ) 3855 return; 3856 const a = t.el, 3857 i = a.clientWidth,
3858 r = a.clientHeight, 3859 n = o.innerWidth, 3860 l = o.innerHeight, 3861 d = w(a); 3862 s && (d.left -= a.scrollLeft); 3863 const c = [ 3864 [d.left, d.top], 3865 [d.left + i, d.top], 3866 [d.left, d.top + r], 3867 [d.left + i, d.top + r], 3868 ]; 3869 for (let t = 0; t < c.length; t += 1) { 3870 const s = c[t]; 3871 if (s[0] >= 0 && s[0] <= n && s[1] >= 0 && s[1] <= l) { 3872 if (0 === s[0] && 0 === s[1]) continue; 3873 e = !0; 3874 } 3875 } 3876 if (!e) return; 3877 } 3878 t.isHorizontal() 3879 ? ((d || c || p || u) && 3880 (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)), 3881 (((c || u) && !s) || ((d || p) && s)) && t.slideNext(), 3882 (((d || p) && !s) || ((c || u) && s)) && t.slidePrev()) 3883 : ((d || c || m || h) && 3884 (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)), 3885 (c || h) && t.slideNext(), 3886 (d || m) && t.slidePrev()), 3887 n("keyPress", i); 3888 } 3889 } 3890 function c() { 3891 t.keyboard.enabled || 3892 (l.addEventListener("keydown", d), (t.keyboard.enabled = !0)); 3893 } 3894 function p() { 3895 t.keyboard.enabled && 3896 (l.removeEventListener("keydown", d), (t.keyboard.enabled = !1)); 3897 } 3898 (t.keyboard = { enabled: !1 }), 3899 s({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }), 3900 i("init", () => { 3901 t.params.keyboard.enabled && c(); 3902 }), 3903 i("destroy", () => { 3904 t.keyboard.enabled && p(); 3905 }), 3906 Object.assign(t.keyboard, { enable: c, disable: p }); 3907 }, 3908 function (e) { 3909 let { swiper: t, extendParams: s, on: a, emit: i } = e; 3910 const n = r(); 3911 let d; 3912 s({ 3913 mousewheel: { 3914 enabled: !1, 3915 releaseOnEdges: !1, 3916 invert: !1, 3917 forceToAxis: !1, 3918 sensitivity: 1, 3919 eventsTarget: "container", 3920 thresholdDelta: null, 3921 thresholdTime: null, 3922 noMousewheelClass: "swiper-no-mousewheel", 3923 }, 3924 }), 3925 (t.mousewheel = { enabled: !1 }); 3926 let c, 3927 p = o(); 3928 const u = []; 3929 function m() { 3930 t.enabled && (t.mouseEntered = !0); 3931 } 3932 function h() { 3933 t.enabled && (t.mouseEntered = !1); 3934 } 3935 function f(e) { 3936 return ( 3937 !( 3938 t.params.mousewheel.thresholdDelta && 3939 e.delta < t.params.mousewheel.thresholdDelta 3940 ) && 3941 !( 3942 t.params.mousewheel.thresholdTime && 3943 o() - p < t.params.mousewheel.thresholdTime 3944 ) && 3945 ((e.delta >= 6 && o() - p < 60) || 3946 (e.direction < 0 3947 ? (t.isEnd && !t.params.loop) || 3948 t.animating || 3949 (t.slideNext(), i("scroll", e.raw)) 3950 : (t.isBeginning && !t.params.loop) || 3951 t.animating || 3952 (t.slidePrev(), i("scroll", e.raw)), 3953 (p = new n.Date().getTime()), 3954 !1)) 3955 ); 3956 } 3957 function g(e) { 3958 let s = e, 3959 a = !0; 3960 if (!t.enabled) return; 3961 if (e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`)) 3962 return; 3963 const r = t.params.mousewheel; 3964 t.params.cssMode && s.preventDefault(); 3965 let n = t.el; 3966 "container" !== t.params.mousewheel.eventsTarget && 3967 (n = document.querySelector(t.params.mousewheel.eventsTarget)); 3968 const p = n && n.contains(s.target); 3969 if (!t.mouseEntered && !p && !r.releaseOnEdges) return !0; 3970 s.originalEvent && (s = s.originalEvent); 3971 let m = 0; 3972 const h = t.rtlTranslate ? -1 : 1, 3973 g = (function (e) { 3974 let t = 0, 3975 s = 0, 3976 a = 0, 3977 i = 0; 3978 return ( 3979 "detail" in e && (s = e.detail), 3980 "wheelDelta" in e && (s = -e.wheelDelta / 120), 3981 "wheelDeltaY" in e && (s = -e.wheelDeltaY / 120), 3982 "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), 3983 "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = s), (s = 0)), 3984 (a = 10 * t), 3985 (i = 10 * s), 3986 "deltaY" in e && (i = e.deltaY), 3987 "deltaX" in e && (a = e.deltaX), 3988 e.shiftKey && !a && ((a = i), (i = 0)), 3989 (a || i) && 3990 e.deltaMode && 3991 (1 === e.deltaMode 3992 ? ((a *= 40), (i *= 40)) 3993 : ((a *= 800), (i *= 800))), 3994 a && !t && (t = a < 1 ? -1 : 1), 3995 i && !s && (s = i < 1 ? -1 : 1), 3996 { spinX: t, spinY: s, pixelX: a, pixelY: i } 3997 ); 3998 })(s); 3999 if (r.forceToAxis) 4000 if (t.isHorizontal()) { 4001 if (!(Math.abs(g.pixelX) > Math.abs(g.pixelY))) return !0; 4002 m = -g.pixelX * h; 4003 } else { 4004 if (!(Math.abs(g.pixelY) > Math.abs(g.pixelX))) return !0; 4005 m = -g.pixelY; 4006 } 4007 else 4008 m = 4009 Math.abs(g.pixelX) > Math.abs(g.pixelY) ? -g.pixelX * h : -g.pixelY; 4010 if (0 === m) return !0; 4011 r.invert && (m = -m); 4012 let v = t.getTranslate() + m * r.sensitivity; 4013 if ( 4014 (v >= t.minTranslate() && (v = t.minTranslate()), 4015 v <= t.maxTranslate() && (v = t.maxTranslate()), 4016 (a = 4017 !!t.params.loop || 4018 !(v === t.minTranslate() || v === t.maxTranslate())), 4019 a && t.params.nested && s.stopPropagation(), 4020 t.params.freeMode && t.params.freeMode.enabled) 4021 ) { 4022 const e = { time: o(), delta: Math.abs(m), direction: Math.sign(m) }, 4023 a = 4024 c && 4025 e.time < c.time + 500 && 4026 e.delta <= c.delta && 4027 e.direction === c.direction; 4028 if (!a) { 4029 c = void 0; 4030 let n = t.getTranslate() + m * r.sensitivity; 4031 const o = t.isBeginning, 4032 p = t.isEnd; 4033 if ( 4034 (n >= t.minTranslate() && (n = t.minTranslate()), 4035 n <= t.maxTranslate() && (n = t.maxTranslate()), 4036 t.setTransition(0), 4037 t.setTranslate(n), 4038 t.updateProgress(), 4039 t.updateActiveIndex(), 4040 t.updateSlidesClasses(), 4041 ((!o && t.isBeginning) || (!p && t.isEnd)) && 4042 t.updateSlidesClasses(), 4043 t.params.loop && 4044 t.loopFix({ 4045 direction: e.direction < 0 ? "next" : "prev", 4046 byMousewheel: !0, 4047 }), 4048 t.params.freeMode.sticky) 4049 ) { 4050 clearTimeout(d), (d = void 0), u.length >= 15 && u.shift(); 4051 const s = u.length ? u[u.length - 1] : void 0, 4052 a = u[0]; 4053 if ( 4054 (u.push(e), 4055 s && (e.delta > s.delta || e.direction !== s.direction)) 4056 ) 4057 u.splice(0); 4058 else if ( 4059 u.length >= 15 && 4060 e.time - a.time < 500 && 4061 a.delta - e.delta >= 1 && 4062 e.delta <= 6 4063 ) { 4064 const s = m > 0 ? 0.8 : 0.2; 4065 (c = e), 4066 u.splice(0), 4067 (d = l(() => { 4068 t.slideToClosest(t.params.speed, !0, void 0, s); 4069 }, 0)); 4070 } 4071 d || 4072 (d = l(() => { 4073 (c = e), 4074 u.splice(0), 4075 t.slideToClosest(t.params.speed, !0, void 0, 0.5); 4076 }, 500)); 4077 } 4078 if ( 4079 (a || i("scroll", s), 4080 t.params.autoplay && 4081 t.params.autoplayDisableOnInteraction && 4082 t.autoplay.stop(), 4083 r.releaseOnEdges && 4084 (n === t.minTranslate() || n === t.maxTranslate())) 4085 ) 4086 return !0; 4087 } 4088 } else { 4089 const s = { 4090 time: o(), 4091 delta: Math.abs(m), 4092 direction: Math.sign(m), 4093 raw: e, 4094 }; 4095 u.length >= 2 && u.shift(); 4096 const a = u.length ? u[u.length - 1] : void 0; 4097 if ( 4098 (u.push(s), 4099 a 4100 ? (s.direction !== a.direction || 4101 s.delta > a.delta || 4102 s.time > a.time + 150) && 4103 f(s) 4104 : f(s), 4105 (function (e) { 4106 const s = t.params.mousewheel; 4107 if (e.direction < 0) { 4108 if (t.isEnd && !t.params.loop && s.releaseOnEdges) return !0; 4109 } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges) 4110 return !0; 4111 return !1; 4112 })(s)) 4113 ) 4114 return !0; 4115 } 4116 return s.preventDefault ? s.preventDefault() : (s.returnValue = !1), !1; 4117 } 4118 function v(e) { 4119 let s = t.el; 4120 "container" !== t.params.mousewheel.eventsTarget && 4121 (s = document.querySelector(t.params.mousewheel.eventsTarget)), 4122 s[e]("mouseenter", m), 4123 s[e]("mouseleave", h), 4124 s[e]("wheel", g); 4125 } 4126 function w() { 4127 return t.params.cssMode 4128 ? (t.wrapperEl.removeEventListener("wheel", g), !0) 4129 : !t.mousewheel.enabled && 4130 (v("addEventListener"), (t.mousewheel.enabled = !0), !0); 4131 } 4132 function b() { 4133 return t.params.cssMode 4134 ? (t.wrapperEl.addEventListener(event, g), !0) 4135 : !!t.mousewheel.enabled && 4136 (v("removeEventListener"), (t.mousewheel.enabled = !1), !0); 4137 } 4138 a("init", () => { 4139 !t.params.mousewheel.enabled && t.params.cssMode && b(), 4140 t.params.mousewheel.enabled && w(); 4141 }), 4142 a("destroy", () => { 4143 t.params.cssMode && w(), t.mousewheel.enabled && b(); 4144 }), 4145 Object.assign(t.mousewheel, { enable: w, disable: b }); 4146 }, 4147 function (e) { 4148 let { swiper: t, extendParams: s, on: a, emit: i } = e; 4149 function r(e) { 4150 let s; 4151 return e && 4152 "string" == typeof e && 4153 t.isElement && 4154 ((s = t.el.querySelector(e)), s) 4155 ? s 4156 : (e && 4157 ("string" == typeof e && (s = [...document.querySelectorAll(e)]), 4158 t.params.uniqueNavElements && 4159 "string" == typeof e && 4160 s.length > 1 && 4161 1 === t.el.querySelectorAll(e).length && 4162 (s = t.el.querySelector(e))), 4163 e && !s ? e : s); 4164 } 4165 function n(e, s) { 4166 const a = t.params.navigation;
4167 (e = T(e)).forEach((e) => { 4168 e && 4169 (e.classList[s ? "add" : "remove"](...a.disabledClass.split(" ")), 4170 "BUTTON" === e.tagName && (e.disabled = s), 4171 t.params.watchOverflow && 4172 t.enabled && 4173 e.classList[t.isLocked ? "add" : "remove"](a.lockClass)); 4174 }); 4175 } 4176 function l() { 4177 const { nextEl: e, prevEl: s } = t.navigation; 4178 if (t.params.loop) return n(s, !1), void n(e, !1); 4179 n(s, t.isBeginning && !t.params.rewind), 4180 n(e, t.isEnd && !t.params.rewind); 4181 } 4182 function o(e) { 4183 e.preventDefault(), 4184 (!t.isBeginning || t.params.loop || t.params.rewind) && 4185 (t.slidePrev(), i("navigationPrev")); 4186 } 4187 function d(e) { 4188 e.preventDefault(), 4189 (!t.isEnd || t.params.loop || t.params.rewind) && 4190 (t.slideNext(), i("navigationNext")); 4191 } 4192 function c() { 4193 const e = t.params.navigation; 4194 if ( 4195 ((t.params.navigation = se( 4196 t, 4197 t.originalParams.navigation, 4198 t.params.navigation, 4199 { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" } 4200 )), 4201 !e.nextEl && !e.prevEl) 4202 ) 4203 return; 4204 let s = r(e.nextEl), 4205 a = r(e.prevEl); 4206 Object.assign(t.navigation, { nextEl: s, prevEl: a }), 4207 (s = T(s)), 4208 (a = T(a)); 4209 const i = (s, a) => { 4210 s && s.addEventListener("click", "next" === a ? d : o), 4211 !t.enabled && s && s.classList.add(...e.lockClass.split(" ")); 4212 }; 4213 s.forEach((e) => i(e, "next")), a.forEach((e) => i(e, "prev")); 4214 } 4215 function p() { 4216 let { nextEl: e, prevEl: s } = t.navigation; 4217 (e = T(e)), (s = T(s)); 4218 const a = (e, s) => { 4219 e.removeEventListener("click", "next" === s ? d : o), 4220 e.classList.remove(...t.params.navigation.disabledClass.split(" ")); 4221 }; 4222 e.forEach((e) => a(e, "next")), s.forEach((e) => a(e, "prev")); 4223 } 4224 s({ 4225 navigation: { 4226 nextEl: null, 4227 prevEl: null, 4228 hideOnClick: !1, 4229 disabledClass: "swiper-button-disabled", 4230 hiddenClass: "swiper-button-hidden", 4231 lockClass: "swiper-button-lock", 4232 navigationDisabledClass: "swiper-navigation-disabled", 4233 }, 4234 }), 4235 (t.navigation = { nextEl: null, prevEl: null }), 4236 a("init", () => { 4237 !1 === t.params.navigation.enabled ? u() : (c(), l()); 4238 }), 4239 a("toEdge fromEdge lock unlock", () => { 4240 l(); 4241 }), 4242 a("destroy", () => { 4243 p(); 4244 }), 4245 a("enable disable", () => { 4246 let { nextEl: e, prevEl: s } = t.navigation; 4247 (e = T(e)), 4248 (s = T(s)), 4249 t.enabled 4250 ? l() 4251 : [...e, ...s] 4252 .filter((e) => !!e) 4253 .forEach((e) => 4254 e.classList.add(t.params.navigation.lockClass) 4255 ); 4256 }), 4257 a("click", (e, s) => { 4258 let { nextEl: a, prevEl: r } = t.navigation; 4259 (a = T(a)), (r = T(r)); 4260 const n = s.target; 4261 if ( 4262 t.params.navigation.hideOnClick && 4263 !r.includes(n) && 4264 !a.includes(n) 4265 ) { 4266 if ( 4267 t.pagination && 4268 t.params.pagination && 4269 t.params.pagination.clickable && 4270 (t.pagination.el === n || t.pagination.el.contains(n)) 4271 ) 4272 return; 4273 let e; 4274 a.length 4275 ? (e = a[0].classList.contains(t.params.navigation.hiddenClass)) 4276 : r.length && 4277 (e = r[0].classList.contains(t.params.navigation.hiddenClass)), 4278 i(!0 === e ? "navigationShow" : "navigationHide"), 4279 [...a, ...r] 4280 .filter((e) => !!e) 4281 .forEach((e) => 4282 e.classList.toggle(t.params.navigation.hiddenClass) 4283 ); 4284 } 4285 }); 4286 const u = () => { 4287 t.el.classList.add( 4288 ...t.params.navigation.navigationDisabledClass.split(" ") 4289 ), 4290 p(); 4291 }; 4292 Object.assign(t.navigation, { 4293 enable: () => { 4294 t.el.classList.remove( 4295 ...t.params.navigation.navigationDisabledClass.split(" ") 4296 ), 4297 c(), 4298 l(); 4299 }, 4300 disable: u, 4301 update: l, 4302 init: c, 4303 destroy: p, 4304 }); 4305 }, 4306 function (e) { 4307 let { swiper: t, extendParams: s, on: a, emit: i } = e; 4308 const r = "swiper-pagination"; 4309 let n; 4310 s({ 4311 pagination: { 4312 el: null, 4313 bulletElement: "span", 4314 clickable: !1, 4315 hideOnClick: !1, 4316 renderBullet: null, 4317 renderProgressbar: null, 4318 renderFraction: null, 4319 renderCustom: null, 4320 progressbarOpposite: !1, 4321 type: "bullets", 4322 dynamicBullets: !1, 4323 dynamicMainBullets: 1, 4324 formatFractionCurrent: (e) => e, 4325 formatFractionTotal: (e) => e, 4326 bulletClass: `${r}-bullet`, 4327 bulletActiveClass: `${r}-bullet-active`, 4328 modifierClass: `${r}-`, 4329 currentClass: `${r}-current`, 4330 totalClass: `${r}-total`, 4331 hiddenClass: `${r}-hidden`, 4332 progressbarFillClass: `${r}-progressbar-fill`, 4333 progressbarOppositeClass: `${r}-progressbar-opposite`, 4334 clickableClass: `${r}-clickable`, 4335 lockClass: `${r}-lock`, 4336 horizontalClass: `${r}-horizontal`, 4337 verticalClass: `${r}-vertical`, 4338 paginationDisabledClass: `${r}-disabled`, 4339 }, 4340 }), 4341 (t.pagination = { el: null, bullets: [] }); 4342 let l = 0; 4343 function o() { 4344 return ( 4345 !t.params.pagination.el || 4346 !t.pagination.el || 4347 (Array.isArray(t.pagination.el) && 0 === t.pagination.el.length) 4348 ); 4349 } 4350 function d(e, s) { 4351 const { bulletActiveClass: a } = t.params.pagination; 4352 e && 4353 (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) && 4354 (e.classList.add(`${a}-${s}`), 4355 (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) && 4356 e.classList.add(`${a}-${s}-${s}`)); 4357 } 4358 function c(e) { 4359 const s = e.target.closest(ae(t.params.pagination.bulletClass)); 4360 if (!s) return; 4361 e.preventDefault(); 4362 const a = y(s) * t.params.slidesPerGroup; 4363 if (t.params.loop) { 4364 if (t.realIndex === a) return; 4365 t.slideToLoop(a); 4366 } else t.slideTo(a); 4367 } 4368 function p() { 4369 const e = t.rtl, 4370 s = t.params.pagination; 4371 if (o()) return; 4372 let a, 4373 r, 4374 c = t.pagination.el; 4375 c = T(c); 4376 const p = 4377 t.virtual && t.params.virtual.enabled 4378 ? t.virtual.slides.length 4379 : t.slides.length, 4380 u = t.params.loop 4381 ? Math.ceil(p / t.params.slidesPerGroup) 4382 : t.snapGrid.length; 4383 if ( 4384 (t.params.loop 4385 ? ((r = t.previousRealIndex || 0), 4386 (a = 4387 t.params.slidesPerGroup > 1 4388 ? Math.floor(t.realIndex / t.params.slidesPerGroup) 4389 : t.realIndex)) 4390 : void 0 !== t.snapIndex 4391 ? ((a = t.snapIndex), (r = t.previousSnapIndex)) 4392 : ((r = t.previousIndex || 0), (a = t.activeIndex || 0)), 4393 "bullets" === s.type && 4394 t.pagination.bullets && 4395 t.pagination.bullets.length > 0) 4396 ) { 4397 const i = t.pagination.bullets; 4398 let o, p, u; 4399 if ( 4400 (s.dynamicBullets && 4401 ((n = S(i[0], t.isHorizontal() ? "width" : "height", !0)),
4402 c.forEach((e) => { 4403 e.style[t.isHorizontal() ? "width" : "height"] = 4404 n * (s.dynamicMainBullets + 4) + "px"; 4405 }), 4406 s.dynamicMainBullets > 1 && 4407 void 0 !== r && 4408 ((l += a - (r || 0)), 4409 l > s.dynamicMainBullets - 1 4410 ? (l = s.dynamicMainBullets - 1) 4411 : l < 0 && (l = 0)), 4412 (o = Math.max(a - l, 0)), 4413 (p = o + (Math.min(i.length, s.dynamicMainBullets) - 1)), 4414 (u = (p + o) / 2)), 4415 i.forEach((e) => { 4416 const t = [ 4417 ...[ 4418 "", 4419 "-next", 4420 "-next-next", 4421 "-prev", 4422 "-prev-prev", 4423 "-main", 4424 ].map((e) => `${s.bulletActiveClass}${e}`), 4425 ] 4426 .map((e) => 4427 "string" == typeof e && e.includes(" ") ? e.split(" ") : e 4428 ) 4429 .flat(); 4430 e.classList.remove(...t); 4431 }), 4432 c.length > 1) 4433 ) 4434 i.forEach((e) => { 4435 const i = y(e); 4436 i === a 4437 ? e.classList.add(...s.bulletActiveClass.split(" ")) 4438 : t.isElement && e.setAttribute("part", "bullet"), 4439 s.dynamicBullets && 4440 (i >= o && 4441 i <= p && 4442 e.classList.add( 4443 ...`${s.bulletActiveClass}-main`.split(" ") 4444 ), 4445 i === o && d(e, "prev"), 4446 i === p && d(e, "next")); 4447 }); 4448 else { 4449 const e = i[a]; 4450 if ( 4451 (e && e.classList.add(...s.bulletActiveClass.split(" ")), 4452 t.isElement && 4453 i.forEach((e, t) => { 4454 e.setAttribute("part", t === a ? "bullet-active" : "bullet"); 4455 }), 4456 s.dynamicBullets) 4457 ) { 4458 const e = i[o], 4459 t = i[p]; 4460 for (let e = o; e <= p; e += 1) 4461 i[e] && 4462 i[e].classList.add( 4463 ...`${s.bulletActiveClass}-main`.split(" ") 4464 ); 4465 d(e, "prev"), d(t, "next"); 4466 } 4467 } 4468 if (s.dynamicBullets) { 4469 const a = Math.min(i.length, s.dynamicMainBullets + 4), 4470 r = (n * a - n) / 2 - u * n, 4471 l = e ? "right" : "left"; 4472 i.forEach((e) => { 4473 e.style[t.isHorizontal() ? l : "top"] = `${r}px`; 4474 }); 4475 } 4476 } 4477 c.forEach((e, r) => { 4478 if ( 4479 ("fraction" === s.type && 4480 (e.querySelectorAll(ae(s.currentClass)).forEach((e) => { 4481 e.textContent = s.formatFractionCurrent(a + 1); 4482 }), 4483 e.querySelectorAll(ae(s.totalClass)).forEach((e) => { 4484 e.textContent = s.formatFractionTotal(u); 4485 })), 4486 "progressbar" === s.type) 4487 ) { 4488 let i; 4489 i = s.progressbarOpposite 4490 ? t.isHorizontal() 4491 ? "vertical" 4492 : "horizontal" 4493 : t.isHorizontal() 4494 ? "horizontal" 4495 : "vertical"; 4496 const r = (a + 1) / u; 4497 let n = 1, 4498 l = 1; 4499 "horizontal" === i ? (n = r) : (l = r), 4500 e.querySelectorAll(ae(s.progressbarFillClass)).forEach((e) => { 4501 (e.style.transform = `translate3d(0,0,0) scaleX(${n}) scaleY(${l})`), 4502 (e.style.transitionDuration = `${t.params.speed}ms`); 4503 }); 4504 } 4505 "custom" === s.type && s.renderCustom 4506 ? ((e.innerHTML = s.renderCustom(t, a + 1, u)), 4507 0 === r && i("paginationRender", e)) 4508 : (0 === r && i("paginationRender", e), i("paginationUpdate", e)), 4509 t.params.watchOverflow && 4510 t.enabled && 4511 e.classList[t.isLocked ? "add" : "remove"](s.lockClass); 4512 }); 4513 } 4514 function u() { 4515 const e = t.params.pagination; 4516 if (o()) return; 4517 const s = 4518 t.virtual && t.params.virtual.enabled 4519 ? t.virtual.slides.length 4520 : t.grid && t.params.grid.rows > 1 4521 ? t.slides.length / Math.ceil(t.params.grid.rows) 4522 : t.slides.length; 4523 let a = t.pagination.el; 4524 a = T(a); 4525 let r = ""; 4526 if ("bullets" === e.type) { 4527 let a = t.params.loop 4528 ? Math.ceil(s / t.params.slidesPerGroup) 4529 : t.snapGrid.length; 4530 t.params.freeMode && t.params.freeMode.enabled && a > s && (a = s); 4531 for (let s = 0; s < a; s += 1) 4532 e.renderBullet 4533 ? (r += e.renderBullet.call(t, s, e.bulletClass)) 4534 : (r += `<${e.bulletElement} ${ 4535 t.isElement ? 'part="bullet"' : "" 4536 } class="${e.bulletClass}"></${e.bulletElement}>`); 4537 } 4538 "fraction" === e.type && 4539 (r = e.renderFraction 4540 ? e.renderFraction.call(t, e.currentClass, e.totalClass) 4541 : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`), 4542 "progressbar" === e.type && 4543 (r = e.renderProgressbar 4544 ? e.renderProgressbar.call(t, e.progressbarFillClass) 4545 : `<span class="${e.progressbarFillClass}"></span>`), 4546 (t.pagination.bullets = []), 4547 a.forEach((s) => { 4548 "custom" !== e.type && (s.innerHTML = r || ""), 4549 "bullets" === e.type && 4550 t.pagination.bullets.push( 4551 ...s.querySelectorAll(ae(e.bulletClass)) 4552 ); 4553 }), 4554 "custom" !== e.type && i("paginationRender", a[0]); 4555 } 4556 function m() { 4557 t.params.pagination = se( 4558 t, 4559 t.originalParams.pagination, 4560 t.params.pagination, 4561 { el: "swiper-pagination" } 4562 ); 4563 const e = t.params.pagination; 4564 if (!e.el) return; 4565 let s; 4566 "string" == typeof e.el && 4567 t.isElement && 4568 (s = t.el.querySelector(e.el)), 4569 s || 4570 "string" != typeof e.el || 4571 (s = [...document.querySelectorAll(e.el)]), 4572 s || (s = e.el), 4573 s && 4574 0 !== s.length && 4575 (t.params.uniqueNavElements && 4576 "string" == typeof e.el && 4577 Array.isArray(s) && 4578 s.length > 1 && 4579 ((s = [...t.el.querySelectorAll(e.el)]), 4580 s.length > 1 && 4581 (s = s.filter((e) => E(e, ".swiper")[0] === t.el)[0])), 4582 Array.isArray(s) && 1 === s.length && (s = s[0]), 4583 Object.assign(t.pagination, { el: s }), 4584 (s = T(s)),
4585 s.forEach((s) => { 4586 "bullets" === e.type && 4587 e.clickable && 4588 s.classList.add(...(e.clickableClass || "").split(" ")), 4589 s.classList.add(e.modifierClass + e.type), 4590 s.classList.add( 4591 t.isHorizontal() ? e.horizontalClass : e.verticalClass 4592 ), 4593 "bullets" === e.type && 4594 e.dynamicBullets && 4595 (s.classList.add(`${e.modifierClass}${e.type}-dynamic`), 4596 (l = 0), 4597 e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)), 4598 "progressbar" === e.type && 4599 e.progressbarOpposite && 4600 s.classList.add(e.progressbarOppositeClass), 4601 e.clickable && s.addEventListener("click", c), 4602 t.enabled || s.classList.add(e.lockClass); 4603 })); 4604 } 4605 function h() { 4606 const e = t.params.pagination; 4607 if (o()) return; 4608 let s = t.pagination.el; 4609 s && 4610 ((s = T(s)), 4611 s.forEach((s) => { 4612 s.classList.remove(e.hiddenClass), 4613 s.classList.remove(e.modifierClass + e.type), 4614 s.classList.remove( 4615 t.isHorizontal() ? e.horizontalClass : e.verticalClass 4616 ), 4617 e.clickable && 4618 (s.classList.remove(...(e.clickableClass || "").split(" ")), 4619 s.removeEventListener("click", c)); 4620 })), 4621 t.pagination.bullets && 4622 t.pagination.bullets.forEach((t) => 4623 t.classList.remove(...e.bulletActiveClass.split(" ")) 4624 ); 4625 } 4626 a("changeDirection", () => { 4627 if (!t.pagination || !t.pagination.el) return; 4628 const e = t.params.pagination; 4629 let { el: s } = t.pagination; 4630 (s = T(s)), 4631 s.forEach((s) => { 4632 s.classList.remove(e.horizontalClass, e.verticalClass), 4633 s.classList.add( 4634 t.isHorizontal() ? e.horizontalClass : e.verticalClass 4635 ); 4636 }); 4637 }), 4638 a("init", () => { 4639 !1 === t.params.pagination.enabled ? f() : (m(), u(), p()); 4640 }), 4641 a("activeIndexChange", () => { 4642 void 0 === t.snapIndex && p(); 4643 }), 4644 a("snapIndexChange", () => { 4645 p(); 4646 }), 4647 a("snapGridLengthChange", () => { 4648 u(), p(); 4649 }), 4650 a("destroy", () => { 4651 h(); 4652 }), 4653 a("enable disable", () => { 4654 let { el: e } = t.pagination; 4655 e && 4656 ((e = T(e)), 4657 e.forEach((e) => 4658 e.classList[t.enabled ? "remove" : "add"]( 4659 t.params.pagination.lockClass 4660 ) 4661 )); 4662 }), 4663 a("lock unlock", () => { 4664 p(); 4665 }), 4666 a("click", (e, s) => { 4667 const a = s.target, 4668 r = T(t.pagination.el); 4669 if ( 4670 t.params.pagination.el && 4671 t.params.pagination.hideOnClick && 4672 r && 4673 r.length > 0 && 4674 !a.classList.contains(t.params.pagination.bulletClass) 4675 ) { 4676 if ( 4677 t.navigation && 4678 ((t.navigation.nextEl && a === t.navigation.nextEl) || 4679 (t.navigation.prevEl && a === t.navigation.prevEl)) 4680 ) 4681 return; 4682 const e = r[0].classList.contains(t.params.pagination.hiddenClass); 4683 i(!0 === e ? "paginationShow" : "paginationHide"), 4684 r.forEach((e) => 4685 e.classList.toggle(t.params.pagination.hiddenClass) 4686 ); 4687 } 4688 }); 4689 const f = () => { 4690 t.el.classList.add(t.params.pagination.paginationDisabledClass); 4691 let { el: e } = t.pagination; 4692 e && 4693 ((e = T(e)), 4694 e.forEach((e) => 4695 e.classList.add(t.params.pagination.paginationDisabledClass) 4696 )), 4697 h(); 4698 }; 4699 Object.assign(t.pagination, { 4700 enable: () => { 4701 t.el.classList.remove(t.params.pagination.paginationDisabledClass); 4702 let { el: e } = t.pagination; 4703 e && 4704 ((e = T(e)), 4705 e.forEach((e) => 4706 e.classList.remove(t.params.pagination.paginationDisabledClass) 4707 )), 4708 m(), 4709 u(), 4710 p(); 4711 }, 4712 disable: f, 4713 render: u, 4714 update: p, 4715 init: m, 4716 destroy: h, 4717 }); 4718 }, 4719 function (e) { 4720 let { swiper: t, extendParams: s, on: i, emit: r }
4720 = e; 4721 const o = a(); 4722 let d, 4723 c, 4724 p, 4725 u, 4726 m = !1, 4727 h = null, 4728 f = null; 4729 function g() { 4730 if (!t.params.scrollbar.el || !t.scrollbar.el) return; 4731 const { scrollbar: e, rtlTranslate: s } = t, 4732 { dragEl: a, el: i } = e, 4733 r = t.params.scrollbar, 4734 n = t.params.loop ? t.progressLoop : t.progress; 4735 let l = c, 4736 o = (p - c) * n; 4737 s 4738 ? ((o = -o), 4739 o > 0 ? ((l = c - o), (o = 0)) : -o + c > p && (l = p + o)) 4740 : o < 0 4741 ? ((l = c + o), (o = 0)) 4742 : o + c > p && (l = p - o), 4743 t.isHorizontal() 4744 ? ((a.style.transform = `translate3d(${o}px, 0, 0)`), 4745 (a.style.width = `${l}px`)) 4746 : ((a.style.transform = `translate3d(0px, ${o}px, 0)`), 4747 (a.style.height = `${l}px`)), 4748 r.hide && 4749 (clearTimeout(h), 4750 (i.style.opacity = 1), 4751 (h = setTimeout(() => { 4752 (i.style.opacity = 0), (i.style.transitionDuration = "400ms"); 4753 }, 1e3))); 4754 } 4755 function b() { 4756 if (!t.params.scrollbar.el || !t.scrollbar.el) return; 4757 const { scrollbar: e } = t, 4758 { dragEl: s, el: a } = e; 4759 (s.style.width = ""), 4760 (s.style.height = ""), 4761 (p = t.isHorizontal() ? a.offsetWidth : a.offsetHeight), 4762 (u = 4763 t.size / 4764 (t.virtualSize + 4765 t.params.slidesOffsetBefore - 4766 (t.params.centeredSlides ? t.snapGrid[0] : 0))), 4767 (c = 4768 "auto" === t.params.scrollbar.dragSize 4769 ? p * u 4770 : parseInt(t.params.scrollbar.dragSize, 10)), 4771 t.isHorizontal() 4772 ? (s.style.width = `${c}px`) 4773 : (s.style.height = `${c}px`), 4774 (a.style.display = u >= 1 ? "none" : ""), 4775 t.params.scrollbar.hide && (a.style.opacity = 0), 4776 t.params.watchOverflow && 4777 t.enabled && 4778 e.el.classList[t.isLocked ? "add" : "remove"]( 4779 t.params.scrollbar.lockClass 4780 ); 4781 } 4782 function y(e) { 4783 return t.isHorizontal() ? e.clientX : e.clientY; 4784 } 4785 function E(e) { 4786 const { scrollbar: s, rtlTranslate: a } = t, 4787 { el: i } = s; 4788 let r; 4789 (r = 4790 (y(e) - 4791 w(i)[t.isHorizontal() ? "left" : "top"] - 4792 (null !== d ? d : c / 2)) / 4793 (p - c)), 4794 (r = Math.max(Math.min(r, 1), 0)), 4795 a && (r = 1 - r); 4796 const n = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * r; 4797 t.updateProgress(n), 4798 t.setTranslate(n), 4799 t.updateActiveIndex(), 4800 t.updateSlidesClasses(); 4801 } 4802 function x(e) { 4803 const s = t.params.scrollbar, 4804 { scrollbar: a, wrapperEl: i } = t, 4805 { el: n, dragEl: l } = a; 4806 (m = !0), 4807 (d = 4808 e.target === l 4809 ? y(e) - 4810 e.target.getBoundingClientRect()[ 4811 t.isHorizontal() ? "left" : "top" 4812 ] 4813 : null), 4814 e.preventDefault(), 4815 e.stopPropagation(), 4816 (i.style.transitionDuration = "100ms"), 4817 (l.style.transitionDuration = "100ms"), 4818 E(e), 4819 clearTimeout(f), 4820 (n.style.transitionDuration = "0ms"), 4821 s.hide && (n.style.opacity = 1), 4822 t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "none"), 4823 r("scrollbarDragStart", e); 4824 } 4825 function S(e) { 4826 const { scrollbar: s, wrapperEl: a } = t, 4827 { el: i, dragEl: n } = s; 4828 m && 4829 (e.preventDefault ? e.preventDefault() : (e.returnValue = !1), 4830 E(e), 4831 (a.style.transitionDuration = "0ms"), 4832 (i.style.transitionDuration = "0ms"), 4833 (n.style.transitionDuration = "0ms"), 4834 r("scrollbarDragMove", e)); 4835 } 4836 function M(e) { 4837 const s = t.params.scrollbar, 4838 { scrollbar: a, wrapperEl: i } = t, 4839 { el: n } = a; 4840 m && 4841 ((m = !1), 4842 t.params.cssMode && 4843 ((t.wrapperEl.style["scroll-snap-type"] = ""), 4844 (i.style.transitionDuration = "")), 4845 s.hide && 4846 (clearTimeout(f), 4847 (f = l(() => { 4848 (n.style.opacity = 0), (n.style.transitionDuration = "400ms"); 4849 }, 1e3))), 4850 r("scrollbarDragEnd", e), 4851 s.snapOnRelease && t.slideToClosest()); 4852 } 4853 function C(e) { 4854 const { scrollbar: s, params: a } = t, 4855 i = s.el; 4856 if (!i) return; 4857 const r = i, 4858 n = !!a.passiveListeners && { passive: !1, capture: !1 }, 4859 l = !!a.passiveListeners && { passive: !0, capture: !1 }; 4860 if (!r) return; 4861 const d = "on" === e ? "addEventListener" : "removeEventListener"; 4862 r[d]("pointerdown", x, n), 4863 o[d]("pointermove", S, n), 4864 o[d]("pointerup", M, l); 4865 } 4866 function P() { 4867 const { scrollbar: e, el: s } = t; 4868 t.params.scrollbar = se( 4869 t, 4870 t.originalParams.scrollbar, 4871 t.params.scrollbar, 4872 { el: "swiper-scrollbar" } 4873 ); 4874 const a = t.params.scrollbar; 4875 if (!a.el) return; 4876 let i, r; 4877 if ( 4878 ("string" == typeof a.el && 4879 t.isElement && 4880 (i = t.el.querySelector(a.el)), 4881 i || "string" != typeof a.el) 4882 ) 4883 i || (i = a.el); 4884 else if (((i = o.querySelectorAll(a.el)), !i.length)) return; 4885 t.params.uniqueNavElements && 4886 "string" == typeof a.el && 4887 i.length > 1 && 4888 1 === s.querySelectorAll(a.el).length && 4889 (i = s.querySelector(a.el)), 4890 i.length > 0 && (i = i[0]), 4891 i.classList.add( 4892 t.isHorizontal() ? a.horizontalClass : a.verticalClass 4893 ), 4894 i && 4895 ((r = i.querySelector(ae(t.params.scrollbar.dragClass))), 4896 r || ((r = v("div", t.params.scrollbar.dragClass)), i.append(r))), 4897 Object.assign(e, { el: i, dragEl: r }), 4898 a.draggable && t.params.scrollbar.el && t.scrollbar.el && C("on"), 4899 i && 4900 i.classList[t.enabled ? "remove" : "add"]( 4901 ...n(t.params.scrollbar.lockClass) 4902 ); 4903 } 4904 function L() { 4905 const e = t.params.scrollbar, 4906 s = t.scrollbar.el; 4907 s && 4908 s.classList.remove( 4909 ...n(t.isHorizontal() ? e.horizontalClass : e.verticalClass) 4910 ), 4911 t.params.scrollbar.el && t.scrollbar.el && C("off"); 4912 } 4913 s({ 4914 scrollbar: { 4915 el: null, 4916 dragSize: "auto", 4917 hide: !1, 4918 draggable: !1, 4919 snapOnRelease: !0, 4920 lockClass: "swiper-scrollbar-lock", 4921 dragClass: "swiper-scrollbar-drag", 4922 scrollbarDisabledClass: "swiper-scrollbar-disabled", 4923 horizontalClass: "swiper-scrollbar-horizontal", 4924 verticalClass: "swiper-scrollbar-vertical", 4925 }, 4926 }), 4927 (t.scrollbar = { el: null, dragEl: null }), 4928 i("changeDirection", () => { 4929 if (!t.scrollbar || !t.scrollbar.el) return; 4930 const e = t.params.scrollbar; 4931 let { el: s } = t.scrollbar; 4932 (s = T(s)),
4933 s.forEach((s) => { 4934 s.classList.remove(e.horizontalClass, e.verticalClass), 4935 s.classList.add( 4936 t.isHorizontal() ? e.horizontalClass : e.verticalClass 4937 ); 4938 }); 4939 }), 4940 i("init", () => { 4941 !1 === t.params.scrollbar.enabled ? I() : (P(), b(), g()); 4942 }), 4943 i("update resize observerUpdate lock unlock changeDirection", () => { 4944 b(); 4945 }), 4946 i("setTranslate", () => { 4947 g(); 4948 }), 4949 i("setTransition", (e, s) => { 4950 !(function (e) { 4951 t.params.scrollbar.el && 4952 t.scrollbar.el && 4953 (t.scrollbar.dragEl.style.transitionDuration = `${e}ms`); 4954 })(s); 4955 }), 4956 i("enable disable", () => { 4957 const { el: e } = t.scrollbar; 4958 e && 4959 e.classList[t.enabled ? "remove" : "add"]( 4960 ...n(t.params.scrollbar.lockClass) 4961 ); 4962 }), 4963 i("destroy", () => { 4964 L(); 4965 }); 4966 const I = () => { 4967 t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)), 4968 t.scrollbar.el && 4969 t.scrollbar.el.classList.add( 4970 ...n(t.params.scrollbar.scrollbarDisabledClass) 4971 ), 4972 L(); 4973 }; 4974 Object.assign(t.scrollbar, { 4975 enable: () => { 4976 t.el.classList.remove( 4977 ...n(t.params.scrollbar.scrollbarDisabledClass) 4978 ), 4979 t.scrollbar.el && 4980 t.scrollbar.el.classList.remove( 4981 ...n(t.params.scrollbar.scrollbarDisabledClass) 4982 ), 4983 P(), 4984 b(), 4985 g(); 4986 }, 4987 disable: I, 4988 updateSize: b, 4989 setTranslate: g, 4990 init: P, 4991 destroy: L, 4992 }); 4993 }, 4994 function (e) { 4995 let { swiper: t, extendParams: s, on: a } = e; 4996 s({ parallax: { enabled: !1 } }); 4997 const i = 4998 "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]", 4999 r = (e, s) => { 5000 const { rtl: a } = t, 5001 i = a ? -1 : 1, 5002 r = e.getAttribute("data-swiper-parallax") || "0"; 5003 let n = e.getAttribute("data-swiper-parallax-x"), 5004 l = e.getAttribute("data-swiper-parallax-y"); 5005 const o = e.getAttribute("data-swiper-parallax-scale"), 5006 d = e.getAttribute("data-swiper-parallax-opacity"), 5007 c = e.getAttribute("data-swiper-parallax-rotate"); 5008 if ( 5009 (n || l 5010 ? ((n = n || "0"), (l = l || "0")) 5011 : t.isHorizontal() 5012 ? ((n = r), (l = "0")) 5013 : ((l = r), (n = "0")), 5014 (n = 5015 n.indexOf("%") >= 0 5016 ? parseInt(n, 10) * s * i + "%" 5017 : n * s * i + "px"), 5018 (l = 5019 l.indexOf("%") >= 0 ? parseInt(l, 10) * s + "%" : l * s + "px"), 5020 null != d) 5021 ) { 5022 const t = d - (d - 1) * (1 - Math.abs(s)); 5023 e.style.opacity = t; 5024 } 5025 let p = `translate3d(${n}, ${l}, 0px)`; 5026 if (null != o) { 5027 p += ` scale(${o - (o - 1) * (1 - Math.abs(s))})`; 5028 } 5029 if (c && null != c) { 5030 p += ` rotate(${c * s * -1}deg)`; 5031 } 5032 e.style.transform = p; 5033 }, 5034 n = () => { 5035 const { 5036 el: e, 5037 slides: s, 5038 progress: a, 5039 snapGrid: n, 5040 isElement: l, 5041 } = t, 5042 o = f(e, i); 5043 t.isElement && o.push(...f(t.hostEl, i)), 5044 o.forEach((e) => { 5045 r(e, a); 5046 }), 5047 s.forEach((e, s) => { 5048 let l = e.progress; 5049 t.params.slidesPerGroup > 1 && 5050 "auto" !== t.params.slidesPerView && 5051 (l += Math.ceil(s / 2) - a * (n.length - 1)),
5052 (l = Math.min(Math.max(l, -1), 1)), 5053 e 5054 .querySelectorAll(`${i}, [data-swiper-parallax-rotate]`) 5055 .forEach((e) => { 5056 r(e, l); 5057 }); 5058 }); 5059 }; 5060 a("beforeInit", () => { 5061 t.params.parallax.enabled && 5062 ((t.params.watchSlidesProgress = !0), 5063 (t.originalParams.watchSlidesProgress = !0)); 5064 }), 5065 a("init", () => { 5066 t.params.parallax.enabled && n(); 5067 }), 5068 a("setTranslate", () => { 5069 t.params.parallax.enabled && n(); 5070 }), 5071 a("setTransition", (e, s) => { 5072 t.params.parallax.enabled && 5073 (function (e) { 5074 void 0 === e && (e = t.params.speed); 5075 const { el: s, hostEl: a } = t, 5076 r = [...s.querySelectorAll(i)]; 5077 t.isElement && r.push(...a.querySelectorAll(i)), 5078 r.forEach((t) => { 5079 let s = 5080 parseInt( 5081 t.getAttribute("data-swiper-parallax-duration"), 5082 10 5083 ) || e; 5084 0 === e && (s = 0), (t.style.transitionDuration = `${s}ms`); 5085 }); 5086 })(s); 5087 }); 5088 }, 5089 function (e) { 5090 let { swiper: t, extendParams: s, on: a, emit: i } = e; 5091 const n = r(); 5092 s({ 5093 zoom: { 5094 enabled: !1, 5095 limitToOriginalSize: !1, 5096 maxRatio: 3, 5097 minRatio: 1, 5098 toggle: !0, 5099 containerClass: "swiper-zoom-container", 5100 zoomedSlideClass: "swiper-slide-zoomed", 5101 }, 5102 }), 5103 (t.zoom = { enabled: !1 }); 5104 let l, 5105 o, 5106 c = 1, 5107 p = !1; 5108 const u = [], 5109 m = { 5110 originX: 0, 5111 originY: 0, 5112 slideEl: void 0, 5113 slideWidth: void 0, 5114 slideHeight: void 0, 5115 imageEl: void 0, 5116 imageWrapEl: void 0, 5117 maxRatio: 3, 5118 }, 5119 h = { 5120 isTouched: void 0, 5121 isMoved: void 0, 5122 currentX: void 0, 5123 currentY: void 0, 5124 minX: void 0, 5125 minY: void 0, 5126 maxX: void 0, 5127 maxY: void 0, 5128 width: void 0, 5129 height: void 0, 5130 startX: void 0, 5131 startY: void 0, 5132 touchesStart: {}, 5133 touchesCurrent: {}, 5134 }, 5135 g = { 5136 x: void 0, 5137 y: void 0, 5138 prevPositionX: void 0, 5139 prevPositionY: void 0, 5140 prevTime: void 0, 5141 }; 5142 let v = 1; 5143 function b() { 5144 if (u.length < 2) return 1; 5145 const e = u[0].pageX, 5146 t = u[0].pageY, 5147 s = u[1].pageX, 5148 a = u[1].pageY; 5149 return Math.sqrt((s - e) ** 2 + (a - t) ** 2); 5150 } 5151 function y() { 5152 const e = t.params.zoom, 5153 s = m.imageWrapEl.getAttribute("data-swiper-zoom") || e.maxRatio; 5154 if (e.limitToOriginalSize && m.imageEl && m.imageEl.naturalWidth) { 5155 const e = m.imageEl.naturalWidth / m.imageEl.offsetWidth; 5156 return Math.min(e, s); 5157 } 5158 return s; 5159 } 5160 function x(e) { 5161 const s = t.isElement ? "swiper-slide" : `.${t.params.slideClass}`; 5162 return ( 5163 !!e.target.matches(s) || 5164 t.slides.filter((t) => t.contains(e.target)).length > 0 5165 ); 5166 } 5167 function S(e) { 5168 if (("mouse" === e.pointerType && u.splice(0, u.length), !x(e))) return; 5169 const s = t.params.zoom; 5170 if (((l = !1), (o = !1), u.push(e), !(u.length < 2))) { 5171 if (((l = !0), (m.scaleStart = b()), !m.slideEl)) { 5172 (m.slideEl = e.target.closest( 5173 `.${t.params.slideClass}, swiper-slide` 5174 )), 5175 m.slideEl || (m.slideEl = t.slides[t.activeIndex]); 5176 let a = m.slideEl.querySelector(`.${s.containerClass}`); 5177 if ( 5178 (a && 5179 (a = a.querySelectorAll( 5180 "picture, img, svg, canvas, .swiper-zoom-target" 5181 )[0]), 5182 (m.imageEl = a), 5183 (m.imageWrapEl = a 5184 ? E(m.imageEl, `.${s.containerClass}`)[0] 5185 : void 0), 5186 !m.imageWrapEl) 5187 ) 5188 return void (m.imageEl = void 0); 5189 m.maxRatio = y(); 5190 } 5191 if (m.imageEl) { 5192 const [e, t] = (function () { 5193 if (u.length < 2) return { x: null, y: null }; 5194 const e = m.imageEl.getBoundingClientRect(); 5195 return [ 5196 (u[0].pageX + (u[1].pageX - u[0].pageX) / 2 - e.x - n.scrollX) / 5197 c, 5198 (u[0].pageY + (u[1].pageY - u[0].pageY) / 2 - e.y - n.scrollY) / 5199 c, 5200 ]; 5201 })(); 5202 (m.originX = e), 5203 (m.originY = t), 5204 (m.imageEl.style.transitionDuration = "0ms"); 5205 } 5206 p = !0; 5207 } 5208 } 5209 function T(e) { 5210 if (!x(e)) return; 5211 const s = t.params.zoom, 5212 a = t.zoom, 5213 i = u.findIndex((t) => t.pointerId === e.pointerId); 5214 i >= 0 && (u[i] = e), 5215 u.length < 2 || 5216 ((o = !0), 5217 (m.scaleMove = b()), 5218 m.imageEl && 5219 ((a.scale = (m.scaleMove / m.scaleStart) * c), 5220 a.scale > m.maxRatio && 5221 (a.scale = m.maxRatio - 1 + (a.scale - m.maxRatio + 1) ** 0.5), 5222 a.scale < s.minRatio && 5223 (a.scale = s.minRatio + 1 - (s.minRatio - a.scale + 1) ** 0.5),
5224 (m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`))); 5225 } 5226 function M(e) { 5227 if (!x(e)) return; 5228 if ("mouse" === e.pointerType && "pointerout" === e.type) return; 5229 const s = t.params.zoom, 5230 a = t.zoom, 5231 i = u.findIndex((t) => t.pointerId === e.pointerId); 5232 i >= 0 && u.splice(i, 1), 5233 l && 5234 o && 5235 ((l = !1), 5236 (o = !1), 5237 m.imageEl && 5238 ((a.scale = Math.max(Math.min(a.scale, m.maxRatio), s.minRatio)), 5239 (m.imageEl.style.transitionDuration = `${t.params.speed}ms`), 5240 (m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`), 5241 (c = a.scale), 5242 (p = !1), 5243 a.scale > 1 && m.slideEl 5244 ? m.slideEl.classList.add(`${s.zoomedSlideClass}`) 5245 : a.scale <= 1 && 5246 m.slideEl && 5247 m.slideEl.classList.remove(`${s.zoomedSlideClass}`), 5248 1 === a.scale && 5249 ((m.originX = 0), (m.originY = 0), (m.slideEl = void 0)))); 5250 } 5251 function C(e) { 5252 if ( 5253 !x(e) || 5254 !(function (e) { 5255 const s = `.${t.params.zoom.containerClass}`; 5256 return ( 5257 !!e.target.matches(s) || 5258 [...t.hostEl.querySelectorAll(s)].filter((t) => 5259 t.contains(e.target) 5260 ).length > 0 5261 ); 5262 })(e) 5263 ) 5264 return; 5265 const s = t.zoom; 5266 if (!m.imageEl) return; 5267 if (!h.isTouched || !m.slideEl) return; 5268 h.isMoved || 5269 ((h.width = m.imageEl.offsetWidth), 5270 (h.height = m.imageEl.offsetHeight), 5271 (h.startX = d(m.imageWrapEl, "x") || 0), 5272 (h.startY = d(m.imageWrapEl, "y") || 0), 5273 (m.slideWidth = m.slideEl.offsetWidth), 5274 (m.slideHeight = m.slideEl.offsetHeight), 5275 (m.imageWrapEl.style.transitionDuration = "0ms")); 5276 const a = h.width * s.scale, 5277 i = h.height * s.scale; 5278 if (a < m.slideWidth && i < m.slideHeight) return; 5279 (h.minX = Math.min(m.slideWidth / 2 - a / 2, 0)), 5280 (h.maxX = -h.minX), 5281 (h.minY = Math.min(m.slideHeight / 2 - i / 2, 0)), 5282 (h.maxY = -h.minY), 5283 (h.touchesCurrent.x = u.length > 0 ? u[0].pageX : e.pageX), 5284 (h.touchesCurrent.y = u.length > 0 ? u[0].pageY : e.pageY); 5285 if ( 5286 (Math.max( 5287 Math.abs(h.touchesCurrent.x - h.touchesStart.x), 5288 Math.abs(h.touchesCurrent.y - h.touchesStart.y) 5289 ) > 5 && (t.allowClick = !1), 5290 !h.isMoved && !p) 5291 ) { 5292 if ( 5293 t.isHorizontal() && 5294 ((Math.floor(h.minX) === Math.floor(h.startX) && 5295 h.touchesCurrent.x < h.touchesStart.x) || 5296 (Math.floor(h.maxX) === Math.floor(h.startX) && 5297 h.touchesCurrent.x > h.touchesStart.x)) 5298 ) 5299 return void (h.isTouched = !1); 5300 if ( 5301 !t.isHorizontal() && 5302 ((Math.floor(h.minY) === Math.floor(h.startY) && 5303 h.touchesCurrent.y < h.touchesStart.y) || 5304 (Math.floor(h.maxY) === Math.floor(h.startY) && 5305 h.touchesCurrent.y > h.touchesStart.y)) 5306 ) 5307 return void (h.isTouched = !1); 5308 } 5309 e.cancelable && e.preventDefault(), 5310 e.stopPropagation(), 5311 (h.isMoved = !0); 5312 const r = (s.scale - c) / (m.maxRatio - t.params.zoom.minRatio), 5313 { originX: n, originY: l } = m; 5314 (h.currentX = 5315 h.touchesCurrent.x - 5316 h.touchesStart.x + 5317 h.startX + 5318 r * (h.width - 2 * n)), 5319 (h.currentY = 5320 h.touchesCurrent.y - 5321 h.touchesStart.y + 5322 h.startY + 5323 r * (h.height - 2 * l)), 5324 h.currentX < h.minX && 5325 (h.currentX = h.minX + 1 - (h.minX - h.currentX + 1) ** 0.8), 5326 h.currentX > h.maxX && 5327 (h.currentX = h.maxX - 1 + (h.currentX - h.maxX + 1) ** 0.8), 5328 h.currentY < h.minY && 5329 (h.currentY = h.minY + 1 - (h.minY - h.currentY + 1) ** 0.8), 5330 h.currentY > h.maxY && 5331 (h.currentY = h.maxY - 1 + (h.currentY - h.maxY + 1) ** 0.8), 5332 g.prevPositionX || (g.prevPositionX = h.touchesCurrent.x), 5333 g.prevPositionY || (g.prevPositionY = h.touchesCurrent.y), 5334 g.prevTime || (g.prevTime = Date.now()), 5335 (g.x = 5336 (h.touchesCurrent.x - g.prevPositionX) / 5337 (Date.now() - g.prevTime) / 5338 2), 5339 (g.y = 5340 (h.touchesCurrent.y - g.prevPositionY) / 5341 (Date.now() - g.prevTime) / 5342 2), 5343 Math.abs(h.touchesCurrent.x - g.prevPositionX) < 2 && (g.x = 0), 5344 Math.abs(h.touchesCurrent.y - g.prevPositionY) < 2 && (g.y = 0), 5345 (g.prevPositionX = h.touchesCurrent.x), 5346 (g.prevPositionY = h.touchesCurrent.y), 5347 (g.prevTime = Date.now()), 5348 (m.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)`); 5349 } 5350 function P() { 5351 const e = t.zoom; 5352 m.slideEl && 5353 t.activeIndex !== t.slides.indexOf(m.slideEl) && 5354 (m.imageEl &&
5355 (m.imageEl.style.transform = "translate3d(0,0,0) scale(1)"), 5356 m.imageWrapEl && 5357 (m.imageWrapEl.style.transform = "translate3d(0,0,0)"), 5358 m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`), 5359 (e.scale = 1), 5360 (c = 1), 5361 (m.slideEl = void 0), 5362 (m.imageEl = void 0), 5363 (m.imageWrapEl = void 0), 5364 (m.originX = 0), 5365 (m.originY = 0)); 5366 } 5367 function L(e) { 5368 const s = t.zoom, 5369 a = t.params.zoom; 5370 if (!m.slideEl) { 5371 e && 5372 e.target && 5373 (m.slideEl = e.target.closest( 5374 `.${t.params.slideClass}, swiper-slide` 5375 )), 5376 m.slideEl || 5377 (t.params.virtual && t.params.virtual.enabled && t.virtual 5378 ? (m.slideEl = f( 5379 t.slidesEl, 5380 `.${t.params.slideActiveClass}` 5381 )[0]) 5382 : (m.slideEl = t.slides[t.activeIndex])); 5383 let s = m.slideEl.querySelector(`.${a.containerClass}`); 5384 s && 5385 (s = s.querySelectorAll( 5386 "picture, img, svg, canvas, .swiper-zoom-target" 5387 )[0]), 5388 (m.imageEl = s), 5389 (m.imageWrapEl = s 5390 ? E(m.imageEl, `.${a.containerClass}`)[0] 5391 : void 0); 5392 } 5393 if (!m.imageEl || !m.imageWrapEl) return; 5394 let i, r, l, o, d, p, u, g, v, b, x, S, T, M, C, P, L, I; 5395 t.params.cssMode && 5396 ((t.wrapperEl.style.overflow = "hidden"), 5397 (t.wrapperEl.style.touchAction = "none")), 5398 m.slideEl.classList.add(`${a.zoomedSlideClass}`), 5399 void 0 === h.touchesStart.x && e 5400 ? ((i = e.pageX), (r = e.pageY)) 5401 : ((i = h.touchesStart.x), (r = h.touchesStart.y)); 5402 const z = "number" == typeof e ? e : null; 5403 1 === c && z && ((i = void 0), (r = void 0)); 5404 const A = y(); 5405 (s.scale = z || A), 5406 (c = z || A), 5407 !e || (1 === c && z) 5408 ? ((u = 0), (g = 0)) 5409 : ((L = m.slideEl.offsetWidth), 5410 (I = m.slideEl.offsetHeight), 5411 (l = w(m.slideEl).left + n.scrollX), 5412 (o = w(m.slideEl).top + n.scrollY), 5413 (d = l + L / 2 - i), 5414 (p = o + I / 2 - r), 5415 (v = m.imageEl.offsetWidth), 5416 (b = m.imageEl.offsetHeight), 5417 (x = v * s.scale), 5418 (S = b * s.scale), 5419 (T = Math.min(L / 2 - x / 2, 0)), 5420 (M = Math.min(I / 2 - S / 2, 0)), 5421 (C = -T), 5422 (P = -M), 5423 (u = d * s.scale), 5424 (g = p * s.scale), 5425 u < T && (u = T), 5426 u > C && (u = C), 5427 g < M && (g = M), 5428 g > P && (g = P)), 5429 z && 1 === s.scale && ((m.originX = 0), (m.originY = 0)), 5430 (m.imageWrapEl.style.transitionDuration = "300ms"), 5431 (m.imageWrapEl.style.transform = `translate3d(${u}px, ${g}px,0)`), 5432 (m.imageEl.style.transitionDuration = "300ms"), 5433 (m.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})`); 5434 } 5435 function I() { 5436 const e = t.zoom, 5437 s = t.params.zoom; 5438 if (!m.slideEl) { 5439 t.params.virtual && t.params.virtual.enabled && t.virtual 5440 ? (m.slideEl = f(t.slidesEl, `.${t.params.slideActiveClass}`)[0]) 5441 : (m.slideEl = t.slides[t.activeIndex]); 5442 let e = m.slideEl.querySelector(`.${s.containerClass}`); 5443 e && 5444 (e = e.querySelectorAll( 5445 "picture, img, svg, canvas, .swiper-zoom-target" 5446 )[0]), 5447 (m.imageEl = e), 5448 (m.imageWrapEl = e 5449 ? E(m.imageEl, `.${s.containerClass}`)[0] 5450 : void 0); 5451 } 5452 m.imageEl && 5453 m.imageWrapEl && 5454 (t.params.cssMode && 5455 ((t.wrapperEl.style.overflow = ""), 5456 (t.wrapperEl.style.touchAction = "")), 5457 (e.scale = 1), 5458 (c = 1), 5459 (m.imageWrapEl.style.transitionDuration = "300ms"),
5460 (m.imageWrapEl.style.transform = "translate3d(0,0,0)"), 5461 (m.imageEl.style.transitionDuration = "300ms"), 5462 (m.imageEl.style.transform = "translate3d(0,0,0) scale(1)"), 5463 m.slideEl.classList.remove(`${s.zoomedSlideClass}`), 5464 (m.slideEl = void 0), 5465 (m.originX = 0), 5466 (m.originY = 0)); 5467 } 5468 function z(e) { 5469 const s = t.zoom; 5470 s.scale && 1 !== s.scale ? I() : L(e); 5471 } 5472 function A() { 5473 return { 5474 passiveListener: !!t.params.passiveListeners && { 5475 passive: !0, 5476 capture: !1, 5477 }, 5478 activeListenerWithCapture: !t.params.passiveListeners || { 5479 passive: !1, 5480 capture: !0, 5481 }, 5482 }; 5483 } 5484 function $() { 5485 const e = t.zoom; 5486 if (e.enabled) return; 5487 e.enabled = !0; 5488 const { passiveListener: s, activeListenerWithCapture: a } = A(); 5489 t.wrapperEl.addEventListener("pointerdown", S, s), 5490 t.wrapperEl.addEventListener("pointermove", T, a), 5491 ["pointerup", "pointercancel", "pointerout"].forEach((e) => { 5492 t.wrapperEl.addEventListener(e, M, s); 5493 }), 5494 t.wrapperEl.addEventListener("pointermove", C, a); 5495 } 5496 function k() { 5497 const e = t.zoom; 5498 if (!e.enabled) return; 5499 e.enabled = !1; 5500 const { passiveListener: s, activeListenerWithCapture: a } = A(); 5501 t.wrapperEl.removeEventListener("pointerdown", S, s), 5502 t.wrapperEl.removeEventListener("pointermove", T, a), 5503 ["pointerup", "pointercancel", "pointerout"].forEach((e) => { 5504 t.wrapperEl.removeEventListener(e, M, s); 5505 }), 5506 t.wrapperEl.removeEventListener("pointermove", C, a); 5507 } 5508 Object.defineProperty(t.zoom, "scale", { 5509 get: () => v, 5510 set(e) { 5511 if (v !== e) { 5512 const t = m.imageEl, 5513 s = m.slideEl; 5514 i("zoomChange", e, t, s); 5515 } 5516 v = e; 5517 }, 5518 }), 5519 a("init", () => { 5520 t.params.zoom.enabled && $(); 5521 }), 5522 a("destroy", () => { 5523 k(); 5524 }), 5525 a("touchStart", (e, s) => { 5526 t.zoom.enabled && 5527 (function (e) { 5528 const s = t.device; 5529 if (!m.imageEl) return; 5530 if (h.isTouched) return; 5531 s.android && e.cancelable && e.preventDefault(), 5532 (h.isTouched = !0); 5533 const a = u.length > 0 ? u[0] : e; 5534 (h.touchesStart.x = a.pageX), (h.touchesStart.y = a.pageY); 5535 })(s); 5536 }), 5537 a("touchEnd", (e, s) => { 5538 t.zoom.enabled && 5539 (function () { 5540 const e = t.zoom; 5541 if (!m.imageEl) return; 5542 if (!h.isTouched || !h.isMoved) 5543 return (h.isTouched = !1), void (h.isMoved = !1); 5544 (h.isTouched = !1), (h.isMoved = !1); 5545 let s = 300, 5546 a = 300; 5547 const i = g.x * s, 5548 r = h.currentX + i, 5549 n = g.y * a, 5550 l = h.currentY + n; 5551 0 !== g.x && (s = Math.abs((r - h.currentX) / g.x)), 5552 0 !== g.y && (a = Math.abs((l - h.currentY) / g.y)); 5553 const o = Math.max(s, a); 5554 (h.currentX = r), (h.currentY = l); 5555 const d = h.width * e.scale, 5556 c = h.height * e.scale; 5557 (h.minX = Math.min(m.slideWidth / 2 - d / 2, 0)), 5558 (h.maxX = -h.minX), 5559 (h.minY = Math.min(m.slideHeight / 2 - c / 2, 0)), 5560 (h.maxY = -h.minY), 5561 (h.currentX = Math.max(Math.min(h.currentX, h.maxX), h.minX)), 5562 (h.currentY = Math.max(Math.min(h.currentY, h.maxY), h.minY)), 5563 (m.imageWrapEl.style.transitionDuration = `${o}ms`), 5564 (m.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)`); 5565 })(); 5566 }), 5567 a("doubleTap", (e, s) => { 5568 !t.animating && 5569 t.params.zoom.enabled && 5570 t.zoom.enabled && 5571 t.params.zoom.toggle && 5572 z(s); 5573 }), 5574 a("transitionEnd", () => { 5575 t.zoom.enabled && t.params.zoom.enabled && P(); 5576 }), 5577 a("slideChange", () => { 5578 t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && P(); 5579 }), 5580 Object.assign(t.zoom, { 5581 enable: $, 5582 disable: k, 5583 in: L, 5584 out: I, 5585 toggle: z, 5586 }); 5587 }, 5588 function (e) { 5589 let { swiper: t, extendParams: s, on: a } = e; 5590 function i(e, t) { 5591 const s = (function () { 5592 let e, t, s; 5593 return (a, i) => { 5594 for (t = -1, e = a.length; e - t > 1; ) 5595 (s = (e + t) >> 1), a[s] <= i ? (t = s) : (e = s); 5596 return e; 5597 }; 5598 })(); 5599 let a, i; 5600 return ( 5601 (this.x = e), 5602 (this.y = t), 5603 (this.lastIndex = e.length - 1), 5604 (this.interpolate = function (e) { 5605 return e 5606 ? ((i = s(this.x, e)), 5607 (a = i - 1), 5608 ((e - this.x[a]) * (this.y[i] - this.y[a])) / 5609 (this.x[i] - this.x[a]) + 5610 this.y[a]) 5611 : 0; 5612 }), 5613 this 5614 ); 5615 } 5616 function r() { 5617 t.controller.control && 5618 t.controller.spline && 5619 ((t.controller.spline = void 0), delete t.controller.spline); 5620 } 5621 s({ controller: { control: void 0, inverse: !1, by: "slide" } }), 5622 (t.controller = { control: void 0 }), 5623 a("beforeInit", () => { 5624 if ( 5625 "undefined" != typeof window && 5626 ("string" == typeof t.params.controller.control || 5627 t.params.controller.control instanceof HTMLElement) 5628 ) { 5629 const e = document.querySelector(t.params.controller.control); 5630 if (e && e.swiper) t.controller.control = e.swiper; 5631 else if (e) { 5632 const s = (a) => { 5633 (t.controller.control = a.detail[0]),
5634 t.update(), 5635 e.removeEventListener("init", s); 5636 }; 5637 e.addEventListener("init", s); 5638 } 5639 } else t.controller.control = t.params.controller.control; 5640 }), 5641 a("update", () => { 5642 r(); 5643 }), 5644 a("resize", () => { 5645 r(); 5646 }), 5647 a("observerUpdate", () => { 5648 r(); 5649 }), 5650 a("setTranslate", (e, s, a) => { 5651 t.controller.control && 5652 !t.controller.control.destroyed && 5653 t.controller.setTranslate(s, a); 5654 }), 5655 a("setTransition", (e, s, a) => { 5656 t.controller.control && 5657 !t.controller.control.destroyed && 5658 t.controller.setTransition(s, a); 5659 }), 5660 Object.assign(t.controller, { 5661 setTranslate: function (e, s) { 5662 const a = t.controller.control; 5663 let r, n; 5664 const l = t.constructor; 5665 function o(e) { 5666 if (e.destroyed) return; 5667 const s = t.rtlTranslate ? -t.translate : t.translate; 5668 "slide" === t.params.controller.by && 5669 (!(function (e) { 5670 t.controller.spline = t.params.loop 5671 ? new i(t.slidesGrid, e.slidesGrid) 5672 : new i(t.snapGrid, e.snapGrid); 5673 })(e), 5674 (n = -t.controller.spline.interpolate(-s))), 5675 (n && "container" !== t.params.controller.by) || 5676 ((r = 5677 (e.maxTranslate() - e.minTranslate()) / 5678 (t.maxTranslate() - t.minTranslate())), 5679 (!Number.isNaN(r) && Number.isFinite(r)) || (r = 1), 5680 (n = (s - t.minTranslate()) * r + e.minTranslate())), 5681 t.params.controller.inverse && (n = e.maxTranslate() - n), 5682 e.updateProgress(n), 5683 e.setTranslate(n, t), 5684 e.updateActiveIndex(), 5685 e.updateSlidesClasses(); 5686 } 5687 if (Array.isArray(a)) 5688 for (let e = 0; e < a.length; e += 1) 5689 a[e] !== s && a[e] instanceof l && o(a[e]); 5690 else a instanceof l && s !== a && o(a); 5691 }, 5692 setTransition: function (e, s) { 5693 const a = t.constructor, 5694 i = t.controller.control; 5695 let r; 5696 function n(s) { 5697 s.destroyed || 5698 (s.setTransition(e, t), 5699 0 !== e && 5700 (s.transitionStart(), 5701 s.params.autoHeight && 5702 l(() => { 5703 s.updateAutoHeight(); 5704 }), 5705 x(s.wrapperEl, () => { 5706 i && s.transitionEnd(); 5707 }))); 5708 } 5709 if (Array.isArray(i)) 5710 for (r = 0; r < i.length; r += 1) 5711 i[r] !== s && i[r] instanceof a && n(i[r]); 5712 else i instanceof a && s !== i && n(i); 5713 }, 5714 }); 5715 }, 5716 function (e) { 5717 let { swiper: t, extendParams: s, on: a } = e; 5718 s({ 5719 a11y: { 5720 enabled: !0, 5721 notificationClass: "swiper-notification", 5722 prevSlideMessage: "Previous slide", 5723 nextSlideMessage: "Next slide", 5724 firstSlideMessage: "This is the first slide", 5725 lastSlideMessage: "This is the last slide", 5726 paginationBulletMessage: "Go to slide {{index}}", 5727 slideLabelMessage: "{{index}} / {{slidesLength}}", 5728 containerMessage: null, 5729 containerRoleDescriptionMessage: null, 5730 itemRoleDescriptionMessage: null, 5731 slideRole: "group", 5732 id: null, 5733 }, 5734 }), 5735 (t.a11y = { clicked: !1 }); 5736 let i = null; 5737 function r(e) { 5738 const t = i; 5739 0 !== t.length && ((t.innerHTML = ""), (t.innerHTML = e)); 5740 } 5741 function n(e) {
5742 (e = T(e)).forEach((e) => { 5743 e.setAttribute("tabIndex", "0"); 5744 }); 5745 } 5746 function l(e) { 5747 (e = T(e)).forEach((e) => { 5748 e.setAttribute("tabIndex", "-1"); 5749 }); 5750 } 5751 function o(e, t) { 5752 (e = T(e)).forEach((e) => { 5753 e.setAttribute("role", t); 5754 }); 5755 } 5756 function d(e, t) { 5757 (e = T(e)).forEach((e) => { 5758 e.setAttribute("aria-roledescription", t); 5759 }); 5760 } 5761 function c(e, t) { 5762 (e = T(e)).forEach((e) => { 5763 e.setAttribute("aria-label", t); 5764 }); 5765 } 5766 function p(e) { 5767 (e = T(e)).forEach((e) => { 5768 e.setAttribute("aria-disabled", !0); 5769 }); 5770 } 5771 function u(e) { 5772 (e = T(e)).forEach((e) => { 5773 e.setAttribute("aria-disabled", !1); 5774 }); 5775 } 5776 function m(e) { 5777 if (13 !== e.keyCode && 32 !== e.keyCode) return; 5778 const s = t.params.a11y, 5779 a = e.target; 5780 (t.pagination && 5781 t.pagination.el && 5782 (a === t.pagination.el || t.pagination.el.contains(e.target)) && 5783 !e.target.matches(ae(t.params.pagination.bulletClass))) || 5784 (t.navigation && 5785 t.navigation.nextEl && 5786 a === t.navigation.nextEl && 5787 ((t.isEnd && !t.params.loop) || t.slideNext(), 5788 t.isEnd ? r(s.lastSlideMessage) : r(s.nextSlideMessage)), 5789 t.navigation && 5790 t.navigation.prevEl && 5791 a === t.navigation.prevEl && 5792 ((t.isBeginning && !t.params.loop) || t.slidePrev(), 5793 t.isBeginning ? r(s.firstSlideMessage) : r(s.prevSlideMessage)), 5794 t.pagination && 5795 a.matches(ae(t.params.pagination.bulletClass)) && 5796 a.click()); 5797 } 5798 function h() { 5799 return ( 5800 t.pagination && t.pagination.bullets && t.pagination.bullets.length 5801 ); 5802 } 5803 function f() { 5804 return h() && t.params.pagination.clickable; 5805 } 5806 const g = (e, t, s) => { 5807 n(e), 5808 "BUTTON" !== e.tagName && 5809 (o(e, "button"), e.addEventListener("keydown", m)), 5810 c(e, s), 5811 (function (e, t) {
5812 (e = T(e)).forEach((e) => { 5813 e.setAttribute("aria-controls", t); 5814 }); 5815 })(e, t); 5816 }, 5817 w = () => { 5818 t.a11y.clicked = !0; 5819 }, 5820 b = () => { 5821 requestAnimationFrame(() => { 5822 requestAnimationFrame(() => { 5823 t.destroyed || (t.a11y.clicked = !1); 5824 }); 5825 }); 5826 }, 5827 E = (e) => { 5828 if (t.a11y.clicked) return; 5829 const s = e.target.closest(`.${t.params.slideClass}, swiper-slide`); 5830 if (!s || !t.slides.includes(s)) return; 5831 const a = t.slides.indexOf(s) === t.activeIndex, 5832 i = 5833 t.params.watchSlidesProgress && 5834 t.visibleSlides && 5835 t.visibleSlides.includes(s); 5836 a || 5837 i || 5838 (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) || 5839 (t.isHorizontal() ? (t.el.scrollLeft = 0) : (t.el.scrollTop = 0), 5840 t.slideTo(t.slides.indexOf(s), 0)); 5841 }, 5842 x = () => { 5843 const e = t.params.a11y; 5844 e.itemRoleDescriptionMessage && 5845 d(t.slides, e.itemRoleDescriptionMessage), 5846 e.slideRole && o(t.slides, e.slideRole); 5847 const s = t.slides.length; 5848 e.slideLabelMessage && 5849 t.slides.forEach((a, i) => { 5850 const r = t.params.loop 5851 ? parseInt(a.getAttribute("data-swiper-slide-index"), 10) 5852 : i; 5853 c( 5854 a, 5855 e.slideLabelMessage 5856 .replace(/\{\{index\}\}/, r + 1) 5857 .replace(/\{\{slidesLength\}\}/, s) 5858 ); 5859 }); 5860 }, 5861 S = () => { 5862 const e = t.params.a11y; 5863 t.el.append(i); 5864 const s = t.el; 5865 e.containerRoleDescriptionMessage && 5866 d(s, e.containerRoleDescriptionMessage), 5867 e.containerMessage && c(s, e.containerMessage); 5868 const a = t.wrapperEl, 5869 r = 5870 e.id || 5871 a.getAttribute("id") || 5872 `swiper-wrapper-${ 5873 ((n = 16), 5874 void 0 === n && (n = 16), 5875 "x" 5876 .repeat(n) 5877 .replace(/x/g, () => 5878 Math.round(16 * Math.random()).toString(16) 5879 )) 5880 }`; 5881 var n; 5882 const l = 5883 t.params.autoplay && t.params.autoplay.enabled ? "off" : "polite"; 5884 var o; 5885 (o = r), 5886 T(a).forEach((e) => { 5887 e.setAttribute("id", o); 5888 }), 5889 (function (e, t) {
5890 (e = T(e)).forEach((e) => { 5891 e.setAttribute("aria-live", t); 5892 }); 5893 })(a, l), 5894 x(); 5895 let { nextEl: p, prevEl: u } = t.navigation ? t.navigation : {}; 5896 if ( 5897 ((p = T(p)), 5898 (u = T(u)), 5899 p && p.forEach((t) => g(t, r, e.nextSlideMessage)), 5900 u && u.forEach((t) => g(t, r, e.prevSlideMessage)), 5901 f()) 5902 ) { 5903 T(t.pagination.el).forEach((e) => { 5904 e.addEventListener("keydown", m); 5905 }); 5906 } 5907 t.el.addEventListener("focus", E, !0), 5908 t.el.addEventListener("pointerdown", w, !0), 5909 t.el.addEventListener("pointerup", b, !0); 5910 }; 5911 a("beforeInit", () => { 5912 (i = v("span", t.params.a11y.notificationClass)), 5913 i.setAttribute("aria-live", "assertive"), 5914 i.setAttribute("aria-atomic", "true"); 5915 }), 5916 a("afterInit", () => { 5917 t.params.a11y.enabled && S(); 5918 }), 5919 a( 5920 "slidesLengthChange snapGridLengthChange slidesGridLengthChange", 5921 () => { 5922 t.params.a11y.enabled && x(); 5923 } 5924 ), 5925 a("fromEdge toEdge afterInit lock unlock", () => { 5926 t.params.a11y.enabled && 5927 (function () { 5928 if (t.params.loop || t.params.rewind || !t.navigation) return; 5929 const { nextEl: e, prevEl: s } = t.navigation; 5930 s && (t.isBeginning ? (p(s), l(s)) : (u(s), n(s))), 5931 e && (t.isEnd ? (p(e), l(e)) : (u(e), n(e))); 5932 })(); 5933 }), 5934 a("paginationUpdate", () => { 5935 t.params.a11y.enabled && 5936 (function () { 5937 const e = t.params.a11y; 5938 h() && 5939 t.pagination.bullets.forEach((s) => { 5940 t.params.pagination.clickable && 5941 (n(s), 5942 t.params.pagination.renderBullet || 5943 (o(s, "button"), 5944 c( 5945 s, 5946 e.paginationBulletMessage.replace( 5947 /\{\{index\}\}/, 5948 y(s) + 1 5949 ) 5950 ))), 5951 s.matches(ae(t.params.pagination.bulletActiveClass)) 5952 ? s.setAttribute("aria-current", "true") 5953 : s.removeAttribute("aria-current"); 5954 }); 5955 })(); 5956 }), 5957 a("destroy", () => { 5958 t.params.a11y.enabled && 5959 (function () { 5960 i && i.remove(); 5961 let { nextEl: e, prevEl: s } = t.navigation ? t.navigation : {}; 5962 (e = T(e)), 5963 (s = T(s)), 5964 e && e.forEach((e) => e.removeEventListener("keydown", m)), 5965 s && s.forEach((e) => e.removeEventListener("keydown", m)), 5966 f() && 5967 T(t.pagination.el).forEach((e) => { 5968 e.removeEventListener("keydown", m); 5969 }); 5970 t.el.removeEventListener("focus", E, !0), 5971 t.el.removeEventListener("pointerdown", w, !0), 5972 t.el.removeEventListener("pointerup", b, !0); 5973 })(); 5974 }); 5975 }, 5976 function (e) { 5977 let { swiper: t, extendParams: s, on: a } = e; 5978 s({ 5979 history: { 5980 enabled: !1, 5981 root: "", 5982 replaceState: !1, 5983 key: "slides", 5984 keepQuery: !1, 5985 }, 5986 }); 5987 let i = !1, 5988 n = {}; 5989 const l = (e) => 5990 e 5991 .toString() 5992 .replace(/\s+/g, "-") 5993 .replace(/[^\w-]+/g, "") 5994 .replace(/--+/g, "-") 5995 .replace(/^-+/, "") 5996 .replace(/-+$/, ""), 5997 o = (e) => { 5998 const t = r(); 5999 let s; 6000 s = e ? new URL(e) : t.location; 6001 const a = s.pathname 6002 .slice(1) 6003 .split("/") 6004 .filter((e) => "" !== e), 6005 i = a.length; 6006 return { key: a[i - 2], value: a[i - 1] }; 6007 }, 6008 d = (e, s) => { 6009 const a = r(); 6010 if (!i || !t.params.history.enabled) return; 6011 let n; 6012 n = t.params.url ? new URL(t.params.url) : a.location; 6013 const o = 6014 t.virtual && t.params.virtual.enabled 6015 ? t.slidesEl.querySelector(`[data-swiper-slide-index="${s}"]`) 6016 : t.slides[s]; 6017 let d = l(o.getAttribute("data-history")); 6018 if (t.params.history.root.length > 0) { 6019 let s = t.params.history.root; 6020 "/" === s[s.length - 1] && (s = s.slice(0, s.length - 1)), 6021 (d = `${s}/${e ? `${e}/` : ""}${d}`); 6022 } else n.pathname.includes(e) || (d = `${e ? `${e}/` : ""}${d}`); 6023 t.params.history.keepQuery && (d += n.search); 6024 const c = a.history.state; 6025 (c && c.value === d) || 6026 (t.params.history.replaceState 6027 ? a.history.replaceState({ value: d }, null, d) 6028 : a.history.pushState({ value: d }, null, d)); 6029 }, 6030 c = (e, s, a) => { 6031 if (s) 6032 for (let i = 0, r = t.slides.length; i < r; i += 1) { 6033 const r = t.slides[i]; 6034 if (l(r.getAttribute("data-history")) === s) { 6035 const s = t.getSlideIndex(r); 6036 t.slideTo(s, e, a); 6037 } 6038 } 6039 else t.slideTo(0, e, a); 6040 }, 6041 p = () => { 6042 (n = o(t.params.url)), c(t.params.speed, n.value, !1); 6043 }; 6044 a("init", () => { 6045 t.params.history.enabled && 6046 (() => { 6047 const e = r(); 6048 if (t.params.history) { 6049 if (!e.history || !e.history.pushState) 6050 return ( 6051 (t.params.history.enabled = !1), 6052 void (t.params.hashNavigation.enabled = !0) 6053 ); 6054 (i = !0), 6055 (n = o(t.params.url)), 6056 n.key || n.value 6057 ? (c(0, n.value, t.params.runCallbacksOnInit), 6058 t.params.history.replaceState || 6059 e.addEventListener("popstate", p)) 6060 : t.params.history.replaceState || 6061 e.addEventListener("popstate", p); 6062 } 6063 })(); 6064 }), 6065 a("destroy", () => { 6066 t.params.history.enabled && 6067 (() => { 6068 const e = r(); 6069 t.params.history.replaceState || 6070 e.removeEventListener("popstate", p); 6071 })(); 6072 }), 6073 a("transitionEnd _freeModeNoMomentumRelease", () => { 6074 i && d(t.params.history.key, t.activeIndex); 6075 }), 6076 a("slideChange", () => { 6077 i && t.params.cssMode && d(t.params.history.key, t.activeIndex); 6078 }); 6079 }, 6080 function (e) { 6081 let { swiper: t, extendParams: s, emit: i, on: n } = e, 6082 l = !1; 6083 const o = a(), 6084 d = r(); 6085 s({ 6086 hashNavigation: { 6087 enabled: !1, 6088 replaceState: !1, 6089 watchState: !1, 6090 getSlideIndex(e, s) { 6091 if (t.virtual && t.params.virtual.enabled) { 6092 const e = t.slides.filter( 6093 (e) => e.getAttribute("data-hash") === s 6094 )[0]; 6095 if (!e) return 0; 6096 return parseInt(e.getAttribute("data-swiper-slide-index"), 10); 6097 } 6098 return t.getSlideIndex( 6099 f( 6100 t.slidesEl, 6101 `.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]` 6102 )[0] 6103 ); 6104 }, 6105 }, 6106 }); 6107 const c = () => { 6108 i("hashChange"); 6109 const e = o.location.hash.replace("#", ""), 6110 s = 6111 t.virtual && t.params.virtual.enabled 6112 ? t.slidesEl.querySelector( 6113 `[data-swiper-slide-index="${t.activeIndex}"]` 6114 ) 6115 : t.slides[t.activeIndex]; 6116 if (e !== (s ? s.getAttribute("data-hash") : "")) { 6117 const s = t.params.hashNavigation.getSlideIndex(t, e); 6118 if (void 0 === s || Number.isNaN(s)) return; 6119 t.slideTo(s); 6120 } 6121 }, 6122 p = () => { 6123 if (!l || !t.params.hashNavigation.enabled) return; 6124 const e = 6125 t.virtual && t.params.virtual.enabled 6126 ? t.slidesEl.querySelector( 6127 `[data-swiper-slide-index="${t.activeIndex}"]` 6128 ) 6129 : t.slides[t.activeIndex], 6130 s = e 6131 ? e.getAttribute("data-hash") || e.getAttribute("data-history") 6132 : ""; 6133 t.params.hashNavigation.replaceState && 6134 d.history && 6135 d.history.replaceState 6136 ? (d.history.replaceState(null, null, `#${s}` || ""), i("hashSet")) 6137 : ((o.location.hash = s || ""), i("hashSet")); 6138 }; 6139 n("init", () => { 6140 t.params.hashNavigation.enabled && 6141 (() => { 6142 if ( 6143 !t.params.hashNavigation.enabled || 6144 (t.params.history && t.params.history.enabled) 6145 ) 6146 return; 6147 l = !0; 6148 const e = o.location.hash.replace("#", ""); 6149 if (e) { 6150 const s = 0, 6151 a = t.params.hashNavigation.getSlideIndex(t, e); 6152 t.slideTo(a || 0, s, t.params.runCallbacksOnInit, !0); 6153 } 6154 t.params.hashNavigation.watchState && 6155 d.addEventListener("hashchange", c); 6156 })(); 6157 }), 6158 n("destroy", () => { 6159 t.params.hashNavigation.enabled && 6160 t.params.hashNavigation.watchState && 6161 d.removeEventListener("hashchange", c); 6162 }), 6163 n("transitionEnd _freeModeNoMomentumRelease", () => { 6164 l && p(); 6165 }), 6166 n("slideChange", () => { 6167 l && t.params.cssMode && p(); 6168 }); 6169 }, 6170 function (e) { 6171 let t, 6172 s, 6173 { swiper: i, extendParams: r, on: n, emit: l, params: o } = e; 6174 (i.autoplay = { running: !1, paused: !1, timeLeft: 0 }), 6175 r({ 6176 autoplay: { 6177 enabled: !1, 6178 delay: 3e3, 6179 waitForTransition: !0, 6180 disableOnInteraction: !1, 6181 stopOnLastSlide: !1, 6182 reverseDirection: !1, 6183 pauseOnMouseEnter: !1, 6184 }, 6185 }); 6186 let d, 6187 c, 6188 p, 6189 u, 6190 m, 6191 h, 6192 f, 6193 g, 6194 v = o && o.autoplay ? o.autoplay.delay : 3e3, 6195 w = o && o.autoplay ? o.autoplay.delay : 3e3, 6196 b = new Date().getTime(); 6197 function y(e) { 6198 i && 6199 !i.destroyed && 6200 i.wrapperEl && 6201 e.target === i.wrapperEl && 6202 (i.wrapperEl.removeEventListener("transitionend", y), g || C()); 6203 } 6204 const E = () => { 6205 if (i.destroyed || !i.autoplay.running) return; 6206 i.autoplay.paused ? (c = !0) : c && ((w = d), (c = !1));
6207 const e = i.autoplay.paused ? d : b + w - new Date().getTime(); 6208 (i.autoplay.timeLeft = e), 6209 l("autoplayTimeLeft", e, e / v), 6210 (s = requestAnimationFrame(() => { 6211 E(); 6212 })); 6213 }, 6214 x = (e) => { 6215 if (i.destroyed || !i.autoplay.running) return; 6216 cancelAnimationFrame(s), E(); 6217 let a = void 0 === e ? i.params.autoplay.delay : e; 6218 (v = i.params.autoplay.delay), (w = i.params.autoplay.delay); 6219 const r = (() => { 6220 let e; 6221 if ( 6222 ((e = 6223 i.virtual && i.params.virtual.enabled 6224 ? i.slides.filter((e) => 6225 e.classList.contains("swiper-slide-active") 6226 )[0] 6227 : i.slides[i.activeIndex]), 6228 !e) 6229 ) 6230 return; 6231 return parseInt(e.getAttribute("data-swiper-autoplay"), 10); 6232 })(); 6233 !Number.isNaN(r) && 6234 r > 0 && 6235 void 0 === e && 6236 ((a = r), (v = r), (w = r)), 6237 (d = a); 6238 const n = i.params.speed, 6239 o = () => { 6240 i && 6241 !i.destroyed && 6242 (i.params.autoplay.reverseDirection 6243 ? !i.isBeginning || i.params.loop || i.params.rewind 6244 ? (i.slidePrev(n, !0, !0), l("autoplay")) 6245 : i.params.autoplay.stopOnLastSlide || 6246 (i.slideTo(i.slides.length - 1, n, !0, !0), l("autoplay")) 6247 : !i.isEnd || i.params.loop || i.params.rewind 6248 ? (i.slideNext(n, !0, !0), l("autoplay")) 6249 : i.params.autoplay.stopOnLastSlide || 6250 (i.slideTo(0, n, !0, !0), l("autoplay")), 6251 i.params.cssMode && 6252 ((b = new Date().getTime()), 6253 requestAnimationFrame(() => { 6254 x(); 6255 }))); 6256 }; 6257 return ( 6258 a > 0 6259 ? (clearTimeout(t), 6260 (t = setTimeout(() => { 6261 o(); 6262 }, a))) 6263 : requestAnimationFrame(() => { 6264 o(); 6265 }), 6266 a 6267 ); 6268 }, 6269 S = () => { 6270 (b = new Date().getTime()), 6271 (i.autoplay.running = !0), 6272 x(), 6273 l("autoplayStart"); 6274 }, 6275 T = () => { 6276 (i.autoplay.running = !1), 6277 clearTimeout(t), 6278 cancelAnimationFrame(s), 6279 l("autoplayStop"); 6280 }, 6281 M = (e, s) => { 6282 if (i.destroyed || !i.autoplay.running) return; 6283 clearTimeout(t), e || (f = !0); 6284 const a = () => { 6285 l("autoplayPause"), 6286 i.params.autoplay.waitForTransition 6287 ? i.wrapperEl.addEventListener("transitionend", y) 6288 : C(); 6289 }; 6290 if (((i.autoplay.paused = !0), s)) 6291 return h && (d = i.params.autoplay.delay), (h = !1), void a(); 6292 const r = d || i.params.autoplay.delay; 6293 (d = r - (new Date().getTime() - b)), 6294 (i.isEnd && d < 0 && !i.params.loop) || (d < 0 && (d = 0), a()); 6295 }, 6296 C = () => { 6297 (i.isEnd && d < 0 && !i.params.loop) || 6298 i.destroyed || 6299 !i.autoplay.running || 6300 ((b = new Date().getTime()), 6301 f ? ((f = !1), x(d)) : x(), 6302 (i.autoplay.paused = !1), 6303 l("autoplayResume")); 6304 }, 6305 P = () => { 6306 if (i.destroyed || !i.autoplay.running) return; 6307 const e = a(); 6308 "hidden" === e.visibilityState && ((f = !0), M(!0)), 6309 "visible" === e.visibilityState && C(); 6310 }, 6311 L = (e) => { 6312 "mouse" === e.pointerType && 6313 ((f = !0), (g = !0), i.animating || i.autoplay.paused || M(!0)); 6314 }, 6315 I = (e) => { 6316 "mouse" === e.pointerType && ((g = !1), i.autoplay.paused && C()); 6317 }; 6318 n("init", () => { 6319 i.params.autoplay.enabled && 6320 (i.params.autoplay.pauseOnMouseEnter && 6321 (i.el.addEventListener("pointerenter", L), 6322 i.el.addEventListener("pointerleave", I)), 6323 a().addEventListener("visibilitychange", P), 6324 S()); 6325 }), 6326 n("destroy", () => { 6327 i.el.removeEventListener("pointerenter", L), 6328 i.el.removeEventListener("pointerleave", I), 6329 a().removeEventListener("visibilitychange", P), 6330 i.autoplay.running && T(); 6331 }), 6332 n("_freeModeStaticRelease", () => { 6333 (u || f) && C(); 6334 }), 6335 n("_freeModeNoMomentumRelease", () => {
6336 i.params.autoplay.disableOnInteraction ? T() : M(!0, !0); 6337 }), 6338 n("beforeTransitionStart", (e, t, s) => { 6339 !i.destroyed && 6340 i.autoplay.running && 6341 (s || !i.params.autoplay.disableOnInteraction ? M(!0, !0) : T()); 6342 }), 6343 n("sliderFirstMove", () => { 6344 !i.destroyed && 6345 i.autoplay.running && 6346 (i.params.autoplay.disableOnInteraction 6347 ? T() 6348 : ((p = !0), 6349 (u = !1), 6350 (f = !1), 6351 (m = setTimeout(() => { 6352 (f = !0), (u = !0), M(!0); 6353 }, 200)))); 6354 }), 6355 n("touchEnd", () => { 6356 if (!i.destroyed && i.autoplay.running && p) { 6357 if ( 6358 (clearTimeout(m), 6359 clearTimeout(t), 6360 i.params.autoplay.disableOnInteraction) 6361 ) 6362 return (u = !1), void (p = !1); 6363 u && i.params.cssMode && C(), (u = !1), (p = !1); 6364 } 6365 }), 6366 n("slideChange", () => { 6367 !i.destroyed && i.autoplay.running && (h = !0); 6368 }), 6369 Object.assign(i.autoplay, { start: S, stop: T, pause: M, resume: C }); 6370 }, 6371 function (e) { 6372 let { swiper: t, extendParams: s, on: i } = e; 6373 s({ 6374 thumbs: { 6375 swiper: null, 6376 multipleActiveThumbs: !0, 6377 autoScrollOffset: 0, 6378 slideThumbActiveClass: "swiper-slide-thumb-active", 6379 thumbsContainerClass: "swiper-thumbs", 6380 }, 6381 }); 6382 let r = !1, 6383 n = !1; 6384 function l() { 6385 const e = t.thumbs.swiper; 6386 if (!e || e.destroyed) return; 6387 const s = e.clickedIndex, 6388 a = e.clickedSlide; 6389 if (a && a.classList.contains(t.params.thumbs.slideThumbActiveClass)) 6390 return; 6391 if (null == s) return; 6392 let i; 6393 (i = e.params.loop 6394 ? parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10) 6395 : s), 6396 t.params.loop ? t.slideToLoop(i) : t.slideTo(i); 6397 } 6398 function o() { 6399 const { thumbs: e } = t.params; 6400 if (r) return !1; 6401 r = !0; 6402 const s = t.constructor; 6403 if (e.swiper instanceof s) 6404 (t.thumbs.swiper = e.swiper), 6405 Object.assign(t.thumbs.swiper.originalParams, { 6406 watchSlidesProgress: !0, 6407 slideToClickedSlide: !1, 6408 }), 6409 Object.assign(t.thumbs.swiper.params, { 6410 watchSlidesProgress: !0, 6411 slideToClickedSlide: !1, 6412 }), 6413 t.thumbs.swiper.update(); 6414 else if (c(e.swiper)) { 6415 const a = Object.assign({}, e.swiper); 6416 Object.assign(a, { 6417 watchSlidesProgress: !0, 6418 slideToClickedSlide: !1, 6419 }), 6420 (t.thumbs.swiper = new s(a)), 6421 (n = !0); 6422 } 6423 return ( 6424 t.thumbs.swiper.el.classList.add( 6425 t.params.thumbs.thumbsContainerClass 6426 ), 6427 t.thumbs.swiper.on("tap", l), 6428 !0 6429 ); 6430 } 6431 function d(e) { 6432 const s = t.thumbs.swiper; 6433 if (!s || s.destroyed) return; 6434 const a = 6435 "auto" === s.params.slidesPerView 6436 ? s.slidesPerViewDynamic() 6437 : s.params.slidesPerView; 6438 let i = 1; 6439 const r = t.params.thumbs.slideThumbActiveClass; 6440 if ( 6441 (t.params.slidesPerView > 1 && 6442 !t.params.centeredSlides && 6443 (i = t.params.slidesPerView), 6444 t.params.thumbs.multipleActiveThumbs || (i = 1), 6445 (i = Math.floor(i)), 6446 s.slides.forEach((e) => e.classList.remove(r)), 6447 s.params.loop || (s.params.virtual && s.params.virtual.enabled)) 6448 ) 6449 for (let e = 0; e < i; e += 1) 6450 f( 6451 s.slidesEl, 6452 `[data-swiper-slide-index="${t.realIndex + e}"]` 6453 ).forEach((e) => { 6454 e.classList.add(r); 6455 }); 6456 else 6457 for (let e = 0; e < i; e += 1) 6458 s.slides[t.realIndex + e] && 6459 s.slides[t.realIndex + e].classList.add(r); 6460 const n = t.params.thumbs.autoScrollOffset, 6461 l = n && !s.params.loop; 6462 if (t.realIndex !== s.realIndex || l) { 6463 const i = s.activeIndex; 6464 let r, o; 6465 if (s.params.loop) { 6466 const e = s.slides.filter( 6467 (e) => 6468 e.getAttribute("data-swiper-slide-index") === `${t.realIndex}` 6469 )[0]; 6470 (r = s.slides.indexOf(e)), 6471 (o = t.activeIndex > t.previousIndex ? "next" : "prev"); 6472 } else (r = t.realIndex), (o = r > t.previousIndex ? "next" : "prev"); 6473 l && (r += "next" === o ? n : -1 * n), 6474 s.visibleSlidesIndexes && 6475 s.visibleSlidesIndexes.indexOf(r) < 0 && 6476 (s.params.centeredSlides 6477 ? (r = 6478 r > i 6479 ? r - Math.floor(a / 2) + 1 6480 : r + Math.floor(a / 2) - 1) 6481 : r > i && s.params.slidesPerGroup, 6482 s.slideTo(r, e ? 0 : void 0)); 6483 } 6484 } 6485 (t.thumbs = { swiper: null }), 6486 i("beforeInit", () => { 6487 const { thumbs: e } = t.params; 6488 if (e && e.swiper) 6489 if ( 6490 "string" == typeof e.swiper || 6491 e.swiper instanceof HTMLElement 6492 ) { 6493 const s = a(), 6494 i = () => { 6495 const a = 6496 "string" == typeof e.swiper 6497 ? s.querySelector(e.swiper) 6498 : e.swiper; 6499 if (a && a.swiper) (e.swiper = a.swiper), o(), d(!0); 6500 else if (a) { 6501 const s = (i) => { 6502 (e.swiper = i.detail[0]), 6503 a.removeEventListener("init", s), 6504 o(), 6505 d(!0),
6506 e.swiper.update(), 6507 t.update(); 6508 }; 6509 a.addEventListener("init", s); 6510 } 6511 return a; 6512 }, 6513 r = () => { 6514 if (t.destroyed) return; 6515 i() || requestAnimationFrame(r); 6516 }; 6517 requestAnimationFrame(r); 6518 } else o(), d(!0); 6519 }), 6520 i("slideChange update resize observerUpdate", () => { 6521 d(); 6522 }), 6523 i("setTransition", (e, s) => { 6524 const a = t.thumbs.swiper; 6525 a && !a.destroyed && a.setTransition(s); 6526 }), 6527 i("beforeDestroy", () => { 6528 const e = t.thumbs.swiper; 6529 e && !e.destroyed && n && e.destroy(); 6530 }), 6531 Object.assign(t.thumbs, { init: o, update: d }); 6532 }, 6533 function (e) { 6534 let { swiper: t, extendParams: s, emit: a, once: i } = e; 6535 s({ 6536 freeMode: { 6537 enabled: !1, 6538 momentum: !0, 6539 momentumRatio: 1, 6540 momentumBounce: !0, 6541 momentumBounceRatio: 1, 6542 momentumVelocityRatio: 1, 6543 sticky: !1, 6544 minimumVelocity: 0.02, 6545 }, 6546 }), 6547 Object.assign(t, { 6548 freeMode: { 6549 onTouchStart: function () { 6550 if (t.params.cssMode) return; 6551 const e = t.getTranslate(); 6552 t.setTranslate(e), 6553 t.setTransition(0), 6554 (t.touchEventsData.velocities.length = 0), 6555 t.freeMode.onTouchEnd({ 6556 currentPos: t.rtl ? t.translate : -t.translate, 6557 }); 6558 }, 6559 onTouchMove: function () { 6560 if (t.params.cssMode) return; 6561 const { touchEventsData: e, touches: s } = t; 6562 0 === e.velocities.length && 6563 e.velocities.push({ 6564 position: s[t.isHorizontal() ? "startX" : "startY"], 6565 time: e.touchStartTime, 6566 }), 6567 e.velocities.push({ 6568 position: s[t.isHorizontal() ? "currentX" : "currentY"], 6569 time: o(), 6570 }); 6571 }, 6572 onTouchEnd: function (e) { 6573 let { currentPos: s } = e; 6574 if (t.params.cssMode) return; 6575 const { 6576 params: r, 6577 wrapperEl: n, 6578 rtlTranslate: l, 6579 snapGrid: d, 6580 touchEventsData: c, 6581 } = t, 6582 p = o() - c.touchStartTime; 6583 if (s < -t.minTranslate()) t.slideTo(t.activeIndex); 6584 else if (s > -t.maxTranslate()) 6585 t.slides.length < d.length 6586 ? t.slideTo(d.length - 1) 6587 : t.slideTo(t.slides.length - 1); 6588 else { 6589 if (r.freeMode.momentum) { 6590 if (c.velocities.length > 1) { 6591 const e = c.velocities.pop(), 6592 s = c.velocities.pop(), 6593 a = e.position - s.position, 6594 i = e.time - s.time; 6595 (t.velocity = a / i), 6596 (t.velocity /= 2), 6597 Math.abs(t.velocity) < r.freeMode.minimumVelocity && 6598 (t.velocity = 0), 6599 (i > 150 || o() - e.time > 300) && (t.velocity = 0); 6600 } else t.velocity = 0; 6601 (t.velocity *= r.freeMode.momentumVelocityRatio), 6602 (c.velocities.length = 0); 6603 let e = 1e3 * r.freeMode.momentumRatio; 6604 const s = t.velocity * e; 6605 let p = t.translate + s; 6606 l && (p = -p); 6607 let u, 6608 m = !1; 6609 const h = 6610 20 * Math.abs(t.velocity) * r.freeMode.momentumBounceRatio; 6611 let f; 6612 if (p < t.maxTranslate()) 6613 r.freeMode.momentumBounce 6614 ? (p + t.maxTranslate() < -h && 6615 (p = t.maxTranslate() - h), 6616 (u = t.maxTranslate()), 6617 (m = !0), 6618 (c.allowMomentumBounce = !0)) 6619 : (p = t.maxTranslate()), 6620 r.loop && r.centeredSlides && (f = !0); 6621 else if (p > t.minTranslate()) 6622 r.freeMode.momentumBounce 6623 ? (p - t.minTranslate() > h && (p = t.minTranslate() + h), 6624 (u = t.minTranslate()), 6625 (m = !0), 6626 (c.allowMomentumBounce = !0)) 6627 : (p = t.minTranslate()), 6628 r.loop && r.centeredSlides && (f = !0); 6629 else if (r.freeMode.sticky) { 6630 let e; 6631 for (let t = 0; t < d.length; t += 1) 6632 if (d[t] > -p) { 6633 e = t; 6634 break; 6635 } 6636 (p = 6637 Math.abs(d[e] - p) < Math.abs(d[e - 1] - p) || 6638 "next" === t.swipeDirection 6639 ? d[e] 6640 : d[e - 1]), 6641 (p = -p); 6642 } 6643 if ( 6644 (f && 6645 i("transitionEnd", () => { 6646 t.loopFix(); 6647 }), 6648 0 !== t.velocity) 6649 ) { 6650 if ( 6651 ((e = l 6652 ? Math.abs((-p - t.translate) / t.velocity) 6653 : Math.abs((p - t.translate) / t.velocity)), 6654 r.freeMode.sticky) 6655 ) { 6656 const s = Math.abs((l ? -p : p) - t.translate), 6657 a = t.slidesSizesGrid[t.activeIndex]; 6658 e = 6659 s < a 6660 ? r.speed 6661 : s < 2 * a 6662 ? 1.5 * r.speed 6663 : 2.5 * r.speed; 6664 } 6665 } else if (r.freeMode.sticky) return void t.slideToClosest(); 6666 r.freeMode.momentumBounce && m 6667 ? (t.updateProgress(u), 6668 t.setTransition(e), 6669 t.setTranslate(p), 6670 t.transitionStart(!0, t.swipeDirection), 6671 (t.animating = !0), 6672 x(n, () => { 6673 t && 6674 !t.destroyed && 6675 c.allowMomentumBounce && 6676 (a("momentumBounce"), 6677 t.setTransition(r.speed), 6678 setTimeout(() => { 6679 t.setTranslate(u), 6680 x(n, () => { 6681 t && !t.destroyed && t.transitionEnd(); 6682 }); 6683 }, 0)); 6684 })) 6685 : t.velocity 6686 ? (a("_freeModeNoMomentumRelease"), 6687 t.updateProgress(p), 6688 t.setTransition(e), 6689 t.setTranslate(p), 6690 t.transitionStart(!0, t.swipeDirection), 6691 t.animating || 6692 ((t.animating = !0), 6693 x(n, () => { 6694 t && !t.destroyed && t.transitionEnd(); 6695 }))) 6696 : t.updateProgress(p), 6697 t.updateActiveIndex(), 6698 t.updateSlidesClasses(); 6699 } else { 6700 if (r.freeMode.sticky) return void t.slideToClosest(); 6701 r.freeMode && a("_freeModeNoMomentumRelease"); 6702 } 6703 (!r.freeMode.momentum || p >= r.longSwipesMs) && 6704 (a("_freeModeStaticRelease"), 6705 t.updateProgress(), 6706 t.updateActiveIndex(), 6707 t.updateSlidesClasses()); 6708 } 6709 }, 6710 }, 6711 }); 6712 }, 6713 function (e) { 6714 let t, 6715 s, 6716 a, 6717 i, 6718 { swiper: r, extendParams: n, on: l } = e; 6719 n({ grid: { rows: 1, fill: "column" } }); 6720 const o = () => { 6721 let e = r.params.spaceBetween; 6722 return ( 6723 "string" == typeof e && e.indexOf("%") >= 0 6724 ? (e = (parseFloat(e.replace("%", "")) / 100) * r.size) 6725 : "string" == typeof e && (e = parseFloat(e)), 6726 e 6727 ); 6728 }; 6729 l("init", () => { 6730 i = r.params.grid && r.params.grid.rows > 1; 6731 }), 6732 l("update", () => { 6733 const { params: e, el: t } = r, 6734 s = e.grid && e.grid.rows > 1; 6735 i && !s 6736 ? (t.classList.remove( 6737 `${e.containerModifierClass}grid`, 6738 `${e.containerModifierClass}grid-column` 6739 ), 6740 (a = 1), 6741 r.emitContainerClasses()) 6742 : !i && 6743 s && 6744 (t.classList.add(`${e.containerModifierClass}grid`), 6745 "column" === e.grid.fill && 6746 t.classList.add(`${e.containerModifierClass}grid-column`), 6747 r.emitContainerClasses()), 6748 (i = s); 6749 }), 6750 (r.grid = { 6751 initSlides: (e) => { 6752 const { slidesPerView: i } = r.params, 6753 { rows: n, fill: l } = r.params.grid, 6754 o = 6755 r.virtual && r.params.virtual.enabled 6756 ? r.virtual.slides.length 6757 : e.length; 6758 (a = Math.floor(o / n)), 6759 (t = Math.floor(o / n) === o / n ? o : Math.ceil(o / n) *
6759n), 6760 "auto" !== i && "row" === l && (t = Math.max(t, i * n)), 6761 (s = t / n); 6762 }, 6763 unsetSlides: () => { 6764 r.slides && 6765 r.slides.forEach((e) => { 6766 e.swiperSlideGridSet && 6767 ((e.style.height = ""), 6768 (e.style[r.getDirectionLabel("margin-top")] = "")); 6769 }); 6770 }, 6771 updateSlide: (e, i, n) => { 6772 const { slidesPerGroup: l } = r.params, 6773 d = o(), 6774 { rows: c, fill: p } = r.params.grid, 6775 u = 6776 r.virtual && r.params.virtual.enabled 6777 ? r.virtual.slides.length 6778 : n.length; 6779 let m, h, f; 6780 if ("row" === p && l > 1) { 6781 const s = Math.floor(e / (l * c)), 6782 a = e - c * l * s, 6783 r = 0 === s ? l : Math.min(Math.ceil((u - s * c * l) / c), l); 6784 (f = Math.floor(a / r)), 6785 (h = a - f * r + s * l), 6786 (m = h + (f * t) / c), 6787 (i.style.order = m); 6788 } else 6789 "column" === p 6790 ? ((h = Math.floor(e / c)), 6791 (f = e - h * c), 6792 (h > a || (h === a && f === c - 1)) && 6793 ((f += 1), f >= c && ((f = 0), (h += 1)))) 6794 : ((f = Math.floor(e / s)), (h = e - f * s)); 6795 (i.row = f), 6796 (i.column = h), 6797 (i.style.height = `calc((100% - ${(c - 1) * d}px) / ${c})`), 6798 (i.style[r.getDirectionLabel("margin-top")] = 6799 0 !== f ? d && `${d}px` : ""), 6800 (i.swiperSlideGridSet = !0); 6801 }, 6802 updateWrapperSize: (e, s) => { 6803 const { centeredSlides: a, roundLengths: i } = r.params, 6804 n = o(), 6805 { rows: l } = r.params.grid; 6806 if ( 6807 ((r.virtualSize = (e + n) * t), 6808 (r.virtualSize = Math.ceil(r.virtualSize / l) - n), 6809 r.params.cssMode || 6810 (r.wrapperEl.style[r.getDirectionLabel("width")] = `${ 6811 r.virtualSize + n 6812 }px`), 6813 a) 6814 ) { 6815 const e = []; 6816 for (let t = 0; t < s.length; t += 1) { 6817 let a = s[t]; 6818 i && (a = Math.floor(a)), 6819 s[t] < r.virtualSize + s[0] && e.push(a); 6820 } 6821 s.splice(0, s.length), s.push(...e); 6822 } 6823 }, 6824 }); 6825 }, 6826 function (e) { 6827 let { swiper: t } = e; 6828 Object.assign(t, { 6829 appendSlide: ie.bind(t), 6830 prependSlide: re.bind(t), 6831 addSlide: ne.bind(t), 6832 removeSlide: le.bind(t), 6833 removeAllSlides: oe.bind(t), 6834 }); 6835 }, 6836 function (e) { 6837 let { swiper: t, extendParams: s, on: a } = e; 6838 s({ fadeEffect: { crossFade: !1 } }), 6839 de({ 6840 effect: "fade", 6841 swiper: t, 6842 on: a, 6843 setTranslate: () => { 6844 const { slides: e } = t; 6845 t.params.fadeEffect; 6846 for (let s = 0; s < e.length; s += 1) { 6847 const e = t.slides[s]; 6848 let a = -e.swiperSlideOffset; 6849 t.params.virtualTranslate || (a -= t.translate); 6850 let i = 0; 6851 t.isHorizontal() || ((i = a), (a = 0)); 6852 const r = t.params.fadeEffect.crossFade 6853 ? Math.max(1 - Math.abs(e.progress), 0) 6854 : 1 + Math.min(Math.max(e.progress, -1), 0), 6855 n = ce(0, e); 6856 (n.style.opacity = r), 6857 (n.style.transform = `translate3d(${a}px, ${i}px, 0px)`); 6858 } 6859 }, 6860 setTransition: (e) => { 6861 const s = t.slides.map((e) => h(e)); 6862 s.forEach((t) => { 6863 t.style.transitionDuration = `${e}ms`; 6864 }), 6865 pe({ 6866 swiper: t, 6867 duration: e, 6868 transformElements: s, 6869 allSlides: !0, 6870 }); 6871 }, 6872 overwriteParams: () => ({ 6873 slidesPerView: 1, 6874 slidesPerGroup: 1, 6875 watchSlidesProgress: !0, 6876 spaceBetween: 0, 6877 virtualTranslate: !t.params.cssMode, 6878 }), 6879 }); 6880 }, 6881 function (e) { 6882 let { swiper: t, extendParams: s, on: a } = e; 6883 s({ 6884 cubeEffect: { 6885 slideShadows: !0, 6886 shadow: !0, 6887 shadowOffset: 20, 6888 shadowScale: 0.94, 6889 }, 6890 }); 6891 const i = (e, t, s) => { 6892 let a = s 6893 ? e.querySelector(".swiper-slide-shadow-left") 6894 : e.querySelector(".swiper-slide-shadow-top"), 6895 i = s 6896 ? e.querySelector(".swiper-slide-shadow-right") 6897 : e.querySelector(".swiper-slide-shadow-bottom"); 6898 a || 6899 ((a = v( 6900 "div", 6901 ( 6902 "swiper-slide-shadow-cube swiper-slide-shadow-" + 6903 (s ? "left" : "top") 6904 ).split(" ") 6905 )), 6906 e.append(a)), 6907 i || 6908 ((i = v( 6909 "div", 6910 ( 6911 "swiper-slide-shadow-cube swiper-slide-shadow-" + 6912 (s ? "right" : "bottom") 6913 ).split(" ") 6914 )), 6915 e.append(i)), 6916 a && (a.style.opacity = Math.max(-t, 0)), 6917 i && (i.style.opacity = Math.max(t, 0)); 6918 }; 6919 de({ 6920 effect: "cube", 6921 swiper: t, 6922 on: a, 6923 setTranslate: () => { 6924 const { 6925 el: e, 6926 wrapperEl: s, 6927 slides: a, 6928 width: r, 6929 height: n, 6930 rtlTranslate: l, 6931 size: o, 6932 browser: d, 6933 } = t, 6934 c = t.params.cubeEffect, 6935 p = t.isHorizontal(), 6936 u = t.virtual && t.params.virtual.enabled; 6937 let m, 6938 h = 0; 6939 c.shadow && 6940 (p 6941 ? ((m = t.wrapperEl.querySelector(".swiper-cube-shadow")), 6942 m || 6943 ((m = v("div", "swiper-cube-shadow")), t.wrapperEl.append(m)), 6944 (m.style.height = `${r}px`)) 6945 : ((m = e.querySelector(".swiper-cube-shadow")), 6946 m || ((m = v("div", "swiper-cube-shadow")), e.append(m)))); 6947 for (let e = 0; e < a.length; e += 1) { 6948 const s = a[e]; 6949 let r = e; 6950 u && (r = parseInt(s.getAttribute("data-swiper-slide-index"), 10)); 6951 let n = 90 * r, 6952 d = Math.floor(n / 360); 6953 l && ((n = -n), (d = Math.floor(-n / 360))); 6954 const m = Math.max(Math.min(s.progress, 1), -1); 6955 let f = 0, 6956 g = 0, 6957 v = 0; 6958 r % 4 == 0 6959 ? ((f = 4 * -d * o), (v = 0)) 6960 : (r - 1) % 4 == 0 6961 ? ((f = 0), (v = 4 * -d * o)) 6962 : (r - 2) % 4 == 0 6963 ? ((f = o + 4 * d * o), (v = o)) 6964 : (r - 3) % 4 == 0 && ((f = -o), (v = 3 * o + 4 * o * d)), 6965 l && (f = -f), 6966 p || ((g = f), (f = 0)); 6967 const w = `rotateX(${p ? 0 : -n}deg) rotateY(${ 6968 p ? n : 0 6969 }deg) translate3d(${f}px, ${g}px, ${v}px)`; 6970 m <= 1 && 6971 m > -1 && 6972 ((h = 90 * r + 90 * m), 6973 l && (h = 90 * -r - 90 * m), 6974 t.browser && 6975 t.browser.need3dFix && 6976 (Math.abs(h) / 90) % 2 == 1 && 6977 (h += 0.001)), 6978 (s.style.transform = w), 6979 c.slideShadows && i(s, m, p); 6980 } 6981 if ( 6982 ((s.style.transformOrigin = `50% 50% -${o / 2}px`), 6983 (s.style["-webkit-transform-origin"] = `50% 50% -${o / 2}px`), 6984 c.shadow) 6985 ) 6986 if (p) 6987 m.style.transform = `translate3d(0px, ${ 6988 r / 2 + c.shadowOffset 6989 }px, ${-r / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${ 6990 c.shadowScale 6991 })`; 6992 else { 6993 const e = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90), 6994 t = 6995 1.5 - 6996 (Math.sin((2 * e * Math.PI) / 360) / 2 + 6997 Math.cos((2 * e * Math.PI) / 360) / 2), 6998 s = c.shadowScale, 6999 a = c.shadowScale / t, 7000 i = c.shadowOffset; 7001 m.style.transform = `scale3d(${s}, 1, ${a}) translate3d(0px, ${ 7002 n / 2 + i 7003 }px, ${-n / 2 / a}px) rotateX(-89.99deg)`; 7004 } 7005 const f = 7006 (d.isSafari || d.isWebView) && d.needPerspectiveFix ? -o / 2 : 0; 7007 (s.style.transform = `translate3d(0px,0,${f}px) rotateX(${ 7008 t.isHorizontal() ? 0 : h 7009 }deg) rotateY(${t.isHorizontal() ? -h : 0}deg)`), 7010 s.style.setProperty("--swiper-cube-translate-z", `${f}px`); 7011 }, 7012 setTransition: (e) => { 7013 const { el: s, slides: a } = t; 7014 if (
7015 (a.forEach((t) => { 7016 (t.style.transitionDuration = `${e}ms`), 7017 t 7018 .querySelectorAll( 7019 ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" 7020 ) 7021 .forEach((t) => { 7022 t.style.transitionDuration = `${e}ms`; 7023 }); 7024 }), 7025 t.params.cubeEffect.shadow && !t.isHorizontal()) 7026 ) { 7027 const t = s.querySelector(".swiper-cube-shadow"); 7028 t && (t.style.transitionDuration = `${e}ms`); 7029 } 7030 }, 7031 recreateShadows: () => { 7032 const e = t.isHorizontal(); 7033 t.slides.forEach((t) => { 7034 const s = Math.max(Math.min(t.progress, 1), -1); 7035 i(t, s, e); 7036 }); 7037 }, 7038 getEffectParams: () => t.params.cubeEffect, 7039 perspective: () => !0, 7040 overwriteParams: () => ({ 7041 slidesPerView: 1, 7042 slidesPerGroup: 1, 7043 watchSlidesProgress: !0, 7044 resistanceRatio: 0, 7045 spaceBetween: 0, 7046 centeredSlides: !1, 7047 virtualTranslate: !0, 7048 }), 7049 }); 7050 }, 7051 function (e) { 7052 let { swiper: t, extendParams: s, on: a } = e; 7053 s({ flipEffect: { slideShadows: !0, limitRotation: !0 } }); 7054 const i = (e, s) => { 7055 let a = t.isHorizontal() 7056 ? e.querySelector(".swiper-slide-shadow-left") 7057 : e.querySelector(".swiper-slide-shadow-top"), 7058 i = t.isHorizontal() 7059 ? e.querySelector(".swiper-slide-shadow-right") 7060 : e.querySelector(".swiper-slide-shadow-bottom"); 7061 a || (a = ue("flip", e, t.isHorizontal() ? "left" : "top")), 7062 i || (i = ue("flip", e, t.isHorizontal() ? "right" : "bottom")), 7063 a && (a.style.opacity = Math.max(-s, 0)), 7064 i && (i.style.opacity = Math.max(s, 0)); 7065 }; 7066 de({ 7067 effect: "flip", 7068 swiper: t, 7069 on: a, 7070 setTranslate: () => { 7071 const { slides: e, rtlTranslate: s } = t, 7072 a = t.params.flipEffect; 7073 for (let r = 0; r < e.length; r += 1) { 7074 const n = e[r]; 7075 let l = n.progress; 7076 t.params.flipEffect.limitRotation && 7077 (l = Math.max(Math.min(n.progress, 1), -1)); 7078 const o = n.swiperSlideOffset; 7079 let d = -180 * l, 7080 c = 0, 7081 p = t.params.cssMode ? -o - t.translate : -o, 7082 u = 0; 7083 t.isHorizontal() 7084 ? s && (d = -d) 7085 : ((u = p), (p = 0), (c = -d), (d = 0)), 7086 t.browser && 7087 t.browser.need3dFix && 7088 ((Math.abs(d) / 90) % 2 == 1 && (d += 0.001), 7089 (Math.abs(c) / 90) % 2 == 1 && (c += 0.001)), 7090 (n.style.zIndex = -Math.abs(Math.round(l)) + e.length), 7091 a.slideShadows && i(n, l); 7092 const m = `translate3d(${p}px, ${u}px, 0px) rotateX(${c}deg) rotateY(${d}deg)`; 7093 ce(0, n).style.transform = m; 7094 } 7095 }, 7096 setTransition: (e) => { 7097 const s = t.slides.map((e) => h(e)); 7098 s.forEach((t) => { 7099 (t.style.transitionDuration = `${e}ms`), 7100 t 7101 .querySelectorAll( 7102 ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" 7103 ) 7104 .forEach((t) => { 7105 t.style.transitionDuration = `${e}ms`; 7106 }); 7107 }), 7108 pe({ swiper: t, duration: e, transformElements: s }); 7109 }, 7110 recreateShadows: () => { 7111 t.params.flipEffect, 7112 t.slides.forEach((e) => { 7113 let s = e.progress; 7114 t.params.flipEffect.limitRotation && 7115 (s = Math.max(Math.min(e.progress, 1), -1)), 7116 i(e, s); 7117 }); 7118 }, 7119 getEffectParams: () => t.params.flipEffect, 7120 perspective: () => !0, 7121 overwriteParams: () => ({ 7122 slidesPerView: 1, 7123 slidesPerGroup: 1, 7124 watchSlidesProgress: !0, 7125 spaceBetween: 0, 7126 virtualTranslate: !t.params.cssMode, 7127 }), 7128 }); 7129 }, 7130 function (e) { 7131 let { swiper: t, extendParams: s, on: a } = e; 7132 s({ 7133 coverflowEffect: { 7134 rotate: 50, 7135 stretch: 0, 7136 depth: 100, 7137 scale: 1, 7138 modifier: 1, 7139 slideShadows: !0, 7140 }, 7141 }), 7142 de({ 7143 effect: "coverflow", 7144 swiper: t, 7145 on: a, 7146 setTranslate: () => { 7147 const { width: e, height: s, slides: a, slidesSizesGrid: i } = t, 7148 r = t.params.coverflowEffect, 7149 n = t.isHorizontal(), 7150 l = t.translate, 7151 o = n ? e / 2 - l : s / 2 - l, 7152 d = n ? r.rotate : -r.rotate, 7153 c = r.depth; 7154 for (let e = 0, s = a.length; e < s; e += 1) { 7155 const s = a[e], 7156 l = i[e], 7157 p = (o - s.swiperSlideOffset - l / 2) / l, 7158 u = 7159 "function" == typeof r.modifier 7160 ? r.modifier(p) 7161 : p * r.modifier; 7162 let m = n ? d * u : 0, 7163 h = n ? 0 : d * u, 7164 f = -c * Math.abs(u), 7165 g = r.stretch; 7166 "string" == typeof g && 7167 -1 !== g.indexOf("%") && 7168 (g = (parseFloat(r.stretch) / 100) * l); 7169 let v = n ? 0 : g * u, 7170 w = n ? g * u : 0, 7171 b = 1 - (1 - r.scale) * Math.abs(u); 7172 Math.abs(w) < 0.001 && (w = 0), 7173 Math.abs(v) < 0.001 && (v = 0), 7174 Math.abs(f) < 0.001 && (f = 0), 7175 Math.abs(m) < 0.001 && (m = 0), 7176 Math.abs(h) < 0.001 && (h = 0), 7177 Math.abs(b) < 0.001 && (b = 0), 7178 t.browser && 7179 t.browser.need3dFix && 7180 ((Math.abs(m) / 90) % 2 == 1 && (m += 0.001), 7181 (Math.abs(h) / 90) % 2 == 1 && (h += 0.001)); 7182 const y = `translate3d(${w}px,${v}px,${f}px) rotateX(${h}deg) rotateY(${m}deg) scale(${b})`; 7183 if ( 7184 ((ce(0, s).style.transform = y), 7185 (s.style.zIndex = 1 - Math.abs(Math.round(u))), 7186 r.slideShadows) 7187 ) { 7188 let e = n 7189 ? s.querySelector(".swiper-slide-shadow-left") 7190 : s.querySelector(".swiper-slide-shadow-top"), 7191 t = n 7192 ? s.querySelector(".swiper-slide-shadow-right") 7193 : s.querySelector(".swiper-slide-shadow-bottom"); 7194 e || (e = ue("coverflow", s, n ? "left" : "top")), 7195 t || (t = ue("coverflow", s, n ? "right" : "bottom")), 7196 e && (e.style.opacity = u > 0 ? u : 0), 7197 t && (t.style.opacity = -u > 0 ? -u : 0); 7198 } 7199 } 7200 }, 7201 setTransition: (e) => { 7202 t.slides 7203 .map((e) => h(e)) 7204 .forEach((t) => { 7205 (t.style.transitionDuration = `${e}ms`), 7206 t 7207 .querySelectorAll( 7208 ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" 7209 ) 7210 .forEach((t) => { 7211 t.style.transitionDuration = `${e}ms`; 7212 }); 7213 }); 7214 }, 7215 perspective: () => !0, 7216 overwriteParams: () => ({ watchSlidesProgress: !0 }), 7217 }); 7218 }, 7219 function (e) { 7220 let { swiper: t, extendParams: s, on: a } = e; 7221 s({ 7222 creativeEffect: { 7223 limitProgress: 1, 7224 shadowPerProgress: !1, 7225 progressMultiplier: 1, 7226 perspective: !0, 7227 prev: { 7228 translate: [0, 0, 0], 7229 rotate: [0, 0, 0], 7230 opacity: 1, 7231 scale: 1, 7232 }, 7233 next: { 7234 translate: [0, 0, 0], 7235 rotate: [0, 0, 0], 7236 opacity: 1, 7237 scale: 1, 7238 }, 7239 }, 7240 }); 7241 const i = (e) => ("string" == typeof e ? e : `${e}px`); 7242 de({ 7243 effect: "creative", 7244 swiper: t, 7245 on: a, 7246 setTranslate: () => { 7247 const { slides: e, wrapperEl: s, slidesSizesGrid: a } = t, 7248 r = t.params.creativeEffect, 7249 { progressMultiplier: n } = r, 7250 l = t.params.centeredSlides; 7251 if (l) { 7252 const e = a[0] / 2 - t.params.slidesOffsetBefore || 0; 7253 s.style.transform = `translateX(calc(50% - ${e}px))`; 7254 } 7255 for (let s = 0; s < e.length; s += 1) { 7256 const a = e[s], 7257 o = a.progress, 7258 d = Math.min( 7259 Math.max(a.progress, -r.limitProgress), 7260 r.limitProgress 7261 ); 7262 let c = d; 7263 l || 7264 (c = Math.min( 7265 Math.max(a.originalProgress, -r.limitProgress), 7266 r.limitProgress 7267 )); 7268 const p = a.swiperSlideOffset, 7269 u = [t.params.cssMode ? -p - t.translate : -p, 0, 0], 7270 m = [0, 0, 0]; 7271 let h = !1; 7272 t.isHorizontal() || ((u[1] = u[0]), (u[0] = 0)); 7273 let f = { 7274 translate: [0, 0, 0], 7275 rotate: [0, 0, 0], 7276 scale: 1, 7277 opacity: 1, 7278 }; 7279 d < 0 7280 ? ((f = r.next), (h = !0)) 7281 : d > 0 && ((f = r.prev), (h = !0)), 7282 u.forEach((e, t) => { 7283 u[t] = `calc(${e}px + (${i(f.translate[t])} * ${Math.abs( 7284 d * n 7285 )}))`; 7286 }), 7287 m.forEach((e, s) => { 7288 let a = f.rotate[s] * Math.abs(d * n); 7289 t.browser && 7290 t.browser.need3dFix && 7291 (Math.abs(a) / 90) % 2 == 1 && 7292 (a += 0.001), 7293 (m[s] = a); 7294 }), 7295 (a.style.zIndex = -Math.abs(Math.round(o)) + e.length); 7296 const g = u.join(", "), 7297 v = `rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`, 7298 w = 7299 c < 0 7300 ? `scale(${1 + (1 - f.scale) * c * n})` 7301 : `scale(${1 - (1 - f.scale) * c * n})`, 7302 b = 7303 c < 0 7304 ? 1 + (1 - f.opacity) * c * n 7305 : 1 - (1 - f.opacity) * c * n, 7306 y = `translate3d(${g}) ${v} ${w}`; 7307 if ((h && f.shadow) || !h) { 7308 let e = a.querySelector(".swiper-slide-shadow"); 7309 if ((!e && f.shadow && (e = ue("creative", a)), e)) { 7310 const t = r.shadowPerProgress ? d * (1 / r.limitProgress) : d; 7311 e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1); 7312 } 7313 } 7314 const E = ce(0, a); 7315 (E.style.transform = y), 7316 (E.style.opacity = b), 7317 f.origin && (E.style.transformOrigin = f.origin); 7318 } 7319 }, 7320 setTransition: (e) => { 7321 const s = t.slides.map((e) => h(e));
7322 s.forEach((t) => { 7323 (t.style.transitionDuration = `${e}ms`), 7324 t.querySelectorAll(".swiper-slide-shadow").forEach((t) => { 7325 t.style.transitionDuration = `${e}ms`; 7326 }); 7327 }), 7328 pe({ swiper: t, duration: e, transformElements: s, allSlides: !0 }); 7329 }, 7330 perspective: () => t.params.creativeEffect.perspective, 7331 overwriteParams: () => ({ 7332 watchSlidesProgress: !0, 7333 virtualTranslate: !t.params.cssMode, 7334 }), 7335 }); 7336 }, 7337 function (e) { 7338 let { swiper: t, extendParams: s, on: a } = e; 7339 s({ 7340 cardsEffect: { 7341 slideShadows: !0, 7342 rotate: !0, 7343 perSlideRotate: 2, 7344 perSlideOffset: 8, 7345 }, 7346 }), 7347 de({ 7348 effect: "cards", 7349 swiper: t, 7350 on: a, 7351 setTranslate: () => { 7352 const { slides: e, activeIndex: s, rtlTranslate: a } = t, 7353 i = t.params.cardsEffect, 7354 { startTranslate: r, isTouched: n } = t.touchEventsData, 7355 l = a ? -t.translate : t.translate; 7356 for (let o = 0; o < e.length; o += 1) { 7357 const d = e[o], 7358 c = d.progress, 7359 p = Math.min(Math.max(c, -4), 4); 7360 let u = d.swiperSlideOffset; 7361 t.params.centeredSlides && 7362 !t.params.cssMode && 7363 (t.wrapperEl.style.transform = `translateX(${t.minTranslate()}px)`), 7364 t.params.centeredSlides && 7365 t.params.cssMode && 7366 (u -= e[0].swiperSlideOffset); 7367 let m = t.params.cssMode ? -u - t.translate : -u, 7368 h = 0; 7369 const f = -100 * Math.abs(p); 7370 let g = 1, 7371 v = -i.perSlideRotate * p, 7372 w = i.perSlideOffset - 0.75 * Math.abs(p); 7373 const b = 7374 t.virtual && t.params.virtual.enabled 7375 ? t.virtual.from + o 7376 : o, 7377 y = 7378 (b === s || b === s - 1) && 7379 p > 0 && 7380 p < 1 && 7381 (n || t.params.cssMode) && 7382 l < r, 7383 E = 7384 (b === s || b === s + 1) && 7385 p < 0 && 7386 p > -1 && 7387 (n || t.params.cssMode) && 7388 l > r; 7389 if (y || E) { 7390 const e = (1 - Math.abs((Math.abs(p) - 0.5) / 0.5)) ** 0.5; 7391 (v += -28 * p * e), 7392 (g += -0.5 * e), 7393 (w += 96 * e), 7394 (h = -25 * e * Math.abs(p) + "%"); 7395 } 7396 if ( 7397 ((m = 7398 p < 0 7399 ? `calc(${m}px ${a ? "-" : "+"} (${w * Math.abs(p)}%))` 7400 : p > 0 7401 ? `calc(${m}px ${a ? "-" : "+"} (-${w * Math.abs(p)}%))` 7402 : `${m}px`), 7403 !t.isHorizontal()) 7404 ) { 7405 const e = h; 7406 (h = m), (m = e); 7407 } 7408 const x = p < 0 ? "" + (1 + (1 - g) * p) : "" + (1 - (1 - g) * p), 7409 S = `\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${ 7410 i.rotate ? (a ? -v : v) : 0 7411 }deg)\n scale(${x})\n `; 7412 if (i.slideShadows) { 7413 let e = d.querySelector(".swiper-slide-shadow"); 7414 e || (e = ue("cards", d)), 7415 e && 7416 (e.style.opacity = Math.min( 7417 Math.max((Math.abs(p) - 0.5) / 0.5, 0), 7418 1 7419 )); 7420 } 7421 d.style.zIndex = -Math.abs(Math.round(c)) + e.length; 7422 ce(0, d).style.transform = S; 7423 } 7424 }, 7425 setTransition: (e) => { 7426 const s = t.slides.map((e) => h(e)); 7427 s.forEach((t) => { 7428 (t.style.transitionDuration = `${e}ms`), 7429 t.querySelectorAll(".swiper-slide-shadow").forEach((t) => { 7430 t.style.transitionDuration = `${e}ms`; 7431 }); 7432 }), 7433 pe({ swiper: t, duration: e, transformElements: s }); 7434 }, 7435 perspective: () => !0, 7436 overwriteParams: () => ({ 7437 watchSlidesProgress: !0, 7438 virtualTranslate: !t.params.cssMode, 7439 }), 7440 }); 7441 }, 7442 ]; 7443 return te.use(me), te; 7444})(); 7445//# sourceMappingURL=swiper-bundle.min.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.