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