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