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