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