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