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