vendor: 8,905 bytes, lines 1-235
1/** 2 * Swiper 4.1.5 3 * Most modern mobile touch slider and framework with hardware accelerated transitions 4 * http://www.idangero.us/swiper/ 5 * 6 * Copyright 2014-2018 Vladimir Kharlampidi 7 * 8 * Released under the MIT License 9 * 10 * Released on: February 10, 2018 11 */ 12!function(e, t) { 13 "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.Swiper = t() 14}(this, function() { 15 "use strict"; 16 var e = "undefined" == typeof document ? { 17 body: {}, 18 addEventListener: function() {}, 19 removeEventListener: function() {}, 20 activeElement: { 21 blur: function() {}, 22 nodeName: "" 23 }, 24 querySelector: function() { 25 return null 26 }, 27 querySelectorAll: function() { 28 return [] 29 }, 30 getElementById: function() { 31 return null 32 }, 33 createEvent: function() { 34 return { 35 initEvent: function() {} 36 } 37 }, 38 createElement: function() { 39 return { 40 children: [], 41 childNodes: [], 42 style: {}, 43 setAttribute: function() {}, 44 getElementsByTagName: function() { 45 return [] 46 } 47 } 48 }, 49 location: { 50 hash: "" 51 } 52 } : document, 53 t = "undefined" == typeof window ? { 54 document: e, 55 navigator: { 56 userAgent: "" 57 }, 58 location: {}, 59 history: {}, 60 CustomEvent: function() { 61 return this 62 }, 63 addEventListener: function() {}, 64 removeEventListener: function() {}, 65 getComputedStyle: function() { 66 return { 67 getPropertyValue: function() { 68 return "" 69 } 70 } 71 }, 72 Image: function() {}, 73 Date: function() {}, 74 screen: {}, 75 setTimeout: function() {}, 76 clearTimeout: function() {} 77 } : window, 78 i = function(e) { 79 for (var t = 0; t < e.length; t += 1) 80 this[t] = e[t]; 81 return this.length = e.length, this 82 }; 83 function s(s, a) { 84 var r = [], 85 n = 0; 86 if (s && !a && s instanceof i) 87 return s; 88 if (s) 89 if ("string" == typeof s) { 90 var o, 91 l, 92 d = s.trim(); 93 if (d.indexOf("<") >= 0 && d.indexOf(">") >= 0) { 94 var h = "div"; 95 for (0 === d.indexOf("<li") && (h = "ul"), 0 === d.indexOf("<tr") && (h = "tbody"), 0 !== d.indexOf("<td") && 0 !== d.indexOf("<th") || (h = "tr"), 0 === d.indexOf("<tbody") && (h = "table"), 0 === d.indexOf("<option") && (h = "select"), (l = e.createElement(h)).innerHTML = d, n = 0; n < l.childNodes.length; n += 1) 96 r.push(l.childNodes[n]) 97 } else 98 for (o = a || "#" !== s[0] || s.match(/[ .<>:~]/) ? (a || e).querySelectorAll(s.trim()) : [e.getElementById(s.trim().split("#")[1])], n = 0; n < o.length; n += 1) 99 o[n] && r.push(o[n]) 100 } else if (s.nodeType || s === t || s === e) 101 r.push(s); 102 else if (s.length > 0 && s[0].nodeType) 103 for (n = 0; n < s.length; n += 1) 104 r.push(s[n]); 105 return new i(r) 106 } 107 function a(e) { 108 for (var t = [], i = 0; i < e.length; i += 1) 109 -1 === t.indexOf(e[i]) && t.push(e[i]); 110 return t 111 } 112 s.fn = i.prototype, s.Class = i, s.Dom7 = i; 113 "resize scroll".split(" "); 114 var r = { 115 addClass: function(e) { 116 if (void 0 === e) 117 return this; 118 for (var t = e.split(" "), i = 0; i < t.length; i += 1) 119 for (var s = 0; s < this.length; s += 1) 120 void 0 !== this[s].classList && this[s].classList.add(t[i]); 121 return this 122 }, 123 removeClass: function(e) { 124 for (var t = e.split(" "), i = 0; i < t.length; i += 1) 125 for (var s = 0; s < this.length; s += 1) 126 void 0 !== this[s].classList && this[s].classList.remove(t[i]); 127 return this 128 }, 129 hasClass: function(e) { 130 return !!this[0] && this[0].classList.contains(e) 131 }, 132 toggleClass: function(e) { 133 for (var t = e.split(" "), i = 0; i < t.length; i += 1) 134 for (var s = 0; s < this.length; s += 1) 135 void 0 !== this[s].classList && this[s].classList.toggle(t[i]); 136 return this 137 }, 138 attr: function(e, t) { 139 var i = arguments; 140 if (1 === arguments.length && "string" == typeof e) 141 return this[0] ? this[0].getAttribute(e) : void 0; 142 for (var s = 0; s < this.length; s += 1) 143 if (2 === i.length) 144 this[s].setAttribute(e, t); 145 else 146 for (var a in e) 147 this[s][a] = e[a], this[s].setAttribute(a, e[a]); 148 return this 149 }, 150 removeAttr: function(e) { 151 for (var t = 0; t < this.length; t += 1) 152 this[t].removeAttribute(e); 153 return this 154 }, 155 data: function(e, t) { 156 var i; 157 if (void 0 !== t) { 158 for (var s = 0; s < this.length; s += 1) 159 (i = this[s]).dom7ElementDataStorage || (i.dom7ElementDataStorage = {}), i.dom7ElementDataStorage[e] = t; 160 return this 161 } 162 if (i = this[0]) { 163 if (i.dom7ElementDataStorage && e in i.dom7ElementDataStorage) 164 return i.dom7ElementDataStorage[e]; 165 var a = i.getAttribute("data-" + e); 166 return a || void 0 167 } 168 }, 169 transform: function(e) { 170 for (var t = 0; t < this.length; t += 1) { 171 var i = this[t].style; 172 i.webkitTransform = e, i.transform = e 173 } 174 return this 175 }, 176 transition: function(e) { 177 "string" != typeof e && (e += "ms"); 178 for (var t = 0; t < this.length; t += 1) { 179 var i = this[t].style; 180 i.webkitTransitionDuration = e, i.transitionDuration = e 181 } 182 return this 183 }, 184 on: function() { 185 for (var e = [], t = arguments.length; t--;) 186 e[t] = arguments[t]; 187 var i, 188 a = e[0], 189 r = e[1], 190 n = e[2], 191 o = e[3]; 192 function l(e) { 193 var t = e.target; 194 if (t) { 195 var i = e.target.dom7EventData || []; 196 if (i.unshift(e), s(t).is(r)) 197 n.apply(t, i); 198 else 199 for (var a = s(t).parents(), o = 0; o < a.length; o += 1) 200 s(a[o]).is(r) && n.apply(a[o], i) 201 } 202 } 203 function d(e) { 204 var t = e && e.target ? e.target.dom7EventData || [] : []; 205 t.unshift(e), n.apply(this, t) 206 } 207 "function" == typeof e[1] && (a = (i = e)[0], n = i[1], o = i[2], r = void 0), o || (o = !1); 208 for (var h, p = a.split(" "), c = 0; c < this.length; c += 1) { 209 var u = this[c]; 210 if (r) 211 for (h = 0; h < p.length; h += 1) 212 u.dom7LiveListeners || (u.dom7LiveListeners = []), u.dom7LiveListeners.push({ 213 type: a, 214 listener: n, 215 proxyListener: l 216 }), u.addEventListener(p[h], l, o); 217 else 218 for (h = 0; h < p.length; h += 1) 219 u.dom7Listeners || (u.dom7Listeners = []), u.dom7Listeners.push({ 220 type: a, 221 listener: n, 222 proxyListener: d 223 }), u.addEventListener(p[h], d, o) 224 } 225 return this 226 }, 227 off: function() { 228 for (var e = [], t = arguments.length; t--;) 229 e[t] = arguments[t]; 230 var i, 231 s = e[0], 232 a = e[1], 233 r = e[2], 234 n = e[3]; 235 "function" == typeof e[1] && (s = (i = e)[0], r = i[
vendor: 11,576 bytes, lines 235-519
2351], n = i[2], a = void 0), n || (n = !1); 236 for (var o = s.split(" "), l = 0; l < o.length; l += 1) 237 for (var d = 0; d < this.length; d += 1) { 238 var h = this[d]; 239 if (a) { 240 if (h.dom7LiveListeners) 241 for (var p = 0; p < h.dom7LiveListeners.length; p += 1) 242 r ? h.dom7LiveListeners[p].listener === r && h.removeEventListener(o[l], h.dom7LiveListeners[p].proxyListener, n) : h.dom7LiveListeners[p].type === o[l] && h.removeEventListener(o[l], h.dom7LiveListeners[p].proxyListener, n) 243 } else if (h.dom7Listeners) 244 for (var c = 0; c < h.dom7Listeners.length; c += 1) 245 r ? h.dom7Listeners[c].listener === r && h.removeEventListener(o[l], h.dom7Listeners[c].proxyListener, n) : h.dom7Listeners[c].type === o[l] && h.removeEventListener(o[l], h.dom7Listeners[c].proxyListener, n) 246 } 247 return this 248 }, 249 trigger: function() { 250 for (var i = [], s = arguments.length; s--;) 251 i[s] = arguments[s]; 252 for (var a = i[0].split(" "), r = i[1], n = 0; n < a.length; n += 1) 253 for (var o = 0; o < this.length; o += 1) { 254 var l = void 0; 255 try { 256 l = new t.CustomEvent(a[n], { 257 detail: r, 258 bubbles: !0, 259 cancelable: !0 260 }) 261 } catch (t) { 262 (l = e.createEvent("Event")).initEvent(a[n], !0, !0), l.detail = r 263 } 264 this[o].dom7EventData = i.filter(function(e, t) { 265 return t > 0 266 }), this[o].dispatchEvent(l), this[o].dom7EventData = [], delete this[o].dom7EventData 267 } 268 return this 269 }, 270 transitionEnd: function(e) { 271 var t, 272 i = ["webkitTransitionEnd", "transitionend"], 273 s = this; 274 function a(r) { 275 if (r.target === this) 276 for (e.call(this, r), t = 0; t < i.length; t += 1) 277 s.off(i[t], a) 278 } 279 if (e) 280 for (t = 0; t < i.length; t += 1) 281 s.on(i[t], a); 282 return this 283 }, 284 outerWidth: function(e) { 285 if (this.length > 0) { 286 if (e) { 287 var t = this.styles(); 288 return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left")) 289 } 290 return this[0].offsetWidth 291 } 292 return null 293 }, 294 outerHeight: function(e) { 295 if (this.length > 0) { 296 if (e) { 297 var t = this.styles(); 298 return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom")) 299 } 300 return this[0].offsetHeight 301 } 302 return null 303 }, 304 offset: function() { 305 if (this.length > 0) { 306 var i = this[0], 307 s = i.getBoundingClientRect(), 308 a = e.body, 309 r = i.clientTop || a.clientTop || 0, 310 n = i.clientLeft || a.clientLeft || 0, 311 o = i === t ? t.scrollY : i.scrollTop, 312 l = i === t ? t.scrollX : i.scrollLeft; 313 return { 314 top: s.top + o - r, 315 left: s.left + l - n 316 } 317 } 318 return null 319 }, 320 css: function(e, i) { 321 var s; 322 if (1 === arguments.length) { 323 if ("string" != typeof e) { 324 for (s = 0; s < this.length; s += 1) 325 for (var a in e) 326 this[s].style[a] = e[a]; 327 return this 328 } 329 if (this[0]) 330 return t.getComputedStyle(this[0], null).getPropertyValue(e) 331 } 332 if (2 === arguments.length && "string" == typeof e) { 333 for (s = 0; s < this.length; s += 1) 334 this[s].style[e] = i; 335 return this 336 } 337 return this 338 }, 339 each: function(e) { 340 if (!e) 341 return this; 342 for (var t = 0; t < this.length; t += 1) 343 if (!1 === e.call(this[t], t, this[t])) 344 return this; 345 return this 346 }, 347 html: function(e) { 348 if (void 0 === e) 349 return this[0] ? this[0].innerHTML : void 0; 350 for (var t = 0; t < this.length; t += 1) 351 this[t].innerHTML = e; 352 return this 353 }, 354 text: function(e) { 355 if (void 0 === e) 356 return this[0] ? this[0].textContent.trim() : null; 357 for (var t = 0; t < this.length; t += 1) 358 this[t].textContent = e; 359 return this 360 }, 361 is: function(a) { 362 var r, 363 n, 364 o = this[0]; 365 if (!o || void 0 === a) 366 return !1; 367 if ("string" == typeof a) { 368 if (o.matches) 369 return o.matches(a); 370 if (o.webkitMatchesSelector) 371 return o.webkitMatchesSelector(a); 372 if (o.msMatchesSelector) 373 return o.msMatchesSelector(a); 374 for (r = s(a), n = 0; n < r.length; n += 1) 375 if (r[n] === o) 376 return !0; 377 return !1 378 } 379 if (a === e) 380 return o === e; 381 if (a === t) 382 return o === t; 383 if (a.nodeType || a instanceof i) { 384 for (r = a.nodeType ? [a] : a, n = 0; n < r.length; n += 1) 385 if (r[n] === o) 386 return !0; 387 return !1 388 } 389 return !1 390 }, 391 index: function() { 392 var e, 393 t = this[0]; 394 if (t) { 395 for (e = 0; null !== (t = t.previousSibling);) 396 1 === t.nodeType && (e += 1); 397 return e 398 } 399 }, 400 eq: function(e) { 401 if (void 0 === e) 402 return this; 403 var t, 404 s = this.length; 405 return new i(e > s - 1 ? [] : e < 0 ? (t = s + e) < 0 ? [] : [this[t]] : [this[e]]) 406 }, 407 append: function() { 408 for (var t, s = [], a = arguments.length; a--;) 409 s[a] = arguments[a]; 410 for (var r = 0; r < s.length; r += 1) { 411 t = s[r]; 412 for (var n = 0; n < this.length; n += 1) 413 if ("string" == typeof t) { 414 var o = e.createElement("div"); 415 for (o.innerHTML = t; o.firstChild;) 416 this[n].appendChild(o.firstChild) 417 } else if (t instanceof i) 418 for (var l = 0; l < t.length; l += 1) 419 this[n].appendChild(t[l]); 420 else 421 this[n].appendChild(t) 422 } 423 return this 424 }, 425 prepend: function(t) { 426 var s, 427 a; 428 for (s = 0; s < this.length; s += 1) 429 if ("string" == typeof t) { 430 var r = e.createElement("div"); 431 for (r.innerHTML = t, a = r.childNodes.length - 1; a >= 0; a -= 1) 432 this[s].insertBefore(r.childNodes[a], this[s].childNodes[0]) 433 } else if (t instanceof i) 434 for (a = 0; a < t.length; a += 1) 435 this[s].insertBefore(t[a], this[s].childNodes[0]); 436 else 437 this[s].insertBefore(t, this[s].childNodes[0]); 438 return this 439 }, 440 next: function(e) { 441 return this.length > 0 ? e ? this[0].nextElementSibling && s(this[0].nextElementSibling).is(e) ? new i([this[0].nextElementSibling]) : new i([]) : this[0].nextElementSibling ? new i([this[0].nextElementSibling]) : new i([]) : new i([]) 442 }, 443 nextAll: function(e) { 444 var t = [], 445 a = this[0]; 446 if (!a) 447 return new i([]); 448 for (; a.nextElementSibling;) { 449 var r = a.nextElementSibling; 450 e ? s(r).is(e) && t.push(r) : t.push(r), a = r 451 } 452 return new i(t) 453 }, 454 prev: function(e) { 455 if (this.length > 0) { 456 var t = this[0]; 457 return e ? t.previousElementSibling && s(t.previousElementSibling).is(e) ? new i([t.previousElementSibling]) : new i([]) : t.previousElementSibling ? new i([t.previousElementSibling]) : new i([]) 458 } 459 return new i([]) 460 }, 461 prevAll: function(e) { 462 var t = [], 463 a = this[0]; 464 if (!a) 465 return new i([]); 466 for (; a.previousElementSibling;) { 467 var r = a.previousElementSibling; 468 e ? s(r).is(e) && t.push(r) : t.push(r), a = r 469 } 470 return new i(t) 471 }, 472 parent: function(e) { 473 for (var t = [], i = 0; i < this.length; i += 1) 474 null !== this[i].parentNode && (e ? s(this[i].parentNode).is(e) && t.push(this[i].parentNode) : t.push(this[i].parentNode)); 475 return s(a(t)) 476 }, 477 parents: function(e) { 478 for (var t = [], i = 0; i < this.length; i += 1) 479 for (var r = this[i].parentNode; r;) 480 e ? s(r).is(e) && t.push(r) : t.push(r), r = r.parentNode; 481 return s(a(t)) 482 }, 483 closest: function(e) { 484 var t = this; 485 return void 0 === e ? new i([]) : (t.is(e) || (t = t.parents(e).eq(0)), t) 486 }, 487 find: function(e) { 488 for (var t = [], s = 0; s < this.length; s += 1) 489 for (var a = this[s].querySelectorAll(e), r = 0; r < a.length; r += 1) 490 t.push(a[r]); 491 return new i(t) 492 }, 493 children: function(e) { 494 for (var t = [], r = 0; r < this.length; r += 1) 495 for (var n = this[r].childNodes, o = 0; o < n.length; o += 1) 496 e ? 1 === n[o].nodeType && s(n[o]).is(e) && t.push(n[o]) : 1 === n[o].nodeType && t.push(n[o]); 497 return new i(a(t)) 498 }, 499 remove: function() { 500 for (var e = 0; e < this.length; e += 1) 501 this[e].parentNode && this[e].parentNode.removeChild(this[e]); 502 return this 503 }, 504 add: function() { 505 for (var e = [], t = arguments.length; t--;) 506 e[t] = arguments[t]; 507 var i, 508 a; 509 for (i = 0; i < e.length; i += 1) { 510 var r = s(e[i]); 511 for (a = 0; a < r.length; a += 1) 512 this[this.length] = r[a], this.length += 1 513 } 514 return this 515 }, 516 styles: function() { 517 return this[0] ? t.getComputedStyle(this[0], null) : {} 518 } 519 };
vendor: 4,963 bytes, lines 520-616
520 Object.keys(r).forEach(function(e) { 521 s.fn[e] = r[e] 522 }); 523 var n, 524 o, 525 l, 526 d = { 527 deleteProps: function(e) { 528 var t = e; 529 Object.keys(t).forEach(function(e) { 530 try { 531 t[e] = null 532 } catch (e) {} 533 try { 534 delete t[e] 535 } catch (e) {} 536 }) 537 }, 538 nextTick: function(e, t) { 539 return void 0 === t && (t = 0), setTimeout(e, t) 540 }, 541 now: function() { 542 return Date.now() 543 }, 544 getTranslate: function(e, i) { 545 var s, 546 a, 547 r; 548 void 0 === i && (i = "x"); 549 var n = t.getComputedStyle(e, null); 550 return t.WebKitCSSMatrix ? ((a = n.transform || n.webkitTransform).split(",").length > 6 && (a = a.split(", ").map(function(e) { 551 return e.replace(",", ".") 552 }).join(", ")), r = new t.WebKitCSSMatrix("none" === a ? "" : a)) : s = (r = n.MozTransform || n.OTransform || n.MsTransform || n.msTransform || n.transform || n.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","), "x" === i && (a = t.WebKitCSSMatrix ? r.m41 : 16 === s.length ? parseFloat(s[12]) : parseFloat(s[4])), "y" === i && (a = t.WebKitCSSMatrix ? r.m42 : 16 === s.length ? parseFloat(s[13]) : parseFloat(s[5])), a || 0 553 }, 554 parseUrlQuery: function(e) { 555 var i, 556 s, 557 a, 558 r, 559 n = {}, 560 o = e || t.location.href; 561 if ("string" == typeof o && o.length) 562 for (r = (s = (o = o.indexOf("?") > -1 ? o.replace(/\S*\?/, "") : "").split("&").filter(function(e) { 563 return "" !== e 564 })).length, i = 0; i < r; i += 1) 565 a = s[i].replace(/#\S+/g, "").split("="), n[decodeURIComponent(a[0])] = void 0 === a[1] ? void 0 : decodeURIComponent(a[1]) || ""; 566 return n 567 }, 568 isObject: function(e) { 569 return "object" == typeof e && null !== e && e.constructor && e.constructor === Object 570 }, 571 extend: function() { 572 for (var e = [], t = arguments.length; t--;) 573 e[t] = arguments[t]; 574 for (var i = Object(e[0]), s = 1; s < e.length; s += 1) { 575 var a = e[s]; 576 if (void 0 !== a && null !== a) 577 for (var r = Object.keys(Object(a)), n = 0, o = r.length; n < o; n += 1) { 578 var l = r[n], 579 h = Object.getOwnPropertyDescriptor(a, l); 580 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] = {}, d.extend(i[l], a[l])) : i[l] = a[l]) 581 } 582 } 583 return i 584 } 585 }, 586 h = (l = e.createElement("div"), { 587 touch: t.Modernizr && !0 === t.Modernizr.touch || !!("ontouchstart" in t || t.DocumentTouch && e instanceof t.DocumentTouch), 588 pointerEvents: !(!t.navigator.pointerEnabled && !t.PointerEvent), 589 prefixedPointerEvents: !!t.navigator.msPointerEnabled, 590 transition: (o = l.style, "transition" in o || "webkitTransition" in o || "MozTransition" in o), 591 transforms3d: t.Modernizr && !0 === t.Modernizr.csstransforms3d || (n = l.style, "webkitPerspective" in n || "MozPerspective" in n || "OPerspective" in n || "MsPerspective" in n || "perspective" in n), 592 flexbox: function() { 593 for (var e = l.style, t = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), i = 0; i < t.length; i += 1) 594 if (t[i] in e) 595 return !0; 596 return !1 597 }(), 598 observer: "MutationObserver" in t || "WebkitMutationObserver" in t, 599 passiveListener: function() { 600 var e = !1; 601 try { 602 var i = Object.defineProperty({}, "passive", { 603 get: function() { 604 e = !0 605 } 606 }); 607 t.addEventListener("testPassiveListener", null, i) 608 } catch (e) {} 609 return e 610 }(), 611 gestures: "ongesturestart" in t 612 }), 613 p = function(e) { 614 void 0 === e && (e = {}); 615 var t = this; 616 t.params = e, t.eventsListeners = {}
616, t.params && t.params.on && Object.keys(t.params.on).forEach(function(e) { 617 t.on(e, t.params.on[e]) 618 }) 619 }, 620 c = { 621 components: { 622 configurable: !0 623 } 624 }; 625 p.prototype.on = function(e, t) { 626 var i = this; 627 return "function" != typeof t ? i : (e.split(" ").forEach(function(e) { 628 i.eventsListeners[e] || (i.eventsListeners[e] = []), i.eventsListeners[e].push(t) 629 }), i) 630 }, p.prototype.once = function(e, t) { 631 var i = this; 632 if ("function" != typeof t) 633 return i; 634 return i.on(e, function s() { 635 for (var a = [], r = arguments.length; r--;) 636 a[r] = arguments[r]; 637 t.apply(i, a), i.off(e, s) 638 }) 639 }, p.prototype.off = function(e, t) { 640 var i = this; 641 return e.split(" ").forEach(function(e) { 642 void 0 === t ? i.eventsListeners[e] = [] : i.eventsListeners[e].forEach(function(s, a) { 643 s === t && i.eventsListeners[e].splice(a, 1) 644 }) 645 }), i 646 }, p.prototype.emit = function() { 647 for (var e = [], t = arguments.length; t--;) 648 e[t] = arguments[t]; 649 var i, 650 s, 651 a, 652 r = this; 653 return r.eventsListeners ? ("string" == typeof e[0] || Array.isArray(e[0]) ? (i = e[0], s = e.slice(1, e.length), a = r) : (i = e[0].events, s = e[0].data, a = e[0].context || r), (Array.isArray(i) ? i : i.split(" ")).forEach(function(e) { 654 if (r.eventsListeners[e]) { 655 var t = []; 656 r.eventsListeners[e].forEach(function(e) { 657 t.push(e) 658 }), t.forEach(function(e) { 659 e.apply(a, s) 660 }) 661 } 662 }), r) : r 663 }, p.prototype.useModulesParams = function(e) { 664 var t = this; 665 t.modules && Object.keys(t.modules).forEach(function(i) { 666 var s = t.modules[i]; 667 s.params && d.extend(e, s.params) 668 }) 669 }, p.prototype.useModules = function(e) { 670 void 0 === e && (e = {}); 671 var t = this; 672 t.modules && Object.keys(t.modules).forEach(function(i) { 673 var s = t.modules[i], 674 a = e[i] || {}; 675 s.instance && Object.keys(s.instance).forEach(function(e) { 676 var i = s.instance[e]; 677 t[e] = "function" == typeof i ? i.bind(t) : i 678 }), s.on && t.on && Object.keys(s.on).forEach(function(e) { 679 t.on(e, s.on[e]) 680 }), s.create && s.create.bind(t)(a) 681 }) 682 }, c.components.set = function(e) { 683 this.use && this.use(e) 684 }, p.installModule = function(e) { 685 for (var t = [], i = arguments.length - 1; i-- > 0;) 686 t[i] = arguments[i + 1]; 687 var s = this; 688 s.prototype.modules || (s.prototype.modules = {}); 689 var a = e.name || Object.keys(s.prototype.modules).length + "_" + d.now(); 690 return s.prototype.modules[a] = e, e.proto && Object.keys(e.proto).forEach(function(t) { 691 s.prototype[t] = e.proto[t] 692 }), e.static && Object.keys(e.static).forEach(function(t) { 693 s[t] = e.static[t] 694 }), e.install && e.install.apply(s, t), s 695 }, p.use = function(e) { 696 for (var t = [], i = arguments.length - 1; i-- > 0;) 697 t[i] = arguments[i + 1]; 698 var s = this; 699 return Array.isArray(e) ? (e.forEach(function(e) { 700 return s.installModule(e) 701 }), s) : s.installModule.apply(s, [e].concat(t)) 702 }, Object.defineProperties(p, c); 703 var u = { 704 updateSize: function() { 705 var e, 706 t, 707 i = this.$el; 708 e = void 0 !== this.params.width ? this.params.width : i[0].clientWidth, t = void 0 !== this.params.height ? this.params.height : i[0].clientHeight, 0 === e && this.isHorizontal() || 0 === t && this.isVertical() || (e = e - parseInt(i.css("padding-left"), 10) - parseInt(i.css("padding-right"), 10), t = t - parseInt(i.css("padding-top"), 10) - parseInt(i.css("padding-bottom"), 10), d.extend(this, { 709 width: e, 710 height: t, 711 size: this.isHorizontal() ? e : t 712 })) 713 }, 714 updateSlides: function() { 715 var e = this.params, 716 t = this.$wrapperEl, 717 i = this.size, 718 s = this.rtl, 719 a = this.wrongRTL, 720 r = t.children("." + this.params.slideClass), 721 n = this.virtual && e.virtual.enabled ? this.virtual.slides.length : r.length, 722 o = [], 723 l = [], 724 p = [], 725 c = e.slidesOffsetBefore; 726 "function" == typeof c && (c = e.slidesOffsetBefore.call(this)); 727 var u = e.slidesOffsetAfter; 728 "function" == typeof u && (u = e.slidesOffsetAfter.call(this)); 729 var v = n, 730 f = this.snapGrid.length, 731 m = this.snapGrid.length, 732 g = e.spaceBetween, 733 b = -c, 734 w = 0, 735 y = 0; 736 if (void 0 !== i) { 737 var x, 738 E; 739 "string" == typeof g && g.indexOf("%") >= 0 && (g = parseFloat(g.replace("%", "")) / 100 * i), this.virtualSize = -g, s ? r.css({ 740 marginLeft: "", 741 marginTop: "" 742 }) : r.css({ 743 marginRight: "", 744 marginBottom: "" 745 }), e.slidesPerColumn > 1 && (x = Math.floor(n / e.slidesPerColumn) === n / this.params.slidesPerColumn ? n : Math.ceil(n / e.slidesPerColumn) * e.slidesPerColumn, "auto" !== e.slidesPerView && "row" === e.slidesPerColumnFill && (x = Math.max(x, e.slidesPerView * e.slidesPerColumn))); 746 for (var T, S = e.slidesPerColumn, C = x / S, M = C - (e.slidesPerColumn * C - n), z = 0; z < n; z += 1) { 747 E = 0; 748 var P = r.eq(z); 749 if (e.slidesPerColumn > 1) { 750 var k = void 0, 751 $ = void 0, 752 L = void 0; 753 "column" === e.slidesPerColumnFill ? (L = z - ($ = Math.floor(z / S)) * S, ($ > M || $ === M && L === S - 1) && (L += 1) >= S && (L = 0, $ += 1), k = $ + L * x / S, P.css({ 754 "-webkit-box-ordinal-group": k, 755 "-moz-box-ordinal-group": k, 756 "-ms-flex-order": k, 757 "-webkit-order": k, 758 order: k 759 })) : $ = z - (L = Math.floor(z / C)) * C, P.css("margin-" + (this.isHorizontal() ? "top" : "left"), 0 !== L && e.spaceBetween && e.spaceBetween + "px").attr("data-swiper-column", $).attr("data-swiper-row", L) 760 } 761 "none" !== P.css("display") && ("auto" === e.slidesPerView ? (E = this.isHorizontal() ? P.outerWidth(!0) : P.outerHeight(!0), e.roundLengths && (E = Math.floor(E))) : (E = (i - (e.slidesPerView - 1) * g) / e.slidesPerView, e.roundLengths && (E = Math.floor(E)), r[z] && (this.isHorizontal() ? r[z].style.width = E + "px" : r[z].style.height = E + "px")), r[z] && (r[z].swiperSlideSize = E), p.push(E), e.centeredSlides ? (b = b + E / 2 + w / 2 + g, 0 === w && 0 !== z && (b = b - i / 2 - g), 0 === z && (b = b - i / 2 - g), Math.abs(b) < .001 && (b = 0), y % e.slidesPerGroup == 0 && o.push(b), l.push(b)) : (y % e.slidesPerGroup == 0 && o.push(b), l.push(b), b = b + E + g), this.virtualSize += E + g, w = E, y += 1) 762 } 763 if (this.virtualSize = Math.max(this.virtualSize, i) + u, s && a && ("slide" === e.effect || "coverflow" === e.effect) && t.css({ 764 width: this.virtualSize + e.spaceBetween + "px" 765 }), h.flexbox && !e.setWrapperSize || (this.isHorizontal() ? t.css({ 766 width: this.virtualSize + e.spaceBetween + "px" 767 }) : t.css({ 768 height: this.virtualSize + e.spaceBetween + "px" 769 })), e.slidesPerColumn > 1 && (this.virtualSize = (E + e.spaceBetween) * x, this.virtualSize = Math.
769ceil(this.virtualSize / e.slidesPerColumn) - e.spaceBetween, this.isHorizontal() ? t.css({ 770 width: this.virtualSize + e.spaceBetween + "px" 771 }) : t.css({ 772 height: this.virtualSize + e.spaceBetween + "px" 773 }), e.centeredSlides)) { 774 T = []; 775 for (var I = 0; I < o.length; I += 1) 776 o[I] < this.virtualSize + o[0] && T.push(o[I]); 777 o = T 778 } 779 if (!e.centeredSlides) { 780 T = []; 781 for (var D = 0; D < o.length; D += 1) 782 o[D] <= this.virtualSize - i && T.push(o[D]); 783 o = T, Math.floor(this.virtualSize - i) - Math.floor(o[o.length - 1]) > 1 && o.push(this.virtualSize - i) 784 } 785 0 === o.length && (o = [0]), 0 !== e.spaceBetween && (this.isHorizontal() ? s ? r.css({ 786 marginLeft: g + "px" 787 }) : r.css({ 788 marginRight: g + "px" 789 }) : r.css({ 790 marginBottom: g + "px" 791 })), d.extend(this, { 792 slides: r, 793 snapGrid: o, 794 slidesGrid: l, 795 slidesSizesGrid: p 796 }), n !== v && this.emit("slidesLengthChange"), o.length !== f && (this.params.watchOverflow && this.checkOverflow(), this.emit("snapGridLengthChange")), l.length !== m && this.emit("slidesGridLengthChange"), (e.watchSlidesProgress || e.watchSlidesVisibility) && this.updateSlidesOffset() 797 } 798 }, 799 updateAutoHeight: function() { 800 var e, 801 t = [], 802 i = 0; 803 if ("auto" !== this.params.slidesPerView && this.params.slidesPerView > 1) 804 for (e = 0; e < Math.ceil(this.params.slidesPerView); e += 1) { 805 var s = this.activeIndex + e; 806 if (s > this.slides.length) 807 break; 808 t.push(this.slides.eq(s)[0]) 809 } 810 else 811 t.push(this.slides.eq(this.activeIndex)[0]); 812 for (e = 0; e < t.length; e += 1) 813 if (void 0 !== t[e]) { 814 var a = t[e].offsetHeight; 815 i = a > i ? a : i 816 } 817 i && this.$wrapperEl.css("height", i + "px") 818 }, 819 updateSlidesOffset: function() { 820 for (var e = this.slides, t = 0; t < e.length; t += 1) 821 e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop 822 }, 823 updateSlidesProgress: function(e) { 824 void 0 === e && (e = this.translate || 0); 825 var t = this.params, 826 i = this.slides, 827 s = this.rtl; 828 if (0 !== i.length) { 829 void 0 === i[0].swiperSlideOffset && this.updateSlidesOffset(); 830 var a = -e; 831 s && (a = e), i.removeClass(t.slideVisibleClass); 832 for (var r = 0; r < i.length; r += 1) { 833 var n = i[r], 834 o = (a + (t.centeredSlides ? this.minTranslate() : 0) - n.swiperSlideOffset) / (n.swiperSlideSize + t.spaceBetween); 835 if (t.watchSlidesVisibility) { 836 var l = -(a - n.swiperSlideOffset), 837 d = l + this.slidesSizesGrid[r]; 838 (l >= 0 && l < this.size || d > 0 && d <= this.size || l <= 0 && d >= this.size) && i.eq(r).addClass(t.slideVisibleClass) 839 } 840 n.progress = s ? -o : o 841 } 842 } 843 }, 844 updateProgress: function(e) { 845 void 0 === e && (e = this.translate || 0); 846 var t = this.params, 847 i = this.maxTranslate() - this.minTranslate(), 848 s = this.progress,
849 a = this.isBeginning, 850 r = this.isEnd, 851 n = a, 852 o = r; 853 0 === i ? (s = 0, a = !0, r = !0) : (a = (s = (e - this.minTranslate()) / i) <= 0, r = s >= 1), d.extend(this, { 854 progress: s, 855 isBeginning: a, 856 isEnd: r 857 }), (t.watchSlidesProgress || t.watchSlidesVisibility) && this.updateSlidesProgress(e), a && !n && this.emit("reachBeginning toEdge"), r && !o && this.emit("reachEnd toEdge"), (n && !a || o && !r) && this.emit("fromEdge"), this.emit("progress", s) 858 }, 859 updateSlidesClasses: function() { 860 var e, 861 t = this.slides, 862 i = this.params, 863 s = this.$wrapperEl, 864 a = this.activeIndex, 865 r = this.realIndex, 866 n = this.virtual && i.virtual.enabled; 867 t.removeClass(i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass), (e = n ? this.$wrapperEl.find("." + i.slideClass + '[data-swiper-slide-index="' + a + '"]') : t.eq(a)).addClass(i.slideActiveClass), 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)); 868 var o = e.nextAll("." + i.slideClass).eq(0).addClass(i.slideNextClass); 869 i.loop && 0 === o.length && (o = t.eq(0)).addClass(i.slideNextClass); 870 var l = e.prevAll("." + i.slideClass).eq(0).addClass(i.slidePrevClass); 871 i.loop && 0 === l.length && (l = t.eq(-1)).addClass(i.slidePrevClass), 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), 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)) 872 }, 873 updateActiveIndex: function(e) { 874 var t, 875 i = this.rtl ? this.translate : -this.translate, 876 s = this.slidesGrid, 877 a = this.snapGrid, 878 r = this.params, 879 n = this.activeIndex, 880 o = this.realIndex, 881 l = this.snapIndex, 882 h = e; 883 if (void 0 === h) { 884 for (var p = 0; p < s.length; p += 1) 885 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);
886 r.normalizeSlideIndex && (h < 0 || void 0 === h) && (h = 0) 887 } 888 if ((t = a.indexOf(i) >= 0 ? a.indexOf(i) : Math.floor(h / r.slidesPerGroup)) >= a.length && (t = a.length - 1), h !== n) { 889 var c = parseInt(this.slides.eq(h).attr("data-swiper-slide-index") || h, 10); 890 d.extend(this, { 891 snapIndex: t, 892 realIndex: c, 893 previousIndex: n, 894 activeIndex: h 895 }), this.emit("activeIndexChange"), this.emit("snapIndexChange"), o !== c && this.emit("realIndexChange"), this.emit("slideChange") 896 } else 897 t !== l && (this.snapIndex = t, this.emit("snapIndexChange")) 898 }, 899 updateClickedSlide: function(e) { 900 var t = this.params, 901 i = s(e.target).closest("." + t.slideClass)[0], 902 a = !1; 903 if (i) 904 for (var r = 0; r < this.slides.length; r += 1) 905 this.slides[r] === i && (a = !0); 906 if (!i || !a) 907 return this.clickedSlide = void 0, void (this.clickedIndex = void 0); 908 this.clickedSlide = i, this.virtual && this.params.virtual.enabled ? this.clickedIndex = parseInt(s(i).attr("data-swiper-slide-index"), 10) : this.clickedIndex = s(i).index(), t.slideToClickedSlide && void 0 !== this.clickedIndex && this.clickedIndex !== this.activeIndex && this.slideToClickedSlide() 909 } 910 }, 911 v = { 912 getTranslate: function(e) { 913 void 0 === e && (e = this.isHorizontal() ? "x" : "y"); 914 var t = this.params, 915 i = this.rtl, 916 s = this.translate, 917 a = this.$wrapperEl; 918 if (t.virtualTranslate) 919 return i ? -s : s; 920 var r = d.getTranslate(a[0], e); 921 return i && (r = -r), r || 0 922 }, 923 setTranslate: function(e, t) { 924 var i = this.rtl, 925 s = this.params, 926 a = this.$wrapperEl, 927 r = this.progress, 928 n = 0, 929 o = 0; 930 this.isHorizontal() ? n = i ? -e : e : o = e, s.roundLengths && (n = Math.floor(n), o = Math.floor(o)), s.virtualTranslate || (h.transforms3d ? a.transform("translate3d(" + n + "px, " + o + "px, 0px)") : a.transform("translate(" + n + "px, " + o + "px)")), this.translate = this.isHorizontal() ? n : o; 931 var l = this.maxTranslate() - this.minTranslate(); 932 (0 === l ? 0 : (e - this.minTranslate()) / l) !== r && this.updateProgress(e), this.emit("setTranslate", this.translate, t) 933 }, 934 minTranslate: function() { 935 return -this.snapGrid[0] 936 }, 937 maxTranslate: function() { 938 return -this.snapGrid[this.snapGrid.length - 1] 939 } 940 }, 941 f = { 942 setTransition: function(e, t) { 943 this.$wrapperEl.transition(e), this.emit("setTransition", e, t) 944 }, 945 transitionStart: function(e, t) { 946 void 0 === e && (e = !0); 947 var i = this.activeIndex, 948 s = this.params, 949 a = this.previousIndex; 950 s.autoHeight && this.updateAutoHeight(); 951 var r = t; 952 if (r || (r = i > a ? "next" : i < a ? "prev" : "reset"), this.emit("transitionStart"), e && i !== a) { 953 if ("reset" === r) 954 return void this.emit("slideResetTransitionStart"); 955 this.emit("slideChangeTransitionStart"), "next" === r ? this.emit("slideNextTransitionStart") : this.emit("slidePrevTransitionStart") 956 } 957 }, 958 transitionEnd: function(e, t) { 959 void 0 === e && (e = !0); 960 var i = this.activeIndex, 961 s = this.previousIndex; 962 this.animating = !1, this.setTransition(0); 963 var a = t; 964 if (a || (a = i >
vendor: 5,412 bytes, lines 964-1048
964 s ? "next" : i < s ? "prev" : "reset"), this.emit("transitionEnd"), e && i !== s) { 965 if ("reset" === a) 966 return void this.emit("slideResetTransitionEnd"); 967 this.emit("slideChangeTransitionEnd"), "next" === a ? this.emit("slideNextTransitionEnd") : this.emit("slidePrevTransitionEnd") 968 } 969 } 970 }, 971 m = { 972 slideTo: function(e, t, i, s) { 973 void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0); 974 var a = this, 975 r = e; 976 r < 0 && (r = 0); 977 var n = a.params, 978 o = a.snapGrid, 979 l = a.slidesGrid, 980 d = a.previousIndex, 981 p = a.activeIndex, 982 c = a.rtl, 983 u = a.$wrapperEl; 984 if (a.animating && n.preventIntercationOnTransition) 985 return !1; 986 var v = Math.floor(r / n.slidesPerGroup); 987 v >= o.length && (v = o.length - 1), (p || n.initialSlide || 0) === (d || 0) && i && a.emit("beforeSlideChangeStart"); 988 var f, 989 m = -o[v]; 990 if (a.updateProgress(m), n.normalizeSlideIndex) 991 for (var g = 0; g < l.length; g += 1) 992 -Math.floor(100 * m) >= Math.floor(100 * l[g]) && (r = g); 993 if (a.initialized && r !== p) { 994 if (!a.allowSlideNext && m < a.translate && m < a.minTranslate()) 995 return !1; 996 if (!a.allowSlidePrev && m > a.translate && m > a.maxTranslate() && (p || 0) !== r) 997 return !1 998 } 999 return f = r > p ? "next" : r < p ? "prev" : "reset", c && -m === a.translate || !c && m === a.translate ? (a.updateActiveIndex(r), n.autoHeight && a.updateAutoHeight(), a.updateSlidesClasses(), "slide" !== n.effect && a.setTranslate(m), "reset" !== f && (a.transitionStart(i, f), a.transitionEnd(i, f)), !1) : (0 !== t && h.transition ? (a.setTransition(t), a.setTranslate(m), a.updateActiveIndex(r), a.updateSlidesClasses(), a.emit("beforeTransitionStart", t, s), a.transitionStart(i, f), a.animating || (a.animating = !0, u.transitionEnd(function() { 1000 a && !a.destroyed && a.transitionEnd(i, f) 1001 }))) : (a.setTransition(0), a.setTranslate(m), a.updateActiveIndex(r), a.updateSlidesClasses(), a.emit("beforeTransitionStart", t, s), a.transitionStart(i, f), a.transitionEnd(i, f)), !0) 1002 }, 1003 slideToLoop: function(e, t, i, s) { 1004 void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0); 1005 var a = e; 1006 return this.params.loop && (a += this.loopedSlides), this.slideTo(a, t, i, s) 1007 }, 1008 slideNext: function(e, t, i) { 1009 void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); 1010 var s = this.params, 1011 a = this.animating; 1012 return s.loop ? !a && (this.loopFix(), this._clientLeft = this.$wrapperEl[0].clientLeft, this.slideTo(this.activeIndex + s.slidesPerGroup, e, t, i)) : this.slideTo(this.activeIndex + s.slidesPerGroup, e, t, i) 1013 }, 1014 slidePrev: function(e, t, i) { 1015 void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); 1016 var s = this.params, 1017 a = this.animating; 1018 return s.loop ? !a && (this.loopFix(), this._clientLeft = this.$wrapperEl[0].clientLeft, this.slideTo(this.activeIndex - 1, e, t, i)) : this.slideTo(this.activeIndex - 1, e, t, i) 1019 }, 1020 slideReset: function(e, t, i) { 1021 void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); 1022 return this.slideTo(this.activeIndex, e, t, i) 1023 }, 1024 slideToClickedSlide: function() { 1025 var e, 1026 t = this, 1027 i = t.params, 1028 a = t.$wrapperEl, 1029 r = "auto" === i.slidesPerView ? t.slidesPerViewDynamic() : i.slidesPerView, 1030 n = t.clickedIndex; 1031 if (i.loop) { 1032 if (t.animating) 1033 return; 1034 e = parseInt(s(t.clickedSlide).attr("data-swiper-slide-index"), 10), i.centeredSlides ? n < t.loopedSlides - r / 2 || n > t.slides.length - t.loopedSlides + r / 2 ? (t.loopFix(), n = a.children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")").eq(0).index(), d.nextTick(function() { 1035 t.slideTo(n) 1036 })) : t.slideTo(n) : n > t.slides.length - r ? (t.loopFix(), n = a.children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")").eq(0).index(), d.nextTick(function() { 1037 t.slideTo(n) 1038 })) : t.slideTo(n) 1039 } else 1040 t.slideTo(n) 1041 } 1042 }, 1043 g = { 1044 loopCreate: function() { 1045 var t = this, 1046 i = t.params, 1047 a = t.$wrapperEl; 1048 a.children("." + i.slideClass + "." + i.slideDuplicateClass).remove();
1049 var r = a.children("." + i.slideClass); 1050 if (i.loopFillGroupWithBlank) { 1051 var n = i.slidesPerGroup - r.length % i.slidesPerGroup; 1052 if (n !== i.slidesPerGroup) { 1053 for (var o = 0; o < n; o += 1) { 1054 var l = s(e.createElement("div")).addClass(i.slideClass + " " + i.slideBlankClass); 1055 a.append(l) 1056 } 1057 r = a.children("." + i.slideClass) 1058 } 1059 } 1060 "auto" !== i.slidesPerView || i.loopedSlides || (i.loopedSlides = r.length), t.loopedSlides = parseInt(i.loopedSlides || i.slidesPerView, 10), t.loopedSlides += i.loopAdditionalSlides, t.loopedSlides > r.length && (t.loopedSlides = r.length); 1061 var d = [], 1062 h = []; 1063 r.each(function(e, i) { 1064 var a = s(i); 1065 e < t.loopedSlides && h.push(i), e < r.length && e >= r.length - t.loopedSlides && d.push(i), a.attr("data-swiper-slide-index", e) 1066 }); 1067 for (var p = 0; p < h.length; p += 1) 1068 a.append(s(h[p].cloneNode(!0)).addClass(i.slideDuplicateClass)); 1069 for (var c = d.length - 1; c >= 0; c -= 1) 1070 a.prepend(s(d[c].cloneNode(!0)).addClass(i.slideDuplicateClass)) 1071 }, 1072 loopFix: function() { 1073 var e, 1074 t = this.params, 1075 i = this.activeIndex, 1076 s = this.slides, 1077 a = this.loopedSlides, 1078 r = this.allowSlidePrev, 1079 n = this.allowSlideNext, 1080 o = this.snapGrid, 1081 l = this.rtl; 1082 this.allowSlidePrev = !0, this.allowSlideNext = !0; 1083 var d = -o[i] - this.getTranslate(); 1084 i < a ? (e = s.length - 3 * a + i, e += a, this.slideTo(e, 0, !1, !0) && 0 !== d && this.setTranslate((l ? -this.translate : this.translate) - d)) : ("auto" === t.slidesPerView && i >= 2 * a || i > s.length - 2 * t.slidesPerView) && (e = -s.length + i + a, e += a, this.slideTo(e, 0, !1, !0) && 0 !== d && this.setTranslate((l ? -this.translate : this.translate) - d)); 1085 this.allowSlidePrev = r, this.allowSlideNext = n 1086 }, 1087 loopDestroy: function() { 1088 var e = this.$wrapperEl, 1089 t = this.params, 1090 i = this.slides; 1091 e.children("." + t.slideClass + "." + t.slideDuplicateClass).remove(), i.removeAttr("data-swiper-slide-index") 1092 } 1093 }, 1094 b = { 1095 setGrabCursor: function(e) { 1096 if (!h.touch && this.params.simulateTouch) { 1097 var t = this.el; 1098 t.style.cursor = "move", t.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", t.style.cursor = e ? "-moz-grabbin" : "-moz-grab", t.style.cursor = e ? "grabbing" : "grab" 1099 } 1100 }, 1101 unsetGrabCursor: function() { 1102 h.touch || (this.el.style.cursor = "") 1103 } 1104 }, 1105 w = { 1106 appendSlide: function(e) { 1107 var t = this.$wrapperEl, 1108 i = this.params; 1109 if (i.loop && this.loopDestroy(), "object" == typeof e && "length" in e) 1110 for (var s = 0; s < e.length; s += 1) 1111 e[s] && t.append(e[s]); 1112 else 1113 t.append(e); 1114 i.loop && this.loopCreate(), i.observer && h.observer || this.update() 1115 }, 1116 prependSlide: function(e) { 1117 var t = this.params, 1118 i = this.$wrapperEl, 1119 s = this.activeIndex; 1120 t.loop && this.loopDestroy(); 1121 var a = s + 1; 1122 if ("object" == typeof e && "length" in e) { 1123 for (var r = 0; r < e.length; r += 1) 1124 e[r] && i.prepend(e[r]); 1125 a = s + e.length 1126 } else 1127 i.prepend(e); 1128 t.loop && this.loopCreate(), t.observer && h.observer || this.update(), this.slideTo(a, 0, !1) 1129 }, 1130 removeSlide: function(e) { 1131 var t = this.params, 1132 i = this.$wrapperEl, 1133 s = this.activeIndex; 1134 t.loop && (this.loopDestroy(), this.slides = i.children("." + t.slideClass)); 1135 var a, 1136 r = s; 1137 if ("object" == typeof e && "length" in e) { 1138 for (var n = 0; n < e.length; n += 1) 1139 a = e[n], this.slides[a] && this.slides.eq(a).remove(), a < r && (r -= 1); 1140 r = Math.max(r, 0) 1141 } else 1142 a = e, this.slides[a] && this.slides.eq(a).remove(), a < r && (r -= 1), r = Math.max(r, 0); 1143 t.loop && this.loopCreate(), t.observer && h.observer || this.update(), t.loop ? this.slideTo(r + this.loopedSlides, 0, !1) : this.slideTo(r, 0, !1) 1144 }, 1145 removeAllSlides: function() { 1146 for (var e = [], t = 0; t < this.slides.length; t += 1) 1147 e.push(t); 1148 this.removeSlide(e) 1149 } 1150 }, 1151 y = function() { 1152 var i = t.navigator.userAgent, 1153 s = { 1154 ios: !1, 1155 android: !1, 1156 androidChrome: !1, 1157 desktop: !1, 1158 windows: !1, 1159 iphone: !1, 1160 ipod: !1, 1161 ipad: !1, 1162 cordova: t.cordova || t.phonegap, 1163 phonegap: t.cordova || t.phonegap 1164 }, 1165 a = i.match(/(Windows Phone);?[\s\/]+([\d.]+)?/), 1166 r = i.match(/(Android);?[\s\/]+([\d.]+)?/), 1167 n = i.match(/(iPad).*OS\s([\d_]+)/), 1168 o = i.match(/(iPod)(.*OS\s([\d_]+))?/), 1169 l = !n && i.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 1170 if (a && (s.os = "windows", s.osVersion = a[2], s.windows = !0), r && !a && (s.os = "android", s.osVersion = r[2], s.android = !0, s.androidChrome = i.toLowerCase().indexOf("chrome") >= 0), (n || l || o) && (s.os = "ios", s.ios = !0), l && !o && (s.osVersion = l[2].replace(/_/g, "."), s.iphone = !0), n && (s.osVersion = n[2].replace(/_/g, "."), s.ipad = !0), o && (s.osVersion = o[3] ? o[3].replace(/_/g, ".") : null, s.iphone = !0), s.ios && s.osVersion && i.indexOf("Version/") >= 0 && "10" === s.osVersion.split(".")[0] && (s.osVersion = i.toLowerCase().split("version/")[1].split(" ")[0]), s.desktop = !(s.os || s.android || s.webView), s.webView = (l || n || o) && i.match(/.*AppleWeb
1170Kit(?!.*Safari)/i), s.os && "ios" === s.os) { 1171 var d = s.osVersion.split("."), 1172 h = e.querySelector('meta[name="viewport"]'); 1173 s.minimalUi = !s.webView && (o || l) && (1 * d[0] == 7 ? 1 * d[1] >= 1 : 1 * d[0] > 7) && h && h.getAttribute("content").indexOf("minimal-ui") >= 0 1174 } 1175 return s.pixelRatio = t.devicePixelRatio || 1, s 1176 }(), 1177 x = function(i) { 1178 var a = this.touchEventsData, 1179 r = this.params, 1180 n = this.touches; 1181 if (!this.animating || !r.preventIntercationOnTransition) { 1182 var o = i; 1183 if (o.originalEvent && (o = o.originalEvent), a.isTouchEvent = "touchstart" === o.type, (a.isTouchEvent || !("which" in o) || 3 !== o.which) && (!a.isTouched || !a.isMoved)) 1184 if (r.noSwiping && s(o.target).closest(r.noSwipingSelector ? r.noSwipingSelector : "." + r.noSwipingClass)[0]) 1185 this.allowClick = !0; 1186 else if (!r.swipeHandler || s(o).closest(r.swipeHandler)[0]) { 1187 n.currentX = "touchstart" === o.type ? o.targetTouches[0].pageX : o.pageX, n.currentY = "touchstart" === o.type ? o.targetTouches[0].pageY : o.pageY; 1188 var l = n.currentX, 1189 h = n.currentY; 1190 if (!(y.ios && !y.cordova && r.iOSEdgeSwipeDetection && l <= r.iOSEdgeSwipeThreshold && l >= t.screen.width - r.iOSEdgeSwipeThreshold)) { 1191 if (d.extend(a, { 1192 isTouched: !0, 1193 isMoved: !1, 1194 allowTouchCallbacks: !0, 1195 isScrolling: void 0, 1196 startMoving: void 0 1197 }), n.startX = l, n.startY = h, a.touchStartTime = d.now(), this.allowClick = !0, this.updateSize(), this.swipeDirection = void 0, r.threshold > 0 && (a.allowThresholdMove = !1), "touchstart" !== o.type) { 1198 var p = !0; 1199 s(o.target).is(a.formElements) && (p = !1), e.activeElement && s(e.activeElement).is(a.formElements) && e.activeElement !== o.target && e.activeElement.blur(), p && this.allowTouchMove && o.preventDefault() 1200 } 1201 this.emit("touchStart", o) 1202 } 1203 } 1204 } 1205 }, 1206 E = function(t) { 1207 var i = this.touchEventsData, 1208 a = this.params, 1209 r = this.touches, 1210 n = this.rtl, 1211 o = t; 1212 if (o.originalEvent && (o = o.originalEvent), i.isTouched) { 1213 if (!i.isTouchEvent || "mousemove" !== o.type) { 1214 var l = "touchmove" === o.type ? o.targetTouches[0].pageX : o.pageX, 1215 h = "touchmove" === o.type ? o.targetTouches[0].pageY : o.pageY; 1216 if (o.preventedByNestedSwiper) 1217 return r.startX = l, void (r.startY = h); 1218 if (!this.allowTouchMove) 1219 return this.allowClick = !1, void (i.isTouched && (d.extend(r, { 1220 startX: l, 1221 startY: h, 1222 currentX: l, 1223 currentY: h 1224 }), i.touchStartTime = d.now())); 1225 if (i.isTouchEvent && a.touchReleaseOnEdges && !a.loop) 1226 if (this.isVertical()) { 1227 if (h < r.startY && this.translate <= this.maxTranslate() || h > r.startY && this.translate >= this.minTranslate()) 1228 return i.isTouched = !1, void (i.isMoved = !1) 1229 } else if (l < r.startX && this.translate <= this.maxTranslate() || l > r.startX && this.translate >= this.minTranslate()) 1230 return; 1231 if (i.isTouchEvent && e.activeElement && o.target === e.activeElement && s(o.target).is(i.formElements)) 1232 return i.isMoved = !0, void (this.allowClick = !1);
1233 if (i.allowTouchCallbacks && this.emit("touchMove", o), !(o.targetTouches && o.targetTouches.length > 1)) { 1234 r.currentX = l, r.currentY = h; 1235 var p, 1236 c = r.currentX - r.startX, 1237 u = r.currentY - r.startY; 1238 if (void 0 === i.isScrolling) 1239 this.isHorizontal() && r.currentY === r.startY || this.isVertical() && r.currentX === r.startX ? i.isScrolling = !1 : c * c + u * u >= 25 && (p = 180 * Math.atan2(Math.abs(u), Math.abs(c)) / Math.PI, i.isScrolling = this.isHorizontal() ? p > a.touchAngle : 90 - p > a.touchAngle); 1240 if (i.isScrolling && this.emit("touchMoveOpposite", o), "undefined" == typeof startMoving && (r.currentX === r.startX && r.currentY === r.startY || (i.startMoving = !0)), i.isScrolling) 1241 i.isTouched = !1; 1242 else if (i.startMoving) { 1243 this.allowClick = !1, o.preventDefault(), a.touchMoveStopPropagation && !a.nested && o.stopPropagation(), i.isMoved || (a.loop && this.loopFix(), i.startTranslate = this.getTranslate(), this.setTransition(0), this.animating && this.$wrapperEl.trigger("webkitTransitionEnd transitionend"), i.allowMomentumBounce = !1, !a.grabCursor || !0 !== this.allowSlideNext && !0 !== this.allowSlidePrev || this.setGrabCursor(!0), this.emit("sliderFirstMove", o)), this.emit("sliderMove", o), i.isMoved = !0; 1244 var v = this.isHorizontal() ? c : u; 1245 r.diff = v, v *= a.touchRatio, n && (v = -v), this.swipeDirection = v > 0 ? "prev" : "next", i.currentTranslate = v + i.startTranslate; 1246 var f = !0, 1247 m = a.resistanceRatio; 1248 if (a.touchReleaseOnEdges && (m = 0), v > 0 && i.currentTranslate > this.minTranslate() ? (f = !1, a.resistance && (i.currentTranslate = this.minTranslate() - 1 + Math.pow(-this.minTranslate() + i.startTranslate + v, m))) : v < 0 && i.currentTranslate < this.maxTranslate() && (f = !1, a.resistance && (i.currentTranslate = this.maxTranslate() + 1 - Math.pow(this.maxTranslate() - i.startTranslate - v, m))), f && (o.preventedByNestedSwiper = !0), !this.allowSlideNext && "next" === this.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !this.allowSlidePrev && "prev" === this.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), a.threshold > 0) { 1249 if (!(Math.abs(v) > a.threshold || i.allowThresholdMove)) 1250 return void (i.currentTranslate = i.startTranslate); 1251 if (!i.allowThresholdMove) 1252 return i.allowThresholdMove = !0, r.startX = r.currentX, r.startY = r.currentY, i.currentTranslate = i.startTranslate, void (r.diff = this.isHorizontal() ? r.currentX - r.startX : r.currentY - r.startY) 1253 } 1254 a.followFinger && ((a.freeMode || a.watchSlidesProgress || a.watchSlidesVisibility) && (this.updateActiveIndex(), this.updateSlidesClasses()), a.freeMode && (0 === i.velocities.length && i.velocities.push({ 1255 position: r[this.isHorizontal() ? "startX" : "startY"], 1256 time: i.touchStartTime 1257 }), i.velocities.push({ 1258 position: r[this.isHorizontal() ? "currentX" : "currentY"], 1259 time: d.now() 1260 })), this.updateProgress(i.currentTranslate), this.setTranslate(i.currentTranslate)) 1261 } 1262 } 1263 } 1264 } else 1265 i.isMoved && i.isScrolling && this.emit("touchMoveOpposite", o) 1266 }, 1267 T = function(e) { 1268 var t = this, 1269 i = t.touchEventsData, 1270 s = t.params, 1271 a = t.touches, 1272 r = t.rtl, 1273 n = t.$wrapperEl, 1274 o = t.slidesGrid, 1275 l = t.snapGrid, 1276 h = e; 1277 if (h.originalEvent && (h = h.originalEvent), i.allowTouchCallbacks && t.emit("touchEnd", h), i.allowTouchCallbacks = !1, !i.isTouched) 1278 return i.isMoved && s.grabCursor && t.setGrabCursor(!1), void (i.isMoved = !1); 1279 s.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); 1280 var p, 1281 c = d.now(), 1282 u = c - i.touchStartTime; 1283 if (t.allowClick && (t.updateClickedSlide(h), t.emit("tap", h), u < 300 && c - i.lastClickTime > 300 && (i.clickTimeout && clearTimeout(i.clickTimeout), i.clickTimeout = d.nextTick(function() { 1284 t && !t.destroyed && t.emit("click", h) 1285 }, 300)), u < 300 && c - i.lastClickTime < 300 && (i.clickTimeout && clearTimeout(i.clickTimeout), t.emit("doubleTap", h))), i.lastClickTime = d.now(), d.nextTick(function() { 1286 t.destroyed || (t.allowClick = !0) 1287 }), !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === a.diff || i.currentTranslate === i.startTranslate) 1288 return i.isTouched = !1, void (i.isMoved = !1); 1289 if (i.isTouched = !1, i.isMoved = !1, p = s.followFinger ? r ? t.translate : -t.translate : -i.currentTranslate, s.freeMode) { 1290 if (p < -t.minTranslate()) 1291 return void t.slideTo(t.activeIndex); 1292 if (p > -t.maxTranslate()) 1293 return void (t.slides.length < l.length ? t.slideTo(l.length - 1) : t.slideTo(t.slides.length - 1)); 1294 if (s.freeModeMomentum) { 1295 if (i.velocities.length > 1) { 1296 var v = i.velocities.pop(), 1297 f = i.velocities.pop(), 1298 m = v.position - f.position, 1299 g = v.time - f.time; 1300 t.velocity = m / g, t.velocity /= 2, Math.abs(t.velocity) < s.freeModeMinimumVelocity && (t.velocity = 0), (g > 150 || d.now() - v.time > 300) && (t.velocity = 0) 1301 } else 1302 t.velocity = 0; 1303 t.velocity *= s.freeModeMomentumVelocityRatio, i.velocities.length = 0; 1304 var b = 1e3 * s.freeModeMomentumRatio, 1305 w = t.velocity * b, 1306 y = t.translate + w; 1307 r && (y = -y); 1308 var x, 1309 E = !1, 1310 T = 20 * Math.abs(t.velocity) * s.freeModeMomentumBounceRatio; 1311 if (y < t.maxTranslate()) 1312 s.freeModeMomentumBounce ? (y + t.maxTranslate() < -T && (y = t.maxTranslate() - T), x = t.maxTranslate(), E = !0, i.allowMomentumBounce = !0) : y = t.maxTranslate(); 1313 else if (y > t.minTranslate()) 1314 s.freeModeMomentumBounce ? (y - t.minTranslate() > T && (y = t.minTranslate() + T), x = t.minTranslate(), E = !0, i.allowMomentumBounce = !0) : y = t.minTranslate(); 1315 else if (s.freeModeSticky) { 1316 for (var S, C = 0; C < l.length; C += 1) 1317 if (l[C] > -y) { 1318 S = C; 1319 break 1320 } 1321 y = -(y = Math.abs(l[S] - y) < Math.abs(l[S - 1] - y) || "next" === t.swipeDirection ? l[S] : l[S - 1]) 1322 } 1323 if (0 !== t.velocity) 1324 b = r ? Math.abs((-y - t.translate) / t.velocity) : Math.abs((y - t.translate) / t.velocity); 1325 else if (s.freeModeSticky) 1326 return void t.slideReset(); 1327 s.freeModeMomentumBounce && E ? (t.updateProgress(x), t.setTransition(b), t.setTranslate(y), t.transitionStart(!0, t.swipeDirection), t.animating = !0, n.transitionEnd(function() { 1328 t && !t.destroyed && i.allowMomentumBounce && (t.emit("momentumBounce"), t.setTransition(s.speed), t.setTranslate(x), n.transitionEnd(function() { 1329 t && !t.destroyed && t.transitionEnd() 1330 })) 1331 })) : t.velocity ? (t.updateProgress(y), t.setTransition(b), t.setTranslate(y), t.transitionStart(!0, t.swipeDirection), t.animating || (t.animating = !0, n.transitionEnd(function() { 1332 t && !t.destroyed && t.transitionEnd() 1333 }))) : t.updateProgress(y), t.updateActiveIndex(), t.updateSlidesClasses() 1334 } 1335 (!s.freeModeMomentum || u >= s.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()) 1336 } else { 1337 for (var M = 0, z = t.slidesSizesGrid[0], P = 0; P < o.length; P += s.slidesPerGroup) 1338 void 0 !== o[P + s.slidesPerGroup] ? p >= o[P] && p < o[P + s.slidesPerGroup] && (M = P, z = o[P + s.slidesPerGroup] - o[P]) : p >= o[P] && (M = P, z = o[o.length - 1] - o[o.length - 2]); 1339 var k = (p - o[M]) / z; 1340 if (u > s.longSwipesMs) { 1341 if (!s.longSwipes) 1342 return void t.slideTo(t.activeIndex); 1343 "next" === t.swipeDirection && (k >= s.longSwipesRatio ? t.slideTo(M + s.slidesPerGroup) : t.slideTo(M)), "prev" === t.swipeDirection && (k > 1 - s.longSwipesRatio ? t.slideTo(M + s.slidesPerGroup) : t.slideTo(M)) 1344 } else { 1345 if (!s.shortSwipes) 1346 return void t.slideTo(t.activeIndex); 1347 "next" === t.swipeDirection && t.slideTo(M + s.slidesPerGroup), "prev" === t.swipeDirection && t.slideTo(M) 1348 } 1349 } 1350 }, 1351 S = function() { 1352 var e = this.params, 1353 t = this.el; 1354 if (!t || 0 !== t.offsetWidth) { 1355 e.breakpoints && this.setBreakpoint(); 1356 var i = this.allowSlideNext, 1357 s = this.allowSlidePrev; 1358 if (this.allowSlideNext = !0, this.allowSlidePrev = !0, this.updateSize(), this.updateSlides(), e.freeMode) { 1359 var a = Math.min(Math.max(this.translate, this.maxTranslate()), this.minTranslate()); 1360 this.setTranslate(a), this.updateActiveIndex(), this.updateSlidesClasses(), e.autoHeight && this.updateAutoHeight() 1361 } else 1362 this.updateSlidesClasses(), ("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); 1363 this.allowSlidePrev = s, this.allowSlideNext = i 1364 } 1365 }, 1366 C = function(e) { 1367 this.allowClick || (this.params.preventClicks && e.preventDefault(), this.params.preventClicksPropagation && this.animating && (e.stopPropagation(), e.stopImmediatePropagation())) 1368 }; 1369 var M = { 1370 attachEvents: function() { 1371 var t = this.params, 1372 i = this.touchEvents, 1373 s = this.el, 1374 a = this.wrapperEl; 1375 this.onTouchStart = x.bind(this), this.onTouchMove = E.bind(this), this.onTouchEnd = T.bind(this), this.onClick = C.bind(this); 1376 var r = "container" === t.touchEventsTarget ? s : a, 1377 n = !!t.nested; 1378 if (h.touch || !h.pointerEvents && !h.prefixedPointerEvents) { 1379 if (h.touch) { 1380 var o = !("touchstart" !== i.start || !h.passiveListener || !t.passiveListeners) && { 1381 passive: !0, 1382 capture: !1 1383 }; 1384 r.addEventListener(i.start, this.onTouchStart, o), r.addEventListener(i.move, this.onTouchMove, h.passiveListener ? { 1385 passive: !1, 1386 capture: n 1387 } : n), r.addEventListener(i.end, this.onTouchEnd, o) 1388 } 1389 (t.simulateTouch && !y.ios && !y.android || t.simulateTouch && !h.touch && y.ios) && (r.addEventListener("mousedown", this.onTouchStart, !1), e.addEventListener("mousemove", this.onTouchMove, n), e.addEventListener("mouseup", this.onTouchEnd, !1)) 1390 } else 1391 r.addEventListener(i.start, this.onTouchStart, !1), e.addEventListener(i.move, this.onTouchMove, n), e.addEventListener(i.end, this.onTouchEnd, !1); 1392 (t.preventClicks || t.preventClicksPropagation) && r.addEventListener("click", this.onClick, !0), this.on("resize observerUpdate", S) 1393 }, 1394 detachEvents: function() { 1395 var t = this.params, 1396 i = this.touchEvents, 1397 s = this.el, 1398 a = this.wrapperEl, 1399 r = "container" === t.touchEventsTarget ? s : a, 1400 n = !!t.nested; 1401 if (h.touch || !h.pointerEvents && !h.prefixedPointerEvents) { 1402 if (h.touch) { 1403 var o = !("onTouchStart" !== i.start || !h.passiveListener || !t.passiveListeners) && { 1404 passive: !0, 1405 capture: !1 1406 }; 1407 r.removeEventListener(i.start, this.onTouchStart, o), r.removeEventListener(i.move, this.onTouchMove, n), r.removeEventListener(i.end, this.onTouchEnd, o) 1408 } 1409 (t.simulateTouch && !y.ios && !y.android || t.simulateTouch && !h.touch && y.ios) && (r.removeEventListener("mousedown", this.onTouchStart, !1), e.removeEventListener("mousemove", this.onTouchMove, n), e.removeEventListener("mouseup", this.onTouchEnd, !1)) 1410 } else 1411 r.removeEventListener(i.start, this.onTouchStart, !1), e.removeEventListener(i.move, this.onTouchMove, n), e.removeEventListener(i.end, this.onTouchEnd, !1); 1412 (t.preventClicks || t.preventClicksPropagation) && r.removeEventListener("click", this.onClick, !0), this.off("resize observerUpdate", S) 1413 } 1414 }, 1415 z = { 1416 setBreakpoint: function() { 1417 var e = this.activeIndex, 1418 t = this.loopedSlides; 1419 void 0 === t && (t = 0); 1420 var i = this.params, 1421 s = i.breakpoints; 1422 if (s && (!s || 0 !== Object.keys(s).length)) {
1423 var a = this.getBreakpoint(s); 1424 if (a && this.currentBreakpoint !== a) { 1425 var r = a in s ? s[a] : this.originalParams, 1426 n = i.loop && r.slidesPerView !== i.slidesPerView; 1427 d.extend(this.params, r), d.extend(this, { 1428 allowTouchMove: this.params.allowTouchMove, 1429 allowSlideNext: this.params.allowSlideNext, 1430 allowSlidePrev: this.params.allowSlidePrev 1431 }), this.currentBreakpoint = a, n && (this.loopDestroy(), this.loopCreate(), this.updateSlides(), this.slideTo(e - t + this.loopedSlides, 0, !1)), this.emit("breakpoint", r) 1432 } 1433 } 1434 }, 1435 getBreakpoint: function(e) { 1436 if (e) { 1437 var i = !1, 1438 s = []; 1439 Object.keys(e).forEach(function(e) { 1440 s.push(e) 1441 }), s.sort(function(e, t) { 1442 return parseInt(e, 10) - parseInt(t, 10) 1443 }); 1444 for (var a = 0; a < s.length; a += 1) { 1445 var r = s[a]; 1446 r >= t.innerWidth && !i && (i = r) 1447 } 1448 return i || "max" 1449 } 1450 } 1451 }, 1452 P = function() { 1453 return { 1454 isIE: !!t.navigator.userAgent.match(/Trident/g) || !!t.navigator.userAgent.match(/MSIE/g), 1455 isSafari: (e = t.navigator.userAgent.toLowerCase(), e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0), 1456 isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent) 1457 }; 1458 var e 1459 }(); 1460 var k = { 1461 init: !0, 1462 direction: "horizontal", 1463 touchEventsTarget: "container", 1464 initialSlide: 0, 1465 speed: 300, 1466 preventIntercationOnTransition: !1, 1467 iOSEdgeSwipeDetection: !1, 1468 iOSEdgeSwipeThreshold: 20, 1469 freeMode: !1, 1470 freeModeMomentum: !0, 1471 freeModeMomentumRatio: 1, 1472 freeModeMomentumBounce: !0, 1473 freeModeMomentumBounceRatio: 1, 1474 freeModeMomentumVelocityRatio: 1, 1475 freeModeSticky: !1, 1476 freeModeMinimumVelocity: .02, 1477 autoHeight: !1, 1478 setWrapperSize: !1, 1479 virtualTranslate: !1, 1480 effect: "slide", 1481 breakpoints: void 0, 1482 spaceBetween: 0, 1483 slidesPerView: 1, 1484 slidesPerColumn: 1, 1485 slidesPerColumnFill: "column", 1486 slidesPerGroup: 1, 1487 centeredSlides: !1, 1488 slidesOffsetBefore: 0, 1489 slidesOffsetAfter: 0, 1490 normalizeSlideIndex: !0, 1491 watchOverflow: !1, 1492 roundLengths: !1, 1493 touchRatio: 1, 1494 touchAngle: 45, 1495 simulateTouch: !0, 1496 shortSwipes: !0, 1497 longSwipes: !0, 1498 longSwipesRatio: .5, 1499 longSwipesMs: 300, 1500 followFinger: !0, 1501 allowTouchMove: !0, 1502 threshold: 0, 1503 touchMoveStopPropagation: !0, 1504 touchReleaseOnEdges: !1, 1505 uniqueNavElements: !0, 1506 resistance: !0, 1507 resistanceRatio: .85, 1508 watchSlidesProgress: !1, 1509 watchSlidesVisibility: !1, 1510 grabCursor: !1, 1511 preventClicks: !0, 1512 preventClicksPropagation: !0, 1513 slideToClickedSlide: !1, 1514 preloadImages: !0, 1515 updateOnImagesReady: !0, 1516 loop: !1, 1517 loopAdditionalSlides: 0, 1518 loopedSlides: null, 1519 loopFillGroupWithBlank: !1, 1520 allowSlidePrev: !0, 1521 allowSlideNext: !0, 1522 swipeHandler: null, 1523 noSwiping: !0, 1524 noSwipingClass: "swiper-no-swiping", 1525 noSwipingSelector: null, 1526 passiveListeners: !0, 1527 containerModifierClass: "swiper-container-", 1528 slideClass: "swiper-slide", 1529 slideBlankClass: "swiper-slide-invisible-blank", 1530 slideActiveClass: "swiper-slide-active", 1531 slideDuplicateActiveClass: "swiper-slide-duplicate-active", 1532 slideVisibleClass: "swiper-slide-visible", 1533 slideDuplicateClass: "swiper-slide-duplicate", 1534 slideNextClass: "swiper-slide-next", 1535 slideDuplicateNextClass: "swiper-slide-duplicate-next", 1536 slidePrevClass: "swiper-slide-prev", 1537 slideDuplicatePrevClass: "swiper-slide-duplicate-prev", 1538 wrapperClass: "swiper-wrapper", 1539 runCallbacksOnInit: !0 1540 }, 1541 $ = { 1542 update: u, 1543 translate: v, 1544 transition: f, 1545 slide: m, 1546 loop: g, 1547 grabCursor: b, 1548 manipulation: w, 1549 events: M, 1550 breakpoints: z, 1551 checkOverflow: { 1552 checkOverflow: function() { 1553 var e = this.isLocked;
vendor: 7,906 bytes, lines 1554-1705
1554 this.isLocked = 1 === this.snapGrid.length, this.allowTouchMove = !this.isLocked, e && e !== this.isLocked && (this.isEnd = !1, this.navigation.update()) 1555 } 1556 }, 1557 classes: { 1558 addClasses: function() { 1559 var e = this.classNames, 1560 t = this.params, 1561 i = this.rtl, 1562 s = this.$el, 1563 a = []; 1564 a.push(t.direction), t.freeMode && a.push("free-mode"), h.flexbox || a.push("no-flexbox"), t.autoHeight && a.push("autoheight"), i && a.push("rtl"), t.slidesPerColumn > 1 && a.push("multirow"), y.android && a.push("android"), y.ios && a.push("ios"), P.isIE && (h.pointerEvents || h.prefixedPointerEvents) && a.push("wp8-" + t.direction), a.forEach(function(i) { 1565 e.push(t.containerModifierClass + i) 1566 }), s.addClass(e.join(" ")) 1567 }, 1568 removeClasses: function() { 1569 var e = this.$el, 1570 t = this.classNames; 1571 e.removeClass(t.join(" ")) 1572 } 1573 }, 1574 images: { 1575 loadImage: function(e, i, s, a, r, n) { 1576 var o; 1577 function l() { 1578 n && n() 1579 } 1580 e.complete && r ? l() : i ? ((o = new t.Image).onload = l, o.onerror = l, a && (o.sizes = a), s && (o.srcset = s), i && (o.src = i)) : l() 1581 }, 1582 preloadImages: function() { 1583 var e = this; 1584 function t() { 1585 void 0 !== e && null !== e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(), e.emit("imagesReady"))) 1586 } 1587 e.imagesToLoad = e.$el.find("img"); 1588 for (var i = 0; i < e.imagesToLoad.length; i += 1) { 1589 var s = e.imagesToLoad[i]; 1590 e.loadImage(s, s.currentSrc || s.getAttribute("src"), s.srcset || s.getAttribute("srcset"), s.sizes || s.getAttribute("sizes"), !0, t) 1591 } 1592 } 1593 } 1594 }, 1595 L = {}, 1596 I = function(e) { 1597 function t() { 1598 for (var i, a, r, n = [], o = arguments.length; o--;) 1599 n[o] = arguments[o]; 1600 1 === n.length && n[0].constructor && n[0].constructor === Object ? a = n[0] : (i = (r = n)[0], a = r[1]); 1601 a || (a = {}), a = d.extend({}, a), i && !a.el && (a.el = i), e.call(this, a), Object.keys($).forEach(function(e) { 1602 Object.keys($[e]).forEach(function(i) { 1603 t.prototype[i] || (t.prototype[i] = $[e][i]) 1604 }) 1605 }); 1606 var l = this; 1607 void 0 === l.modules && (l.modules = {}), Object.keys(l.modules).forEach(function(e) { 1608 var t = l.modules[e]; 1609 if (t.params) { 1610 var i = Object.keys(t.params)[0], 1611 s = t.params[i]; 1612 if ("object" != typeof s) 1613 return; 1614 if (!(i in a && "enabled" in s)) 1615 return; 1616 !0 === a[i] && (a[i] = { 1617 enabled: !0 1618 }), "object" != typeof a[i] || "enabled" in a[i] || (a[i].enabled = !0), a[i] || (a[i] = { 1619 enabled: !1 1620 }) 1621 } 1622 }); 1623 var p = d.extend({}, k); 1624 l.useModulesParams(p), l.params = d.extend({}, p, L, a), l.originalParams = d.extend({}, l.params), l.passedParams = d.extend({}, a), l.$ = s; 1625 var c = s(l.params.el); 1626 if (i = c[0]) { 1627 if (c.length > 1) { 1628 var u = []; 1629 return c.each(function(e, i) { 1630 var s = d.extend({}, a, { 1631 el: i 1632 }); 1633 u.push(new t(s)) 1634 }), u 1635 } 1636 i.swiper = l, c.data("swiper", l); 1637 var v, 1638 f, 1639 m = c.children("." + l.params.wrapperClass); 1640 return d.extend(l, { 1641 $el: c, 1642 el: i, 1643 $wrapperEl: m, 1644 wrapperEl: m[0], 1645 classNames: [], 1646 slides: s(), 1647 slidesGrid: [], 1648 snapGrid: [], 1649 slidesSizesGrid: [], 1650 isHorizontal: function() { 1651 return "horizontal" === l.params.direction 1652 }, 1653 isVertical: function() { 1654 return "vertical" === l.params.direction 1655 }, 1656 rtl: "horizontal" === l.params.direction && ("rtl" === i.dir.toLowerCase() || "rtl" === c.css("direction")), 1657 wrongRTL: "-webkit-box" === m.css("display"), 1658 activeIndex: 0, 1659 realIndex: 0, 1660 isBeginning: !0, 1661 isEnd: !1, 1662 translate: 0, 1663 progress: 0, 1664 velocity: 0, 1665 animating: !1, 1666 allowSlideNext: l.params.allowSlideNext, 1667 allowSlidePrev: l.params.allowSlidePrev, 1668 touchEvents: (v = ["touchstart", "touchmove", "touchend"], f = ["mousedown", "mousemove", "mouseup"], h.pointerEvents ? f = ["pointerdown", "pointermove", "pointerup"] : h.prefixedPointerEvents && (f = ["MSPointerDown", "MSPointerMove", "MSPointerUp"]), l.touchEventsTouch = { 1669 start: v[0], 1670 move: v[1], 1671 end: v[2] 1672 }, l.touchEventsDesktop = { 1673 start: f[0], 1674 move: f[1], 1675 end: f[2] 1676 }, h.touch || !l.params.simulateTouch ? l.touchEventsTouch : l.touchEventsDesktop), 1677 touchEventsData: { 1678 isTouched: void 0, 1679 isMoved: void 0, 1680 allowTouchCallbacks: void 0, 1681 touchStartTime: void 0, 1682 isScrolling: void 0, 1683 currentTranslate: void 0, 1684 startTranslate: void 0, 1685 allowThresholdMove: void 0, 1686 formElements: "input, select, option, textarea, button, video", 1687 lastClickTime: d.now(), 1688 clickTimeout: void 0, 1689 velocities: [], 1690 allowMomentumBounce: void 0, 1691 isTouchEvent: void 0, 1692 startMoving: void 0 1693 }, 1694 allowClick: !0, 1695 allowTouchMove: l.params.allowTouchMove, 1696 touches: { 1697 startX: 0, 1698 startY: 0, 1699 currentX: 0, 1700 currentY: 0, 1701 diff: 0 1702 }, 1703 imagesToLoad: [], 1704 imagesLoaded: 0 1705 }
vendor: 2,205 bytes, lines 1705-1747
1705), l.useModules(), l.params.init && l.init(), l 1706 } 1707 } 1708 e && (t.__proto__ = e), t.prototype = Object.create(e && e.prototype), t.prototype.constructor = t; 1709 var i = { 1710 extendedDefaults: { 1711 configurable: !0 1712 }, 1713 defaults: { 1714 configurable: !0 1715 }, 1716 Class: { 1717 configurable: !0 1718 }, 1719 $: { 1720 configurable: !0 1721 } 1722 }; 1723 return t.prototype.slidesPerViewDynamic = function() { 1724 var e = this.params, 1725 t = this.slides, 1726 i = this.slidesGrid, 1727 s = this.size, 1728 a = this.activeIndex, 1729 r = 1; 1730 if (e.centeredSlides) { 1731 for (var n, o = t[a].swiperSlideSize, l = a + 1; l < t.length; l += 1) 1732 t[l] && !n && (r += 1, (o += t[l].swiperSlideSize) > s && (n = !0)); 1733 for (var d = a - 1; d >= 0; d -= 1) 1734 t[d] && !n && (r += 1, (o += t[d].swiperSlideSize) > s && (n = !0)) 1735 } else 1736 for (var h = a + 1; h < t.length; h += 1) 1737 i[h] - i[a] < s && (r += 1); 1738 return r 1739 }, t.prototype.update = function() { 1740 var e = this; 1741 e && !e.destroyed && (e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), e.params.freeMode ? (t(), 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)) || t(), e.emit("update")); 1742 function t() { 1743 var t = e.rtl ? -1 * e.translate : e.translate, 1744 i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); 1745 e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses() 1746 } 1747 }, t.prototype.init = function() {
1748 this.initialized || (this.emit("beforeInit"), this.params.breakpoints && this.setBreakpoint(), this.addClasses(), this.params.loop && this.loopCreate(), this.updateSize(), this.updateSlides(), this.params.watchOverflow && this.checkOverflow(), this.params.grabCursor && this.setGrabCursor(), this.params.preloadImages && this.preloadImages(), this.params.loop ? this.slideTo(this.params.initialSlide + this.loopedSlides, 0, this.params.runCallbacksOnInit) : this.slideTo(this.params.initialSlide, 0, this.params.runCallbacksOnInit), this.attachEvents(), this.initialized = !0, this.emit("init")) 1749 }, t.prototype.destroy = function(e, t) { 1750 void 0 === e && (e = !0), void 0 === t && (t = !0); 1751 var i = this, 1752 s = i.params, 1753 a = i.$el, 1754 r = i.$wrapperEl, 1755 n = i.slides; 1756 i.emit("beforeDestroy"), i.initialized = !1, i.detachEvents(), s.loop && i.loopDestroy(), t && (i.removeClasses(), a.removeAttr("style"), r.removeAttr("style"), n && n.length && n.removeClass([s.slideVisibleClass, s.slideActiveClass, s.slideNextClass, s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr("data-swiper-column").removeAttr("data-swiper-row")), i.emit("destroy"), Object.keys(i.eventsListeners).forEach(function(e) { 1757 i.off(e) 1758 }), !1 !== e && (i.$el[0].swiper = null, i.$el.data("swiper", null), d.deleteProps(i)), i.destroyed = !0 1759 }, t.extendDefaults = function(e) { 1760 d.extend(L, e) 1761 }, i.extendedDefaults.get = function() { 1762 return L 1763 }, i.defaults.get = function() { 1764 return k 1765 }, i.Class.get = function() { 1766 return e 1767 }, i.$.get = function() { 1768 return s 1769 }, Object.defineProperties(t, i), t 1770 }(p), 1771 D = { 1772 name: "device", 1773 proto: { 1774 device: y 1775 }, 1776 static: { 1777 device: y 1778 } 1779 }, 1780 O = { 1781 name: "support", 1782 proto: { 1783 support: h 1784 }, 1785 static: { 1786 support: h 1787 } 1788 }, 1789 A = { 1790 name: "browser", 1791 proto: { 1792 browser: P 1793 }, 1794 static: { 1795 browser: P 1796 } 1797 }, 1798 H = { 1799 name: "resize", 1800 create: function() { 1801 var e = this; 1802 d.extend(e, { 1803 resize: { 1804 resizeHandler: function() { 1805 e && !e.destroyed && e.initialized && (e.emit("beforeResize"), e.emit("resize")) 1806 }, 1807 orientationChangeHandler: function() { 1808 e && !e.destroyed && e.initialized && e.emit("orientationchange") 1809 } 1810 } 1811 }) 1812 }, 1813 on: { 1814 init: function() { 1815 t.addEventListener("resize", this.resize.resizeHandler), t.addEventListener("orientationchange", this.resize.orientationChangeHandler) 1816 }, 1817 destroy: function() { 1818 t.removeEventListener("resize", this.resize.resizeHandler), t.removeEventListener("orientationchange", this.resize.orientationChangeHandler) 1819 } 1820 } 1821 }, 1822 N = { 1823 func: t.MutationObserver || t.WebkitMutationObserver, 1824 attach: function(e, t) { 1825 void 0 === t && (t = {}); 1826 var i = this, 1827 s = new (0, N.func)(function(e) { 1828 e.forEach(function(e) { 1829 i.emit("observerUpdate", e) 1830 }) 1831 }); 1832 s.observe(e, { 1833 attributes: void 0 === t.attributes || t.attributes, 1834 childList: void 0 === t.childList || t.childList, 1835 characterData: void 0 === t.characterData || t.characterData 1836 }), i.observer.observers.push(s) 1837 }, 1838 init: function() { 1839 if (h.observer && this.params.observer) { 1840 if (this.params.observeParents) 1841 for (var e = this.$el.parents(), t = 0; t < e.length; t += 1) 1842 this.observer.attach(e[t]); 1843 this.observer.attach(this.$el[0], { 1844 childList: !1 1845 }), this.observer.attach(this.$wrapperEl[0], { 1846 attributes: !1 1847 }) 1848 } 1849 }, 1850 destroy: function() {
vendor: 3,617 bytes, lines 1851-1938
1851 this.observer.observers.forEach(function(e) { 1852 e.disconnect() 1853 }), this.observer.observers = [] 1854 } 1855 }, 1856 X = { 1857 name: "observer", 1858 params: { 1859 observer: !1, 1860 observeParents: !1 1861 }, 1862 create: function() { 1863 d.extend(this, { 1864 observer: { 1865 init: N.init.bind(this), 1866 attach: N.attach.bind(this), 1867 destroy: N.destroy.bind(this), 1868 observers: [] 1869 } 1870 }) 1871 }, 1872 on: { 1873 init: function() { 1874 this.observer.init() 1875 }, 1876 destroy: function() { 1877 this.observer.destroy() 1878 } 1879 } 1880 }, 1881 Y = { 1882 update: function(e) { 1883 var t = this, 1884 i = t.params, 1885 s = i.slidesPerView, 1886 a = i.slidesPerGroup, 1887 r = i.centeredSlides, 1888 n = t.virtual, 1889 o = n.from, 1890 l = n.to, 1891 h = n.slides, 1892 p = n.slidesGrid, 1893 c = n.renderSlide, 1894 u = n.offset; 1895 t.updateActiveIndex(); 1896 var v, 1897 f, 1898 m, 1899 g = t.activeIndex || 0; 1900 v = t.rtl && t.isHorizontal() ? "right" : t.isHorizontal() ? "left" : "top", r ? (f = Math.floor(s / 2) + a, m = Math.floor(s / 2) + a) : (f = s + (a - 1), m = a); 1901 var b = Math.max((g || 0) - m, 0), 1902 w = Math.min((g || 0) + f, h.length - 1), 1903 y = (t.slidesGrid[b] || 0) - (t.slidesGrid[0] || 0); 1904 function x() { 1905 t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy.enabled && t.lazy.load() 1906 } 1907 if (d.extend(t.virtual, { 1908 from: b, 1909 to: w, 1910 offset: y, 1911 slidesGrid: t.slidesGrid 1912 }), o === b && l === w && !e) 1913 return t.slidesGrid !== p && y !== u && t.slides.css(v, y + "px"), void t.updateProgress(); 1914 if (t.params.virtual.renderExternal) 1915 return t.params.virtual.renderExternal.call(t, { 1916 offset: y, 1917 from: b, 1918 to: w, 1919 slides: function() { 1920 for (var e = [], t = b; t <= w; t += 1) 1921 e.push(h[t]); 1922 return e 1923 }() 1924 }), void x(); 1925 var E = [], 1926 T = []; 1927 if (e) 1928 t.$wrapperEl.find("." + t.params.slideClass).remove(); 1929 else 1930 for (var S = o; S <= l; S += 1) 1931 (S < b || S > w) && t.$wrapperEl.find("." + t.params.slideClass + '[data-swiper-slide-index="' + S + '"]').remove(); 1932 for (var C = 0; C < h.length; C += 1) 1933 C >= b && C <= w && (void 0 === l || e ? T.push(C) : (C > l && T.push(C), C < o && E.push(C))); 1934 T.forEach(function(e) { 1935 t.$wrapperEl.append(c(h[e], e)) 1936 }), E.sort(function(e, t) { 1937 return e < t 1938 }
1938).forEach(function(e) { 1939 t.$wrapperEl.prepend(c(h[e], e)) 1940 }), t.$wrapperEl.children(".swiper-slide").css(v, y + "px"), x() 1941 }, 1942 renderSlide: function(e, t) { 1943 var i = this.params.virtual; 1944 if (i.cache && this.virtual.cache[t]) 1945 return this.virtual.cache[t]; 1946 var a = i.renderSlide ? s(i.renderSlide.call(this, e, t)) : s('<div class="' + this.params.slideClass + '" data-swiper-slide-index="' + t + '">' + e + "</div>"); 1947 return a.attr("data-swiper-slide-index") || a.attr("data-swiper-slide-index", t), i.cache && (this.virtual.cache[t] = a), a 1948 }, 1949 appendSlide: function(e) { 1950 this.virtual.slides.push(e), this.virtual.update(!0) 1951 }, 1952 prependSlide: function(e) { 1953 if (this.virtual.slides.unshift(e), this.params.virtual.cache) { 1954 var t = this.virtual.cache, 1955 i = {}; 1956 Object.keys(t).forEach(function(e) { 1957 i[e + 1] = t[e] 1958 }), this.virtual.cache = i 1959 } 1960 this.virtual.update(!0), this.slideNext(0) 1961 } 1962 }, 1963 B = { 1964 name: "virtual", 1965 params: { 1966 virtual: { 1967 enabled: !1, 1968 slides: [], 1969 cache: !0, 1970 renderSlide: null, 1971 renderExternal: null 1972 } 1973 }, 1974 create: function() { 1975 d.extend(this, { 1976 virtual: { 1977 update: Y.update.bind(this), 1978 appendSlide: Y.appendSlide.bind(this), 1979 prependSlide: Y.prependSlide.bind(this), 1980 renderSlide: Y.renderSlide.bind(this), 1981 slides: this.params.virtual.slides, 1982 cache: {} 1983 } 1984 }) 1985 }, 1986 on: { 1987 beforeInit: function() { 1988 if (this.params.virtual.enabled) { 1989 this.classNames.push(this.params.containerModifierClass + "virtual"); 1990 var e = { 1991 watchSlidesProgress: !0 1992 }; 1993 d.extend(this.params, e), d.extend(this.originalParams, e), this.virtual.update(
1993) 1994 } 1995 }, 1996 setTranslate: function() { 1997 this.params.virtual.enabled && this.virtual.update() 1998 } 1999 } 2000 }, 2001 G = { 2002 handle: function(i) { 2003 var s = i; 2004 s.originalEvent && (s = s.originalEvent); 2005 var a = s.keyCode || s.charCode; 2006 if (!this.allowSlideNext && (this.isHorizontal() && 39 === a || this.isVertical() && 40 === a)) 2007 return !1; 2008 if (!this.allowSlidePrev && (this.isHorizontal() && 37 === a || this.isVertical() && 38 === a)) 2009 return !1; 2010 if (!(s.shiftKey || s.altKey || s.ctrlKey || s.metaKey || e.activeElement && e.activeElement.nodeName && ("input" === e.activeElement.nodeName.toLowerCase() || "textarea" === e.activeElement.nodeName.toLowerCase()))) { 2011 if (this.params.keyboard.onlyInViewport && (37 === a || 39 === a || 38 === a || 40 === a)) { 2012 var r = !1; 2013 if (this.$el.parents("." + this.params.slideClass).length > 0 && 0 === this.$el.parents("." + this.params.slideActiveClass).length) 2014 return; 2015 var n = t.innerWidth, 2016 o = t.innerHeight, 2017 l = this.$el.offset(); 2018 this.rtl && (l.left -= this.$el[0].scrollLeft); 2019 for (var d = [[l.left, l.top], [l.left + this.width, l.top], [l.left, l.top + this.height], [l.left + this.width, l.top + this.height]], h = 0; h < d.length; h += 1) { 2020 var p = d[h]; 2021 p[0] >= 0 && p[0] <= n && p[1] >= 0 && p[1] <= o && (r = !0) 2022 } 2023 if (!r) 2024 return 2025 } 2026 this.isHorizontal() ? (37 !== a && 39 !== a || (s.preventDefault ? s.preventDefault() : s.returnValue = !1), (39 === a && !this.rtl || 37 === a && this.rtl) && this.slideNext(), (37 === a && !this.rtl || 39 === a && this.rtl) && this.slidePrev()) : (38 !== a && 40 !== a || (s.preventDefault ? s.preventDefault() : s.returnValue = !1), 40 === a && this.slideNext(), 38 === a && this.slidePrev()), this.emit("keyPress", a) 2027 } 2028 }, 2029 enable: function() { 2030 this.keyboard.enabled || (s(e).on("keydown", this.keyboard.handle), this.keyboard.enabled = !0) 2031 }, 2032 disable: function() { 2033 this.keyboard.enabled && (s(e).off("keydown", this.keyboard.handle), this.keyboard.enabled = !1) 2034 } 2035 }, 2036 V = { 2037 name: "keyboard", 2038 params: { 2039 keyboard: { 2040 enabled: !1, 2041 onlyInViewport: !0 2042 } 2043 }, 2044 create: function() { 2045 d.extend(this, { 2046 keyboard: { 2047 enabled: !1, 2048 enable: G.enable.bind(this), 2049 disable: G.disable.bind(this), 2050 handle: G.handle.bind(this) 2051 } 2052 }) 2053 }, 2054 on: { 2055 init: function() { 2056 this.params.keyboard.enabled && this.keyboard.enable() 2057 }, 2058 destroy: function() { 2059 this.keyboard.enabled && this.keyboard.disable() 2060 } 2061 } 2062 }; 2063 var R = { 2064 lastScrollTime: d.now(), 2065 event: t.navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : function() { 2066 var t = "onwheel" in e; 2067 if (!t) { 2068 var i = e.createElement("div"); 2069 i.setAttribute("onwheel", "return;"), t = "function" == typeof i.onwheel 2070 } 2071 return !t && e.implementation && e.implementation.hasFeature && !0 !== e.implementation.hasFeature("", "") && (t = e.implementation.hasFeature("Events.wheel", "3.0")), t 2072 }() ? "wheel" : "mousewheel", 2073 normalize: function(e) { 2074 var t = 0, 2075 i = 0, 2076 s = 0, 2077 a = 0; 2078 return "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = i, i = 0), s = 10 * t, a = 10 * i, "deltaY" in e && (a = e.deltaY), "deltaX" in e && (s = e.deltaX), (s || a) && e.deltaMode && (1 === e.deltaMode ? (s *= 40, a *= 40) : (s *= 800, a *= 800)), s && !t && (t = s < 1 ? -1 : 1), a && !i && (i = a < 1 ? -1 : 1), { 2079 spinX: t, 2080 spinY: i, 2081 pixelX: s, 2082 pixelY: a 2083 } 2084 }, 2085 handle: function(e) { 2086 var i = e, 2087 s = this, 2088 a = s.params.mousewheel; 2089 i.originalEvent && (i = i.originalEvent); 2090 var r = 0, 2091 n = s.rtl ? -1 : 1, 2092 o = R.normalize(i); 2093 if (a.forceToAxis) 2094 if (s.isHorizontal()) { 2095 if (!(Math.abs(o.pixelX) > Math.abs(o.pixelY))) 2096 return !0; 2097 r = o.pixelX * n 2098 } else { 2099 if (!(Math.abs(o.pixelY) > Math.abs(o.pixelX))) 2100 return !0; 2101 r = o.pixelY
2102 } 2103 else 2104 r = Math.abs(o.pixelX) > Math.abs(o.pixelY) ? -o.pixelX * n : -o.pixelY; 2105 if (0 === r) 2106 return !0; 2107 if (a.invert && (r = -r), s.params.freeMode) { 2108 var l = s.getTranslate() + r * a.sensitivity, 2109 h = s.isBeginning, 2110 p = s.isEnd; 2111 if (l >= s.minTranslate() && (l = s.minTranslate()), l <= s.maxTranslate() && (l = s.maxTranslate()), s.setTransition(0), s.setTranslate(l), s.updateProgress(), s.updateActiveIndex(), s.updateSlidesClasses(), (!h && s.isBeginning || !p && s.isEnd) && s.updateSlidesClasses(), s.params.freeModeSticky && (clearTimeout(s.mousewheel.timeout), s.mousewheel.timeout = d.nextTick(function() { 2112 s.slideReset() 2113 }, 300)), s.emit("scroll", i), s.params.autoplay && s.params.autoplayDisableOnInteraction && s.stopAutoplay(), l === s.minTranslate() || l === s.maxTranslate()) 2114 return !0 2115 } else { 2116 if (d.now() - s.mousewheel.lastScrollTime > 60) 2117 if (r < 0) 2118 if (s.isEnd && !s.params.loop || s.animating) { 2119 if (a.releaseOnEdges) 2120 return !0 2121 } else 2122 s.slideNext(), s.emit("scroll", i); 2123 else if (s.isBeginning && !s.params.loop || s.animating) { 2124 if (a.releaseOnEdges) 2125 return !0 2126 } else 2127 s.slidePrev(), s.emit("scroll", i); 2128 s.mousewheel.lastScrollTime = (new t.Date).getTime() 2129 } 2130 return i.preventDefault ? i.preventDefault() : i.returnValue = !1, !1 2131 }, 2132 enable: function() { 2133 if (!R.event) 2134 return !1; 2135 if (this.mousewheel.enabled) 2136 return !1; 2137 var e = this.$el; 2138 return "container" !== this.params.mousewheel.eventsTarged && (e = s(this.params.mousewheel.eventsTarged)), e.on(R.event, this.mousewheel.handle), this.mousewheel.enabled = !0, !0 2139 }, 2140 disable: function() { 2141 if (!R.event) 2142 return !1; 2143 if (!this.mousewheel.enabled) 2144 return !1; 2145 var e = this.$el; 2146 return "container" !== this.params.mousewheel.eventsTarged && (e = s(this.params.mousewheel.eventsTarged)), e.off(R.event, this.mousewheel.handle), this.mousewheel.enabled = !1, !0 2147 } 2148 }, 2149 F = { 2150 update: function() { 2151 var e = this.params.navigation; 2152 if (!this.params.loop) { 2153 var t = this.navigation, 2154 i = t.$nextEl, 2155 s = t.$prevEl; 2156 s && s.length > 0 && (this.isBeginning ? s.addClass(e.disabledClass) : s.removeClass(e.disabledClass), s[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](e.lockClass)), i && i.length > 0 && (this.isEnd ? i.addClass(e.disabledClass) : i.removeClass(e.disabledClass), i[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](e.lockClass)) 2157 } 2158 }, 2159 init: function() { 2160 var e, 2161 t, 2162 i = this, 2163 a = i.params.navigation; 2164 (a.nextEl || a.prevEl) && (a.nextEl && (e = s(a.nextEl), i.params.uniqueNavElements && "string" == typeof a.nextEl && e.length > 1 && 1 === i.$el.find(a.nextEl).length && (e = i.$el.find(a.nextEl))), a.prevEl && (t = s(a.prevEl), i.params.uniqueNavElements && "string" == typeof a.prevEl && t.length > 1 && 1 === i.$el.find(a.prevEl).length && (t = i.$el.find(a.prevEl))), e && e.length > 0 && e.on("click", function(e) { 2165 e.preventDefault(), i.isEnd && !i.params.loop || i.slideNext() 2166 }), t && t.length > 0 && t.on("click", function(e) { 2167 e.preventDefault(), i.isBeginning && !i.params.loop || i.slidePrev() 2168 }), d.extend(i.navigation, { 2169 $nextEl: e, 2170 nextEl: e && e[0], 2171 $prevEl: t, 2172 prevEl: t && t[0] 2173 })) 2174 }, 2175 destroy: function() { 2176 var e = this.navigation, 2177 t = e.$nextEl, 2178 i = e.$prevEl; 2179 t && t.length && (t.off("click"), t.removeClass(this.params.navigation.disabledClass)), i && i.length && (i.off("
2179click"), i.removeClass(this.params.navigation.disabledClass)) 2180 } 2181 }, 2182 W = { 2183 update: function() { 2184 var e = this.rtl, 2185 t = this.params.pagination; 2186 if (t.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) { 2187 var i, 2188 a = this.virtual && this.params.virtual.enabled ? this.virtual.slides.length : this.slides.length, 2189 r = this.pagination.$el, 2190 n = this.params.loop ? Math.ceil((a - 2 * this.loopedSlides) / this.params.slidesPerGroup) : this.snapGrid.length; 2191 if (this.params.loop ? ((i = Math.ceil((this.activeIndex - this.loopedSlides) / this.params.slidesPerGroup)) > a - 1 - 2 * this.loopedSlides && (i -= a - 2 * this.loopedSlides), i > n - 1 && (i -= n), i < 0 && "bullets" !== this.params.paginationType && (i = n + i)) : i = void 0 !== this.snapIndex ? this.snapIndex : this.activeIndex || 0, "bullets" === t.type && this.pagination.bullets && this.pagination.bullets.length > 0) { 2192 var o, 2193 l, 2194 d, 2195 h = this.pagination.bullets; 2196 if (t.dynamicBullets && (this.pagination.bulletSize = h.eq(0)[this.isHorizontal() ? "outerWidth" : "outerHeight"](!0), r.css(this.isHorizontal() ? "width" : "height", this.pagination.bulletSize * (t.dynamicMainBullets + 4) + "px"), t.dynamicMainBullets > 1 && void 0 !== this.previousIndex && (i > this.previousIndex && this.pagination.dynamicBulletIndex < t.dynamicMainBullets - 1 ? this.pagination.dynamicBulletIndex += 1 : i < this.previousIndex && this.pagination.dynamicBulletIndex > 0 && (this.pagination.dynamicBulletIndex -= 1)), o = i - this.pagination.dynamicBulletIndex, d = ((l = o + (t.dynamicMainBullets - 1)) + o) / 2), h.removeClass(t.bulletActiveClass + " " + t.bulletActiveClass + "-next " + t.bulletActiveClass + "-next-next " + t.bulletActiveClass + "-prev " + t.bulletActiveClass + "-prev-prev " + t.bulletActiveClass + "-main"), r.length > 1) 2197 h.each(function(e, a) { 2198 var r = s(a), 2199 n = r.index(); 2200 n === i && r.addClass(t.bulletActiveClass), t.dynamicBullets && (n >= o && n <= l && r.addClass(t.bulletActiveClass + "-main"), n === o && r.prev().addClass(t.bulletActiveClass + "-prev").prev().addClass(t.bulletActiveClass + "-prev-prev"), n === l && r.next().addClass(t.bulletActiveClass + "-next").next().addClass(t.bulletActiveClass + "-next-next")) 2201 }); 2202 else if (h.eq(i).addClass(t.bulletActiveClass), t.dynamicBullets) { 2203 for (var p = h.eq(o), c = h.eq(l), u = o; u <= l; u += 1) 2204 h.eq(u).addClass(t.bulletActiveClass + "-main"); 2205 p.prev().addClass(t.bulletActiveClass + "-prev").prev().addClass(t.bulletActiveClass + "-prev-prev"), c.next().addClass(t.bulletActiveClass + "-next").next().addClass(t.bulletActiveClass + "-next-next") 2206 } 2207 if (t.dynamicBullets) { 2208 var v = Math.min(h.length, t.dynamicMainBullets + 4), 2209 f = (this.pagination.bulletSize * v - this.pagination.bulletSize) / 2 - d * this.pagination.bulletSize, 2210 m = e ? "right" : "left"; 2211 h.css(this.isHorizontal() ? m : "top", f + "px") 2212 } 2213 } 2214 if ("fraction" === t.type && (r.find("." + t.currentClass).text(i + 1), r.find("." + t.totalClass).text(n)), "progressbar" === t.type) { 2215 var g = (i + 1) / n, 2216 b = g * 100, 2217 w = 1; 2218 this.isHorizontal() || (w = g, b = 1), r.find("." + t.progressbarFillClass).transform("translate3d(0,0,0) scaleY(" + w + ")").transition(this.params.speed).css('width', b + "%") 2219 } 2220 "custom" === t.type && t.renderCustom ? (r.html(t.renderCustom(this, i + 1, n)), this.emit
2220("paginationRender", this, r[0])) : this.emit("paginationUpdate", this, r[0]), r[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](t.lockClass) 2221 } 2222 }, 2223 render: function() { 2224 var e = this.params.pagination; 2225 if (e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) { 2226 var t = this.virtual && this.params.virtual.enabled ? this.virtual.slides.length : this.slides.length, 2227 i = this.pagination.$el, 2228 s = ""; 2229 if ("bullets" === e.type) { 2230 for (var a = this.params.loop ? Math.ceil((t - 2 * this.loopedSlides) / this.params.slidesPerGroup) : this.snapGrid.length, r = 0; r < a; r += 1) 2231 e.renderBullet ? s += e.renderBullet.call(this, r, e.bulletClass) : s += "<" + e.bulletElement + ' class="' + e.bulletClass + '"></' + e.bulletElement + ">"; 2232 i.html(s), this.pagination.bullets = i.find("." + e.bulletClass) 2233 } 2234 "fraction" === e.type && (s = e.renderFraction ? e.renderFraction.call(this, e.currentClass, e.totalClass) : '<span class="' + e.currentClass + '"></span> / <span class="' + e.totalClass + '"></span>', i.html(s)), "progressbar" === e.type && (s = e.renderProgressbar ? e.renderProgressbar.call(this, e.progressbarFillClass) : '<span class="' + e.progressbarFillClass + '"></span>', i.html(s)), "custom" !== e.type && this.emit("paginationRender", this.pagination.$el[0]) 2235 } 2236 }, 2237 init: function() { 2238 var e = this, 2239 t = e.params.pagination; 2240 if (t.el) { 2241 var i = s(t.el); 2242 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)), "bullets" === t.type && t.clickable && i.addClass(t.clickableClass), i.addClass(t.modifierClass + t.type), "bullets" === t.type && t.dynamicBullets && (i.addClass("" + t.modifierClass + t.type + "-dynamic"), e.pagination.dynamicBulletIndex = 0, t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)), t.clickable && i.on("click", "." + t.bulletClass, function(t) { 2243 t.preventDefault(); 2244 var i = s(this).index() * e.params.slidesPerGroup; 2245 e.params.loop && (i += e.loopedSlides), e.slideTo(i) 2246 }), d.extend(e.pagination, { 2247 $el: i, 2248 el: i[0] 2249 })) 2250 } 2251 }, 2252 destroy: function() { 2253 var e = this.params.pagination; 2254 if (e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) { 2255 var t = this.pagination.$el; 2256 t.removeClass(e.hiddenClass), t.removeClass(e.modifierClass + e.type), this.pagination.bullets && this.pagination.bullets.removeClass(e.bulletActiveClass), e.clickable && t.off("click", "." + e.bulletClass) 2257 } 2258 } 2259 }, 2260 q = { 2261 setTranslate: function() { 2262 if (this.params.scrollbar.el && this.scrollbar.el) { 2263 var e = this.scrollbar, 2264 t = this.rtl, 2265 i = this.progress, 2266 s = e.dragSize, 2267 a = e.trackSize, 2268 r = e.$dragEl, 2269 n = e.$el, 2270 o = this.params.scrollbar, 2271 l = s, 2272 d = (a - s) * i; 2273 t && this.isHorizontal() ? (d = -d) > 0 ? (l = s - d, d = 0) : -d + s > a && (l = a + d) : d < 0 ? (l = s + d, d = 0) : d + s > a && (l = a - d), this.isHorizontal() ? (h.transforms3d ? r.transform("translate3d(" + d + "px, 0, 0)") : r.transform("translateX(" + d + "px)"), r[0].style.width = l + "px") : (h.transforms3d ? r.transform("translate3d(0px, " + d + "px, 0)") : r.transform("translateY(" + d + "px)"), r[0].style.height = l + "px"), o.hide && (clearTimeout(this.scrollbar.timeout), n[0].style.opacity = 1, this.scrollbar.timeout = setTimeout(function() { 2274 n[0].style.opacity = 0, n.transition(400) 2275 }, 1e3)) 2276 } 2277 }, 2278 setTransition: function(e) { 2279 this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e) 2280 }, 2281 updateSize: function() { 2282 if (this.params.scrollbar.el && this.scrollbar.el) { 2283 var e = this.scrollbar, 2284 t = e.$dragEl, 2285 i = e.$el; 2286 t[0].style.width = "", t[0].style.height = ""; 2287 var s, 2288 a = this.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight, 2289 r = this.size / this.virtualSize, 2290 n = r * (a / this.size); 2291 s = "auto" === this.params.scrollbar.dragSize ? a * r : parseInt(this.params.scrollbar.dragSize, 10), this.isHorizontal() ? t[0].style.width = s + "px" : t[0].style.height = s + "px", i[0].style.display = r >= 1 ? "none" : "", this.params.scrollbarHide && (i[0].style.opacity = 0), d.extend(e, { 2292 trackSize: a, 2293 divider: r, 2294 moveDivider: n, 2295 dragSize: s 2296 }), e.$el[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](this.params.scrollbar.lockClass) 2297 } 2298 }, 2299 setDragPosition: function(e) { 2300 var t, 2301 i = this.scrollbar, 2302 s = i.$el, 2303 a = i.dragSize, 2304 r = i.trackSize; 2305 t = ((this.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY) - s.offset()[this.isHorizontal() ? "left" : "top"] - a / 2) / (r - a), t = Math.max(Math.min(t, 1), 0
2305), this.rtl && (t = 1 - t); 2306 var n = this.minTranslate() + (this.maxTranslate() - this.minTranslate()) * t; 2307 this.updateProgress(n), this.setTranslate(n), this.updateActiveIndex(), this.updateSlidesClasses() 2308 }, 2309 onDragStart: function(e) { 2310 var t = this.params.scrollbar, 2311 i = this.scrollbar, 2312 s = this.$wrapperEl, 2313 a = i.$el, 2314 r = i.$dragEl; 2315 this.scrollbar.isTouched = !0, e.preventDefault(), e.stopPropagation(), s.transition(100), r.transition(100), i.setDragPosition(e), clearTimeout(this.scrollbar.dragTimeout), a.transition(0), t.hide && a.css("opacity", 1), this.emit("scrollbarDragStart", e) 2316 }, 2317 onDragMove: function(e) { 2318 var t = this.scrollbar, 2319 i = this.$wrapperEl, 2320 s = t.$el, 2321 a = t.$dragEl; 2322 this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, t.setDragPosition(e), i.transition(0), s.transition(0), a.transition(0), this.emit("scrollbarDragMove", e)) 2323 }, 2324 onDragEnd: function(e) { 2325 var t = this.params.scrollbar, 2326 i = this.scrollbar.$el; 2327 this.scrollbar.isTouched && (this.scrollbar.isTouched = !1, t.hide && (clearTimeout(this.scrollbar.dragTimeout), this.scrollbar.dragTimeout = d.nextTick(function() { 2328 i.css("opacity", 0), i.transition(400) 2329 }, 1e3)), this.emit("scrollbarDragEnd", e), t.snapOnRelease && this.slideReset()) 2330 }, 2331 enableDraggable: function() { 2332 if (this.params.scrollbar.el) { 2333 var t = this.scrollbar, 2334 i = this.touchEvents, 2335 s = this.touchEventsDesktop, 2336 a = this.params, 2337 r = t.$el[0], 2338 n = !(!h.passiveListener || !a.passiveListener) && { 2339 passive: !1, 2340 capture: !1 2341 }, 2342 o = !(!h.passiveListener || !a.passiveListener) && { 2343 passive: !0, 2344 capture: !1 2345 }; 2346 h.touch || !h.pointerEvents && !h.prefixedPointerEvents ? (h.touch && (r.addEventListener(i.start, this.scrollbar.onDragStart, n), r.addEventListener(i.move, this.scrollbar.onDragMove, n), r.addEventListener(i.end, this.scrollbar.onDragEnd, o)), (a.simulateTouch && !y.ios && !y.android || a.simulateTouch && !h.touch && y.ios) && (r.addEventListener("mousedown", this.scrollbar.onDragStart, n), e.addEventListener("mousemove", this.scrollbar.onDragMove, n), e.addEventListener("mouseup", this.scrollbar.onDragEnd, o))) : (r.addEventListener(s.start, this.scrollbar.onDragStart, n), e.addEventListener(s.move, this.scrollbar.onDragMove, n), e.addEventListener(s.end, this.scrollbar.onDragEnd, o)) 2347 } 2348 }, 2349 disableDraggable: function() { 2350 if (this.params.scrollbar.el) { 2351 var t = this.scrollbar, 2352 i = this.touchEvents, 2353 s = this.touchEventsDesktop, 2354 a = this.params, 2355 r = t.$el[0], 2356 n = !(!h.passiveListener || !a.passiveListener) && { 2357 passive: !1, 2358 capture: !1 2359 }, 2360 o = !(!h.passiveListener || !a.passiveListener) && { 2361 passive: !0, 2362 capture: !1 2363 }; 2364 h.touch || !h.pointerEvents && !h.prefixedPointerEvents ? (h.touch && (r.removeEventListener(i.start, this.scrollbar.onDragStart, n), r.removeEventListener(i.move, this.scrollbar.onDragMove, n), r.removeEventListener(i.end, this.scrollbar.onDragEnd, o)), (a.simulateTouch && !y.ios && !y.android || a.simulateTouch && !h.touch && y.ios) && (r.removeEventListener("mousedown", this.scrollbar.onDragStart, n), e.removeEventListener("mousemove", this.scrollbar.onDragMove, n), e.removeEventListener("mouseup", this.scrollbar.onDragEnd, o))) : (r.removeEventListener(s.start, this.scrollbar.onDragStart, n), e.removeEventListener(s.move, this.scrollbar.onDragMove, n), e.removeEventListener(s.end, this.scrollbar.onDragEnd, o)) 2365 } 2366 }, 2367 init: function() { 2368 if (this.params.scrollbar.el) { 2369 var e = this.scrollbar, 2370 t = this.$el, 2371 i = this.params.scrollbar, 2372 a = s(i.el); 2373 this.params.uniqueNavElements && "string" == typeof i.el && a.length > 1 && 1 === t.find(i.el).length && (a = t.find(i.el)); 2374 var r = a.find("." + this.params.scrollbar.dragClass); 2375 0 === r.length && (r = s('<div class="' + this.params.scrollbar.dragClass + '"></div>'), a.append(r)), d.extend(e, { 2376 $el: a, 2377 el: a[0], 2378 $dragEl: r, 2379 dragEl: r[0] 2380 }), i.draggable && e.enableDraggable() 2381 } 2382 }, 2383 destroy: function() { 2384 this.scrollbar.disableDraggable() 2385 } 2386 }, 2387 j = { 2388 setTransform: function(e, t) { 2389 var i = this.rtl, 2390 a = s(e), 2391 r = i ? -1 : 1, 2392 n = a.attr("data-swiper-parallax") || "0", 2393 o = a.attr("data-swiper-parallax-x"), 2394 l = a.attr("data-swiper-parallax-y"), 2395 d = a.attr("data-swiper-parallax-scale"), 2396 h = a.attr("data-swiper-parallax-opacity"); 2397 if (o || l ? (o = o || "0", l = l || "0") : this.isHorizontal() ? (o = n, l = "0") : (l = n, o = "0"), o = o.indexOf("%") >= 0 ? parseInt(o, 10) * t * r + "%" : o * t * r + "px", l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px", void 0 !== h && null !== h) { 2398 var p = h - (h - 1) * (1 - Math.abs(t)); 2399 a[0].style.opacity = p 2400 } 2401 if (void 0 === d || null === d) 2402 a.transform("translate3d(" + o + ", " + l + ", 0px)"); 2403 else { 2404 var c = d - (d - 1) * (1 - Math.abs(t)); 2405 a.transform("translate3d(" + o + ", " + l + ", 0px) scale(" + c + ")") 2406 } 2407 }, 2408 setTranslate: function() { 2409 var e = this, 2410 t = e.$el, 2411 i = e.slides, 2412 a = e.progress, 2413 r = e.snapGrid; 2414 t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t, i) { 2415 e.parallax.setTransform(i, a) 2416 }), i.each(function(t, i) { 2417 var n = i.progress; 2418 e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (n += Math.ceil(t / 2) - a * (r.length - 1)), n = Math.min(Math.max(n, -1), 1), s(i).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t, i) { 2419 e.parallax.setTransform(i, n) 2420 }) 2421 }) 2422 }, 2423 setTransition: function(e) { 2424 void 0 === e && (e = this.params.speed); 2425 this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t, i) { 2426 var a = s(i), 2427 r = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e; 2428 0 === e && (r = 0), a.transition(r) 2429 }) 2430 } 2431 }, 2432 K = { 2433 getDistanceBetweenTouches: function(e) { 2434 if (e.targetTouches.length < 2) 2435 return 1; 2436 var t = e.targetTouches[0].pageX, 2437 i = e.targetTouches[0].pageY, 2438 s = e.targetTouches[1].pageX, 2439 a = e.targetTouches[1].pageY; 2440 return Math.sqrt(Math.pow(s - t, 2) + Math.pow(a - i, 2)) 2441 }, 2442 onGestureStart: function(e) { 2443 var t = this.params.zoom, 2444 i = this.zoom, 2445 a = i.gesture; 2446 if (i.fakeGestureTouched = !1, i.fakeGestureMoved = !1, !h.gestures) { 2447 if ("touchstart" !== e.type || "touchstart" === e.type && e.targetTouches.length < 2) 2448 return; 2449 i.fakeGestureTouched = !0, a.scaleStart = K.getDistanceBetweenTouches(e) 2450 } 2451 a.$slideEl && a.$slideEl.length || (a.$slideEl = s(e.target).closest(".swiper-slide"), 0 === a.$slideEl.length && (a.$slideEl = this.slides.eq(this.activeIndex)), a.$imageEl = a.$slideEl.find("img, svg, canvas"), a.$imageWrapEl = a.$imageEl.parent("." + t.containerClass), a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || t.maxRatio, 0 !== a.$imageWrapEl.length) ? (a.$imageEl.transition(0), this.zoom.isScaling = !0) : a.$imageEl = void 0 2452 }, 2453 onGestureChange: function(e) { 2454 var t = this.params.zoom, 2455 i = this.zoom, 2456 s = i.gesture; 2457 if (!h.gestures) { 2458 if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) 2459 return; 2460 i.fakeGestureMoved = !0, s.scaleMove = K.getDistanceBetweenTouches(e) 2461 } 2462 s.$imageEl && 0 !== s.$imageEl.length && (h.gestures ? this.zoom.scale = e.scale * i.currentScale : i.scale = s.scaleMove / s.scaleStart * i.currentScale, i.scale > s.maxRatio && (i.scale = s.maxRatio - 1 + Math.pow(i.scale - s.maxRatio + 1, .5)), i.scale < t.minRatio && (i.scale = t.minRatio + 1 - Math.pow(t.minRatio - i.scale + 1, .5)), s.$imageEl.transform("translate3d(0,
vendor: 4,368 bytes, lines 2462-2499
24620,0) scale(" + i.scale + ")")) 2463 }, 2464 onGestureEnd: function(e) { 2465 var t = this.params.zoom, 2466 i = this.zoom, 2467 s = i.gesture; 2468 if (!h.gestures) { 2469 if (!i.fakeGestureTouched || !i.fakeGestureMoved) 2470 return; 2471 if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !y.android) 2472 return; 2473 i.fakeGestureTouched = !1, i.fakeGestureMoved = !1 2474 } 2475 s.$imageEl && 0 !== s.$imageEl.length && (i.scale = Math.max(Math.min(i.scale, s.maxRatio), t.minRatio), s.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale(" + i.scale + ")"), i.currentScale = i.scale, i.isScaling = !1, 1 === i.scale && (s.$slideEl = void 0)) 2476 }, 2477 onTouchStart: function(e) { 2478 var t = this.zoom, 2479 i = t.gesture, 2480 s = t.image; 2481 i.$imageEl && 0 !== i.$imageEl.length && (s.isTouched || (y.android && e.preventDefault(), s.isTouched = !0, s.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX, s.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY)) 2482 }, 2483 onTouchMove: function(e) { 2484 var t = this.zoom, 2485 i = t.gesture, 2486 s = t.image, 2487 a = t.velocity; 2488 if (i.$imageEl && 0 !== i.$imageEl.length && (this.allowClick = !1, s.isTouched && i.$slideEl)) { 2489 s.isMoved || (s.width = i.$imageEl[0].offsetWidth, s.height = i.$imageEl[0].offsetHeight, s.startX = d.getTranslate(i.$imageWrapEl[0], "x") || 0, s.startY = d.getTranslate(i.$imageWrapEl[0], "y") || 0, i.slideWidth = i.$slideEl[0].offsetWidth, i.slideHeight = i.$slideEl[0].offsetHeight, i.$imageWrapEl.transition(0), this.rtl && (s.startX = -s.startX), this.rtl && (s.startY = -s.startY)); 2490 var r = s.width * t.scale, 2491 n = s.height * t.scale; 2492 if (!(r < i.slideWidth && n < i.slideHeight)) { 2493 if (s.minX = Math.min(i.slideWidth / 2 - r / 2, 0), s.maxX = -s.minX, s.minY = Math.min(i.slideHeight / 2 - n / 2, 0), s.maxY = -s.minY, s.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, s.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !s.isMoved && !t.isScaling) { 2494 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)) 2495 return void (s.isTouched = !1); 2496 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)) 2497 return void (s.isTouched = !1) 2498 } 2499 e.preventDefault(), e.stopPropagation(), s.isMoved = !0, s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX, s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY, s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, .8)), s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, .8)), s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, .8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, .8)), a.prevPositionX || (a.prevPositionX = s.touchesCurrent.x), a.prevPositionY || (a.prevPositionY = s.touchesCurrent.y), a.prevTime || (a.prevTime = Date.now()), a.x = (s.touchesCurrent.x - a.prevPositionX) / (Date.now() - a.prevTime) / 2, a.y = (s.touchesCurrent.y - a.prevPositionY) / (Date.now() - a.prevTime) / 2, Math.abs(s.touchesCurrent.x - a.prevPositionX) < 2 && (a.x = 0), Math.abs(s.touchesCurrent.y - a.prevPositionY) < 2 && (a.y = 0), a.prevPositionX = s.touchesCurrent.x, a.prevPositionY = s.touchesCurrent.y, a.prevTime = Date.now(), i.$imageWrapEl.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0
vendor: 4,328 bytes, lines 2499-2562
2499)") 2500 } 2501 } 2502 }, 2503 onTouchEnd: function() { 2504 var e = this.zoom, 2505 t = e.gesture, 2506 i = e.image, 2507 s = e.velocity; 2508 if (t.$imageEl && 0 !== t.$imageEl.length) { 2509 if (!i.isTouched || !i.isMoved) 2510 return i.isTouched = !1, void (i.isMoved = !1); 2511 i.isTouched = !1, i.isMoved = !1; 2512 var a = 300, 2513 r = 300, 2514 n = s.x * a, 2515 o = i.currentX + n, 2516 l = s.y * r, 2517 d = i.currentY + l; 2518 0 !== s.x && (a = Math.abs((o - i.currentX) / s.x)), 0 !== s.y && (r = Math.abs((d - i.currentY) / s.y)); 2519 var h = Math.max(a, r); 2520 i.currentX = o, i.currentY = d; 2521 var p = i.width * e.scale, 2522 c = i.height * e.scale; 2523 i.minX = Math.min(t.slideWidth / 2 - p / 2, 0), i.maxX = -i.minX, i.minY = Math.min(t.slideHeight / 2 - c / 2, 0), i.maxY = -i.minY, i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX), i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY), t.$imageWrapEl.transition(h).transform("translate3d(" + i.currentX + "px, " + i.currentY + "px,0)") 2524 } 2525 }, 2526 onTransitionEnd: function() { 2527 var e = this.zoom, 2528 t = e.gesture; 2529 t.$slideEl && this.previousIndex !== this.activeIndex && (t.$imageEl.transform("translate3d(0,0,0) scale(1)"), t.$imageWrapEl.transform("translate3d(0,0,0)"), t.$slideEl = void 0, t.$imageEl = void 0, t.$imageWrapEl = void 0, e.scale = 1, e.currentScale = 1) 2530 }, 2531 toggle: function(e) { 2532 var t = this.zoom; 2533 t.scale && 1 !== t.scale ? t.out() : t.in(e) 2534 }, 2535 in: function(e) { 2536 var t, 2537 i, 2538 a, 2539 r, 2540 n, 2541 o, 2542 l, 2543 d, 2544 h, 2545 p, 2546 c, 2547 u, 2548 v, 2549 f, 2550 m, 2551 g, 2552 b = this.zoom, 2553 w = this.params.zoom, 2554 y = b.gesture, 2555 x = b.image; 2556 (y.$slideEl || (y.$slideEl = this.clickedSlide ? s(this.clickedSlide) : this.slides.eq(this.activeIndex), y.$imageEl = y.$slideEl.find("img, svg, canvas"), y.$imageWrapEl = y.$imageEl.parent("." + w.containerClass)), y.$imageEl && 0 !== y.$imageEl.length) && (y.$slideEl.addClass("" + w.zoomedSlideClass), void 0 === x.touchesStart.x && e ? (t = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX, i = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY) : (t = x.touchesStart.x, i = x.touchesStart.y), b.scale = y.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio, b.currentScale = y.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio, e ? (m = y.$slideEl[0].offsetWidth, g = y.$slideEl[0].offsetHeight, a = y.$slideEl.offset().left + m / 2 - t, r = y.$slideEl.offset().top + g / 2 - i, l = y.$imageEl[0].offsetWidth, d = y.$imageEl[0].offsetHeight, h = l * b.scale, p = d * b.scale, v = -(c = Math.min(m / 2 - h / 2, 0)), f = -(u = Math.min(g / 2 - p / 2, 0)), n = a * b.scale, o = r * b.scale, n < c && (n = c), n > v && (n = v), o < u && (o = u), o > f && (o = f)) : (n = 0, o = 0), y.$imageWrapEl.transition(300).transform("translate3d(" + n + "px, " + o + "px,0)"), y.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + b.scale + ")")) 2557 }, 2558 out: function() { 2559 var e = this.zoom, 2560 t = this.params.zoom, 2561 i = e.gesture; 2562 i.$slideEl || (i.$slideEl = this.clickedSlide ? s(this.clickedSlide) : this.slides.eq(this.activeIndex), i.$imageEl = i.$slideEl.find("img, svg, canvas"), i.$imageWrapEl = i.$imageEl.parent("." + t.containerClass)), i.$imageEl && 0 !== i.$imageEl.length && (e.scale = 1, e.currentScale = 1, i.$imageWrapEl.transition(300).transform("translate3d(0,
vendor: 6,062 bytes, lines 2562-2646
25620,0)"), i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), i.$slideEl.removeClass("" + t.zoomedSlideClass), i.$slideEl = void 0) 2563 }, 2564 enable: function() { 2565 var e = this.zoom; 2566 if (!e.enabled) { 2567 e.enabled = !0; 2568 var t = !("touchstart" !== this.touchEvents.start || !h.passiveListener || !this.params.passiveListeners) && { 2569 passive: !0, 2570 capture: !1 2571 }; 2572 h.gestures ? (this.$wrapperEl.on("gesturestart", ".swiper-slide", e.onGestureStart, t), this.$wrapperEl.on("gesturechange", ".swiper-slide", e.onGestureChange, t), this.$wrapperEl.on("gestureend", ".swiper-slide", e.onGestureEnd, t)) : "touchstart" === this.touchEvents.start && (this.$wrapperEl.on(this.touchEvents.start, ".swiper-slide", e.onGestureStart, t), this.$wrapperEl.on(this.touchEvents.move, ".swiper-slide", e.onGestureChange, t), this.$wrapperEl.on(this.touchEvents.end, ".swiper-slide", e.onGestureEnd, t)), this.$wrapperEl.on(this.touchEvents.move, "." + this.params.zoom.containerClass, e.onTouchMove) 2573 } 2574 }, 2575 disable: function() { 2576 var e = this.zoom; 2577 if (e.enabled) { 2578 this.zoom.enabled = !1; 2579 var t = !("touchstart" !== this.touchEvents.start || !h.passiveListener || !this.params.passiveListeners) && { 2580 passive: !0, 2581 capture: !1 2582 }; 2583 h.gestures ? (this.$wrapperEl.off("gesturestart", ".swiper-slide", e.onGestureStart, t), this.$wrapperEl.off("gesturechange", ".swiper-slide", e.onGestureChange, t), this.$wrapperEl.off("gestureend", ".swiper-slide", e.onGestureEnd, t)) : "touchstart" === this.touchEvents.start && (this.$wrapperEl.off(this.touchEvents.start, ".swiper-slide", e.onGestureStart, t), this.$wrapperEl.off(this.touchEvents.move, ".swiper-slide", e.onGestureChange, t), this.$wrapperEl.off(this.touchEvents.end, ".swiper-slide", e.onGestureEnd, t)), this.$wrapperEl.off(this.touchEvents.move, "." + this.params.zoom.containerClass, e.onTouchMove) 2584 } 2585 } 2586 }, 2587 U = { 2588 loadInSlide: function(e, t) { 2589 void 0 === t && (t = !0); 2590 var i = this, 2591 a = i.params.lazy; 2592 if (void 0 !== e && 0 !== i.slides.length) { 2593 var r = i.virtual && i.params.virtual.enabled ? i.$wrapperEl.children("." + i.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : i.slides.eq(e), 2594 n = r.find("." + a.elementClass + ":not(." + a.loadedClass + "):not(." + a.loadingClass + ")"); 2595 !r.hasClass(a.elementClass) || r.hasClass(a.loadedClass) || r.hasClass(a.loadingClass) || (n = n.add(r[0])), 0 !== n.length && n.each(function(e, n) { 2596 var o = s(n); 2597 o.addClass(a.loadingClass); 2598 var l = o.attr("data-background"), 2599 d = o.attr("data-src"), 2600 h = o.attr("data-srcset"), 2601 p = o.attr("data-sizes"); 2602 i.loadImage(o[0], d || l, h, p, !1, function() { 2603 if (void 0 !== i && null !== i && i && (!i || i.params) && !i.destroyed) { 2604 if (l ? (o.css("background-image", 'url("' + l + '")'), o.removeAttr("data-background")) : (h && (o.attr("srcset", h), o.removeAttr("data-srcset")), p && (o.attr("sizes", p), o.removeAttr("data-sizes")), d && (o.attr("src", d), o.removeAttr("data-src"))), o.addClass(a.loadedClass).removeClass(a.loadingClass), r.find("." + a.preloaderClass).remove(), i.params.loop && t) { 2605 var e = r.attr("data-swiper-slide-index"); 2606 if (r.hasClass(i.params.slideDuplicateClass)) { 2607 var s = i.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + i.params.slideDuplicateClass + ")"); 2608 i.lazy.loadInSlide(s.index(), !1) 2609 } else { 2610 var n = i.$wrapperEl.children("." + i.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]'); 2611 i.lazy.loadInSlide(n.index(), !1) 2612 } 2613 } 2614 i.emit("lazyImageReady", r[0], o[0]) 2615 } 2616 }), i.emit("lazyImageLoad", r[0], o[0]) 2617 }) 2618 } 2619 }, 2620 load: function() { 2621 var e = this, 2622 t = e.$wrapperEl, 2623 i = e.params, 2624 a = e.slides, 2625 r = e.activeIndex, 2626 n = e.virtual && i.virtual.enabled, 2627 o = i.lazy, 2628 l = i.slidesPerView; 2629 function d(e) { 2630 if (n) { 2631 if (t.children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]').length) 2632 return !0 2633 } else if (a[e]) 2634 return !0; 2635 return !1 2636 } 2637 function h(e) { 2638 return n ? s(e).attr("data-swiper-slide-index") : s(e).index() 2639 } 2640 if ("auto" === l && (l = 0), e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0), e.params.watchSlidesVisibility) 2641 t.children("." + i.slideVisibleClass).each(function(t, i) { 2642 var a = n ? s(i).attr("data-swiper-slide-index") : s(i).index(); 2643 e.lazy.loadInSlide(a) 2644 }); 2645 else if (l > 1) 2646 for (var p = r; p < r + l; p += 1)
vendor: 4,668 bytes, lines 2647-2734
2647 d(p) && e.lazy.loadInSlide(p); 2648 else 2649 e.lazy.loadInSlide(r); 2650 if (o.loadPrevNext) 2651 if (l > 1 || o.loadPrevNextAmount && o.loadPrevNextAmount > 1) { 2652 for (var c = o.loadPrevNextAmount, u = l, v = Math.min(r + u + Math.max(c, u), a.length), f = Math.max(r - Math.max(u, c), 0), m = r + l; m < v; m += 1) 2653 d(m) && e.lazy.loadInSlide(m); 2654 for (var g = f; g < r; g += 1) 2655 d(g) && e.lazy.loadInSlide(g) 2656 } else { 2657 var b = t.children("." + i.slideNextClass); 2658 b.length > 0 && e.lazy.loadInSlide(h(b)); 2659 var w = t.children("." + i.slidePrevClass); 2660 w.length > 0 && e.lazy.loadInSlide(h(w)) 2661 } 2662 } 2663 }, 2664 _ = { 2665 LinearSpline: function(e, t) { 2666 var i, 2667 s, 2668 a, 2669 r, 2670 n, 2671 o = function(e, t) { 2672 for (s = -1, i = e.length; i - s > 1;) 2673 e[a = i + s >> 1] <= t ? s = a : i = a; 2674 return i 2675 }; 2676 return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function(e) { 2677 return e ? (n = o(this.x, e), r = n - 1, (e - this.x[r]) * (this.y[n] - this.y[r]) / (this.x[n] - this.x[r]) + this.y[r]) : 0 2678 }, this 2679 }, 2680 getInterpolateFunction: function(e) { 2681 this.controller.spline || (this.controller.spline = this.params.loop ? new _.LinearSpline(this.slidesGrid, e.slidesGrid) : new _.LinearSpline(this.snapGrid, e.snapGrid)) 2682 }, 2683 setTranslate: function(e, t) { 2684 var i, 2685 s, 2686 a = this, 2687 r = a.controller.control; 2688 function n(e) { 2689 var t = e.rtl && "horizontal" === e.params.direction ? -a.translate : a.translate; 2690 "slide" === a.params.controller.by && (a.controller.getInterpolateFunction(e), s = -a.controller.spline.interpolate(-t)), s && "container" !== a.params.controller.by || (i = (e.maxTranslate() - e.minTranslate()) / (a.maxTranslate() - a.minTranslate()), s = (t - a.minTranslate()) * i + e.minTranslate()), a.params.controller.inverse && (s = e.maxTranslate() - s), e.updateProgress(s), e.setTranslate(s, a), e.updateActiveIndex(), e.updateSlidesClasses() 2691 } 2692 if (Array.isArray(r)) 2693 for (var o = 0; o < r.length; o += 1) 2694 r[o] !== t && r[o] instanceof I && n(r[o]); 2695 else 2696 r instanceof I && t !== r && n(r) 2697 }, 2698 setTransition: function(e, t) { 2699 var i, 2700 s = this, 2701 a = s.controller.control; 2702 function r(t) { 2703 t.setTransition(e, s), 0 !== e && (t.transitionStart(), t.$wrapperEl.transitionEnd(function() { 2704 a && (t.params.loop && "slide" === s.params.controller.by && t.loopFix(), t.transitionEnd()) 2705 })) 2706 } 2707 if (Array.isArray(a)) 2708 for (i = 0; i < a.length; i += 1) 2709 a[i] !== t && a[i] instanceof I && r(a[i]); 2710 else 2711 a instanceof I && t !== a && r(a) 2712 } 2713 }, 2714 Z = { 2715 makeElFocusable: function(e) { 2716 return e.attr("tabIndex", "0"), e 2717 }, 2718 addElRole: function(e, t) { 2719 return e.attr("role", t), e 2720 }, 2721 addElLabel: function(e, t) { 2722 return e.attr("aria-label", t), e 2723 }, 2724 disableEl: function(e) { 2725 return e.attr("aria-disabled", !0), e 2726 }, 2727 enableEl: function(e) { 2728 return e.attr("aria-disabled", !1), e 2729 }, 2730 onEnterKey: function(e) { 2731 var t = this.params.a11y; 2732 if (13 === e.keyCode) { 2733 var i = s(e.target); 2734 this.navigation && this.navigation.$nextEl && i.is(this.navigation.$nextEl) && (this.isEnd && !this.params.loop || this.slideNext(), this.isEnd ? this.a11y.notify(t.lastSlideMessage) : this.a11y.notify(t.nextSlideMessage)), this.navigation && this.navigation.$prevEl && i.is(this.navigation.$prevEl) && (this.isBeg
2734inning && !this.params.loop || this.slidePrev(), this.isBeginning ? this.a11y.notify(t.firstSlideMessage) : this.a11y.notify(t.prevSlideMessage)), this.pagination && i.is("." + this.params.pagination.bulletClass) && i[0].click() 2735 } 2736 }, 2737 notify: function(e) { 2738 var t = this.a11y.liveRegion; 2739 0 !== t.length && (t.html(""), t.html(e)) 2740 }, 2741 updateNavigation: function() { 2742 if (!this.params.loop) { 2743 var e = this.navigation, 2744 t = e.$nextEl, 2745 i = e.$prevEl; 2746 i && i.length > 0 && (this.isBeginning ? this.a11y.disableEl(i) : this.a11y.enableEl(i)), t && t.length > 0 && (this.isEnd ? this.a11y.disableEl(t) : this.a11y.enableEl(t)) 2747 } 2748 }, 2749 updatePagination: function() { 2750 var e = this, 2751 t = e.params.a11y; 2752 e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.bullets.each(function(i, a) { 2753 var r = s(a); 2754 e.a11y.makeElFocusable(r), e.a11y.addElRole(r, "button"), e.a11y.addElLabel(r, t.paginationBulletMessage.replace(/{{index}}/, r.index() + 1)) 2755 }) 2756 }, 2757 init: function() { 2758 this.$el.append(this.a11y.liveRegion); 2759 var e, 2760 t, 2761 i = this.params.a11y; 2762 this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl), this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl), e && (this.a11y.makeElFocusable(e), this.a11y.addElRole(e, "button"), this.a11y.addElLabel(e, i.nextSlideMessage), e.on("keydown", this.a11y.onEnterKey)), t && (this.a11y.makeElFocusable(t), this.a11y.addElRole(t, "button"), this.a11y.addElLabel(t, i.prevSlideMessage), t.on("keydown", this.a11y.onEnterKey)), 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) 2763 }, 2764 destroy: function() { 2765 var e, 2766 t; 2767 this.a11y.liveRegion && this.a11y.liveRegion.length > 0 && this.a11y.liveRegion.remove(), this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl), this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl), e && e.off("keydown", this.a11y.onEnterKey), t && t.off("keydown", this.a11y.onEnterKey), 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) 2768 } 2769 }, 2770 Q = { 2771 init: function() { 2772 if (this.params.history) { 2773 if (!t.history || !t.history.pushState) 2774 return this.params.history.enabled = !1, void (this.params.hashNavigation.enabled = !0); 2775 var e = this.history; 2776 e.initialized = !0, e.paths = Q.getPathValues(), (e.paths.key || e.paths.value) && (e.scrollToSlide(0, e.paths.value, this.params.runCallbacksOnInit), this.params.history.replaceState || t.addEventListener("popstate", this.history.setHistoryPopState)) 2777 } 2778 }, 2779 destroy: function() { 2780 this.params.history.replaceState || t.removeEventListener("popstate", this.history.setHistoryPopState) 2781 }, 2782 setHistoryPopState: function() { 2783 this.history.paths = Q.getPathValues(), this.history.scrollToSlide(this.params.speed, this.history.paths.value, !1) 2784 }, 2785 getPathValues: function() { 2786 var e = t.location.pathname.slice(1).split("/").filter(function(e) { 2787 return "" !== e 2788 }), 2789 i = e.length; 2790 return { 2791 key: e[i - 2], 2792 value: e[i - 1] 2793 } 2794 }, 2795 setHistory: function(e, i) { 2796 if (this.history.initialized && this.params.history.enabled) { 2797 var s = this.slides.eq(i), 2798 a = Q.slugify(s.attr("data-history")); 2799 t.location.pathname.includes(e) || (a = e + "/" + a); 2800 var r = t.history.state; 2801 r && r.value === a || (this.params.history.replaceState ? t.history.replaceState({ 2802 value: a 2803 }, null, a) : t.history.pushState({ 2804 value: a 2805 }, null, a)) 2806 } 2807 }, 2808 slugify: function(e) { 2809 return e.toString().toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "") 2810 }, 2811 scrollToSlide: function(e, t, i) { 2812 if (t) 2813 for (var s = 0, a = this.slides.length; s < a; s += 1) { 2814 var r = this.slides.eq(s); 2815 if (Q.slugify(r.attr("data-history")) === t && !r.hasClass(this.params.slideDuplicateClass)) { 2816 var n = r.index(); 2817 this.slideTo(n, e, i) 2818 } 2819 } 2820 else 2821 this.slideTo(0, e, i) 2822 } 2823 }, 2824 J = { 2825 onHashCange: function() { 2826 var t = e.location.hash.replace("#", ""); 2827 t !== this.slides.eq(this.activeIndex).attr("data-hash") && this.slideTo(this.$wrapperEl.children("." + this.params.slideClass + '[data-hash="' + t + '"]').index()) 2828 }, 2829 setHash: function() { 2830 if (this.hashNavigation.initialized && this.params.hashNavigation.enabled) 2831 if (this.params.hashNavigation.replaceState && t.history && t.history.replaceState) 2832 t.history.replaceState(null, null, "#" + this.slides.eq(this.activeIndex).attr("data-hash") || ""); 2833 else { 2834 var i = this.slides.eq(this.activeIndex), 2835 s = i.attr("data-hash") || i.attr("data-history"); 2836 e.location.hash = s || "" 2837 } 2838 }, 2839 init: function() { 2840 if (!(!this.params.hashNavigation.enabled || this.params.history && this.params.history.enabled)) { 2841 this.hashNavigation.initialized = !0; 2842 var i = e.location.hash.replace("#", ""); 2843 if (i) 2844 for (var a = 0, r = this.slides.length; a < r; a += 1) { 2845 var n = this.slides.eq(a); 2846 if ((n.attr("data-hash") || n.attr("data-history")) === i && !n.hasClass(this.params.slideDuplicateClass)) { 2847 var o = n.index(); 2848 this.slideTo(o, 0, this.params.runCallbacksOnInit, !0) 2849 } 2850 } 2851 this.params.hashNavigation.watchState && s(t).on("hashchange", this.hashNavigation.onHashCange) 2852 } 2853 }, 2854 destroy: function() { 2855 this.params.hashNavigation.watchState && s(t).off("hashchange", this.hashNavigation.onHashCange) 2856 } 2857 }, 2858 ee = { 2859 run: function() { 2860 var e = this, 2861 t = e.slides.eq(e.activeIndex), 2862 i = e.params.autoplay.delay; 2863 t.attr("data-swiper-autoplay") && (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay), e.autoplay.timeout = d.nextTick(function() { 2864 e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.params.loop ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) 2865 }, i) 2866 }, 2867 start: function() { 2868 return void 0 === this.autoplay.timeout && (!this.autoplay.running && (this.autoplay.running = !0, this.emit
2868("autoplayStart"), this.autoplay.run(), !0)) 2869 }, 2870 stop: function() { 2871 return !!this.autoplay.running && (void 0 !== this.autoplay.timeout && (this.autoplay.timeout && (clearTimeout(this.autoplay.timeout), this.autoplay.timeout = void 0), this.autoplay.running = !1, this.emit("autoplayStop"), !0)) 2872 }, 2873 pause: function(e) { 2874 var t = this; 2875 t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout), t.autoplay.paused = !0, 0 !== e && t.params.autoplay.waitForTransition ? t.$wrapperEl.transitionEnd(function() { 2876 t && !t.destroyed && (t.autoplay.paused = !1, t.autoplay.running ? t.autoplay.run() : t.autoplay.stop()) 2877 }) : (t.autoplay.paused = !1, t.autoplay.run()))) 2878 } 2879 }, 2880 te = { 2881 setTranslate: function() { 2882 for (var e = this.slides, t = 0; t < e.length; t += 1) { 2883 var i = this.slides.eq(t), 2884 s = -i[0].swiperSlideOffset; 2885 this.params.virtualTranslate || (s -= this.translate); 2886 var a = 0; 2887 this.isHorizontal() || (a = s, s = 0); 2888 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); 2889 i.css({ 2890 opacity: r 2891 }).transform("translate3d(" + s + "px, " + a + "px, 0px)") 2892 } 2893 }, 2894 setTransition: function(e) { 2895 var t = this, 2896 i = t.slides, 2897 s = t.$wrapperEl; 2898 if (i.transition(e), t.params.virtualTranslate && 0 !== e) { 2899 var a = !1; 2900 i.transitionEnd(function() { 2901 if (!a && t && !t.destroyed) { 2902 a = !0, t.animating = !1; 2903 for (var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1) 2904 s.trigger(e[i]) 2905 } 2906 }) 2907 } 2908 } 2909 }, 2910 ie = { 2911 setTranslate: function() { 2912 var e, 2913 t = this.$el, 2914 i = this.$wrapperEl, 2915 a = this.slides, 2916 r = this.width, 2917 n = this.height, 2918 o = this.rtl, 2919 l = this.size, 2920 d = this.params.cubeEffect, 2921 h = this.isHorizontal(), 2922 p = this.virtual && this.params.virtual.enabled, 2923 c = 0; 2924 d.shadow && (h ? (0 === (e = i.find(".swiper-cube-shadow")).length && (e = s('<div class="swiper-cube-shadow"></div>'), i.append(e)), e.css({ 2925 height: r + "px" 2926 })) : 0 === (e = t.find(".swiper-cube-shadow")).length && (e = s('<div class="swiper-cube-shadow"></div>'), t.append(e))); 2927 for (var u = 0; u < a.length; u += 1) { 2928 var v = a.eq(u), 2929 f = u; 2930 p && (f = parseInt(v.attr("data-swiper-slide-index"), 10)); 2931 var m = 90 * f, 2932 g = Math.floor(m / 360);
vendor: 34,550 bytes, lines 2933-3698
2933 o && (m = -m, g = Math.floor(-m / 360)); 2934 var b = Math.max(Math.min(v[0].progress, 1), -1), 2935 w = 0, 2936 y = 0, 2937 x = 0; 2938 f % 4 == 0 ? (w = 4 * -g * l, x = 0) : (f - 1) % 4 == 0 ? (w = 0, x = 4 * -g * l) : (f - 2) % 4 == 0 ? (w = l + 4 * g * l, x = l) : (f - 3) % 4 == 0 && (w = -l, x = 3 * l + 4 * l * g), o && (w = -w), h || (y = w, w = 0); 2939 var E = "rotateX(" + (h ? 0 : -m) + "deg) rotateY(" + (h ? m : 0) + "deg) translate3d(" + w + "px, " + y + "px, " + x + "px)"; 2940 if (b <= 1 && b > -1 && (c = 90 * f + 90 * b, o && (c = 90 * -f - 90 * b)), v.transform(E), d.slideShadows) { 2941 var T = h ? v.find(".swiper-slide-shadow-left") : v.find(".swiper-slide-shadow-top"), 2942 S = h ? v.find(".swiper-slide-shadow-right") : v.find(".swiper-slide-shadow-bottom"); 2943 0 === T.length && (T = s('<div class="swiper-slide-shadow-' + (h ? "left" : "top") + '"></div>'), v.append(T)), 0 === S.length && (S = s('<div class="swiper-slide-shadow-' + (h ? "right" : "bottom") + '"></div>'), v.append(S)), T.length && (T[0].style.opacity = Math.max(-b, 0)), S.length && (S[0].style.opacity = Math.max(b, 0)) 2944 } 2945 } 2946 if (i.css({ 2947 "-webkit-transform-origin": "50% 50% -" + l / 2 + "px", 2948 "-moz-transform-origin": "50% 50% -" + l / 2 + "px", 2949 "-ms-transform-origin": "50% 50% -" + l / 2 + "px", 2950 "transform-origin": "50% 50% -" + l / 2 + "px" 2951 }), d.shadow) 2952 if (h) 2953 e.transform("translate3d(0px, " + (r / 2 + d.shadowOffset) + "px, " + -r / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + d.shadowScale + ")"); 2954 else { 2955 var C = Math.abs(c) - 90 * Math.floor(Math.abs(c) / 90), 2956 M = 1.5 - (Math.sin(2 * C * Math.PI / 360) / 2 + Math.cos(2 * C * Math.PI / 360) / 2), 2957 z = d.shadowScale, 2958 k = d.shadowScale / M, 2959 $ = d.shadowOffset; 2960 e.transform("scale3d(" + z + ", 1, " + k + ") translate3d(0px, " + (n / 2 + $) + "px, " + -n / 2 / k + "px) rotateX(-90deg)") 2961 } 2962 var L = P.isSafari || P.isUiWebView ? -l / 2 : 0; 2963 i.transform("translate3d(0px,0," + L + "px) rotateX(" + (this.isHorizontal() ? 0 : c) + "deg) rotateY(" + (this.isHorizontal() ? -c : 0) + "deg)") 2964 }, 2965 setTransition: function(e) { 2966 var t = this.$el; 2967 this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e) 2968 } 2969 }, 2970 se = { 2971 setTranslate: function() { 2972 for (var e = this.slides, t = 0; t < e.length; t += 1) { 2973 var i = e.eq(t), 2974 a = i[0].progress; 2975 this.params.flipEffect.limitRotation && (a = Math.max(Math.min(i[0].progress, 1), -1)); 2976 var r = -180 * a, 2977 n = 0, 2978 o = -i[0].swiperSlideOffset, 2979 l = 0; 2980 if (this.isHorizontal() ? this.rtl && (r = -r) : (l = o, o = 0, n = -r, r = 0), i[0].style.zIndex = -Math.abs(Math.round(a)) + e.length, this.params.flipEffect.slideShadows) { 2981 var d = this.isHorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top"), 2982 h = this.isHorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom"); 2983 0 === d.length && (d = s('<div class="swiper-slide-shadow-' + (this.isHorizontal() ? "left" : "top") + '"></div>'), i.append(d)), 0 === h.length && (h = s('<div class="swiper-slide-shadow-' + (this.isHorizontal() ? "right" : "bottom") + '"></div>'), i.append(h)), d.length && (d[0].style.opacity = Math.max(-a, 0)), h.length && (h[0].style.opacity = Math.max(a, 0)) 2984 } 2985 i.transform("translate3d(" + o + "px, " + l + "px, 0px) rotateX(" + n + "deg) rotateY(" + r + "deg)") 2986 } 2987 }, 2988 setTransition: function(e) { 2989 var t = this, 2990 i = t.slides, 2991 s = t.activeIndex, 2992 a = t.$wrapperEl; 2993 if (i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), t.params.virtualTranslate && 0 !== e) { 2994 var r = !1; 2995 i.eq(s).transitionEnd(function() { 2996 if (!r && t && !t.destroyed) { 2997 r = !0, t.animating = !1; 2998 for (var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1) 2999 a.trigger(e[i]) 3000 } 3001 }) 3002 } 3003 } 3004 }, 3005 ae = { 3006 setTranslate: function() { 3007 for (var e = this.width, t = this.height, i = this.slides, a = this.$wrapperEl, r = this.slidesSizesGrid, n = this.params.coverflowEffect, o = this.isHorizontal(), l = this.translate, d = o ? e / 2 - l : t / 2 - l, p = o ? n.rotate : -n.rotate, c = n.depth, u = 0, v = i.length; u < v; u += 1) { 3008 var f = i.eq(u), 3009 m = r[u], 3010 g = (d - f[0].swiperSlideOffset - m / 2) / m * n.modifier, 3011 b = o ? p * g : 0, 3012 w = o ? 0 : p * g, 3013 y = -c * Math.abs(g), 3014 x = o ? 0 : n.stretch * g, 3015 E = o ? n.stretch * g : 0; 3016 Math.abs(E) < .001 && (E = 0), Math.abs(x) < .001 && (x = 0), Math.abs(y) < .001 && (y = 0), Math.abs(b) < .001 && (b = 0), Math.abs(w) < .001 && (w = 0); 3017 var T = "translate3d(" + E + "px," + x + "px," + y + "px) rotateX(" + w + "deg) rotateY(" + b + "deg)"; 3018 if (f.transform(T), f[0].style.zIndex = 1 - Math.abs(Math.round(g)), n.slideShadows) { 3019 var S = o ? f.find(".swiper-slide-shadow-left") : f.find(".swiper-slide-shadow-top"), 3020 C = o ? f.find(".swiper-slide-shadow-right") : f.find(".swiper-slide-shadow-bottom"); 3021 0 === S.length && (S = s('<div class="swiper-slide-shadow-' + (o ? "left" : "top") + '"></div>'), f.append(S)), 0 === C.length && (C = s('<div class="swiper-slide-shadow-' + (o ? "right" : "bottom") + '"></div>'), f.append(C)), S.length && (S[0].style.opacity = g > 0 ? g : 0), C.length && (C[0].style.opacity = -g > 0 ? -g : 0) 3022 } 3023 } 3024 (h.pointerEvents || h.prefixedPointerEvents) && (a[0].style.perspectiveOrigin = d + "px 50%") 3025 }, 3026 setTransition: function(e) { 3027 this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e) 3028 } 3029 }, 3030 re = [D, O, A, H, X, B, V, { 3031 name: "mousewheel", 3032 params: { 3033 mousewheel: { 3034 enabled: !1, 3035 releaseOnEdges: !1, 3036 invert: !1, 3037 forceToAxis: !1, 3038 sensitivity: 1, 3039 eventsTarged: "container" 3040 } 3041 }, 3042 create: function() { 3043 d.extend(this, { 3044 mousewheel: { 3045 enabled: !1, 3046 enable: R.enable.bind(this), 3047 disable: R.disable.bind(this), 3048 handle: R.handle.bind(this), 3049 lastScrollTime: d.now() 3050 } 3051 }) 3052 }, 3053 on: { 3054 init: function() { 3055 this.params.mousewheel.enabled && this.mousewheel.enable() 3056 }, 3057 destroy: function() { 3058 this.mousewheel.enabled && this.mousewheel.disable() 3059 } 3060 } 3061 }, { 3062 name: "navigation", 3063 params: { 3064 navigation: { 3065 nextEl: null, 3066 prevEl: null, 3067 hideOnClick: !1, 3068 disabledClass: "swiper-button-disabled", 3069 hiddenClass: "swiper-button-hidden", 3070 lockClass: "swiper-button-lock" 3071 } 3072 }, 3073 create: function() { 3074 d.extend(this, { 3075 navigation: { 3076 init: F.init.bind(this), 3077 update: F.update.bind(this), 3078 destroy: F.destroy.bind(this) 3079 } 3080 }) 3081 }, 3082 on: { 3083 init: function() { 3084 this.navigation.init(), this.navigation.update() 3085 }, 3086 toEdge: function() { 3087 this.navigation.update() 3088 }, 3089 fromEdge: function() { 3090 this.navigation.update() 3091 }, 3092 destroy: function() { 3093 this.navigation.destroy() 3094 }, 3095 click: function(e) { 3096 var t = this.navigation, 3097 i = t.$nextEl, 3098 a = t.$prevEl; 3099 !this.params.navigation.hideOnClick || s(e.target).is(a) || s(e.target).is(i) || (i && i.toggleClass(this.params.navigation.hiddenClass), a && a.toggleClass(this.params.navigation.hiddenClass)) 3100 } 3101 } 3102 }, { 3103 name: "pagination", 3104 params: { 3105 pagination: { 3106 el: null, 3107 bulletElement: "span", 3108 clickable: !1, 3109 hideOnClick: !1, 3110 renderBullet: null, 3111 renderProgressbar: null, 3112 renderFraction: null, 3113 renderCustom: null, 3114 type: "bullets", 3115 dynamicBullets: !1, 3116 dynamicMainBullets: 1, 3117 bulletClass: "swiper-pagination-bullet", 3118 bulletActiveClass: "swiper-pagination-bullet-active", 3119 modifierClass: "swiper-pagination-", 3120 currentClass: "swiper-pagination-current", 3121 totalClass: "swiper-pagination-total", 3122 hiddenClass: "swiper-pagination-hidden", 3123 progressbarFillClass: "swiper-pagination-progressbar-fill", 3124 clickableClass: "swiper-pagination-clickable", 3125 lockClass: "swiper-pagination-lock" 3126 } 3127 }, 3128 create: function() { 3129 d.extend(this, { 3130 pagination: { 3131 init: W.init.bind(this), 3132 render: W.render.bind(this), 3133 update: W.update.bind(this), 3134 destroy: W.destroy.bind(this), 3135 dynamicBulletIndex: 0 3136 } 3137 }) 3138 }, 3139 on: { 3140 init: function() { 3141 this.pagination.init(), this.pagination.render(), this.pagination.update() 3142 }, 3143 activeIndexChange: function() { 3144 this.params.loop ? this.pagination.update() : void 0 === this.snapIndex && this.pagination.update() 3145 }, 3146 snapIndexChange: function() { 3147 this.params.loop || this.pagination.update() 3148 }, 3149 slidesLengthChange: function() { 3150 this.params.loop && (this.pagination.render(), this.pagination.update()) 3151 }, 3152 snapGridLengthChange: function() { 3153 this.params.loop || (this.pagination.render(), this.pagination.update()) 3154 }, 3155 destroy: function() { 3156 this.pagination.destroy() 3157 }, 3158 click: function(e) { 3159 this.params.pagination.el && this.params.pagination.hideOnClick && this.pagination.$el.length > 0 && !s(e.target).hasClass(this.params.pagination.bulletClass) && this.pagination.$el.toggleClass(this.params.pagination.hiddenClass) 3160 } 3161 } 3162 }, { 3163 name: "scrollbar", 3164 params: { 3165 scrollbar: { 3166 el: null, 3167 dragSize: "auto", 3168 hide: !1, 3169 draggable: !1, 3170 snapOnRelease: !0, 3171 lockClass: "swiper-scrollbar-lock", 3172 dragClass: "swiper-scrollbar-drag" 3173 } 3174 }, 3175 create: function() { 3176 d.extend(this, { 3177 scrollbar: { 3178 init: q.init.bind(this), 3179 destroy: q.destroy.bind(this), 3180 updateSize: q.updateSize.bind(this), 3181 setTranslate: q.setTranslate.bind(this), 3182 setTransition: q.setTransition.bind(this), 3183 enableDraggable: q.enableDraggable.bind(this), 3184 disableDraggable: q.disableDraggable.bind(this), 3185 setDragPosition: q.setDragPosition.bind(this), 3186 onDragStart: q.onDragStart.bind(this), 3187 onDragMove: q.onDragMove.bind(this), 3188 onDragEnd: q.onDragEnd.bind(this), 3189 isTouched: !1, 3190 timeout: null, 3191 dragTimeout: null 3192 } 3193 }) 3194 }, 3195 on: { 3196 init: function() { 3197 this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate() 3198 }, 3199 update: function() { 3200 this.scrollbar.updateSize() 3201 }, 3202 resize: function() { 3203 this.scrollbar.updateSize() 3204 }, 3205 observerUpdate: function() { 3206 this.scrollbar.updateSize() 3207 }, 3208 setTranslate: function() { 3209 this.scrollbar.setTranslate() 3210 }, 3211 setTransition: function(e) { 3212 this.scrollbar.setTransition(e) 3213 }, 3214 destroy: function() { 3215 this.scrollbar.destroy() 3216 } 3217 } 3218 }, { 3219 name: "parallax", 3220 params: { 3221 parallax: { 3222 enabled: !1 3223 } 3224 }, 3225 create: function() { 3226 d.extend(this, { 3227 parallax: { 3228 setTransform: j.setTransform.bind(this), 3229 setTranslate: j.setTranslate.bind(this), 3230 setTransition: j.setTransition.bind(this) 3231 } 3232 }) 3233 }, 3234 on: { 3235 beforeInit: function() { 3236 this.params.parallax.enabled && (this.params.watchSlidesProgress = !0) 3237 }, 3238 init: function() { 3239 this.params.parallax && this.parallax.setTranslate() 3240 }, 3241 setTranslate: function() { 3242 this.params.parallax && this.parallax.setTranslate() 3243 }, 3244 setTransition: function(e) { 3245 this.params.parallax && this.parallax.setTransition(e) 3246 } 3247 } 3248 }, { 3249 name: "zoom", 3250 params: { 3251 zoom: { 3252 enabled: !1, 3253 maxRatio: 3, 3254 minRatio: 1, 3255 toggle: !0, 3256 containerClass: "swiper-zoom-container", 3257 zoomedSlideClass: "swiper-slide-zoomed" 3258 } 3259 }, 3260 create: function() { 3261 var e = this, 3262 t = { 3263 enabled: !1, 3264 scale: 1, 3265 currentScale: 1, 3266 isScaling: !1, 3267 gesture: { 3268 $slideEl: void 0, 3269 slideWidth: void 0, 3270 slideHeight: void 0, 3271 $imageEl: void 0, 3272 $imageWrapEl: void 0, 3273 maxRatio: 3 3274 }, 3275 image: { 3276 isTouched: void 0, 3277 isMoved: void 0, 3278 currentX: void 0, 3279 currentY: void 0, 3280 minX: void 0, 3281 minY: void 0, 3282 maxX: void 0, 3283 maxY: void 0, 3284 width: void 0, 3285 height: void 0, 3286 startX: void 0, 3287 startY: void 0, 3288 touchesStart: {}, 3289 touchesCurrent: {} 3290 }, 3291 velocity: { 3292 x: void 0, 3293 y: void 0, 3294 prevPositionX: void 0, 3295 prevPositionY: void 0, 3296 prevTime: void 0 3297 } 3298 }; 3299 "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function(i) { 3300 t[i] = K[i].bind(e) 3301 }), d.extend(e, { 3302 zoom: t 3303 }) 3304 }, 3305 on: { 3306 init: function() { 3307 this.params.zoom.enabled && this.zoom.enable() 3308 }, 3309 destroy: function() { 3310 this.zoom.disable() 3311 }, 3312 touchStart: function(e) { 3313 this.zoom.enabled && this.zoom.onTouchStart(e) 3314 }, 3315 touchEnd: function(e) { 3316 this.zoom.enabled && this.zoom.onTouchEnd(e) 3317 }, 3318 doubleTap: function(e) { 3319 this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this.zoom.toggle(e) 3320 }, 3321 transitionEnd: function() { 3322 this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd() 3323 } 3324 } 3325 }, { 3326 name: "lazy", 3327 params: { 3328 lazy: { 3329 enabled: !1, 3330 loadPrevNext: !1, 3331 loadPrevNextAmount: 1, 3332 loadOnTransitionStart: !1, 3333 elementClass: "swiper-lazy", 3334 loadingClass: "swiper-lazy-loading", 3335 loadedClass: "swiper-lazy-loaded", 3336 preloaderClass: "swiper-lazy-preloader" 3337 } 3338 }, 3339 create: function() { 3340 d.extend(this, { 3341 lazy: { 3342 initialImageLoaded: !1, 3343 load: U.load.bind(this), 3344 loadInSlide: U.loadInSlide.bind(this) 3345 } 3346 }) 3347 }, 3348 on: { 3349 beforeInit: function() { 3350 this.params.lazy.enabled && this.params.preloadImages && (this.params.preloadImages = !1) 3351 }, 3352 init: function() { 3353 this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide && this.lazy.load() 3354 }, 3355 scroll: function() { 3356 this.params.freeMode && !this.params.freeModeSticky && this.lazy.load() 3357 }, 3358 resize: function() { 3359 this.params.lazy.enabled && this.lazy.load() 3360 }, 3361 scrollbarDragMove: function() { 3362 this.params.lazy.enabled && this.lazy.load() 3363 }, 3364 transitionStart: function() { 3365 this.params.lazy.enabled && (this.params.lazy.loadOnTransitionStart || !this.params.lazy.loadOnTransitionStart && !this.lazy.initialImageLoaded) && this.lazy.load() 3366 }, 3367 transitionEnd: function() { 3368 this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy.load() 3369 } 3370 } 3371 }, { 3372 name: "controller", 3373 params: { 3374 controller: { 3375 control: void 0, 3376 inverse: !1, 3377 by: "slide" 3378 } 3379 }, 3380 create: function() { 3381 d.extend(this, { 3382 controller: { 3383 control: this.params.controller.control, 3384 getInterpolateFunction: _.getInterpolateFunction.bind(this), 3385 setTranslate: _.setTranslate.bind(this), 3386 setTransition: _.setTransition.bind(this) 3387 } 3388 }) 3389 }, 3390 on: { 3391 update: function() { 3392 this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline) 3393 }, 3394 resize: function() { 3395 this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline) 3396 }, 3397 observerUpdate: function() { 3398 this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline) 3399 }, 3400 setTranslate: function(e, t) { 3401 this.controller.control && this.controller.setTranslate(e, t) 3402 }, 3403 setTransition: function(e, t) { 3404 this.controller.control && this.controller.setTransition(e, t) 3405 } 3406 } 3407 }, { 3408 name: "a11y", 3409 params: { 3410 a11y: { 3411 enabled: !1, 3412 notificationClass: "swiper-notification", 3413 prevSlideMessage: "Previous slide", 3414 nextSlideMessage: "Next slide", 3415 firstSlideMessage: "This is the first slide", 3416 lastSlideMessage: "This is the last slide", 3417 paginationBulletMessage: "Go to slide {{index}}" 3418 } 3419 }, 3420 create: function() { 3421 var e = this; 3422 d.extend(e, { 3423 a11y: { 3424 liveRegion: s('<span class="' + e.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>') 3425 } 3426 }), Object.keys(Z).forEach(function(t) { 3427 e.a11y[t] = Z[t].bind(e) 3428 }) 3429 }, 3430 on: { 3431 init: function() { 3432 this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation()) 3433 }, 3434 toEdge: function() { 3435 this.params.a11y.enabled && this.a11y.updateNavigation() 3436 }, 3437 fromEdge: function() { 3438 this.params.a11y.enabled && this.a11y.updateNavigation() 3439 }, 3440 paginationUpdate: function() { 3441 this.params.a11y.enabled && this.a11y.updatePagination() 3442 }, 3443 destroy: function() { 3444 this.params.a11y.enabled && this.a11y.destroy() 3445 } 3446 } 3447 }, { 3448 name: "history", 3449 params: { 3450 history: { 3451 enabled: !1, 3452 replaceState: !1, 3453 key: "slides" 3454 } 3455 }, 3456 create: function() { 3457 d.extend(this, { 3458 history: { 3459 init: Q.init.bind(this), 3460 setHistory: Q.setHistory.bind(this), 3461 setHistoryPopState: Q.setHistoryPopState.bind(this), 3462 scrollToSlide: Q.scrollToSlide.bind(this), 3463 destroy: Q.destroy.bind(this) 3464 } 3465 }) 3466 }, 3467 on: { 3468 init: function() { 3469 this.params.history.enabled && this.history.init() 3470 }, 3471 destroy: function() { 3472 this.params.history.enabled && this.history.destroy() 3473 }, 3474 transitionEnd: function() { 3475 this.history.initialized && this.history.setHistory(this.params.history.key, this.activeIndex) 3476 } 3477 } 3478 }, { 3479 name: "hash-navigation", 3480 params: { 3481 hashNavigation: { 3482 enabled: !1, 3483 replaceState: !1, 3484 watchState: !1 3485 } 3486 }, 3487 create: function() { 3488 d.extend(this, { 3489 hashNavigation: { 3490 initialized: !1, 3491 init: J.init.bind(this), 3492 destroy: J.destroy.bind(this), 3493 setHash: J.setHash.bind(this), 3494 onHashCange: J.onHashCange.bind(this) 3495 } 3496 }) 3497 }, 3498 on: { 3499 init: function() { 3500 this.params.hashNavigation.enabled && this.hashNavigation.init() 3501 }, 3502 destroy: function() { 3503 this.params.hashNavigation.enabled && this.hashNavigation.destroy() 3504 }, 3505 transitionEnd: function() { 3506 this.hashNavigation.initialized && this.hashNavigation.setHash() 3507 } 3508 } 3509 }, { 3510 name: "autoplay", 3511 params: { 3512 autoplay: { 3513 enabled: !1, 3514 delay: 3e3, 3515 waitForTransition: !0, 3516 disableOnInteraction: !0, 3517 stopOnLastSlide: !1, 3518 reverseDirection: !1 3519 } 3520 }, 3521 create: function() { 3522 d.extend(this, { 3523 autoplay: { 3524 running: !1, 3525 paused: !1, 3526 run: ee.run.bind(this), 3527 start: ee.start.bind(this), 3528 stop: ee.stop.bind(this), 3529 pause: ee.pause.bind(this) 3530 } 3531 }) 3532 }, 3533 on: { 3534 init: function() { 3535 this.params.autoplay.enabled && this.autoplay.start() 3536 }, 3537 beforeTransitionStart: function(e, t) { 3538 this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this.autoplay.pause(e) : this.autoplay.stop()) 3539 }, 3540 sliderFirstMove: function() { 3541 this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay.stop() : this.autoplay.pause()) 3542 }, 3543 destroy: function() { 3544 this.autoplay.running && this.autoplay.stop() 3545 } 3546 } 3547 }, { 3548 name: "effect-fade", 3549 params: { 3550 fadeEffect: { 3551 crossFade: !1 3552 } 3553 }, 3554 create: function() { 3555 d.extend(this, { 3556 fadeEffect: { 3557 setTranslate: te.setTranslate.bind(this), 3558 setTransition: te.setTransition.bind(this) 3559 } 3560 }) 3561 }, 3562 on: { 3563 beforeInit: function() { 3564 if ("fade" === this.params.effect) { 3565 this.classNames.push(this.params.containerModifierClass + "fade"); 3566 var e = { 3567 slidesPerView: 1, 3568 slidesPerColumn: 1, 3569 slidesPerGroup: 1, 3570 watchSlidesProgress: !0, 3571 spaceBetween: 0, 3572 virtualTranslate: !0 3573 }; 3574 d.extend(this.params, e), d.extend(this.originalParams, e) 3575 } 3576 }, 3577 setTranslate: function() { 3578 "fade" === this.params.effect && this.fadeEffect.setTranslate() 3579 }, 3580 setTransition: function(e) { 3581 "fade" === this.params.effect && this.fadeEffect.setTransition(e) 3582 } 3583 } 3584 }, { 3585 name: "effect-cube", 3586 params: { 3587 cubeEffect: { 3588 slideShadows: !0, 3589 shadow: !0, 3590 shadowOffset: 20, 3591 shadowScale: .94 3592 } 3593 }, 3594 create: function() { 3595 d.extend(this, { 3596 cubeEffect: { 3597 setTranslate: ie.setTranslate.bind(this), 3598 setTransition: ie.setTransition.bind(this) 3599 } 3600 }) 3601 }, 3602 on: { 3603 beforeInit: function() { 3604 if ("cube" === this.params.effect) { 3605 this.classNames.push(this.params.containerModifierClass + "cube"), this.classNames.push(this.params.containerModifierClass + "3d"); 3606 var e = { 3607 slidesPerView: 1, 3608 slidesPerColumn: 1, 3609 slidesPerGroup: 1, 3610 watchSlidesProgress: !0, 3611 resistanceRatio: 0, 3612 spaceBetween: 0, 3613 centeredSlides: !1, 3614 virtualTranslate: !0 3615 }; 3616 d.extend(this.params, e), d.extend(this.originalParams, e) 3617 } 3618 }, 3619 setTranslate: function() { 3620 "cube" === this.params.effect && this.cubeEffect.setTranslate() 3621 }, 3622 setTransition: function(e) { 3623 "cube" === this.params.effect && this.cubeEffect.setTransition(e) 3624 } 3625 } 3626 }, { 3627 name: "effect-flip", 3628 params: { 3629 flipEffect: { 3630 slideShadows: !0, 3631 limitRotation: !0 3632 } 3633 }, 3634 create: function() { 3635 d.extend(this, { 3636 flipEffect: { 3637 setTranslate: se.setTranslate.bind(this), 3638 setTransition: se.setTransition.bind(this) 3639 } 3640 }) 3641 }, 3642 on: { 3643 beforeInit: function() { 3644 if ("flip" === this.params.effect) { 3645 this.classNames.push(this.params.containerModifierClass + "flip"), this.classNames.push(this.params.containerModifierClass + "3d"); 3646 var e = { 3647 slidesPerView: 1, 3648 slidesPerColumn: 1, 3649 slidesPerGroup: 1, 3650 watchSlidesProgress: !0, 3651 spaceBetween: 0, 3652 virtualTranslate: !0 3653 }; 3654 d.extend(this.params, e), d.extend(this.originalParams, e) 3655 } 3656 }, 3657 setTranslate: function() { 3658 "flip" === this.params.effect && this.flipEffect.setTranslate() 3659 }, 3660 setTransition: function(e) { 3661 "flip" === this.params.effect && this.flipEffect.setTransition(e) 3662 } 3663 } 3664 }, { 3665 name: "effect-coverflow", 3666 params: { 3667 coverflowEffect: { 3668 rotate: 50, 3669 stretch: 0, 3670 depth: 100, 3671 modifier: 1, 3672 slideShadows: !0 3673 } 3674 }, 3675 create: function() { 3676 d.extend(this, { 3677 coverflowEffect: { 3678 setTranslate: ae.setTranslate.bind(this), 3679 setTransition: ae.setTransition.bind(this) 3680 } 3681 }) 3682 }, 3683 on: { 3684 beforeInit: function() { 3685 "coverflow" === this.params.effect && (this.classNames.push(this.params.containerModifierClass + "coverflow"), this.classNames.push(this.params.containerModifierClass + "3d"), this.params.watchSlidesProgress = !0, this.originalParams.watchSlidesProgress = !0) 3686 }, 3687 setTranslate: function() { 3688 "coverflow" === this.params.effect && this.coverflowEffect.setTranslate() 3689 }, 3690 setTransition: function(e) { 3691 "coverflow" === this.params.effect && this.coverflowEffect.setTransition(e) 3692 } 3693 } 3694 }]; 3695 return void 0 === I.use && (I.use = I.Class.use, I.installModule = I.Class.installModule), I.use(re), I 3696}); 3697//# sourceMappingURL=swiper.min.js.map 3698
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.