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