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