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