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