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