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