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