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