1/** 2 * @license 3 * Copyright 2019 Google LLC 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6const e = window, 7 t = 8 e.ShadowRoot && 9 (void 0 === e.ShadyCSS || e.ShadyCSS.nativeShadow) && 10 "adoptedStyleSheets" in Document.prototype && 11 "replace" in CSSStyleSheet.prototype, 12 i = Symbol(), 13 s = new WeakMap(); 14class n { 15 constructor(e, t, s) { 16 if (((this._$cssResult$ = !0), s !== i)) 17 throw Error( 18 "CSSResult is not constructable. Use `unsafeCSS` or `css` instead." 19 ); 20 (this.cssText = e), (this.t = t); 21 } 22 get styleSheet() { 23 let e = this.o; 24 const i = this.t; 25 if (t && void 0 === e) { 26 const t = void 0 !== i && 1 === i.length; 27 t && (e = s.get(i)), 28 void 0 === e && 29 ((this.o = e = new CSSStyleSheet()).replaceSync(this.cssText), 30 t && s.set(i, e)); 31 } 32 return e; 33 } 34 toString() { 35 return this.cssText; 36 } 37} 38const r = t 39 ? (e) => e 40 : (e) => 41 e instanceof CSSStyleSheet 42 ? ((e) => { 43 let t = ""; 44 for (const i of e.cssRules) t += i.cssText; 45 return ((e) => new n("string" == typeof e ? e : e + "", void 0, i))( 46 t 47 ); 48 })(e) 49 : e; 50/** 51 * @license 52 * Copyright 2017 Google LLC 53 * SPDX-License-Identifier: BSD-3-Clause 54 */ var o; 55const a = window, 56 l = a.trustedTypes, 57 c = l ? l.emptyScript : "", 58 d = a.reactiveElementPolyfillSupport, 59 p = { 60 toAttribute(e, t) { 61 switch (t) { 62 case Boolean: 63 e = e ? c : null; 64 break; 65 case Object: 66 case Array: 67 e = null == e ? e : JSON.stringify(e); 68 } 69 return e; 70 }, 71 fromAttribute(e, t) { 72 let i = e; 73 switch (t) { 74 case Boolean: 75 i = null !== e; 76 break; 77 case Number: 78 i = null === e ? null : Number(e); 79 break; 80 case Object: 81 case Array: 82 try { 83 i = JSON.parse(e); 84 } catch (e) { 85 i = null; 86 } 87 } 88 return i; 89 }, 90 }, 91 u = (e, t) => t !== e && (t == t || e == e), 92 h = { attribute: !0, type: String, converter: p, reflect: !1, hasChanged: u }; 93class f extends HTMLElement { 94 constructor() { 95 super(), 96 (this._$Ei = new Map()), 97 (this.isUpdatePending = !1), 98 (this.hasUpdated = !1), 99 (this._$El = null), 100 this.u(); 101 } 102 static addInitializer(e) { 103 var t; 104 this.finalize(), 105 (null !== (t = this.h) && void 0 !== t ? t : (this.h = [])).push(e); 106 } 107 static get observedAttributes() { 108 this.finalize(); 109 const e = []; 110 return ( 111 this.elementProperties.forEach((t, i) => { 112 const s = this._$Ep(i, t); 113 void 0 !== s && (this._$Ev.set(s, i), e.push(s)); 114 }), 115 e 116 ); 117 } 118 static createProperty(e, t = h) { 119 if ( 120 (t.state && (t.attribute = !1), 121 this.finalize(), 122 this.elementProperties.set(e, t), 123 !t.noAccessor && !this.prototype.hasOwnProperty(e)) 124 ) { 125 const i = "symbol" == typeof e ? Symbol() : "__" + e, 126 s = this.getPropertyDescriptor(e, i, t); 127 void 0 !== s && Object.defineProperty(this.prototype, e, s); 128 } 129 } 130 static getPropertyDescriptor(e, t, i) { 131 return { 132 get() { 133 return this[t]; 134 }, 135 set(s) { 136 const n = this[e]; 137 (this[t] = s), this.requestUpdate(e, n, i); 138 }, 139 configurable: !0, 140 enumerable: !0, 141 }; 142 } 143 static getPropertyOptions(e) { 144 return this.elementProperties.get(e) || h; 145 } 146 static finalize() { 147 if (this.hasOwnProperty("finalized")) return !1; 148 this.finalized = !0; 149 const e = Object.getPrototypeOf(this); 150 if ( 151 (e.finalize(), 152 void 0 !== e.h && (this.h = [...e.h]), 153 (this.elementProperties = new Map(e.elementProperties)), 154 (this._$Ev = new Map()), 155 this.hasOwnProperty("properties")) 156 ) { 157 const e = this.properties, 158 t = [ 159 ...Object.getOwnPropertyNames(e), 160 ...Object.getOwnPropertySymbols(e), 161 ]; 162 for (const i of t) this.createProperty(i, e[i]); 163 } 164 return (this.elementStyles = this.finalizeStyles(this.styles)), !0; 165 } 166 static finalizeStyles(e) { 167 const t = []; 168 if (Array.isArray(e)) { 169 const i = new Set(e.flat(1 / 0).reverse()); 170 for (const e of i) t.unshift(r(e)); 171 } else void 0 !== e && t.push(r(e)); 172 return t; 173 } 174 static _$Ep(e, t) { 175 const i = t.attribute; 176 return !1 === i 177 ? void 0 178 : "string" == typeof i 179 ? i 180 : "string" == typeof e 181 ? e.toLowerCase() 182 : void 0; 183 } 184 u() { 185 var e; 186 (this._$E_ = new Promise((e) => (this.enableUpdating = e))), 187 (this._$AL = new Map()), 188 this._$Eg(), 189 this.requestUpdate(), 190 null === (e = this.constructor.h) || 191 void 0 === e || 192 e.forEach((e) => e(this)); 193 } 194 addController(e) { 195 var t, i; 196 (null !== (t = this._$ES) && void 0 !== t ? t : (this._$ES = [])).push(e), 197 void 0 !== this.renderRoot && 198 this.isConnected && 199 (null === (i = e.hostConnected) || void 0 === i || i.call(e)); 200 } 201 removeController(e) { 202 var t; 203 null === (t = this._$ES) || 204 void 0 === t || 205 t.splice(this._$ES.indexOf(e) >>> 0, 1); 206 } 207 _$Eg() {
208 this.constructor.elementProperties.forEach((e, t) => { 209 this.hasOwnProperty(t) && (this._$Ei.set(t, this[t]), delete this[t]); 210 }); 211 } 212 createRenderRoot() { 213 var i; 214 const s = 215 null !== (i = this.shadowRoot) && void 0 !== i 216 ? i 217 : this.attachShadow(this.constructor.shadowRootOptions); 218 return ( 219 ((i, s) => { 220 t 221 ? (i.adoptedStyleSheets = s.map((e) => 222 e instanceof CSSStyleSheet ? e : e.styleSheet 223 )) 224 : s.forEach((t) => { 225 const s = document.createElement("style"), 226 n = e.litNonce; 227 void 0 !== n && s.setAttribute("nonce", n), 228 (s.textContent = t.cssText), 229 i.appendChild(s); 230 }); 231 })(s, this.constructor.elementStyles), 232 s 233 ); 234 } 235 connectedCallback() { 236 var e; 237 void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), 238 this.enableUpdating(!0), 239 null === (e = this._$ES) || 240 void 0 === e || 241 e.forEach((e) => { 242 var t; 243 return null === (t = e.hostConnected) || void 0 === t 244 ? void 0 245 : t.call(e); 246 }); 247 } 248 enableUpdating(e) {} 249 disconnectedCallback() { 250 var e; 251 null === (e = this._$ES) || 252 void 0 === e || 253 e.forEach((e) => { 254 var t; 255 return null === (t = e.hostDisconnected) || void 0 === t 256 ? void 0 257 : t.call(e); 258 }); 259 } 260 attributeChangedCallback(e, t, i) { 261 this._$AK(e, i); 262 } 263 _$EO(e, t, i = h) { 264 var s; 265 const n = this.constructor._$Ep(e, i); 266 if (void 0 !== n && !0 === i.reflect) { 267 const r = ( 268 void 0 !== 269 (null === (s = i.converter) || void 0 === s ? void 0 : s.toAttribute) 270 ? i.converter 271 : p 272 ).toAttribute(t, i.type); 273 (this._$El = e), 274 null == r ? this.removeAttribute(n) : this.setAttribute(n, r), 275 (this._$El = null); 276 } 277 } 278 _$AK(e, t) { 279 var i; 280 const s = this.constructor, 281 n = s._$Ev.get(e); 282 if (void 0 !== n && this._$El !== n) { 283 const e = s.getPropertyOptions(n), 284 r = 285 "function" == typeof e.converter 286 ? { fromAttribute: e.converter } 287 : void 0 !== 288 (null === (i = e.converter) || void 0 === i 289 ? void 0 290 : i.fromAttribute) 291 ? e.converter 292 : p; 293 (this._$El = n), 294 (this[n] = r.fromAttribute(t, e.type)), 295 (this._$El = null); 296 } 297 } 298 requestUpdate(e, t, i) { 299 let s = !0; 300 void 0 !== e && 301 (((i = i || this.constructor.getPropertyOptions(e)).hasChanged || u)( 302 this[e], 303 t 304 ) 305 ? (this._$AL.has(e) || this._$AL.set(e, t), 306 !0 === i.reflect && 307 this._$El !== e && 308 (void 0 === this._$EC && (this._$EC = new Map()), 309 this._$EC.set(e, i))) 310 : (s = !1)), 311 !this.isUpdatePending && s && (this._$E_ = this._$Ej()); 312 } 313 async _$Ej() { 314 this.isUpdatePending = !0; 315 try { 316 await this._$E_; 317 } catch (e) { 318 Promise.reject(e); 319 } 320 const e = this.scheduleUpdate(); 321 return null != e && (await e), !this.isUpdatePending; 322 } 323 scheduleUpdate() { 324 return this.performUpdate(); 325 } 326 performUpdate() { 327 var e; 328 if (!this.isUpdatePending) return; 329 this.hasUpdated, 330 this._$Ei && 331 (this._$Ei.forEach((e, t) => (this[t] = e)), (this._$Ei = void 0)); 332 let t = !1; 333 const i = this._$AL; 334 try { 335 (t = this.shouldUpdate(i)), 336 t 337 ? (this.willUpdate(i), 338 null === (e = this._$ES) || 339 void 0 === e || 340 e.forEach((e) => { 341 var t; 342 return null === (t = e.hostUpdate) || void 0 === t 343 ? void 0 344 : t.call(e); 345 }), 346 this.update(i)) 347 : this._$Ek(); 348 } catch (e) { 349 throw ((t = !1), this._$Ek(), e); 350 } 351 t && this._$AE(i); 352 } 353 willUpdate(e) {} 354 _$AE(e) { 355 var t; 356 null === (t = this._$ES) || 357 void 0 === t || 358 t.forEach((e) => { 359 var t; 360 return null === (t = e.hostUpdated) || void 0 === t 361 ? void 0 362 : t.call(e); 363 }), 364 this.hasUpdated || ((this.hasUpdated = !0), this.firstUpdated(e)), 365 this.updated(e); 366 } 367 _$Ek() { 368 (this._$AL = new Map()), (this.isUpdatePending = !1); 369 } 370 get updateComplete() { 371 return this.getUpdateComplete(); 372 } 373 getUpdateComplete() { 374 return this._$E_; 375 } 376 shouldUpdate(e) { 377 return !0; 378 } 379 update(e) { 380 void 0 !== this._$EC && 381 (this._$EC.forEach((e, t) => this._$EO(t, this[t], e)), 382 (this._$EC = void 0)), 383 this._$Ek(); 384 } 385 updated(e) {} 386 firstUpdated(e) {} 387} 388/** 389 * @license 390 * Copyright 2017 Google LLC 391 * SPDX-License-Identifier: BSD-3-Clause 392 */ 393var w; 394(f.finalized = !0), 395 (f.elementProperties = new Map()), 396 (f.elementStyles = []), 397 (f.shadowRootOptions = { mode: "open" }), 398 null == d || d({ ReactiveElement: f }), 399 (null !== (o = a.reactiveElementVersions) && void 0 !== o 400 ? o 401 : (a.reactiveElementVersions = []) 402 ).push("1.6.1"); 403const v = window, 404 g = v.trustedTypes, 405 b = g ? g.createPolicy("lit-html", { createHTML: (e) => e }) : void 0, 406 m = `lit$${(Math.random() + "").slice(9)}$`, 407 x = "?" + m, 408 A = `<${x}>`, 409 y = document, 410 M = (e = "") => y.createComment(e), 411 $ = (e) => null === e || ("object" != typeof e && "function" != typeof e), 412 S = Array.isArray, 413 E = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, 414 k = /-->/g, 415 T = />/g, 416 C = RegExp( 417 ">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)", 418 "g" 419 ), 420 z = /'/g, 421 P = /"/g, 422 O = /^(?:script|style|textarea|title)$/i, 423 j = ( 424 (e) => 425 (t, ...i) => ({ _$litType$: e, strings: t, values: i }) 426 )(1),
427 B = Symbol.for("lit-noChange"), 428 I = Symbol.for("lit-nothing"), 429 L = new WeakMap(), 430 _ = y.createTreeWalker(y, 129, null, !1), 431 G = (e, t) => { 432 const i = e.length - 1, 433 s = []; 434 let n, 435 r = 2 === t ? "<svg>" : "", 436 o = E; 437 for (let t = 0; t < i; t++) { 438 const i = e[t]; 439 let a, 440 l, 441 c = -1, 442 d = 0; 443 for (; d < i.length && ((o.lastIndex = d), (l = o.exec(i)), null !== l); ) 444 (d = o.lastIndex), 445 o === E 446 ? "!--" === l[1] 447 ? (o = k) 448 : void 0 !== l[1] 449 ? (o = T) 450 : void 0 !== l[2] 451 ? (O.test(l[2]) && (n = RegExp("</" + l[2], "g")), (o = C)) 452 : void 0 !== l[3] && (o = C) 453 : o === C 454 ? ">" === l[0] 455 ? ((o = null != n ? n : E), (c = -1)) 456 : void 0 === l[1] 457 ? (c = -2) 458 : ((c = o.lastIndex - l[2].length), 459 (a = l[1]), 460 (o = void 0 === l[3] ? C : '"' === l[3] ? P : z)) 461 : o === P || o === z 462 ? (o = C) 463 : o === k || o === T 464 ? (o = E) 465 : ((o = C), (n = void 0)); 466 const p = o === C && e[t + 1].startsWith("/>") ? " " : ""; 467 r += 468 o === E 469 ? i + A 470 : c >= 0 471 ? (s.push(a), i.slice(0, c) + "$lit$" + i.slice(c) + m + p) 472 : i + m + (-2 === c ? (s.push(void 0), t) : p); 473 } 474 const a = r + (e[i] || "<?>") + (2 === t ? "</svg>" : ""); 475 if (!Array.isArray(e) || !e.hasOwnProperty("raw")) 476 throw Error("invalid template strings array"); 477 return [void 0 !== b ? b.createHTML(a) : a, s]; 478 }; 479class R { 480 constructor({ strings: e, _$litType$: t }, i) { 481 let s; 482 this.parts = []; 483 let n = 0, 484 r = 0; 485 const o = e.length - 1, 486 a = this.parts, 487 [l, c] = G(e, t); 488 if ( 489 ((this.el = R.createElement(l, i)), 490 (_.currentNode = this.el.content), 491 2 === t) 492 ) { 493 const e = this.el.content, 494 t = e.firstChild; 495 t.remove(), e.append(...t.childNodes); 496 } 497 for (; null !== (s = _.nextNode()) && a.length < o; ) { 498 if (1 === s.nodeType) { 499 if (s.hasAttributes()) { 500 const e = []; 501 for (const t of s.getAttributeNames()) 502 if (t.endsWith("$lit$") || t.startsWith(m)) { 503 const i = c[r++]; 504 if ((e.push(t), void 0 !== i)) { 505 const e = s.getAttribute(i.toLowerCase() + "$lit$").split(m), 506 t = /([.?@])?(.*)/.exec(i); 507 a.push({ 508 type: 1, 509 index: n, 510 name: t[2], 511 strings: e, 512 ctor: 513 "." === t[1] ? U : "?" === t[1] ? H : "@" === t[1] ? Q : N, 514 }); 515 } else a.push({ type: 6, index: n }); 516 } 517 for (const t of e) s.removeAttribute(t); 518 } 519 if (O.test(s.tagName)) { 520 const e = s.textContent.split(m), 521 t = e.length - 1; 522 if (t > 0) { 523 s.textContent = g ? g.emptyScript : ""; 524 for (let i = 0; i < t; i++) 525 s.append(e[i], M()), 526 _.nextNode(), 527 a.push({ type: 2, index: ++n }); 528 s.append(e[t], M()); 529 } 530 } 531 } else if (8 === s.nodeType) 532 if (s.data === x) a.push({ type: 2, index: n }); 533 else { 534 let e = -1; 535 for (; -1 !== (e = s.data.indexOf(m, e + 1)); ) 536 a.push({ type: 7, index: n }), (e += m.length - 1); 537 } 538 n++; 539 } 540 } 541 static createElement(e, t) { 542 const i = y.createElement("template"); 543 return (i.innerHTML = e), i; 544 } 545} 546function D(e, t, i = e, s) { 547 var n, r, o, a; 548 if (t === B) return t; 549 let l = 550 void 0 !== s 551 ? null === (n = i._$Co) || void 0 === n 552 ? void 0 553 : n[s] 554 : i._$Cl; 555 const c = $(t) ? void 0 : t._$litDirective$; 556 return ( 557 (null == l ? void 0 : l.constructor) !== c && 558 (null === (r = null == l ? void 0 : l._$AO) || 559 void 0 === r || 560 r.call(l, !1), 561 void 0 === c ? (l = void 0) : ((l = new c(e)), l._$AT(e, i, s)), 562 void 0 !== s 563 ? ((null !== (o = (a = i)._$Co) && void 0 !== o ? o : (a._$Co = []))[ 564 s 565 ] = l) 566 : (i._$Cl = l)), 567 void 0 !== l && (t = D(e, l._$AS(e, t.values), l, s)), 568 t 569 ); 570} 571class F { 572 constructor(e, t) { 573 (this.u = []), (this._$AN = void 0), (this._$AD = e), (this._$AM = t); 574 } 575 get parentNode() { 576 return this._$AM.parentNode; 577 } 578 get _$AU() { 579 return this._$AM._$AU; 580 } 581 v(e) { 582 var t; 583 const { 584 el: { content: i }, 585 parts: s, 586 } = this._$AD, 587 n = ( 588 null !== (t = null == e ? void 0 : e.creationScope) && void 0 !== t 589 ? t 590 : y 591 ).importNode(i, !0); 592 _.currentNode = n; 593 let r = _.nextNode(), 594 o = 0, 595 a = 0, 596 l = s[0]; 597 for (; void 0 !== l; ) { 598 if (o === l.index) { 599 let t; 600 2 === l.type 601 ? (t = new Y(r, r.nextSibling, this, e)) 602 : 1 === l.type 603 ? (t = new l.ctor(r, l.name, l.strings, this, e)) 604 : 6 === l.type && (t = new X(r, this, e)), 605 this.u.push(t), 606 (l = s[++a]); 607 } 608 o !== (null == l ? void 0 : l.index) && ((r = _.nextNode()), o++); 609 } 610 return n; 611 } 612 p(e) { 613 let t = 0; 614 for (const i of this.u) 615 void 0 !== i && 616 (void 0 !== i.strings
617 ? (i._$AI(e, i, t), (t += i.strings.length - 2)) 618 : i._$AI(e[t])), 619 t++; 620 } 621} 622class Y { 623 constructor(e, t, i, s) { 624 var n; 625 (this.type = 2), 626 (this._$AH = I), 627 (this._$AN = void 0), 628 (this._$AA = e), 629 (this._$AB = t), 630 (this._$AM = i), 631 (this.options = s), 632 (this._$Cm = 633 null === (n = null == s ? void 0 : s.isConnected) || void 0 === n || n); 634 } 635 get _$AU() { 636 var e, t; 637 return null !== 638 (t = null === (e = this._$AM) || void 0 === e ? void 0 : e._$AU) && 639 void 0 !== t 640 ? t 641 : this._$Cm; 642 } 643 get parentNode() { 644 let e = this._$AA.parentNode; 645 const t = this._$AM; 646 return void 0 !== t && 11 === e.nodeType && (e = t.parentNode), e; 647 } 648 get startNode() { 649 return this._$AA; 650 } 651 get endNode() { 652 return this._$AB; 653 } 654 _$AI(e, t = this) { 655 (e = D(this, e, t)), 656 $(e) 657 ? e === I || null == e || "" === e 658 ? (this._$AH !== I && this._$AR(), (this._$AH = I)) 659 : e !== this._$AH && e !== B && this.g(e) 660 : void 0 !== e._$litType$ 661 ? this.$(e) 662 : void 0 !== e.nodeType 663 ? this.T(e) 664 : ((e) => 665 S(e) || 666 "function" == typeof (null == e ? void 0 : e[Symbol.iterator]))(e) 667 ? this.k(e) 668 : this.g(e); 669 } 670 O(e, t = this._$AB) { 671 return this._$AA.parentNode.insertBefore(e, t); 672 } 673 T(e) { 674 this._$AH !== e && (this._$AR(), (this._$AH = this.O(e))); 675 } 676 g(e) { 677 this._$AH !== I && $(this._$AH) 678 ? (this._$AA.nextSibling.data = e) 679 : this.T(y.createTextNode(e)), 680 (this._$AH = e); 681 } 682 $(e) { 683 var t; 684 const { values: i, _$litType$: s } = e, 685 n = 686 "number" == typeof s 687 ? this._$AC(e) 688 : (void 0 === s.el && (s.el = R.createElement(s.h, this.options)), s); 689 if ((null === (t = this._$AH) || void 0 === t ? void 0 : t._$AD) === n) 690 this._$AH.p(i); 691 else { 692 const e = new F(n, this), 693 t = e.v(this.options); 694 e.p(i), this.T(t), (this._$AH = e); 695 } 696 } 697 _$AC(e) { 698 let t = L.get(e.strings); 699 return void 0 === t && L.set(e.strings, (t = new R(e))), t; 700 } 701 k(e) { 702 S(this._$AH) || ((this._$AH = []), this._$AR()); 703 const t = this._$AH; 704 let i, 705 s = 0; 706 for (const n of e) 707 s === t.length 708 ? t.push((i = new Y(this.O(M()), this.O(M()), this, this.options))) 709 : (i = t[s]), 710 i._$AI(n), 711 s++; 712 s < t.length && (this._$AR(i && i._$AB.nextSibling, s), (t.length = s)); 713 } 714 _$AR(e = this._$AA.nextSibling, t) { 715 var i; 716 for ( 717 null === (i = this._$AP) || void 0 === i || i.call(this, !1, !0, t); 718 e && e !== this._$AB; 719 720 ) { 721 const t = e.nextSibling; 722 e.remove(), (e = t); 723 } 724 } 725 setConnected(e) { 726 var t; 727 void 0 === this._$AM && 728 ((this._$Cm = e), 729 null === (t = this._$AP) || void 0 === t || t.call(this, e)); 730 } 731} 732class N { 733 constructor(e, t, i, s, n) {
734 (this.type = 1), 735 (this._$AH = I), 736 (this._$AN = void 0), 737 (this.element = e), 738 (this.name = t), 739 (this._$AM = s), 740 (this.options = n), 741 i.length > 2 || "" !== i[0] || "" !== i[1] 742 ? ((this._$AH = Array(i.length - 1).fill(new String())), 743 (this.strings = i)) 744 : (this._$AH = I); 745 } 746 get tagName() { 747 return this.element.tagName; 748 } 749 get _$AU() { 750 return this._$AM._$AU; 751 } 752 _$AI(e, t = this, i, s) { 753 const n = this.strings; 754 let r = !1; 755 if (void 0 === n) 756 (e = D(this, e, t, 0)), 757 (r = !$(e) || (e !== this._$AH && e !== B)), 758 r && (this._$AH = e); 759 else { 760 const s = e; 761 let o, a; 762 for (e = n[0], o = 0; o < n.length - 1; o++) 763 (a = D(this, s[i + o], t, o)), 764 a === B && (a = this._$AH[o]), 765 r || (r = !$(a) || a !== this._$AH[o]), 766 a === I ? (e = I) : e !== I && (e += (null != a ? a : "") + n[o + 1]), 767 (this._$AH[o] = a); 768 } 769 r && !s && this.j(e); 770 } 771 j(e) { 772 e === I 773 ? this.element.removeAttribute(this.name) 774 : this.element.setAttribute(this.name, null != e ? e : ""); 775 } 776} 777class U extends N { 778 constructor() { 779 super(...arguments), (this.type = 3); 780 } 781 j(e) { 782 this.element[this.name] = e === I ? void 0 : e; 783 } 784} 785const V = g ? g.emptyScript : ""; 786class H extends N { 787 constructor() { 788 super(...arguments), (this.type = 4); 789 } 790 j(e) { 791 e && e !== I 792 ? this.element.setAttribute(this.name, V) 793 : this.element.removeAttribute(this.name); 794 } 795} 796class Q extends N { 797 constructor(e, t, i, s, n) { 798 super(e, t, i, s, n), (this.type = 5); 799 } 800 _$AI(e, t = this) { 801 var i; 802 if ((e = null !== (i = D(this, e, t, 0)) && void 0 !== i ? i : I) === B) 803 return; 804 const s = this._$AH, 805 n = 806 (e === I && s !== I) || 807 e.capture !== s.capture || 808 e.once !== s.once || 809 e.passive !== s.passive, 810 r = e !== I && (s === I || n); 811 n && this.element.removeEventListener(this.name, this, s), 812 r && this.element.addEventListener(this.name, this, e), 813 (this._$AH = e); 814 } 815 handleEvent(e) { 816 var t, i; 817 "function" == typeof this._$AH 818 ? this._$AH.call( 819 null !== 820 (i = 821 null === (t = this.options) || void 0 === t ? void 0 : t.host) && 822 void 0 !== i 823 ? i 824 : this.element, 825 e 826 ) 827 : this._$AH.handleEvent(e); 828 } 829} 830class X { 831 constructor(e, t, i) { 832 (this.element = e), 833 (this.type = 6), 834 (this._$AN = void 0), 835 (this._$AM = t), 836 (this.options = i); 837 } 838 get _$AU() { 839 return this._$AM._$AU; 840 } 841 _$AI(e) { 842 D(this, e); 843 } 844} 845const Z = v.litHtmlPolyfillSupport; 846null == Z || Z(R, Y), 847 (null !== (w = v.litHtmlVersions) && void 0 !== w 848 ? w 849 : (v.litHtmlVersions = []) 850 ).push("2.6.1"); 851/** 852 * @license 853 * Copyright 2017 Google LLC 854 * SPDX-License-Identifier: BSD-3-Clause 855 */ 856var W, q; 857class K extends f { 858 constructor() { 859 super(...arguments), 860 (this.renderOptions = { host: this }), 861 (this._$Do = void 0); 862 } 863 createRenderRoot() { 864 var e, t; 865 const i = super.createRenderRoot(); 866 return ( 867 (null !== (e = (t = this.renderOptions).renderBefore) && void 0 !== e) || 868 (t.renderBefore = i.firstChild), 869 i 870 ); 871 } 872 update(e) { 873 const t = this.render(); 874 this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), 875 super.update(e), 876 (this._$Do = ((e, t, i) => { 877 var s, n; 878 const r = 879 null !== (s = null == i ? void 0 : i.renderBefore) && void 0 !== s 880 ? s 881 : t; 882 let o = r._$litPart$; 883 if (void 0 === o) { 884 const e = 885 null !== (n = null == i ? void 0 : i.renderBefore) && void 0 !== n 886 ? n 887 : null; 888 r._$litPart$ = o = new Y( 889 t.insertBefore(M(), e), 890 e, 891 void 0, 892 null != i ? i : {} 893 ); 894 } 895 return o._$AI(e), o; 896 })(t, this.renderRoot, this.renderOptions)); 897 } 898 connectedCallback() { 899 var e; 900 super.connectedCallback(), 901 null === (e = this._$Do) || void 0 === e || e.setConnected(!0); 902 } 903 disconnectedCallback() { 904 var e; 905 super.disconnectedCallback(), 906 null === (e = this._$Do) || void 0 === e || e.setConnected(!1); 907 } 908 render() { 909 return B; 910 } 911} 912(K.finalized = !0), 913 (K._$litElement$ = !0), 914 null === (W = globalThis.litElementHydrateSupport) || 915 void 0 === W || 916 W.call(globalThis, { LitElement: K }); 917const J = globalThis.litElementPolyfillSupport; 918null == J || J({ LitElement: K }), 919 (null !== (q = globalThis.litElementVersions) && void 0 !== q 920 ? q 921 : (globalThis.litElementVersions = []) 922 ).push("3.2.2"); 923/** 924 * @license 925 * Copyright 2020 Google LLC 926 * SPDX-License-Identifier: BSD-3-Clause 927 */ 928const ee = 2; 929/** 930 * @license 931 * Copyright 2017 Google LLC 932 * SPDX-License-Identifier: BSD-3-Clause 933 */ class te { 934 constructor(e) {} 935 get _$AU() { 936 return this._$AM._$AU; 937 } 938 _$AT(e, t, i) { 939 (this._$Ct = e), (this._$AM = t), (this._$Ci = i); 940 } 941 _$AS(e, t) { 942 return this.update(e, t); 943 } 944 update(e, t) { 945 return this.render(...t); 946 } 947} 948/** 949 * @license 950 * Copyright 2017 Google LLC 951 * SPDX-License-Identifier: BSD-3-Clause 952 */ const ie = (e, t) => { 953 var i, s; 954 const n = e._$AN; 955 if (void 0 === n) return !1; 956 for (const e of n) 957 null === (s = (i = e)._$AO) || void 0 === s || s.call(i, t, !1), ie(e, t); 958 return !0; 959 }, 960 se = (e) => { 961 let t, i; 962 do { 963 if (void 0 === (t = e._$AM)) break; 964 (i = t._$AN), i.delete(e), (e = t); 965 } while (0 === (null == i ? void 0 : i.size)); 966 }, 967 ne = (e) => { 968 for (let t; (t = e._$AM); e = t) { 969 let i = t._$AN; 970 if (void 0 === i) t._$AN = i = new Set(); 971 else if (i.has(e)) break; 972 i.add(e), ae(t); 973 } 974 }; 975function re(e) { 976 void 0 !== this._$AN 977 ? (se(this), (this._$AM = e), ne(this)) 978 : (this._$AM = e); 979} 980function oe(e, t = !1, i = 0) { 981 const s = this._$AH, 982 n = this._$AN; 983 if (void 0 !== n && 0 !== n.size) 984 if (t) 985 if (Array.isArray(s)) 986 for (let e = i; e < s.length; e++) ie(s[e], !1), se(s[e]); 987 else null != s && (ie(s, !1), se(s)); 988 else ie(this, e); 989} 990const ae = (e) => { 991 var t, i, s, n; 992 e.type == ee && 993 ((null !== (t = (s = e)._$AP) && void 0 !== t) || (s._$AP = oe), 994 (null !== (i = (n = e)._$AQ) && void 0 !== i) || (n._$AQ = re)); 995}; 996class le extends te { 997 constructor() { 998 super(...arguments), (this._$AN = void 0); 999 } 1000 _$AT(e, t, i) { 1001 super._$AT(e, t, i), ne(this), (this.isConnected = e._$AU); 1002 } 1003 _$AO(e, t = !0) { 1004 var i, s; 1005 e !== this.isConnected && 1006 ((this.isConnected = e), 1007 e 1008 ? null === (i = this.reconnected) || void 0 === i || i.call(this) 1009 : null === (s = this.disconnected) || void 0 === s || s.call(this)), 1010 t && (ie(this, e), se(this)); 1011 } 1012 setValue(e) { 1013 if (((e) => void 0 === e.strings)(this._$Ct)) this._$Ct._$AI(e, this); 1014 else { 1015 const t = [...this._$Ct._$AH]; 1016 (t[this._$Ci] = e), this._$Ct._$AI(t, this, 0); 1017 } 1018 } 1019 disconnected() {} 1020 reconnected() {} 1021} 1022/** 1023 * @license 1024 * Copyright 2021 Google LLC 1025 * SPDX-License-Identifier: BSD-3-Clause 1026 */ class ce { 1027 constructor(e) { 1028 this.Y = e; 1029 } 1030 disconnect() { 1031 this.Y = void 0; 1032 } 1033 reconnect(e) { 1034 this.Y = e; 1035 } 1036 deref() { 1037 return this.Y; 1038 } 1039} 1040class de { 1041 constructor() { 1042 (this.Z = void 0), (this.q = void 0); 1043 } 1044 get() { 1045 return this.Z; 1046 } 1047 pause() { 1048 var e; 1049 (null !== (e = this.Z) && void 0 !== e) || 1050 (this.Z = new Promise((e) => (this.q = e))); 1051 } 1052 resume() { 1053 var e; 1054 null === (e = this.q) || void 0 === e || e.call(this), 1055 (this.Z = this.q = void 0); 1056 } 1057} 1058/** 1059 * @license 1060 * Copyright 2017 Google LLC 1061 * SPDX-License-Identifier: BSD-3-Clause 1062 */ const pe = (e) => 1063 !((e) => null === e || ("object" != typeof e && "function" != typeof e))(e) && 1064 "function" == typeof e.then; 1065const ue = ( 1066 (e) => 1067 (...t) => ({ _$litDirective$: e, values: t }) 1068 )( 1069 class extends le { 1070 constructor() { 1071 super(...arguments), 1072 (this._$Cwt = 1073741823), 1073 (this._$Cyt = []), 1074 (this._$CK = new ce(this)), 1075 (this._$CX = new de()); 1076 } 1077 render(...e) { 1078 var t; 1079 return null !== (t = e.find((e) => !pe(e))) && void 0 !== t ? t : B; 1080 } 1081 update(e, t) { 1082 const i = this._$Cyt; 1083 let s = i.length; 1084 this._$Cyt = t; 1085 const n = this._$CK, 1086 r = this._$CX; 1087 this.isConnected || this.disconnected(); 1088 for (let e = 0; e < t.length && !(e > this._$Cwt); e++) { 1089 const o = t[e]; 1090 if (!pe(o)) return (this._$Cwt = e), o; 1091 (e < s && o === i[e]) || 1092 ((this._$Cwt = 1073741823), 1093 (s = 0), 1094 Promise.resolve(o).then(async (e) => { 1095 for (; r.get(); ) await r.get(); 1096 const t = n.deref(); 1097 if (void 0 !== t) { 1098 const i = t._$Cyt.indexOf(o); 1099 i > -1 && i < t._$Cwt && ((t._$Cwt = i), t.setValue(e)); 1100 } 1101 })); 1102 } 1103 return B; 1104 } 1105 disconnected() { 1106 this._$CK.disconnect(), this._$CX.pause(); 1107 } 1108 reconnected() { 1109 this._$CK.reconnect(this), this._$CX.resume(); 1110 } 1111 } 1112 ), 1113 he = (e) => (t) => 1114 "function" == typeof t 1115 ? ((e, t) => (customElements.define(e, t), t))(e, t) 1116 : ((e, t) => { 1117 const { kind: i, elements: s } = t; 1118 return { 1119 kind: i, 1120 elements: s, 1121 finisher(t) { 1122 customElements.define(e, t); 1123 }, 1124 }; 1125 })(e, t), 1126 /** 1127 * @license 1128 * Copyright 2017 Google LLC 1129 * SPDX-License-Identifier: BSD-3-Clause 1130 */ fe = (e, t) => 1131 "method" === t.kind && t.descriptor && !("value" in t.descriptor) 1132 ? { 1133 ...t, 1134 finisher(i) { 1135 i.createProperty(t.key, e); 1136 }, 1137 } 1138 : { 1139 kind: "field", 1140 key: Symbol(), 1141 placement: "own", 1142 descriptor: {}, 1143 originalKey: t.key, 1144 initializer() { 1145 "function" == typeof t.initializer && 1146 (this[t.key] = t.initializer.call(this)); 1147 }, 1148 finisher(i) { 1149 i.createProperty(t.key, e); 1150 }, 1151 }; 1152/** 1153 * @license 1154 * Copyright 2017 Google LLC 1155 * SPDX-License-Identifier: BSD-3-Clause 1156 */ function we(e) { 1157 return (t, i) => 1158 void 0 !== i 1159 ? ((e, t, i) => { 1160 t.constructor.createProperty(i, e); 1161 })(e, t, i) 1162 : fe(e, t); 1163 /** 1164 * @license 1165 * Copyright 2017 Google LLC 1166 * SPDX-License-Identifier: BSD-3-Clause 1167 */ 1168} 1169/** 1170 * @license 1171 * Copyright 2021 Google LLC 1172 * SPDX-License-Identifier: BSD-3-Clause 1173 */ 1174var ve; 1175function ge(e) { 1176 return ( 1177 null !== e && 1178 "object" == typeof e && 1179 "constructor" in e && 1180 e.constructor === Object 1181 ); 1182} 1183function be(e = {}, t = {}) { 1184 Object.keys(t).forEach((i) => { 1185 void 0 === e[i] 1186 ? (e[i] = t[i]) 1187 : ge(t[i]) && ge(e[i]) && Object.keys(t[i]).length > 0 && be(e[i], t[i]); 1188 }); 1189} 1190null === (ve = window.HTMLSlotElement) || 1191 void 0 === ve || 1192 ve.prototype.assignedElements; 1193const me = { 1194 body: {}, 1195 addEventListener() {}, 1196 removeEventListener() {}, 1197 activeElement: { blur() {}, nodeName: "" }, 1198 querySelector: () => null, 1199 querySelectorAll: () => [], 1200 getElementById: () => null, 1201 createEvent: () => ({ initEvent() {} }), 1202 createElement: () => ({ 1203 children: [], 1204 childNodes: [], 1205 style: {}, 1206 setAttribute() {}, 1207 getElementsByTagName: () => [], 1208 }), 1209 createElementNS: () => ({}), 1210 importNode: () => null, 1211 location: { 1212 hash: "", 1213 host: "", 1214 hostname: "", 1215 href: "", 1216 origin: "", 1217 pathname: "", 1218 protocol: "", 1219 search: "", 1220 }, 1221}; 1222function xe() { 1223 const e = "undefined" != typeof document ? document : {}; 1224 return be(e, me), e; 1225} 1226const Ae = { 1227 document: me, 1228 navigator: { userAgent: "" }, 1229 location: { 1230 hash: "", 1231 host: "", 1232 hostname: "", 1233 href: "", 1234 origin: "", 1235 pathname: "", 1236 protocol: "", 1237 search: "", 1238 }, 1239 history: { replaceState() {}, pushState() {}, go() {}, back() {} }, 1240 CustomEvent: function () { 1241 return this; 1242 }, 1243 addEventListener() {}, 1244 removeEventListener() {}, 1245 getComputedStyle: () => ({ getPropertyValue: () => "" }), 1246 Image() {}, 1247 Date() {}, 1248 screen: {}, 1249 setTimeout() {},
1250 clearTimeout() {}, 1251 matchMedia: () => ({}), 1252 requestAnimationFrame: (e) => 1253 "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0), 1254 cancelAnimationFrame(e) { 1255 "undefined" != typeof setTimeout && clearTimeout(e); 1256 }, 1257}; 1258function ye() { 1259 const e = "undefined" != typeof window ? window : {}; 1260 return be(e, Ae), e; 1261} 1262function Me(e, t = 0) { 1263 return setTimeout(e, t); 1264} 1265function $e() { 1266 return Date.now(); 1267} 1268function Se(e, t = "x") { 1269 const i = ye(); 1270 let s, n, r; 1271 const o = (function (e) { 1272 const t = ye(); 1273 let i; 1274 return ( 1275 t.getComputedStyle && (i = t.getComputedStyle(e, null)), 1276 !i && e.currentStyle && (i = e.currentStyle), 1277 i || (i = e.style), 1278 i 1279 ); 1280 })(e); 1281 return ( 1282 i.WebKitCSSMatrix 1283 ? ((n = o.transform || o.webkitTransform), 1284 n.split(",").length > 6 && 1285 (n = n 1286 .split(", ") 1287 .map((e) => e.replace(",", ".")) 1288 .join(", ")), 1289 (r = new i.WebKitCSSMatrix("none" === n ? "" : n))) 1290 : ((r = 1291 o.MozTransform || 1292 o.OTransform || 1293 o.MsTransform || 1294 o.msTransform || 1295 o.transform || 1296 o 1297 .getPropertyValue("transform") 1298 .replace("translate(", "matrix(1, 0, 0, 1,")), 1299 (s = r.toString().split(","))), 1300 "x" === t && 1301 (n = i.WebKitCSSMatrix 1302 ? r.m41 1303 : 16 === s.length 1304 ? parseFloat(s[12]) 1305 : parseFloat(s[4])), 1306 "y" === t && 1307 (n = i.WebKitCSSMatrix 1308 ? r.m42 1309 : 16 === s.length 1310 ? parseFloat(s[13]) 1311 : parseFloat(s[5])), 1312 n || 0 1313 ); 1314} 1315function Ee(e) { 1316 return ( 1317 "object" == typeof e && 1318 null !== e && 1319 e.constructor && 1320 "Object" === Object.prototype.toString.call(e).slice(8, -1) 1321 ); 1322} 1323function ke(...e) { 1324 const t = Object(e[0]), 1325 i = ["__proto__", "constructor", "prototype"]; 1326 for (let n = 1; n < e.length; n += 1) { 1327 const r = e[n]; 1328 if ( 1329 null != r && 1330 ((s = r), 1331 !("undefined" != typeof window && void 0 !== window.HTMLElement 1332 ? s instanceof HTMLElement 1333 : s && (1 === s.nodeType || 11 === s.nodeType))) 1334 ) { 1335 const e = Object.keys(Object(r)).filter((e) => i.indexOf(e) < 0); 1336 for (let i = 0, s = e.length; i < s; i += 1) { 1337 const s = e[i], 1338 n = Object.getOwnPropertyDescriptor(r, s); 1339 void 0 !== n && 1340 n.enumerable && 1341 (Ee(t[s]) && Ee(r[s]) 1342 ? r[s].i 1343 ? (t[s] = r[s]) 1344 : ke(t[s], r[s]) 1345 : !Ee(t[s]) && Ee(r[s]) 1346 ? ((t[s] = {}), r[s].i ? (t[s] = r[s]) : ke(t[s], r[s])) 1347 : (t[s] = r[s])); 1348 } 1349 } 1350 } 1351 var s; 1352 return t; 1353} 1354function Te(e, t, i) { 1355 e.style.setProperty(t, i); 1356} 1357function Ce({ swiper: e, targetPosition: t, side: i }) { 1358 const s = ye(), 1359 n = -e.translate; 1360 let r, 1361 o = null; 1362 const a = e.params.speed; 1363 (e.wrapperEl.style.scrollSnapType = "none"), 1364 s.cancelAnimationFrame(e.cssModeFrameID); 1365 const l = t > n ? "next" : "prev", 1366 c = (e, t) => ("next" === l && e >= t) || ("prev" === l && e <= t), 1367 d = () => { 1368 (r = new Date().getTime()), null === o && (o = r); 1369 const l = Math.max(Math.min((r - o) / a, 1), 0), 1370 p = 0.5 - Math.cos(l * Math.PI) / 2; 1371 let u = n + p * (t - n); 1372 if ((c(u, t) && (u = t), e.wrapperEl.scrollTo({ [i]: u }), c(u, t))) 1373 return ( 1374 (e.wrapperEl.style.overflow = "hidden"), 1375 (e.wrapperEl.style.scrollSnapType = ""), 1376 setTimeout(() => { 1377 (e.wrapperEl.style.overflow = ""), e.wrapperEl.scrollTo({ [i]: u }); 1378 }), 1379 void s.cancelAnimationFrame(e.cssModeFrameID) 1380 ); 1381 e.cssModeFrameID = s.requestAnimationFrame(d); 1382 }; 1383 d(); 1384} 1385function ze(e) { 1386 return ( 1387 e.querySelector(".swiper-slide-transform") || 1388 (e.shadowEl && e.shadowEl.querySelector(".swiper-slide-transform")) || 1389 e 1390 ); 1391} 1392function Pe(e, t = "") { 1393 return [...e.children].filter((e) => e.matches(t)); 1394} 1395function Oe(e, t = []) { 1396 const i = document.createElement(e); 1397 return i.classList.add(...(Array.isArray(t) ? t : [t])), i; 1398} 1399function je(e) { 1400 const t = ye(), 1401 i = xe(), 1402 s = e.getBoundingClientRect(), 1403 n = i.body, 1404 r = e.clientTop || n.clientTop || 0, 1405 o = e.clientLeft || n.clientLeft || 0, 1406 a = e === t ? t.scrollY : e.scrollTop, 1407 l = e === t ? t.scrollX : e.scrollLeft; 1408 return { top: s.top + a - r, left: s.left + l - o }; 1409} 1410function Be(e, t) { 1411 return ye().getComputedStyle(e, null).getPropertyValue(t); 1412} 1413function Ie(e) { 1414 let t, 1415 i = e; 1416 if (i) { 1417 for (t = 0; null !== (i = i.previousSibling); ) 1418 1 === i.nodeType && (t += 1); 1419 return t; 1420 } 1421} 1422function Le(e, t) { 1423 const i = []; 1424 let s = e.parentElement; 1425 for (; s; ) t ? s.matches(t) && i.push(s) : i.push(s), (s = s.parentElement); 1426 return i; 1427} 1428function _e(e, t) { 1429 t && 1430 e.addEventListener("transitionend", function i(s) { 1431 s.target === e && 1432 (t.call(e, s), e.removeEventListener("transitionend", i)); 1433 }); 1434} 1435function Ge(e, t, i) { 1436 const s = ye(); 1437 return i 1438 ? e["width" === t ? "offsetWidth" : "offsetHeight"] + 1439 parseFloat( 1440 s 1441 .getComputedStyle(e, null) 1442 .getPropertyValue("width" === t ? "margin-right" : "margin-top") 1443 ) + 1444 parseFloat( 1445 s 1446 .getComputedStyle(e, null) 1447 .getPropertyValue("width" === t ? "margin-left" : "margin-bottom") 1448 ) 1449 : e.offsetWidth; 1450} 1451let Re, De, Fe; 1452function Ye() { 1453 return ( 1454 Re || 1455 (Re = (function () { 1456 const e = ye(), 1457 t = xe(); 1458 return { 1459 smoothScroll: 1460 t.documentElement && "scrollBehavior" in t.documentElement.style, 1461 touch: !!( 1462 "ontouchstart" in e || 1463 (e.DocumentTouch && t instanceof e.DocumentTouch) 1464 ), 1465 }; 1466 })()), 1467 Re 1468 ); 1469} 1470function Ne(e = {}) { 1471 return ( 1472 De || 1473 (De = (function ({ userAgent: e } = {}) { 1474 const t = Ye(), 1475 i = ye(), 1476 s = i.navigator.platform, 1477 n = e || i.navigator.userAgent, 1478 r = { ios: !1, android: !1 }, 1479 o = i.screen.width, 1480 a = i.screen.height, 1481 l = n.match(/(Android);?[\s\/]+([\d.]+)?/); 1482 let c = n.match(/(iPad).*OS\s([\d_]+)/); 1483 const d = n.match(/(iPod)(.*OS\s([\d_]+))?/), 1484 p = !c && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/), 1485 u = "Win32" === s; 1486 let h = "MacIntel" === s; 1487 return ( 1488 !c && 1489 h && 1490 t.touch && 1491 [ 1492 "1024x1366", 1493 "1366x1024", 1494 "834x1194", 1495 "1194x834", 1496 "834x1112", 1497 "1112x834", 1498 "768x1024", 1499 "1024x768", 1500 "820x1180", 1501 "1180x820", 1502 "810x1080", 1503 "1080x810", 1504 ].indexOf(`${o}x${a}`) >= 0 && 1505 ((c = n.match(/(Version)\/([\d.]+)/)), 1506 c || (c = [0, 1, "13_0_0"]), 1507 (h = !1)), 1508 l && !u && ((r.os = "android"), (r.android = !0)), 1509 (c || p || d) && ((r.os = "ios"), (r.ios = !0)), 1510 r 1511 ); 1512 })(e)), 1513 De 1514 ); 1515} 1516function Ue() { 1517 return ( 1518 Fe || 1519 (Fe = (function () { 1520 const e = ye(); 1521 let t = !1; 1522 function i() { 1523 const t = e.navigator.userAgent.toLowerCase(); 1524 return ( 1525 t.indexOf("safari") >= 0 && 1526 t.indexOf("chrome") < 0 && 1527 t.indexOf("android") < 0 1528 ); 1529 } 1530 if (i()) { 1531 const i = String(e.navigator.userAgent); 1532 if (i.includes("Version/")) { 1533 const [e, s] = i 1534 .split("Version/")[1] 1535 .split(" ")[0] 1536 .split(".") 1537 .map((e) => Number(e)); 1538 t = e < 16 || (16 === e && s < 2); 1539 } 1540 } 1541 return { 1542 isSafari: t || i(), 1543 needPerspectiveFix: t,
1544 isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( 1545 e.navigator.userAgent 1546 ), 1547 }; 1548 })()), 1549 Fe 1550 ); 1551} 1552var Ve = { 1553 on(e, t, i) { 1554 const s = this; 1555 if (!s.eventsListeners || s.destroyed) return s; 1556 if ("function" != typeof t) return s; 1557 const n = i ? "unshift" : "push"; 1558 return ( 1559 e.split(" ").forEach((e) => { 1560 s.eventsListeners[e] || (s.eventsListeners[e] = []), 1561 s.eventsListeners[e][n](t); 1562 }), 1563 s 1564 ); 1565 }, 1566 once(e, t, i) { 1567 const s = this; 1568 if (!s.eventsListeners || s.destroyed) return s; 1569 if ("function" != typeof t) return s; 1570 function n(...i) { 1571 s.off(e, n), n.l && delete n.l, t.apply(s, i); 1572 } 1573 return (n.l = t), s.on(e, n, i); 1574 }, 1575 onAny(e, t) { 1576 const i = this; 1577 if (!i.eventsListeners || i.destroyed) return i; 1578 if ("function" != typeof e) return i; 1579 const s = t ? "unshift" : "push"; 1580 return i.eventsAnyListeners.indexOf(e) < 0 && i.eventsAnyListeners[s](e), i; 1581 }, 1582 offAny(e) { 1583 const t = this; 1584 if (!t.eventsListeners || t.destroyed) return t; 1585 if (!t.eventsAnyListeners) return t; 1586 const i = t.eventsAnyListeners.indexOf(e); 1587 return i >= 0 && t.eventsAnyListeners.splice(i, 1), t; 1588 }, 1589 off(e, t) { 1590 const i = this; 1591 return !i.eventsListeners || i.destroyed 1592 ? i 1593 : i.eventsListeners 1594 ? (e.split(" ").forEach((e) => { 1595 void 0 === t 1596 ? (i.eventsListeners[e] = []) 1597 : i.eventsListeners[e] && 1598 i.eventsListeners[e].forEach((s, n) => { 1599 (s === t || (s.l && s.l === t)) && 1600 i.eventsListeners[e].splice(n, 1); 1601 }); 1602 }), 1603 i) 1604 : i; 1605 }, 1606 emit(...e) { 1607 const t = this; 1608 if (!t.eventsListeners || t.destroyed) return t; 1609 if (!t.eventsListeners) return t; 1610 let i, s, n; 1611 "string" == typeof e[0] || Array.isArray(e[0]) 1612 ? ((i = e[0]), (s = e.slice(1, e.length)), (n = t)) 1613 : ((i = e[0].events), (s = e[0].data), (n = e[0].context || t)), 1614 s.unshift(n); 1615 return ( 1616 (Array.isArray(i) ? i : i.split(" ")).forEach((e) => { 1617 t.eventsAnyListeners && 1618 t.eventsAnyListeners.length && 1619 t.eventsAnyListeners.forEach((t) => { 1620 t.apply(n, [e, ...s]); 1621 }), 1622 t.eventsListeners && 1623 t.eventsListeners[e] && 1624 t.eventsListeners[e].forEach((e) => { 1625 e.apply(n, s); 1626 }); 1627 }), 1628 t 1629 ); 1630 }, 1631}; 1632var He = { 1633 updateSize: function () { 1634 const e = this; 1635 let t, i; 1636 const s = e.el; 1637 (t = 1638 void 0 !== e.params.width && null !== e.params.width 1639 ? e.params.width 1640 : s.clientWidth), 1641 (i = 1642 void 0 !== e.params.height && null !== e.params.height 1643 ? e.params.height 1644 : s.clientHeight), 1645 (0 === t && e.isHorizontal()) || 1646 (0 === i && e.isVertical()) || 1647 ((t = 1648 t - 1649 parseInt(Be(s, "padding-left") || 0, 10) - 1650 parseInt(Be(s, "padding-right") || 0, 10)), 1651 (i = 1652 i - 1653 parseInt(Be(s, "padding-top") || 0, 10) - 1654 parseInt(Be(s, "padding-bottom") || 0, 10)), 1655 Number.isNaN(t) && (t = 0), 1656 Number.isNaN(i) && (i = 0), 1657 Object.assign(e, { 1658 width: t, 1659 height: i, 1660 size: e.isHorizontal() ? t : i, 1661 })); 1662 }, 1663 updateSlides: function () { 1664 const e = this; 1665 function t(t) { 1666 return e.isHorizontal() 1667 ? t 1668 : { 1669 width: "height", 1670 "margin-top": "margin-left", 1671 "margin-bottom ": "margin-right", 1672 "margin-left": "margin-top", 1673 "margin-right": "margin-bottom", 1674 "padding-left": "padding-top", 1675 "padding-right": "padding-bottom", 1676 marginRight: "marginBottom", 1677 }[t]; 1678 } 1679 function i(e, i) { 1680 return parseFloat(e.getPropertyValue(t(i)) || 0); 1681 } 1682 const s = e.params, 1683 { wrapperEl: n, slidesEl: r, size: o, rtlTranslate: a, wrongRTL: l } = e, 1684 c = e.virtual && s.virtual.enabled, 1685 d = c ? e.virtual.slides.length : e.slides.length, 1686 p = Pe(r, `.${e.params.slideClass}, swiper-slide`), 1687 u = c ? e.virtual.slides.length : p.length; 1688 let h = []; 1689 const f = [], 1690 w = []; 1691 let v = s.slidesOffsetBefore; 1692 "function" == typeof v && (v = s.slidesOffsetBefore.call(e)); 1693 let g = s.slidesOffsetAfter; 1694 "function" == typeof g && (g = s.slidesOffsetAfter.call(e)); 1695 const b = e.snapGrid.length, 1696 m = e.slidesGrid.length; 1697 let x = s.spaceBetween, 1698 A = -v, 1699 y = 0, 1700 M = 0; 1701 if (void 0 === o) return; 1702 "string" == typeof x && 1703 x.indexOf("%") >= 0 && 1704 (x = (parseFloat(x.replace("%", "")) / 100) * o), 1705 (e.virtualSize = -x), 1706 p.forEach((e) => { 1707 a ? (e.style.marginLeft = "") : (e.style.marginRight = ""), 1708 (e.style.marginBottom = ""), 1709 (e.style.marginTop = ""); 1710 }), 1711 s.centeredSlides && 1712 s.cssMode && 1713 (Te(n, "--swiper-centered-offset-before", ""), 1714 Te(n, "--swiper-centered-offset-after", "")); 1715 const $ = s.grid && s.grid.rows > 1 && e.grid; 1716 let S; 1717 $ && e.grid.initSlides(u); 1718 const E = 1719 "auto" === s.slidesPerView && 1720 s.breakpoints && 1721 Object.keys(s.breakpoints).filter( 1722 (e) => void 0 !== s.breakpoints[e].slidesPerView 1723 ).length > 0; 1724 for (let n = 0; n < u; n += 1) { 1725 let r; 1726 if ( 1727 ((S = 0), 1728 p[n] && (r = p[n]), 1729 $ && e.grid.updateSlide(n, r, u, t),
1730 !p[n] || "none" !== Be(r, "display")) 1731 ) { 1732 if ("auto" === s.slidesPerView) { 1733 E && (p[n].style[t("width")] = ""); 1734 const o = getComputedStyle(r), 1735 a = r.style.transform, 1736 l = r.style.webkitTransform; 1737 if ( 1738 (a && (r.style.transform = "none"), 1739 l && (r.style.webkitTransform = "none"), 1740 s.roundLengths) 1741 ) 1742 S = e.isHorizontal() ? Ge(r, "width", !0) : Ge(r, "height", !0); 1743 else { 1744 const e = i(o, "width"), 1745 t = i(o, "padding-left"), 1746 s = i(o, "padding-right"), 1747 n = i(o, "margin-left"), 1748 a = i(o, "margin-right"), 1749 l = o.getPropertyValue("box-sizing"); 1750 if (l && "border-box" === l) S = e + n + a; 1751 else { 1752 const { clientWidth: i, offsetWidth: o } = r; 1753 S = e + t + s + n + a + (o - i); 1754 } 1755 } 1756 a && (r.style.transform = a), 1757 l && (r.style.webkitTransform = l), 1758 s.roundLengths && (S = Math.floor(S)); 1759 } else 1760 (S = (o - (s.slidesPerView - 1) * x) / s.slidesPerView), 1761 s.roundLengths && (S = Math.floor(S)), 1762 p[n] && (p[n].style[t("width")] = `${S}px`); 1763 p[n] && (p[n].swiperSlideSize = S), 1764 w.push(S), 1765 s.centeredSlides 1766 ? ((A = A + S / 2 + y / 2 + x), 1767 0 === y && 0 !== n && (A = A - o / 2 - x), 1768 0 === n && (A = A - o / 2 - x), 1769 Math.abs(A) < 0.001 && (A = 0), 1770 s.roundLengths && (A = Math.floor(A)), 1771 M % s.slidesPerGroup == 0 && h.push(A), 1772 f.push(A)) 1773 : (s.roundLengths && (A = Math.floor(A)), 1774 (M - Math.min(e.params.slidesPerGroupSkip, M)) % 1775 e.params.slidesPerGroup == 1776 0 && h.push(A), 1777 f.push(A), 1778 (A = A + S + x)), 1779 (e.virtualSize += S + x), 1780 (y = S), 1781 (M += 1); 1782 } 1783 } 1784 if ( 1785 ((e.virtualSize = Math.max(e.virtualSize, o) + g), 1786 a && 1787 l && 1788 ("slide" === s.effect || "coverflow" === s.effect) && 1789 (n.style.width = `${e.virtualSize + s.spaceBetween}px`), 1790 s.setWrapperSize && 1791 (n.style[t("width")] = `${e.virtualSize + s.spaceBetween}px`), 1792 $ && e.grid.updateWrapperSize(S, h, t), 1793 !s.centeredSlides) 1794 ) { 1795 const t = []; 1796 for (let i = 0; i < h.length; i += 1) { 1797 let n = h[i]; 1798 s.roundLengths && (n = Math.floor(n)), 1799 h[i] <= e.virtualSize - o && t.push(n); 1800 } 1801 (h = t), 1802 Math.floor(e.virtualSize - o) - Math.floor(h[h.length - 1]) > 1 && 1803 h.push(e.virtualSize - o); 1804 } 1805 if (c && s.loop) { 1806 const t = w[0] + x; 1807 if (s.slidesPerGroup > 1) { 1808 const i = Math.ceil( 1809 (e.virtual.slidesBefore + e.virtual.slidesAfter) / s.slidesPerGroup 1810 ), 1811 n = t * s.slidesPerGroup; 1812 for (let e = 0; e < i; e += 1) h.push(h[h.length - 1] + n); 1813 } 1814 for ( 1815 let i = 0; 1816 i < e.virtual.slidesBefore + e.virtual.slidesAfter; 1817 i += 1 1818 ) 1819 1 === s.slidesPerGroup && h.push(h[h.length - 1] + t), 1820 f.push(f[f.length - 1] + t), 1821 (e.virtualSize += t); 1822 } 1823 if ((0 === h.length && (h = [0]), 0 !== s.spaceBetween)) { 1824 const i = e.isHorizontal() && a ? "marginLeft" : t("marginRight"); 1825 p.filter((e, t) => !(s.cssMode && !s.loop) || t !== p.length - 1).forEach( 1826 (e) => { 1827 e.style[i] = `${x}px`; 1828 } 1829 ); 1830 } 1831 if (s.centeredSlides && s.centeredSlidesBounds) { 1832 let e = 0; 1833 w.forEach((t) => { 1834 e += t + (s.spaceBetween ? s.spaceBetween : 0); 1835 }), 1836 (e -= s.spaceBetween); 1837 const t = e - o; 1838 h = h.map((e) => (e < 0 ? -v : e > t ? t + g : e)); 1839 } 1840 if (s.centerInsufficientSlides) { 1841 let e = 0; 1842 if ( 1843 (w.forEach((t) => { 1844 e += t + (s.spaceBetween ? s.spaceBetween : 0); 1845 }), 1846 (e -= s.spaceBetween), 1847 e < o) 1848 ) {
1849 const t = (o - e) / 2; 1850 h.forEach((e, i) => { 1851 h[i] = e - t; 1852 }), 1853 f.forEach((e, i) => { 1854 f[i] = e + t; 1855 }); 1856 } 1857 } 1858 if ( 1859 (Object.assign(e, { 1860 slides: p, 1861 snapGrid: h, 1862 slidesGrid: f, 1863 slidesSizesGrid: w, 1864 }), 1865 s.centeredSlides && s.cssMode && !s.centeredSlidesBounds) 1866 ) { 1867 Te(n, "--swiper-centered-offset-before", -h[0] + "px"), 1868 Te( 1869 n, 1870 "--swiper-centered-offset-after", 1871 e.size / 2 - w[w.length - 1] / 2 + "px" 1872 ); 1873 const t = -e.snapGrid[0], 1874 i = -e.slidesGrid[0]; 1875 (e.snapGrid = e.snapGrid.map((e) => e + t)), 1876 (e.slidesGrid = e.slidesGrid.map((e) => e + i)); 1877 } 1878 if ( 1879 (u !== d && e.emit("slidesLengthChange"), 1880 h.length !== b && 1881 (e.params.watchOverflow && e.checkOverflow(), 1882 e.emit("snapGridLengthChange")), 1883 f.length !== m && e.emit("slidesGridLengthChange"), 1884 s.watchSlidesProgress && e.updateSlidesOffset(), 1885 !(c || s.cssMode || ("slide" !== s.effect && "fade" !== s.effect))) 1886 ) { 1887 const t = `${s.containerModifierClass}backface-hidden`, 1888 i = e.el.classList.contains(t); 1889 u <= s.maxBackfaceHiddenSlides 1890 ? i || e.el.classList.add(t) 1891 : i && e.el.classList.remove(t); 1892 } 1893 }, 1894 updateAutoHeight: function (e) { 1895 const t = this, 1896 i = [], 1897 s = t.virtual && t.params.virtual.enabled; 1898 let n, 1899 r = 0; 1900 "number" == typeof e 1901 ? t.setTransition(e) 1902 : !0 === e && t.setTransition(t.params.speed); 1903 const o = (e) => (s ? t.getSlideIndexByData(e) : t.slides[e]); 1904 if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1) 1905 if (t.params.centeredSlides) 1906 (t.visibleSlides || []).forEach((e) => { 1907 i.push(e); 1908 }); 1909 else 1910 for (n = 0;
1910 n < Math.ceil(t.params.slidesPerView); n += 1) { 1911 const e = t.activeIndex + n; 1912 if (e > t.slides.length && !s) break; 1913 i.push(o(e)); 1914 } 1915 else i.push(o(t.activeIndex)); 1916 for (n = 0; n < i.length; n += 1) 1917 if (void 0 !== i[n]) { 1918 const e = i[n].offsetHeight; 1919 r = e > r ? e : r; 1920 } 1921 (r || 0 === r) && (t.wrapperEl.style.height = `${r}px`); 1922 }, 1923 updateSlidesOffset: function () { 1924 const e = this, 1925 t = e.slides, 1926 i = e.isElement 1927 ? e.isHorizontal() 1928 ? e.wrapperEl.offsetLeft 1929 : e.wrapperEl.offsetTop 1930 : 0; 1931 for (let s = 0; s < t.length; s += 1) 1932 t[s].swiperSlideOffset = 1933 (e.isHorizontal() ? t[s].offsetLeft : t[s].offsetTop) - i; 1934 }, 1935 updateSlidesProgress: function (e = (this && this.translate) || 0) { 1936 const t = this, 1937 i = t.params, 1938 { slides: s, rtlTranslate: n, snapGrid: r } = t; 1939 if (0 === s.length) return; 1940 void 0 === s[0].swiperSlideOffset && t.updateSlidesOffset(); 1941 let o = -e; 1942 n && (o = e), 1943 s.forEach((e) => { 1944 e.classList.remove(i.slideVisibleClass); 1945 }), 1946 (t.visibleSlidesIndexes = []), 1947 (t.visibleSlides = []); 1948 for (let e = 0; e < s.length; e += 1) { 1949 const a = s[e]; 1950 let l = a.swiperSlideOffset; 1951 i.cssMode && i.centeredSlides && (l -= s[0].swiperSlideOffset); 1952 const c = 1953 (o + (i.centeredSlides ? t.minTranslate() : 0) - l) / 1954 (a.swiperSlideSize + i.spaceBetween), 1955 d = 1956 (o - r[0] + (i.centeredSlides ? t.minTranslate() : 0) - l) / 1957 (a.swiperSlideSize + i.spaceBetween), 1958 p = -(o - l), 1959 u = p + t.slidesSizesGrid[e]; 1960 ((p >= 0 && p < t.size - 1) || 1961 (u > 1 && u <= t.size) || 1962 (p <= 0 && u >= t.size)) && 1963 (t.visibleSlides.push(a), 1964 t.visibleSlidesIndexes.push(e), 1965 s[e].classList.add(i.slideVisibleClass)), 1966 (a.progress = n ? -c : c), 1967 (a.originalProgress = n ? -d : d); 1968 } 1969 }, 1970 updateProgress: function (e) { 1971 const t = this; 1972 if (void 0 === e) { 1973 const i = t.rtlTranslate ? -1 : 1; 1974 e = (t && t.translate && t.translate * i) || 0; 1975 } 1976 const i = t.params, 1977 s = t.maxTranslate() - t.minTranslate(); 1978 let { progress: n, isBeginning: r, isEnd: o, progressLoop: a } = t; 1979 const l = r, 1980 c = o; 1981 if (0 === s) (n = 0), (r = !0), (o = !0); 1982 else { 1983 n = (e - t.minTranslate()) / s; 1984 const i = Math.abs(e - t.minTranslate()) < 1, 1985 a = Math.abs(e - t.maxTranslate()) < 1; 1986 (r = i || n <= 0), (o = a || n >= 1), i && (n = 0), a && (n = 1); 1987 } 1988 if (i.loop) { 1989 const i = t.getSlideIndexByData(0), 1990 s = t.getSlideIndexByData(t.slides.length - 1), 1991 n = t.slidesGrid[i], 1992 r = t.slidesGrid[s], 1993 o = t.slidesGrid[t.slidesGrid.length - 1], 1994 l = Math.abs(e); 1995 (a = l >= n ? (l - n) / o : (l + o - r) / o), a > 1 && (a -= 1); 1996 } 1997 Object.assign(t, { 1998 progress: n, 1999 progressLoop: a, 2000 isBeginning: r, 2001 isEnd: o, 2002 }), 2003 (i.watchSlidesProgress || (i.centeredSlides && i.autoHeight)) && 2004 t.updateSlidesProgress(e), 2005 r && !l && t.emit("reachBeginning toEdge"), 2006 o && !c && t.emit("reachEnd toEdge"), 2007 ((l && !r) || (c && !o)) && t.emit("fromEdge"), 2008 t.emit("progress", n); 2009 }, 2010 updateSlidesClasses: function () { 2011 const e = this, 2012 { slides: t, params: i, slidesEl: s, activeIndex: n } = e, 2013 r = e.virtual && i.virtual.enabled, 2014 o = (e) => Pe(s, `.${i.slideClass}${e}, swiper-slide${e}`)[0]; 2015 let a; 2016 if ( 2017 (t.forEach((e) => { 2018 e.classList.remove( 2019 i.slideActiveClass, 2020 i.slideNextClass, 2021 i.slidePrevClass 2022 ); 2023 }), 2024 r) 2025 ) 2026 if (i.loop) { 2027 let t = n - e.virtual.slidesBefore; 2028 t < 0 && (t = e.virtual.slides.length + t), 2029 t >= e.virtual.slides.length && (t -= e.virtual.slides.length), 2030 (a = o(`[data-swiper-slide-index="${t}"]`)); 2031 } else a = o(`[data-swiper-slide-index="${n}"]`); 2032 else a = t[n]; 2033 if (a) { 2034 a.classList.add(i.slideActiveClass); 2035 let e = (function (e, t) { 2036 const i = []; 2037 for (; e.nextElementSibling; ) { 2038 const s = e.nextElementSibling; 2039 t ? s.matches(t) && i.push(s) : i.push(s), (e = s); 2040 } 2041 return i; 2042 })(a, `.${i.slideClass}, swiper-slide`)[0]; 2043 i.loop && !e && (e = t[0]), e && e.classList.add(i.slideNextClass); 2044 let s = (function (e, t) { 2045 const i = []; 2046 for (; e.previousElementSibling; ) { 2047 const s = e.previousElementSibling; 2048 t ? s.matches(t) && i.push(s) : i.push(s), (e = s); 2049 } 2050 return i; 2051 })(a, `.${i.slideClass}, swiper-slide`)[0]; 2052 i.loop && 0 === !s && (s = t[t.length - 1]), 2053 s && s.classList.add(i.slidePrevClass); 2054 } 2055 e.emitSlidesClasses(); 2056 }, 2057 updateActiveIndex: function (e) { 2058 const t = this, 2059 i = t.rtlTranslate ? t.translate : -t.translate, 2060 { 2061 snapGrid: s, 2062 params: n, 2063 activeIndex: r, 2064 realIndex: o, 2065 snapIndex: a, 2066 } = t; 2067 let l, 2068 c = e; 2069 const d = (e) => { 2070 let i = e - t.virtual.slidesBefore; 2071 return ( 2072 i < 0 && (i = t.virtual.slides.length + i), 2073 i >= t.virtual.slides.length && (i -= t.virtual.slides.length), 2074 i 2075 ); 2076 }; 2077 if ( 2078 (void 0 === c && 2079 (c = (function (e) { 2080 const { slidesGrid: t, params: i } = e, 2081 s = e.rtlTranslate ? e.translate : -e.translate; 2082 let n; 2083 for (let e = 0; e < t.length; e += 1) 2084 void 0 !== t[e + 1] 2085 ? s >= t[e] && s < t[e + 1] - (t[e + 1] - t[e]) / 2 2086 ? (n = e) 2087 : s >= t[e] && s < t[e + 1] && (n = e + 1) 2088 : s >= t[e] && (n = e); 2089 return i.normalizeSlideIndex && (n < 0 || void 0 === n) && (n = 0), n; 2090 })(t)), 2091 s.indexOf(i) >= 0) 2092 ) 2093 l = s.indexOf(i); 2094 else { 2095 const e = Math.min(n.slidesPerGroupSkip, c); 2096 l = e + Math.floor((c - e) / n.slidesPerGroup); 2097 } 2098 if ((l >= s.length && (l = s.length - 1), c === r)) 2099 return ( 2100 l !== a && ((t.snapIndex = l), t.emit("snapIndexChange")), 2101 void ( 2102 t.params.loop && 2103 t.virtual && 2104 t.params.virtual.enabled && 2105 (t.realIndex = d(c)) 2106 ) 2107 ); 2108 let p; 2109 (p = 2110 t.virtual && n.virtual.enabled && n.loop 2111 ? d(c) 2112 : t.slides[c] 2113 ? parseInt(t.slides[c].getAttribute("data-swiper-slide-index") || c, 10) 2114 : c), 2115 Object.assign(t, { 2116 snapIndex: l, 2117 realIndex: p, 2118 previousIndex: r, 2119 activeIndex: c, 2120 }), 2121 t.emit("activeIndexChange"), 2122 t.emit("snapIndexChange"), 2123 o !== p && t.emit("realIndexChange"), 2124 (t.initialized || t.params.runCallbacksOnInit) && t.emit("slideChange"); 2125 }, 2126 updateClickedSlide: function (e) { 2127 const t = this, 2128 i = t.params, 2129 s = e.closest(`.${i.slideClass}, swiper-slide`); 2130 let n, 2131 r = !1; 2132 if (s) 2133 for (let e = 0; e < t.slides.length; e += 1) 2134 if (t.slides[e] === s) { 2135 (r = !0), (n = e); 2136 break; 2137 } 2138 if (!s || !r) 2139 return (t.clickedSlide = void 0), void (t.clickedIndex = void 0); 2140 (t.clickedSlide = s), 2141 t.virtual && t.params.virtual.enabled 2142 ? (t.clickedIndex = parseInt( 2143 s.getAttribute("data-swiper-slide-index"), 2144 10 2145 )) 2146 : (t.clickedIndex = n), 2147 i.slideToClickedSlide && 2148 void 0 !== t.clickedIndex && 2149 t.clickedIndex !== t.activeIndex && 2150 t.slideToClickedSlide(); 2151 }, 2152}; 2153var Qe = { 2154 getTranslate: function (e = this.isHorizontal() ? "x" : "y") { 2155 const { params: t, rtlTranslate: i, translate: s, wrapperEl: n } = this; 2156 if (t.virtualTranslate) return i ? -s : s; 2157 if (t.cssMode) return s; 2158 let r = Se(n, e); 2159 return i && (r = -r), r || 0; 2160 }, 2161 setTranslate: function (e, t) { 2162 const i = this, 2163 { rtlTranslate: s, params: n, wrapperEl: r, progress: o } = i; 2164 let a, 2165 l = 0, 2166 c = 0; 2167 i.isHorizontal() ? (l = s ? -e : e) : (c = e), 2168 n.roundLengths && ((l = Math.floor(l)), (c = Math.floor(c))), 2169 n.cssMode 2170 ? (r[i.isHorizontal() ? "scrollLeft" : "scrollTop"] = i.isHorizontal() 2171 ? -l 2172 : -c) 2173 : n.virtualTranslate || 2174 (r.style.transform = `translate3d(${l}px, ${c}px, 0px)`), 2175 (i.previousTranslate = i.translate), 2176 (i.translate = i.isHorizontal() ? l : c); 2177 const d = i.maxTranslate() - i.minTranslate(); 2178 (a = 0 === d ? 0 : (e - i.minTranslate()) / d), 2179 a !== o && i.updateProgress(e), 2180 i.emit("setTranslate", i.translate, t); 2181 }, 2182 minTranslate: function () { 2183 return -this.snapGrid[0]; 2184 }, 2185 maxTranslate: function () { 2186 return -this.snapGrid[this.snapGrid.length - 1]; 2187 }, 2188 translateTo: function (e = 0, t = this.params.speed, i = !0, s = !0, n) { 2189 const r = this, 2190 { params: o, wrapperEl: a } = r; 2191 if (r.animating && o.preventInteractionOnTransition) return !1; 2192 const l = r.minTranslate(), 2193 c = r.maxTranslate(); 2194 let d; 2195 if ( 2196 ((d = s && e > l ? l : s && e < c ? c : e), 2197 r.updateProgress(d), 2198 o.cssMode) 2199 ) { 2200 const e = r.isHorizontal(); 2201 if (0 === t) a[e ? "scrollLeft" : "scrollTop"] = -d; 2202 else { 2203 if (!r.support.smoothScroll) 2204 return ( 2205 Ce({ swiper: r, targetPosition: -d, side: e ? "left" : "top" }), !0 2206 ); 2207 a.scrollTo({ [e ? "left" : "top"]: -d, behavior: "smooth" }); 2208 } 2209 return !0; 2210 } 2211 return ( 2212 0 === t 2213 ? (r.setTransition(0), 2214 r.setTranslate(d), 2215 i && (r.emit("beforeTransitionStart", t, n), r.emit("transitionEnd"))) 2216 : (r.setTransition(t), 2217 r.setTranslate(d), 2218 i && 2219 (r.emit("beforeTransitionStart", t, n), r.emit("transitionStart")), 2220 r.animating || 2221 ((r.animating = !0), 2222 r.onTranslateToWrapperTransitionEnd || 2223 (r.onTranslateToWrapperTransitionEnd = function (e) { 2224 r && 2225 !r.destroyed && 2226 e.target === this && 2227 (r.wrapperEl.removeEventListener( 2228 "transitionend", 2229 r.onTranslateToWrapperTransitionEnd 2230 ), 2231 (r.onTranslateToWrapperTransitionEnd = null),
2232 delete r.onTranslateToWrapperTransitionEnd, 2233 i && r.emit("transitionEnd")); 2234 }), 2235 r.wrapperEl.addEventListener( 2236 "transitionend", 2237 r.onTranslateToWrapperTransitionEnd 2238 ))), 2239 !0 2240 ); 2241 }, 2242}; 2243function Xe({ swiper: e, runCallbacks: t, direction: i, step: s }) { 2244 const { activeIndex: n, previousIndex: r } = e; 2245 let o = i; 2246 if ( 2247 (o || (o = n > r ? "next" : n < r ? "prev" : "reset"), 2248 e.emit(`transition${s}`), 2249 t && n !== r) 2250 ) { 2251 if ("reset" === o) return void e.emit(`slideResetTransition${s}`); 2252 e.emit(`slideChangeTransition${s}`), 2253 "next" === o 2254 ? e.emit(`slideNextTransition${s}`) 2255 : e.emit(`slidePrevTransition${s}`); 2256 } 2257} 2258var Ze = { 2259 slideTo: function (e = 0, t = this.params.speed, i = !0, s, n) { 2260 "string" == typeof e && (e = parseInt(e, 10)); 2261 const r = this; 2262 let o = e; 2263 o < 0 && (o = 0); 2264 const { 2265 params: a, 2266 snapGrid: l, 2267 slidesGrid: c, 2268 previousIndex: d, 2269 activeIndex: p, 2270 rtlTranslate: u, 2271 wrapperEl: h, 2272 enabled: f, 2273 } = r; 2274 if ((r.animating && a.preventInteractionOnTransition) || (!f && !s && !n)) 2275 return !1; 2276 const w = Math.min(r.params.slidesPerGroupSkip, o); 2277 let v = w + Math.floor((o - w) / r.params.slidesPerGroup); 2278 v >= l.length && (v = l.length - 1); 2279 const g = -l[v]; 2280 if (a.normalizeSlideIndex) 2281 for (let e = 0; e < c.length; e += 1) { 2282 const t = -Math.floor(100 * g), 2283 i = Math.floor(100 * c[e]), 2284 s = Math.floor(100 * c[e + 1]); 2285 void 0 !== c[e + 1] 2286 ? t >= i && t < s - (s - i) / 2 2287 ? (o = e) 2288 : t >= i && t < s && (o = e + 1) 2289 : t >= i && (o = e); 2290 } 2291 if (r.initialized && o !== p) { 2292 if (!r.allowSlideNext && g < r.translate && g < r.minTranslate()) 2293 return !1; 2294 if ( 2295 !r.allowSlidePrev && 2296 g > r.translate && 2297 g > r.maxTranslate() && 2298 (p || 0) !== o 2299 ) 2300 return !1; 2301 } 2302 let b; 2303 if ( 2304 (o !== (d || 0) && i && r.emit("beforeSlideChangeStart"), 2305 r.updateProgress(g), 2306 (b = o > p ? "next" : o < p ? "prev" : "reset"), 2307 (u && -g === r.translate) || (!u && g === r.translate)) 2308 ) 2309 return ( 2310 r.updateActiveIndex(o), 2311 a.autoHeight && r.updateAutoHeight(), 2312 r.updateSlidesClasses(), 2313 "slide" !== a.effect && r.setTranslate(g), 2314 "reset" !== b && (r.transitionStart(i, b), r.transitionEnd(i, b)), 2315 !1 2316 ); 2317 if (a.cssMode) { 2318 const e = r.isHorizontal(), 2319 i = u ? g : -g; 2320 if (0 === t) { 2321 const t = r.virtual && r.params.virtual.enabled; 2322 t && 2323 ((r.wrapperEl.style.scrollSnapType = "none"), 2324 (r._immediateVirtual = !0)), 2325 t && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0 2326 ? ((r._cssModeVirtualInitialSet = !0), 2327 requestAnimationFrame(() => { 2328 h[e ? "scrollLeft" : "scrollTop"] = i; 2329 })) 2330 : (h[e ? "scrollLeft" : "scrollTop"] = i), 2331 t && 2332 requestAnimationFrame(() => { 2333 (r.wrapperEl.style.scrollSnapType = ""), 2334 (r._immediateVirtual = !1); 2335 }); 2336 } else { 2337 if (!r.support.smoothScroll) 2338 return ( 2339 Ce({ swiper: r, targetPosition: i, side: e ? "left" : "top" }), !0 2340 ); 2341 h.scrollTo({ [e ? "left" : "top"]: i, behavior: "smooth" }); 2342 } 2343 return !0; 2344 } 2345 return ( 2346 r.setTransition(t), 2347 r.setTranslate(g), 2348 r.updateActiveIndex(o), 2349 r.updateSlidesClasses(), 2350 r.emit("beforeTransitionStart", t, s), 2351 r.transitionStart(i, b), 2352 0 === t 2353 ? r.transitionEnd(i, b) 2354 : r.animating || 2355 ((r.animating = !0), 2356 r.onSlideToWrapperTransitionEnd || 2357 (r.onSlideToWrapperTransitionEnd = function (e) { 2358 r && 2359 !r.destroyed && 2360 e.target === this && 2361 (r.wrapperEl.removeEventListener( 2362 "transitionend", 2363 r.onSlideToWrapperTransitionEnd 2364 ), 2365 (r.onSlideToWrapperTransitionEnd = null),
2366 delete r.onSlideToWrapperTransitionEnd, 2367 r.transitionEnd(i, b)); 2368 }), 2369 r.wrapperEl.addEventListener( 2370 "transitionend", 2371 r.onSlideToWrapperTransitionEnd 2372 )), 2373 !0 2374 ); 2375 }, 2376 slideToLoop: function (e = 0, t = this.params.speed, i = !0, s) { 2377 if ("string" == typeof e) { 2378 e = parseInt(e, 10); 2379 } 2380 const n = this; 2381 let r = e; 2382 return ( 2383 n.params.loop && 2384 (n.virtual && n.params.virtual.enabled 2385 ? (r += n.virtual.slidesBefore) 2386 : (r = n.getSlideIndexByData(r))), 2387 n.slideTo(r, t, i, s) 2388 ); 2389 }, 2390 slideNext: function (e = this.params.speed, t = !0, i) { 2391 const s = this, 2392 { enabled: n, params: r, animating: o } = s; 2393 if (!n) return s; 2394 let a = r.slidesPerGroup; 2395 "auto" === r.slidesPerView && 2396 1 === r.slidesPerGroup && 2397 r.slidesPerGroupAuto && 2398 (a = Math.max(s.slidesPerViewDynamic("current", !0), 1)); 2399 const l = s.activeIndex < r.slidesPerGroupSkip ? 1 : a, 2400 c = s.virtual && r.virtual.enabled; 2401 if (r.loop) { 2402 if (o && !c && r.loopPreventsSliding) return !1; 2403 s.loopFix({ direction: "next" }), 2404 (s._clientLeft = s.wrapperEl.clientLeft); 2405 } 2406 return r.rewind && s.isEnd 2407 ? s.slideTo(0, e, t, i) 2408 : s.slideTo(s.activeIndex + l, e, t, i); 2409 }, 2410 slidePrev: function (e = this.params.speed, t = !0, i) { 2411 const s = this, 2412 { 2413 params: n, 2414 snapGrid: r, 2415 slidesGrid: o, 2416 rtlTranslate: a, 2417 enabled: l, 2418 animating: c, 2419 } = s; 2420 if (!l) return s; 2421 const d = s.virtual && n.virtual.enabled; 2422 if (n.loop) { 2423 if (c && !d && n.loopPreventsSliding) return !1; 2424 s.loopFix({ direction: "prev" }), 2425 (s._clientLeft = s.wrapperEl.clientLeft); 2426 } 2427 function p(e) { 2428 return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e); 2429 } 2430 const u = p(a ? s.translate : -s.translate), 2431 h = r.map((e) => p(e)); 2432 let f = r[h.indexOf(u) - 1]; 2433 if (void 0 === f && n.cssMode) { 2434 let e; 2435 r.forEach((t, i) => { 2436 u >= t && (e = i); 2437 }), 2438 void 0 !== e && (f = r[e > 0 ? e - 1 : e]); 2439 } 2440 let w = 0; 2441 if ( 2442 (void 0 !== f && 2443 ((w = o.indexOf(f)), 2444 w < 0 && (w = s.activeIndex - 1), 2445 "auto" === n.slidesPerView && 2446 1 === n.slidesPerGroup && 2447 n.slidesPerGroupAuto && 2448 ((w = w - s.slidesPerViewDynamic("previous", !0) + 1), 2449 (w = Math.max(w, 0)))), 2450 n.rewind && s.isBeginning) 2451 ) { 2452 const n = 2453 s.params.virtual && s.params.virtual.enabled && s.virtual 2454 ? s.virtual.slides.length - 1 2455 : s.slides.length - 1; 2456 return s.slideTo(n, e, t, i); 2457 } 2458 return s.slideTo(w, e, t, i); 2459 }, 2460 slideReset: function (e = this.params.speed, t = !0, i) { 2461 return this.slideTo(this.activeIndex, e, t, i); 2462 }, 2463 slideToClosest: function (e = this.params.speed, t = !0, i, s = 0.5) { 2464 const n = this; 2465 let r = n.activeIndex; 2466 const o = Math.min(n.params.slidesPerGroupSkip, r), 2467 a = o + Math.floor((r - o) / n.params.slidesPerGroup), 2468 l = n.rtlTranslate ? n.translate : -n.translate; 2469 if (l >= n.snapGrid[a]) { 2470 const e = n.snapGrid[a]; 2471 l - e > (n.snapGrid[a + 1] - e) * s && (r += n.params.slidesPerGroup); 2472 } else { 2473 const e = n.snapGrid[a - 1]; 2474 l - e <= (n.snapGrid[a] - e) * s && (r -= n.params.slidesPerGroup); 2475 } 2476 return ( 2477 (r = Math.max(r, 0)), 2478 (r = Math.min(r, n.slidesGrid.length - 1)), 2479 n.slideTo(r, e, t, i) 2480 ); 2481 }, 2482 slideToClickedSlide: function () { 2483 const e = this, 2484 { params: t, slidesEl: i } = e, 2485 s = 2486 "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView; 2487 let n, 2488 r = e.clickedIndex; 2489 const o = e.isElement ? "swiper-slide" : `.${t.slideClass}`; 2490 if (t.loop) { 2491 if (e.animating) return; 2492 (n = parseInt( 2493 e.clickedSlide.getAttribute("data-swiper-slide-index"), 2494 10 2495 )), 2496 t.centeredSlides 2497 ? r < e.loopedSlides - s / 2 || 2498 r > e.slides.length - e.loopedSlides + s / 2 2499 ? (e.loopFix(), 2500 (r = e.getSlideIndex( 2501 Pe(i, `${o}[data-swiper-slide-index="${n}"]`)[0] 2502 )), 2503 Me(() => { 2504 e.slideTo(r); 2505 })) 2506 : e.slideTo(r) 2507 : r > e.slides.length - s 2508 ? (e.loopFix(), 2509 (r = e.getSlideIndex( 2510 Pe(i, `${o}[data-swiper-slide-index="${n}"]`)[0] 2511 )), 2512 Me(() => { 2513 e.slideTo(r); 2514 })) 2515 : e.slideTo(r); 2516 } else e.slideTo(r); 2517 }, 2518}; 2519var We = { 2520 loopCreate: function (e) { 2521 const t = this, 2522 { params: i, slidesEl: s } = t; 2523 if (!i.loop || (t.virtual && t.params.virtual.enabled)) return; 2524 Pe(s, `.${i.slideClass}, swiper-slide`).forEach((e, t) => { 2525 e.setAttribute("data-swiper-slide-index", t); 2526 }), 2527 t.loopFix({ 2528 slideRealIndex: e, 2529 direction: i.centeredSlides ? void 0 : "next", 2530 }); 2531 }, 2532 loopFix: function ({ 2533 slideRealIndex: e, 2534 slideTo: t = !0, 2535 direction: i, 2536 setTranslate: s, 2537 activeSlideIndex: n, 2538 byController: r, 2539 byMousewheel: o, 2540 } = {}) { 2541 const a = this; 2542 if (!a.params.loop) return; 2543 a.emit("beforeLoopFix"); 2544 const { 2545 slides: l, 2546 allowSlidePrev: c, 2547 allowSlideNext: d, 2548 slidesEl: p, 2549 params: u, 2550 } = a; 2551 if ( 2552 ((a.allowSlidePrev = !0), 2553 (a.allowSlideNext = !0), 2554 a.virtual && u.virtual.enabled) 2555 ) 2556 return ( 2557 t && 2558 (u.centeredSlides || 0 !== a.snapIndex 2559 ? u.centeredSlides && a.snapIndex < u.slidesPerView 2560 ? a.slideTo(a.virtual.slides.length + a.snapIndex, 0, !1, !0) 2561 : a.snapIndex === a.snapGrid.length - 1 && 2562 a.slideTo(a.virtual.slidesBefore, 0, !1, !0) 2563 : a.slideTo(a.virtual.slides.length, 0, !1, !0)), 2564 (a.allowSlidePrev = c), 2565 (a.allowSlideNext = d), 2566 void a.emit("loopFix") 2567 ); 2568 const h = 2569 "auto" === u.slidesPerView 2570 ? a.slidesPerViewDynamic()
2571 : Math.ceil(parseFloat(u.slidesPerView, 10)); 2572 let f = u.loopedSlides || h; 2573 f % u.slidesPerGroup != 0 && 2574 (f += u.slidesPerGroup - (f % u.slidesPerGroup)), 2575 (a.loopedSlides = f); 2576 const w = [], 2577 v = []; 2578 let g = a.activeIndex; 2579 void 0 === n 2580 ? (n = a.getSlideIndex( 2581 a.slides.filter((e) => e.classList.contains(u.slideActiveClass))[0] 2582 )) 2583 : (g = n); 2584 const b = "next" === i || !i, 2585 m = "prev" === i || !i; 2586 let x = 0, 2587 A = 0; 2588 if (n < f) { 2589 x = Math.max(f - n, u.slidesPerGroup); 2590 for (let e = 0; e < f - n; e += 1) { 2591 const t = e - Math.floor(e / l.length) * l.length; 2592 w.push(l.length - t - 1); 2593 } 2594 } else if (n > a.slides.length - 2 * f) { 2595 A = Math.max(n - (a.slides.length - 2 * f), u.slidesPerGroup); 2596 for (let e = 0; e < A; e += 1) { 2597 const t = e - Math.floor(e / l.length) * l.length; 2598 v.push(t); 2599 } 2600 } 2601 if ( 2602 (m && 2603 w.forEach((e) => { 2604 p.prepend(a.slides[e]); 2605 }), 2606 b && 2607 v.forEach((e) => { 2608 p.append(a.slides[e]); 2609 }), 2610 a.recalcSlides(), 2611 u.watchSlidesProgress && a.updateSlidesOffset(), 2612 t) 2613 ) 2614 if (w.length > 0 && m) 2615 if (void 0 === e) { 2616 const e = a.slidesGrid[g], 2617 t = a.slidesGrid[g + x] - e; 2618 o 2619 ? a.setTranslate(a.translate - t) 2620 : (a.slideTo(g + x, 0, !1, !0), 2621 s && (a.touches[a.isHorizontal() ? "startX" : "startY"] += t)); 2622 } else s && a.slideToLoop(e, 0, !1, !0); 2623 else if (v.length > 0 && b) 2624 if (void 0 === e) { 2625 const e = a.slidesGrid[g], 2626 t = a.slidesGrid[g - A] - e; 2627 o 2628 ? a.setTranslate(a.translate - t) 2629 : (a.slideTo(g - A, 0, !1, !0), 2630 s && (a.touches[a.isHorizontal() ? "startX" : "startY"] += t)); 2631 } else a.slideToLoop(e, 0, !1, !0); 2632 if ( 2633 ((a.allowSlidePrev = c), 2634 (a.allowSlideNext = d), 2635 a.controller && a.controller.control && !r) 2636 ) { 2637 const t = { 2638 slideRealIndex: e, 2639 slideTo: !1, 2640 direction: i, 2641 setTranslate: s, 2642 activeSlideIndex: n, 2643 byController: !0, 2644 }; 2645 Array.isArray(a.controller.control) 2646 ? a.controller.control.forEach((e) => { 2647 !e.destroyed && e.params.loop && e.loopFix(t); 2648 }) 2649 : a.controller.control instanceof a.constructor && 2650 a.controller.control.params.loop && 2651 a.controller.control.loopFix(t); 2652 } 2653 a.emit("loopFix"); 2654 }, 2655 loopDestroy: function () { 2656 const e = this, 2657 { params: t, slidesEl: i } = e; 2658 if (!t.loop || (e.virtual && e.params.virtual.enabled)) return; 2659 e.recalcSlides(); 2660 const s = []; 2661 e.slides.forEach((e) => { 2662 const t = 2663 void 0 === e.swiperSlideIndex 2664 ? 1 * e.getAttribute("data-swiper-slide-index") 2665 : e.swiperSlideIndex; 2666 s[t] = e; 2667 }), 2668 e.slides.forEach((e) => { 2669 e.removeAttribute("data-swiper-slide-index"); 2670 }), 2671 s.forEach((e) => { 2672 i.append(e); 2673 }), 2674 e.recalcSlides(), 2675 e.slideTo(e.realIndex, 0); 2676 }, 2677}; 2678function qe(e) { 2679 const t = this, 2680 i = xe(), 2681 s = ye(), 2682 n = t.touchEventsData; 2683 n.evCache.push(e); 2684 const { params: r, touches: o, enabled: a } = t; 2685 if (!a) return; 2686 if (!r.simulateTouch && "mouse" === e.pointerType) return; 2687 if (t.animating && r.preventInteractionOnTransition) return; 2688 !t.animating && r.cssMode && r.loop && t.loopFix(); 2689 let l = e; 2690 l.originalEvent && (l = l.originalEvent); 2691 let c = l.target; 2692 if ("wrapper" === r.touchEventsTarget && !t.wrapperEl.contains(c)) return; 2693 if ("which" in l && 3 === l.which) return; 2694 if ("button" in l && l.button > 0) return; 2695 if (n.isTouched && n.isMoved) return; 2696 const d = !!r.noSwipingClass && "" !== r.noSwipingClass, 2697 p = e.composedPath ? e.composedPath() : e.path; 2698 d && l.target && l.target.shadowRoot && p && (c = p[0]); 2699 const u = r.noSwipingSelector ? r.noSwipingSelector : `.${r.noSwipingClass}`, 2700 h = !(!l.target || !l.target.shadowRoot); 2701 if ( 2702 r.noSwiping && 2703 (h 2704 ? (function (e, t = this) { 2705 return (function t(i) { 2706 if (!i || i === xe() || i === ye()) return null; 2707 i.assignedSlot && (i = i.assignedSlot); 2708 const s = i.closest(e); 2709 return s || i.getRootNode ? s || t(i.getRootNode().host) : null; 2710 })(t); 2711 })(u, c) 2712 : c.closest(u)) 2713 ) 2714 return void (t.allowClick = !0); 2715 if (r.swipeHandler && !c.closest(r.swipeHandler)) return; 2716 (o.currentX = l.pageX), (o.currentY = l.pageY); 2717 const f = o.currentX, 2718 w = o.currentY, 2719 v = r.edgeSwipeDetection || r.iOSEdgeSwipeDetection, 2720 g = r.edgeSwipeThreshold || r.iOSEdgeSwipeThreshold; 2721 if (v && (f <= g || f >= s.innerWidth - g)) { 2722 if ("prevent" !== v) return; 2723 e.preventDefault(); 2724 } 2725 Object.assign(n, { 2726 isTouched: !0, 2727 isMoved: !1, 2728 allowTouchCallbacks: !0, 2729 isScrolling: void 0, 2730 startMoving: void 0, 2731 }), 2732 (o.startX = f), 2733 (o.startY = w), 2734 (n.touchStartTime = $e()), 2735 (t.allowClick = !0), 2736 t.updateSize(), 2737 (t.swipeDirection = void 0), 2738 r.threshold > 0 && (n.allowThresholdMove = !1); 2739 let b = !0; 2740 c.matches(n.focusableElements) && 2741 ((b = !1), "SELECT" === c.nodeName && (n.isTouched = !1)), 2742 i.activeElement && 2743 i.activeElement.matches(n.focusableElements) && 2744 i.activeElement !== c && 2745 i.activeElement.blur(); 2746 const m = b && t.allowTouchMove && r.touchStartPreventDefault; 2747 (!r.touchStartForcePreventDefault && !m) || 2748 c.isContentEditable || 2749 l.preventDefault(), 2750 t.params.freeMode && 2751 t.params.freeMode.enabled && 2752 t.freeMode && 2753 t.animating && 2754 !r.cssMode && 2755 t.freeMode.onTouchStart(), 2756 t.emit("touchStart", l); 2757} 2758function Ke(e) { 2759 const t = xe(), 2760 i = this, 2761 s = i.touchEventsData, 2762 { params: n, touches: r, rtlTranslate: o, enabled: a } = i; 2763 if (!a) return; 2764 if (!n.simulateTouch && "mouse" === e.pointerType) return; 2765 let l = e; 2766 if ((l.originalEvent && (l = l.originalEvent), !s.isTouched)) 2767 return void ( 2768 s.startMoving && 2769 s.isScrolling && 2770 i.emit("touchMoveOpposite", l) 2771 ); 2772 const c = s.evCache.findIndex((e) => e.pointerId === l.pointerId); 2773 c >= 0 && (s.evCache[c] = l); 2774 const d = s.evCache.length > 1 ? s.evCache[0] : l, 2775 p = d.pageX, 2776 u = d.pageY; 2777 if (l.preventedByNestedSwiper) return (r.startX = p), void (r.startY = u); 2778 if (!i.allowTouchMove) 2779 return ( 2780 l.target.matches(s.focusableElements) || (i.allowClick = !1), 2781 void ( 2782 s.isTouched && 2783 (Object.assign(r, { 2784 startX: p, 2785 startY: u, 2786 prevX: i.touches.currentX, 2787 prevY: i.touches.currentY, 2788 currentX: p, 2789 currentY: u, 2790 }), 2791 (s.touchStartTime = $e())) 2792 ) 2793 ); 2794 if (n.touchReleaseOnEdges && !n.loop) 2795 if (i.isVertical()) { 2796 if ( 2797 (u < r.startY && i.translate <= i.maxTranslate()) || 2798 (u > r.startY && i.translate >= i.minTranslate()) 2799 ) 2800 return (s.isTouched = !1), void (s.isMoved = !1); 2801 } else if ( 2802 (p < r.startX && i.translate <= i.maxTranslate()) || 2803 (p > r.startX && i.translate >= i.minTranslate()) 2804 ) 2805 return; 2806 if ( 2807 t.activeElement && 2808 l.target === t.activeElement && 2809 l.target.matches(s.focusableElements) 2810 ) 2811 return (s.isMoved = !0), void (i.allowClick = !1); 2812 if ( 2813 (s.allowTouchCallbacks && i.emit("touchMove", l),
2814 l.targetTouches && l.targetTouches.length > 1) 2815 ) 2816 return; 2817 (r.currentX = p), (r.currentY = u); 2818 const h = r.currentX - r.startX, 2819 f = r.currentY - r.startY; 2820 if (i.params.threshold && Math.sqrt(h ** 2 + f ** 2) < i.params.threshold) 2821 return; 2822 if (void 0 === s.isScrolling) { 2823 let e; 2824 (i.isHorizontal() && r.currentY === r.startY) || 2825 (i.isVertical() && r.currentX === r.startX) 2826 ? (s.isScrolling = !1) 2827 : h * h + f * f >= 25 && 2828 ((e = (180 * Math.atan2(Math.abs(f), Math.abs(h))) / Math.PI), 2829 (s.isScrolling = i.isHorizontal() 2830 ? e > n.touchAngle 2831 : 90 - e > n.touchAngle)); 2832 } 2833 if ( 2834 (s.isScrolling && i.emit("touchMoveOpposite", l), 2835 void 0 === s.startMoving && 2836 ((r.currentX === r.startX && r.currentY === r.startY) || 2837 (s.startMoving = !0)), 2838 s.isScrolling || 2839 (i.zoom && 2840 i.params.zoom && 2841 i.params.zoom.enabled && 2842 s.evCache.length > 1)) 2843 ) 2844 return void (s.isTouched = !1); 2845 if (!s.startMoving) return; 2846 (i.allowClick = !1), 2847 !n.cssMode && l.cancelable && l.preventDefault(), 2848 n.touchMoveStopPropagation && !n.nested && l.stopPropagation(); 2849 let w = i.isHorizontal() ? h : f, 2850 v = i.isHorizontal() ? r.currentX - r.previousX : r.currentY - r.previousY; 2851 n.oneWayMovement && 2852 ((w = Math.abs(w) * (o ? 1 : -1)), (v = Math.abs(v) * (o ? 1 : -1))), 2853 (r.diff = w), 2854 (w *= n.touchRatio), 2855 o && ((w = -w), (v = -v)); 2856 const g = i.touchesDirection; 2857 (i.swipeDirection = w > 0 ? "prev" : "next"), 2858 (i.touchesDirection = v > 0 ? "prev" : "next"); 2859 const b = i.params.loop && !n.cssMode; 2860 if (!s.isMoved) { 2861 if ( 2862 (b && i.loopFix({ direction: i.swipeDirection }), 2863 (s.startTranslate = i.getTranslate()), 2864 i.setTransition(0), 2865 i.animating) 2866 ) { 2867 const e = new window.CustomEvent("transitionend", { 2868 bubbles: !0, 2869 cancelable: !0, 2870 }); 2871 i.wrapperEl.dispatchEvent(e); 2872 } 2873 (s.allowMomentumBounce = !1), 2874 !n.grabCursor || 2875 (!0 !== i.allowSlideNext && !0 !== i.allowSlidePrev) || 2876 i.setGrabCursor(!0), 2877 i.emit("sliderFirstMove", l); 2878 } 2879 let m; 2880 s.isMoved && 2881 g !== i.touchesDirection && 2882 b && 2883 Math.abs(w) >= 1 && 2884 (i.loopFix({ direction: i.swipeDirection, setTranslate: !0 }), (m = !0)), 2885 i.emit("sliderMove", l), 2886 (s.isMoved = !0), 2887 (s.currentTranslate = w + s.startTranslate); 2888 let x = !0, 2889 A = n.resistanceRatio; 2890 if ( 2891 (n.touchReleaseOnEdges && (A = 0), 2892 w > 0 2893 ? (b && 2894 !m && 2895 s.currentTranslate > 2896 (n.centeredSlides 2897 ? i.minTranslate() - i.size / 2 2898 : i.minTranslate()) && 2899 i.loopFix({ 2900 direction: "prev", 2901 setTranslate: !0, 2902 activeSlideIndex: 0, 2903 }), 2904 s.currentTranslate > i.minTranslate() && 2905 ((x = !1), 2906 n.resistance && 2907 (s.currentTranslate = 2908 i.minTranslate() - 2909 1 + 2910 (-i.minTranslate() + s.startTranslate + w) ** A))) 2911 : w < 0 && 2912 (b && 2913 !m && 2914 s.currentTranslate < 2915 (n.centeredSlides 2916 ? i.maxTranslate() + i.size / 2 2917 : i.maxTranslate()) && 2918 i.loopFix({ 2919 direction: "next", 2920 setTranslate: !0, 2921 activeSlideIndex: 2922 i.slides.length - 2923 ("auto" === n.slidesPerView 2924 ? i.slidesPerViewDynamic() 2925 : Math.ceil(parseFloat(n.slidesPerView, 10))), 2926 }), 2927 s.currentTranslate < i.maxTranslate() && 2928 ((x = !1), 2929 n.resistance && 2930 (s.currentTranslate = 2931 i.maxTranslate() + 2932 1 - 2933 (i.maxTranslate() - s.startTranslate - w) ** A))), 2934 x && (l.preventedByNestedSwiper = !0), 2935 !i.allowSlideNext && 2936 "next" === i.swipeDirection && 2937 s.currentTranslate < s.startTranslate && 2938 (s.currentTranslate = s.startTranslate), 2939 !i.allowSlidePrev && 2940 "prev" === i.swipeDirection && 2941 s.currentTranslate > s.startTranslate && 2942 (s.currentTranslate = s.startTranslate), 2943 i.allowSlidePrev || 2944 i.allowSlideNext || 2945 (s.currentTranslate = s.startTranslate), 2946 n.threshold > 0) 2947 ) { 2948 if (!(Math.abs(w) > n.threshold || s.allowThresholdMove)) 2949 return void (s.currentTranslate = s.startTranslate); 2950 if (!s.allowThresholdMove) 2951 return ( 2952 (s.allowThresholdMove = !0), 2953 (r.startX = r.currentX), 2954 (r.startY = r.currentY), 2955 (s.currentTranslate = s.startTranslate), 2956 void (r.diff = i.isHorizontal() 2957 ? r.currentX - r.startX 2958 : r.currentY - r.startY) 2959 ); 2960 } 2961 n.followFinger && 2962 !n.cssMode && 2963 (((n.freeMode && n.freeMode.enabled && i.freeMode) || 2964 n.watchSlidesProgress) && 2965 (i.updateActiveIndex(), i.updateSlidesClasses()), 2966 i.params.freeMode && 2967 n.freeMode.enabled && 2968 i.freeMode && 2969 i.freeMode.onTouchMove(), 2970 i.updateProgress(s.currentTranslate), 2971 i.setTranslate(s.currentTranslate)); 2972} 2973function Je(e) { 2974 const t = this, 2975 i = t.touchEventsData, 2976 s = i.evCache.findIndex((t) => t.pointerId === e.pointerId); 2977 if ( 2978 (s >= 0 && i.evCache.splice(s, 1), 2979 ["pointercancel", "pointerout", "pointerleave"].includes(e.type)) 2980 ) { 2981 if ( 2982 !( 2983 "pointercancel" === e.type && 2984 (t.browser.isSafari || t.browser.isWebView) 2985 ) 2986 ) 2987 return; 2988 } 2989 const { 2990 params: n, 2991 touches: r, 2992 rtlTranslate: o, 2993 slidesGrid: a, 2994 enabled: l, 2995 } = t; 2996 if (!l) return; 2997 if (!n.simulateTouch && "mouse" === e.pointerType) return; 2998 let c = e; 2999 if ( 3000 (c.originalEvent && (c = c.originalEvent), 3001 i.allowTouchCallbacks && t.emit("touchEnd", c), 3002 (i.allowTouchCallbacks = !1), 3003 !i.isTouched) 3004 ) 3005 return ( 3006 i.isMoved && n.grabCursor && t.setGrabCursor(!1), 3007 (i.isMoved = !1), 3008 void (i.startMoving = !1) 3009 ); 3010 n.grabCursor && 3011 i.isMoved && 3012 i.isTouched && 3013 (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && 3014 t.setGrabCursor(!1); 3015 const d = $e(), 3016 p = d - i.touchStartTime; 3017 if (t.allowClick) { 3018 const e = c.path || (c.composedPath && c.composedPath()); 3019 t.updateClickedSlide((e && e[0]) || c.target), 3020 t.emit("tap click", c), 3021 p < 300 && 3022 d - i.lastClickTime < 300 && 3023 t.emit("doubleTap doubleClick", c); 3024 } 3025 if ( 3026 ((i.lastClickTime = $e()), 3027 Me(() => { 3028 t.destroyed || (t.allowClick = !0); 3029 }), 3030 !i.isTouched || 3031 !i.isMoved || 3032 !t.swipeDirection || 3033 0 === r.diff || 3034 i.currentTranslate === i.startTranslate) 3035 ) 3036 return (i.isTouched = !1), (i.isMoved = !1), void (i.startMoving = !1); 3037 let u; 3038 if ( 3039 ((i.isTouched = !1), 3040 (i.isMoved = !1), 3041 (i.startMoving = !1), 3042 (u = n.followFinger 3043 ? o 3044 ? t.translate 3045 : -t.translate 3046 : -i.currentTranslate), 3047 n.cssMode) 3048 ) 3049 return; 3050 if (t.params.freeMode && n.freeMode.enabled) 3051 return void t.freeMode.onTouchEnd({ currentPos: u }); 3052 let h = 0, 3053 f = t.slidesSizesGrid[0]; 3054 for ( 3055 let e = 0; 3056 e < a.length;
3057 e += e < n.slidesPerGroupSkip ? 1 : n.slidesPerGroup 3058 ) { 3059 const t = e < n.slidesPerGroupSkip - 1 ? 1 : n.slidesPerGroup; 3060 void 0 !== a[e + t] 3061 ? u >= a[e] && u < a[e + t] && ((h = e), (f = a[e + t] - a[e])) 3062 : u >= a[e] && ((h = e), (f = a[a.length - 1] - a[a.length - 2])); 3063 } 3064 let w = null, 3065 v = null; 3066 n.rewind && 3067 (t.isBeginning 3068 ? (v = 3069 t.params.virtual && t.params.virtual.enabled && t.virtual 3070 ? t.virtual.slides.length - 1 3071 : t.slides.length - 1) 3072 : t.isEnd && (w = 0)); 3073 const g = (u - a[h]) / f, 3074 b = h < n.slidesPerGroupSkip - 1 ? 1 : n.slidesPerGroup; 3075 if (p > n.longSwipesMs) { 3076 if (!n.longSwipes) return void t.slideTo(t.activeIndex); 3077 "next" === t.swipeDirection && 3078 (g >= n.longSwipesRatio 3079 ? t.slideTo(n.rewind && t.isEnd ? w : h + b) 3080 : t.slideTo(h)), 3081 "prev" === t.swipeDirection && 3082 (g > 1 - n.longSwipesRatio 3083 ? t.slideTo(h + b) 3084 : null !== v && g < 0 && Math.abs(g) > n.longSwipesRatio 3085 ? t.slideTo(v) 3086 : t.slideTo(h)); 3087 } else { 3088 if (!n.shortSwipes) return void t.slideTo(t.activeIndex); 3089 t.navigation && 3090 (c.target === t.navigation.nextEl || c.target === t.navigation.prevEl) 3091 ? c.target === t.navigation.nextEl 3092 ? t.slideTo(h + b) 3093 : t.slideTo(h) 3094 : ("next" === t.swipeDirection && t.slideTo(null !== w ? w : h + b), 3095 "prev" === t.swipeDirection && t.slideTo(null !== v ? v : h)); 3096 } 3097} 3098let et; 3099function tt() { 3100 const e = this, 3101 { params: t, el: i } = e; 3102 if (i && 0 === i.offsetWidth) return; 3103 t.breakpoints && e.setBreakpoint(); 3104 const { allowSlideNext: s, allowSlidePrev: n, snapGrid: r } = e, 3105 o = e.virtual && e.params.virtual.enabled; 3106 (e.allowSlideNext = !0), 3107 (e.allowSlidePrev = !0), 3108 e.updateSize(), 3109 e.updateSlides(), 3110 e.updateSlidesClasses(); 3111 const a = o && t.loop; 3112 !("auto" === t.slidesPerView || t.slidesPerView > 1) || 3113 !e.isEnd || 3114 e.isBeginning || 3115 e.params.centeredSlides || 3116 a 3117 ? e.params.loop && !o 3118 ? e.slideToLoop(e.realIndex, 0, !1, !0) 3119 : e.slideTo(e.activeIndex, 0, !1, !0) 3120 : e.slideTo(e.slides.length - 1, 0, !1, !0), 3121 e.autoplay && 3122 e.autoplay.running && 3123 e.autoplay.paused && 3124 (clearTimeout(et), 3125 (et = setTimeout(() => { 3126 e.autoplay && 3127 e.autoplay.running && 3128 e.autoplay.paused && 3129 e.autoplay.resume(); 3130 }, 500))), 3131 (e.allowSlidePrev = n), 3132 (e.allowSlideNext = s), 3133 e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow(); 3134} 3135function it(e) { 3136 const t = this; 3137 t.enabled && 3138 (t.allowClick || 3139 (t.params.preventClicks && e.preventDefault(), 3140 t.params.preventClicksPropagation && 3141 t.animating && 3142 (e.stopPropagation(), e.stopImmediatePropagation()))); 3143} 3144function st() { 3145 const e = this, 3146 { wrapperEl: t, rtlTranslate: i, enabled: s } = e; 3147 if (!s) return; 3148 let n; 3149 (e.previousTranslate = e.translate), 3150 e.isHorizontal() 3151 ? (e.translate = -t.scrollLeft) 3152 : (e.translate = -t.scrollTop), 3153 0 === e.translate && (e.translate = 0), 3154 e.updateActiveIndex(), 3155 e.updateSlidesClasses(); 3156 const r = e.maxTranslate() - e.minTranslate(); 3157 (n = 0 === r ? 0 : (e.translate - e.minTranslate()) / r), 3158 n !== e.progress && e.updateProgress(i ? -e.translate : e.translate), 3159 e.emit("setTranslate", e.translate, !1); 3160} 3161const nt = (e, t) => { 3162 if (!e || e.destroyed || !e.params) return; 3163 const i = t.closest(e.isElement ? "swiper-slide" : `.${e.params.slideClass}`); 3164 if (i) { 3165 const t = i.querySelector(`.${e.params.lazyPreloaderClass}`); 3166 t && t.remove(); 3167 } 3168}; 3169function rt(e) { 3170 nt(this, e.target), this.update(); 3171} 3172let ot = !1; 3173function at() {} 3174const lt = (e, t) => { 3175 const i = xe(), 3176 { params: s, el: n, wrapperEl: r, device: o } = e, 3177 a = !!s.nested, 3178 l = "on" === t ? "addEventListener" : "removeEventListener", 3179 c = t; 3180 n[l]("pointerdown", e.onTouchStart, { passive: !1 }), 3181 i[l]("pointermove", e.onTouchMove, { passive: !1, capture: a }), 3182 i[l]("pointerup", e.onTouchEnd, { passive: !0 }), 3183 i[l]("pointercancel", e.onTouchEnd, { passive: !0 }), 3184 i[l]("pointerout", e.onTouchEnd, { passive: !0 }), 3185 i[l]("pointerleave", e.onTouchEnd, { passive: !0 }), 3186 (s.preventClicks || s.preventClicksPropagation) && 3187 n[l]("click", e.onClick, !0), 3188 s.cssMode && r[l]("scroll", e.onScroll), 3189 s.updateOnWindowResize 3190 ? e[c]( 3191 o.ios || o.android 3192 ? "resize orientationchange observerUpdate" 3193 : "resize observerUpdate", 3194 tt, 3195 !0 3196 ) 3197 : e[c]("observerUpdate", tt, !0), 3198 n[l]("load", e.onLoad, { capture: !0 }); 3199}; 3200const ct = (e, t) => e.grid && t.grid && t.grid.rows > 1; 3201var dt = { 3202 setBreakpoint: function () { 3203 const e = this, 3204 { realIndex: t, initialized: i, params: s, el: n } = e, 3205 r = s.breakpoints; 3206 if (!r || (r && 0 === Object.keys(r).length)) return;
3207 const o = e.getBreakpoint(r, e.params.breakpointsBase, e.el); 3208 if (!o || e.currentBreakpoint === o) return; 3209 const a = (o in r ? r[o] : void 0) || e.originalParams, 3210 l = ct(e, s), 3211 c = ct(e, a), 3212 d = s.enabled; 3213 l && !c 3214 ? (n.classList.remove( 3215 `${s.containerModifierClass}grid`, 3216 `${s.containerModifierClass}grid-column` 3217 ), 3218 e.emitContainerClasses()) 3219 : !l && 3220 c && 3221 (n.classList.add(`${s.containerModifierClass}grid`), 3222 ((a.grid.fill && "column" === a.grid.fill) || 3223 (!a.grid.fill && "column" === s.grid.fill)) && 3224 n.classList.add(`${s.containerModifierClass}grid-column`), 3225 e.emitContainerClasses()), 3226 ["navigation", "pagination", "scrollbar"].forEach((t) => { 3227 const i = s[t] && s[t].enabled, 3228 n = a[t] && a[t].enabled; 3229 i && !n && e[t].disable(), !i && n && e[t].enable(); 3230 }); 3231 const p = a.direction && a.direction !== s.direction, 3232 u = s.loop && (a.slidesPerView !== s.slidesPerView || p); 3233 p && i && e.changeDirection(), ke(e.params, a); 3234 const h = e.params.enabled; 3235 Object.assign(e, { 3236 allowTouchMove: e.params.allowTouchMove, 3237 allowSlideNext: e.params.allowSlideNext, 3238 allowSlidePrev: e.params.allowSlidePrev, 3239 }), 3240 d && !h ? e.disable() : !d && h && e.enable(), 3241 (e.currentBreakpoint = o), 3242 e.emit("_beforeBreakpoint", a), 3243 u && i && (e.loopDestroy(), e.loopCreate(t), e.updateSlides()), 3244 e.emit("breakpoint", a); 3245 }, 3246 getBreakpoint: function (e, t = "window", i) { 3247 if (!e || ("container" === t && !i)) return; 3248 let s = !1; 3249 const n = ye(), 3250 r = "window" === t ? n.innerHeight : i.clientHeight, 3251 o = Object.keys(e).map((e) => { 3252 if ("string" == typeof e && 0 === e.indexOf("@")) { 3253 const t = parseFloat(e.substr(1)); 3254 return { value: r * t, point: e }; 3255 } 3256 return { value: e, point: e }; 3257 }); 3258 o.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10)); 3259 for (let e = 0; e < o.length; e += 1) { 3260 const { point: r, value: a } = o[e]; 3261 "window" === t 3262 ? n.matchMedia(`(min-width: ${a}px)`).matches && (s = r) 3263 : a <= i.clientWidth && (s = r); 3264 } 3265 return s || "max"; 3266 }, 3267}; 3268var pt = { 3269 init: !0, 3270 direction: "horizontal", 3271 oneWayMovement: !1, 3272 touchEventsTarget: "wrapper", 3273 initialSlide: 0, 3274 speed: 300, 3275 cssMode: !1, 3276 updateOnWindowResize: !0, 3277 resizeObserver: !0, 3278 nested: !1, 3279 createElements: !1, 3280 enabled: !0, 3281 focusableElements: "input, select, option, textarea, button, video, label", 3282 width: null, 3283 height: null, 3284 preventInteractionOnTransition: !1, 3285 userAgent: null, 3286 url: null, 3287 edgeSwipeDetection: !1, 3288 edgeSwipeThreshold: 20, 3289 autoHeight: !1, 3290 setWrapperSize: !1, 3291 virtualTranslate: !1, 3292 effect: "slide", 3293 breakpoints: void 0, 3294 breakpointsBase: "window", 3295 spaceBetween: 0, 3296 slidesPerView: 1, 3297 slidesPerGroup: 1, 3298 slidesPerGroupSkip: 0, 3299 slidesPerGroupAuto: !1, 3300 centeredSlides: !1, 3301 centeredSlidesBounds: !1, 3302 slidesOffsetBefore: 0, 3303 slidesOffsetAfter: 0, 3304 normalizeSlideIndex: !0, 3305 centerInsufficientSlides: !1, 3306 watchOverflow: !0, 3307 roundLengths: !1, 3308 touchRatio: 1, 3309 touchAngle: 45, 3310 simulateTouch: !0, 3311 shortSwipes: !0, 3312 longSwipes: !0, 3313 longSwipesRatio: 0.5, 3314 longSwipesMs: 300, 3315 followFinger: !0, 3316 allowTouchMove: !0, 3317 threshold: 5, 3318 touchMoveStopPropagation: !1, 3319 touchStartPreventDefault: !0, 3320 touchStartForcePreventDefault: !1, 3321 touchReleaseOnEdges: !1, 3322 uniqueNavElements: !0, 3323 resistance: !0, 3324 resistanceRatio: 0.85, 3325 watchSlidesProgress: !1, 3326 grabCursor: !1, 3327 preventClicks: !0, 3328 preventClicksPropagation: !0, 3329 slideToClickedSlide: !1, 3330 loop: !1, 3331 loopedSlides: null, 3332 loopPreventsSliding: !0, 3333 rewind: !1, 3334 allowSlidePrev: !0, 3335 allowSlideNext: !0, 3336 swipeHandler: null, 3337 noSwiping: !0, 3338 noSwipingClass: "swiper-no-swiping", 3339 noSwipingSelector: null, 3340 passiveListeners: !0, 3341 maxBackfaceHiddenSlides: 10, 3342 containerModifierClass: "swiper-", 3343 slideClass: "swiper-slide", 3344 slideActiveClass: "swiper-slide-active", 3345 slideVisibleClass: "swiper-slide-visible", 3346 slideNextClass: "swiper-slide-next", 3347 slidePrevClass: "swiper-slide-prev", 3348 wrapperClass: "swiper-wrapper", 3349 lazyPreloaderClass: "swiper-lazy-preloader", 3350 runCallbacksOnInit: !0, 3351 _emitClasses: !1, 3352}; 3353function ut(e, t) { 3354 return function (i = {}) { 3355 const s = Object.keys(i)[0], 3356 n = i[s]; 3357 "object" == typeof n && null !== n 3358 ? (["navigation", "pagination", "scrollbar"].indexOf(s) >= 0 && 3359 !0 === e[s] && 3360 (e[s] = { auto: !0 }), 3361 s in e && "enabled" in n 3362 ? (!0 === e[s] && (e[s] = { enabled: !0 }), 3363 "object" != typeof e[s] || "enabled" in e[s] || (e[s].enabled = !0), 3364 e[s] || (e[s] = { enabled: !1 }), 3365 ke(t, i)) 3366 : ke(t, i)) 3367 : ke(t, i); 3368 }; 3369} 3370const ht = { 3371 eventsEmitter: Ve, 3372 update: He, 3373 translate: Qe, 3374 transition: { 3375 setTransition: function (e, t) { 3376 const i = this; 3377 i.params.cssMode || (i.wrapperEl.style.transitionDuration = `${e}ms`), 3378 i.emit("setTransition", e, t); 3379 }, 3380 transitionStart: function (e = !0, t) { 3381 const i = this, 3382 { params: s } = i; 3383 s.cssMode || 3384 (s.autoHeight && i.updateAutoHeight(), 3385 Xe({ swiper: i, runCallbacks: e, direction: t, step: "Start" })); 3386 }, 3387 transitionEnd: function (e = !0, t) { 3388 const i = this, 3389 { params: s } = i; 3390 (i.animating = !1), 3391 s.cssMode || 3392 (i.setTransition(0), 3393 Xe({ swiper: i, runCallbacks: e, direction: t, step: "End" })); 3394 }, 3395 }, 3396 slide: Ze, 3397 loop: We, 3398 grabCursor: { 3399 setGrabCursor: function (e) { 3400 const t = this; 3401 if ( 3402 !t.params.simulateTouch || 3403 (t.params.watchOverflow && t.isLocked) || 3404 t.params.cssMode 3405 ) 3406 return; 3407 const i = 3408 "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl; 3409 t.isElement && (t.m = !0), 3410 (i.style.cursor = "move"), 3411 (i.style.cursor = e ? "grabbing" : "grab"), 3412 t.isElement && 3413 requestAnimationFrame(() => { 3414 t.m = !1; 3415 }); 3416 }, 3417 unsetGrabCursor: function () { 3418 const e = this; 3419 (e.params.watchOverflow && e.isLocked) || 3420 e.params.cssMode || 3421 (e.isElement && (e.m = !0), 3422 (e[ 3423 "container" === e.params.touchEventsTarget ? "el" : "wrapperEl" 3424 ].style.cursor = ""), 3425 e.isElement && 3426 requestAnimationFrame(() => { 3427 e.m = !1; 3428 })); 3429 }, 3430 }, 3431 events: { 3432 attachEvents: function () { 3433 const e = this, 3434 t = xe(), 3435 { params: i } = e; 3436 (e.onTouchStart = qe.bind(e)), 3437 (e.onTouchMove = Ke.bind(e)), 3438 (e.onTouchEnd = Je.bind(e)), 3439 i.cssMode && (e.onScroll = st.bind(e)), 3440 (e.onClick = it.bind(e)), 3441 (e.onLoad = rt.bind(e)), 3442 ot || (t.addEventListener("touchstart", at), (ot = !0)), 3443 lt(e, "on"); 3444 }, 3445 detachEvents: function () { 3446 lt(this, "off"); 3447 }, 3448 }, 3449 breakpoints: dt, 3450 checkOverflow: { 3451 checkOverflow: function () { 3452 const e = this, 3453 { isLocked: t, params: i } = e, 3454 { slidesOffsetBefore: s } = i; 3455 if (s) { 3456 const t = e.slides.length - 1, 3457 i = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * s;
3458 e.isLocked = e.size > i; 3459 } else e.isLocked = 1 === e.snapGrid.length; 3460 !0 === i.allowSlideNext && (e.allowSlideNext = !e.isLocked), 3461 !0 === i.allowSlidePrev && (e.allowSlidePrev = !e.isLocked), 3462 t && t !== e.isLocked && (e.isEnd = !1), 3463 t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"); 3464 }, 3465 }, 3466 classes: { 3467 addClasses: function () { 3468 const e = this, 3469 { classNames: t, params: i, rtl: s, el: n, device: r } = e, 3470 o = (function (e, t) { 3471 const i = []; 3472 return ( 3473 e.forEach((e) => { 3474 "object" == typeof e 3475 ? Object.keys(e).forEach((s) => { 3476 e[s] && i.push(t + s); 3477 }) 3478 : "string" == typeof e && i.push(t + e); 3479 }), 3480 i 3481 ); 3482 })( 3483 [ 3484 "initialized", 3485 i.direction, 3486 { "free-mode": e.params.freeMode && i.freeMode.enabled }, 3487 { autoheight: i.autoHeight }, 3488 { rtl: s }, 3489 { grid: i.grid && i.grid.rows > 1 }, 3490 { 3491 "grid-column": 3492 i.grid && i.grid.rows > 1 && "column" === i.grid.fill, 3493 }, 3494 { android: r.android }, 3495 { ios: r.ios }, 3496 { "css-mode": i.cssMode }, 3497 { centered: i.cssMode && i.centeredSlides }, 3498 { "watch-progress": i.watchSlidesProgress }, 3499 ], 3500 i.containerModifierClass 3501 ); 3502 t.push(...o), n.classList.add(...t), e.emitContainerClasses(); 3503 }, 3504 removeClasses: function () { 3505 const { el: e, classNames: t } = this; 3506 e.classList.remove(...t), this.emitContainerClasses(); 3507 }, 3508 }, 3509 }, 3510 ft = {}; 3511class wt { 3512 constructor(...e) { 3513 let t, i; 3514 1 === e.length && 3515 e[0].constructor && 3516 "Object" === Object.prototype.toString.call(e[0]).slice(8, -1) 3517 ? (i = e[0]) 3518 : ([t, i] = e), 3519 i || (i = {}), 3520 (i = ke({}, i)), 3521 t && !i.el && (i.el = t); 3522 const s = xe(); 3523 if ( 3524 i.el && 3525 "string" == typeof i.el && 3526 s.querySelectorAll(i.el).length > 1 3527 ) { 3528 const e = []; 3529 return ( 3530 s.querySelectorAll(i.el).forEach((t) => { 3531 const s = ke({}, i, { el: t }); 3532 e.push(new wt(s)); 3533 }), 3534 e 3535 ); 3536 } 3537 const n = this; 3538 (n.i = !0), 3539 (n.support = Ye()), 3540 (n.device = Ne({ userAgent: i.userAgent })), 3541 (n.browser = Ue()), 3542 (n.eventsListeners = {}), 3543 (n.eventsAnyListeners = []), 3544 (n.modules = [...n.A]), 3545 i.modules && Array.isArray(i.modules) && n.modules.push(...i.modules); 3546 const r = {}; 3547 n.modules.forEach((e) => { 3548 e({ 3549 params: i, 3550 swiper: n, 3551 extendParams: ut(i, r), 3552 on: n.on.bind(n), 3553 once: n.once.bind(n), 3554 off: n.off.bind(n), 3555 emit: n.emit.bind(n), 3556 }); 3557 }); 3558 const o = ke({}, pt, r); 3559 return ( 3560 (n.params = ke({}, o, ft, i)), 3561 (n.originalParams = ke({}, n.params)), 3562 (n.passedParams = ke({}, i)), 3563 n.params && 3564 n.params.on &&
3565 Object.keys(n.params.on).forEach((e) => { 3566 n.on(e, n.params.on[e]); 3567 }), 3568 n.params && n.params.onAny && n.onAny(n.params.onAny), 3569 Object.assign(n, { 3570 enabled: n.params.enabled, 3571 el: t, 3572 classNames: [], 3573 slides: [], 3574 slidesGrid: [], 3575 snapGrid: [], 3576 slidesSizesGrid: [], 3577 isHorizontal: () => "horizontal" === n.params.direction, 3578 isVertical: () => "vertical" === n.params.direction, 3579 activeIndex: 0, 3580 realIndex: 0, 3581 isBeginning: !0, 3582 isEnd: !1, 3583 translate: 0, 3584 previousTranslate: 0, 3585 progress: 0, 3586 velocity: 0, 3587 animating: !1, 3588 allowSlideNext: n.params.allowSlideNext, 3589 allowSlidePrev: n.params.allowSlidePrev, 3590 touchEventsData: { 3591 isTouched: void 0, 3592 isMoved: void 0, 3593 allowTouchCallbacks: void 0, 3594 touchStartTime: void 0, 3595 isScrolling: void 0, 3596 currentTranslate: void 0, 3597 startTranslate: void 0, 3598 allowThresholdMove: void 0, 3599 focusableElements: n.params.focusableElements, 3600 lastClickTime: $e(), 3601 clickTimeout: void 0, 3602 velocities: [], 3603 allowMomentumBounce: void 0, 3604 startMoving: void 0, 3605 evCache: [], 3606 }, 3607 allowClick: !0, 3608 allowTouchMove: n.params.allowTouchMove, 3609 touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, 3610 imagesToLoad: [], 3611 imagesLoaded: 0, 3612 }), 3613 n.emit("_swiper"), 3614 n.params.init && n.init(), 3615 n 3616 ); 3617 } 3618 getSlideIndex(e) { 3619 const { slidesEl: t, params: i } = this, 3620 s = Ie(Pe(t, `.${i.slideClass}, swiper-slide`)[0]); 3621 return Ie(e) - s; 3622 } 3623 getSlideIndexByData(e) { 3624 return this.getSlideIndex( 3625 this.slides.filter( 3626 (t) => 1 * t.getAttribute("data-swiper-slide-index") === e 3627 )[0] 3628 ); 3629 } 3630 recalcSlides() { 3631 const { slidesEl: e, params: t } = this; 3632 this.slides = Pe(e, `.${t.slideClass}, swiper-slide`); 3633 } 3634 enable() { 3635 const e = this; 3636 e.enabled || 3637 ((e.enabled = !0), 3638 e.params.grabCursor && e.setGrabCursor(), 3639 e.emit("enable")); 3640 } 3641 disable() { 3642 const e = this; 3643 e.enabled && 3644 ((e.enabled = !1), 3645 e.params.grabCursor && e.unsetGrabCursor(), 3646 e.emit("disable")); 3647 } 3648 setProgress(e, t) { 3649 const i = this; 3650 e = Math.min(Math.max(e, 0), 1); 3651 const s = i.minTranslate(), 3652 n = (i.maxTranslate() - s) * e + s; 3653 i.translateTo(n, void 0 === t ? 0 : t), 3654 i.updateActiveIndex(), 3655 i.updateSlidesClasses(); 3656 } 3657 emitContainerClasses() { 3658 const e = this; 3659 if (!e.params._emitClasses || !e.el) return; 3660 const t = e.el.className 3661 .split(" ") 3662 .filter( 3663 (t) => 3664 0 === t.indexOf("swiper") || 3665 0 === t.indexOf(e.params.containerModifierClass) 3666 ); 3667 e.emit("_containerClasses", t.join(" ")); 3668 } 3669 getSlideClasses(e) { 3670 const t = this; 3671 return t.destroyed 3672 ? "" 3673 : e.className 3674 .split(" ") 3675 .filter( 3676 (e) => 3677 0 === e.indexOf("swiper-slide") || 3678 0 === e.indexOf(t.params.slideClass) 3679 ) 3680 .join(" "); 3681 } 3682 emitSlidesClasses() { 3683 const e = this; 3684 if (!e.params._emitClasses || !e.el) return; 3685 const t = []; 3686 e.slides.forEach((i) => { 3687 const s = e.getSlideClasses(i); 3688 t.push({ slideEl: i, classNames: s }), e.emit("_slideClass", i, s); 3689 }), 3690 e.emit("_slideClasses", t); 3691 } 3692 slidesPerViewDynamic(e = "current", t = !1) { 3693 const { 3694 params: i, 3695 slides: s, 3696 slidesGrid: n, 3697 slidesSizesGrid: r, 3698 size: o, 3699 activeIndex: a, 3700 } = this; 3701 let l = 1; 3702 if (i.centeredSlides) { 3703 let e, 3704 t = s[a].swiperSlideSize; 3705 for (let i = a + 1; i < s.length; i += 1) 3706 s[i] && 3707 !e && 3708 ((t += s[i].swiperSlideSize), (l += 1), t > o && (e = !0)); 3709 for (let i = a - 1; i >= 0; i -= 1) 3710 s[i] && 3711 !e && 3712 ((t += s[i].swiperSlideSize), (l += 1), t > o && (e = !0)); 3713 } else if ("current" === e) 3714 for (let e = a + 1; e < s.length; e += 1) { 3715 (t ? n[e] + r[e] - n[a] < o : n[e] - n[a] < o) && (l += 1); 3716 } 3717 else 3718 for (let e = a - 1; e >= 0; e -= 1) {
3719 n[a] - n[e] < o && (l += 1); 3720 } 3721 return l; 3722 } 3723 update() { 3724 const e = this; 3725 if (!e || e.destroyed) return; 3726 const { snapGrid: t, params: i } = e; 3727 function s() { 3728 const t = e.rtlTranslate ? -1 * e.translate : e.translate, 3729 i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); 3730 e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses(); 3731 } 3732 let n; 3733 i.breakpoints && e.setBreakpoint(), 3734 [...e.el.querySelectorAll('[loading="lazy"]')].forEach((t) => { 3735 t.complete && nt(e, t); 3736 }), 3737 e.updateSize(), 3738 e.updateSlides(), 3739 e.updateProgress(), 3740 e.updateSlidesClasses(), 3741 e.params.freeMode && e.params.freeMode.enabled 3742 ? (s(), e.params.autoHeight && e.updateAutoHeight()) 3743 : ((n = 3744 ("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && 3745 e.isEnd && 3746 !e.params.centeredSlides 3747 ? e.slideTo(e.slides.length - 1, 0, !1, !0) 3748 : e.slideTo(e.activeIndex, 0, !1, !0)), 3749 n || s()), 3750 i.watchOverflow && t !== e.snapGrid && e.checkOverflow(), 3751 e.emit("update"); 3752 } 3753 changeDirection(e, t = !0) { 3754 const i = this, 3755 s = i.params.direction; 3756 return ( 3757 e || (e = "horizontal" === s ? "vertical" : "horizontal"), 3758 e === s || 3759 ("horizontal" !== e && "vertical" !== e) || 3760 (i.el.classList.remove(`${i.params.containerModifierClass}${s}`), 3761 i.el.classList.add(`${i.params.containerModifierClass}${e}`), 3762 i.emitContainerClasses(), 3763 (i.params.direction = e), 3764 i.slides.forEach((t) => { 3765 "vertical" === e ? (t.style.width = "") : (t.style.height = ""); 3766 }), 3767 i.emit("changeDirection"), 3768 t && i.update()), 3769 i 3770 ); 3771 } 3772 changeLanguageDirection(e) { 3773 const t = this; 3774 (t.rtl && "rtl" === e) || 3775 (!t.rtl && "ltr" === e) || 3776 ((t.rtl = "rtl" === e), 3777 (t.rtlTranslate = "horizontal" === t.params.direction && t.rtl), 3778 t.rtl 3779 ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`), 3780 (t.el.dir = "rtl")) 3781 : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`), 3782 (t.el.dir = "ltr")), 3783 t.update()); 3784 } 3785 mount(e) { 3786 const t = this; 3787 if (t.mounted) return !0; 3788 let i = e || t.params.el; 3789 if (("string" == typeof i && (i = document.querySelector(i)), !i)) 3790 return !1; 3791 (i.swiper = t), i.shadowEl && (t.isElement = !0); 3792 const s = () => 3793 `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`; 3794 let n = (() => { 3795 if (i && i.shadowRoot && i.shadowRoot.querySelector) { 3796 return i.shadowRoot.querySelector(s()); 3797 } 3798 return Pe(i, s())[0]; 3799 })(); 3800 return ( 3801 !n && 3802 t.params.createElements && 3803 ((n = Oe("div", t.params.wrapperClass)), 3804 i.append(n), 3805 Pe(i, `.${t.params.slideClass}`).forEach((e) => { 3806 n.append(e); 3807 })), 3808 Object.assign(t, { 3809 el: i, 3810 wrapperEl: n, 3811 slidesEl: t.isElement ? i : n, 3812 mounted: !0, 3813 rtl: "rtl" === i.dir.toLowerCase() || "rtl" === Be(i, "direction"), 3814 rtlTranslate: 3815 "horizontal" === t.params.direction && 3816 ("rtl" === i.dir.toLowerCase() || "rtl" === Be(i, "direction")), 3817 wrongRTL: "-webkit-box" === Be(n, "display"), 3818 }), 3819 !0 3820 ); 3821 } 3822 init(e) { 3823 const t = this; 3824 if (t.initialized) return t; 3825 return ( 3826 !1 === t.mount(e) || 3827 (t.emit("beforeInit"), 3828 t.params.breakpoints && t.setBreakpoint(), 3829 t.addClasses(), 3830 t.updateSize(), 3831 t.updateSlides(), 3832 t.params.watchOverflow && t.checkOverflow(), 3833 t.params.grabCursor && t.enabled && t.setGrabCursor(), 3834 t.params.loop && t.virtual && t.params.virtual.enabled 3835 ? t.slideTo( 3836 t.params.initialSlide + t.virtual.slidesBefore, 3837 0, 3838 t.params.runCallbacksOnInit, 3839 !1, 3840 !0 3841 ) 3842 : t.slideTo( 3843 t.params.initialSlide, 3844 0, 3845 t.params.runCallbacksOnInit, 3846 !1, 3847 !0 3848 ), 3849 t.params.loop && t.loopCreate(), 3850 t.attachEvents(),
3851 [...t.el.querySelectorAll('[loading="lazy"]')].forEach((e) => { 3852 e.complete 3853 ? nt(t, e) 3854 : e.addEventListener("load", (e) => { 3855 nt(t, e.target); 3856 }); 3857 }), 3858 (t.initialized = !0), 3859 t.emit("init"), 3860 t.emit("afterInit")), 3861 t 3862 ); 3863 } 3864 destroy(e = !0, t = !0) { 3865 const i = this, 3866 { params: s, el: n, wrapperEl: r, slides: o } = i; 3867 return ( 3868 void 0 === i.params || 3869 i.destroyed || 3870 (i.emit("beforeDestroy"), 3871 (i.initialized = !1), 3872 i.detachEvents(), 3873 s.loop && i.loopDestroy(), 3874 t && 3875 (i.removeClasses(), 3876 n.removeAttribute("style"), 3877 r.removeAttribute("style"), 3878 o && 3879 o.length && 3880 o.forEach((e) => { 3881 e.classList.remove( 3882 s.slideVisibleClass, 3883 s.slideActiveClass, 3884 s.slideNextClass, 3885 s.slidePrevClass 3886 ), 3887 e.removeAttribute("style"), 3888 e.removeAttribute("data-swiper-slide-index"); 3889 })), 3890 i.emit("destroy"), 3891 Object.keys(i.eventsListeners).forEach((e) => { 3892 i.off(e); 3893 }), 3894 !1 !== e && 3895 ((i.el.swiper = null), 3896 (function (e) { 3897 const t = e; 3898 Object.keys(t).forEach((e) => { 3899 try { 3900 t[e] = null; 3901 } catch (e) {} 3902 try { 3903 delete t[e]; 3904 } catch (e) {} 3905 }); 3906 })(i)), 3907 (i.destroyed = !0)), 3908 null 3909 ); 3910 } 3911 static extendDefaults(e) { 3912 ke(ft, e); 3913 } 3914 static get extendedDefaults() { 3915 return ft; 3916 } 3917 static get defaults() { 3918 return pt; 3919 } 3920 static installModule(e) { 3921 wt.prototype.A || (wt.prototype.A = []); 3922 const t = wt.prototype.A; 3923 "function" == typeof e && t.indexOf(e) < 0 && t.push(e); 3924 } 3925 static use(e) { 3926 return Array.isArray(e) 3927 ? (e.forEach((e) => wt.installModule(e)), wt) 3928 : (wt.installModule(e), wt); 3929 } 3930} 3931function vt(e, t, i, s) { 3932 return ( 3933 e.params.createElements && 3934 Object.keys(s).forEach((n) => { 3935 if (!i[n] && !0 === i.auto) { 3936 let r = Pe(e.el, `.${s[n]}`)[0]; 3937 r || ((r = Oe("div", s[n])), (r.className = s[n]), e.el.append(r)), 3938 (i[n] = r), 3939 (t[n] = r); 3940 } 3941 }), 3942 i 3943 ); 3944} 3945function gt(e = "") { 3946 return `.${e 3947 .trim() 3948 .replace(/([\.:!+\/])/g, "\\$1") 3949 .replace(/ /g, ".")}`; 3950} 3951function bt(e) { 3952 const t = this, 3953 { params: i, slidesEl: s } = t; 3954 i.loop && t.loopDestroy(); 3955 const n = (e) => { 3956 if ("string" == typeof e) { 3957 const t = document.createElement("div"); 3958 (t.innerHTML = e), s.append(t.children[0]), (t.innerHTML = ""); 3959 } else s.append(e); 3960 }; 3961 if ("object" == typeof e && "length" in e) 3962 for (let t = 0; t < e.length; t += 1) e[t] && n(e[t]); 3963 else n(e); 3964 t.recalcSlides(), 3965 i.loop && t.loopCreate(), 3966 (i.observer && !t.isElement) || t.update(); 3967} 3968function mt(e) { 3969 const t = this, 3970 { params: i, activeIndex: s, slidesEl: n } = t; 3971 i.loop && t.loopDestroy(); 3972 let r = s + 1; 3973 const o = (e) => { 3974 if ("string" == typeof e) { 3975 const t = document.createElement("div"); 3976 (t.innerHTML = e), n.prepend(t.children[0]), (t.innerHTML = ""); 3977 } else n.prepend(e); 3978 }; 3979 if ("object" == typeof e && "length" in e) { 3980 for (let t = 0; t < e.length; t += 1) e[t] && o(e[t]); 3981 r = s + e.length; 3982 } else o(e); 3983 t.recalcSlides(), 3984 i.loop && t.loopCreate(), 3985 (i.observer && !t.isElement) || t.update(), 3986 t.slideTo(r, 0, !1); 3987} 3988function xt(e, t) { 3989 const i = this, 3990 { params: s, activeIndex: n, slidesEl: r } = i; 3991 let o = n; 3992 s.loop && ((o -= i.loopedSlides), i.loopDestroy(), i.recalcSlides()); 3993 const a = i.slides.length; 3994 if (e <= 0) return void i.prependSlide(t); 3995 if (e >= a) return void i.appendSlide(t); 3996 let l = o > e ? o + 1 : o; 3997 const c = []; 3998 for (let t = a - 1; t >= e; t -= 1) { 3999 const e = i.slides[t]; 4000 e.remove(), c.unshift(e); 4001 } 4002 if ("object" == typeof t && "length" in t) { 4003 for (let e = 0; e < t.length; e += 1) t[e] && r.append(t[e]); 4004 l = o > e ? o + t.length : o; 4005 } else r.append(t); 4006 for (let e = 0; e < c.length; e += 1) r.append(c[e]); 4007 i.recalcSlides(), 4008 s.loop && i.loopCreate(), 4009 (s.observer && !i.isElement) || i.update(), 4010 s.loop ? i.slideTo(l + i.loopedSlides, 0, !1) : i.slideTo(l, 0, !1); 4011} 4012function At(e) { 4013 const t = this, 4014 { params: i, activeIndex: s } = t; 4015 let n = s; 4016 i.loop && ((n -= t.loopedSlides), t.loopDestroy()); 4017 let r, 4018 o = n; 4019 if ("object" == typeof e && "length" in e) { 4020 for (let i = 0; i < e.length; i += 1) 4021 (r = e[i]), t.slides[r] && t.slides[r].remove(), r < o && (o -= 1); 4022 o = Math.max(o, 0); 4023 } else 4024 (r = e), 4025 t.slides[r] && t.slides[r].remove(), 4026 r < o && (o -= 1), 4027 (o = Math.max(o, 0)); 4028 t.recalcSlides(), 4029 i.loop && t.loopCreate(),
4030 (i.observer && !t.isElement) || t.update(), 4031 i.loop ? t.slideTo(o + t.loopedSlides, 0, !1) : t.slideTo(o, 0, !1); 4032} 4033function yt() { 4034 const e = this, 4035 t = []; 4036 for (let i = 0; i < e.slides.length; i += 1) t.push(i); 4037 e.removeSlide(t); 4038} 4039function Mt(e) { 4040 const { 4041 effect: t, 4042 swiper: i, 4043 on: s, 4044 setTranslate: n, 4045 setTransition: r, 4046 overwriteParams: o, 4047 perspective: a, 4048 recreateShadows: l, 4049 getEffectParams: c, 4050 } = e; 4051 let d; 4052 s("beforeInit", () => { 4053 if (i.params.effect !== t) return; 4054 i.classNames.push(`${i.params.containerModifierClass}${t}`), 4055 a && a() && i.classNames.push(`${i.params.containerModifierClass}3d`); 4056 const e = o ? o() : {}; 4057 Object.assign(i.params, e), Object.assign(i.originalParams, e); 4058 }), 4059 s("setTranslate", () => { 4060 i.params.effect === t && n(); 4061 }), 4062 s("setTransition", (e, s) => { 4063 i.params.effect === t && r(s); 4064 }), 4065 s("transitionEnd", () => { 4066 if (i.params.effect === t && l) { 4067 if (!c || !c().slideShadows) return; 4068 i.slides.forEach((e) => { 4069 e.querySelectorAll( 4070 ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" 4071 ).forEach((e) => e.remove()); 4072 }), 4073 l(); 4074 } 4075 }), 4076 s("virtualUpdate", () => { 4077 i.params.effect === t && 4078 (i.slides.length || (d = !0), 4079 requestAnimationFrame(() => { 4080 d && i.slides && i.slides.length && (n(), (d = !1)); 4081 })); 4082 }); 4083} 4084function $t(e, t) { 4085 const i = ze(t); 4086 return ( 4087 i !== t && 4088 ((i.style.backfaceVisibility = "hidden"), 4089 (i.style["-webkit-backface-visibility"] = "hidden")), 4090 i 4091 ); 4092} 4093function St({ swiper: e, duration: t, transformElements: i, allSlides: s }) { 4094 const { activeIndex: n } = e; 4095 if (e.params.virtualTranslate && 0 !== t) { 4096 let t, 4097 r = !1; 4098 (t = s 4099 ? i 4100 : i.filter((t) => { 4101 const i = t.classList.contains("swiper-slide-transform") 4102 ? ((t) => { 4103 if (!t.parentElement) 4104 return e.slides.filter( 4105 (e) => e.shadowEl && e.shadowEl === t.parentNode 4106 )[0]; 4107 return t.parentElement; 4108 })(t) 4109 : t; 4110 return e.getSlideIndex(i) === n; 4111 })), 4112 t.forEach((t) => { 4113 _e(t, () => { 4114 if (r) return; 4115 if (!e || e.destroyed) return; 4116 (r = !0), (e.animating = !1); 4117 const t = new window.CustomEvent("transitionend", { 4118 bubbles: !0, 4119 cancelable: !0, 4120 }); 4121 e.wrapperEl.dispatchEvent(t); 4122 }); 4123 }); 4124 } 4125} 4126function Et(e, t, i) { 4127 const s = "swiper-slide-shadow" + (i ? `-${i}` : ""), 4128 n = ze(t); 4129 let r = n.querySelector(`.${s}`); 4130 return ( 4131 r || 4132 ((r = Oe("div", "swiper-slide-shadow" + (i ? `-${i}` : ""))), 4133 n.append(r)), 4134 r 4135 ); 4136} 4137Object.keys(ht).forEach((e) => { 4138 Object.keys(ht[e]).forEach((t) => { 4139 wt.prototype[t] = ht[e][t]; 4140 }); 4141}), 4142 wt.use([ 4143 function ({ swiper: e, on: t, emit: i }) { 4144 const s = ye(); 4145 let n = null, 4146 r = null; 4147 const o = () => { 4148 e && 4149 !e.destroyed && 4150 e.initialized && 4151 (i("beforeResize"), i("resize")); 4152 }, 4153 a = () => { 4154 e && !e.destroyed && e.initialized && i("orientationchange"); 4155 }; 4156 t("init", () => { 4157 e.params.resizeObserver && void 0 !== s.ResizeObserver 4158 ? e && 4159 !e.destroyed && 4160 e.initialized && 4161 ((n = new ResizeObserver((t) => { 4162 r = s.requestAnimationFrame(() => { 4163 const { width: i, height: s } = e; 4164 let n = i, 4165 r = s; 4166 t.forEach( 4167 ({ contentBoxSize: t, contentRect: i, target: s }) => { 4168 (s && s !== e.el) || 4169 ((n = i ? i.width : (t[0] || t).inlineSize), 4170 (r = i ? i.height : (t[0] || t).blockSize)); 4171 } 4172 ), 4173 (n === i && r === s) || o(); 4174 }); 4175 })), 4176 n.observe(e.el)) 4177 : (s.addEventListener("resize", o), 4178 s.addEventListener("orientationchange", a)); 4179 }), 4180 t("destroy", () => { 4181 r && s.cancelAnimationFrame(r), 4182 n && n.unobserve && e.el && (n.unobserve(e.el), (n = null)), 4183 s.removeEventListener("resize", o), 4184 s.removeEventListener("orientationchange", a); 4185 }); 4186 }, 4187 function ({ swiper: e, extendParams: t, on: i, emit: s }) { 4188 const n = [], 4189 r = ye(), 4190 o = (t, i = {}) => { 4191 const o = new (r.MutationObserver || r.WebkitMutationObserver)( 4192 (t) => { 4193 if (e.m) return; 4194 if (1 === t.length) return void s("observerUpdate", t[0]); 4195 const i = function () { 4196 s("observerUpdate", t[0]); 4197 }; 4198 r.requestAnimationFrame 4199 ? r.requestAnimationFrame(i) 4200 : r.setTimeout(i, 0); 4201 } 4202 ); 4203 o.observe(t, { 4204 attributes: void 0 === i.attributes || i.attributes, 4205 childList: void 0 === i.childList || i.childList, 4206 characterData: void 0 === i.characterData || i.characterData, 4207 }), 4208 n.push(o); 4209 }; 4210 t({ observer: !1, observeParents: !1, observeSlideChildren: !1 }), 4211 i("init", () => { 4212 if (e.params.observer) { 4213 if (e.params.observeParents) { 4214 const t = Le(e.el); 4215 for (let e = 0; e < t.length; e += 1) o(t[e]); 4216 } 4217 o(e.el, { childList: e.params.observeSlideChildren }), 4218 o(e.wrapperEl, { attributes: !1 }); 4219 } 4220 }), 4221 i("destroy", () => {
4222 n.forEach((e) => { 4223 e.disconnect(); 4224 }), 4225 n.splice(0, n.length); 4226 }); 4227 }, 4228 ]); 4229const kt = [ 4230 function ({ swiper: e, extendParams: t, on: i, emit: s }) { 4231 let n; 4232 t({ 4233 virtual: { 4234 enabled: !1, 4235 slides: [], 4236 cache: !0, 4237 renderSlide: null, 4238 renderExternal: null, 4239 renderExternalUpdate: !0, 4240 addSlidesBefore: 0, 4241 addSlidesAfter: 0, 4242 }, 4243 }); 4244 const r = xe(); 4245 e.virtual = { 4246 cache: {}, 4247 from: void 0, 4248 to: void 0, 4249 slides: [], 4250 offset: 0, 4251 slidesGrid: [], 4252 }; 4253 const o = r.createElement("div"); 4254 function a(t, i) { 4255 const s = e.params.virtual; 4256 if (s.cache && e.virtual.cache[i]) return e.virtual.cache[i]; 4257 let n; 4258 return ( 4259 s.renderSlide 4260 ? ((n = s.renderSlide.call(e, t, i)), 4261 "string" == typeof n && ((o.innerHTML = n), (n = o.children[0]))) 4262 : (n = e.isElement 4263 ? Oe("swiper-slide") 4264 : Oe("div", e.params.slideClass)), 4265 n.setAttribute("data-swiper-slide-index", i), 4266 s.renderSlide || (n.innerHTML = t), 4267 s.cache && (e.virtual.cache[i] = n), 4268 n 4269 ); 4270 } 4271 function l(t) { 4272 const { 4273 slidesPerView: i, 4274 slidesPerGroup: n, 4275 centeredSlides: r, 4276 loop: o, 4277 } = e.params, 4278 { addSlidesBefore: l, addSlidesAfter: c } = e.params.virtual, 4279 { from: d, to: p, slides: u, slidesGrid: h, offset: f } = e.virtual; 4280 e.params.cssMode || e.updateActiveIndex(); 4281 const w = e.activeIndex || 0; 4282 let v, g, b; 4283 (v = e.rtlTranslate ? "right" : e.isHorizontal() ? "left" : "top"), 4284 r 4285 ? ((g = Math.floor(i / 2) + n + c), (b = Math.floor(i / 2) + n + l)) 4286 : ((g = i + (n - 1) + c), (b = (o ? i : n) + l)); 4287 let m = w - b, 4288 x = w + g; 4289 o || ((m = Math.max(m, 0)), (x = Math.min(x, u.length - 1))); 4290 let A = (e.slidesGrid[m] || 0) - (e.slidesGrid[0] || 0); 4291 function y() { 4292 e.updateSlides(), 4293 e.updateProgress(), 4294 e.updateSlidesClasses(), 4295 s("virtualUpdate"); 4296 } 4297 if ( 4298 (o && w >= b 4299 ? ((m -= b), r || (A += e.slidesGrid[0])) 4300 : o && w < b && ((m = -b), r && (A += e.slidesGrid[0])), 4301 Object.assign(e.virtual, { 4302 from: m, 4303 to: x, 4304 offset: A, 4305 slidesGrid: e.slidesGrid, 4306 slidesBefore: b, 4307 slidesAfter: g, 4308 }), 4309 d === m && p === x && !t) 4310 ) 4311 return ( 4312 e.slidesGrid !== h && 4313 A !== f && 4314 e.slides.forEach((e) => { 4315 e.style[v] = `${A}px`; 4316 }), 4317 e.updateProgress(), 4318 void s("virtualUpdate") 4319 ); 4320 if (e.params.virtual.renderExternal) 4321 return ( 4322 e.params.virtual.renderExternal.call(e, { 4323 offset: A, 4324 from: m, 4325 to: x, 4326 slides: (function () { 4327 const e = []; 4328 for (let t = m; t <= x; t += 1) e.push(u[t]); 4329 return e; 4330 })(), 4331 }), 4332 void (e.params.virtual.renderExternalUpdate 4333 ? y() 4334 : s("virtualUpdate")) 4335 ); 4336 const M = [], 4337 $ = [], 4338 S = (e) => { 4339 let t = e; 4340 return ( 4341 e < 0 ? (t = u.length + e) : t >= u.length && (t -= u.length), t 4342 ); 4343 }; 4344 if (t) 4345 e.slidesEl 4346 .querySelectorAll(`.${e.params.slideClass}, swiper-slide`) 4347 .forEach((e) => { 4348 e.remove(); 4349 }); 4350 else 4351 for (let t = d; t <= p; t += 1) 4352 if (t < m || t > x) { 4353 const i = S(t); 4354 e.slidesEl 4355 .querySelectorAll( 4356 `.${e.params.slideClass}[data-swiper-slide-index="${i}"], swiper-slide[data-swiper-slide-index="${i}"]` 4357 ) 4358 .forEach((e) => { 4359 e.remove(); 4360 }); 4361 } 4362 const E = o ? -u.length : 0, 4363 k = o ? 2 * u.length : u.length; 4364 for (let e = E; e < k; e += 1) 4365 if (e >= m && e <= x) { 4366 const i = S(e); 4367 void 0 === p || t 4368 ? $.push(i) 4369 : (e > p && $.push(i), e < d && M.push(i)); 4370 } 4371 if ( 4372 ($.forEach((t) => { 4373 e.slidesEl.append(a(u[t], t)); 4374 }), 4375 o) 4376 ) 4377 for (let t = M.length - 1; t >= 0; t -= 1) { 4378 const i = M[t]; 4379 e.slidesEl.prepend(a(u[i], i)); 4380 } 4381 else 4382 M.sort((e, t) => t - e), 4383 M.forEach((t) => { 4384 e.slidesEl.prepend(a(u[t], t)); 4385 }); 4386 Pe(e.slidesEl, ".swiper-slide, swiper-slide").forEach((e) => { 4387 e.style[v] = `${A}px`; 4388 }), 4389 y(); 4390 } 4391 i("beforeInit", () => { 4392 if (!e.params.virtual.enabled) return; 4393 let t; 4394 if (void 0 === e.passedParams.virtual.slides) { 4395 const i = [...e.slidesEl.children].filter((t) => 4396 t.matches(`.${e.params.slideClass}, swiper-slide`) 4397 ); 4398 i && 4399 i.length && 4400 ((e.virtual.slides = [...i]), 4401 (t = !0),
4402 i.forEach((t, i) => { 4403 t.setAttribute("data-swiper-slide-index", i), 4404 (e.virtual.cache[i] = t), 4405 t.remove(); 4406 })); 4407 } 4408 t || (e.virtual.slides = e.params.virtual.slides), 4409 e.classNames.push(`${e.params.containerModifierClass}virtual`), 4410 (e.params.watchSlidesProgress = !0), 4411 (e.originalParams.watchSlidesProgress = !0), 4412 e.params.initialSlide || l(); 4413 }), 4414 i("setTranslate", () => { 4415 e.params.virtual.enabled && 4416 (e.params.cssMode && !e._immediateVirtual 4417 ? (clearTimeout(n), 4418 (n = setTimeout(() => { 4419 l(); 4420 }, 100))) 4421 : l()); 4422 }), 4423 i("init update resize", () => { 4424 e.params.virtual.enabled && 4425 e.params.cssMode && 4426 Te(e.wrapperEl, "--swiper-virtual-size", `${e.virtualSize}px`); 4427 }), 4428 Object.assign(e.virtual, { 4429 appendSlide: function (t) { 4430 if ("object" == typeof t && "length" in t) 4431 for (let i = 0; i < t.length; i += 1) 4432 t[i] && e.virtual.slides.push(t[i]); 4433 else e.virtual.slides.push(t); 4434 l(!0); 4435 }, 4436 prependSlide: function (t) { 4437 const i = e.activeIndex; 4438 let s = i + 1, 4439 n = 1; 4440 if (Array.isArray(t)) { 4441 for (let i = 0; i < t.length; i += 1) 4442 t[i] && e.virtual.slides.unshift(t[i]); 4443 (s = i + t.length), (n = t.length); 4444 } else e.virtual.slides.unshift(t); 4445 if (e.params.virtual.cache) { 4446 const t = e.virtual.cache, 4447 i = {}; 4448 Object.keys(t).forEach((e) => { 4449 const s = t[e], 4450 r = s.getAttribute("data-swiper-slide-index"); 4451 r && 4452 s.setAttribute("data-swiper-slide-index", parseInt(r, 10) + n), 4453 (i[parseInt(e, 10) + n] = s); 4454 }), 4455 (e.virtual.cache = i); 4456 } 4457 l(!0), e.slideTo(s, 0); 4458 }, 4459 removeSlide: function (t) { 4460 if (null == t) return; 4461 let i = e.activeIndex; 4462 if (Array.isArray(t)) 4463 for (let s = t.length - 1; s >= 0; s -= 1) 4464 e.virtual.slides.splice(t[s], 1), 4465 e.params.virtual.cache && delete e.virtual.cache[t[s]], 4466 t[s] < i && (i -= 1), 4467 (i = Math.max(i, 0)); 4468 else 4469 e.virtual.slides.splice(t, 1), 4470 e.params.virtual.cache && delete e.virtual.cache[t], 4471 t < i && (i -= 1), 4472 (i = Math.max(i, 0)); 4473 l(!0), e.slideTo(i, 0); 4474 }, 4475 removeAllSlides: function () { 4476 (e.virtual.slides = []), 4477 e.params.virtual.cache && (e.virtual.cache = {}), 4478 l(!0), 4479 e.slideTo(0, 0); 4480 }, 4481 update: l, 4482 }); 4483 }, 4484 function ({ swiper: e, extendParams: t, on: i, emit: s }) { 4485 const n = xe(), 4486 r = ye(); 4487 function o(t) { 4488 if (!e.enabled) return; 4489 const { rtlTranslate: i } = e; 4490 let o = t; 4491 o.originalEvent && (o = o.originalEvent); 4492 const a = o.keyCode || o.charCode, 4493 l = e.params.keyboard.pageUpDown, 4494 c = l && 33 === a, 4495 d = l && 34 === a, 4496 p = 37 === a, 4497 u = 39 === a, 4498 h = 38 === a, 4499 f = 40 === a; 4500 if ( 4501 !e.allowSlideNext && 4502 ((e.isHorizontal() && u) || (e.isVertical() && f) || d) 4503 ) 4504 return !1; 4505 if ( 4506 !e.allowSlidePrev && 4507 ((e.isHorizontal() && p) || (e.isVertical() && h) || c) 4508 ) 4509 return !1; 4510 if ( 4511 !( 4512 o.shiftKey || 4513 o.altKey || 4514 o.ctrlKey || 4515 o.metaKey || 4516 (n.activeElement && 4517 n.activeElement.nodeName && 4518 ("input" === n.activeElement.nodeName.toLowerCase() || 4519 "textarea" === n.activeElement.nodeName.toLowerCase())) 4520 ) 4521 ) { 4522 if (e.params.keyboard.onlyInViewport && (c || d || p || u || h || f)) { 4523 let t = !1; 4524 if ( 4525 Le(e.el, `.${e.params.slideClass}, swiper-slide`).length > 0 && 4526 0 === Le(e.el, `.${e.params.slideActiveClass}`).length 4527 ) 4528 return; 4529 const s = e.el, 4530 n = s.clientWidth, 4531 o = s.clientHeight, 4532 a = r.innerWidth,
4533 l = r.innerHeight, 4534 c = je(s); 4535 i && (c.left -= s.scrollLeft); 4536 const d = [ 4537 [c.left, c.top], 4538 [c.left + n, c.top], 4539 [c.left, c.top + o], 4540 [c.left + n, c.top + o], 4541 ]; 4542 for (let e = 0; e < d.length; e += 1) { 4543 const i = d[e]; 4544 if (i[0] >= 0 && i[0] <= a && i[1] >= 0 && i[1] <= l) { 4545 if (0 === i[0] && 0 === i[1]) continue; 4546 t = !0; 4547 } 4548 } 4549 if (!t) return; 4550 } 4551 e.isHorizontal() 4552 ? ((c || d || p || u) && 4553 (o.preventDefault ? o.preventDefault() : (o.returnValue = !1)), 4554 (((d || u) && !i) || ((c || p) && i)) && e.slideNext(), 4555 (((c || p) && !i) || ((d || u) && i)) && e.slidePrev()) 4556 : ((c || d || h || f) && 4557 (o.preventDefault ? o.preventDefault() : (o.returnValue = !1)), 4558 (d || f) && e.slideNext(), 4559 (c || h) && e.slidePrev()), 4560 s("keyPress", a); 4561 } 4562 } 4563 function a() { 4564 e.keyboard.enabled || 4565 (n.addEventListener("keydown", o), (e.keyboard.enabled = !0)); 4566 } 4567 function l() { 4568 e.keyboard.enabled && 4569 (n.removeEventListener("keydown", o), (e.keyboard.enabled = !1)); 4570 } 4571 (e.keyboard = { enabled: !1 }), 4572 t({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }), 4573 i("init", () => { 4574 e.params.keyboard.enabled && a(); 4575 }), 4576 i("destroy", () => { 4577 e.keyboard.enabled && l(); 4578 }), 4579 Object.assign(e.keyboard, { enable: a, disable: l }); 4580 }, 4581 function ({ swiper: e, extendParams: t, on: i, emit: s }) { 4582 const n = ye(); 4583 let r; 4584 t({ 4585 mousewheel: { 4586 enabled: !1, 4587 releaseOnEdges: !1, 4588 invert: !1, 4589 forceToAxis: !1, 4590 sensitivity: 1, 4591 eventsTarget: "container", 4592 thresholdDelta: null, 4593 thresholdTime: null, 4594 }, 4595 }), 4596 (e.mousewheel = { enabled: !1 }); 4597 let o, 4598 a = $e(); 4599 const l = []; 4600 function c() { 4601 e.enabled && (e.mouseEntered = !0); 4602 } 4603 function d() { 4604 e.enabled && (e.mouseEntered = !1); 4605 } 4606 function p(t) { 4607 return ( 4608 !( 4609 e.params.mousewheel.thresholdDelta && 4610 t.delta < e.params.mousewheel.thresholdDelta 4611 ) && 4612 !( 4613 e.params.mousewheel.thresholdTime && 4614 $e() - a < e.params.mousewheel.thresholdTime 4615 ) && 4616 ((t.delta >= 6 && $e() - a < 60) || 4617 (t.direction < 0 4618 ? (e.isEnd && !e.params.loop) || 4619 e.animating || 4620 (e.slideNext(), s("scroll", t.raw)) 4621 : (e.isBeginning && !e.params.loop) || 4622 e.animating || 4623 (e.slidePrev(), s("scroll", t.raw)), 4624 (a = new n.Date().getTime()), 4625 !1)) 4626 ); 4627 } 4628 function u(t) { 4629 let i = t, 4630 n = !0; 4631 if (!e.enabled) return; 4632 const a = e.params.mousewheel; 4633 e.params.cssMode && i.preventDefault(); 4634 let c = e.el; 4635 "container" !== e.params.mousewheel.eventsTarget && 4636 (c = document.querySelector(e.params.mousewheel.eventsTarget)); 4637 const d = c && c.contains(i.target); 4638 if (!e.mouseEntered && !d && !a.releaseOnEdges) return !0; 4639 i.originalEvent && (i = i.originalEvent); 4640 let u = 0; 4641 const h = e.rtlTranslate ? -1 : 1, 4642 f = (function (e) { 4643 let t = 0, 4644 i = 0, 4645 s = 0, 4646 n = 0; 4647 return ( 4648 "detail" in e && (i = e.detail), 4649 "wheelDelta" in e && (i = -e.wheelDelta / 120), 4650 "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), 4651 "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), 4652 "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = i), (i = 0)), 4653 (s = 10 * t), 4654 (n = 10 * i), 4655 "deltaY" in e && (n = e.deltaY), 4656 "deltaX" in e && (s = e.deltaX), 4657 e.shiftKey && !s && ((s = n), (n = 0)), 4658 (s || n) && 4659 e.deltaMode && 4660 (1 === e.deltaMode 4661 ? ((s *= 40), (n *= 40)) 4662 : ((s *= 800), (n *= 800))), 4663 s && !t && (t = s < 1 ? -1 : 1), 4664 n && !i && (i = n < 1 ? -1 : 1), 4665 { spinX: t, spinY: i, pixelX: s, pixelY: n } 4666 ); 4667 })(i); 4668 if (a.forceToAxis) 4669 if (e.isHorizontal()) { 4670 if (!(Math.abs(f.pixelX) > Math.abs(f.pixelY))) return !0; 4671 u = -f.pixelX * h; 4672 } else { 4673 if (!(Math.abs(f.pixelY) > Math.abs(f.pixelX))) return !0; 4674 u = -f.pixelY; 4675 } 4676 else 4677 u = Math.abs(f.pixelX) > Math.abs(f.pixelY) ? -f.pixelX * h : -f.pixelY; 4678 if (0 === u) return !0; 4679 a.invert && (u = -u); 4680 let w = e.getTranslate() + u * a.sensitivity; 4681 if ( 4682 (w >= e.minTranslate() && (w = e.minTranslate()), 4683 w <= e.maxTranslate() && (w = e.maxTranslate()), 4684 (n = 4685 !!e.params.loop ||
4686 !(w === e.minTranslate() || w === e.maxTranslate())), 4687 n && e.params.nested && i.stopPropagation(), 4688 e.params.freeMode && e.params.freeMode.enabled) 4689 ) { 4690 const t = { time: $e(), delta: Math.abs(u), direction: Math.sign(u) }, 4691 n = 4692 o && 4693 t.time < o.time + 500 && 4694 t.delta <= o.delta && 4695 t.direction === o.direction; 4696 if (!n) { 4697 o = void 0; 4698 let c = e.getTranslate() + u * a.sensitivity; 4699 const d = e.isBeginning, 4700 p = e.isEnd; 4701 if ( 4702 (c >= e.minTranslate() && (c = e.minTranslate()), 4703 c <= e.maxTranslate() && (c = e.maxTranslate()), 4704 e.setTransition(0), 4705 e.setTranslate(c), 4706 e.updateProgress(), 4707 e.updateActiveIndex(), 4708 e.updateSlidesClasses(), 4709 ((!d && e.isBeginning) || (!p && e.isEnd)) && 4710 e.updateSlidesClasses(), 4711 e.params.loop && 4712 e.loopFix({ 4713 direction: t.direction < 0 ? "next" : "prev", 4714 byMousewheel: !0, 4715 }), 4716 e.params.freeMode.sticky) 4717 ) { 4718 clearTimeout(r), (r = void 0), l.length >= 15 && l.shift(); 4719 const i = l.length ? l[l.length - 1] : void 0, 4720 s = l[0]; 4721 if ( 4722 (l.push(t), 4723 i && (t.delta > i.delta || t.direction !== i.direction)) 4724 ) 4725 l.splice(0); 4726 else if ( 4727 l.length >= 15 && 4728 t.time - s.time < 500 && 4729 s.delta - t.delta >= 1 && 4730 t.delta <= 6 4731 ) { 4732 const i = u > 0 ? 0.8 : 0.2; 4733 (o = t), 4734 l.splice(0), 4735 (r = Me(() => { 4736 e.slideToClosest(e.params.speed, !0, void 0, i); 4737 }, 0)); 4738 } 4739 r || 4740 (r = Me(() => { 4741 (o = t), 4742 l.splice(0), 4743 e.slideToClosest(e.params.speed, !0, void 0, 0.5); 4744 }, 500)); 4745 } 4746 if ( 4747 (n || s("scroll", i), 4748 e.params.autoplay && 4749 e.params.autoplayDisableOnInteraction && 4750 e.autoplay.stop(), 4751 c === e.minTranslate() || c === e.maxTranslate()) 4752 ) 4753 return !0; 4754 } 4755 } else { 4756 const i = { 4757 time: $e(), 4758 delta: Math.abs(u), 4759 direction: Math.sign(u), 4760 raw: t, 4761 }; 4762 l.length >= 2 && l.shift(); 4763 const s = l.length ? l[l.length - 1] : void 0; 4764 if ( 4765 (l.push(i), 4766 s 4767 ? (i.direction !== s.direction || 4768 i.delta > s.delta || 4769 i.time > s.time + 150) && 4770 p(i) 4771 : p(i), 4772 (function (t) { 4773 const i = e.params.mousewheel; 4774 if (t.direction < 0) { 4775 if (e.isEnd && !e.params.loop && i.releaseOnEdges) return !0; 4776 } else if (e.isBeginning && !e.params.loop && i.releaseOnEdges) 4777 return !0; 4778 return !1; 4779 })(i)) 4780 ) 4781 return !0; 4782 } 4783 return i.preventDefault ? i.preventDefault() : (i.returnValue = !1), !1; 4784 } 4785 function h(t) { 4786 let i = e.el; 4787 "container" !== e.params.mousewheel.eventsTarget && 4788 (i = document.querySelector(e.params.mousewheel.eventsTarget)), 4789 i[t]("mouseenter", c), 4790 i[t]("mouseleave", d), 4791 i[t]("wheel", u); 4792 } 4793 function f() { 4794 return e.params.cssMode 4795 ? (e.wrapperEl.removeEventListener("wheel", u), !0) 4796 : !e.mousewheel.enabled && 4797 (h("addEventListener"), (e.mousewheel.enabled = !0), !0); 4798 } 4799 function w() { 4800 return e.params.cssMode 4801 ? (e.wrapperEl.addEventListener(event, u), !0) 4802 : !!e.mousewheel.enabled && 4803 (h("removeEventListener"), (e.mousewheel.enabled = !1), !0); 4804 } 4805 i("init", () => { 4806 !e.params.mousewheel.enabled && e.params.cssMode && w(), 4807 e.params.mousewheel.enabled && f(); 4808 }), 4809 i("destroy", () => { 4810 e.params.cssMode && f(), e.mousewheel.enabled && w(); 4811 }), 4812 Object.assign(e.mousewheel, { enable: f, disable: w }); 4813 }, 4814 function ({ swiper: e, extendParams: t, on: i, emit: s }) { 4815 t({ 4816 navigation: { 4817 nextEl: null, 4818 prevEl: null, 4819 hideOnClick: !1, 4820 disabledClass: "swiper-button-disabled", 4821 hiddenClass: "swiper-button-hidden", 4822 lockClass: "swiper-button-lock", 4823 navigationDisabledClass: "swiper-navigation-disabled", 4824 }, 4825 }), 4826 (e.navigation = { nextEl: null, prevEl: null }); 4827 const n = (e) => (Array.isArray(e) || (e = [e].filter((e) => !!e)), e); 4828 function r(t) { 4829 let i; 4830 return t && 4831 "string" == typeof t && 4832 e.isElement && 4833 ((i = e.el.shadowRoot.querySelector(t)), i) 4834 ? i 4835 : (t && 4836 ("string" == typeof t && (i = [...document.querySelectorAll(t)]), 4837 e.params.uniqueNavElements && 4838 "string" == typeof t && 4839 i.length > 1 && 4840 1 === e.el.querySelectorAll(t).length && 4841 (i = e.el.querySelector(t))), 4842 t && !i ? t : i); 4843 } 4844 function o(t, i) { 4845 const s = e.params.navigation;
4846 (t = n(t)).forEach((t) => { 4847 t && 4848 (t.classList[i ? "add" : "remove"](...s.disabledClass.split(" ")), 4849 "BUTTON" === t.tagName && (t.disabled = i), 4850 e.params.watchOverflow && 4851 e.enabled && 4852 t.classList[e.isLocked ? "add" : "remove"](s.lockClass)); 4853 }); 4854 } 4855 function a() { 4856 const { nextEl: t, prevEl: i } = e.navigation; 4857 if (e.params.loop) return o(i, !1), void o(t, !1); 4858 o(i, e.isBeginning && !e.params.rewind), 4859 o(t, e.isEnd && !e.params.rewind); 4860 } 4861 function l(t) { 4862 t.preventDefault(), 4863 (!e.isBeginning || e.params.loop || e.params.rewind) && 4864 (e.slidePrev(), s("navigationPrev")); 4865 } 4866 function c(t) { 4867 t.preventDefault(), 4868 (!e.isEnd || e.params.loop || e.params.rewind) && 4869 (e.slideNext(), s("navigationNext")); 4870 } 4871 function d() { 4872 const t = e.params.navigation; 4873 if ( 4874 ((e.params.navigation = vt( 4875 e, 4876 e.originalParams.navigation, 4877 e.params.navigation, 4878 { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" } 4879 )), 4880 !t.nextEl && !t.prevEl) 4881 ) 4882 return; 4883 let i = r(t.nextEl), 4884 s = r(t.prevEl); 4885 Object.assign(e.navigation, { nextEl: i, prevEl: s }), 4886 (i = n(i)), 4887 (s = n(s)); 4888 const o = (i, s) => { 4889 i && i.addEventListener("click", "next" === s ? c : l), 4890 !e.enabled && i && i.classList.add(...t.lockClass.split(" ")); 4891 }; 4892 i.forEach((e) => o(e, "next")), s.forEach((e) => o(e, "prev")); 4893 } 4894 function p() { 4895 let { nextEl: t, prevEl: i } = e.navigation; 4896 (t = n(t)), (i = n(i)); 4897 const s = (t, i) => { 4898 t.removeEventListener("click", "next" === i ? c : l), 4899 t.classList.remove(...e.params.navigation.disabledClass.split(" ")); 4900 }; 4901 t.forEach((e) => s(e, "next")), i.forEach((e) => s(e, "prev")); 4902 } 4903 i("init", () => { 4904 !1 === e.params.navigation.enabled ? u() : (d(), a()); 4905 }), 4906 i("toEdge fromEdge lock unlock", () => { 4907 a(); 4908 }), 4909 i("destroy", () => { 4910 p(); 4911 }), 4912 i("enable disable", () => { 4913 let { nextEl: t, prevEl: i } = e.navigation; 4914 (t = n(t)), 4915 (i = n(i)), 4916 [...t, ...i] 4917 .filter((e) => !!e) 4918 .forEach((t) => 4919 t.classList[e.enabled ? "remove" : "add"]( 4920 e.params.navigation.lockClass 4921 ) 4922 ); 4923 }), 4924 i("click", (t, i) => { 4925 let { nextEl: r, prevEl: o } = e.navigation; 4926 (r = n(r)), (o = n(o)); 4927 const a = i.target; 4928 if ( 4929 e.params.navigation.hideOnClick && 4930 !o.includes(a) && 4931 !r.includes(a) 4932 ) { 4933 if ( 4934 e.pagination && 4935 e.params.pagination && 4936 e.params.pagination.clickable && 4937 (e.pagination.el === a || e.pagination.el.contains(a)) 4938 ) 4939 return; 4940 let t; 4941 r.length 4942 ? (t = r[0].classList.contains(e.params.navigation.hiddenClass)) 4943 : o.length && 4944 (t = o[0].classList.contains(e.params.navigation.hiddenClass)), 4945 s(!0 === t ? "navigationShow" : "navigationHide"), 4946 [...r, ...o] 4947 .filter((e) => !!e) 4948 .forEach((t) => 4949 t.classList.toggle(e.params.navigation.hiddenClass) 4950 ); 4951 } 4952 }); 4953 const u = () => { 4954 e.el.classList.add( 4955 ...e.params.navigation.navigationDisabledClass.split(" ") 4956 ), 4957 p(); 4958 }; 4959 Object.assign(e.navigation, { 4960 enable: () => { 4961 e.el.classList.remove( 4962 ...e.params.navigation.navigationDisabledClass.split(" ") 4963 ), 4964 d(), 4965 a(); 4966 }, 4967 disable: u, 4968 update: a, 4969 init: d, 4970 destroy: p, 4971 }); 4972 }, 4973 function ({ swiper: e, extendParams: t, on: i, emit: s }) { 4974 const n = "swiper-pagination"; 4975 let r; 4976 t({ 4977 pagination: { 4978 el: null, 4979 bulletElement: "span", 4980 clickable: !1, 4981 hideOnClick: !1, 4982 renderBullet: null, 4983 renderProgressbar: null, 4984 renderFraction: null, 4985 renderCustom: null, 4986 progressbarOpposite: !1, 4987 type: "bullets", 4988 dynamicBullets: !1, 4989 dynamicMainBullets: 1, 4990 formatFractionCurrent: (e) => e, 4991 formatFractionTotal: (e) => e, 4992 bulletClass: `${n}-bullet`, 4993 bulletActiveClass: `${n}-bullet-active`, 4994 modifierClass: `${n}-`, 4995 currentClass: `${n}-current`, 4996 totalClass: `${n}-total`, 4997 hiddenClass: `${n}-hidden`, 4998 progressbarFillClass: `${n}-progressbar-fill`, 4999 progressbarOppositeClass: `${n}-progressbar-opposite`, 5000 clickableClass: `${n}-clickable`, 5001 lockClass: `${n}-lock`, 5002 horizontalClass: `${n}-horizontal`, 5003 verticalClass: `${n}-vertical`, 5004 paginationDisabledClass: `${n}-disabled`, 5005 }, 5006 }), 5007 (e.pagination = { el: null, bullets: [] }); 5008 let o = 0; 5009 const a = (e) => (Array.isArray(e) || (e = [e].filter((e) => !!e)), e); 5010 function l() { 5011 return ( 5012 !e.params.pagination.el || 5013 !e.pagination.el || 5014 (Array.isArray(e.pagination.el) && 0 === e.pagination.el.length) 5015 ); 5016 } 5017 function c(t, i) { 5018 const { bulletActiveClass: s } = e.params.pagination; 5019 t && 5020 (t = t[("prev" === i ? "previous" : "next") + "ElementSibling"]) && 5021 (t.classList.add(`${s}-${i}`), 5022 (t = t[("prev" === i ? "previous" : "next") + "ElementSibling"]) && 5023 t.classList.add(`${s}-${i}-${i}`)); 5024 } 5025 function d(t) { 5026 const i = t.target.closest(gt(e.params.pagination.bulletClass)); 5027 if (!i) return; 5028 t.preventDefault(); 5029 const s = Ie(i) * e.params.slidesPerGroup; 5030 if (e.params.loop) { 5031 if (e.realIndex === s) return; 5032 (s < e.loopedSlides || s > e.slides.length - e.loopedSlides) && 5033 e.loopFix({ 5034 direction: s < e.loopedSlides ? "prev" : "next", 5035 activeSlideIndex: s, 5036 slideTo: !1, 5037 }), 5038 e.slideToLoop(s); 5039 } else e.slideTo(s); 5040 } 5041 function p() { 5042 const t = e.rtl, 5043 i = e.params.pagination; 5044 if (l()) return; 5045 let n, 5046 d = e.pagination.el; 5047 d = a(d); 5048 const p = 5049 e.virtual && e.params.virtual.enabled 5050 ? e.virtual.slides.length 5051 : e.slides.length, 5052 u = e.params.loop 5053 ? Math.ceil(p / e.params.slidesPerGroup) 5054 : e.snapGrid.length; 5055 if ( 5056 ((n = e.params.loop 5057 ? e.params.slidesPerGroup > 1 5058 ? Math.floor(e.realIndex / e.params.slidesPerGroup) 5059 : e.realIndex
5060 : void 0 !== e.snapIndex 5061 ? e.snapIndex 5062 : e.activeIndex || 0), 5063 "bullets" === i.type && 5064 e.pagination.bullets && 5065 e.pagination.bullets.length > 0) 5066 ) { 5067 const s = e.pagination.bullets; 5068 let a, l, p; 5069 if ( 5070 (i.dynamicBullets && 5071 ((r = Ge(s[0], e.isHorizontal() ? "width" : "height", !0)), 5072 d.forEach((t) => { 5073 t.style[e.isHorizontal() ? "width" : "height"] = 5074 r * (i.dynamicMainBullets + 4) + "px"; 5075 }), 5076 i.dynamicMainBullets > 1 && 5077 void 0 !== e.previousIndex && 5078 ((o += n - (e.previousIndex || 0)), 5079 o > i.dynamicMainBullets - 1 5080 ? (o = i.dynamicMainBullets - 1) 5081 : o < 0 && (o = 0)), 5082 (a = Math.max(n - o, 0)), 5083 (l = a + (Math.min(s.length, i.dynamicMainBullets) - 1)), 5084 (p = (l + a) / 2)), 5085 s.forEach((e) => { 5086 const t = [ 5087 ...[ 5088 "", 5089 "-next", 5090 "-next-next", 5091 "-prev", 5092 "-prev-prev", 5093 "-main", 5094 ].map((e) => `${i.bulletActiveClass}${e}`), 5095 ] 5096 .map((e) => 5097 "string" == typeof e && e.includes(" ") ? e.split(" ") : e 5098 ) 5099 .flat(); 5100 e.classList.remove(...t); 5101 }), 5102 d.length > 1) 5103 ) 5104 s.forEach((e) => { 5105 const t = Ie(e); 5106 t === n && e.classList.add(...i.bulletActiveClass.split(" ")), 5107 i.dynamicBullets && 5108 (t >= a && 5109 t <= l && 5110 e.classList.add(...`${i.bulletActiveClass}-main`.split(" ")), 5111 t === a && c(e, "prev"), 5112 t === l && c(e, "next")); 5113 }); 5114 else { 5115 const e = s[n]; 5116 if ( 5117 (e && e.classList.add(...i.bulletActiveClass.split(" ")), 5118 i.dynamicBullets) 5119 ) { 5120 const e = s[a], 5121 t = s[l]; 5122 for (let e = a; e <= l; e += 1) 5123 s[e] && 5124 s[e].classList.add(...`${i.bulletActiveClass}-main`.split(" ")); 5125 c(e, "prev"), c(t, "next"); 5126 } 5127 } 5128 if (i.dynamicBullets) { 5129 const n = Math.min(s.length, i.dynamicMainBullets + 4), 5130 o = (r * n - r) / 2 - p * r, 5131 a = t ? "right" : "left"; 5132 s.forEach((t) => { 5133 t.style[e.isHorizontal() ? a : "top"] = `${o}px`; 5134 }); 5135 } 5136 } 5137 d.forEach((t, r) => { 5138 if ( 5139 ("fraction" === i.type && 5140 (t.querySelectorAll(gt(i.currentClass)).forEach((e) => { 5141 e.textContent = i.formatFractionCurrent(n + 1); 5142 }), 5143 t.querySelectorAll(gt(i.totalClass)).forEach((e) => { 5144 e.textContent = i.formatFractionTotal(u); 5145 })), 5146 "progressbar" === i.type) 5147 ) { 5148 let s; 5149 s = i.progressbarOpposite 5150 ? e.isHorizontal() 5151 ? "vertical" 5152 : "horizontal" 5153 : e.isHorizontal() 5154 ? "horizontal" 5155 : "vertical"; 5156 const r = (n + 1) / u; 5157 let o = 1, 5158 a = 1; 5159 "horizontal" === s ? (o = r) : (a = r), 5160 t.querySelectorAll(gt(i.progressbarFillClass)).forEach((t) => { 5161 (t.style.transform = `translate3d(0,0,0) scaleX(${o}) scaleY(${a})`), 5162 (t.style.transitionDuration = `${e.params.speed}ms`); 5163 }); 5164 } 5165 "custom" === i.type && i.renderCustom 5166 ? ((t.innerHTML = i.renderCustom(e, n + 1, u)), 5167 0 === r && s("paginationRender", t)) 5168 : (0 === r && s("paginationRender", t), s("paginationUpdate", t)), 5169 e.params.watchOverflow && 5170 e.enabled && 5171 t.classList[e.isLocked ? "add" : "remove"](i.lockClass); 5172 }); 5173 } 5174 function u() { 5175 const t = e.params.pagination; 5176 if (l()) return; 5177 const i = 5178 e.virtual && e.params.virtual.enabled 5179 ? e.virtual.slides.length 5180 : e.slides.length; 5181 let n = e.pagination.el; 5182 n = a(n); 5183 let r = ""; 5184 if ("bullets" === t.type) { 5185 let s = e.params.loop 5186 ? Math.ceil(i / e.params.slidesPerGroup) 5187 : e.snapGrid.length; 5188 e.params.freeMode && e.params.freeMode.enabled && s > i && (s = i); 5189 for (let i = 0; i < s; i += 1) 5190 t.renderBullet 5191 ? (r += t.renderBullet.call(e, i, t.bulletClass)) 5192 : (r += `<${t.bulletElement} class="${t.bulletClass}"></${t.bulletElement}>`); 5193 } 5194 "fraction" === t.type && 5195 (r = t.renderFraction 5196 ? t.renderFraction.call(e, t.currentClass, t.totalClass) 5197 : `<span class="${t.currentClass}"></span> / <span class="${t.totalClass}"></span>`), 5198 "progressbar" === t.type && 5199 (r = t.renderProgressbar 5200 ? t.renderProgressbar.call(e, t.progressbarFillClass) 5201 : `<span class="${t.progressbarFillClass}"></span>`), 5202 (e.pagination.bullets = []),
5203 n.forEach((i) => { 5204 "custom" !== t.type && (i.innerHTML = r || ""), 5205 "bullets" === t.type && 5206 e.pagination.bullets.push( 5207 ...i.querySelectorAll(gt(t.bulletClass)) 5208 ); 5209 }), 5210 "custom" !== t.type && s("paginationRender", n[0]); 5211 } 5212 function h() { 5213 e.params.pagination = vt( 5214 e, 5215 e.originalParams.pagination, 5216 e.params.pagination, 5217 { el: "swiper-pagination" } 5218 ); 5219 const t = e.params.pagination; 5220 if (!t.el) return; 5221 let i; 5222 "string" == typeof t.el && 5223 e.isElement && 5224 (i = e.el.shadowRoot.querySelector(t.el)), 5225 i || 5226 "string" != typeof t.el || 5227 (i = [...document.querySelectorAll(t.el)]), 5228 i || (i = t.el), 5229 i && 5230 0 !== i.length && 5231 (e.params.uniqueNavElements && 5232 "string" == typeof t.el && 5233 Array.isArray(i) && 5234 i.length > 1 && 5235 ((i = [...e.el.querySelectorAll(t.el)]), 5236 i.length > 1 && 5237 (i = i.filter((t) => Le(t, ".swiper")[0] === e.el)[0])), 5238 Array.isArray(i) && 1 === i.length && (i = i[0]), 5239 Object.assign(e.pagination, { el: i }), 5240 (i = a(i)), 5241 i.forEach((i) => { 5242 "bullets" === t.type && 5243 t.clickable && 5244 i.classList.add(t.clickableClass), 5245 i.classList.add(t.modifierClass + t.type), 5246 i.classList.add( 5247 e.isHorizontal() ? t.horizontalClass : t.verticalClass 5248 ), 5249 "bullets" === t.type && 5250 t.dynamicBullets && 5251 (i.classList.add(`${t.modifierClass}${t.type}-dynamic`), 5252 (o = 0), 5253 t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)), 5254 "progressbar" === t.type && 5255 t.progressbarOpposite && 5256 i.classList.add(t.progressbarOppositeClass), 5257 t.clickable && i.addEventListener("click", d), 5258 e.enabled || i.classList.add(t.lockClass); 5259 })); 5260 } 5261 function f() { 5262 const t = e.params.pagination; 5263 if (l()) return; 5264 let i = e.pagination.el; 5265 i && 5266 ((i = a(i)), 5267 i.forEach((i) => { 5268 i.classList.remove(t.hiddenClass), 5269 i.classList.remove(t.modifierClass + t.type), 5270 i.classList.remove( 5271 e.isHorizontal() ? t.horizontalClass : t.verticalClass 5272 ), 5273 t.clickable && i.removeEventListener("click", d); 5274 })), 5275 e.pagination.bullets && 5276 e.pagination.bullets.forEach((e) => 5277 e.classList.remove(...t.bulletActiveClass.split(" ")) 5278 ); 5279 } 5280 i("init", () => { 5281 !1 === e.params.pagination.enabled ? w() : (h(), u(), p()); 5282 }), 5283 i("activeIndexChange", () => { 5284 void 0 === e.snapIndex && p(); 5285 }), 5286 i("snapIndexChange", () => { 5287 p(); 5288 }), 5289 i("snapGridLengthChange", () => { 5290 u(), p(); 5291 }), 5292 i("destroy", () => { 5293 f(); 5294 }), 5295 i("enable disable", () => { 5296 let { el: t } = e.pagination; 5297 t && 5298 ((t = a(t)), 5299 t.forEach((t) => 5300 t.classList[e.enabled ? "remove" : "add"]( 5301 e.params.pagination.lockClass 5302 ) 5303 )); 5304 }), 5305 i("lock unlock", () => { 5306 p(); 5307 }), 5308 i("click", (t, i) => { 5309 const n = i.target; 5310 let { el: r } = e.pagination; 5311 if ( 5312 (Array.isArray(r) || (r = [r].filter((e) => !!e)), 5313 e.params.pagination.el && 5314 e.params.pagination.hideOnClick && 5315 r && 5316 r.length > 0 && 5317 !n.classList.contains(e.params.pagination.bulletClass)) 5318 ) { 5319 if ( 5320 e.navigation && 5321 ((e.navigation.nextEl && n === e.navigation.nextEl) || 5322 (e.navigation.prevEl && n === e.navigation.prevEl)) 5323 ) 5324 return; 5325 const t = r[0].classList.contains(e.params.pagination.hiddenClass); 5326 s(!0 === t ? "paginationShow" : "paginationHide"), 5327 r.forEach((t) => 5328 t.classList.toggle(e.params.pagination.hiddenClass) 5329 ); 5330 } 5331 }); 5332 const w = () => { 5333 e.el.classList.add(e.params.pagination.paginationDisabledClass); 5334 let { el: t } = e.pagination; 5335 t && 5336 ((t = a(t)), 5337 t.forEach((t) => 5338 t.classList.add(e.params.pagination.paginationDisabledClass) 5339 )), 5340 f(); 5341 };
5342 Object.assign(e.pagination, { 5343 enable: () => { 5344 e.el.classList.remove(e.params.pagination.paginationDisabledClass); 5345 let { el: t } = e.pagination; 5346 t && 5347 ((t = a(t)), 5348 t.forEach((t) => 5349 t.classList.remove(e.params.pagination.paginationDisabledClass) 5350 )), 5351 h(), 5352 u(), 5353 p(); 5354 }, 5355 disable: w, 5356 render: u, 5357 update: p, 5358 init: h, 5359 destroy: f, 5360 }); 5361 }, 5362 function ({ swiper: e, extendParams: t, on: i, emit: s }) { 5363 const n = xe(); 5364 let r, 5365 o, 5366 a, 5367 l, 5368 c = !1, 5369 d = null, 5370 p = null; 5371 function u() { 5372 if (!e.params.scrollbar.el || !e.scrollbar.el) return; 5373 const { scrollbar: t, rtlTranslate: i } = e, 5374 { dragEl: s, el: n } = t, 5375 r = e.params.scrollbar, 5376 l = e.params.loop ? e.progressLoop : e.progress; 5377 let c = o, 5378 p = (a - o) * l; 5379 i 5380 ? ((p = -p), p > 0 ? ((c = o - p), (p = 0)) : -p + o > a && (c = a + p)) 5381 : p < 0 5382 ? ((c = o + p), (p = 0)) 5383 : p + o > a && (c = a - p), 5384 e.isHorizontal() 5385 ? ((s.style.transform = `translate3d(${p}px, 0, 0)`), 5386 (s.style.width = `${c}px`)) 5387 : ((s.style.transform = `translate3d(0px, ${p}px, 0)`), 5388 (s.style.height = `${c}px`)), 5389 r.hide && 5390 (clearTimeout(d), 5391 (n.style.opacity = 1), 5392 (d = setTimeout(() => { 5393 (n.style.opacity = 0), (n.style.transitionDuration = "400ms"); 5394 }, 1e3))); 5395 } 5396 function h() { 5397 if (!e.params.scrollbar.el || !e.scrollbar.el) return; 5398 const { scrollbar: t } = e, 5399 { dragEl: i, el: s } = t; 5400 (i.style.width = ""), 5401 (i.style.height = ""), 5402 (a = e.isHorizontal() ? s.offsetWidth : s.offsetHeight), 5403 (l = 5404 e.size / 5405 (e.virtualSize + 5406 e.params.slidesOffsetBefore - 5407 (e.params.centeredSlides ? e.snapGrid[0] : 0))), 5408 (o = 5409 "auto" === e.params.scrollbar.dragSize 5410 ? a * l 5411 : parseInt(e.params.scrollbar.dragSize, 10)), 5412 e.isHorizontal() 5413 ? (i.style.width = `${o}px`) 5414 : (i.style.height = `${o}px`), 5415 (s.style.display = l >= 1 ? "none" : ""), 5416 e.params.scrollbar.hide && (s.style.opacity = 0), 5417 e.params.watchOverflow && 5418 e.enabled && 5419 t.el.classList[e.isLocked ? "add" : "remove"]( 5420 e.params.scrollbar.lockClass 5421 ); 5422 } 5423 function f(t) { 5424 return e.isHorizontal() ? t.clientX : t.clientY; 5425 } 5426 function w(t) { 5427 const { scrollbar: i, rtlTranslate: s } = e, 5428 { el: n } = i; 5429 let l; 5430 (l = 5431 (f(t) - 5432 je(n)[e.isHorizontal() ? "left" : "top"] - 5433 (null !== r ? r : o / 2)) / 5434 (a - o)), 5435 (l = Math.max(Math.min(l, 1), 0)), 5436 s && (l = 1 - l); 5437 const c = e.minTranslate() + (e.maxTranslate() - e.minTranslate()) * l; 5438 e.updateProgress(c), 5439 e.setTranslate(c), 5440 e.updateActiveIndex(), 5441 e.updateSlidesClasses(); 5442 } 5443 function v(t) { 5444 const i = e.params.scrollbar, 5445 { scrollbar: n, wrapperEl: o } = e, 5446 { el: a, dragEl: l } = n; 5447 (c = !0), 5448 (r = 5449 t.target === l 5450 ? f(t) - 5451 t.target.getBoundingClientRect()[ 5452 e.isHorizontal() ? "left" : "top" 5453 ] 5454 : null), 5455 t.preventDefault(), 5456 t.stopPropagation(), 5457 (o.style.transitionDuration = "100ms"), 5458 (l.style.transitionDuration = "100ms"), 5459 w(t), 5460 clearTimeout(p), 5461 (a.style.transitionDuration = "0ms"), 5462 i.hide && (a.style.opacity = 1), 5463 e.params.cssMode && (e.wrapperEl.style["scroll-snap-type"] = "none"), 5464 s("scrollbarDragStart", t); 5465 } 5466 function g(t) { 5467 const { scrollbar: i, wrapperEl: n } = e, 5468 { el: r, dragEl: o } = i; 5469 c && 5470 (t.preventDefault ? t.preventDefault() : (t.returnValue = !1), 5471 w(t), 5472 (n.style.transitionDuration = "0ms"), 5473 (r.style.transitionDuration = "0ms"), 5474 (o.style.transitionDuration = "0ms"), 5475 s("scrollbarDragMove", t)); 5476 } 5477 function b(t) { 5478 const i = e.params.scrollbar, 5479 { scrollbar: n, wrapperEl: r } = e, 5480 { el: o } = n; 5481 c && 5482 ((c = !1), 5483 e.params.cssMode && 5484 ((e.wrapperEl.style["scroll-snap-type"] = ""), 5485 (r.style.transitionDuration = "")), 5486 i.hide && 5487 (clearTimeout(p), 5488 (p = Me(() => { 5489 (o.style.opacity = 0), (o.style.transitionDuration = "400ms"); 5490 }, 1e3))), 5491 s("scrollbarDragEnd", t), 5492 i.snapOnRelease && e.slideToClosest()); 5493 } 5494 function m(t) { 5495 const { scrollbar: i, params: s } = e, 5496 r = i.el; 5497 if (!r) return; 5498 const o = r, 5499 a = !!s.passiveListeners && { passive: !1, capture: !1 }, 5500 l = !!s.passiveListeners && { passive: !0, capture: !1 }; 5501 if (!o) return; 5502 const c = "on" === t ? "addEventListener" : "removeEventListener"; 5503 o[c]("pointerdown", v, a), 5504 n[c]("pointermove", g, a), 5505 n[c]("pointerup", b, l); 5506 } 5507 function x() { 5508 const { scrollbar: t, el: i } = e; 5509 e.params.scrollbar = vt( 5510 e, 5511 e.originalParams.scrollbar, 5512 e.params.scrollbar, 5513 { el: "swiper-scrollbar" } 5514 ); 5515 const s = e.params.scrollbar; 5516 if (!s.el) return; 5517 let r, o; 5518 "string" == typeof s.el && 5519 e.isElement && 5520 (r = e.el.shadowRoot.querySelector(s.el)), 5521 r || "string" != typeof s.el 5522 ? r || (r = s.el) 5523 : (r = n.querySelectorAll(s.el)), 5524 e.params.uniqueNavElements && 5525 "string" == typeof s.el && 5526 r.length > 1 && 5527 1 === i.querySelectorAll(s.el).length && 5528 (r = i.querySelector(s.el)), 5529 r.length > 0 && (r = r[0]), 5530 r.classList.add(e.isHorizontal() ? s.horizontalClass : s.verticalClass), 5531 r && 5532 ((o = r.querySelector(`.${e.params.scrollbar.dragClass}`)), 5533 o || ((o = Oe("div", e.params.scrollbar.dragClass)), r.append(o))), 5534 Object.assign(t, { el: r, dragEl: o }), 5535 s.draggable && e.params.scrollbar.el && e.scrollbar.el && m("on"), 5536 r && 5537 r.classList[e.enabled ? "remove" : "add"]( 5538 e.params.scrollbar.lockClass 5539 ); 5540 } 5541 function A() { 5542 const t = e.params.scrollbar, 5543 i = e.scrollbar.el; 5544 i && 5545 i.classList.remove( 5546 e.isHorizontal() ? t.horizontalClass : t.verticalClass 5547 ), 5548 e.params.scrollbar.el && e.scrollbar.el && m("off"); 5549 } 5550 t({ 5551 scrollbar: { 5552 el: null, 5553 dragSize: "auto", 5554 hide: !1, 5555 draggable: !1, 5556 snapOnRelease: !0, 5557 lockClass: "swiper-scrollbar-lock", 5558 dragClass: "swiper-scrollbar-drag", 5559 scrollbarDisabledClass: "swiper-scrollbar-disabled", 5560 horizontalClass: "swiper-scrollbar-horizontal", 5561 verticalClass: "swiper-scrollbar-vertical", 5562 }, 5563 }), 5564 (e.scrollbar = { el: null, dragEl: null }), 5565 i("init", () => { 5566 !1 === e.params.scrollbar.enabled ? y() : (x(), h(), u()); 5567 }), 5568 i("update resize observerUpdate lock unlock", () => { 5569 h(); 5570 }), 5571 i("setTranslate", () => { 5572 u(); 5573 }), 5574 i("setTransition", (t, i) => { 5575 !(function (t) { 5576 e.params.scrollbar.el && 5577 e.scrollbar.el && 5578 (e.scrollbar.dragEl.style.transitionDuration = `${t}ms`); 5579 })(i); 5580 }), 5581 i("enable disable", () => { 5582 const { el: t } = e.scrollbar; 5583 t && 5584 t.classList[e.enabled ? "remove" : "add"]( 5585 e.params.scrollbar.lockClass 5586 ); 5587 }), 5588 i("destroy", () => { 5589 A(); 5590 }); 5591 const y = () => { 5592 e.el.classList.add(e.params.scrollbar.scrollbarDisabledClass), 5593 e.scrollbar.el && 5594 e.scrollbar.el.classList.add( 5595 e.params.scrollbar.scrollbarDisabledClass 5596 ), 5597 A(); 5598 };
5599 Object.assign(e.scrollbar, { 5600 enable: () => { 5601 e.el.classList.remove(e.params.scrollbar.scrollbarDisabledClass), 5602 e.scrollbar.el && 5603 e.scrollbar.el.classList.remove( 5604 e.params.scrollbar.scrollbarDisabledClass 5605 ), 5606 x(), 5607 h(), 5608 u(); 5609 }, 5610 disable: y, 5611 updateSize: h, 5612 setTranslate: u, 5613 init: x, 5614 destroy: A, 5615 }); 5616 }, 5617 function ({ swiper: e, extendParams: t, on: i }) { 5618 t({ parallax: { enabled: !1 } }); 5619 const s = (t, i) => { 5620 const { rtl: s } = e, 5621 n = s ? -1 : 1, 5622 r = t.getAttribute("data-swiper-parallax") || "0"; 5623 let o = t.getAttribute("data-swiper-parallax-x"), 5624 a = t.getAttribute("data-swiper-parallax-y"); 5625 const l = t.getAttribute("data-swiper-parallax-scale"), 5626 c = t.getAttribute("data-swiper-parallax-opacity"), 5627 d = t.getAttribute("data-swiper-parallax-rotate"); 5628 if ( 5629 (o || a 5630 ? ((o = o || "0"), (a = a || "0")) 5631 : e.isHorizontal() 5632 ? ((o = r), (a = "0")) 5633 : ((a = r), (o = "0")), 5634 (o = 5635 o.indexOf("%") >= 0 5636 ? parseInt(o, 10) * i * n + "%" 5637 : o * i * n + "px"), 5638 (a = a.indexOf("%") >= 0 ? parseInt(a, 10) * i + "%" : a * i + "px"), 5639 null != c) 5640 ) { 5641 const e = c - (c - 1) * (1 - Math.abs(i)); 5642 t.style.opacity = e; 5643 } 5644 let p = `translate3d(${o}, ${a}, 0px)`; 5645 if (null != l) { 5646 p += ` scale(${l - (l - 1) * (1 - Math.abs(i))})`; 5647 } 5648 if (d && null != d) { 5649 p += ` rotate(${d * i * -1}deg)`; 5650 } 5651 t.style.transform = p; 5652 }, 5653 n = () => { 5654 const { el: t, slides: i, progress: n, snapGrid: r } = e; 5655 Pe( 5656 t, 5657 "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]" 5658 ).forEach((e) => { 5659 s(e, n); 5660 }), 5661 i.forEach((t, i) => { 5662 let o = t.progress; 5663 e.params.slidesPerGroup > 1 && 5664 "auto" !== e.params.slidesPerView && 5665 (o += Math.ceil(i / 2) - n * (r.length - 1)), 5666 (o = Math.min(Math.max(o, -1), 1)), 5667 t 5668 .querySelectorAll( 5669 "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]" 5670 ) 5671 .forEach((e) => { 5672 s(e, o); 5673 }); 5674 }); 5675 }; 5676 i("beforeInit", () => { 5677 e.params.parallax.enabled && 5678 ((e.params.watchSlidesProgress = !0), 5679 (e.originalParams.watchSlidesProgress = !0)); 5680 }), 5681 i("init", () => { 5682 e.params.parallax.enabled && n(); 5683 }), 5684 i("setTranslate", () => { 5685 e.params.parallax.enabled && n(); 5686 }), 5687 i("setTransition", (t, i) => { 5688 e.params.parallax.enabled && 5689 ((t = e.params.speed) => { 5690 const { el: i } = e; 5691 i.querySelectorAll( 5692 "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]" 5693 ).forEach((e) => { 5694 let i = 5695 parseInt(e.getAttribute("data-swiper-parallax-duration"), 10) || 5696 t; 5697 0 === t && (i = 0), (e.style.transitionDuration = `${i}ms`); 5698 }); 5699 })(i); 5700 }); 5701 }, 5702 function ({ swiper: e, extendParams: t, on: i, emit: s }) { 5703 const n = ye(); 5704 t({ 5705 zoom: { 5706 enabled: !1, 5707 maxRatio: 3, 5708 minRatio: 1, 5709 toggle: !0, 5710 containerClass: "swiper-zoom-container", 5711 zoomedSlideClass: "swiper-slide-zoomed", 5712 }, 5713 }), 5714 (e.zoom = { enabled: !1 }); 5715 let r, 5716 o, 5717 a = 1, 5718 l = !1; 5719 const c = [], 5720 d = { 5721 slideEl: void 0, 5722 slideWidth: void 0, 5723 slideHeight: void 0, 5724 imageEl: void 0, 5725 imageWrapEl: void 0, 5726 maxRatio: 3, 5727 }, 5728 p = { 5729 isTouched: void 0, 5730 isMoved: void 0, 5731 currentX: void 0, 5732 currentY: void 0, 5733 minX: void 0, 5734 minY: void 0, 5735 maxX: void 0, 5736 maxY: void 0, 5737 width: void 0, 5738 height: void 0, 5739 startX: void 0, 5740 startY: void 0, 5741 touchesStart: {}, 5742 touchesCurrent: {}, 5743 }, 5744 u = { 5745 x: void 0, 5746 y: void 0, 5747 prevPositionX: void 0, 5748 prevPositionY: void 0, 5749 prevTime: void 0, 5750 }; 5751 let h = 1; 5752 function f() { 5753 if (c.length < 2) return 1; 5754 const e = c[0].pageX, 5755 t = c[0].pageY, 5756 i = c[1].pageX, 5757 s = c[1].pageY; 5758 return Math.sqrt((i - e) ** 2 + (s - t) ** 2); 5759 } 5760 function w(t) { 5761 const i = e.isElement ? "swiper-slide" : `.${e.params.slideClass}`; 5762 return ( 5763 !!t.target.matches(i) || 5764 e.slides.filter((e) => e.contains(t.target)).length > 0 5765 ); 5766 } 5767 function v(t) { 5768 if (("mouse" === t.pointerType && c.splice(0, c.length), !w(t))) return; 5769 const i = e.params.zoom; 5770 if (((r = !1), (o = !1), c.push(t), !(c.length < 2))) { 5771 if (((r = !0), (d.scaleStart = f()), !d.slideEl)) { 5772 (d.slideEl = t.target.closest( 5773 `.${e.params.slideClass}, swiper-slide` 5774 )), 5775 d.slideEl || (d.slideEl = e.slides[e.activeIndex]); 5776 let s = d.slideEl.querySelector(`.${i.containerClass}`); 5777 if ( 5778 (s && 5779 (s = s.querySelectorAll( 5780 "picture, img, svg, canvas, .swiper-zoom-target" 5781 )[0]), 5782 (d.imageEl = s), 5783 (d.imageWrapEl = s 5784 ? Le(d.imageEl, `.${i.containerClass}`)[0] 5785 : void 0), 5786 !d.imageWrapEl) 5787 ) 5788 return void (d.imageEl = void 0); 5789 d.maxRatio = 5790 d.imageWrapEl.getAttribute("data-swiper-zoom") || i.maxRatio; 5791 } 5792 if (d.imageEl) { 5793 const [e, t] = (function () { 5794 if (c.length < 2) return { x: null, y: null }; 5795 const e = d.imageEl.getBoundingClientRect(); 5796 return [ 5797 (c[0].pageX + (c[1].pageX - c[0].pageX) / 2 - e.x) / a, 5798 (c[0].pageY + (c[1].pageY - c[0].pageY) / 2 - e.y) / a, 5799 ]; 5800 })(); 5801 (d.imageEl.style.transformOrigin = `${e}px ${t}px`), 5802 (d.imageEl.style.transitionDuration = "0ms"); 5803 } 5804 l = !0; 5805 } 5806 } 5807 function g(t) { 5808 if (!w(t)) return; 5809 const i = e.params.zoom, 5810 s = e.zoom, 5811 n = c.findIndex((e) => e.pointerId === t.pointerId); 5812 n >= 0 && (c[n] = t), 5813 c.length < 2 || 5814 ((o = !0), 5815 (d.scaleMove = f()), 5816 d.imageEl && 5817 ((s.scale = (d.scaleMove / d.scaleStart) * a), 5818 s.scale > d.maxRatio && 5819 (s.scale = d.maxRatio - 1 + (s.scale - d.maxRatio + 1) ** 0.5), 5820 s.scale < i.minRatio && 5821 (s.scale = i.minRatio + 1 - (i.minRatio - s.scale + 1) ** 0.5),
5822 (d.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})`))); 5823 } 5824 function b(t) { 5825 if (!w(t)) return; 5826 if ("mouse" === t.pointerType && "pointerout" === t.type) return; 5827 const i = e.params.zoom, 5828 s = e.zoom, 5829 n = c.findIndex((e) => e.pointerId === t.pointerId); 5830 n >= 0 && c.splice(n, 1), 5831 r && 5832 o && 5833 ((r = !1), 5834 (o = !1), 5835 d.imageEl && 5836 ((s.scale = Math.max(Math.min(s.scale, d.maxRatio), i.minRatio)), 5837 (d.imageEl.style.transitionDuration = `${e.params.speed}ms`), 5838 (d.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})`), 5839 (a = s.scale), 5840 (l = !1), 5841 1 === s.scale && (d.slideEl = void 0))); 5842 } 5843 function m(t) { 5844 if ( 5845 !w(t) || 5846 !(function (t) { 5847 const i = `.${e.params.zoom.containerClass}`; 5848 return ( 5849 !!t.target.matches(i) || 5850 [...e.el.querySelectorAll(i)].filter((e) => e.contains(t.target)) 5851 .length > 0 5852 ); 5853 })(t) 5854 ) 5855 return; 5856 const i = e.zoom; 5857 if (!d.imageEl) return; 5858 if (((e.allowClick = !1), !p.isTouched || !d.slideEl)) return; 5859 p.isMoved || 5860 ((p.width = d.imageEl.offsetWidth), 5861 (p.height = d.imageEl.offsetHeight), 5862 (p.startX = Se(d.imageWrapEl, "x") || 0), 5863 (p.startY = Se(d.imageWrapEl, "y") || 0), 5864 (d.slideWidth = d.slideEl.offsetWidth), 5865 (d.slideHeight = d.slideEl.offsetHeight), 5866 (d.imageWrapEl.style.transitionDuration = "0ms")); 5867 const s = p.width * i.scale, 5868 n = p.height * i.scale; 5869 if (!(s < d.slideWidth && n < d.slideHeight)) { 5870 if ( 5871 ((p.minX = Math.min(d.slideWidth / 2 - s / 2, 0)), 5872 (p.maxX = -p.minX), 5873 (p.minY = Math.min(d.slideHeight / 2 - n / 2, 0)), 5874 (p.maxY = -p.minY), 5875 (p.touchesCurrent.x = c.length > 0 ? c[0].pageX : t.pageX), 5876 (p.touchesCurrent.y = c.length > 0 ? c[0].pageY : t.pageY), 5877 !p.isMoved && !l) 5878 ) { 5879 if ( 5880 e.isHorizontal() && 5881 ((Math.floor(p.minX) === Math.floor(p.startX) && 5882 p.touchesCurrent.x < p.touchesStart.x) || 5883 (Math.floor(p.maxX) === Math.floor(p.startX) && 5884 p.touchesCurrent.x > p.touchesStart.x)) 5885 ) 5886 return void (p.isTouched = !1); 5887 if ( 5888 !e.isHorizontal() && 5889 ((Math.floor(p.minY) === Math.floor(p.startY) && 5890 p.touchesCurrent.y < p.touchesStart.y) || 5891 (Math.floor(p.maxY) === Math.floor(p.startY) && 5892 p.touchesCurrent.y > p.touchesStart.y)) 5893 ) 5894 return void (p.isTouched = !1); 5895 } 5896 t.cancelable && t.preventDefault(), 5897 t.stopPropagation(), 5898 (p.isMoved = !0), 5899 (p.currentX = p.touchesCurrent.x - p.touchesStart.x + p.startX), 5900 (p.currentY = p.touchesCurrent.y - p.touchesStart.y + p.startY), 5901 p.currentX < p.minX && 5902 (p.currentX = p.minX + 1 - (p.minX - p.currentX + 1) ** 0.8), 5903 p.currentX > p.maxX && 5904 (p.currentX = p.maxX - 1 + (p.currentX - p.maxX + 1) ** 0.8), 5905 p.currentY < p.minY && 5906 (p.currentY = p.minY + 1 - (p.minY - p.currentY + 1) ** 0.8), 5907 p.currentY > p.maxY && 5908 (p.currentY = p.maxY - 1 + (p.currentY - p.maxY + 1) ** 0.8), 5909 u.prevPositionX || (u.prevPositionX = p.touchesCurrent.x), 5910 u.prevPositionY || (u.prevPositionY = p.touchesCurrent.y), 5911 u.prevTime || (u.prevTime = Date.now()), 5912 (u.x = 5913 (p.touchesCurrent.x - u.prevPositionX) / 5914 (Date.now() - u.prevTime) / 5915 2), 5916 (u.y = 5917 (p.touchesCurrent.y - u.prevPositionY) / 5918 (Date.now() - u.prevTime) / 5919 2), 5920 Math.abs(p.touchesCurrent.x - u.prevPositionX) < 2 && (u.x = 0), 5921 Math.abs(p.touchesCurrent.y - u.prevPositionY) < 2 && (u.y = 0), 5922 (u.prevPositionX = p.touchesCurrent.x), 5923 (u.prevPositionY = p.touchesCurrent.y), 5924 (u.prevTime = Date.now()), 5925 (d.imageWrapEl.style.transform = `translate3d(${p.currentX}px, ${p.currentY}px,0)`); 5926 } 5927 } 5928 function x() { 5929 const t = e.zoom; 5930 d.slideEl && 5931 e.previousIndex !== e.activeIndex && 5932 (d.imageEl &&
5933 (d.imageEl.style.transform = "translate3d(0,0,0) scale(1)"), 5934 d.imageWrapEl && (d.imageWrapEl.style.transform = "translate3d(0,0,0)"), 5935 (t.scale = 1), 5936 (a = 1), 5937 (d.slideEl = void 0), 5938 (d.imageEl = void 0), 5939 (d.imageWrapEl = void 0)); 5940 } 5941 function A(t) { 5942 const i = e.zoom, 5943 s = e.params.zoom; 5944 if (!d.slideEl) { 5945 t && 5946 t.target && 5947 (d.slideEl = t.target.closest( 5948 `.${e.params.slideClass}, swiper-slide` 5949 )), 5950 d.slideEl || 5951 (e.params.virtual && e.params.virtual.enabled && e.virtual 5952 ? (d.slideEl = Pe(e.slidesEl, `.${e.params.slideActiveClass}`)[0]) 5953 : (d.slideEl = e.slides[e.activeIndex])); 5954 let i = d.slideEl.querySelector(`.${s.containerClass}`); 5955 i && 5956 (i = i.querySelectorAll( 5957 "picture, img, svg, canvas, .swiper-zoom-target" 5958 )[0]), 5959 (d.imageEl = i), 5960 (d.imageWrapEl = i 5961 ? Le(d.imageEl, `.${s.containerClass}`)[0] 5962 : void 0); 5963 } 5964 if (!d.imageEl || !d.imageWrapEl) return; 5965 let r, o, l, c, u, h, f, w, v, g, b, m, x, A, y, M, $, S; 5966 e.params.cssMode && 5967 ((e.wrapperEl.style.overflow = "hidden"), 5968 (e.wrapperEl.style.touchAction = "none")), 5969 d.slideEl.classList.add(`${s.zoomedSlideClass}`), 5970 void 0 === p.touchesStart.x && t 5971 ? ((r = t.pageX), (o = t.pageY)) 5972 : ((r = p.touchesStart.x), (o = p.touchesStart.y)); 5973 const E = "number" == typeof t ? t : null; 5974 1 === a && E && ((r = void 0), (o = void 0)), 5975 (i.scale = 5976 E || d.imageWrapEl.getAttribute("data-swiper-zoom") || s.maxRatio), 5977 (a = E || d.imageWrapEl.getAttribute("data-swiper-zoom") || s.maxRatio), 5978 !t || (1 === a && E) 5979 ? ((f = 0), (w = 0)) 5980 : (($ = d.slideEl.offsetWidth), 5981 (S = d.slideEl.offsetHeight), 5982 (l = je(d.slideEl).left + n.scrollX), 5983 (c = je(d.slideEl).top + n.scrollY), 5984 (u = l + $ / 2 - r), 5985 (h = c + S / 2 - o), 5986 (v = d.imageEl.offsetWidth), 5987 (g = d.imageEl.offsetHeight), 5988 (b = v * i.scale), 5989 (m = g * i.scale), 5990 (x = Math.min($ / 2 - b / 2, 0)), 5991 (A = Math.min(S / 2 - m / 2, 0)), 5992 (y = -x), 5993 (M = -A), 5994 (f = u * i.scale), 5995 (w = h * i.scale), 5996 f < x && (f = x), 5997 f > y && (f = y), 5998 w < A && (w = A), 5999 w > M && (w = M)), 6000 (d.imageWrapEl.style.transitionDuration = "300ms"), 6001 (d.imageWrapEl.style.transform = `translate3d(${f}px, ${w}px,0)`), 6002 (d.imageEl.style.transitionDuration = "300ms"), 6003 (d.imageEl.style.transform = `translate3d(0,0,0) scale(${i.scale})`); 6004 } 6005 function y() { 6006 const t = e.zoom, 6007 i = e.params.zoom; 6008 if (!d.slideEl) { 6009 e.params.virtual && e.params.virtual.enabled && e.virtual 6010 ? (d.slideEl = Pe(e.slidesEl, `.${e.params.slideActiveClass}`)[0]) 6011 : (d.slideEl = e.slides[e.activeIndex]); 6012 let t = d.slideEl.querySelector(`.${i.containerClass}`); 6013 t && 6014 (t = t.querySelectorAll( 6015 "picture, img, svg, canvas, .swiper-zoom-target" 6016 )[0]), 6017 (d.imageEl = t), 6018 (d.imageWrapEl = t 6019 ? Le(d.imageEl, `.${i.containerClass}`)[0] 6020 : void 0); 6021 } 6022 d.imageEl && 6023 d.imageWrapEl && 6024 (e.params.cssMode && 6025 ((e.wrapperEl.style.overflow = ""), 6026 (e.wrapperEl.style.touchAction = "")), 6027 (t.scale = 1), 6028 (a = 1), 6029 (d.imageWrapEl.style.transitionDuration = "300ms"), 6030 (d.imageWrapEl.style.transform = "translate3d(0,0,0)"), 6031 (d.imageEl.style.transitionDuration = "300ms"), 6032 (d.imageEl.style.transform = "translate3d(0,0,0) scale(1)"), 6033 d.slideEl.classList.remove(`${i.zoomedSlideClass}`), 6034 (d.slideEl = void 0)); 6035 } 6036 function M(t) { 6037 const i = e.zoom; 6038 i.scale && 1 !== i.scale ? y() : A(t); 6039 } 6040 function $() { 6041 return { 6042 passiveListener: !!e.params.passiveListeners && { 6043 passive: !0, 6044 capture: !1, 6045 }, 6046 activeListenerWithCapture: !e.params.passiveListeners || { 6047 passive: !1, 6048 capture: !0, 6049 }, 6050 }; 6051 } 6052 function S() { 6053 const t = e.zoom; 6054 if (t.enabled) return; 6055 t.enabled = !0; 6056 const { passiveListener: i, activeListenerWithCapture: s } = $(); 6057 e.wrapperEl.addEventListener("pointerdown", v, i),
6058 e.wrapperEl.addEventListener("pointermove", g, s), 6059 ["pointerup", "pointercancel", "pointerout"].forEach((t) => { 6060 e.wrapperEl.addEventListener(t, b, i); 6061 }), 6062 e.wrapperEl.addEventListener("pointermove", m, s); 6063 } 6064 function E() { 6065 const t = e.zoom; 6066 if (!t.enabled) return; 6067 t.enabled = !1; 6068 const { passiveListener: i, activeListenerWithCapture: s } = $(); 6069 e.wrapperEl.removeEventListener("pointerdown", v, i), 6070 e.wrapperEl.removeEventListener("pointermove", g, s), 6071 ["pointerup", "pointercancel", "pointerout"].forEach((t) => { 6072 e.wrapperEl.removeEventListener(t, b, i); 6073 }), 6074 e.wrapperEl.removeEventListener("pointermove", m, s); 6075 } 6076 Object.defineProperty(e.zoom, "scale", { 6077 get: () => h, 6078 set(e) { 6079 if (h !== e) { 6080 const t = d.imageEl, 6081 i = d.slideEl; 6082 s("zoomChange", e, t, i); 6083 } 6084 h = e; 6085 }, 6086 }), 6087 i("init", () => { 6088 e.params.zoom.enabled && S(); 6089 }), 6090 i("destroy", () => { 6091 E(); 6092 }), 6093 i("touchStart", (t, i) => { 6094 e.zoom.enabled && 6095 (function (t) { 6096 const i = e.device; 6097 d.imageEl && 6098 (p.isTouched || 6099 (i.android && t.cancelable && t.preventDefault(), 6100 (p.isTouched = !0), 6101 (p.touchesStart.x = t.pageX), 6102 (p.touchesStart.y = t.pageY))); 6103 })(i); 6104 }), 6105 i("touchEnd", (t, i) => { 6106 e.zoom.enabled && 6107 (function () { 6108 const t = e.zoom; 6109 if (!d.imageEl) return; 6110 if (!p.isTouched || !p.isMoved) 6111 return (p.isTouched = !1), void (p.isMoved = !1); 6112 (p.isTouched = !1), (p.isMoved = !1); 6113 let i = 300, 6114 s = 300; 6115 const n = u.x * i, 6116 r = p.currentX + n, 6117 o = u.y * s, 6118 a = p.currentY + o; 6119 0 !== u.x && (i = Math.abs((r - p.currentX) / u.x)), 6120 0 !== u.y && (s = Math.abs((a - p.currentY) / u.y)); 6121 const l = Math.max(i, s); 6122 (p.currentX = r), (p.currentY = a); 6123 const c = p.width * t.scale, 6124 h = p.height * t.scale; 6125 (p.minX = Math.min(d.slideWidth / 2 - c / 2, 0)), 6126 (p.maxX = -p.minX), 6127 (p.minY = Math.min(d.slideHeight / 2 - h / 2, 0)), 6128 (p.maxY = -p.minY), 6129 (p.currentX = Math.max(Math.min(p.currentX, p.maxX), p.minX)), 6130 (p.currentY = Math.max(Math.min(p.currentY, p.maxY), p.minY)), 6131 (d.imageWrapEl.style.transitionDuration = `${l}ms`), 6132 (d.imageWrapEl.style.transform = `translate3d(${p.currentX}px, ${p.currentY}px,0)`); 6133 })(); 6134 }), 6135 i("doubleTap", (t, i) => { 6136 !e.animating && 6137 e.params.zoom.enabled && 6138 e.zoom.enabled && 6139 e.params.zoom.toggle && 6140 M(i); 6141 }), 6142 i("transitionEnd", () => { 6143 e.zoom.enabled && e.params.zoom.enabled && x(); 6144 }), 6145 i("slideChange", () => { 6146 e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && x(); 6147 }), 6148 Object.assign(e.zoom, { 6149 enable: S, 6150 disable: E, 6151 in: A, 6152 out: y, 6153 toggle: M, 6154 }); 6155 }, 6156 function ({ swiper: e, extendParams: t, on: i }) { 6157 function s(e, t) { 6158 const i = (function () { 6159 let e, t, i; 6160 return (s, n) => { 6161 for (t = -1, e = s.length; e - t > 1; ) 6162 (i = (e + t) >> 1), s[i] <= n ? (t = i) : (e = i); 6163 return e; 6164 }; 6165 })(); 6166 let s, n; 6167 return ( 6168 (this.x = e), 6169 (this.y = t), 6170 (this.lastIndex = e.length - 1), 6171 (this.interpolate = function (e) { 6172 return e 6173 ? ((n = i(this.x, e)), 6174 (s = n - 1), 6175 ((e - this.x[s]) * (this.y[n] - this.y[s])) / 6176 (this.x[n] - this.x[s]) + 6177 this.y[s]) 6178 : 0; 6179 }), 6180 this 6181 ); 6182 } 6183 function n() { 6184 e.controller.control && 6185 e.controller.spline && 6186 ((e.controller.spline = void 0), delete e.controller.spline); 6187 } 6188 t({ controller: { control: void 0, inverse: !1, by: "slide" } }), 6189 (e.controller = { control: void 0 }), 6190 i("beforeInit", () => { 6191 if ( 6192 "undefined" != typeof window && 6193 ("string" == typeof e.params.controller.control || 6194 e.params.controller.control instanceof HTMLElement) 6195 ) { 6196 const t = document.querySelector(e.params.controller.control); 6197 if (t && t.swiper) e.controller.control = t.swiper; 6198 else if (t) { 6199 const i = (s) => { 6200 (e.controller.control = s.detail[0]),
6201 e.update(), 6202 t.removeEventListener("init", i); 6203 }; 6204 t.addEventListener("init", i); 6205 } 6206 } else e.controller.control = e.params.controller.control; 6207 }), 6208 i("update", () => { 6209 n(); 6210 }), 6211 i("resize", () => { 6212 n(); 6213 }), 6214 i("observerUpdate", () => { 6215 n(); 6216 }), 6217 i("setTranslate", (t, i, s) => { 6218 e.controller.control && e.controller.setTranslate(i, s); 6219 }), 6220 i("setTransition", (t, i, s) => { 6221 e.controller.control && e.controller.setTransition(i, s); 6222 }), 6223 Object.assign(e.controller, { 6224 setTranslate: function (t, i) { 6225 const n = e.controller.control; 6226 let r, o; 6227 const a = e.constructor; 6228 function l(t) { 6229 const i = e.rtlTranslate ? -e.translate : e.translate; 6230 "slide" === e.params.controller.by && 6231 (!(function (t) { 6232 e.controller.spline || 6233 (e.controller.spline = e.params.loop 6234 ? new s(e.slidesGrid, t.slidesGrid) 6235 : new s(e.snapGrid, t.snapGrid)); 6236 })(t), 6237 (o = -e.controller.spline.interpolate(-i))), 6238 (o && "container" !== e.params.controller.by) || 6239 ((r = 6240 (t.maxTranslate() - t.minTranslate()) / 6241 (e.maxTranslate() - e.minTranslate())), 6242 (o = (i - e.minTranslate()) * r + t.minTranslate())), 6243 e.params.controller.inverse && (o = t.maxTranslate() - o), 6244 t.updateProgress(o), 6245 t.setTranslate(o, e), 6246 t.updateActiveIndex(), 6247 t.updateSlidesClasses(); 6248 } 6249 if (Array.isArray(n)) 6250 for (let e = 0; e < n.length; e += 1) 6251 n[e] !== i && n[e] instanceof a && l(n[e]); 6252 else n instanceof a && i !== n && l(n); 6253 }, 6254 setTransition: function (t, i) { 6255 const s = e.constructor, 6256 n = e.controller.control; 6257 let r; 6258 function o(i) { 6259 i.setTransition(t, e), 6260 0 !== t && 6261 (i.transitionStart(), 6262 i.params.autoHeight && 6263 Me(() => { 6264 i.updateAutoHeight(); 6265 }), 6266 _e(i.wrapperEl, () => { 6267 n && i.transitionEnd(); 6268 })); 6269 } 6270 if (Array.isArray(n)) 6271 for (r = 0; r < n.length; r += 1) 6272 n[r] !== i && n[r] instanceof s && o(n[r]); 6273 else n instanceof s && i !== n && o(n); 6274 }, 6275 }); 6276 }, 6277 function ({ swiper: e, extendParams: t, on: i }) { 6278 t({ 6279 a11y: { 6280 enabled: !0, 6281 notificationClass: "swiper-notification", 6282 prevSlideMessage: "Previous slide", 6283 nextSlideMessage: "Next slide", 6284 firstSlideMessage: "This is the first slide", 6285 lastSlideMessage: "This is the last slide", 6286 paginationBulletMessage: "Go to slide {{index}}", 6287 slideLabelMessage: "{{index}} / {{slidesLength}}", 6288 containerMessage: null, 6289 containerRoleDescriptionMessage: null, 6290 itemRoleDescriptionMessage: null, 6291 slideRole: "group", 6292 id: null, 6293 }, 6294 }), 6295 (e.a11y = { clicked: !1 }); 6296 let s = null; 6297 function n(e) { 6298 const t = s; 6299 0 !== t.length && ((t.innerHTML = ""), (t.innerHTML = e)); 6300 } 6301 const r = (e) => (Array.isArray(e) || (e = [e].filter((e) => !!e)), e); 6302 function o(e) { 6303 (e = r(e)).forEach((e) => { 6304 e.setAttribute("tabIndex", "0"); 6305 }); 6306 } 6307 function a(e) { 6308 (e = r(e)).forEach((e) => { 6309 e.setAttribute("tabIndex", "-1"); 6310 }); 6311 } 6312 function l(e, t) { 6313 (e = r(e)).forEach((e) => { 6314 e.setAttribute("role", t); 6315 }); 6316 } 6317 function c(e, t) { 6318 (e = r(e)).forEach((e) => { 6319 e.setAttribute("aria-roledescription", t); 6320 }); 6321 } 6322 function d(e, t) { 6323 (e = r(e)).forEach((e) => { 6324 e.setAttribute("aria-label", t); 6325 }); 6326 } 6327 function p(e) {
6328 (e = r(e)).forEach((e) => { 6329 e.setAttribute("aria-disabled", !0); 6330 }); 6331 } 6332 function u(e) { 6333 (e = r(e)).forEach((e) => { 6334 e.setAttribute("aria-disabled", !1); 6335 }); 6336 } 6337 function h(t) { 6338 if (13 !== t.keyCode && 32 !== t.keyCode) return; 6339 const i = e.params.a11y, 6340 s = t.target; 6341 (e.pagination && 6342 e.pagination.el && 6343 (s === e.pagination.el || e.pagination.el.contains(t.target)) && 6344 !t.target.matches(gt(e.params.pagination.bulletClass))) || 6345 (e.navigation && 6346 e.navigation.nextEl && 6347 s === e.navigation.nextEl && 6348 ((e.isEnd && !e.params.loop) || e.slideNext(), 6349 e.isEnd ? n(i.lastSlideMessage) : n(i.nextSlideMessage)), 6350 e.navigation && 6351 e.navigation.prevEl && 6352 s === e.navigation.prevEl && 6353 ((e.isBeginning && !e.params.loop) || e.slidePrev(), 6354 e.isBeginning ? n(i.firstSlideMessage) : n(i.prevSlideMessage)), 6355 e.pagination && 6356 s.matches(gt(e.params.pagination.bulletClass)) && 6357 s.click()); 6358 } 6359 function f() { 6360 return ( 6361 e.pagination && e.pagination.bullets && e.pagination.bullets.length 6362 ); 6363 } 6364 function w() { 6365 return f() && e.params.pagination.clickable; 6366 } 6367 const v = (e, t, i) => { 6368 o(e), 6369 "BUTTON" !== e.tagName && 6370 (l(e, "button"), e.addEventListener("keydown", h)), 6371 d(e, i), 6372 (function (e, t) { 6373 (e = r(e)).forEach((e) => { 6374 e.setAttribute("aria-controls", t); 6375 }); 6376 })(e, t); 6377 }, 6378 g = () => { 6379 e.a11y.clicked = !0; 6380 }, 6381 b = () => { 6382 requestAnimationFrame(() => { 6383 requestAnimationFrame(() => { 6384 e.destroyed || (e.a11y.clicked = !1); 6385 }); 6386 }); 6387 }, 6388 m = (t) => { 6389 if (e.a11y.clicked) return; 6390 const i = t.target.closest(`.${e.params.slideClass}, swiper-slide`); 6391 if (!i || !e.slides.includes(i)) return; 6392 const s = e.slides.indexOf(i) === e.activeIndex, 6393 n = 6394 e.params.watchSlidesProgress && 6395 e.visibleSlides && 6396 e.visibleSlides.includes(i); 6397 s || 6398 n || 6399 (t.sourceCapabilities && t.sourceCapabilities.firesTouchEvents) || 6400 (e.isHorizontal() ? (e.el.scrollLeft = 0) : (e.el.scrollTop = 0), 6401 e.slideTo(e.slides.indexOf(i), 0)); 6402 }, 6403 x = () => { 6404 const t = e.params.a11y; 6405 t.itemRoleDescriptionMessage && 6406 c(e.slides, t.itemRoleDescriptionMessage), 6407 t.slideRole && l(e.slides, t.slideRole); 6408 const i = e.slides.length; 6409 t.slideLabelMessage && 6410 e.slides.forEach((s, n) => { 6411 const r = e.params.loop 6412 ? parseInt(s.getAttribute("data-swiper-slide-index"), 10) 6413 : n; 6414 d( 6415 s, 6416 t.slideLabelMessage 6417 .replace(/\{\{index\}\}/, r + 1) 6418 .replace(/\{\{slidesLength\}\}/, i) 6419 ); 6420 }); 6421 }, 6422 A = () => { 6423 const t = e.params.a11y; 6424 e.el.append(s); 6425 const i = e.el; 6426 t.containerRoleDescriptionMessage && 6427 c(i, t.containerRoleDescriptionMessage), 6428 t.containerMessage && d(i, t.containerMessage); 6429 const n = e.wrapperEl, 6430 o = 6431 t.id || 6432 n.getAttribute("id") || 6433 `swiper-wrapper-${(function (e = 16) { 6434 return "x" 6435 .repeat(e) 6436 .replace(/x/g, () => 6437 Math.round(16 * Math.random()).toString(16) 6438 ); 6439 })(16)}`, 6440 a = e.params.autoplay && e.params.autoplay.enabled ? "off" : "polite"; 6441 var l; 6442 (l = o), 6443 r(n).forEach((e) => { 6444 e.setAttribute("id", l); 6445 }), 6446 (function (e, t) { 6447 (e = r(e)).forEach((e) => { 6448 e.setAttribute("aria-live", t); 6449 }); 6450 })(n, a), 6451 x(); 6452 let { nextEl: p, prevEl: u } = e.navigation ? e.navigation : {}; 6453 if ( 6454 ((p = r(p)), 6455 (u = r(u)), 6456 p && p.forEach((e) => v(e, o, t.nextSlideMessage)), 6457 u && u.forEach((e) => v(e, o, t.prevSlideMessage)), 6458 w()) 6459 ) { 6460 (Array.isArray(e.pagination.el) 6461 ? e.pagination.el 6462 : [e.pagination.el] 6463 ).forEach((e) => { 6464 e.addEventListener("keydown", h); 6465 }); 6466 } 6467 e.el.addEventListener("focus", m, !0), 6468 e.el.addEventListener("pointerdown", g, !0), 6469 e.el.addEventListener("pointerup", b, !0); 6470 }; 6471 i("beforeInit", () => { 6472 (s = Oe("span", e.params.a11y.notificationClass)), 6473 s.setAttribute("aria-live", "assertive"), 6474 s.setAttribute("aria-atomic", "true"), 6475 e.isElement && s.setAttribute("slot", "container-end"); 6476 }), 6477 i("afterInit", () => { 6478 e.params.a11y.enabled && A(); 6479 }), 6480 i( 6481 "slidesLengthChange snapGridLengthChange slidesGridLengthChange", 6482 () => { 6483 e.params.a11y.enabled && x(); 6484 } 6485 ), 6486 i("fromEdge toEdge afterInit lock unlock", () => { 6487 e.params.a11y.enabled && 6488 (function () { 6489 if (e.params.loop || e.params.rewind || !e.navigation) return; 6490 const { nextEl: t, prevEl: i } = e.navigation; 6491 i && (e.isBeginning ? (p(i), a(i)) : (u(i), o(i))), 6492 t && (e.isEnd ? (p(t), a(t)) : (u(t), o(t))); 6493 })(); 6494 }), 6495 i("paginationUpdate", () => { 6496 e.params.a11y.enabled && 6497 (function () { 6498 const t = e.params.a11y; 6499 f() &&
6500 e.pagination.bullets.forEach((i) => { 6501 e.params.pagination.clickable && 6502 (o(i), 6503 e.params.pagination.renderBullet || 6504 (l(i, "button"), 6505 d( 6506 i, 6507 t.paginationBulletMessage.replace( 6508 /\{\{index\}\}/, 6509 Ie(i) + 1 6510 ) 6511 ))), 6512 i.matches(gt(e.params.pagination.bulletActiveClass)) 6513 ? i.setAttribute("aria-current", "true") 6514 : i.removeAttribute("aria-current"); 6515 }); 6516 })(); 6517 }), 6518 i("destroy", () => { 6519 e.params.a11y.enabled && 6520 (function () { 6521 s && s.length > 0 && s.remove(); 6522 let { nextEl: t, prevEl: i } = e.navigation ? e.navigation : {}; 6523 (t = r(t)), 6524 (i = r(i)), 6525 t && t.forEach((e) => e.removeEventListener("keydown", h)), 6526 i && i.forEach((e) => e.removeEventListener("keydown", h)), 6527 w() && 6528 (Array.isArray(e.pagination.el) 6529 ? e.pagination.el 6530 : [e.pagination.el] 6531 ).forEach((e) => { 6532 e.removeEventListener("keydown", h); 6533 }); 6534 e.el.removeEventListener("focus", m, !0), 6535 e.el.removeEventListener("pointerdown", g, !0), 6536 e.el.removeEventListener("pointerup", b, !0); 6537 })(); 6538 }); 6539 }, 6540 function ({ swiper: e, extendParams: t, on: i }) { 6541 t({ 6542 history: { 6543 enabled: !1, 6544 root: "", 6545 replaceState: !1, 6546 key: "slides", 6547 keepQuery: !1, 6548 }, 6549 }); 6550 let s = !1, 6551 n = {}; 6552 const r = (e) => 6553 e 6554 .toString() 6555 .replace(/\s+/g, "-") 6556 .replace(/[^\w-]+/g, "") 6557 .replace(/--+/g, "-") 6558 .replace(/^-+/, "") 6559 .replace(/-+$/, ""), 6560 o = (e) => { 6561 const t = ye(); 6562 let i; 6563 i = e ? new URL(e) : t.location; 6564 const s = i.pathname 6565 .slice(1) 6566 .split("/") 6567 .filter((e) => "" !== e), 6568 n = s.length; 6569 return { key: s[n - 2], value: s[n - 1] }; 6570 }, 6571 a = (t, i) => { 6572 const n = ye(); 6573 if (!s || !e.params.history.enabled) return; 6574 let o; 6575 o = e.params.url ? new URL(e.params.url) : n.location; 6576 const a = e.slides[i]; 6577 let l = r(a.getAttribute("data-history")); 6578 if (e.params.history.root.length > 0) { 6579 let i = e.params.history.root; 6580 "/" === i[i.length - 1] && (i = i.slice(0, i.length - 1)), 6581 (l = `${i}/${t ? `${t}/` : ""}${l}`); 6582 } else o.pathname.includes(t) || (l = `${t ? `${t}/` : ""}${l}`); 6583 e.params.history.keepQuery && (l += o.search); 6584 const c = n.history.state; 6585 (c && c.value === l) || 6586 (e.params.history.replaceState 6587 ? n.history.replaceState({ value: l }, null, l) 6588 : n.history.pushState({ value: l }, null, l)); 6589 }, 6590 l = (t, i, s) => { 6591 if (i) 6592 for (let n = 0, o = e.slides.length; n < o; n += 1) { 6593 const o = e.slides[n]; 6594 if (r(o.getAttribute("data-history")) === i) { 6595 const i = e.getSlideIndex(o); 6596 e.slideTo(i, t, s); 6597 } 6598 } 6599 else e.slideTo(0, t, s); 6600 }, 6601 c = () => { 6602 (n = o(e.params.url)), l(e.params.speed, n.value, !1); 6603 }; 6604 i("init", () => { 6605 e.params.history.enabled && 6606 (() => { 6607 const t = ye(); 6608 if (e.params.history) { 6609 if (!t.history || !t.history.pushState) 6610 return ( 6611 (e.params.history.enabled = !1), 6612 void (e.params.hashNavigation.enabled = !0) 6613 ); 6614 (s = !0), 6615 (n = o(e.params.url)), 6616 n.key || n.value 6617 ? (l(0, n.value, e.params.runCallbacksOnInit), 6618 e.params.history.replaceState || 6619 t.addEventListener("popstate", c)) 6620 : e.params.history.replaceState || 6621 t.addEventListener("popstate", c); 6622 } 6623 })(); 6624 }), 6625 i("destroy", () => { 6626 e.params.history.enabled && 6627 (() => { 6628 const t = ye(); 6629 e.params.history.replaceState || 6630 t.removeEventListener("popstate", c); 6631 })(); 6632 }), 6633 i("transitionEnd _freeModeNoMomentumRelease", () => { 6634 s && a(e.params.history.key, e.activeIndex); 6635 }), 6636 i("slideChange", () => { 6637 s && e.params.cssMode && a(e.params.history.key, e.activeIndex); 6638 }); 6639 },
6640 function ({ swiper: e, extendParams: t, emit: i, on: s }) { 6641 let n = !1; 6642 const r = xe(), 6643 o = ye(); 6644 t({ hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 } }); 6645 const a = () => { 6646 i("hashChange"); 6647 const t = r.location.hash.replace("#", ""); 6648 if (t !== e.slides[e.activeIndex].getAttribute("data-hash")) { 6649 const i = e.getSlideIndex( 6650 Pe( 6651 e.slidesEl, 6652 `.${e.params.slideClass}[data-hash="${t}"], swiper-slide[data-hash="${t}"]` 6653 )[0] 6654 ); 6655 if (void 0 === i) return; 6656 e.slideTo(i); 6657 } 6658 }, 6659 l = () => { 6660 if (n && e.params.hashNavigation.enabled) 6661 if ( 6662 e.params.hashNavigation.replaceState && 6663 o.history && 6664 o.history.replaceState 6665 ) 6666 o.history.replaceState( 6667 null, 6668 null, 6669 `#${e.slides[e.activeIndex].getAttribute("data-hash")}` || "" 6670 ), 6671 i("hashSet"); 6672 else { 6673 const t = e.slides[e.activeIndex], 6674 s = t.getAttribute("data-hash") || t.getAttribute("data-history"); 6675 (r.location.hash = s || ""), i("hashSet"); 6676 } 6677 }; 6678 s("init", () => { 6679 e.params.hashNavigation.enabled && 6680 (() => { 6681 if ( 6682 !e.params.hashNavigation.enabled || 6683 (e.params.history && e.params.history.enabled) 6684 ) 6685 return; 6686 n = !0; 6687 const t = r.location.hash.replace("#", ""); 6688 if (t) { 6689 const i = 0; 6690 for (let s = 0, n = e.slides.length; s < n; s += 1) { 6691 const n = e.slides[s]; 6692 if ( 6693 (n.getAttribute("data-hash") || 6694 n.getAttribute("data-history")) === t 6695 ) { 6696 const t = e.getSlideIndex(n); 6697 e.slideTo(t, i, e.params.runCallbacksOnInit, !0); 6698 } 6699 } 6700 } 6701 e.params.hashNavigation.watchState && 6702 o.addEventListener("hashchange", a); 6703 })(); 6704 }), 6705 s("destroy", () => { 6706 e.params.hashNavigation.enabled && 6707 e.params.hashNavigation.watchState && 6708 o.removeEventListener("hashchange", a); 6709 }), 6710 s("transitionEnd _freeModeNoMomentumRelease", () => { 6711 n && l(); 6712 }), 6713 s("slideChange", () => { 6714 n && e.params.cssMode && l(); 6715 }); 6716 }, 6717 function ({ swiper: e, extendParams: t, on: i, emit: s, params: n }) { 6718 let r, o; 6719 (e.autoplay = { running: !1, paused: !1, timeLeft: 0 }), 6720 t({ 6721 autoplay: { 6722 enabled: !1, 6723 delay: 3e3, 6724 waitForTransition: !0, 6725 disableOnInteraction: !0, 6726 stopOnLastSlide: !1, 6727 reverseDirection: !1, 6728 pauseOnMouseEnter: !1, 6729 }, 6730 }); 6731 let a, 6732 l, 6733 c, 6734 d, 6735 p, 6736 u, 6737 h, 6738 f = n && n.autoplay ? n.autoplay.delay : 3e3, 6739 w = n && n.autoplay ? n.autoplay.delay : 3e3, 6740 v = new Date().getTime; 6741 function g(t) { 6742 e && 6743 !e.destroyed && 6744 e.wrapperEl && 6745 t.target === e.wrapperEl && 6746 (e.wrapperEl.removeEventListener("transitionend", g), M()); 6747 } 6748 const b = () => { 6749 if (e.destroyed || !e.autoplay.running) return; 6750 e.autoplay.paused ? (l = !0) : l && ((w = a), (l = !1)); 6751 const t = e.autoplay.paused ? a : v + w - new Date().getTime(); 6752 (e.autoplay.timeLeft = t), 6753 s("autoplayTimeLeft", t, t / f), 6754 (o = requestAnimationFrame(() => { 6755 b(); 6756 })); 6757 }, 6758 m = (t) => { 6759 if (e.destroyed || !e.autoplay.running) return; 6760 cancelAnimationFrame(o), b(); 6761 let i = void 0 === t ? e.params.autoplay.delay : t; 6762 (f = e.params.autoplay.delay), (w = e.params.autoplay.delay); 6763 const n = (() => { 6764 let t; 6765 if ( 6766 ((t = 6767 e.virtual && e.params.virtual.enabled 6768 ? e.slides.filter((e) => 6769 e.classList.contains("swiper-slide-active") 6770 )[0] 6771 : e.slides[e.activeIndex]), 6772 !t) 6773 ) 6774 return; 6775 return parseInt(t.getAttribute("data-swiper-autoplay"), 10); 6776 })(); 6777 !Number.isNaN(n) && 6778 n > 0 && 6779 void 0 === t && 6780 ((i = n), (f = n), (w = n)), 6781 (a = i); 6782 const l = e.params.speed, 6783 c = () => { 6784 e && 6785 !e.destroyed && 6786 (e.params.autoplay.reverseDirection 6787 ? !e.isBeginning || e.params.loop || e.params.rewind 6788 ? (e.slidePrev(l, !0, !0), s("autoplay")) 6789 : e.params.autoplay.stopOnLastSlide || 6790 (e.slideTo(e.slides.length - 1, l, !0, !0), s("autoplay")) 6791 : !e.isEnd || e.params.loop || e.params.rewind 6792 ? (e.slideNext(l, !0, !0), s("autoplay")) 6793 : e.params.autoplay.stopOnLastSlide || 6794 (e.slideTo(0, l, !0, !0), s("autoplay")), 6795 e.params.cssMode && 6796 ((v = new Date().getTime()), 6797 requestAnimationFrame(() => { 6798 m(); 6799 }))); 6800 }; 6801 return ( 6802 i > 0 6803 ? (clearTimeout(r), 6804 (r = setTimeout(() => { 6805 c(); 6806 }, i))) 6807 : requestAnimationFrame(() => { 6808 c(); 6809 }), 6810 i 6811 ); 6812 }, 6813 x = () => { 6814 (e.autoplay.running = !0), m(), s("autoplayStart"); 6815 }, 6816 A = () => { 6817 (e.autoplay.running = !1), 6818 clearTimeout(r), 6819 cancelAnimationFrame(o), 6820 s("autoplayStop"); 6821 }, 6822 y = (t, i) => { 6823 if (e.destroyed || !e.autoplay.running) return; 6824 clearTimeout(r), t || (h = !0); 6825 const n = () => { 6826 s("autoplayPause"), 6827 e.params.autoplay.waitForTransition 6828 ? e.wrapperEl.addEventListener("transitionend", g) 6829 : M(); 6830 }; 6831 if (((e.autoplay.paused = !0), i)) 6832 return u && (a = e.params.autoplay.delay), (u = !1), void n(); 6833 const o = a || e.params.autoplay.delay; 6834 (a = o - (new Date().getTime() - v)), 6835 (e.isEnd && a < 0 && !e.params.loop) || (a < 0 && (a = 0), n()); 6836 }, 6837 M = () => { 6838 (e.isEnd && a < 0 && !e.params.loop) || 6839 e.destroyed || 6840 !e.autoplay.running || 6841 ((v = new Date().getTime()), 6842 h ? ((h = !1), m(a)) : m(), 6843 (e.autoplay.paused = !1), 6844 s("autoplayResume")); 6845 }, 6846 $ = () => { 6847 if (e.destroyed || !e.autoplay.running) return; 6848 const t = xe(); 6849 "hidden" === t.visibilityState && ((h = !0), y(!0)), 6850 "visible" === t.visibilityState && M(); 6851 }, 6852 S = (e) => { 6853 "mouse" === e.pointerType && ((h = !0), y(!0)); 6854 }, 6855 E = (t) => { 6856 "mouse" === t.pointerType && e.autoplay.paused && M(); 6857 }; 6858 i("init", () => { 6859 e.params.autoplay.enabled && 6860 (e.params.autoplay.pauseOnMouseEnter && 6861 (e.el.addEventListener("pointerenter", S), 6862 e.el.addEventListener("pointerleave", E)), 6863 xe().addEventListener("visibilitychange", $), 6864 (v = new Date().getTime()), 6865 x()); 6866 }), 6867 i("destroy", () => { 6868 e.el.removeEventListener("pointerenter", S), 6869 e.el.removeEventListener("pointerleave", E), 6870 xe().removeEventListener("visibilitychange", $), 6871 e.autoplay.running && A(); 6872 }), 6873 i("beforeTransitionStart", (t, i, s) => { 6874 !e.destroyed && 6875 e.autoplay.running && 6876 (s || !e.params.autoplay.disableOnInteraction ? y(!0, !0) : A()); 6877 }), 6878 i("sliderFirstMove", () => { 6879 !e.destroyed && 6880 e.autoplay.running && 6881 (e.params.autoplay.disableOnInteraction 6882 ? A() 6883 : ((c = !0), 6884 (d = !1), 6885 (h = !1), 6886 (p = setTimeout(() => { 6887 (h = !0), (d = !0), y(!0); 6888 }, 200)))); 6889 }), 6890 i("touchEnd", () => { 6891 if (!e.destroyed && e.autoplay.running && c) { 6892 if ( 6893 (clearTimeout(p), 6894 clearTimeout(r), 6895 e.params.autoplay.disableOnInteraction) 6896 ) 6897 return (d = !1), void (c = !1); 6898 d && e.params.cssMode && M(), (d = !1), (c = !1); 6899 } 6900 }), 6901 i("slideChange", () => { 6902 !e.destroyed && e.autoplay.running && (u = !0); 6903 }), 6904 Object.assign(e.autoplay, { start: x, stop: A, pause: y, resume: M }); 6905 }, 6906 function ({ swiper: e, extendParams: t, on: i }) { 6907 t({ 6908 thumbs: { 6909 swiper: null, 6910 multipleActiveThumbs: !0, 6911 autoScrollOffset: 0, 6912 slideThumbActiveClass: "swiper-slide-thumb-active", 6913 thumbsContainerClass: "swiper-thumbs", 6914 }, 6915 }); 6916 let s = !1, 6917 n = !1; 6918 function r() { 6919 const t = e.thumbs.swiper; 6920 if (!t || t.destroyed) return; 6921 const i = t.clickedIndex, 6922 s = t.clickedSlide;
6923 if (s && s.classList.contains(e.params.thumbs.slideThumbActiveClass)) 6924 return; 6925 if (null == i) return; 6926 let n; 6927 (n = t.params.loop 6928 ? parseInt(t.clickedSlide.getAttribute("data-swiper-slide-index"), 10) 6929 : i), 6930 e.params.loop ? e.slideToLoop(n) : e.slideTo(n); 6931 } 6932 function o() { 6933 const { thumbs: t } = e.params; 6934 if (s) return !1; 6935 s = !0; 6936 const i = e.constructor; 6937 if (t.swiper instanceof i) 6938 (e.thumbs.swiper = t.swiper), 6939 Object.assign(e.thumbs.swiper.originalParams, { 6940 watchSlidesProgress: !0, 6941 slideToClickedSlide: !1, 6942 }), 6943 Object.assign(e.thumbs.swiper.params, { 6944 watchSlidesProgress: !0, 6945 slideToClickedSlide: !1, 6946 }), 6947 e.thumbs.swiper.update(); 6948 else if (Ee(t.swiper)) { 6949 const s = Object.assign({}, t.swiper); 6950 Object.assign(s, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), 6951 (e.thumbs.swiper = new i(s)), 6952 (n = !0); 6953 } 6954 return ( 6955 e.thumbs.swiper.el.classList.add(e.params.thumbs.thumbsContainerClass), 6956 e.thumbs.swiper.on("tap", r), 6957 !0 6958 ); 6959 } 6960 function a(t) { 6961 const i = e.thumbs.swiper; 6962 if (!i || i.destroyed) return; 6963 const s = 6964 "auto" === i.params.slidesPerView 6965 ? i.slidesPerViewDynamic() 6966 : i.params.slidesPerView; 6967 let n = 1; 6968 const r = e.params.thumbs.slideThumbActiveClass; 6969 if ( 6970 (e.params.slidesPerView > 1 && 6971 !e.params.centeredSlides && 6972 (n = e.params.slidesPerView), 6973 e.params.thumbs.multipleActiveThumbs || (n = 1), 6974 (n = Math.floor(n)), 6975 i.slides.forEach((e) => e.classList.remove(r)), 6976 i.params.loop || (i.params.virtual && i.params.virtual.enabled)) 6977 ) 6978 for (let t = 0; t < n; t += 1) 6979 Pe( 6980 i.slidesEl, 6981 `[data-swiper-slide-index="${e.realIndex + t}"]` 6982 ).forEach((e) => { 6983 e.classList.add(r); 6984 }); 6985 else 6986 for (let t = 0; t < n; t += 1) 6987 i.slides[e.realIndex + t] && 6988 i.slides[e.realIndex + t].classList.add(r); 6989 const o = e.params.thumbs.autoScrollOffset, 6990 a = o && !i.params.loop; 6991 if (e.realIndex !== i.realIndex || a) { 6992 const n = i.activeIndex; 6993 let r, l; 6994 if (i.params.loop) { 6995 const t = i.slides.filter( 6996 (t) => 6997 t.getAttribute("data-swiper-slide-index") === `${e.realIndex}` 6998 )[0]; 6999 (r = i.slides.indexOf(t)), 7000 (l = e.activeIndex > e.previousIndex ? "next" : "prev"); 7001 } else (r = e.realIndex), (l = r > e.previousIndex ? "next" : "prev"); 7002 a && (r += "next" === l ? o : -1 * o), 7003 i.visibleSlidesIndexes && 7004 i.visibleSlidesIndexes.indexOf(r) < 0 && 7005 (i.params.centeredSlides 7006 ? (r = 7007 r > n ? r - Math.floor(s / 2) + 1 : r + Math.floor(s / 2) - 1) 7008 : r > n && i.params.slidesPerGroup, 7009 i.slideTo(r, t ? 0 : void 0)); 7010 } 7011 } 7012 (e.thumbs = { swiper: null }), 7013 i("beforeInit", () => { 7014 const { thumbs: t } = e.params; 7015 if (t && t.swiper) 7016 if ("string" == typeof t.swiper || t.swiper instanceof HTMLElement) { 7017 const i = xe(), 7018 s = () => { 7019 const s = 7020 "string" == typeof t.swiper 7021 ? i.querySelector(t.swiper) 7022 : t.swiper; 7023 if (s && s.swiper) (t.swiper = s.swiper), o(), a(!0); 7024 else if (s) { 7025 const i = (n) => { 7026 (t.swiper = n.detail[0]), 7027 s.removeEventListener("init", i), 7028 o(), 7029 a(!0), 7030 t.swiper.update(), 7031 e.update(); 7032 }; 7033 s.addEventListener("init", i); 7034 } 7035 return s; 7036 }, 7037 n = () => { 7038 if (e.destroyed) return; 7039 s() || requestAnimationFrame(n); 7040 }; 7041 requestAnimationFrame(n); 7042 } else o(), a(!0); 7043 }), 7044 i("slideChange update resize observerUpdate", () => { 7045 a(); 7046 }), 7047 i("setTransition", (t, i) => { 7048 const s = e.thumbs.swiper; 7049 s && !s.destroyed && s.setTransition(i); 7050 }), 7051 i("beforeDestroy", () => { 7052 const t = e.thumbs.swiper; 7053 t && !t.destroyed && n && t.destroy(); 7054 }), 7055 Object.assign(e.thumbs, { init: o, update: a }); 7056 }, 7057 function ({ swiper: e, extendParams: t, emit: i, once: s }) { 7058 t({ 7059 freeMode: { 7060 enabled: !1, 7061 momentum: !0, 7062 momentumRatio: 1, 7063 momentumBounce: !0, 7064 momentumBounceRatio: 1, 7065 momentumVelocityRatio: 1, 7066 sticky: !1, 7067 minimumVelocity: 0.02, 7068 }, 7069 }), 7070 Object.assign(e, { 7071 freeMode: { 7072 onTouchStart: function () { 7073 const t = e.getTranslate(); 7074 e.setTranslate(t), 7075 e.setTransition(0), 7076 (e.touchEventsData.velocities.length = 0), 7077 e.freeMode.onTouchEnd({ 7078 currentPos: e.rtl ? e.translate : -e.translate, 7079 }); 7080 }, 7081 onTouchMove: function () { 7082 const { touchEventsData: t, touches: i } = e; 7083 0 === t.velocities.length && 7084 t.velocities.push({ 7085 position: i[e.isHorizontal() ? "startX" : "startY"], 7086 time: t.touchStartTime, 7087 }), 7088 t.velocities.push({ 7089 position: i[e.isHorizontal() ? "currentX" : "currentY"],
7090 time: $e(), 7091 }); 7092 }, 7093 onTouchEnd: function ({ currentPos: t }) { 7094 const { 7095 params: n, 7096 wrapperEl: r, 7097 rtlTranslate: o, 7098 snapGrid: a, 7099 touchEventsData: l, 7100 } = e, 7101 c = $e() - l.touchStartTime; 7102 if (t < -e.minTranslate()) e.slideTo(e.activeIndex); 7103 else if (t > -e.maxTranslate()) 7104 e.slides.length < a.length 7105 ? e.slideTo(a.length - 1) 7106 : e.slideTo(e.slides.length - 1); 7107 else { 7108 if (n.freeMode.momentum) { 7109 if (l.velocities.length > 1) { 7110 const t = l.velocities.pop(), 7111 i = l.velocities.pop(), 7112 s = t.position - i.position, 7113 r = t.time - i.time; 7114 (e.velocity = s / r), 7115 (e.velocity /= 2), 7116 Math.abs(e.velocity) < n.freeMode.minimumVelocity && 7117 (e.velocity = 0), 7118 (r > 150 || $e() - t.time > 300) && (e.velocity = 0); 7119 } else e.velocity = 0; 7120 (e.velocity *= n.freeMode.momentumVelocityRatio), 7121 (l.velocities.length = 0); 7122 let t = 1e3 * n.freeMode.momentumRatio; 7123 const c = e.velocity * t; 7124 let d = e.translate + c; 7125 o && (d = -d); 7126 let p, 7127 u = !1; 7128 const h = 7129 20 * Math.abs(e.velocity) * n.freeMode.momentumBounceRatio; 7130 let f; 7131 if (d < e.maxTranslate()) 7132 n.freeMode.momentumBounce 7133 ? (d + e.maxTranslate() < -h && (d = e.maxTranslate() - h), 7134 (p = e.maxTranslate()), 7135 (u = !0), 7136 (l.allowMomentumBounce = !0)) 7137 : (d = e.maxTranslate()), 7138 n.loop && n.centeredSlides && (f = !0); 7139 else if (d > e.minTranslate()) 7140 n.freeMode.momentumBounce 7141 ? (d - e.minTranslate() > h && (d = e.minTranslate() + h), 7142 (p = e.minTranslate()), 7143 (u = !0), 7144 (l.allowMomentumBounce = !0)) 7145 : (d = e.minTranslate()), 7146 n.loop && n.centeredSlides && (f = !0); 7147 else if (n.freeMode.sticky) { 7148 let t; 7149 for (let e = 0; e < a.length; e += 1) 7150 if (a[e] > -d) { 7151 t = e; 7152 break; 7153 } 7154 (d = 7155 Math.abs(a[t] - d) < Math.abs(a[t - 1] - d) || 7156 "next" === e.swipeDirection 7157 ? a[t] 7158 : a[t - 1]), 7159 (d = -d); 7160 } 7161 if ( 7162 (f && 7163 s("transitionEnd", () => { 7164 e.loopFix(); 7165 }), 7166 0 !== e.velocity) 7167 ) { 7168 if ( 7169 ((t = o 7170 ? Math.abs((-d - e.translate) / e.velocity) 7171 : Math.abs((d - e.translate) / e.velocity)), 7172 n.freeMode.sticky) 7173 ) { 7174 const i = Math.abs((o ? -d : d) - e.translate), 7175 s = e.slidesSizesGrid[e.activeIndex]; 7176 t = 7177 i < s 7178 ? n.speed 7179 : i < 2 * s 7180 ? 1.5 * n.speed 7181 : 2.5 * n.speed; 7182 } 7183 } else if (n.freeMode.sticky) return void e.slideToClosest(); 7184 n.freeMode.momentumBounce && u 7185 ? (e.updateProgress(p), 7186 e.setTransition(t), 7187 e.setTranslate(d), 7188 e.transitionStart(!0, e.swipeDirection), 7189 (e.animating = !0), 7190 _e(r, () => { 7191 e && 7192 !e.destroyed && 7193 l.allowMomentumBounce && 7194 (i("momentumBounce"), 7195 e.setTransition(n.speed), 7196 setTimeout(() => { 7197 e.setTranslate(p), 7198 _e(r, () => { 7199 e && !e.destroyed && e.transitionEnd(); 7200 }); 7201 }, 0)); 7202 })) 7203 : e.velocity 7204 ? (i("_freeModeNoMomentumRelease"), 7205 e.updateProgress(d), 7206 e.setTransition(t), 7207 e.setTranslate(d), 7208 e.transitionStart(!0, e.swipeDirection), 7209 e.animating || 7210 ((e.animating = !0), 7211 _e(r, () => { 7212 e && !e.destroyed && e.transitionEnd(); 7213 }))) 7214 : e.updateProgress(d), 7215 e.updateActiveIndex(), 7216 e.updateSlidesClasses(); 7217 } else { 7218 if (n.freeMode.sticky) return void e.slideToClosest(); 7219 n.freeMode && i("_freeModeNoMomentumRelease"); 7220 } 7221 (!n.freeMode.momentum || c >= n.longSwipesMs) && 7222 (e.updateProgress(), 7223 e.updateActiveIndex(), 7224 e.updateSlidesClasses()); 7225 } 7226 }, 7227 }, 7228 }); 7229 }, 7230 function ({ swiper: e, extendParams: t }) { 7231 let i, s, n; 7232 t({ grid: { rows: 1, fill: "column" } }), 7233 (e.grid = { 7234 initSlides: (t) => { 7235 const { slidesPerView: r } = e.params, 7236 { rows: o, fill: a } = e.params.grid; 7237 (s = i / o), 7238 (n = Math.floor(t / o)),
7239 (i = Math.floor(t / o) === t / o ? t : Math.ceil(t / o) * o), 7240 "auto" !== r && "row" === a && (i = Math.max(i, r * o)); 7241 }, 7242 updateSlide: (t, r, o, a) => { 7243 const { slidesPerGroup: l, spaceBetween: c } = e.params, 7244 { rows: d, fill: p } = e.params.grid; 7245 let u, h, f; 7246 if ("row" === p && l > 1) { 7247 const e = Math.floor(t / (l * d)), 7248 s = t - d * l * e, 7249 n = 0 === e ? l : Math.min(Math.ceil((o - e * d * l) / d), l); 7250 (f = Math.floor(s / n)), 7251 (h = s - f * n + e * l), 7252 (u = h + (f * i) / d), 7253 (r.style.order = u); 7254 } else 7255 "column" === p 7256 ? ((h = Math.floor(t / d)), 7257 (f = t - h * d), 7258 (h > n || (h === n && f === d - 1)) && 7259 ((f += 1), f >= d && ((f = 0), (h += 1)))) 7260 : ((f = Math.floor(t / s)), (h = t - f * s)); 7261 r.style[a("margin-top")] = 0 !== f ? c && `${c}px` : ""; 7262 }, 7263 updateWrapperSize: (t, s, n) => { 7264 const { 7265 spaceBetween: r, 7266 centeredSlides: o, 7267 roundLengths: a, 7268 } = e.params, 7269 { rows: l } = e.params.grid; 7270 if ( 7271 ((e.virtualSize = (t + r) * i), 7272 (e.virtualSize = Math.ceil(e.virtualSize / l) - r), 7273 (e.wrapperEl.style[n("width")] = `${e.virtualSize + r}px`), 7274 o) 7275 ) { 7276 const t = []; 7277 for (let i = 0; i < s.length; i += 1) { 7278 let n = s[i]; 7279 a && (n = Math.floor(n)), 7280 s[i] < e.virtualSize + s[0] && t.push(n); 7281 } 7282 s.splice(0, s.length), s.push(...t); 7283 } 7284 }, 7285 }); 7286 }, 7287 function ({ swiper: e }) { 7288 Object.assign(e, { 7289 appendSlide: bt.bind(e), 7290 prependSlide: mt.bind(e), 7291 addSlide: xt.bind(e), 7292 removeSlide: At.bind(e), 7293 removeAllSlides: yt.bind(e), 7294 }); 7295 }, 7296 function ({ swiper: e, extendParams: t, on: i }) { 7297 t({ fadeEffect: { crossFade: !1 } }), 7298 Mt({ 7299 effect: "fade", 7300 swiper: e, 7301 on: i, 7302 setTranslate: () => { 7303 const { slides: t } = e; 7304 e.params.fadeEffect; 7305 for (let i = 0; i < t.length; i += 1) { 7306 const t = e.slides[i]; 7307 let s = -t.swiperSlideOffset; 7308 e.params.virtualTranslate || (s -= e.translate); 7309 let n = 0; 7310 e.isHorizontal() || ((n = s), (s = 0)); 7311 const r = e.params.fadeEffect.crossFade 7312 ? Math.max(1 - Math.abs(t.progress), 0) 7313 : 1 + Math.min(Math.max(t.progress, -1), 0), 7314 o = $t(0, t); 7315 (o.style.opacity = r), 7316 (o.style.transform = `translate3d(${s}px, ${n}px, 0px)`); 7317 } 7318 }, 7319 setTransition: (t) => { 7320 const i = e.slides.map((e) => ze(e)); 7321 i.forEach((e) => { 7322 e.style.transitionDuration = `${t}ms`; 7323 }), 7324 St({ swiper: e, duration: t, transformElements: i, allSlides: !0 }); 7325 }, 7326 overwriteParams: () => ({ 7327 slidesPerView: 1, 7328 slidesPerGroup: 1, 7329 watchSlidesProgress: !0, 7330 spaceBetween: 0, 7331 virtualTranslate: !e.params.cssMode, 7332 }), 7333 }); 7334 }, 7335 function ({ swiper: e, extendParams: t, on: i }) { 7336 t({ 7337 cubeEffect: { 7338 slideShadows: !0, 7339 shadow: !0, 7340 shadowOffset: 20, 7341 shadowScale: 0.94, 7342 }, 7343 }); 7344 const s = (e, t, i) => { 7345 let s = i 7346 ? e.querySelector(".swiper-slide-shadow-left") 7347 : e.querySelector(".swiper-slide-shadow-top"), 7348 n = i 7349 ? e.querySelector(".swiper-slide-shadow-right") 7350 : e.querySelector(".swiper-slide-shadow-bottom"); 7351 s || 7352 ((s = Oe("div", "swiper-slide-shadow-" + (i ? "left" : "top"))), 7353 e.append(s)), 7354 n || 7355 ((n = Oe("div", "swiper-slide-shadow-" + (i ? "right" : "bottom"))), 7356 e.append(n)), 7357 s && (s.style.opacity = Math.max(-t, 0)), 7358 n && (n.style.opacity = Math.max(t, 0)); 7359 }; 7360 Mt({ 7361 effect: "cube", 7362 swiper: e, 7363 on: i, 7364 setTranslate: () => { 7365 const { 7366 el: t, 7367 wrapperEl: i, 7368 slides: n, 7369 width: r, 7370 height: o, 7371 rtlTranslate: a, 7372 size: l, 7373 browser: c, 7374 } = e, 7375 d = e.params.cubeEffect, 7376 p = e.isHorizontal(), 7377 u = e.virtual && e.params.virtual.enabled; 7378 let h, 7379 f = 0; 7380 d.shadow && 7381 (p 7382 ? ((h = e.slidesEl.querySelector(".swiper-cube-shadow")), 7383 h || 7384 ((h = Oe("div", "swiper-cube-shadow")), e.slidesEl.append(h)), 7385 (h.style.height = `${r}px`)) 7386 : ((h = t.querySelector(".swiper-cube-shadow")), 7387 h || ((h = Oe("div", "swiper-cube-shadow")), t.append(h)))); 7388 for (let e = 0; e < n.length; e += 1) { 7389 const t = n[e]; 7390 let i = e; 7391 u && (i = parseInt(t.getAttribute("data-swiper-slide-index"), 10)); 7392 let r = 90 * i, 7393 o = Math.floor(r / 360); 7394 a && ((r = -r), (o = Math.floor(-r / 360))); 7395 const c = Math.max(Math.min(t.progress, 1), -1); 7396 let h = 0, 7397 w = 0, 7398 v = 0; 7399 i % 4 == 0 7400 ? ((h = 4 * -o * l), (v = 0)) 7401 : (i - 1) % 4 == 0 7402 ? ((h = 0), (v = 4 * -o * l)) 7403 : (i - 2) % 4 == 0 7404 ? ((h = l + 4 * o * l), (v = l)) 7405 : (i - 3) % 4 == 0 && ((h = -l), (v = 3 * l + 4 * l * o)), 7406 a && (h = -h), 7407 p || ((w = h), (h = 0)); 7408 const g = `rotateX(${p ? 0 : -r}deg) rotateY(${ 7409 p ? r : 0 7410 }deg) translate3d(${h}px, ${w}px, ${v}px)`; 7411 c <= 1 && 7412 c > -1 && 7413 ((f = 90 * i + 90 * c), a && (f = 90 * -i - 90 * c)), 7414 (t.style.transform = g), 7415 d.slideShadows && s(t, c, p); 7416 } 7417 if ( 7418 ((i.style.transformOrigin = `50% 50% -${l / 2}px`), 7419 (i.style["-webkit-transform-origin"] = `50% 50% -${l / 2}px`), 7420 d.shadow) 7421 ) 7422 if (p) 7423 h.style.transform = `translate3d(0px, ${ 7424 r / 2 + d.shadowOffset 7425 }px, ${-r / 2}px) rotateX(90deg) rotateZ(0deg) scale(${ 7426 d.shadowScale 7427 })`; 7428 else { 7429 const e = Math.abs(f) - 90 * Math.floor(Math.abs(f) / 90), 7430 t = 7431 1.5 - 7432 (Math.sin((2 * e * Math.PI) / 360) / 2 + 7433 Math.cos((2 * e * Math.PI) / 360) / 2), 7434 i = d.shadowScale, 7435 s = d.shadowScale / t, 7436 n = d.shadowOffset; 7437 h.style.transform = `scale3d(${i}, 1, ${s}) translate3d(0px, ${ 7438 o / 2 + n 7439 }px, ${-o / 2 / s}px) rotateX(-90deg)`; 7440 } 7441 const w = 7442 (c.isSafari || c.isWebView) && c.needPerspectiveFix ? -l / 2 : 0; 7443 (i.style.transform = `translate3d(0px,0,${w}px) rotateX(${ 7444 e.isHorizontal() ? 0 : f 7445 }deg) rotateY(${e.isHorizontal() ? -f : 0}deg)`), 7446 i.style.setProperty("--swiper-cube-translate-z", `${w}px`); 7447 }, 7448 setTransition: (t) => { 7449 const { el: i, slides: s } = e; 7450 if ( 7451 (s.forEach((e) => { 7452 (e.style.transitionDuration = `${t}ms`), 7453 e 7454 .querySelectorAll( 7455 ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" 7456 ) 7457 .forEach((e) => { 7458 e.style.transitionDuration = `${t}ms`; 7459 }); 7460 }), 7461 e.params.cubeEffect.shadow && !e.isHorizontal()) 7462 ) { 7463 const e = i.querySelector(".swiper-cube-shadow"); 7464 e && (e.style.transitionDuration = `${t}ms`); 7465 } 7466 }, 7467 recreateShadows: () => { 7468 const t = e.isHorizontal();
7469 e.slides.forEach((e) => { 7470 const i = Math.max(Math.min(e.progress, 1), -1); 7471 s(e, i, t); 7472 }); 7473 }, 7474 getEffectParams: () => e.params.cubeEffect, 7475 perspective: () => !0, 7476 overwriteParams: () => ({ 7477 slidesPerView: 1, 7478 slidesPerGroup: 1, 7479 watchSlidesProgress: !0, 7480 resistanceRatio: 0, 7481 spaceBetween: 0, 7482 centeredSlides: !1, 7483 virtualTranslate: !0, 7484 }), 7485 }); 7486 }, 7487 function ({ swiper: e, extendParams: t, on: i }) { 7488 t({ flipEffect: { slideShadows: !0, limitRotation: !0 } }); 7489 const s = (t, i, s) => { 7490 let n = e.isHorizontal() 7491 ? t.querySelector(".swiper-slide-shadow-left") 7492 : t.querySelector(".swiper-slide-shadow-top"), 7493 r = e.isHorizontal() 7494 ? t.querySelector(".swiper-slide-shadow-right") 7495 : t.querySelector(".swiper-slide-shadow-bottom"); 7496 n || (n = Et(0, t, e.isHorizontal() ? "left" : "top")), 7497 r || (r = Et(0, t, e.isHorizontal() ? "right" : "bottom")), 7498 n && (n.style.opacity = Math.max(-i, 0)), 7499 r && (r.style.opacity = Math.max(i, 0)); 7500 }; 7501 Mt({ 7502 effect: "flip", 7503 swiper: e, 7504 on: i, 7505 setTranslate: () => { 7506 const { slides: t, rtlTranslate: i } = e, 7507 n = e.params.flipEffect; 7508 for (let r = 0; r < t.length; r += 1) { 7509 const o = t[r]; 7510 let a = o.progress; 7511 e.params.flipEffect.limitRotation && 7512 (a = Math.max(Math.min(o.progress, 1), -1)); 7513 const l = o.swiperSlideOffset; 7514 let c = -180 * a, 7515 d = 0, 7516 p = e.params.cssMode ? -l - e.translate : -l, 7517 u = 0; 7518 e.isHorizontal() 7519 ? i && (c = -c) 7520 : ((u = p), (p = 0), (d = -c), (c = 0)), 7521 (o.style.zIndex = -Math.abs(Math.round(a)) + t.length), 7522 n.slideShadows && s(o, a); 7523 const h = `translate3d(${p}px, ${u}px, 0px) rotateX(${d}deg) rotateY(${c}deg)`; 7524 $t(0, o).style.transform = h; 7525 } 7526 }, 7527 setTransition: (t) => { 7528 const i = e.slides.map((e) => ze(e)); 7529 i.forEach((e) => { 7530 (e.style.transitionDuration = `${t}ms`), 7531 e 7532 .querySelectorAll( 7533 ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" 7534 ) 7535 .forEach((e) => { 7536 e.style.transitionDuration = `${t}ms`; 7537 }); 7538 }), 7539 St({ swiper: e, duration: t, transformElements: i }); 7540 }, 7541 recreateShadows: () => { 7542 e.params.flipEffect; 7543 e.slides.forEach((t) => { 7544 let i = t.progress; 7545 e.params.flipEffect.limitRotation && 7546 (i = Math.max(Math.min(t.progress, 1), -1)), 7547 s(t, i); 7548 }); 7549 }, 7550 getEffectParams: () => e.params.flipEffect, 7551 perspective: () => !0, 7552 overwriteParams: () => ({ 7553 slidesPerView: 1, 7554 slidesPerGroup: 1, 7555 watchSlidesProgress: !0, 7556 spaceBetween: 0, 7557 virtualTranslate: !e.params.cssMode, 7558 }), 7559 }); 7560 }, 7561 function ({ swiper: e, extendParams: t, on: i }) { 7562 t({ 7563 coverflowEffect: { 7564 rotate: 50, 7565 stretch: 0, 7566 depth: 100, 7567 scale: 1, 7568 modifier: 1, 7569 slideShadows: !0, 7570 }, 7571 }), 7572 Mt({ 7573 effect: "coverflow", 7574 swiper: e, 7575 on: i, 7576 setTranslate: () => { 7577 const { width: t, height: i, slides: s, slidesSizesGrid: n } = e, 7578 r = e.params.coverflowEffect, 7579 o = e.isHorizontal(), 7580 a = e.translate, 7581 l = o ? t / 2 - a : i / 2 - a, 7582 c = o ? r.rotate : -r.rotate, 7583 d = r.depth; 7584 for (let e = 0, t = s.length; e < t; e += 1) { 7585 const t = s[e], 7586 i = n[e], 7587 a = (l - t.swiperSlideOffset - i / 2) / i, 7588 p = 7589 "function" == typeof r.modifier 7590 ? r.modifier(a) 7591 : a * r.modifier; 7592 let u = o ? c * p : 0, 7593 h = o ? 0 : c * p, 7594 f = -d * Math.abs(p), 7595 w = r.stretch; 7596 "string" == typeof w && 7597 -1 !== w.indexOf("%") && 7598 (w = (parseFloat(r.stretch) / 100) * i); 7599 let v = o ? 0 : w * p, 7600 g = o ? w * p : 0, 7601 b = 1 - (1 - r.scale) * Math.abs(p); 7602 Math.abs(g) < 0.001 && (g = 0), 7603 Math.abs(v) < 0.001 && (v = 0), 7604 Math.abs(f) < 0.001 && (f = 0), 7605 Math.abs(u) < 0.001 && (u = 0), 7606 Math.abs(h) < 0.001 && (h = 0), 7607 Math.abs(b) < 0.001 && (b = 0); 7608 const m = `translate3d(${g}px,${v}px,${f}px) rotateX(${h}deg) rotateY(${u}deg) scale(${b})`; 7609 if ( 7610 (($t(0, t).style.transform = m), 7611 (t.style.zIndex = 1 - Math.abs(Math.round(p))), 7612 r.slideShadows) 7613 ) { 7614 let e = o 7615 ? t.querySelector(".swiper-slide-shadow-left") 7616 : t.querySelector(".swiper-slide-shadow-top"), 7617 i = o 7618 ? t.querySelector(".swiper-slide-shadow-right") 7619 : t.querySelector(".swiper-slide-shadow-bottom"); 7620 e || (e = Et(0, t, o ? "left" : "top")), 7621 i || (i = Et(0, t, o ? "right" : "bottom")), 7622 e && (e.style.opacity = p > 0 ? p : 0), 7623 i && (i.style.opacity = -p > 0 ? -p : 0); 7624 } 7625 } 7626 }, 7627 setTransition: (t) => { 7628 e.slides 7629 .map((e) => ze(e)) 7630 .forEach((e) => { 7631 (e.style.transitionDuration = `${t}ms`), 7632 e 7633 .querySelectorAll( 7634 ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" 7635 ) 7636 .forEach((e) => { 7637 e.style.transitionDuration = `${t}ms`; 7638 }); 7639 }); 7640 }, 7641 perspective: () => !0, 7642 overwriteParams: () => ({ watchSlidesProgress: !0 }), 7643 }); 7644 }, 7645 function ({ swiper: e, extendParams: t, on: i }) { 7646 t({ 7647 creativeEffect: { 7648 limitProgress: 1, 7649 shadowPerProgress: !1, 7650 progressMultiplier: 1, 7651 perspective: !0, 7652 prev: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 }, 7653 next: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 }, 7654 }, 7655 }); 7656 const s = (e) => ("string" == typeof e ? e : `${e}px`); 7657 Mt({ 7658 effect: "creative", 7659 swiper: e, 7660 on: i, 7661 setTranslate: () => { 7662 const { slides: t, wrapperEl: i, slidesSizesGrid: n } = e, 7663 r = e.params.creativeEffect, 7664 { progressMultiplier: o } = r, 7665 a = e.params.centeredSlides; 7666 if (a) { 7667 const t = n[0] / 2 - e.params.slidesOffsetBefore || 0; 7668 i.style.transform = `translateX(calc(50% - ${t}px))`; 7669 } 7670 for (let i = 0; i < t.length; i += 1) { 7671 const n = t[i], 7672 l = n.progress, 7673 c = Math.min( 7674 Math.max(n.progress, -r.limitProgress), 7675 r.limitProgress 7676 ); 7677 let d = c; 7678 a || 7679 (d = Math.min( 7680 Math.max(n.originalProgress, -r.limitProgress), 7681 r.limitProgress 7682 )); 7683 const p = n.swiperSlideOffset, 7684 u = [e.params.cssMode ? -p - e.translate : -p, 0, 0], 7685 h = [0, 0, 0]; 7686 let f = !1; 7687 e.isHorizontal() || ((u[1] = u[0]), (u[0] = 0)); 7688 let w = { 7689 translate: [0, 0, 0], 7690 rotate: [0, 0, 0], 7691 scale: 1, 7692 opacity: 1, 7693 }; 7694 c < 0 ? ((w = r.next), (f = !0)) : c > 0 && ((w = r.prev), (f = !0)), 7695 u.forEach((e, t) => { 7696 u[t] = `calc(${e}px + (${s(w.translate[t])} * ${Math.abs( 7697 c * o 7698 )}))`; 7699 }), 7700 h.forEach((e, t) => { 7701 h[t] = w.rotate[t] * Math.abs(c * o); 7702 }), 7703 (n.style.zIndex = -Math.abs(Math.round(l)) + t.length); 7704 const v = u.join(", "), 7705 g = `rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`, 7706 b = 7707 d < 0 7708 ? `scale(${1 + (1 - w.scale) * d * o})` 7709 : `scale(${1 - (1 - w.scale) * d * o})`, 7710 m = 7711 d < 0 ? 1 + (1 - w.opacity) * d * o : 1 - (1 - w.opacity) * d * o, 7712 x = `translate3d(${v}) ${g} ${b}`; 7713 if ((f && w.shadow) || !f) { 7714 let e = n.querySelector(".swiper-slide-shadow"); 7715 if ((!e && w.shadow && (e = Et(0, n)), e)) { 7716 const t = r.shadowPerProgress ? c * (1 / r.limitProgress) : c; 7717 e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1); 7718 } 7719 } 7720 const A = $t(0, n); 7721 (A.style.transform = x), 7722 (A.style.opacity = m), 7723 w.origin && (A.style.transformOrigin = w.origin); 7724 } 7725 }, 7726 setTransition: (t) => { 7727 const i = e.slides.map((e) => ze(e));
7728 i.forEach((e) => { 7729 (e.style.transitionDuration = `${t}ms`), 7730 e.querySelectorAll(".swiper-slide-shadow").forEach((e) => { 7731 e.style.transitionDuration = `${t}ms`; 7732 }); 7733 }), 7734 St({ swiper: e, duration: t, transformElements: i, allSlides: !0 }); 7735 }, 7736 perspective: () => e.params.creativeEffect.perspective, 7737 overwriteParams: () => ({ 7738 watchSlidesProgress: !0, 7739 virtualTranslate: !e.params.cssMode, 7740 }), 7741 }); 7742 }, 7743 function ({ swiper: e, extendParams: t, on: i }) { 7744 t({ 7745 cardsEffect: { 7746 slideShadows: !0, 7747 rotate: !0, 7748 perSlideRotate: 2, 7749 perSlideOffset: 8, 7750 }, 7751 }), 7752 Mt({ 7753 effect: "cards", 7754 swiper: e, 7755 on: i, 7756 setTranslate: () => { 7757 const { slides: t, activeIndex: i } = e, 7758 s = e.params.cardsEffect, 7759 { startTranslate: n, isTouched: r } = e.touchEventsData, 7760 o = e.translate; 7761 for (let a = 0; a < t.length; a += 1) { 7762 const l = t[a], 7763 c = l.progress, 7764 d = Math.min(Math.max(c, -4), 4); 7765 let p = l.swiperSlideOffset; 7766 e.params.centeredSlides && 7767 !e.params.cssMode && 7768 (e.wrapperEl.style.transform = `translateX(${e.minTranslate()}px)`), 7769 e.params.centeredSlides && 7770 e.params.cssMode && 7771 (p -= t[0].swiperSlideOffset); 7772 let u = e.params.cssMode ? -p - e.translate : -p, 7773 h = 0; 7774 const f = -100 * Math.abs(d); 7775 let w = 1, 7776 v = -s.perSlideRotate * d, 7777 g = s.perSlideOffset - 0.75 * Math.abs(d); 7778 const b = 7779 e.virtual && e.params.virtual.enabled ? e.virtual.from + a : a, 7780 m = 7781 (b === i || b === i - 1) && 7782 d > 0 && 7783 d < 1 && 7784 (r || e.params.cssMode) && 7785 o < n, 7786 x = 7787 (b === i || b === i + 1) && 7788 d < 0 && 7789 d > -1 && 7790 (r || e.params.cssMode) && 7791 o > n; 7792 if (m || x) { 7793 const e = (1 - Math.abs((Math.abs(d) - 0.5) / 0.5)) ** 0.5; 7794 (v += -28 * d * e), 7795 (w += -0.5 * e), 7796 (g += 96 * e), 7797 (h = -25 * e * Math.abs(d) + "%"); 7798 } 7799 if ( 7800 ((u = 7801 d < 0 7802 ? `calc(${u}px + (${g * Math.abs(d)}%))` 7803 : d > 0 7804 ? `calc(${u}px + (-${g * Math.abs(d)}%))` 7805 : `${u}px`), 7806 !e.isHorizontal()) 7807 ) { 7808 const e = h; 7809 (h = u), (u = e); 7810 } 7811 const A = d < 0 ? "" + (1 + (1 - w) * d) : "" + (1 - (1 - w) * d), 7812 y = `\n translate3d(${u}, ${h}, ${f}px)\n rotateZ(${ 7813 s.rotate ? v : 0 7814 }deg)\n scale(${A})\n `; 7815 if (s.slideShadows) { 7816 let e = l.querySelector(".swiper-slide-shadow"); 7817 e || (e = Et(0, l)), 7818 e && 7819 (e.style.opacity = Math.min( 7820 Math.max((Math.abs(d) - 0.5) / 0.5, 0), 7821 1 7822 )); 7823 } 7824 l.style.zIndex = -Math.abs(Math.round(c)) + t.length; 7825 $t(0, l).style.transform = y; 7826 } 7827 }, 7828 setTransition: (t) => { 7829 const i = e.slides.map((e) => ze(e)); 7830 i.forEach((e) => { 7831 (e.style.transitionDuration = `${t}ms`), 7832 e.querySelectorAll(".swiper-slide-shadow").forEach((e) => { 7833 e.style.transitionDuration = `${t}ms`; 7834 }); 7835 }), 7836 St({ swiper: e, duration: t, transformElements: i }); 7837 }, 7838 perspective: () => !0, 7839 overwriteParams: () => ({ 7840 watchSlidesProgress: !0, 7841 virtualTranslate: !e.params.cssMode, 7842 }), 7843 }); 7844 }, 7845]; 7846wt.use(kt); 7847const Tt = [ 7848 "eventsPrefix", 7849 "modules", 7850 "init", 7851 "_direction", 7852 "oneWayMovement", 7853 "touchEventsTarget", 7854 "initialSlide", 7855 "_speed", 7856 "cssMode", 7857 "updateOnWindowResize", 7858 "resizeObserver", 7859 "nested",
7860 "focusableElements", 7861 "_enabled", 7862 "_width", 7863 "_height", 7864 "preventInteractionOnTransition", 7865 "userAgent", 7866 "url", 7867 "_edgeSwipeDetection", 7868 "_edgeSwipeThreshold", 7869 "_freeMode", 7870 "_autoHeight", 7871 "setWrapperSize", 7872 "virtualTranslate", 7873 "_effect", 7874 "breakpoints", 7875 "_spaceBetween", 7876 "_slidesPerView", 7877 "maxBackfaceHiddenSlides", 7878 "_grid", 7879 "_slidesPerGroup", 7880 "_slidesPerGroupSkip", 7881 "_slidesPerGroupAuto", 7882 "_centeredSlides", 7883 "_centeredSlidesBounds", 7884 "_slidesOffsetBefore", 7885 "_slidesOffsetAfter", 7886 "normalizeSlideIndex", 7887 "_centerInsufficientSlides", 7888 "_watchOverflow", 7889 "roundLengths", 7890 "touchRatio", 7891 "touchAngle", 7892 "simulateTouch", 7893 "_shortSwipes", 7894 "_longSwipes", 7895 "longSwipesRatio", 7896 "longSwipesMs", 7897 "_followFinger", 7898 "allowTouchMove", 7899 "_threshold", 7900 "touchMoveStopPropagation", 7901 "touchStartPreventDefault", 7902 "touchStartForcePreventDefault", 7903 "touchReleaseOnEdges", 7904 "uniqueNavElements", 7905 "_resistance", 7906 "_resistanceRatio", 7907 "_watchSlidesProgress", 7908 "_grabCursor", 7909 "preventClicks", 7910 "preventClicksPropagation", 7911 "_slideToClickedSlide", 7912 "_loop", 7913 "loopedSlides", 7914 "loopPreventsSliding", 7915 "_rewind", 7916 "_allowSlidePrev", 7917 "_allowSlideNext", 7918 "_swipeHandler", 7919 "_noSwiping", 7920 "noSwipingClass", 7921 "noSwipingSelector", 7922 "passiveListeners", 7923 "containerModifierClass", 7924 "slideClass", 7925 "slideActiveClass", 7926 "slideVisibleClass", 7927 "slideNextClass", 7928 "slidePrevClass", 7929 "wrapperClass", 7930 "lazyPreloaderClass", 7931 "runCallbacksOnInit", 7932 "observer", 7933 "observeParents", 7934 "observeSlideChildren", 7935 "a11y", 7936 "_autoplay", 7937 "_controller", 7938 "coverflowEffect", 7939 "cubeEffect", 7940 "fadeEffect", 7941 "flipEffect", 7942 "creativeEffect", 7943 "cardsEffect", 7944 "hashNavigation", 7945 "history", 7946 "keyboard", 7947 "mousewheel", 7948 "_navigation", 7949 "_pagination", 7950 "parallax", 7951 "_scrollbar", 7952 "_thumbs", 7953 "virtual", 7954 "zoom", 7955 "control", 7956 "injectStyles", 7957 "injectStylesUrls", 7958]; 7959function Ct(e) { 7960 return ( 7961 "object" == typeof e && 7962 null !== e && 7963 e.constructor && 7964 "Object" === Object.prototype.toString.call(e).slice(8, -1) 7965 ); 7966} 7967function zt(e, t) { 7968 const i = ["__proto__", "constructor", "prototype"]; 7969 Object.keys(t) 7970 .filter((e) => i.indexOf(e) < 0) 7971 .forEach((i) => { 7972 void 0 === e[i] 7973 ? (e[i] = t[i]) 7974 : Ct(t[i]) && Ct(e[i]) && Object.keys(t[i]).length > 0 7975 ? t[i].i 7976 ? (e[i] = t[i]) 7977 : zt(e[i], t[i]) 7978 : (e[i] = t[i]); 7979 }); 7980} 7981function Pt(e = "") { 7982 return e.replace(/-[a-z]/g, (e) => e.toUpperCase().replace("-", "")); 7983} 7984const Ot = (e) => 7985 parseFloat(e) === Number(e) 7986 ? Number(e) 7987 : "true" === e || 7988 "" === e || 7989 ("false" !== e && 7990 ("null" === e ? null : "undefined" !== e ? e : void 0)), 7991 jt = [ 7992 "a11y", 7993 "autoplay", 7994 "controller", 7995 "cards-effect", 7996 "coverflow-effect", 7997 "creative-effect", 7998 "cube-effect", 7999 "fade-effect", 8000 "flip-effect", 8001 "free-mode", 8002 "grid", 8003 "hash-navigation", 8004 "history", 8005 "keyboard", 8006 "mousewheel", 8007 "navigation", 8008 "pagination", 8009 "parallax", 8010 "scrollbar", 8011 "thumbs", 8012 "virtual", 8013 "zoom", 8014 ]; 8015function Bt(e) { 8016 const t = {}, 8017 i = {}; 8018 zt(t, pt); 8019 const s = [...Tt, "on"], 8020 n = s.map((e) => e.replace(/_/, "")); 8021 return (
8022 s.forEach((t) => { 8023 (t = t.replace("_", "")), void 0 !== e[t] && (i[t] = e[t]); 8024 }), 8025 [...e.attributes].forEach((e) => { 8026 const t = jt.filter((t) => 0 === e.name.indexOf(`${t}-`))[0]; 8027 if (t) { 8028 const s = Pt(t), 8029 n = Pt(e.name.split(`${t}-`)[1]); 8030 i[s] || (i[s] = {}), 8031 !0 === i[s] && (i[s] = { enabled: !0 }), 8032 (i[s][n] = Ot(e.value)); 8033 } else { 8034 const t = Pt(e.name); 8035 if (!n.includes(t)) return; 8036 const s = Ot(e.value); 8037 i[t] && jt.includes(e.name) 8038 ? (i[t].constructor !== Object && (i[t] = {}), (i[t].enabled = s)) 8039 : (i[t] = s); 8040 } 8041 }), 8042 zt(t, i), 8043 t.navigation 8044 ? (t.navigation = { 8045 prevEl: ".swiper-button-prev", 8046 nextEl: ".swiper-button-next", 8047 ...(!0 !== t.navigation ? t.navigation : {}), 8048 }) 8049 : !1 === t.navigation && delete t.navigation, 8050 t.scrollbar 8051 ? (t.scrollbar = { 8052 el: ".swiper-scrollbar", 8053 ...(!0 !== t.scrollbar ? t.scrollbar : {}), 8054 }) 8055 : !1 === t.scrollbar && delete t.scrollbar, 8056 t.pagination 8057 ? (t.pagination = { 8058 el: ".swiper-pagination", 8059 ...(!0 !== t.pagination ? t.pagination : {}), 8060 }) 8061 : !1 === t.pagination && delete t.pagination, 8062 { params: t, passedParams: i } 8063 ); 8064} 8065function It({ 8066 swiper: e, 8067 slides: t, 8068 passedParams: i, 8069 changedParams: s, 8070 nextEl: n, 8071 prevEl: r, 8072 scrollbarEl: o, 8073 paginationEl: a, 8074}) { 8075 const l = s.filter( 8076 (e) => "children" !== e && "direction" !== e && "wrapperClass" !== e 8077 ), 8078 { 8079 params: c, 8080 pagination: d, 8081 navigation: p, 8082 scrollbar: u, 8083 virtual: h, 8084 thumbs: f, 8085 } = e; 8086 let w, v, g, b, m, x, A, y; 8087 s.includes("thumbs") && 8088 i.thumbs && 8089 i.thumbs.swiper && 8090 c.thumbs && 8091 !c.thumbs.swiper && 8092 (w = !0), 8093 s.includes("controller") && 8094 i.controller && 8095 i.controller.control && 8096 c.controller && 8097 !c.controller.control && 8098 (v = !0), 8099 s.includes("pagination") && 8100 i.pagination && 8101 (i.pagination.el || a) && 8102 (c.pagination || !1 === c.pagination) && 8103 d && 8104 !d.el && 8105 (g = !0), 8106 s.includes("scrollbar") && 8107 i.scrollbar && 8108 (i.scrollbar.el || o) && 8109 (c.scrollbar || !1 === c.scrollbar) && 8110 u && 8111 !u.el && 8112 (b = !0), 8113 s.includes("navigation") && 8114 i.navigation && 8115 (i.navigation.prevEl || r) && 8116 (i.navigation.nextEl || n) && 8117 (c.navigation || !1 === c.navigation) && 8118 p && 8119 !p.prevEl && 8120 !p.nextEl && 8121 (m = !0); 8122 if ( 8123 (s.includes("loop") && 8124 e.isElement && 8125 (c.loop && !i.loop ? (x = !0) : !c.loop && i.loop ? (A = !0) : (y = !0)), 8126 l.forEach((t) => { 8127 if (Ct(c[t]) && Ct(i[t])) zt(c[t], i[t]); 8128 else { 8129 const n = i[t]; 8130 (!0 !== n && !1 !== n) || 8131 ("navigation" !== t && "pagination" !== t && "scrollbar" !== t) 8132 ? (c[t] = i[t]) 8133 : !1 === n && 8134 e[(s = t)] && 8135 (e[s].destroy(), 8136 "navigation" === s 8137 ? (e.isElement && (e[s].prevEl.remove(), e[s].nextEl.remove()), 8138 (c[s].prevEl = void 0), 8139 (c[s].nextEl = void 0), 8140 (e[s].prevEl = void 0), 8141 (e[s].nextEl = void 0)) 8142 : (e.isElement && e[s].el.remove(), 8143 (c[s].el = void 0), 8144 (e[s].el = void 0))); 8145 } 8146 var s; 8147 }), 8148 l.includes("controller") && 8149 !v && 8150 e.controller && 8151 e.controller.control && 8152 c.controller && 8153 c.controller.control && 8154 (e.controller.control = c.controller.control), 8155 s.includes("children") && 8156 t && 8157 h && 8158 c.virtual.enabled && 8159 ((h.slides = t), h.update(!0)), 8160 s.includes("children") && t && c.loop && (y = !0), 8161 w) 8162 ) { 8163 f.init() && f.update(!0); 8164 } 8165 v && (e.controller.control = c.controller.control), 8166 g && 8167 (!e.isElement || 8168 (a && "string" != typeof a) || 8169 ((a = document.createElement("div")).classList.add("swiper-pagination"), 8170 e.el.shadowEl.appendChild(a)), 8171 a && (c.pagination.el = a), 8172 d.init(), 8173 d.render(), 8174 d.update()), 8175 b && 8176 (!e.isElement || 8177 (o && "string" != typeof o) || 8178 ((o = document.createElement("div")).classList.add("swiper-scrollbar"), 8179 e.el.shadowEl.appendChild(o)), 8180 o && (c.scrollbar.el = o),
8181 u.init(), 8182 u.updateSize(), 8183 u.setTranslate()), 8184 m && 8185 (e.isElement && 8186 ((n && "string" != typeof n) || 8187 ((n = document.createElement("div")).classList.add( 8188 "swiper-button-next" 8189 ), 8190 e.el.shadowEl.appendChild(n)), 8191 (r && "string" != typeof r) || 8192 ((r = document.createElement("div")).classList.add( 8193 "swiper-button-prev" 8194 ), 8195 e.el.shadowEl.appendChild(r))), 8196 n && (c.navigation.nextEl = n), 8197 r && (c.navigation.prevEl = r), 8198 p.init(), 8199 p.update()), 8200 s.includes("allowSlideNext") && (e.allowSlideNext = i.allowSlideNext), 8201 s.includes("allowSlidePrev") && (e.allowSlidePrev = i.allowSlidePrev), 8202 s.includes("direction") && e.changeDirection(i.direction, !1), 8203 (x || y) && e.loopDestroy(), 8204 (A || y) && e.loopCreate(), 8205 e.update(); 8206} 8207const Lt = 8208 "@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}"; 8209let _t = !0; 8210const Gt = (e, t) => { 8211 let i = document.querySelector("style#swiper-element-styles"); 8212 const s = i && i.preInit && !e; 8213 !e && 8214 t && 8215 t.cssLinks().forEach((e) => { 8216 const t = document.createElement("link"); 8217 (t.rel = "stylesheet"), (t.href = e), document.head.prepend(t); 8218 }), 8219 (i && !s) || 8220 ((i = i || document.createElement("style")), 8221 (i.textContent = [Lt, t ? t.cssStyles() : ""].join("\n")), 8222 (i.id = "swiper-element-styles"), 8223 (i.preInit = e), 8224 document.head.prepend(i)); 8225}; 8226const Rt = 8227 "undefined" == typeof window || "undefined" == typeof HTMLElement 8228 ? class {} 8229 : HTMLElement; 8230class Dt extends Rt { 8231 constructor() { 8232 super(), 8233 (this.tempDiv = document.createElement("div")), 8234 (this.shadowEl = this.attachShadow({ mode: "open" })); 8235 } 8236 cssStyles() { 8237 return [ 8238 _t 8239 ? ":root{--swiper-theme-color:#007aff}.swiper,swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}:host(.swiper-vertical)>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight swiper-slide{height:auto}:host(.swiper-autoheight) .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}:host(.swiper-3d.swiper-css-mode) .swiper-wrapper{perspective:1200px}:host(.swiper-3d) .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d swiper-slide{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;
8239left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}:host(.swiper-css-mode)>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}:host(.swiper-css-mode)>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>swiper-slide{scroll-snap-align:start start}:host(.swiper-horizontal.swiper-css-mode)>.swiper-wrapper{scroll-snap-type:x mandatory}:host(.swiper-vertical.swiper-css-mode)>.swiper-wrapper{scroll-snap-type:y mandatory}:host(.swiper-centered)>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered>swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-centered.swiper-horizontal>swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}:host(.swiper-centered.swiper-horizontal)>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}:host(.swiper-centered.swiper-vertical)>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}:host(.swiper-virtual.swiper-css-mode) .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}:host(.swiper-virtual.swiper-css-mode.swiper-horizontal) .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}:host(.swiper-virtual.swiper-css-mode.swiper-vertical) .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,:host(.swiper-rtl) .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-prev:after,:host(.swiper-rtl) .swiper-button-next:after{content:'prev'}.swiper-button-next,:host(.swiper-rtl) .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px
8239);left:auto}.swiper-button-next:after,:host(.swiper-rtl) .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,:host(.swiper-horizontal.swiper-rtl) .swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;
8239left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}:host(.swiper-rtl) .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification,swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}:host(.swiper-free-mode)>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}:host(.swiper-grid)>.swiper-wrapper{flex-wrap:wrap}:host(.swiper-grid-column)>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode swiper-slide{transition-timing-function:ease-out}.swiper-fade swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade swiper-slide swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube swiper-slide swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev,.swiper-cube swiper-slide-next+swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;
8239left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip swiper-slide swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}" 8240 : "", 8241 ...(this.injectStyles && Array.isArray(this.injectStyles) 8242 ? this.injectStyles 8243 : []), 8244 ].join("\n"); 8245 } 8246 cssLinks() { 8247 return this.injectStylesUrls || []; 8248 } 8249 render() { 8250 _t && Gt(!1, this); 8251 const e = this.cssStyles(); 8252 e.length && 8253 ((this.stylesEl = document.createElement("style")), 8254 (this.stylesEl.textContent = e), 8255 this.shadowEl.appendChild(this.stylesEl)), 8256 this.cssLinks().forEach((e) => { 8257 if (document.querySelector(`link[href="${e}"]`)) return; 8258 const t = document.createElement("link"); 8259 (t.rel = "stylesheet"), (t.href = e), this.shadowEl.appendChild(t); 8260 }), 8261 (this.tempDiv.innerHTML = `\n <slot name="container-start"></slot>\n <div class="swiper-wrapper">\n <slot></slot>\n </div>\n <slot name="container-end"></slot>\n ${ 8262 (function (e = {}) { 8263 return ( 8264 e.navigation && 8265 void 0 === e.navigation.nextEl && 8266 void 0 === e.navigation.prevEl 8267 ); 8268 })(this.passedParams) 8269 ? '\n <div class="swiper-button-prev"></div>\n <div class="swiper-button-next"></div>\n ' 8270 : "" 8271 }\n ${ 8272 (function (e = {}) { 8273 return e.pagination && void 0 === e.pagination.el; 8274 })(this.passedParams) 8275 ? '\n <div class="swiper-pagination"></div>\n ' 8276 : "" 8277 }\n ${ 8278 (function (e = {}) { 8279 return e.scrollbar && void 0 === e.scrollbar.el; 8280 })(this.passedParams) 8281 ? '\n <div class="swiper-scrollbar"></div>\n ' 8282 : "" 8283 }\n `), 8284 [...this.tempDiv.children].forEach((e) => { 8285 this.shadowEl.appendChild(e); 8286 }); 8287 } 8288 initialize() { 8289 if (this.initialized) return; 8290 this.initialized = !0; 8291 const { params: e, passedParams: t } = Bt(this); 8292 (this.swiperParams = e), 8293 (this.passedParams = t), 8294 delete this.swiperParams.init, 8295 this.render(), 8296 (this.swiper = new wt(this, { 8297 ...e, 8298 touchEventsTarget: "container", 8299 ...(e.virtual ? {} : { observer: !0 }), 8300 onAny: (t, ...i) => { 8301 const s = e.eventsPrefix 8302 ? `${e.eventsPrefix}${t.toLowerCase()}` 8303 : t.toLowerCase(), 8304 n = new CustomEvent(s, { detail: i, bubbles: !0, cancelable: !0 }); 8305 this.dispatchEvent(n); 8306 }, 8307 })); 8308 } 8309 connectedCallback() { 8310 !1 !== this.init && "false" !== this.getAttribute("init") 8311 ? this.initialize() 8312 : Gt(!0, this); 8313 } 8314 disconnectedCallback() { 8315 this.swiper && this.swiper.destroy && this.swiper.destroy(), 8316 (this.initialized = !1); 8317 } 8318 updateSwiperOnPropChange(e) { 8319 const { params: t, passedParams: i } = Bt(this); 8320 (this.passedParams = i), 8321 (this.swiperParams = t), 8322 It({ 8323 swiper: this.swiper, 8324 passedParams: this.passedParams, 8325 changedParams: [Pt(e)], 8326 ...("navigation" === e && i[e] 8327 ? { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" } 8328 : {}), 8329 ...("pagination" === e && i[e] 8330 ? { paginationEl: ".swiper-pagination" } 8331 : {}), 8332 ...("scrollbar" === e && i[e] 8333 ? { scrollbarEl: ".swiper-scrollbar" } 8334 : {}), 8335 }); 8336 } 8337 attributeChangedCallback(e, t, i) { 8338 this.initialized && this.updateSwiperOnPropChange(e, i); 8339 } 8340 static get observedAttributes() { 8341 const e = Tt.filter((e) => e.includes("_")).map((e) => 8342 e 8343 .replace(/[A-Z]/g, (e) => `-${e}`) 8344 .replace("_", "") 8345 .toLowerCase() 8346 ); 8347 return e; 8348 } 8349} 8350Tt.forEach((e) => { 8351 "init" !== e && 8352 ((e = e.replace("_", "")), 8353 Object.defineProperty(Dt.prototype, e, { 8354 get() { 8355 return (this.passedParams || {})[e]; 8356 }, 8357 set(t) { 8358 this.passedParams || (this.passedParams = {}), 8359 (this.passedParams[e] = t), 8360 this.initialized && this.updateSwiperOnPropChange(e, t); 8361 }, 8362 })); 8363}); 8364class Ft extends Rt { 8365 constructor() { 8366 super(), 8367 (this.tempDiv = document.createElement("div")), 8368 (this.shadowEl = this.attachShadow({ mode: "open" })); 8369 } 8370 render() { 8371 const e = 8372 this.lazy || 8373 "" === this.getAttribute("lazy") || 8374 "true" === this.getAttribute("lazy"); 8375 if ( 8376 ((this.tempDiv.innerHTML = "<slot />"),
8377 [...this.tempDiv.children].forEach((e) => { 8378 this.shadowEl.appendChild(e); 8379 }), 8380 e) 8381 ) { 8382 const e = document.createElement("div"); 8383 e.classList.add("swiper-lazy-preloader"), this.appendChild(e); 8384 } 8385 } 8386 initialize() { 8387 this.render(); 8388 } 8389 connectedCallback() { 8390 this.initialize(); 8391 } 8392} 8393"undefined" != typeof window && 8394 (window.SwiperElementRegisterParams = (e) => { 8395 Tt.push(...e); 8396 }); 8397const Yt = ((e, ...t) => { 8398 const s = 8399 1 === e.length 8400 ? e[0] 8401 : t.reduce( 8402 (t, i, s) => 8403 t + 8404 ((e) => { 8405 if (!0 === e._$cssResult$) return e.cssText; 8406 if ("number" == typeof e) return e; 8407 throw Error( 8408 "Value passed to 'css' function must be a 'css' function result: " + 8409 e + 8410 ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security." 8411 ); 8412 })(i) + 8413 e[s + 1], 8414 e[0] 8415 ); 8416 return new n(s, e, i); 8417})` 8418 :host { 8419 --title-font-color: inherit; 8420 --title-font-weight: 700; 8421 --title-font-size: 13px; 8422 8423 --description-font-color: inherit; 8424 --description-font-weight: 400; 8425 --description-font-size: 12px; 8426 8427 --image-height: 210px; 8428 } 8429 a { 8430 text-decoration: none; 8431 color: black; 8432 display: flex; 8433 flex-direction: column; 8434 } 8435 .record-details { 8436 text-align: center; 8437 color: black; 8438 margin-top: .5em; 8439 } 8440 .record-details h3 { 8441 color: var(--title-font-color); 8442 font-size: var(--title-font-size); 8443 font-weight: var(--title-font-weight); 8444 } 8445 .record-details span { 8446 font-size: var(--description-font-size); 8447 font-weight: var(--description-font-weight); 8448 color: var(--description-font-color); 8449 } 8450 8451 img, .image-place-holder { 8452 height: var(--image-height); 8453 display: block; 8454 object-fit: contain; 8455 } 8456`; 8457var Nt = function (e, t, i, s) { 8458 for ( 8459 var n, 8460 r = arguments.length, 8461 o = 8462 r < 3 8463 ? t 8464 : null === s 8465 ? (s = Object.getOwnPropertyDescriptor(t, i)) 8466 : s, 8467 a = e.length - 1; 8468 a >= 0; 8469 a-- 8470 ) 8471 (n = e[a]) && (o = (r < 3 ? n(o) : r > 3 ? n(t, i, o) : n(t, i)) || o); 8472 return r > 3 && o && Object.defineProperty(t, i, o), o; 8473}; 8474let Ut = class extends K { 8475 render() { 8476 var e, t, i, s, n, r, o, a, l, c; 8477 this.almaDThumbnailBaseURL = this.getAlmaDThumbnailBaseUrl(); 8478 const d = this.getThumbnailLinks(), 8479 p = j`<div style="background-color: ${this.getRandomColor()}" 8480 class="image-place-holder"></div>`, 8481 u = d 8482 .then( 8483 (e) => ( 8484 console.log(`getImageUrl returned ${e}`), j`<img src=${e} alt="">` 8485 ) 8486 ) 8487 .catch(() => p); 8488 return j` 8489 <a href="${this.getDeeplink()}" target="_blank" aria-label=""> 8490 ${ue(u, p)} 8491 <div class="record-details"> 8492 <h3>${ 8493 null !== 8494 (n = 8495 null === 8496 (s = 8497 null === 8498 (i = 8499 null === 8500 (t = 8501 null === 8502 (e = 8503 null == this ? void 0 : this.doc) || 8504 void 0 === e 8505 ? void 0 8506 : e.pnx) || void 0 === t 8507 ? void 0 8508 : t.display) || void 0 === i 8509 ? void 0 8510 : i.title) || void 0 === s 8511 ? void 0 8512 : s[0]) && void 0 !== n 8513 ? n 8514 : "" 8515 }</h3> 8516 <span>${ 8517 null !== 8518 (c = 8519 null === 8520 (l = 8521 null === 8522 (a = 8523 null === 8524 (o = 8525 null === 8526 (r = 8527 null == this ? void 0 : this.doc) || 8528 void 0 === r 8529 ? void 0 8530 : r.pnx) || void 0 === o 8531 ? void 0 8532 : o.display) || void 0 === a 8533 ? void 0 8534 : a.publisher) || void 0 === l 8535 ? void 0 8536 : l[0]) && void 0 !== c 8537 ? c 8538 : "" 8539 }</span> 8540 </div> 8541 </a> 8542 8543 `; 8544 } 8545 getAlmaDThumbnailBaseUrl() { 8546 return `${new URL(this.doc["@id"]).origin}/view/delivery/thumbnail`; 8547 } 8548 getRandomColor() { 8549 let e = "#"; 8550 for (let t = 0; t < 6; t++) 8551 e += "0123456789ABCDEF"[Math.floor(16 * Math.random())]; 8552 return e; 8553 } 8554 getDeeplink() { 8555 let e = ""; 8556 const t = new URL(this.doc["@id"]), 8557 i = this.getProtocol(t), 8558 s = this.isPrimo() ? "/primo-explore" : "/discovery",
8559 n = this.getState(), 8560 r = this.doc.pnx.control.recordid, 8561 o = this.doc.context; 8562 return ( 8563 (e = 8564 i + 8565 this.host + 8566 s + 8567 n + 8568 "&docid=" + 8569 r + 8570 "&context=" + 8571 o + 8572 "&vid=" + 8573 this.vid + 8574 "&lang=" + 8575 this.language + 8576 "&search_scope=" + 8577 this.scope + 8578 "&tab=" + 8579 this.tab), 8580 e 8581 ); 8582 } 8583 getProtocol(e) { 8584 return e.protocol + "//"; 8585 } 8586 isPrimo() { 8587 return !1; 8588 } 8589 getState() { 8590 return "/fulldisplay?"; 8591 } 8592 async getThumbnailLinks() { 8593 try { 8594 let e = (this.doc.delivery.link || []).filter( 8595 (e) => "thumbnail" === e.displayLabel 8596 ); 8597 const t = await this.getThumbnailFromAlmaD(); 8598 if (t) return t; 8599 let i = await this.getThumbnailFromOther(e); 8600 if (i) return i; 8601 const s = await this.getThumbnailFromSyndeticsEXL(e); 8602 if (s) return s; 8603 const n = await this.getThumbnailFromSyndetics(e); 8604 if (n) return n; 8605 const r = await this.getThumbnailFromGoogle(e); 8606 if (r) return r; 8607 if (this.defaultThumbnailUrl) return this.defaultThumbnailUrl; 8608 throw "no thumbnail"; 8609 } catch (e) { 8610 throw e; 8611 } 8612 } 8613 async getThumbnailFromAlmaD() { 8614 try { 8615 if (this.isAlmaD()) { 8616 const e = await this.getAlmaDigitalThumbnailForPnx(); 8617 return await this.resolveAlmaDigitalImage(e); 8618 } 8619 return ""; 8620 } catch (e) { 8621 return console.error("Error in getThumbnailFromAlmaD:", e), ""; 8622 } 8623 } 8624 async getThumbnailFromOther(e) { 8625 let t = e.filter(this.getAllButSpecificLinkFilterFactory("amazon")); 8626 if ( 8627 ((t = t.filter(this.getAllButSpecificLinkFilterFactory("syndetics.com"))), 8628 (t = t.filter(this.getAllButSpecificLinkFilterFactory("google.com"))), 8629 !t.length) 8630 ) 8631 return ""; 8632 { 8633 const e = t.map( 8634 (e) => (this.removeLabelFromLinkUrl(e), this.getImageLink(e.linkURL)) 8635 );
8636 try { 8637 return (await Promise.race(e)) || ""; 8638 } catch (e) { 8639 return ""; 8640 } 8641 } 8642 } 8643 getAllButSpecificLinkFilterFactory(e) { 8644 return (t) => { 8645 if ("string" == typeof t) return -1 === t.indexOf(e); 8646 let i = null == t ? void 0 : t.linkURL; 8647 return ( 8648 !!i && 8649 ("string" == typeof i 8650 ? -1 === i.indexOf(e) 8651 : -1 === i.linkURL.indexOf(e)) 8652 ); 8653 }; 8654 } 8655 async getThumbnailFromSyndeticsEXL(e, t) { 8656 var i, s, n, r, o, a, l, c, d, p, u, h, f, w, v; 8657 const g = e.filter( 8658 (e) => 8659 this.getSpecificLink(e, "syndetics.com") || 8660 this.getSpecificLink(e, "primo") 8661 ); 8662 if (g.length > 0 || !this.isPrimo()) { 8663 const e = [ 8664 ...new Set( 8665 ( 8666 (null === 8667 (n = 8668 null === 8669 (s = 8670 null === (i = this.doc) || void 0 === i 8671 ? void 0 8672 : i.pnx) || void 0 === s 8673 ? void 0 8674 : s.addata) || void 0 === n 8675 ? void 0 8676 : n.isbn) || [] 8677 ).concat( 8678 (null === 8679 (a = 8680 null === 8681 (o = 8682 null === (r = this.doc) || void 0 === r 8683 ? void 0 8684 : r.pnx) || void 0 === o 8685 ? void 0 8686 : o.addata) || void 0 === a 8687 ? void 0 8688 : a.eisbn) || [] 8689 ) 8690 ), 8691 ], 8692 b = [ 8693 ...new Set( 8694 ( 8695 (null === 8696 (d = 8697 null === 8698 (c = 8699 null === (l = this.doc) || void 0 === l 8700 ? void 0 8701 : l.pnx) || void 0 === c 8702 ? void 0 8703 : c.addata) || void 0 === d 8704 ? void 0 8705 : d.issn) || [] 8706 ).concat( 8707 (null === 8708 (h = 8709 null === 8710 (u = 8711 null === (p = this.doc) || void 0 === p 8712 ? void 0 8713 : p.pnx) || void 0 === u 8714 ? void 0 8715 : u.addata) || void 0 === h 8716 ? void 0 8717 : h.eissn) || [] 8718 ) 8719 ), 8720 ], 8721 m = 8722 (null === 8723 (v = 8724 null === 8725 (w = 8726 null === (f = this.doc) || void 0 === f ? void 0 : f.pnx) || 8727 void 0 === w 8728 ? void 0 8729 : w.addata) || void 0 === v 8730 ? void 0 8731 : v.upcid) || [], 8732 x = 8733 "https://syndetics.com/index.php?client=primo&" + 8734 (t ? "type=unbound&" : ""); 8735 for (const t of e) g.push(this.createLinkObj(`${x}isbn=${t}/lc.jpg`)); 8736 for (const e of b) g.push(this.createLinkObj(`${x}issn=${e}/lc.jpg`)); 8737 for (const e of m) g.push(this.createLinkObj(`${x}upc=${e}/lc.jpg`)); 8738 if (g.length > 0) return this.handleSyndeticsThumbnailLinks(g); 8739 } 8740 return ""; 8741 } 8742 async getThumbnailFromSyndetics(e) { 8743 const t = e.filter((e) => this.getSpecificLink(e, "syndetics.com")); 8744 return t.length > 0 ? this.handleSyndeticsThumbnailLinks(t) : ""; 8745 } 8746 getSpecificLink(e, t) { 8747 if ("string" == typeof e) return e.indexOf(t) > -1; 8748 let i = e ? e.linkURL : void 0; 8749 return ( 8750 !!i && 8751 ("string" == typeof i ? i.indexOf(t) > -1 : i.linkURL.indexOf(t) > -1) 8752 ); 8753 } 8754 async handleSyndeticsThumbnailLinks(e) { 8755 let t = this.getSyndetixWithProxy(), 8756 i = e.map((e) => { 8757 const i = e.linkURL.replace( 8758 "https://syndetics.com/index.php?client=", 8759 t 8760 ); 8761 return this.getImageLink(i); 8762 }); 8763 return await this.createPromiseOnlyFailOnAllFailedResolveFirstSuccess(i); 8764 } 8765 async getThumbnailFromGoogle(e) { 8766 if (this.showICPLicenseFooter()) return ""; 8767 const t = e.find((e) => this.getSpecificLink(e, "books.google.com")); 8768 if (!t) return ""; 8769 try { 8770 const e = t.linkURL.replace("&callback=updateGBSCover", ""), 8771 i = await fetch(e), 8772 s = await i.text(); 8773 let n = JSON.parse(s.substring(s.indexOf("{"), s.indexOf("}") + 2)); 8774 const r = Object.keys(n); 8775 if (r.length > 0) { 8776 let e = n[r[0]].thumbnail_url; 8777 if (e) { 8778 return { 8779 displayLabel: "thumbnail", 8780 linkType: "http://purl.org/pnx/linkType/thumbnail", 8781 linkURL: this.handleLink(e), 8782 }.linkURL; 8783 } 8784 } 8785 } catch (e) { 8786 return ""; 8787 } 8788 return ""; 8789 } 8790 async createPromiseOnlyFailOnAllFailedResolveFirstSuccess(e) { 8791 const t = e.map(this.reflect), 8792 i = (await Promise.all(t)).find((e) => "resolved" === e.status); 8793 return i ? i.value : ""; 8794 } 8795 reflect(e) { 8796 return e.then( 8797 (e) => ({ value: e, status: "resolved" }), 8798 (e) => ({ error: e, status: "rejected" }) 8799 ); 8800 } 8801 showICPLicenseFooter() { 8802 return !1; 8803 } 8804 removeLabelFromLinkUrl(e) { 8805 let t = e.linkURL; 8806 t && 8807 t.includes("$$L") && 8808 (e.linkURL = t.substr(0, t.indexOf("$$L")).trim()); 8809 } 8810 isAlmaD() { 8811 var e, t, i, s; 8812 return ( 8813 !this.isPrimo() && 8814 ("SP" === this.doc.context && 8815 "alma" === 8816 (null === 8817 (i = 8818 null === 8819 (t = null === (e = this.doc) || void 0 === e ? void 0 : e.pnx) || 8820 void 0 === t 8821 ? void 0 8822 : t.control) || void 0 === i 8823 ? void 0 8824 : i.sourceid) && 8825 (null === (s = this.doc.delivery) || void 0 === s 8826 ? void 0 8827 : s.electronicServices) 8828 ? this.doc.delivery.electronicServices.filter( 8829 (e) => "DIGITAL" === e.serviceType 8830 ).length > 0 8831 : !0 === this.doc.delivery.hasD || 8832 !0 === this.doc.delivery.digitalAuxiliaryMode) 8833 ); 8834 } 8835 async getAlmaDigitalThumbnailForPnx() { 8836 var e, t, i, s, n, r, o, a, l, c, d, p, u, h, f; 8837 const w = 8838 null === 8839 (s = 8840 null === 8841 (i = 8842 null === 8843 (t = 8844 null === (e = this.doc) || void 0 === e ? void 0 : e.pnx) || 8845 void 0 === t 8846 ? void 0 8847 : t.control) || void 0 === i 8848 ? void 0 8849 : i.sourcerecordid) || void 0 === s 8850 ? void 0 8851 : s[0], 8852 v = 8853 (null === 8854 (r = null === (n = this.doc) || void 0 === n ? void 0 : n.delivery) || 8855 void 0 === r 8856 ? void 0 8857 : r.recordInstitutionCode) || this.institution; 8858 let g = this.getAlmaDigitalThumbnailUrl(w); 8859 if ( 8860 (null === 8861 (a = null === (o = this.doc) || void 0 === o ? void 0 : o.delivery) || 8862 void 0 === a 8863 ? void 0 8864 : a.sharedDigitalCandidates) && 8865 this.doc.delivery.sharedDigitalCandidates.length > 0 8866 ) { 8867 const e = await fetch( 8868 `${this.almaDThumbnailBaseURL}/${v}/${w}?vid=${this.vid}`, 8869 { 8870 method: "POST", 8871 body: JSON.stringify( 8872 null === 8873 (c = 8874 null === (l = this.doc) || void 0 === l 8875 ? void 0 8876 : l.delivery) || void 0 === c 8877 ? void 0 8878 : c.sharedDigitalCandidates 8879 ), 8880 } 8881 ); 8882 g = (await e.json()).data; 8883 } else if ( 8884 null === 8885 (u = 8886 null === 8887 (p = null === (d = this.doc) || void 0 === d ? void 0 : d.pnx) || 8888 void 0 === p 8889 ? void 0 8890 : p.control) || void 0 === u 8891 ? void 0 8892 : u.isDedup 8893 ) { 8894 const e = await fetch( 8895 `${this.almaDThumbnailBaseURL}/${w}?vid=${this.vid}` 8896 ); 8897 if ( 8898 !(null === 8899 (f = 8900 null === (h = await e.json()) || void 0 === h ? void 0 : h.data) || 8901 void 0 === f 8902 ? void 0 8903 : f.hasDigitalInventory) 8904 ) 8905 return ""; 8906 } 8907 return this.isEsploroRecord() && (g += "?calculateAccessRights=true"), g; 8908 } 8909 isEsploroRecord() { 8910 var e; 8911 return ( 8912 "ESPLORO" ===
8913 (null === (e = this.doc.pnx.control.sourceformat) || void 0 === e 8914 ? void 0 8915 : e[0]) || !1 8916 ); 8917 } 8918 getAlmaDigitalThumbnailUrl(e) { 8919 return `${this.almaDThumbnailBaseURL}/${this.institution}/${e}`; 8920 } 8921 resolveAlmaDigitalImage(e) { 8922 return this.getImageLink(e); 8923 } 8924 createLinkObj(e) { 8925 return { 8926 displayLabel: "thumbnail", 8927 linkType: "http://purl.org/pnx/linkType/thumbnail", 8928 linkURL: e, 8929 }; 8930 } 8931 async getImageLink(e) { 8932 return new Promise((t, i) => { 8933 if (!e) return void i(""); 8934 const s = new Image(); 8935 (s.onload = () => { 8936 s.width > 1 ? t(e) : i(""); 8937 }), 8938 (s.onerror = () => { 8939 i(""); 8940 }), 8941 (s.src = this.handleLink(e)); 8942 }); 8943 } 8944 handleLink(e) { 8945 let t = e; 8946 return ( 8947 "https:" === window.location.protocol && 8948 (t = e.replace("http://", "https://")), 8949 t 8950 ); 8951 } 8952 getSyndetixWithProxy() { 8953 return "https://proxy-na.hosted.exlibrisgroup.com/exl_rewrite/syndetics.com/index.php?client="; 8954 } 8955}; 8956(Ut.styles = Yt), 8957 Nt([we()], Ut.prototype, "doc", void 0), 8958 Nt([we()], Ut.prototype, "host", void 0), 8959 Nt([we()], Ut.prototype, "institution", void 0), 8960 Nt([we()], Ut.prototype, "vid", void 0), 8961 Nt([we()], Ut.prototype, "language", void 0), 8962 Nt([we()], Ut.prototype, "scope", void 0), 8963 Nt([we()], Ut.prototype, "tab", void 0), 8964 Nt([we()], Ut.prototype, "defaultThumbnailUrl", void 0), 8965 (Ut = Nt([he("pnx-card")], Ut)); 8966var Vt = function (e, t, i, s) { 8967 for ( 8968 var n, 8969 r = arguments.length, 8970 o = 8971 r < 3 8972 ? t 8973 : null === s 8974 ? (s = Object.getOwnPropertyDescriptor(t, i)) 8975 : s, 8976 a = e.length - 1; 8977 a >= 0; 8978 a-- 8979 ) 8980 (n = e[a]) && (o = (r < 3 ? n(o) : r > 3 ? n(t, i, o) : n(t, i)) || o); 8981 return r > 3 && o && Object.defineProperty(t, i, o), o; 8982}; 8983((e = !0) => { 8984 "undefined" != typeof window && 8985 (e || (_t = !1), 8986 _t && Gt(!0), 8987 window.customElements.get("swiper-container") || 8988 window.customElements.define("swiper-container", Dt), 8989 window.customElements.get("swiper-slide") || 8990 window.customElements.define("swiper-slide", Ft)); 8991})(); 8992let Ht = class extends K { 8993 constructor() { 8994 super(), (this.searchUrl = ""); 8995 } 8996 connectedCallback() { 8997 super.connectedCallback(), this.performQuery(); 8998 } 8999 async performQuery() { 9000 try { 9001 const e = await fetch(this.searchUrl); 9002 this.data = e.json(); 9003 } catch (e) {} 9004 } 9005 createRenderRoot() { 9006 return this; 9007 } 9008 render() { 9009 if (!this.data) return j``; 9010 const e = new URL(this.searchUrl); 9011 (this.host = e.host), 9012 (this.viewId = e.searchParams.get("vid")), 9013 (this.language = e.searchParams.get("lang")), 9014 (this.scope = e.searchParams.get("scope")), 9015 (this.tab = e.searchParams.get("tab")), 9016 (this.institution = e.searchParams.get("inst")); 9017 const t = this.getTitleHtml(), 9018 i = this.data.then((e) => 9019 e.docs.map( 9020 (e) => j`<swiper-slide> 9021 <pnx-card .doc="${e}" .host="${this.host}" .institution="${this.institution}" .vid="${this.viewId}" 9022 .language="${this.language}" .scope="${this.scope}" 9023 .tab="${this.tab}" .defaultThumbnailUrl="${this.defaultThumbnailUrl}"> 9024 </pnx-card> 9025 </swiper-slide>` 9026 ) 9027 ); 9028 return j` 9029 9030 <div class="gallery-container"> 9031 ${t} 9032 <button class="swiper-button-prev"></button> 9033 <swiper-container init="false" class="swiper"> 9034 ${ue(i, "")} 9035 </swiper-container> 9036 <!-- Navigation buttons --> 9037 <button class="swiper-button-next"></button> 9038 <div class="swiper-pagination"></div> 9039 </div> 9040 `; 9041 } 9042 updated() { 9043 const e = this.renderRoot.querySelector("swiper-container"), 9044 t = this.renderRoot.querySelector(".swiper-button-next"), 9045 i = this.renderRoot.querySelector(".swiper-button-prev"), 9046 s = this.renderRoot.querySelector(".swiper-pagination"); 9047 if (!e) return; 9048 const n = { 9049 effect: "coverflow", 9050 grabCursor: !0, 9051 centeredSlides: !0, 9052 spaceBetween: 70, 9053 slidesPerView: "auto", 9054 coverflowEffect: { 9055 rotate: 25, 9056 stretch: 0, 9057 depth: 100, 9058 modifier: 1, 9059 slideShadows: !1, 9060 }, 9061 pagination: { el: s, clickable: !0 },
9062 breakpoints: { 9063 360: { slidesPerView: 2, spaceBetween: 30 }, 9064 640: { slidesPerView: 3, spaceBetween: 100 }, 9065 768: { slidesPerView: 3, spaceBetween: 130 }, 9066 1024: { slidesPerView: "auto", spaceBetween: 70 }, 9067 }, 9068 navigation: { nextEl: t, prevEl: i }, 9069 a11y: { 9070 prevSlideMessage: "Previous slide", 9071 nextSlideMessage: "Next slide", 9072 firstSlideMessage: "This is the first slide", 9073 lastSlideMessage: "This is the last slide", 9074 }, 9075 injectStyles: [ 9076 "\n search-carousel {\n position: relative;\n height: 100%;\n display: block;\n font-size: 14px;\n color: #000;\n padding: 0;\n --width-param: 700px;\n max-width: var(--width-param);\n margin: 0 auto;\n }\n .gallery-container {\n padding: 20px;\n }\n \n .gallery-container a {\n text-decoration: none;\n color: black;\n }\n \n .gallery-container a:hover, .gallery-container a:focus {\n text-decoration: underline;\n }\n \n .gallery-container h2 {\n text-align: center;\n }\n \n .swiper {\n max-width: var(--width-param);\n margin-block-end: 1em;\n }\n \n swiper-slide {\n background-position: center;\n background-size: cover;\n width: calc(0.2 * var(--width-param));\n text-decoration: none;\n }\n \n swiper-slide:hover, swiper-slide:focus {\n text-decoration: underline;\n }\n \n .swiper-slide img {\n display: block;\n }\n \n \n .gallery-container .swiper-button-prev, .gallery-container .swiper-button-next {\n color: black;\n background-color: transparent;\n border: none;\n top: 50%;\n padding: 0;\n }\n .gallery-container .swiper-button-next {\n margin-right: -2.5em;\n }\n\n .gallery-container .swiper-button-prev {\n margin-left: -2.5em;\n }\n @media only screen and (max-width: 360px) {\n .gallery-container .swiper-button-next {\n margin-inline-end: -13px;\n }\n .gallery-container .swiper-button-prev {\n margin-inline-start: -13px;\n }\n /*.swiper-button-prev:focus:not(:active), .swiper-button-next:focus:not(:active) {\n box-shadow: 0 0 0 2px black;\n }*/\n }\n \n /*.swiper-button-prev:focus, .swiper-button-next:focus {\n // box-shadow: 0 0 0 2px black;\n }*/\n \n .swiper-button-prev, .swiper-button-next {\n &:hover,&:focus {\n background-color: black;\n &:after {\n color: white;\n }\n }\n }\n \n .swiper-pagination .swiper-pagination-bullet-active {\n background-color: black;\n }\n \n .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{\n --swiper-pagination-bullet-horizontal-gap: 8px;\n }\n ", 9077 ], 9078 };
9079 Object.assign(e, n), e.initialize(); 9080 } 9081 getTitleHtml() { 9082 return this.titleText 9083 ? this.titleLink 9084 ? j`<h2><a target="_blank" href="${this.titleLink}">${this.titleText}</a></h2>` 9085 : j`<h2>${this.titleText}</h2>` 9086 : j``; 9087 } 9088}; 9089Vt([we()], Ht.prototype, "searchUrl", void 0), 9090 Vt([we()], Ht.prototype, "titleText", void 0), 9091 Vt([we()], Ht.prototype, "titleLink", void 0), 9092 Vt([we()], Ht.prototype, "defaultThumbnailUrl", void 0), 9093 Vt( 9094 [ 9095 (function (e) { 9096 return we({ ...e, state: !0 }); 9097 })(), 9098 ], 9099 Ht.prototype, 9100 "data", 9101 void 0 9102 ), 9103 (Ht = Vt([he("search-carousel")], Ht)); 9104export { Ht as SearchCarousel };
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.