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