PageSourceSearch

https://www.etlandmall.co.kr/nas/cdn/design/renewal2023/js/swiper/swiper-10.1.0.min.js

js etlandmall.co.kr collected 2026-10-03 19:58:41 UTC 246,030 bytes, 7,041 lines download raw bytes

1/**
2 * Swiper 10.1.0
3 * Most modern mobile touch slider and framework with hardware accelerated transitions
4 * https://swiperjs.com
5 *
6 * Copyright 2014-2023 Vladimir Kharlampidi
7 *
8 * Released under the MIT License
9 *
10 * Released on: August 1, 2023
11 */
12
13var Swiper = (function () {
14  "use strict";
15  function e(e) {
16    return (
17      null !== e &&
18      "object" == typeof e &&
19      "constructor" in e &&
20      e.constructor === Object
21    );
22  }
23  function t(s, a) {
24    void 0 === s && (s = {}),
25      void 0 === a && (a = {}),
26      Object.keys(a).forEach((i) => {
27        void 0 === s[i]
28          ? (s[i] = a[i])
29          : e(a[i]) && e(s[i]) && Object.keys(a[i]).length > 0 && t(s[i], a[i]);
30      });
31  }
32  const s = {
33    body: {},
34    addEventListener() {},
35    removeEventListener() {},
36    activeElement: { blur() {}, nodeName: "" },
37    querySelector: () => null,
38    querySelectorAll: () => [],
39    getElementById: () => null,
40    createEvent: () => ({ initEvent() {} }),
41    createElement: () => ({
42      children: [],
43      childNodes: [],
44      style: {},
45      setAttribute() {},
46      getElementsByTagName: () => [],
47    }),
48    createElementNS: () => ({}),
49    importNode: () => null,
50    location: {
51      hash: "",
52      host: "",
53      hostname: "",
54      href: "",
55      origin: "",
56      pathname: "",
57      protocol: "",
58      search: "",
59    },
60  };
61  function a() {
62    const e = "undefined" != typeof document ? document : {};
63    return t(e, s), e;
64  }
65  const i = {
66    document: s,
67    navigator: { userAgent: "" },
68    location: {
69      hash: "",
70      host: "",
71      hostname: "",
72      href: "",
73      origin: "",
74      pathname: "",
75      protocol: "",
76      search: "",
77    },
78    history: { replaceState() {}, pushState() {}, go() {}, back() {} },
79    CustomEvent: function () {
80      return this;
81    },
82    addEventListener() {},
83    removeEventListener() {},
84    getComputedStyle: () => ({ getPropertyValue: () => "" }),
85    Image() {},
86    Date() {},
87    screen: {},
88    setTimeout() {},
89    clearTimeout() {},
90    matchMedia: () => ({}),
91    requestAnimationFrame: (e) =>
92      "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0),
93    cancelAnimationFrame(e) {
94      "undefined" != typeof setTimeout && clearTimeout(e);
95    },
96  };
97  function r() {
98    const e = "undefined" != typeof window ? window : {};
99    return t(e, i), e;
100  }
101  function n(e, t) {
102    return void 0 === t && (t = 0), setTimeout(e, t);
103  }
104  function l() {
105    return Date.now();
106  }
107  function o(e, t) {
108    void 0 === t && (t = "x");
109    const s = r();
110    let a, i, n;
111    const l = (function (e) {
112      const t = r();
113      let s;
114      return (
115        t.getComputedStyle && (s = t.getComputedStyle(e, null)),
116        !s && e.currentStyle && (s = e.currentStyle),
117        s || (s = e.style),
118        s
119      );
120    })(e);
121    return (
122      s.WebKitCSSMatrix
123        ? ((i = l.transform || l.webkitTransform),
124          i.split(",").length > 6 &&
125            (i = i
126              .split(", ")
127              .map((e) => e.replace(",", "."))
128              .join(", ")),
129          (n = new s.WebKitCSSMatrix("none" === i ? "" : i)))
130        : ((n =
131            l.MozTransform ||
132            l.OTransform ||
133            l.MsTransform ||
134            l.msTransform ||
135            l.transform ||
136            l
137              .getPropertyValue("transform")
138              .replace("translate(", "matrix(1, 0, 0, 1,")),
139          (a = n.toString().split(","))),
140      "x" === t &&
141        (i = s.WebKitCSSMatrix
142          ? n.m41
143          : 16 === a.length
144          ? parseFloat(a[12])
145          : parseFloat(a[4])),
146      "y" === t &&
147        (i = s.WebKitCSSMatrix
148          ? n.m42
149          : 16 === a.length
150          ? parseFloat(a[13])
151          : parseFloat(a[5])),
152      i || 0
153    );
154  }
155  function d(e) {
156    return (
157      "object" == typeof e &&
158      null !== e &&
159      e.constructor &&
160      "Object" === Object.prototype.toString.call(e).slice(8, -1)
161    );
162  }
163  function c() {
164    const e = Object(arguments.length <= 0 ? void 0 : arguments[0]),
165      t = ["__proto__", "constructor", "prototype"];
166    for (let a = 1; a < arguments.length; a += 1) {
167      const i = a < 0 || arguments.length <= a ? void 0 : arguments[a];
168      if (
169        null != i &&
170        ((s = i),
171        !("undefined" != typeof window && void 0 !== window.HTMLElement
172          ? s instanceof HTMLElement
173          : s && (1 === s.nodeType || 11 === s.nodeType)))
174      ) {
175        const s = Object.keys(Object(i)).filter((e) => t.indexOf(e) < 0);
176        for (let t = 0, a = s.length; t < a; t += 1) {
177          const a = s[t],
178            r = Object.getOwnPropertyDescriptor(i, a);
179          void 0 !== r &&
180            r.enumerable &&
181            (d(e[a]) && d(i[a])
182              ? i[a].__swiper__
183                ? (e[a] = i[a])
184                : c(e[a], i[a])
185              : !d(e[a]) && d(i[a])
186              ? ((e[a] = {}), i[a].__swiper__ ? (e[a] = i[a]) : c(e[a], i[a]))
187              : (e[a] = i[a]));
188        }
189      }
190    }
191    var s;
192    return e;
193  }
194  function p(e, t, s) {
195    e.style.setProperty(t, s);
196  }
197  function u(e) {
198    let { swiper: t, targetPosition: s, side: a } = e;
199    const i = r(),
200      n = -t.translate;
201    let l,
202      o = null;
203    const d = t.params.speed;
204    (t.wrapperEl.style.scrollSnapType = "none"),
205      i.cancelAnimationFrame(t.cssModeFrameID);
206    const c = s > n ? "next" : "prev",
207      p = (e, t) => ("next" === c && e >= t) || ("prev" === c && e <= t),
208      u = () => {
209        (l = new Date().getTime()), null === o && (o = l);
210        const e = Math.max(Math.min((l - o) / d, 1), 0),
211          r = 0.5 - Math.cos(e * Math.PI) / 2;
212        let c = n + r * (s - n);
213        if ((p(c, s) && (c = s), t.wrapperEl.scrollTo({ [a]: c }), p(c, s)))
214          return (
215            (t.wrapperEl.style.overflow = "hidden"),
216            (t.wrapperEl.style.scrollSnapType = ""),
217            setTimeout(() => {
218              (t.wrapperEl.style.overflow = ""),
219                t.wrapperEl.scrollTo({ [a]: c });
220            }),
221            void i.cancelAnimationFrame(t.cssModeFrameID)
222          );
223        t.cssModeFrameID = i.requestAnimationFrame(u);
224      };
225    u();
226  }
227  function m(e) {
228    return (
229      e.querySelector(".swiper-slide-transform") ||
230      (e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform")) ||
231      e
232    );
233  }
234  function h(e, t) {
235    return (
236      void 0 === t && (t = ""), [...e.children].filter((e) => e.matches(t))
237    );
238  }
239  function f(e, t) {
240    void 0 === t && (t = []);
241    const s = document.createElement(e);
242    return s.classList.add(...(Array.isArray(t) ? t : [t])), s;
243  }
244  function g(e) {
245    const t = r(),
246      s = a(),
247      i = e.getBoundingClientRect(),
248      n = s.body,
249      l = e.clientTop || n.clientTop || 0,
250      o = e.clientLeft || n.clientLeft || 0,
251      d = e === t ? t.scrollY : e.scrollTop,
252      c = e === t ? t.scrollX : e.scrollLeft;
253    return { top: i.top + d - l, left: i.left + c - o };
254  }
255  function v(e, t) {
256    return r().getComputedStyle(e, null).getPropertyValue(t);
257  }
258  function w(e) {
259    let t,
260      s = e;
261    if (s) {
262      for (t = 0; null !== (s = s.previousSibling); )
263        1 === s.nodeType && (t += 1);
264      return t;
265    }
266  }
267  function b(e, t) {
268    const s = [];
269    let a = e.parentElement;
270    for (; a; )
271      t ? a.matches(t) && s.push(a) : s.push(a), (a = a.parentElement);
272    return s;
273  }
274  function y(e, t) {
275    t &&
276      e.addEventListener("transitionend", function s(a) {
277        a.target === e &&
278          (t.call(e, a), e.removeEventListener("transitionend", s));
279      });
280  }
281  function E(e, t, s) {
282    const a = r();
283    return s
284      ? e["width" === t ? "offsetWidth" : "offsetHeight"] +
285          parseFloat(
286            a
287              .getComputedStyle(e, null)
288              .getPropertyValue("width" === t ? "margin-right" : "margin-top")
289          ) +
290          parseFloat(
291            a
292              .getComputedStyle(e, null)
293              .getPropertyValue("width" === t ? "margin-left" : "margin-bottom")
294          )
295      : e.offsetWidth;
296  }
297  let x, S, T;
298  function M() {
299    return (
300      x ||
301        (x = (function () {
302          const e = r(),
303            t = a();
304          return {
305            smoothScroll:
306              t.documentElement &&
307              t.documentElement.style &&
308              "scrollBehavior" in t.documentElement.style,
309            touch: !!(
310              "ontouchstart" in e ||
311              (e.DocumentTouch && t instanceof e.DocumentTouch)
312            ),
313          };
314        })()),
315      x
316    );
317  }
318  function C(e) {
319    return (
320      void 0 === e && (e = {}),
321      S ||
322        (S = (function (e) {
323          let { userAgent: t } = void 0 === e ? {} : e;
324          const s = M(),
325            a = r(),
326            i = a.navigator.platform,
327            n = t || a.navigator.userAgent,
328            l = { ios: !1, android: !1 },
329            o = a.screen.width,
330            d = a.screen.height,
331            c = n.match(/(Android);?[\s\/]+([\d.]+)?/);
332          let p = n.match(/(iPad).*OS\s([\d_]+)/);
333          const u = n.match(/(iPod)(.*OS\s([\d_]+))?/),
334            m = !p && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
335            h = "Win32" === i;
336          let f = "MacIntel" === i;
337          return (
338            !p &&
339              f &&
340              s.touch &&
341              [
342                "1024x1366",
343                "1366x1024",
344                "834x1194",
345                "1194x834",
346                "834x1112",
347                "1112x834",
348                "768x1024",
349                "1024x768",
350                "820x1180",
351                "1180x820",
352                "810x1080",
353                "1080x810",
354              ].indexOf(`${o}x${d}`) >= 0 &&
355              ((p = n.match(/(Version)\/([\d.]+)/)),
356              p || (p = [0, 1, "13_0_0"]),
357              (f = !1)),
358            c && !h && ((l.os = "android"), (l.android = !0)),
359            (p || m || u) && ((l.os = "ios"), (l.ios = !0)),
360            l
361          );
362        })(e)),
363      S
364    );
365  }
366  function P() {
367    return (
368      T ||
369        (T = (function () {
370          const e = r();
371          let t = !1;
372          function s() {
373            const t = e.navigator.userAgent.toLowerCase();
374            return (
375              t.indexOf("safari") >= 0 &&
376              t.indexOf("chrome") < 0 &&
377              t.indexOf("android") < 0
378            );
379          }
380          if (s()) {
381            const s = String(e.navigator.userAgent);
382            if (s.includes("Version/")) {
383              const [e, a] = s
384                .split("Version/")[1]
385                .split(" ")[0]
386                .split(".")
387                .map((e) => Number(e));
388              t = e < 16 || (16 === e && a < 2);
389            }
390          }
391          return {
392            isSafari: t || s(),
393            needPerspectiveFix: t,
394            isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(
395              e.navigator.userAgent
396            ),
397          };
398        })()),
399      T
400    );
401  }
402  var L = {
403    on(e, t, s) {
404      const a = this;
405      if (!a.eventsListeners || a.destroyed) return a;
406      if ("function" != typeof t) return a;
407      const i = s ? "unshift" : "push";
408      return (
409        e.split(" ").forEach((e) => {
410          a.eventsListeners[e] || (a.eventsListeners[e] = []),
411            a.eventsListeners[e][i](t);
412        }),
413        a
414      );
415    },
416    once(e, t, s) {
417      const a = this;
418      if (!a.eventsListeners || a.destroyed) return a;
419      if ("function" != typeof t) return a;
420      function i() {
421        a.off(e, i), i.__emitterProxy && delete i.__emitterProxy;
422        for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++)
423          r[n] = arguments[n];
424        t.apply(a, r);
425      }
426      return (i.__emitterProxy = t), a.on(e, i, s);
427    },
428    onAny(e, t) {
429      const s = this;
430      if (!s.eventsListeners || s.destroyed) return s;
431      if ("function" != typeof e) return s;
432      const a = t ? "unshift" : "push";
433      return (
434        s.eventsAnyListeners.indexOf(e) < 0 && s.eventsAnyListeners[a](e), s
435      );
436    },
437    offAny(e) {
438      const t = this;
439      if (!t.eventsListeners || t.destroyed) return t;
440      if (!t.eventsAnyListeners) return t;
441      const s = t.eventsAnyListeners.indexOf(e);
442      return s >= 0 && t.eventsAnyListeners.splice(s, 1), t;
443    },
444    off(e, t) {
445      const s = this;
446      return !s.eventsListeners || s.destroyed
447        ? s
448        : s.eventsListeners
449        ? (e.split(" ").forEach((e) => {
450            void 0 === t
451              ? (s.eventsListeners[e] = [])
452              : s.eventsListeners[e] &&
453                s.eventsListeners[e].forEach((a, i) => {
454                  (a === t || (a.__emitterProxy && a.__emitterProxy === t)) &&
455                    s.eventsListeners[e].splice(i, 1);
456                });
457          }),
458          s)
459        : s;
460    },
461    emit() {
462      const e = this;
463      if (!e.eventsListeners || e.destroyed) return e;
464      if (!e.eventsListeners) return e;
465      let t, s, a;
466      for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++)
467        r[n] = arguments[n];
468      "string" == typeof r[0] || Array.isArray(r[0])
469        ? ((t = r[0]), (s = r.slice(1, r.length)), (a = e))
470        : ((t = r[0].events), (s = r[0].data), (a = r[0].context || e)),
471        s.unshift(a);
472      return (
473        (Array.isArray(t) ? t : t.split(" ")).forEach((t) => {
474          e.eventsAnyListeners &&
475            e.eventsAnyListeners.length &&
476            e.eventsAnyListeners.forEach((e) => {
477              e.apply(a, [t, ...s]);
478            }),
479            e.eventsListeners &&
480              e.eventsListeners[t] &&
481              e.eventsListeners[t].forEach((e) => {
482                e.apply(a, s);
483              });
484        }),
485        e
486      );
487    },
488  };
489  const z = (e, t) => {
490      if (!e || e.destroyed || !e.params) return;
491      const s = t.closest(
492        e.isElement ? "swiper-slide" : `.${e.params.slideClass}`
493      );
494      if (s) {
495        const t = s.querySelector(`.${e.params.lazyPreloaderClass}`);
496        t && t.remove();
497      }
498    },
499    A = (e, t) => {
500      if (!e.slides[t]) return;
501      const s = e.slides[t].querySelector('[loading="lazy"]');
502      s && s.removeAttribute("loading");
503    },
504    $ = (e) => {
505      if (!e || e.destroyed || !e.params) return;
506      let t = e.params.lazyPreloadPrevNext;
507      const s = e.slides.length;
508      if (!s || !t || t < 0) return;
509      t = Math.min(t, s);
510      const a =
511          "auto" === e.params.slidesPerView
512            ? e.slidesPerViewDynamic()
513            : Math.ceil(e.params.slidesPerView),
514        i = e.activeIndex;
515      if (e.params.grid && e.params.grid.rows > 1) {
516        const s = i,
517          r = [s - t];
518        return (
519          r.push(...Array.from({ length: t }).map((e, t) => s + a + t)),
520          void e.slides.forEach((t, s) => {
521            r.includes(t.column) && A(e, s);
522          })
523        );
524      }
525      const r = i + a - 1;
526      if (e.params.rewind || e.params.loop)
527        for (let a = i - t; a <= r + t; a += 1) {
528          const t = ((a % s) + s) % s;
529          (t < i || t > r) && A(e, t);
530        }
531      else
532        for (let a = Math.max(i - t, 0); a <= Math.min(r + t, s - 1); a += 1)
533          a !== i && (a > r || a < i) && A(e, a);
534    };
535  var I = {
536    updateSize: function () {
537      const e = this;
538      let t, s;
539      const a = e.el;
540      (t =
541        void 0 !== e.params.width && null !== e.params.width
542          ? e.params.width
543          : a.clientWidth),
544        (s =
545          void 0 !== e.params.height && null !== e.params.height
546            ? e.params.height
547            : a.clientHeight),
548        (0 === t && e.isHorizontal()) ||
549          (0 === s && e.isVertical()) ||
550          ((t =
551            t -
552            parseInt(v(a, "padding-left") || 0, 10) -
553            parseInt(v(a, "padding-right") || 0, 10)),
554          (s =
555            s -
556            parseInt(v(a, "padding-top") || 0, 10) -
557            parseInt(v(a, "padding-bottom") || 0, 10)),
558          Number.isNaN(t) && (t = 0),
559          Number.isNaN(s) && (s = 0),
560          Object.assign(e, {
561            width: t,
562            height: s,
563            size: e.isHorizontal() ? t : s,
564          }));
565    },
566    updateSlides: function () {
567      const e = this;
568      function t(t) {
569        return e.isHorizontal()
570          ? t
571          : {
572              width: "height",
573              "margin-top": "margin-left",
574              "margin-bottom ": "margin-right",
575              "margin-left": "margin-top",
576              "margin-right": "margin-bottom",
577              "padding-left": "padding-top",
578              "padding-right": "padding-bottom",
579              marginRight: "marginBottom",
580            }[t];
581      }
582      function s(e, s) {
583        return parseFloat(e.getPropertyValue(t(s)) || 0);
584      }
585      const a = e.params,
586        {
587          wrapperEl: i,
588          slidesEl: r,
589          size: n,
590          rtlTranslate: l,
591          wrongRTL: o,
592        } = e,
593        d = e.virtual && a.virtual.enabled,
594        c = d ? e.virtual.slides.length : e.slides.length,
595        u = h(r, `.${e.params.slideClass}, swiper-slide`),
596        m = d ? e.virtual.slides.length : u.length;
597      let f = [];
598      const g = [],
599        w = [];
600      let b = a.slidesOffsetBefore;
601      "function" == typeof b && (b = a.slidesOffsetBefore.call(e));
602      let y = a.slidesOffsetAfter;
603      "function" == typeof y && (y = a.slidesOffsetAfter.call(e));
604      const x = e.snapGrid.length,
605        S = e.slidesGrid.length;
606      let T = a.spaceBetween,
607        M = -b,
608        C = 0,
609        P = 0;
610      if (void 0 === n) return;
611      "string" == typeof T && T.indexOf("%") >= 0
612        ? (T = (parseFloat(T.replace("%", "")) / 100) * n)
613        : "string" == typeof T && (T = parseFloat(T)),
614        (e.virtualSize = -T),
615        u.forEach((e) => {
616          l ? (e.style.marginLeft = "") : (e.style.marginRight = ""),
617            (e.style.marginBottom = ""),
618            (e.style.marginTop = "");
619        }),
620        a.centeredSlides &&
621          a.cssMode &&
622          (p(i, "--swiper-centered-offset-before", ""),
623          p(i, "--swiper-centered-offset-after", ""));
624      const L = a.grid && a.grid.rows > 1 && e.grid;
625      let z;
626      L && e.grid.initSlides(m);
627      const A =
628        "auto" === a.slidesPerView &&
629        a.breakpoints &&
630        Object.keys(a.breakpoints).filter(
631          (e) => void 0 !== a.breakpoints[e].slidesPerView
632        ).length > 0;
633      for (let i = 0; i < m; i += 1) {
634        let r;
635        if (
636          ((z = 0),
637          u[i] && (r = u[i]),
638          L && e.grid.updateSlide(i, r, m, t),
639          !u[i] || "none" !== v(r, "display"))
640        ) {
641          if ("auto" === a.slidesPerView) {
642            A && (u[i].style[t("width")] = "");
643            const n = getComputedStyle(r),
644              l = r.style.transform,
645              o = r.style.webkitTransform;
646            if (
647              (l && (r.style.transform = "none"),
648              o && (r.style.webkitTransform = "none"),
649              a.roundLengths)
650            )
651              z = e.isHorizontal() ? E(r, "width", !0) : E(r, "height", !0);
652            else {
653              const e = s(n, "width"),
654                t = s(n, "padding-left"),
655                a = s(n, "padding-right"),
656                i = s(n, "margin-left"),
657                l = s(n, "margin-right"),
658                o = n.getPropertyValue("box-sizing");
659              if (o && "border-box" === o) z = e + i + l;
660              else {
661                const { clientWidth: s, offsetWidth: n } = r;
662                z = e + t + a + i + l + (n - s);
663              }
664            }
665            l && (r.style.transform = l),
666              o && (r.style.webkitTransform = o),
667              a.roundLengths && (z = Math.floor(z));
668          } else
669            (z = (n - (a.slidesPerView - 1) * T) / a.slidesPerView),
670              a.roundLengths && (z = Math.floor(z)),
671              u[i] && (u[i].style[t("width")] = `${z}px`);
672          u[i] && (u[i].swiperSlideSize = z),
673            w.push(z),
674            a.centeredSlides
675              ? ((M = M + z / 2 + C / 2 + T),
676                0 === C && 0 !== i && (M = M - n / 2 - T),
677                0 === i && (M = M - n / 2 - T),
678                Math.abs(M) < 0.001 && (M = 0),
679                a.roundLengths && (M = Math.floor(M)),
680                P % a.slidesPerGroup == 0 && f.push(M),
681                g.push(M))
682              : (a.roundLengths && (M = Math.floor(M)),
683                (P - Math.min(e.params.slidesPerGroupSkip, P)) %
684                  e.params.slidesPerGroup ==
685                  0 && f.push(M),
686                g.push(M),
687                (M = M + z + T)),
688            (e.virtualSize += z + T),
689            (C = z),
690            (P += 1);
691        }
692      }
693      if (
694        ((e.virtualSize = Math.max(e.virtualSize, n) + y),
695        l &&
696          o &&
697          ("slide" === a.effect || "coverflow" === a.effect) &&
698          (i.style.width = `${e.virtualSize + T}px`),
699        a.setWrapperSize && (i.style[t("width")] = `${e.virtualSize + T}px`),
700        L && e.grid.updateWrapperSize(z, f, t),
701        !a.centeredSlides)
702      ) {
703        const t = [];
704        for (let s = 0; s < f.length; s += 1) {
705          let i = f[s];
706          a.roundLengths && (i = Math.floor(i)),
707            f[s] <= e.virtualSize - n && t.push(i);
708        }
709        (f = t),
710          Math.floor(e.virtualSize - n) - Math.floor(f[f.length - 1]) > 1 &&
711            f.push(e.virtualSize - n);
712      }
713      if (d && a.loop) {
714        const t = w[0] + T;
715        if (a.slidesPerGroup > 1) {
716          const s = Math.ceil(
717              (e.virtual.slidesBefore + e.virtual.slidesAfter) /
718                a.slidesPerGroup
719            ),
720            i = t * a.slidesPerGroup;
721          for (let e = 0; e < s; e += 1) f.push(f[f.length - 1] + i);
722        }
723        for (
724          let s = 0;
725          s < e.virtual.slidesBefore + e.virtual.slidesAfter;
726          s += 1
727        )
728          1 === a.slidesPerGroup && f.push(f[f.length - 1] + t),
729            g.push(g[g.length - 1] + t),
730            (e.virtualSize += t);
731      }
732      if ((0 === f.length && (f = [0]), 0 !== T)) {
733        const s = e.isHorizontal() && l ? "marginLeft" : t("marginRight");
734        u.filter(
735          (e, t) => !(a.cssMode && !a.loop) || t !== u.length - 1
736        ).forEach((e) => {
737          e.style[s] = `${T}px`;
738        });
739      }
740      if (a.centeredSlides && a.centeredSlidesBounds) {
741        let e = 0;
742        w.forEach((t) => {
743          e += t + (T || 0);
744        }),
745          (e -= T);
746        const t = e - n;
747        f = f.map((e) => (e <= 0 ? -b : e > t ? t + y : e));
748      }
749      if (a.centerInsufficientSlides) {
750        let e = 0;
751        if (
752          (w.forEach((t) => {
753            e += t + (T || 0);
754          }),
755          (e -= T),
756          e < n)
757        ) {
758          const t = (n - e) / 2;
759          f.forEach((e, s) => {
760            f[s] = e - t;
761          }),
762            g.forEach((e, s) => {
763              g[s] = e + t;
764            });
765        }
766      }
767      if (
768        (Object.assign(e, {
769          slides: u,
770          snapGrid: f,
771          slidesGrid: g,
772          slidesSizesGrid: w,
773        }),
774        a.centeredSlides && a.cssMode && !a.centeredSlidesBounds)
775      ) {
776        p(i, "--swiper-centered-offset-before", -f[0] + "px"),
777          p(
778            i,
779            "--swiper-centered-offset-after",
780            e.size / 2 - w[w.length - 1] / 2 + "px"
781          );
782        const t = -e.snapGrid[0],
783          s = -e.slidesGrid[0];
784        (e.snapGrid = e.snapGrid.map((e) => e + t)),
785          (e.slidesGrid = e.slidesGrid.map((e) => e + s));
786      }
787      if (
788        (m !== c && e.emit("slidesLengthChange"),
789        f.length !== x &&
790          (e.params.watchOverflow && e.checkOverflow(),
791          e.emit("snapGridLengthChange")),
792        g.length !== S && e.emit("slidesGridLengthChange"),
793        a.watchSlidesProgress && e.updateSlidesOffset(),
794        !(d || a.cssMode || ("slide" !== a.effect && "fade" !== a.effect)))
795      ) {
796        const t = `${a.containerModifierClass}backface-hidden`,
797          s = e.el.classList.contains(t);
798        m <= a.maxBackfaceHiddenSlides
799          ? s || e.el.classList.add(t)
800          : s && e.el.classList.remove(t);
801      }
802    },
803    updateAutoHeight: function (e) {
804      const t = this,
805        s = [],
806        a = t.virtual && t.params.virtual.enabled;
807      let i,
808        r = 0;
809      "number" == typeof e
810        ? t.setTransition(e)
811        : !0 === e && t.setTransition(t.params.speed);
812      const n = (e) => (a ? t.slides[t.getSlideIndexByData(e)] : t.slides[e]);
813      if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1)
814        if (t.params.centeredSlides)
815          (t.visibleSlides || []).forEach((e) => {
816            s.push(e);
817          });
818        else
819          for (i = 0; i < Math.ceil(t.params.slidesPerView); i += 1) {
820            const e = t.activeIndex + i;
821            if (e > t.slides.length && !a) break;
822            s.push(n(e));
823          }
824      else s.push(n(t.activeIndex));
825      for (i = 0; i < s.length; i += 1)
826        if (void 0 !== s[i]) {
827          const e = s[i].offsetHeight;
828          r = e > r ? e : r;
829        }
830      (r || 0 === r) && (t.wrapperEl.style.height = `${r}px`);
831    },
832    updateSlidesOffset: function () {
833      const e = this,
834        t = e.slides,
835        s = e.isElement
836          ? e.isHorizontal()
837            ? e.wrapperEl.offsetLeft
838            : e.wrapperEl.offsetTop
839          : 0;
840      for (let a = 0; a < t.length; a += 1)
841        t[a].swiperSlideOffset =
842          (e.isHorizontal() ? t[a].offsetLeft : t[a].offsetTop) -
843          s -
844          e.cssOverflowAdjustment();
845    },
846    updateSlidesProgress: function (e) {
847      void 0 === e && (e = (this && this.translate) || 0);
848      const t = this,
849        s = t.params,
850        { slides: a, rtlTranslate: i, snapGrid: r } = t;
851      if (0 === a.length) return;
852      void 0 === a[0].swiperSlideOffset && t.updateSlidesOffset();
853      let n = -e;
854      i && (n = e),
855        a.forEach((e) => {
856          e.classList.remove(s.slideVisibleClass);
857        }),
858        (t.visibleSlidesIndexes = []),
859        (t.visibleSlides = []);
860      let l = s.spaceBetween;
861      "string" == typeof l && l.indexOf("%") >= 0
862        ? (l = (parseFloat(l.replace("%", "")) / 100) * t.size)
863        : "string" == typeof l && (l = parseFloat(l));
864      for (let e = 0; e < a.length; e += 1) {
865        const o = a[e];
866        let d = o.swiperSlideOffset;
867        s.cssMode && s.centeredSlides && (d -= a[0].swiperSlideOffset);
868        const c =
869            (n + (s.centeredSlides ? t.minTranslate() : 0) - d) /
870            (o.swiperSlideSize + l),
871          p =
872            (n - r[0] + (s.centeredSlides ? t.minTranslate() : 0) - d) /
873            (o.swiperSlideSize + l),
874          u = -(n - d),
875          m = u + t.slidesSizesGrid[e];
876        ((u >= 0 && u < t.size - 1) ||
877          (m > 1 && m <= t.size) ||
878          (u <= 0 && m >= t.size)) &&
879          (t.visibleSlides.push(o),
880          t.visibleSlidesIndexes.push(e),
881          a[e].classList.add(s.slideVisibleClass)),
882          (o.progress = i ? -c : c),
883          (o.originalProgress = i ? -p : p);
884      }
885    },
886    updateProgress: function (e) {
887      const t = this;
888      if (void 0 === e) {
889        const s = t.rtlTranslate ? -1 : 1;
890        e = (t && t.translate && t.translate * s) || 0;
891      }
892      const s = t.params,
893        a = t.maxTranslate() - t.minTranslate();
894      let { progress: i, isBeginning: r, isEnd: n, progressLoop: l } = t;
895      const o = r,
896        d = n;
897      if (0 === a) (i = 0), (r = !0), (n = !0);
898      else {
899        i = (e - t.minTranslate()) / a;
900        const s = Math.abs(e - t.minTranslate()) < 1,
901          l = Math.abs(e - t.maxTranslate()) < 1;
902        (r = s || i <= 0), (n = l || i >= 1), s && (i = 0), l && (i = 1);
903      }
904      if (s.loop) {
905        const s = t.getSlideIndexByData(0),
906          a = t.getSlideIndexByData(t.slides.length - 1),
907          i = t.slidesGrid[s],
908          r = t.slidesGrid[a],
909          n = t.slidesGrid[t.slidesGrid.length - 1],
910          o = Math.abs(e);
911        (l = o >= i ? (o - i) / n : (o + n - r) / n), l > 1 && (l -= 1);
912      }
913      Object.assign(t, {
914        progress: i,
915        progressLoop: l,
916        isBeginning: r,
917        isEnd: n,
918      }),
919        (s.watchSlidesProgress || (s.centeredSlides && s.autoHeight)) &&
920          t.updateSlidesProgress(e),
921        r && !o && t.emit("reachBeginning toEdge"),
922        n && !d && t.emit("reachEnd toEdge"),
923        ((o && !r) || (d && !n)) && t.emit("fromEdge"),
924        t.emit("progress", i);
925    },
926    updateSlidesClasses: function () {
927      const e = this,
928        { slides: t, params: s, slidesEl: a, activeIndex: i } = e,
929        r = e.virtual && s.virtual.enabled,
930        n = (e) => h(a, `.${s.slideClass}${e}, swiper-slide${e}`)[0];
931      let l;
932      if (
933        (t.forEach((e) => {
934          e.classList.remove(
935            s.slideActiveClass,
936            s.slideNextClass,
937            s.slidePrevClass
938          );
939        }),
940        r)
941      )
942        if (s.loop) {
943          let t = i - e.virtual.slidesBefore;
944          t < 0 && (t = e.virtual.slides.length + t),
945            t >= e.virtual.slides.length && (t -= e.virtual.slides.length),
946            (l = n(`[data-swiper-slide-index="${t}"]`));
947        } else l = n(`[data-swiper-slide-index="${i}"]`);
948      else l = t[i];
949      if (l) {
950        l.classList.add(s.slideActiveClass);
951        let e = (function (e, t) {
952          const s = [];
953          for (; e.nextElementSibling; ) {
954            const a = e.nextElementSibling;
955            t ? a.matches(t) && s.push(a) : s.push(a), (e = a);
956          }
957          return s;
958        })(l, `.${s.slideClass}, swiper-slide`)[0];
959        s.loop && !e && (e = t[0]), e && e.classList.add(s.slideNextClass);
960        let a = (function (e, t) {
961          const s = [];
962          for (; e.previousElementSibling; ) {
963            const a = e.previousElementSibling;
964            t ? a.matches(t) && s.push(a) : s.push(a), (e = a);
965          }
966          return s;
967        })(l, `.${s.slideClass}, swiper-slide`)[0];
968        s.loop && 0 === !a && (a = t[t.length - 1]),
969          a && a.classList.add(s.slidePrevClass);
970      }
971      e.emitSlidesClasses();
972    },
973    updateActiveIndex: function (e) {
974      const t = this,
975        s = t.rtlTranslate ? t.translate : -t.translate,
976        {
977          snapGrid: a,
978          params: i,
979          activeIndex: r,
980          realIndex: n,
981          snapIndex: l,
982        } = t;
983      let o,
984        d = e;
985      const c = (e) => {
986        let s = e - t.virtual.slidesBefore;
987        return (
988          s < 0 && (s = t.virtual.slides.length + s),
989          s >= t.virtual.slides.length && (s -= t.virtual.slides.length),
990          s
991        );
992      };
993      if (
994        (void 0 === d &&
995          (d = (function (e) {
996            const { slidesGrid: t, params: s } = e,
997              a = e.rtlTranslate ? e.translate : -e.translate;
998            let i;
999            for (let e = 0; e < t.length; e += 1)
1000              void 0 !== t[e + 1]
1001                ? a >= t[e] && a < t[e + 1] - (t[e + 1] - t[e]) / 2
1002                  ? (i = e)
1003                  : a >= t[e] && a < t[e + 1] && (i = e + 1)
1004                : a >= t[e] && (i = e);
1005            return (
1006              s.normalizeSlideIndex && (i < 0 || void 0 === i) && (i = 0), i
1007            );
1008          })(t)),
1009        a.indexOf(s) >= 0)
1010      )
1011        o = a.indexOf(s);
1012      else {
1013        const e = Math.min(i.slidesPerGroupSkip, d);
1014        o = e + Math.floor((d - e) / i.slidesPerGroup);
1015      }
1016      if ((o >= a.length && (o = a.length - 1), d === r))
1017        return (
1018          o !== l && ((t.snapIndex = o), t.emit("snapIndexChange")),
1019          void (
1020            t.params.loop &&
1021            t.virtual &&
1022            t.params.virtual.enabled &&
1023            (t.realIndex = c(d))
1024          )
1025        );
1026      let p;
1027      (p =
1028        t.virtual && i.virtual.enabled && i.loop
1029          ? c(d)
1030          : t.slides[d]
1031          ? parseInt(
1032              t.slides[d].getAttribute("data-swiper-slide-index") || d,
1033              10
1034            )
1035          : d),
1036        Object.assign(t, {
1037          previousSnapIndex: l,
1038          snapIndex: o,
1039          previousRealIndex: n,
1040          realIndex: p,
1041          previousIndex: r,
1042          activeIndex: d,
1043        }),
1044        t.initialized && $(t),
1045        t.emit("activeIndexChange"),
1046        t.emit("snapIndexChange"),
1047        n !== p && t.emit("realIndexChange"),
1048        (t.initialized || t.params.runCallbacksOnInit) && t.emit("slideChange");
1049    },
1050    updateClickedSlide: function (e) {
1051      const t = this,
1052        s = t.params,
1053        a = e.closest(`.${s.slideClass}, swiper-slide`);
1054      let i,
1055        r = !1;
1056      if (a)
1057        for (let e = 0; e < t.slides.length; e += 1)
1058          if (t.slides[e] === a) {
1059            (r = !0), (i = e);
1060            break;
1061          }
1062      if (!a || !r)
1063        return (t.clickedSlide = void 0), void (t.clickedIndex = void 0);
1064      (t.clickedSlide = a),
1065        t.virtual && t.params.virtual.enabled
1066          ? (t.clickedIndex = parseInt(
1067              a.getAttribute("data-swiper-slide-index"),
1068              10
1069            ))
1070          : (t.clickedIndex = i),
1071        s.slideToClickedSlide &&
1072          void 0 !== t.clickedIndex &&
1073          t.clickedIndex !== t.activeIndex &&
1074          t.slideToClickedSlide();
1075    },
1076  };
1077  var k = {
1078    getTranslate: function (e) {
1079      void 0 === e && (e = this.isHorizontal() ? "x" : "y");
1080      const { params: t, rtlTranslate: s, translate: a, wrapperEl: i } = this;
1081      if (t.virtualTranslate) return s ? -a : a;
1082      if (t.cssMode) return a;
1083      let r = o(i, e);
1084      return (r += this.cssOverflowAdjustment()), s && (r = -r), r || 0;
1085    },
1086    setTranslate: function (e, t) {
1087      const s = this,
1088        { rtlTranslate: a, params: i, wrapperEl: r, progress: n } = s;
1089      let l,
1090        o = 0,
1091        d = 0;
1092      s.isHorizontal() ? (o = a ? -e : e) : (d = e),
1093        i.roundLengths && ((o = Math.floor(o)), (d = Math.floor(d))),
1094        (s.previousTranslate = s.translate),
1095        (s.translate = s.isHorizontal() ? o : d),
1096        i.cssMode
1097          ? (r[s.isHorizontal() ? "scrollLeft" : "scrollTop"] = s.isHorizontal()
1098              ? -o
1099              : -d)
1100          : i.virtualTranslate ||
1101            (s.isHorizontal()
1102              ? (o -= s.cssOverflowAdjustment())
1103              : (d -= s.cssOverflowAdjustment()),
1104            (r.style.transform = `translate3d(${o}px, ${d}px, 0px)`));
1105      const c = s.maxTranslate() - s.minTranslate();
1106      (l = 0 === c ? 0 : (e - s.minTranslate()) / c),
1107        l !== n && s.updateProgress(e),
1108        s.emit("setTranslate", s.translate, t);
1109    },
1110    minTranslate: function () {
1111      return -this.snapGrid[0];
1112    },
1113    maxTranslate: function () {
1114      return -this.snapGrid[this.snapGrid.length - 1];
1115    },
1116    translateTo: function (e, t, s, a, i) {
1117      void 0 === e && (e = 0),
1118        void 0 === t && (t = this.params.speed),
1119        void 0 === s && (s = !0),
1120        void 0 === a && (a = !0);
1121      const r = this,
1122        { params: n, wrapperEl: l } = r;
1123      if (r.animating && n.preventInteractionOnTransition) return !1;
1124      const o = r.minTranslate(),
1125        d = r.maxTranslate();
1126      let c;
1127      if (
1128        ((c = a && e > o ? o : a && e < d ? d : e),
1129        r.updateProgress(c),
1130        n.cssMode)
1131      ) {
1132        const e = r.isHorizontal();
1133        if (0 === t) l[e ? "scrollLeft" : "scrollTop"] = -c;
1134        else {
1135          if (!r.support.smoothScroll)
1136            return (
1137              u({ swiper: r, targetPosition: -c, side: e ? "left" : "top" }), !0
1138            );
1139          l.scrollTo({ [e ? "left" : "top"]: -c, behavior: "smooth" });
1140        }
1141        return !0;
1142      }
1143      return (
1144        0 === t
1145          ? (r.setTransition(0),
1146            r.setTranslate(c),
1147            s &&
1148              (r.emit("beforeTransitionStart", t, i), r.emit("transitionEnd")))
1149          : (r.setTransition(t),
1150            r.setTranslate(c),
1151            s &&
1152              (r.emit("beforeTransitionStart", t, i),
1153              r.emit("transitionStart")),
1154            r.animating ||
1155              ((r.animating = !0),
1156              r.onTranslateToWrapperTransitionEnd ||
1157                (r.onTranslateToWrapperTransitionEnd = function (e) {
1158                  r &&
1159                    !r.destroyed &&
1160                    e.target === this &&
1161                    (r.wrapperEl.removeEventListener(
1162                      "transitionend",
1163                      r.onTranslateToWrapperTransitionEnd
1164                    ),
1165                    (r.onTranslateToWrapperTransitionEnd = null),
1166                    delete r.onTranslateToWrapperTransitionEnd,
1167                    s && r.emit("transitionEnd"));
1168                }),
1169              r.wrapperEl.addEventListener(
1170                "transitionend",
1171                r.onTranslateToWrapperTransitionEnd
1172              ))),
1173        !0
1174      );
1175    },
1176  };
1177  function O(e) {
1178    let { swiper: t, runCallbacks: s, direction: a, step: i } = e;
1179    const { activeIndex: r, previousIndex: n } = t;
1180    let l = a;
1181    if (
1182      (l || (l = r > n ? "next" : r < n ? "prev" : "reset"),
1183      t.emit(`transition${i}`),
1184      s && r !== n)
1185    ) {
1186      if ("reset" === l) return void t.emit(`slideResetTransition${i}`);
1187      t.emit(`slideChangeTransition${i}`),
1188        "next" === l
1189          ? t.emit(`slideNextTransition${i}`)
1190          : t.emit(`slidePrevTransition${i}`);
1191    }
1192  }
1193  var D = {
1194    slideTo: function (e, t, s, a, i) {
1195      void 0 === e && (e = 0),
1196        void 0 === t && (t = this.params.speed),
1197        void 0 === s && (s = !0),
1198        "string" == typeof e && (e = parseInt(e, 10));
1199      const r = this;
1200      let n = e;
1201      n < 0 && (n = 0);
1202      const {
1203        params: l,
1204        snapGrid: o,
1205        slidesGrid: d,
1206        previousIndex: c,
1207        activeIndex: p,
1208        rtlTranslate: m,
1209        wrapperEl: h,
1210        enabled: f,
1211      } = r;
1212      if ((r.animating && l.preventInteractionOnTransition) || (!f && !a && !i))
1213        return !1;
1214      const g = Math.min(r.params.slidesPerGroupSkip, n);
1215      let v = g + Math.floor((n - g) / r.params.slidesPerGroup);
1216      v >= o.length && (v = o.length - 1);
1217      const w = -o[v];
1218      if (l.normalizeSlideIndex)
1219        for (let e = 0; e < d.length; e += 1) {
1220          const t = -Math.floor(100 * w),
1221            s = Math.floor(100 * d[e]),
1222            a = Math.floor(100 * d[e + 1]);
1223          void 0 !== d[e + 1]
1224            ? t >= s && t < a - (a - s) / 2
1225              ? (n = e)
1226              : t >= s && t < a && (n = e + 1)
1227            : t >= s && (n = e);
1228        }
1229      if (r.initialized && n !== p) {
1230        if (
1231          !r.allowSlideNext &&
1232          (m
1233            ? w > r.translate && w > r.minTranslate()
1234            : w < r.translate && w < r.minTranslate())
1235        )
1236          return !1;
1237        if (
1238          !r.allowSlidePrev &&
1239          w > r.translate &&
1240          w > r.maxTranslate() &&
1241          (p || 0) !== n
1242        )
1243          return !1;
1244      }
1245      let b;
1246      if (
1247        (n !== (c || 0) && s && r.emit("beforeSlideChangeStart"),
1248        r.updateProgress(w),
1249        (b = n > p ? "next" : n < p ? "prev" : "reset"),
1250        (m && -w === r.translate) || (!m && w === r.translate))
1251      )
1252        return (
1253          r.updateActiveIndex(n),
1254          l.autoHeight && r.updateAutoHeight(),
1255          r.updateSlidesClasses(),
1256          "slide" !== l.effect && r.setTranslate(w),
1257          "reset" !== b && (r.transitionStart(s, b), r.transitionEnd(s, b)),
1258          !1
1259        );
1260      if (l.cssMode) {
1261        const e = r.isHorizontal(),
1262          s = m ? w : -w;
1263        if (0 === t) {
1264          const t = r.virtual && r.params.virtual.enabled;
1265          t &&
1266            ((r.wrapperEl.style.scrollSnapType = "none"),
1267            (r._immediateVirtual = !0)),
1268            t && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0
1269              ? ((r._cssModeVirtualInitialSet = !0),
1270                requestAnimationFrame(() => {
1271                  h[e ? "scrollLeft" : "scrollTop"] = s;
1272                }))
1273              : (h[e ? "scrollLeft" : "scrollTop"] = s),
1274            t &&
1275              requestAnimationFrame(() => {
1276                (r.wrapperEl.style.scrollSnapType = ""),
1277                  (r._immediateVirtual = !1);
1278              });
1279        } else {
1280          if (!r.support.smoothScroll)
1281            return (
1282              u({ swiper: r, targetPosition: s, side: e ? "left" : "top" }), !0
1283            );
1284          h.scrollTo({ [e ? "left" : "top"]: s, behavior: "smooth" });
1285        }
1286        return !0;
1287      }
1288      return (
1289        r.setTransition(t),
1290        r.setTranslate(w),
1291        r.updateActiveIndex(n),
1292        r.updateSlidesClasses(),
1293        r.emit("beforeTransitionStart", t, a),
1294        r.transitionStart(s, b),
1295        0 === t
1296          ? r.transitionEnd(s, b)
1297          : r.animating ||
1298            ((r.animating = !0),
1299            r.onSlideToWrapperTransitionEnd ||
1300              (r.onSlideToWrapperTransitionEnd = function (e) {
1301                r &&
1302                  !r.destroyed &&
1303                  e.target === this &&
1304                  (r.wrapperEl.removeEventListener(
1305                    "transitionend",
1306                    r.onSlideToWrapperTransitionEnd
1307                  ),
1308                  (r.onSlideToWrapperTransitionEnd = null),
1309                  delete r.onSlideToWrapperTransitionEnd,
1310                  r.transitionEnd(s, b));
1311              }),
1312            r.wrapperEl.addEventListener(
1313              "transitionend",
1314              r.onSlideToWrapperTransitionEnd
1315            )),
1316        !0
1317      );
1318    },
1319    slideToLoop: function (e, t, s, a) {
1320      if (
1321        (void 0 === e && (e = 0),
1322        void 0 === t && (t = this.params.speed),
1323        void 0 === s && (s = !0),
1324        "string" == typeof e)
1325      ) {
1326        e = parseInt(e, 10);
1327      }
1328      const i = this;
1329      let r = e;
1330      return (
1331        i.params.loop &&
1332          (i.virtual && i.params.virtual.enabled
1333            ? (r += i.virtual.slidesBefore)
1334            : (r = i.getSlideIndexByData(r))),
1335        i.slideTo(r, t, s, a)
1336      );
1337    },
1338    slideNext: function (e, t, s) {
1339      void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
1340      const a = this,
1341        { enabled: i, params: r, animating: n } = a;
1342      if (!i) return a;
1343      let l = r.slidesPerGroup;
1344      "auto" === r.slidesPerView &&
1345        1 === r.slidesPerGroup &&
1346        r.slidesPerGroupAuto &&
1347        (l = Math.max(a.slidesPerViewDynamic("current", !0), 1));
1348      const o = a.activeIndex < r.slidesPerGroupSkip ? 1 : l,
1349        d = a.virtual && r.virtual.enabled;
1350      if (r.loop) {
1351        if (n && !d && r.loopPreventsSliding) return !1;
1352        a.loopFix({ direction: "next" }),
1353          (a._clientLeft = a.wrapperEl.clientLeft);
1354      }
1355      return r.rewind && a.isEnd
1356        ? a.slideTo(0, e, t, s)
1357        : a.slideTo(a.activeIndex + o, e, t, s);
1358    },
1359    slidePrev: function (e, t, s) {
1360      void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
1361      const a = this,
1362        {
1363          params: i,
1364          snapGrid: r,
1365          slidesGrid: n,
1366          rtlTranslate: l,
1367          enabled: o,
1368          animating: d,
1369        } = a;
1370      if (!o) return a;
1371      const c = a.virtual && i.virtual.enabled;
1372      if (i.loop) {
1373        if (d && !c && i.loopPreventsSliding) return !1;
1374        a.loopFix({ direction: "prev" }),
1375          (a._clientLeft = a.wrapperEl.clientLeft);
1376      }
1377      function p(e) {
1378        return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
1379      }
1380      const u = p(l ? a.translate : -a.translate),
1381        m = r.map((e) => p(e));
1382      let h = r[m.indexOf(u) - 1];
1383      if (void 0 === h && i.cssMode) {
1384        let e;
1385        r.forEach((t, s) => {
1386          u >= t && (e = s);
1387        }),
1388          void 0 !== e && (h = r[e > 0 ? e - 1 : e]);
1389      }
1390      let f = 0;
1391      if (
1392        (void 0 !== h &&
1393          ((f = n.indexOf(h)),
1394          f < 0 && (f = a.activeIndex - 1),
1395          "auto" === i.slidesPerView &&
1396            1 === i.slidesPerGroup &&
1397            i.slidesPerGroupAuto &&
1398            ((f = f - a.slidesPerViewDynamic("previous", !0) + 1),
1399            (f = Math.max(f, 0)))),
1400        i.rewind && a.isBeginning)
1401      ) {
1402        const i =
1403          a.params.virtual && a.params.virtual.enabled && a.virtual
1404            ? a.virtual.slides.length - 1
1405            : a.slides.length - 1;
1406        return a.slideTo(i, e, t, s);
1407      }
1408      return a.slideTo(f, e, t, s);
1409    },
1410    slideReset: function (e, t, s) {
1411      return (
1412        void 0 === e && (e = this.params.speed),
1413        void 0 === t && (t = !0),
1414        this.slideTo(this.activeIndex, e, t, s)
1415      );
1416    },
1417    slideToClosest: function (e, t, s, a) {
1418      void 0 === e && (e = this.params.speed),
1419        void 0 === t && (t = !0),
1420        void 0 === a && (a = 0.5);
1421      const i = this;
1422      let r = i.activeIndex;
1423      const n = Math.min(i.params.slidesPerGroupSkip, r),
1424        l = n + Math.floor((r - n) / i.params.slidesPerGroup),
1425        o = i.rtlTranslate ? i.translate : -i.translate;
1426      if (o >= i.snapGrid[l]) {
1427        const e = i.snapGrid[l];
1428        o - e > (i.snapGrid[l + 1] - e) * a && (r += i.params.slidesPerGroup);
1429      } else {
1430        const e = i.snapGrid[l - 1];
1431        o - e <= (i.snapGrid[l] - e) * a && (r -= i.params.slidesPerGroup);
1432      }
1433      return (
1434        (r = Math.max(r, 0)),
1435        (r = Math.min(r, i.slidesGrid.length - 1)),
1436        i.slideTo(r, e, t, s)
1437      );
1438    },
1439    slideToClickedSlide: function () {
1440      const e = this,
1441        { params: t, slidesEl: s } = e,
1442        a =
1443          "auto" === t.slidesPerView
1444            ? e.slidesPerViewDynamic()
1445            : t.slidesPerView;
1446      let i,
1447        r = e.clickedIndex;
1448      const l = e.isElement ? "swiper-slide" : `.${t.slideClass}`;
1449      if (t.loop) {
1450        if (e.animating) return;
1451        (i = parseInt(
1452          e.clickedSlide.getAttribute("data-swiper-slide-index"),
1453          10
1454        )),
1455          t.centeredSlides
1456            ? r < e.loopedSlides - a / 2 ||
1457              r > e.slides.length - e.loopedSlides + a / 2
1458              ? (e.loopFix(),
1459                (r = e.getSlideIndex(
1460                  h(s, `${l}[data-swiper-slide-index="${i}"]`)[0]
1461                )),
1462                n(() => {
1463                  e.slideTo(r);
1464                }))
1465              : e.slideTo(r)
1466            : r > e.slides.length - a
1467            ? (e.loopFix(),
1468              (r = e.getSlideIndex(
1469                h(s, `${l}[data-swiper-slide-index="${i}"]`)[0]
1470              )),
1471              n(() => {
1472                e.slideTo(r);
1473              }))
1474            : e.slideTo(r);
1475      } else e.slideTo(r);
1476    },
1477  };
1478  var G = {
1479    loopCreate: function (e) {
1480      const t = this,
1481        { params: s, slidesEl: a } = t;
1482      if (!s.loop || (t.virtual && t.params.virtual.enabled)) return;
1483      h(a, `.${s.slideClass}, swiper-slide`).forEach((e, t) => {
1484        e.setAttribute("data-swiper-slide-index", t);
1485      }),
1486        t.loopFix({
1487          slideRealIndex: e,
1488          direction: s.centeredSlides ? void 0 : "next",
1489        });
1490    },
1491    loopFix: function (e) {
1492      let {
1493        slideRealIndex: t,
1494        slideTo: s = !0,
1495        direction: a,
1496        setTranslate: i,
1497        activeSlideIndex: r,
1498        byController: n,
1499        byMousewheel: l,
1500      } = void 0 === e ? {} : e;
1501      const o = this;
1502      if (!o.params.loop) return;
1503      o.emit("beforeLoopFix");
1504      const {
1505        slides: d,
1506        allowSlidePrev: c,
1507        allowSlideNext: p,
1508        slidesEl: u,
1509        params: m,
1510      } = o;
1511      if (
1512        ((o.allowSlidePrev = !0),
1513        (o.allowSlideNext = !0),
1514        o.virtual && m.virtual.enabled)
1515      )
1516        return (
1517          s &&
1518            (m.centeredSlides || 0 !== o.snapIndex
1519              ? m.centeredSlides && o.snapIndex < m.slidesPerView
1520                ? o.slideTo(o.virtual.slides.length + o.snapIndex, 0, !1, !0)
1521                : o.snapIndex === o.snapGrid.length - 1 &&
1522                  o.slideTo(o.virtual.slidesBefore, 0, !1, !0)
1523              : o.slideTo(o.virtual.slides.length, 0, !1, !0)),
1524          (o.allowSlidePrev = c),
1525          (o.allowSlideNext = p),
1526          void o.emit("loopFix")
1527        );
1528      const h =
1529        "auto" === m.slidesPerView
1530          ? o.slidesPerViewDynamic()
1531          : Math.ceil(parseFloat(m.slidesPerView, 10));
1532      let f = m.loopedSlides || h;
1533      f % m.slidesPerGroup != 0 &&
1534        (f += m.slidesPerGroup - (f % m.slidesPerGroup)),
1535        (o.loopedSlides = f);
1536      const g = [],
1537        v = [];
1538      let w = o.activeIndex;
1539      void 0 === r
1540        ? (r = o.getSlideIndex(
1541            o.slides.filter((e) => e.classList.contains(m.slideActiveClass))[0]
1542          ))
1543        : (w = r);
1544      const b = "next" === a || !a,
1545        y = "prev" === a || !a;
1546      let E = 0,
1547        x = 0;
1548      if (r < f) {
1549        E = Math.max(f - r, m.slidesPerGroup);
1550        for (let e = 0; e < f - r; e += 1) {
1551          const t = e - Math.floor(e / d.length) * d.length;
1552          g.push(d.length - t - 1);
1553        }
1554      } else if (r > o.slides.length - 2 * f) {
1555        x = Math.max(r - (o.slides.length - 2 * f), m.slidesPerGroup);
1556        for (let e = 0; e < x; e += 1) {
1557          const t = e - Math.floor(e / d.length) * d.length;
1558          v.push(t);
1559        }
1560      }
1561      if (
1562        (y &&
1563          g.forEach((e) => {
1564            (o.slides[e].swiperLoopMoveDOM = !0),
1565              u.prepend(o.slides[e]),
1566              (o.slides[e].swiperLoopMoveDOM = !1);
1567          }),
1568        b &&
1569          v.forEach((e) => {
1570            (o.slides[e].swiperLoopMoveDOM = !0),
1571              u.append(o.slides[e]),
1572              (o.slides[e].swiperLoopMoveDOM = !1);
1573          }),
1574        o.recalcSlides(),
1575        "auto" === m.slidesPerView && o.updateSlides(),
1576        m.watchSlidesProgress && o.updateSlidesOffset(),
1577        s)
1578      )
1579        if (g.length > 0 && y)
1580          if (void 0 === t) {
1581            const e = o.slidesGrid[w],
1582              t = o.slidesGrid[w + E] - e;
1583            l
1584              ? o.setTranslate(o.translate - t)
1585              : (o.slideTo(w + E, 0, !1, !0),
1586                i &&
1587                  ((o.touches[o.isHorizontal() ? "startX" : "startY"] += t),
1588                  (o.touchEventsData.currentTranslate = o.translate)));
1589          } else
1590            i &&
1591              (o.slideToLoop(t, 0, !1, !0),
1592              (o.touchEventsData.currentTranslate = o.translate));
1593        else if (v.length > 0 && b)
1594          if (void 0 === t) {
1595            const e = o.slidesGrid[w],
1596              t = o.slidesGrid[w - x] - e;
1597            l
1598              ? o.setTranslate(o.translate - t)
1599              : (o.slideTo(w - x, 0, !1, !0),
1600                i &&
1601                  ((o.touches[o.isHorizontal() ? "startX" : "startY"] += t),
1602                  (o.touchEventsData.currentTranslate = o.translate)));
1603          } else o.slideToLoop(t, 0, !1, !0);
1604      if (
1605        ((o.allowSlidePrev = c),
1606        (o.allowSlideNext = p),
1607        o.controller && o.controller.control && !n)
1608      ) {
1609        const e = {
1610          slideRealIndex: t,
1611          slideTo: !1,
1612          direction: a,
1613          setTranslate: i,
1614          activeSlideIndex: r,
1615          byController: !0,
1616        };
1617        Array.isArray(o.controller.control)
1618          ? o.controller.control.forEach((t) => {
1619              !t.destroyed && t.params.loop && t.loopFix(e);
1620            })
1621          : o.controller.control instanceof o.constructor &&
1622            o.controller.control.params.loop &&
1623            o.controller.control.loopFix(e);
1624      }
1625      o.emit("loopFix");
1626    },
1627    loopDestroy: function () {
1628      const e = this,
1629        { params: t, slidesEl: s } = e;
1630      if (!t.loop || (e.virtual && e.params.virtual.enabled)) return;
1631      e.recalcSlides();
1632      const a = [];
1633      e.slides.forEach((e) => {
1634        const t =
1635          void 0 === e.swiperSlideIndex
1636            ? 1 * e.getAttribute("data-swiper-slide-index")
1637            : e.swiperSlideIndex;
1638        a[t] = e;
1639      }),
1640        e.slides.forEach((e) => {
1641          e.removeAttribute("data-swiper-slide-index");
1642        }),
1643        a.forEach((e) => {
1644          s.append(e);
1645        }),
1646        e.recalcSlides(),
1647        e.slideTo(e.realIndex, 0);
1648    },
1649  };
1650  function H(e) {
1651    const t = this,
1652      s = a(),
1653      i = r(),
1654      n = t.touchEventsData;
1655    n.evCache.push(e);
1656    const { params: o, touches: d, enabled: c } = t;
1657    if (!c) return;
1658    if (!o.simulateTouch && "mouse" === e.pointerType) return;
1659    if (t.animating && o.preventInteractionOnTransition) return;
1660    !t.animating && o.cssMode && o.loop && t.loopFix();
1661    let p = e;
1662    p.originalEvent && (p = p.originalEvent);
1663    let u = p.target;
1664    if ("wrapper" === o.touchEventsTarget && !t.wrapperEl.contains(u)) return;
1665    if ("which" in p && 3 === p.which) return;
1666    if ("button" in p && p.button > 0) return;
1667    if (n.isTouched && n.isMoved) return;
1668    const m = !!o.noSwipingClass && "" !== o.noSwipingClass,
1669      h = e.composedPath ? e.composedPath() : e.path;
1670    m && p.target && p.target.shadowRoot && h && (u = h[0]);
1671    const f = o.noSwipingSelector
1672        ? o.noSwipingSelector
1673        : `.${o.noSwipingClass}`,
1674      g = !(!p.target || !p.target.shadowRoot);
1675    if (
1676      o.noSwiping &&
1677      (g
1678        ? (function (e, t) {
1679            return (
1680              void 0 === t && (t = this),
1681              (function t(s) {
1682                if (!s || s === a() || s === r()) return null;
1683                s.assignedSlot && (s = s.assignedSlot);
1684                const i = s.closest(e);
1685                return i || s.getRootNode ? i || t(s.getRootNode().host) : null;
1686              })(t)
1687            );
1688          })(f, u)
1689        : u.closest(f))
1690    )
1691      return void (t.allowClick = !0);
1692    if (o.swipeHandler && !u.closest(o.swipeHandler)) return;
1693    (d.currentX = p.pageX), (d.currentY = p.pageY);
1694    const v = d.currentX,
1695      w = d.currentY,
1696      b = o.edgeSwipeDetection || o.iOSEdgeSwipeDetection,
1697      y = o.edgeSwipeThreshold || o.iOSEdgeSwipeThreshold;
1698    if (b && (v <= y || v >= i.innerWidth - y)) {
1699      if ("prevent" !== b) return;
1700      e.preventDefault();
1701    }
1702    Object.assign(n, {
1703      isTouched: !0,
1704      isMoved: !1,
1705      allowTouchCallbacks: !0,
1706      isScrolling: void 0,
1707      startMoving: void 0,
1708    }),
1709      (d.startX = v),
1710      (d.startY = w),
1711      (n.touchStartTime = l()),
1712      (t.allowClick = !0),
1713      t.updateSize(),
1714      (t.swipeDirection = void 0),
1715      o.threshold > 0 && (n.allowThresholdMove = !1);
1716    let E = !0;
1717    u.matches(n.focusableElements) &&
1718      ((E = !1), "SELECT" === u.nodeName && (n.isTouched = !1)),
1719      s.activeElement &&
1720        s.activeElement.matches(n.focusableElements) &&
1721        s.activeElement !== u &&
1722        s.activeElement.blur();
1723    const x = E && t.allowTouchMove && o.touchStartPreventDefault;
1724    (!o.touchStartForcePreventDefault && !x) ||
1725      u.isContentEditable ||
1726      p.preventDefault(),
1727      o.freeMode &&
1728        o.freeMode.enabled &&
1729        t.freeMode &&
1730        t.animating &&
1731        !o.cssMode &&
1732        t.freeMode.onTouchStart(),
1733      t.emit("touchStart", p);
1734  }
1735  function X(e) {
1736    const t = a(),
1737      s = this,
1738      i = s.touchEventsData,
1739      { params: r, touches: n, rtlTranslate: o, enabled: d } = s;
1740    if (!d) return;
1741    if (!r.simulateTouch && "mouse" === e.pointerType) return;
1742    let c = e;
1743    if ((c.originalEvent && (c = c.originalEvent), !i.isTouched))
1744      return void (
1745        i.startMoving &&
1746        i.isScrolling &&
1747        s.emit("touchMoveOpposite", c)
1748      );
1749    const p = i.evCache.findIndex((e) => e.pointerId === c.pointerId);
1750    p >= 0 && (i.evCache[p] = c);
1751    const u = i.evCache.length > 1 ? i.evCache[0] : c,
1752      m = u.pageX,
1753      h = u.pageY;
1754    if (c.preventedByNestedSwiper) return (n.startX = m), void (n.startY = h);
1755    if (!s.allowTouchMove)
1756      return (
1757        c.target.matches(i.focusableElements) || (s.allowClick = !1),
1758        void (
1759          i.isTouched &&
1760          (Object.assign(n, {
1761            startX: m,
1762            startY: h,
1763            prevX: s.touches.currentX,
1764            prevY: s.touches.currentY,
1765            currentX: m,
1766            currentY: h,
1767          }),
1768          (i.touchStartTime = l()))
1769        )
1770      );
1771    if (r.touchReleaseOnEdges && !r.loop)
1772      if (s.isVertical()) {
1773        if (
1774          (h < n.startY && s.translate <= s.maxTranslate()) ||
1775          (h > n.startY && s.translate >= s.minTranslate())
1776        )
1777          return (i.isTouched = !1), void (i.isMoved = !1);
1778      } else if (
1779        (m < n.startX && s.translate <= s.maxTranslate()) ||
1780        (m > n.startX && s.translate >= s.minTranslate())
1781      )
1782        return;
1783    if (
1784      t.activeElement &&
1785      c.target === t.activeElement &&
1786      c.target.matches(i.focusableElements)
1787    )
1788      return (i.isMoved = !0), void (s.allowClick = !1);
1789    if (
1790      (i.allowTouchCallbacks && s.emit("touchMove", c),
1791      c.targetTouches && c.targetTouches.length > 1)
1792    )
1793      return;
1794    (n.currentX = m), (n.currentY = h);
1795    const f = n.currentX - n.startX,
1796      g = n.currentY - n.startY;
1797    if (s.params.threshold && Math.sqrt(f ** 2 + g ** 2) < s.params.threshold)
1798      return;
1799    if (void 0 === i.isScrolling) {
1800      let e;
1801      (s.isHorizontal() && n.currentY === n.startY) ||
1802      (s.isVertical() && n.currentX === n.startX)
1803        ? (i.isScrolling = !1)
1804        : f * f + g * g >= 25 &&
1805          ((e = (180 * Math.atan2(Math.abs(g), Math.abs(f))) / Math.PI),
1806          (i.isScrolling = s.isHorizontal()
1807            ? e > r.touchAngle
1808            : 90 - e > r.touchAngle));
1809    }
1810    if (
1811      (i.isScrolling && s.emit("touchMoveOpposite", c),
1812      void 0 === i.startMoving &&
1813        ((n.currentX === n.startX && n.currentY === n.startY) ||
1814          (i.startMoving = !0)),
1815      i.isScrolling ||
1816        (s.zoom &&
1817          s.params.zoom &&
1818          s.params.zoom.enabled &&
1819          i.evCache.length > 1))
1820    )
1821      return void (i.isTouched = !1);
1822    if (!i.startMoving) return;
1823    (s.allowClick = !1),
1824      !r.cssMode && c.cancelable && c.preventDefault(),
1825      r.touchMoveStopPropagation && !r.nested && c.stopPropagation();
1826    let v = s.isHorizontal() ? f : g,
1827      w = s.isHorizontal()
1828        ? n.currentX - n.previousX
1829        : n.currentY - n.previousY;
1830    r.oneWayMovement &&
1831      ((v = Math.abs(v) * (o ? 1 : -1)), (w = Math.abs(w) * (o ? 1 : -1))),
1832      (n.diff = v),
1833      (v *= r.touchRatio),
1834      o && ((v = -v), (w = -w));
1835    const b = s.touchesDirection;
1836    (s.swipeDirection = v > 0 ? "prev" : "next"),
1837      (s.touchesDirection = w > 0 ? "prev" : "next");
1838    const y = s.params.loop && !r.cssMode;
1839    if (!i.isMoved) {
1840      if (
1841        (y && s.loopFix({ direction: s.swipeDirection }),
1842        (i.startTranslate = s.getTranslate()),
1843        s.setTransition(0),
1844        s.animating)
1845      ) {
1846        const e = new window.CustomEvent("transitionend", {
1847          bubbles: !0,
1848          cancelable: !0,
1849        });
1850        s.wrapperEl.dispatchEvent(e);
1851      }
1852      (i.allowMomentumBounce = !1),
1853        !r.grabCursor ||
1854          (!0 !== s.allowSlideNext && !0 !== s.allowSlidePrev) ||
1855          s.setGrabCursor(!0),
1856        s.emit("sliderFirstMove", c);
1857    }
1858    let E;
1859    i.isMoved &&
1860      b !== s.touchesDirection &&
1861      y &&
1862      Math.abs(v) >= 1 &&
1863      (s.loopFix({ direction: s.swipeDirection, setTranslate: !0 }), (E = !0)),
1864      s.emit("sliderMove", c),
1865      (i.isMoved = !0),
1866      (i.currentTranslate = v + i.startTranslate);
1867    let x = !0,
1868      S = r.resistanceRatio;
1869    if (
1870      (r.touchReleaseOnEdges && (S = 0),
1871      v > 0
1872        ? (y &&
1873            !E &&
1874            i.currentTranslate >
1875              (r.centeredSlides
1876                ? s.minTranslate() - s.size / 2
1877                : s.minTranslate()) &&
1878            s.loopFix({
1879              direction: "prev",
1880              setTranslate: !0,
1881              activeSlideIndex: 0,
1882            }),
1883          i.currentTranslate > s.minTranslate() &&
1884            ((x = !1),
1885            r.resistance &&
1886              (i.currentTranslate =
1887                s.minTranslate() -
1888                1 +
1889                (-s.minTranslate() + i.startTranslate + v) ** S)))
1890        : v < 0 &&
1891          (y &&
1892            !E &&
1893            i.currentTranslate <
1894              (r.centeredSlides
1895                ? s.maxTranslate() + s.size / 2
1896                : s.maxTranslate()) &&
1897            s.loopFix({
1898              direction: "next",
1899              setTranslate: !0,
1900              activeSlideIndex:
1901                s.slides.length -
1902                ("auto" === r.slidesPerView
1903                  ? s.slidesPerViewDynamic()
1904                  : Math.ceil(parseFloat(r.slidesPerView, 10))),
1905            }),
1906          i.currentTranslate < s.maxTranslate() &&
1907            ((x = !1),
1908            r.resistance &&
1909              (i.currentTranslate =
1910                s.maxTranslate() +
1911                1 -
1912                (s.maxTranslate() - i.startTranslate - v) ** S))),
1913      x && (c.preventedByNestedSwiper = !0),
1914      !s.allowSlideNext &&
1915        "next" === s.swipeDirection &&
1916        i.currentTranslate < i.startTranslate &&
1917        (i.currentTranslate = i.startTranslate),
1918      !s.allowSlidePrev &&
1919        "prev" === s.swipeDirection &&
1920        i.currentTranslate > i.startTranslate &&
1921        (i.currentTranslate = i.startTranslate),
1922      s.allowSlidePrev ||
1923        s.allowSlideNext ||
1924        (i.currentTranslate = i.startTranslate),
1925      r.threshold > 0)
1926    ) {
1927      if (!(Math.abs(v) > r.threshold || i.allowThresholdMove))
1928        return void (i.currentTranslate = i.startTranslate);
1929      if (!i.allowThresholdMove)
1930        return (
1931          (i.allowThresholdMove = !0),
1932          (n.startX = n.currentX),
1933          (n.startY = n.currentY),
1934          (i.currentTranslate = i.startTranslate),
1935          void (n.diff = s.isHorizontal()
1936            ? n.currentX - n.startX
1937            : n.currentY - n.startY)
1938        );
1939    }
1940    r.followFinger &&
1941      !r.cssMode &&
1942      (((r.freeMode && r.freeMode.enabled && s.freeMode) ||
1943        r.watchSlidesProgress) &&
1944        (s.updateActiveIndex(), s.updateSlidesClasses()),
1945      r.freeMode &&
1946        r.freeMode.enabled &&
1947        s.freeMode &&
1948        s.freeMode.onTouchMove(),
1949      s.updateProgress(i.currentTranslate),
1950      s.setTranslate(i.currentTranslate));
1951  }
1952  function Y(e) {
1953    const t = this,
1954      s = t.touchEventsData,
1955      a = s.evCache.findIndex((t) => t.pointerId === e.pointerId);
1956    if (
1957      (a >= 0 && s.evCache.splice(a, 1),
1958      ["pointercancel", "pointerout", "pointerleave"].includes(e.type))
1959    ) {
1960      if (
1961        !(
1962          "pointercancel" === e.type &&
1963          (t.browser.isSafari || t.browser.isWebView)
1964        )
1965      )
1966        return;
1967    }
1968    const {
1969      params: i,
1970      touches: r,
1971      rtlTranslate: o,
1972      slidesGrid: d,
1973      enabled: c,
1974    } = t;
1975    if (!c) return;
1976    if (!i.simulateTouch && "mouse" === e.pointerType) return;
1977    let p = e;
1978    if (
1979      (p.originalEvent && (p = p.originalEvent),
1980      s.allowTouchCallbacks && t.emit("touchEnd", p),
1981      (s.allowTouchCallbacks = !1),
1982      !s.isTouched)
1983    )
1984      return (
1985        s.isMoved && i.grabCursor && t.setGrabCursor(!1),
1986        (s.isMoved = !1),
1987        void (s.startMoving = !1)
1988      );
1989    i.grabCursor &&
1990      s.isMoved &&
1991      s.isTouched &&
1992      (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) &&
1993      t.setGrabCursor(!1);
1994    const u = l(),
1995      m = u - s.touchStartTime;
1996    if (t.allowClick) {
1997      const e = p.path || (p.composedPath && p.composedPath());
1998      t.updateClickedSlide((e && e[0]) || p.target),
1999        t.emit("tap click", p),
2000        m < 300 &&
2001          u - s.lastClickTime < 300 &&
2002          t.emit("doubleTap doubleClick", p);
2003    }
2004    if (
2005      ((s.lastClickTime = l()),
2006      n(() => {
2007        t.destroyed || (t.allowClick = !0);
2008      }),
2009      !s.isTouched ||
2010        !s.isMoved ||
2011        !t.swipeDirection ||
2012        0 === r.diff ||
2013        s.currentTranslate === s.startTranslate)
2014    )
2015      return (s.isTouched = !1), (s.isMoved = !1), void (s.startMoving = !1);
2016    let h;
2017    if (
2018      ((s.isTouched = !1),
2019      (s.isMoved = !1),
2020      (s.startMoving = !1),
2021      (h = i.followFinger
2022        ? o
2023          ? t.translate
2024          : -t.translate
2025        : -s.currentTranslate),
2026      i.cssMode)
2027    )
2028      return;
2029    if (i.freeMode && i.freeMode.enabled)
2030      return void t.freeMode.onTouchEnd({ currentPos: h });
2031    let f = 0,
2032      g = t.slidesSizesGrid[0];
2033    for (
2034      let e = 0;
2035      e < d.length;
2036      e += e < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup
2037    ) {
2038      const t = e < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
2039      void 0 !== d[e + t]
2040        ? h >= d[e] && h < d[e + t] && ((f = e), (g = d[e + t] - d[e]))
2041        : h >= d[e] && ((f = e), (g = d[d.length - 1] - d[d.length - 2]));
2042    }
2043    let v = null,
2044      w = null;
2045    i.rewind &&
2046      (t.isBeginning
2047        ? (w =
2048            i.virtual && i.virtual.enabled && t.virtual
2049              ? t.virtual.slides.length - 1
2050              : t.slides.length - 1)
2051        : t.isEnd && (v = 0));
2052    const b = (h - d[f]) / g,
2053      y = f < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
2054    if (m > i.longSwipesMs) {
2055      if (!i.longSwipes) return void t.slideTo(t.activeIndex);
2056      "next" === t.swipeDirection &&
2057        (b >= i.longSwipesRatio
2058          ? t.slideTo(i.rewind && t.isEnd ? v : f + y)
2059          : t.slideTo(f)),
2060        "prev" === t.swipeDirection &&
2061          (b > 1 - i.longSwipesRatio
2062            ? t.slideTo(f + y)
2063            : null !== w && b < 0 && Math.abs(b) > i.longSwipesRatio
2064            ? t.slideTo(w)
2065            : t.slideTo(f));
2066    } else {
2067      if (!i.shortSwipes) return void t.slideTo(t.activeIndex);
2068      t.navigation &&
2069      (p.target === t.navigation.nextEl || p.target === t.navigation.prevEl)
2070        ? p.target === t.navigation.nextEl
2071          ? t.slideTo(f + y)
2072          : t.slideTo(f)
2073        : ("next" === t.swipeDirection && t.slideTo(null !== v ? v : f + y),
2074          "prev" === t.swipeDirection && t.slideTo(null !== w ? w : f));
2075    }
2076  }
2077  function N() {
2078    const e = this,
2079      { params: t, el: s } = e;
2080    if (s && 0 === s.offsetWidth) return;
2081    t.breakpoints && e.setBreakpoint();
2082    const { allowSlideNext: a, allowSlidePrev: i, snapGrid: r } = e,
2083      n = e.virtual && e.params.virtual.enabled;
2084    (e.allowSlideNext = !0),
2085      (e.allowSlidePrev = !0),
2086      e.updateSize(),
2087      e.updateSlides(),
2088      e.updateSlidesClasses();
2089    const l = n && t.loop;
2090    !("auto" === t.slidesPerView || t.slidesPerView > 1) ||
2091    !e.isEnd ||
2092    e.isBeginning ||
2093    e.params.centeredSlides ||
2094    l
2095      ? e.params.loop && !n
2096        ? e.slideToLoop(e.realIndex, 0, !1, !0)
2097        : e.slideTo(e.activeIndex, 0, !1, !0)
2098      : e.slideTo(e.slides.length - 1, 0, !1, !0),
2099      e.autoplay &&
2100        e.autoplay.running &&
2101        e.autoplay.paused &&
2102        (clearTimeout(e.autoplay.resizeTimeout),
2103        (e.autoplay.resizeTimeout = setTimeout(() => {
2104          e.autoplay &&
2105            e.autoplay.running &&
2106            e.autoplay.paused &&
2107            e.autoplay.resume();
2108        }, 500))),
2109      (e.allowSlidePrev = i),
2110      (e.allowSlideNext = a),
2111      e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow();
2112  }
2113  function B(e) {
2114    const t = this;
2115    t.enabled &&
2116      (t.allowClick ||
2117        (t.params.preventClicks && e.preventDefault(),
2118        t.params.preventClicksPropagation &&
2119          t.animating &&
2120          (e.stopPropagation(), e.stopImmediatePropagation())));
2121  }
2122  function R() {
2123    const e = this,
2124      { wrapperEl: t, rtlTranslate: s, enabled: a } = e;
2125    if (!a) return;
2126    let i;
2127    (e.previousTranslate = e.translate),
2128      e.isHorizontal()
2129        ? (e.translate = -t.scrollLeft)
2130        : (e.translate = -t.scrollTop),
2131      0 === e.translate && (e.translate = 0),
2132      e.updateActiveIndex(),
2133      e.updateSlidesClasses();
2134    const r = e.maxTranslate() - e.minTranslate();
2135    (i = 0 === r ? 0 : (e.translate - e.minTranslate()) / r),
2136      i !== e.progress && e.updateProgress(s ? -e.translate : e.translate),
2137      e.emit("setTranslate", e.translate, !1);
2138  }
2139  function q(e) {
2140    const t = this;
2141    z(t, e.target),
2142      t.params.cssMode ||
2143        ("auto" !== t.params.slidesPerView && !t.params.autoHeight) ||
2144        t.update();
2145  }
2146  let F = !1;
2147  function _() {}
2148  const V = (e, t) => {
2149    const s = a(),
2150      { params: i, el: r, wrapperEl: n, device: l } = e,
2151      o = !!i.nested,
2152      d = "on" === t ? "addEventListener" : "removeEventListener",
2153      c = t;
2154    r[d]("pointerdown", e.onTouchStart, { passive: !1 }),
2155      s[d]("pointermove", e.onTouchMove, { passive: !1, capture: o }),
2156      s[d]("pointerup", e.onTouchEnd, { passive: !0 }),
2157      s[d]("pointercancel", e.onTouchEnd, { passive: !0 }),
2158      s[d]("pointerout", e.onTouchEnd, { passive: !0 }),
2159      s[d]("pointerleave", e.onTouchEnd, { passive: !0 }),
2160      (i.preventClicks || i.preventClicksPropagation) &&
2161        r[d]("click", e.onClick, !0),
2162      i.cssMode && n[d]("scroll", e.onScroll),
2163      i.updateOnWindowResize
2164        ? e[c](
2165            l.ios || l.android
2166              ? "resize orientationchange observerUpdate"
2167              : "resize observerUpdate",
2168            N,
2169            !0
2170          )
2171        : e[c]("observerUpdate", N, !0),
2172      r[d]("load", e.onLoad, { capture: !0 });
2173  };
2174  const j = (e, t) => e.grid && t.grid && t.grid.rows > 1;
2175  var W = {
2176    init: !0,
2177    direction: "horizontal",
2178    oneWayMovement: !1,
2179    touchEventsTarget: "wrapper",
2180    initialSlide: 0,
2181    speed: 300,
2182    cssMode: !1,
2183    updateOnWindowResize: !0,
2184    resizeObserver: !0,
2185    nested: !1,
2186    createElements: !1,
2187    enabled: !0,
2188    focusableElements: "input, select, option, textarea, button, video, label",
2189    width: null,
2190    height: null,
2191    preventInteractionOnTransition: !1,
2192    userAgent: null,
2193    url: null,
2194    edgeSwipeDetection: !1,
2195    edgeSwipeThreshold: 20,
2196    autoHeight: !1,
2197    setWrapperSize: !1,
2198    virtualTranslate: !1,
2199    effect: "slide",
2200    breakpoints: void 0,
2201    breakpointsBase: "window",
2202    spaceBetween: 0,
2203    slidesPerView: 1,
2204    slidesPerGroup: 1,
2205    slidesPerGroupSkip: 0,
2206    slidesPerGroupAuto: !1,
2207    centeredSlides: !1,
2208    centeredSlidesBounds: !1,
2209    slidesOffsetBefore: 0,
2210    slidesOffsetAfter: 0,
2211    normalizeSlideIndex: !0,
2212    centerInsufficientSlides: !1,
2213    watchOverflow: !0,
2214    roundLengths: !1,
2215    touchRatio: 1,
2216    touchAngle: 45,
2217    simulateTouch: !0,
2218    shortSwipes: !0,
2219    longSwipes: !0,
2220    longSwipesRatio: 0.5,
2221    longSwipesMs: 300,
2222    followFinger: !0,
2223    allowTouchMove: !0,
2224    threshold: 5,
2225    touchMoveStopPropagation: !1,
2226    touchStartPreventDefault: !0,
2227    touchStartForcePreventDefault: !1,
2228    touchReleaseOnEdges: !1,
2229    uniqueNavElements: !0,
2230    resistance: !0,
2231    resistanceRatio: 0.85,
2232    watchSlidesProgress: !1,
2233    grabCursor: !1,
2234    preventClicks: !0,
2235    preventClicksPropagation: !0,
2236    slideToClickedSlide: !1,
2237    loop: !1,
2238    loopedSlides: null,
2239    loopPreventsSliding: !0,
2240    rewind: !1,
2241    allowSlidePrev: !0,
2242    allowSlideNext: !0,
2243    swipeHandler: null,
2244    noSwiping: !0,
2245    noSwipingClass: "swiper-no-swiping",
2246    noSwipingSelector: null,
2247    passiveListeners: !0,
2248    maxBackfaceHiddenSlides: 10,
2249    containerModifierClass: "swiper-",
2250    slideClass: "swiper-slide",
2251    slideActiveClass: "swiper-slide-active",
2252    slideVisibleClass: "swiper-slide-visible",
2253    slideNextClass: "swiper-slide-next",
2254    slidePrevClass: "swiper-slide-prev",
2255    wrapperClass: "swiper-wrapper",
2256    lazyPreloaderClass: "swiper-lazy-preloader",
2257    lazyPreloadPrevNext: 0,
2258    runCallbacksOnInit: !0,
2259    _emitClasses: !1,
2260  };
2261  function U(e, t) {
2262    return function (s) {
2263      void 0 === s && (s = {});
2264      const a = Object.keys(s)[0],
2265        i = s[a];
2266      "object" == typeof i && null !== i
2267        ? (["navigation", "pagination", "scrollbar"].indexOf(a) >= 0 &&
2268            !0 === e[a] &&
2269            (e[a] = { auto: !0 }),
2270          a in e && "enabled" in i
2271            ? (!0 === e[a] && (e[a] = { enabled: !0 }),
2272              "object" != typeof e[a] ||
2273                "enabled" in e[a] ||
2274                (e[a].enabled = !0),
2275              e[a] || (e[a] = { enabled: !1 }),
2276              c(t, s))
2277            : c(t, s))
2278        : c(t, s);
2279    };
2280  }
2281  const K = {
2282      eventsEmitter: L,
2283      update: I,
2284      translate: k,
2285      transition: {
2286        setTransition: function (e, t) {
2287          const s = this;
2288          s.params.cssMode || (s.wrapperEl.style.transitionDuration = `${e}ms`),
2289            s.emit("setTransition", e, t);
2290        },
2291        transitionStart: function (e, t) {
2292          void 0 === e && (e = !0);
2293          const s = this,
2294            { params: a } = s;
2295          a.cssMode ||
2296            (a.autoHeight && s.updateAutoHeight(),
2297            O({ swiper: s, runCallbacks: e, direction: t, step: "Start" }));
2298        },
2299        transitionEnd: function (e, t) {
2300          void 0 === e && (e = !0);
2301          const s = this,
2302            { params: a } = s;
2303          (s.animating = !1),
2304            a.cssMode ||
2305              (s.setTransition(0),
2306              O({ swiper: s, runCallbacks: e, direction: t, step: "End" }));
2307        },
2308      },
2309      slide: D,
2310      loop: G,
2311      grabCursor: {
2312        setGrabCursor: function (e) {
2313          const t = this;
2314          if (
2315            !t.params.simulateTouch ||
2316            (t.params.watchOverflow && t.isLocked) ||
2317            t.params.cssMode
2318          )
2319            return;
2320          const s =
2321            "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl;
2322          t.isElement && (t.__preventObserver__ = !0),
2323            (s.style.cursor = "move"),
2324            (s.style.cursor = e ? "grabbing" : "grab"),
2325            t.isElement &&
2326              requestAnimationFrame(() => {
2327                t.__preventObserver__ = !1;
2328              });
2329        },
2330        unsetGrabCursor: function () {
2331          const e = this;
2332          (e.params.watchOverflow && e.isLocked) ||
2333            e.params.cssMode ||
2334            (e.isElement && (e.__preventObserver__ = !0),
2335            (e[
2336              "container" === e.params.touchEventsTarget ? "el" : "wrapperEl"
2337            ].style.cursor = ""),
2338            e.isElement &&
2339              requestAnimationFrame(() => {
2340                e.__preventObserver__ = !1;
2341              }));
2342        },
2343      },
2344      events: {
2345        attachEvents: function () {
2346          const e = this,
2347            t = a(),
2348            { params: s } = e;
2349          (e.onTouchStart = H.bind(e)),
2350            (e.onTouchMove = X.bind(e)),
2351            (e.onTouchEnd = Y.bind(e)),
2352            s.cssMode && (e.onScroll = R.bind(e)),
2353            (e.onClick = B.bind(e)),
2354            (e.onLoad = q.bind(e)),
2355            F || (t.addEventListener("touchstart", _), (F = !0)),
2356            V(e, "on");
2357        },
2358        detachEvents: function () {
2359          V(this, "off");
2360        },
2361      },
2362      breakpoints: {
2363        setBreakpoint: function () {
2364          const e = this,
2365            { realIndex: t, initialized: s, params: a, el: i } = e,
2366            r = a.breakpoints;
2367          if (!r || (r && 0 === Object.keys(r).length)) return;
2368          const n = e.getBreakpoint(r, e.params.breakpointsBase, e.el);
2369          if (!n || e.currentBreakpoint === n) return;
2370          const l = (n in r ? r[n] : void 0) || e.originalParams,
2371            o = j(e, a),
2372            d = j(e, l),
2373            p = a.enabled;
2374          o && !d
2375            ? (i.classList.remove(
2376                `${a.containerModifierClass}grid`,
2377                `${a.containerModifierClass}grid-column`
2378              ),
2379              e.emitContainerClasses())
2380            : !o &&
2381              d &&
2382              (i.classList.add(`${a.containerModifierClass}grid`),
2383              ((l.grid.fill && "column" === l.grid.fill) ||
2384                (!l.grid.fill && "column" === a.grid.fill)) &&
2385                i.classList.add(`${a.containerModifierClass}grid-column`),
2386              e.emitContainerClasses()),
2387            ["navigation", "pagination", "scrollbar"].forEach((t) => {
2388              if (void 0 === l[t]) return;
2389              const s = a[t] && a[t].enabled,
2390                i = l[t] && l[t].enabled;
2391              s && !i && e[t].disable(), !s && i && e[t].enable();
2392            });
2393          const u = l.direction && l.direction !== a.direction,
2394            m = a.loop && (l.slidesPerView !== a.slidesPerView || u);
2395          u && s && e.changeDirection(), c(e.params, l);
2396          const h = e.params.enabled;
2397          Object.assign(e, {
2398            allowTouchMove: e.params.allowTouchMove,
2399            allowSlideNext: e.params.allowSlideNext,
2400            allowSlidePrev: e.params.allowSlidePrev,
2401          }),
2402            p && !h ? e.disable() : !p && h && e.enable(),
2403            (e.currentBreakpoint = n),
2404            e.emit("_beforeBreakpoint", l),
2405            m && s && (e.loopDestroy(), e.loopCreate(t), e.updateSlides()),
2406            e.emit("breakpoint", l);
2407        },
2408        getBreakpoint: function (e, t, s) {
2409          if ((void 0 === t && (t = "window"), !e || ("container" === t && !s)))
2410            return;
2411          let a = !1;
2412          const i = r(),
2413            n = "window" === t ? i.innerHeight : s.clientHeight,
2414            l = Object.keys(e).map((e) => {
2415              if ("string" == typeof e && 0 === e.indexOf("@")) {
2416                const t = parseFloat(e.substr(1));
2417                return { value: n * t, point: e };
2418              }
2419              return { value: e, point: e };
2420            });
2421          l.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10));
2422          for (let e = 0; e < l.length; e += 1) {
2423            const { point: r, value: n } = l[e];
2424            "window" === t
2425              ? i.matchMedia(`(min-width: ${n}px)`).matches && (a = r)
2426              : n <= s.clientWidth && (a = r);
2427          }
2428          return a || "max";
2429        },
2430      },
2431      checkOverflow: {
2432        checkOverflow: function () {
2433          const e = this,
2434            { isLocked: t, params: s } = e,
2435            { slidesOffsetBefore: a } = s;
2436          if (a) {
2437            const t = e.slides.length - 1,
2438              s = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * a;
2439            e.isLocked = e.size > s;
2440          } else e.isLocked = 1 === e.snapGrid.length;
2441          !0 === s.allowSlideNext && (e.allowSlideNext = !e.isLocked),
2442            !0 === s.allowSlidePrev && (e.allowSlidePrev = !e.isLocked),
2443            t && t !== e.isLocked && (e.isEnd = !1),
2444            t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock");
2445        },
2446      },
2447      classes: {
2448        addClasses: function () {
2449          const e = this,
2450            { classNames: t, params: s, rtl: a, el: i, device: r } = e,
2451            n = (function (e, t) {
2452              const s = [];
2453              return (
2454                e.forEach((e) => {
2455                  "object" == typeof e
2456                    ? Object.keys(e).forEach((a) => {
2457                        e[a] && s.push(t + a);
2458                      })
2459                    : "string" == typeof e && s.push(t + e);
2460                }),
2461                s
2462              );
2463            })(
2464              [
2465                "initialized",
2466                s.direction,
2467                { "free-mode": e.params.freeMode && s.freeMode.enabled },
2468                { autoheight: s.autoHeight },
2469                { rtl: a },
2470                { grid: s.grid && s.grid.rows > 1 },
2471                {
2472                  "grid-column":
2473                    s.grid && s.grid.rows > 1 && "column" === s.grid.fill,
2474                },
2475                { android: r.android },
2476                { ios: r.ios },
2477                { "css-mode": s.cssMode },
2478                { centered: s.cssMode && s.centeredSlides },
2479                { "watch-progress": s.watchSlidesProgress },
2480              ],
2481              s.containerModifierClass
2482            );
2483          t.push(...n), i.classList.add(...t), e.emitContainerClasses();
2484        },
2485        removeClasses: function () {
2486          const { el: e, classNames: t } = this;
2487          e.classList.remove(...t), this.emitContainerClasses();
2488        },
2489      },
2490    },
2491    Z = {};
2492  class Q {
2493    constructor() {
2494      let e, t;
2495      for (var s = arguments.length, i = new Array(s), r = 0; r < s; r++)
2496        i[r] = arguments[r];
2497      1 === i.length &&
2498      i[0].constructor &&
2499      "Object" === Object.prototype.toString.call(i[0]).slice(8, -1)
2500        ? (t = i[0])
2501        : ([e, t] = i),
2502        t || (t = {}),
2503        (t = c({}, t)),
2504        e && !t.el && (t.el = e);
2505      const n = a();
2506      if (
2507        t.el &&
2508        "string" == typeof t.el &&
2509        n.querySelectorAll(t.el).length > 1
2510      ) {
2511        const e = [];
2512        return (
2513          n.querySelectorAll(t.el).forEach((s) => {
2514            const a = c({}, t, { el: s });
2515            e.push(new Q(a));
2516          }),
2517          e
2518        );
2519      }
2520      const l = this;
2521      (l.__swiper__ = !0),
2522        (l.support = M()),
2523        (l.device = C({ userAgent: t.userAgent })),
2524        (l.browser = P()),
2525        (l.eventsListeners = {}),
2526        (l.eventsAnyListeners = []),
2527        (l.modules = [...l.__modules__]),
2528        t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules);
2529      const o = {};
2530      l.modules.forEach((e) => {
2531        e({
2532          params: t,
2533          swiper: l,
2534          extendParams: U(t, o),
2535          on: l.on.bind(l),
2536          once: l.once.bind(l),
2537          off: l.off.bind(l),
2538          emit: l.emit.bind(l),
2539        });
2540      });
2541      const d = c({}, W, o);
2542      return (
2543        (l.params = c({}, d, Z, t)),
2544        (l.originalParams = c({}, l.params)),
2545        (l.passedParams = c({}, t)),
2546        l.params &&
2547          l.params.on &&
2548          Object.keys(l.params.on).forEach((e) => {
2549            l.on(e, l.params.on[e]);
2550          }),
2551        l.params && l.params.onAny && l.onAny(l.params.onAny),
2552        Object.assign(l, {
2553          enabled: l.params.enabled,
2554          el: e,
2555          classNames: [],
2556          slides: [],
2557          slidesGrid: [],
2558          snapGrid: [],
2559          slidesSizesGrid: [],
2560          isHorizontal: () => "horizontal" === l.params.direction,
2561          isVertical: () => "vertical" === l.params.direction,
2562          activeIndex: 0,
2563          realIndex: 0,
2564          isBeginning: !0,
2565          isEnd: !1,
2566          translate: 0,
2567          previousTranslate: 0,
2568          progress: 0,
2569          velocity: 0,
2570          animating: !1,
2571          cssOverflowAdjustment() {
2572            return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
2573          },
2574          allowSlideNext: l.params.allowSlideNext,
2575          allowSlidePrev: l.params.allowSlidePrev,
2576          touchEventsData: {
2577            isTouched: void 0,
2578            isMoved: void 0,
2579            allowTouchCallbacks: void 0,
2580            touchStartTime: void 0,
2581            isScrolling: void 0,
2582            currentTranslate: void 0,
2583            startTranslate: void 0,
2584            allowThresholdMove: void 0,
2585            focusableElements: l.params.focusableElements,
2586            lastClickTime: 0,
2587            clickTimeout: void 0,
2588            velocities: [],
2589            allowMomentumBounce: void 0,
2590            startMoving: void 0,
2591            evCache: [],
2592          },
2593          allowClick: !0,
2594          allowTouchMove: l.params.allowTouchMove,
2595          touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
2596          imagesToLoad: [],
2597          imagesLoaded: 0,
2598        }),
2599        l.emit("_swiper"),
2600        l.params.init && l.init(),
2601        l
2602      );
2603    }
2604    getSlideIndex(e) {
2605      const { slidesEl: t, params: s } = this,
2606        a = w(h(t, `.${s.slideClass}, swiper-slide`)[0]);
2607      return w(e) - a;
2608    }
2609    getSlideIndexByData(e) {
2610      return this.getSlideIndex(
2611        this.slides.filter(
2612          (t) => 1 * t.getAttribute("data-swiper-slide-index") === e
2613        )[0]
2614      );
2615    }
2616    recalcSlides() {
2617      const { slidesEl: e, params: t } = this;
2618      this.slides = h(e, `.${t.slideClass}, swiper-slide`);
2619    }
2620    enable() {
2621      const e = this;
2622      e.enabled ||
2623        ((e.enabled = !0),
2624        e.params.grabCursor && e.setGrabCursor(),
2625        e.emit("enable"));
2626    }
2627    disable() {
2628      const e = this;
2629      e.enabled &&
2630        ((e.enabled = !1),
2631        e.params.grabCursor && e.unsetGrabCursor(),
2632        e.emit("disable"));
2633    }
2634    setProgress(e, t) {
2635      const s = this;
2636      e = Math.min(Math.max(e, 0), 1);
2637      const a = s.minTranslate(),
2638        i = (s.maxTranslate() - a) * e + a;
2639      s.translateTo(i, void 0 === t ? 0 : t),
2640        s.updateActiveIndex(),
2641        s.updateSlidesClasses();
2642    }
2643    emitContainerClasses() {
2644      const e = this;
2645      if (!e.params._emitClasses || !e.el) return;
2646      const t = e.el.className
2647        .split(" ")
2648        .filter(
2649          (t) =>
2650            0 === t.indexOf("swiper") ||
2651            0 === t.indexOf(e.params.containerModifierClass)
2652        );
2653      e.emit("_containerClasses", t.join(" "));
2654    }
2655    getSlideClasses(e) {
2656      const t = this;
2657      return t.destroyed
2658        ? ""
2659        : e.className
2660            .split(" ")
2661            .filter(
2662              (e) =>
2663                0 === e.indexOf("swiper-slide") ||
2664                0 === e.indexOf(t.params.slideClass)
2665            )
2666            .join(" ");
2667    }
2668    emitSlidesClasses() {
2669      const e = this;
2670      if (!e.params._emitClasses || !e.el) return;
2671      const t = [];
2672      e.slides.forEach((s) => {
2673        const a = e.getSlideClasses(s);
2674        t.push({ slideEl: s, classNames: a }), e.emit("_slideClass", s, a);
2675      }),
2676        e.emit("_slideClasses", t);
2677    }
2678    slidesPerViewDynamic(e, t) {
2679      void 0 === e && (e = "current"), void 0 === t && (t = !1);
2680      const {
2681        params: s,
2682        slides: a,
2683        slidesGrid: i,
2684        slidesSizesGrid: r,
2685        size: n,
2686        activeIndex: l,
2687      } = this;
2688      let o = 1;
2689      if (s.centeredSlides) {
2690        let e,
2691          t = a[l] ? a[l].swiperSlideSize : 0;
2692        for (let s = l + 1; s < a.length; s += 1)
2693          a[s] &&
2694            !e &&
2695            ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0));
2696        for (let s = l - 1; s >= 0; s -= 1)
2697          a[s] &&
2698            !e &&
2699            ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0));
2700      } else if ("current" === e)
2701        for (let e = l + 1; e < a.length; e += 1) {
2702          (t ? i[e] + r[e] - i[l] < n : i[e] - i[l] < n) && (o += 1);
2703        }
2704      else
2705        for (let e = l - 1; e >= 0; e -= 1) {
2706          i[l] - i[e] < n && (o += 1);
2707        }
2708      return o;
2709    }
2710    update() {
2711      const e = this;
2712      if (!e || e.destroyed) return;
2713      const { snapGrid: t, params: s } = e;
2714      function a() {
2715        const t = e.rtlTranslate ? -1 * e.translate : e.translate,
2716          s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
2717        e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses();
2718      }
2719      let i;
2720      if (
2721        (s.breakpoints && e.setBreakpoint(),
2722        [...e.el.querySelectorAll('[loading="lazy"]')].forEach((t) => {
2723          t.complete && z(e, t);
2724        }),
2725        e.updateSize(),
2726        e.updateSlides(),
2727        e.updateProgress(),
2728        e.updateSlidesClasses(),
2729        s.freeMode && s.freeMode.enabled && !s.cssMode)
2730      )
2731        a(), s.autoHeight && e.updateAutoHeight();
2732      else {
2733        if (
2734          ("auto" === s.slidesPerView || s.slidesPerView > 1) &&
2735          e.isEnd &&
2736          !s.centeredSlides
2737        ) {
2738          const t =
2739            e.virtual && s.virtual.enabled ? e.virtual.slides : e.slides;
2740          i = e.slideTo(t.length - 1, 0, !1, !0);
2741        } else i = e.slideTo(e.activeIndex, 0, !1, !0);
2742        i || a();
2743      }
2744      s.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
2745        e.emit("update");
2746    }
2747    changeDirection(e, t) {
2748      void 0 === t && (t = !0);
2749      const s = this,
2750        a = s.params.direction;
2751      return (
2752        e || (e = "horizontal" === a ? "vertical" : "horizontal"),
2753        e === a ||
2754          ("horizontal" !== e && "vertical" !== e) ||
2755          (s.el.classList.remove(`${s.params.containerModifierClass}${a}`),
2756          s.el.classList.add(`${s.params.containerModifierClass}${e}`),
2757          s.emitContainerClasses(),
2758          (s.params.direction = e),
2759          s.slides.forEach((t) => {
2760            "vertical" === e ? (t.style.width = "") : (t.style.height = "");
2761          }),
2762          s.emit("changeDirection"),
2763          t && s.update()),
2764        s
2765      );
2766    }
2767    changeLanguageDirection(e) {
2768      const t = this;
2769      (t.rtl && "rtl" === e) ||
2770        (!t.rtl && "ltr" === e) ||
2771        ((t.rtl = "rtl" === e),
2772        (t.rtlTranslate = "horizontal" === t.params.direction && t.rtl),
2773        t.rtl
2774          ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`),
2775            (t.el.dir = "rtl"))
2776          : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`),
2777            (t.el.dir = "ltr")),
2778        t.update());
2779    }
2780    mount(e) {
2781      const t = this;
2782      if (t.mounted) return !0;
2783      let s = e || t.params.el;
2784      if (("string" == typeof s && (s = document.querySelector(s)), !s))
2785        return !1;
2786      (s.swiper = t),
2787        s.parentNode &&
2788          s.parentNode.host &&
2789          "SWIPER-CONTAINER" === s.parentNode.host.nodeName &&
2790          (t.isElement = !0);
2791      const a = () =>
2792        `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`;
2793      let i = (() => {
2794        if (s && s.shadowRoot && s.shadowRoot.querySelector) {
2795          return s.shadowRoot.querySelector(a());
2796        }
2797        return h(s, a())[0];
2798      })();
2799      return (
2800        !i &&
2801          t.params.createElements &&
2802          ((i = f("div", t.params.wrapperClass)),
2803          s.append(i),
2804          h(s, `.${t.params.slideClass}`).forEach((e) => {
2805            i.append(e);
2806          })),
2807        Object.assign(t, {
2808          el: s,
2809          wrapperEl: i,
2810          slidesEl:
2811            t.isElement && !s.parentNode.host.slideSlots
2812              ? s.parentNode.host
2813              : i,
2814          hostEl: t.isElement ? s.parentNode.host : s,
2815          mounted: !0,
2816          rtl: "rtl" === s.dir.toLowerCase() || "rtl" === v(s, "direction"),
2817          rtlTranslate:
2818            "horizontal" === t.params.direction &&
2819            ("rtl" === s.dir.toLowerCase() || "rtl" === v(s, "direction")),
2820          wrongRTL: "-webkit-box" === v(i, "display"),
2821        }),
2822        !0
2823      );
2824    }
2825    init(e) {
2826      const t = this;
2827      if (t.initialized) return t;
2828      return (
2829        !1 === t.mount(e) ||
2830          (t.emit("beforeInit"),
2831          t.params.breakpoints && t.setBreakpoint(),
2832          t.addClasses(),
2833          t.updateSize(),
2834          t.updateSlides(),
2835          t.params.watchOverflow && t.checkOverflow(),
2836          t.params.grabCursor && t.enabled && t.setGrabCursor(),
2837          t.params.loop && t.virtual && t.params.virtual.enabled
2838            ? t.slideTo(
2839                t.params.initialSlide + t.virtual.slidesBefore,
2840                0,
2841                t.params.runCallbacksOnInit,
2842                !1,
2843                !0
2844              )
2845            : t.slideTo(
2846                t.params.initialSlide,
2847                0,
2848                t.params.runCallbacksOnInit,
2849                !1,
2850                !0
2851              ),
2852          t.params.loop && t.loopCreate(),
2853          t.attachEvents(),
2854          [...t.el.querySelectorAll('[loading="lazy"]')].forEach((e) => {
2855            e.complete
2856              ? z(t, e)
2857              : e.addEventListener("load", (e) => {
2858                  z(t, e.target);
2859                });
2860          }),
2861          $(t),
2862          (t.initialized = !0),
2863          $(t),
2864          t.emit("init"),
2865          t.emit("afterInit")),
2866        t
2867      );
2868    }
2869    destroy(e, t) {
2870      void 0 === e && (e = !0), void 0 === t && (t = !0);
2871      const s = this,
2872        { params: a, el: i, wrapperEl: r, slides: n } = s;
2873      return (
2874        void 0 === s.params ||
2875          s.destroyed ||
2876          (s.emit("beforeDestroy"),
2877          (s.initialized = !1),
2878          s.detachEvents(),
2879          a.loop && s.loopDestroy(),
2880          t &&
2881            (s.removeClasses(),
2882            i.removeAttribute("style"),
2883            r.removeAttribute("style"),
2884            n &&
2885              n.length &&
2886              n.forEach((e) => {
2887                e.classList.remove(
2888                  a.slideVisibleClass,
2889                  a.slideActiveClass,
2890                  a.slideNextClass,
2891                  a.slidePrevClass
2892                ),
2893                  e.removeAttribute("style"),
2894                  e.removeAttribute("data-swiper-slide-index");
2895              })),
2896          s.emit("destroy"),
2897          Object.keys(s.eventsListeners).forEach((e) => {
2898            s.off(e);
2899          }),
2900          !1 !== e &&
2901            ((s.el.swiper = null),
2902            (function (e) {
2903              const t = e;
2904              Object.keys(t).forEach((e) => {
2905                try {
2906                  t[e] = null;
2907                } catch (e) {}
2908                try {
2909                  delete t[e];
2910                } catch (e) {}
2911              });
2912            })(s)),
2913          (s.destroyed = !0)),
2914        null
2915      );
2916    }
2917    static extendDefaults(e) {
2918      c(Z, e);
2919    }
2920    static get extendedDefaults() {
2921      return Z;
2922    }
2923    static get defaults() {
2924      return W;
2925    }
2926    static installModule(e) {
2927      Q.prototype.__modules__ || (Q.prototype.__modules__ = []);
2928      const t = Q.prototype.__modules__;
2929      "function" == typeof e && t.indexOf(e) < 0 && t.push(e);
2930    }
2931    static use(e) {
2932      return Array.isArray(e)
2933        ? (e.forEach((e) => Q.installModule(e)), Q)
2934        : (Q.installModule(e), Q);
2935    }
2936  }
2937  function J(e, t, s, a) {
2938    return (
2939      e.params.createElements &&
2940        Object.keys(a).forEach((i) => {
2941          if (!s[i] && !0 === s.auto) {
2942            let r = h(e.el, `.${a[i]}`)[0];
2943            r || ((r = f("div", a[i])), (r.className = a[i]), e.el.append(r)),
2944              (s[i] = r),
2945              (t[i] = r);
2946          }
2947        }),
2948      s
2949    );
2950  }
2951  function ee(e) {
2952    return (
2953      void 0 === e && (e = ""),
2954      `.${e
2955        .trim()
2956        .replace(/([\.:!+\/])/g, "\\$1")
2957        .replace(/ /g, ".")}`
2958    );
2959  }
2960  function te(e) {
2961    const t = this,
2962      { params: s, slidesEl: a } = t;
2963    s.loop && t.loopDestroy();
2964    const i = (e) => {
2965      if ("string" == typeof e) {
2966        const t = document.createElement("div");
2967        (t.innerHTML = e), a.append(t.children[0]), (t.innerHTML = "");
2968      } else a.append(e);
2969    };
2970    if ("object" == typeof e && "length" in e)
2971      for (let t = 0; t < e.length; t += 1) e[t] && i(e[t]);
2972    else i(e);
2973    t.recalcSlides(),
2974      s.loop && t.loopCreate(),
2975      (s.observer && !t.isElement) || t.update();
2976  }
2977  function se(e) {
2978    const t = this,
2979      { params: s, activeIndex: a, slidesEl: i } = t;
2980    s.loop && t.loopDestroy();
2981    let r = a + 1;
2982    const n = (e) => {
2983      if ("string" == typeof e) {
2984        const t = document.createElement("div");
2985        (t.innerHTML = e), i.prepend(t.children[0]), (t.innerHTML = "");
2986      } else i.prepend(e);
2987    };
2988    if ("object" == typeof e && "length" in e) {
2989      for (let t = 0; t < e.length; t += 1) e[t] && n(e[t]);
2990      r = a + e.length;
2991    } else n(e);
2992    t.recalcSlides(),
2993      s.loop && t.loopCreate(),
2994      (s.observer && !t.isElement) || t.update(),
2995      t.slideTo(r, 0, !1);
2996  }
2997  function ae(e, t) {
2998    const s = this,
2999      { params: a, activeIndex: i, slidesEl: r } = s;
3000    let n = i;
3001    a.loop && ((n -= s.loopedSlides), s.loopDestroy(), s.recalcSlides());
3002    const l = s.slides.length;
3003    if (e <= 0) return void s.prependSlide(t);
3004    if (e >= l) return void s.appendSlide(t);
3005    let o = n > e ? n + 1 : n;
3006    const d = [];
3007    for (let t = l - 1; t >= e; t -= 1) {
3008      const e = s.slides[t];
3009      e.remove(), d.unshift(e);
3010    }
3011    if ("object" == typeof t && "length" in t) {
3012      for (let e = 0; e < t.length; e += 1) t[e] && r.append(t[e]);
3013      o = n > e ? n + t.length : n;
3014    } else r.append(t);
3015    for (let e = 0; e < d.length; e += 1) r.append(d[e]);
3016    s.recalcSlides(),
3017      a.loop && s.loopCreate(),
3018      (a.observer && !s.isElement) || s.update(),
3019      a.loop ? s.slideTo(o + s.loopedSlides, 0, !1) : s.slideTo(o, 0, !1);
3020  }
3021  function ie(e) {
3022    const t = this,
3023      { params: s, activeIndex: a } = t;
3024    let i = a;
3025    s.loop && ((i -= t.loopedSlides), t.loopDestroy());
3026    let r,
3027      n = i;
3028    if ("object" == typeof e && "length" in e) {
3029      for (let s = 0; s < e.length; s += 1)
3030        (r = e[s]), t.slides[r] && t.slides[r].remove(), r < n && (n -= 1);
3031      n = Math.max(n, 0);
3032    } else
3033      (r = e),
3034        t.slides[r] && t.slides[r].remove(),
3035        r < n && (n -= 1),
3036        (n = Math.max(n, 0));
3037    t.recalcSlides(),
3038      s.loop && t.loopCreate(),
3039      (s.observer && !t.isElement) || t.update(),
3040      s.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1);
3041  }
3042  function re() {
3043    const e = this,
3044      t = [];
3045    for (let s = 0; s < e.slides.length; s += 1) t.push(s);
3046    e.removeSlide(t);
3047  }
3048  function ne(e) {
3049    const {
3050      effect: t,
3051      swiper: s,
3052      on: a,
3053      setTranslate: i,
3054      setTransition: r,
3055      overwriteParams: n,
3056      perspective: l,
3057      recreateShadows: o,
3058      getEffectParams: d,
3059    } = e;
3060    let c;
3061    a("beforeInit", () => {
3062      if (s.params.effect !== t) return;
3063      s.classNames.push(`${s.params.containerModifierClass}${t}`),
3064        l && l() && s.classNames.push(`${s.params.containerModifierClass}3d`);
3065      const e = n ? n() : {};
3066      Object.assign(s.params, e), Object.assign(s.originalParams, e);
3067    }),
3068      a("setTranslate", () => {
3069        s.params.effect === t && i();
3070      }),
3071      a("setTransition", (e, a) => {
3072        s.params.effect === t && r(a);
3073      }),
3074      a("transitionEnd", () => {
3075        if (s.params.effect === t && o) {
3076          if (!d || !d().slideShadows) return;
3077          s.slides.forEach((e) => {
3078            e.querySelectorAll(
3079              ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
3080            ).forEach((e) => e.remove());
3081          }),
3082            o();
3083        }
3084      }),
3085      a("virtualUpdate", () => {
3086        s.params.effect === t &&
3087          (s.slides.length || (c = !0),
3088          requestAnimationFrame(() => {
3089            c && s.slides && s.slides.length && (i(), (c = !1));
3090          }));
3091      });
3092  }
3093  function le(e, t) {
3094    const s = m(t);
3095    return (
3096      s !== t &&
3097        ((s.style.backfaceVisibility = "hidden"),
3098        (s.style["-webkit-backface-visibility"] = "hidden")),
3099      s
3100    );
3101  }
3102  function oe(e) {
3103    let { swiper: t, duration: s, transformElements: a, allSlides: i } = e;
3104    const { activeIndex: r } = t;
3105    if (t.params.virtualTranslate && 0 !== s) {
3106      let e,
3107        s = !1;
3108      (e = i
3109        ? a
3110        : a.filter((e) => {
3111            const s = e.classList.contains("swiper-slide-transform")
3112              ? ((e) => {
3113                  if (!e.parentElement)
3114                    return t.slides.filter(
3115                      (t) => t.shadowRoot && t.shadowRoot === e.parentNode
3116                    )[0];
3117                  return e.parentElement;
3118                })(e)
3119              : e;
3120            return t.getSlideIndex(s) === r;
3121          })),
3122        e.forEach((e) => {
3123          y(e, () => {
3124            if (s) return;
3125            if (!t || t.destroyed) return;
3126            (s = !0), (t.animating = !1);
3127            const e = new window.CustomEvent("transitionend", {
3128              bubbles: !0,
3129              cancelable: !0,
3130            });
3131            t.wrapperEl.dispatchEvent(e);
3132          });
3133        });
3134    }
3135  }
3136  function de(e, t, s) {
3137    const a = `swiper-slide-shadow${s ? `-${s}` : ""}${
3138        e ? ` swiper-slide-shadow-${e}` : ""
3139      }`,
3140      i = m(t);
3141    let r = i.querySelector(`.${a.split(" ").join(".")}`);
3142    return r || ((r = f("div", a.split(" "))), i.append(r)), r;
3143  }
3144  Object.keys(K).forEach((e) => {
3145    Object.keys(K[e]).forEach((t) => {
3146      Q.prototype[t] = K[e][t];
3147    });
3148  }),
3149    Q.use([
3150      function (e) {
3151        let { swiper: t, on: s, emit: a } = e;
3152        const i = r();
3153        let n = null,
3154          l = null;
3155        const o = () => {
3156            t &&
3157              !t.destroyed &&
3158              t.initialized &&
3159              (a("beforeResize"), a("resize"));
3160          },
3161          d = () => {
3162            t && !t.destroyed && t.initialized && a("orientationchange");
3163          };
3164        s("init", () => {
3165          t.params.resizeObserver && void 0 !== i.ResizeObserver
3166            ? t &&
3167              !t.destroyed &&
3168              t.initialized &&
3169              ((n = new ResizeObserver((e) => {
3170                l = i.requestAnimationFrame(() => {
3171                  const { width: s, height: a } = t;
3172                  let i = s,
3173                    r = a;
3174                  e.forEach((e) => {
3175                    let { contentBoxSize: s, contentRect: a, target: n } = e;
3176                    (n && n !== t.el) ||
3177                      ((i = a ? a.width : (s[0] || s).inlineSize),
3178                      (r = a ? a.height : (s[0] || s).blockSize));
3179                  }),
3180                    (i === s && r === a) || o();
3181                });
3182              })),
3183              n.observe(t.el))
3184            : (i.addEventListener("resize", o),
3185              i.addEventListener("orientationchange", d));
3186        }),
3187          s("destroy", () => {
3188            l && i.cancelAnimationFrame(l),
3189              n && n.unobserve && t.el && (n.unobserve(t.el), (n = null)),
3190              i.removeEventListener("resize", o),
3191              i.removeEventListener("orientationchange", d);
3192          });
3193      },
3194      function (e) {
3195        let { swiper: t, extendParams: s, on: a, emit: i } = e;
3196        const n = [],
3197          l = r(),
3198          o = function (e, s) {
3199            void 0 === s && (s = {});
3200            const a = new (l.MutationObserver || l.WebkitMutationObserver)(
3201              (e) => {
3202                if (t.__preventObserver__) return;
3203                if (1 === e.length) return void i("observerUpdate", e[0]);
3204                const s = function () {
3205                  i("observerUpdate", e[0]);
3206                };
3207                l.requestAnimationFrame
3208                  ? l.requestAnimationFrame(s)
3209                  : l.setTimeout(s, 0);
3210              }
3211            );
3212            a.observe(e, {
3213              attributes: void 0 === s.attributes || s.attributes,
3214              childList: void 0 === s.childList || s.childList,
3215              characterData: void 0 === s.characterData || s.characterData,
3216            }),
3217              n.push(a);
3218          };
3219        s({ observer: !1, observeParents: !1, observeSlideChildren: !1 }),
3220          a("init", () => {
3221            if (t.params.observer) {
3222              if (t.params.observeParents) {
3223                const e = b(t.hostEl);
3224                for (let t = 0; t < e.length; t += 1) o(e[t]);
3225              }
3226              o(t.hostEl, { childList: t.params.observeSlideChildren }),
3227                o(t.wrapperEl, { attributes: !1 });
3228            }
3229          }),
3230          a("destroy", () => {
3231            n.forEach((e) => {
3232              e.disconnect();
3233            }),
3234              n.splice(0, n.length);
3235          });
3236      },
3237    ]);
3238  const ce = [
3239    function (e) {
3240      let t,
3241        { swiper: s, extendParams: i, on: r, emit: n } = e;
3242      i({
3243        virtual: {
3244          enabled: !1,
3245          slides: [],
3246          cache: !0,
3247          renderSlide: null,
3248          renderExternal: null,
3249          renderExternalUpdate: !0,
3250          addSlidesBefore: 0,
3251          addSlidesAfter: 0,
3252        },
3253      });
3254      const l = a();
3255      s.virtual = {
3256        cache: {},
3257        from: void 0,
3258        to: void 0,
3259        slides: [],
3260        offset: 0,
3261        slidesGrid: [],
3262      };
3263      const o = l.createElement("div");
3264      function d(e, t) {
3265        const a = s.params.virtual;
3266        if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t];
3267        let i;
3268        return (
3269          a.renderSlide
3270            ? ((i = a.renderSlide.call(s, e, t)),
3271              "string" == typeof i && ((o.innerHTML = i), (i = o.children[0])))
3272            : (i = s.isElement
3273                ? f("swiper-slide")
3274                : f("div", s.params.slideClass)),
3275          i.setAttribute("data-swiper-slide-index", t),
3276          a.renderSlide || (i.innerHTML = e),
3277          a.cache && (s.virtual.cache[t] = i),
3278          i
3279        );
3280      }
3281      function c(e) {
3282        const {
3283            slidesPerView: t,
3284            slidesPerGroup: a,
3285            centeredSlides: i,
3286            loop: r,
3287          } = s.params,
3288          { addSlidesBefore: l, addSlidesAfter: o } = s.params.virtual,
3289          { from: c, to: p, slides: u, slidesGrid: m, offset: f } = s.virtual;
3290        s.params.cssMode || s.updateActiveIndex();
3291        const g = s.activeIndex || 0;
3292        let v, w, b;
3293        (v = s.rtlTranslate ? "right" : s.isHorizontal() ? "left" : "top"),
3294          i
3295            ? ((w = Math.floor(t / 2) + a + o), (b = Math.floor(t / 2) + a + l))
3296            : ((w = t + (a - 1) + o), (b = (r ? t : a) + l));
3297        let y = g - b,
3298          E = g + w;
3299        r || ((y = Math.max(y, 0)), (E = Math.min(E, u.length - 1)));
3300        let x = (s.slidesGrid[y] || 0) - (s.slidesGrid[0] || 0);
3301        function S() {
3302          s.updateSlides(),
3303            s.updateProgress(),
3304            s.updateSlidesClasses(),
3305            n("virtualUpdate");
3306        }
3307        if (
3308          (r && g >= b
3309            ? ((y -= b), i || (x += s.slidesGrid[0]))
3310            : r && g < b && ((y = -b), i && (x += s.slidesGrid[0])),
3311          Object.assign(s.virtual, {
3312            from: y,
3313            to: E,
3314            offset: x,
3315            slidesGrid: s.slidesGrid,
3316            slidesBefore: b,
3317            slidesAfter: w,
3318          }),
3319          c === y && p === E && !e)
3320        )
3321          return (
3322            s.slidesGrid !== m &&
3323              x !== f &&
3324              s.slides.forEach((e) => {
3325                e.style[v] = x - Math.abs(s.cssOverflowAdjustment()) + "px";
3326              }),
3327            s.updateProgress(),
3328            void n("virtualUpdate")
3329          );
3330        if (s.params.virtual.renderExternal)
3331          return (
3332            s.params.virtual.renderExternal.call(s, {
3333              offset: x,
3334              from: y,
3335              to: E,
3336              slides: (function () {
3337                const e = [];
3338                for (let t = y; t <= E; t += 1) e.push(u[t]);
3339                return e;
3340              })(),
3341            }),
3342            void (s.params.virtual.renderExternalUpdate
3343              ? S()
3344              : n("virtualUpdate"))
3345          );
3346        const T = [],
3347          M = [],
3348          C = (e) => {
3349            let t = e;
3350            return (
3351              e < 0 ? (t = u.length + e) : t >= u.length && (t -= u.length), t
3352            );
3353          };
3354        if (e)
3355          s.slidesEl
3356            .querySelectorAll(`.${s.params.slideClass}, swiper-slide`)
3357            .forEach((e) => {
3358              e.remove();
3359            });
3360        else
3361          for (let e = c; e <= p; e += 1)
3362            if (e < y || e > E) {
3363              const t = C(e);
3364              s.slidesEl
3365                .querySelectorAll(
3366                  `.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`
3367                )
3368                .forEach((e) => {
3369                  e.remove();
3370                });
3371            }
3372        const P = r ? -u.length : 0,
3373          L = r ? 2 * u.length : u.length;
3374        for (let t = P; t < L; t += 1)
3375          if (t >= y && t <= E) {
3376            const s = C(t);
3377            void 0 === p || e
3378              ? M.push(s)
3379              : (t > p && M.push(s), t < c && T.push(s));
3380          }
3381        if (
3382          (M.forEach((e) => {
3383            s.slidesEl.append(d(u[e], e));
3384          }),
3385          r)
3386        )
3387          for (let e = T.length - 1; e >= 0; e -= 1) {
3388            const t = T[e];
3389            s.slidesEl.prepend(d(u[t], t));
3390          }
3391        else
3392          T.sort((e, t) => t - e),
3393            T.forEach((e) => {
3394              s.slidesEl.prepend(d(u[e], e));
3395            });
3396        h(s.slidesEl, ".swiper-slide, swiper-slide").forEach((e) => {
3397          e.style[v] = x - Math.abs(s.cssOverflowAdjustment()) + "px";
3398        }),
3399          S();
3400      }
3401      r("beforeInit", () => {
3402        if (!s.params.virtual.enabled) return;
3403        let e;
3404        if (void 0 === s.passedParams.virtual.slides) {
3405          const t = [...s.slidesEl.children].filter((e) =>
3406            e.matches(`.${s.params.slideClass}, swiper-slide`)
3407          );
3408          t &&
3409            t.length &&
3410            ((s.virtual.slides = [...t]),
3411            (e = !0),
3412            t.forEach((e, t) => {
3413              e.setAttribute("data-swiper-slide-index", t),
3414                (s.virtual.cache[t] = e),
3415                e.remove();
3416            }));
3417        }
3418        e || (s.virtual.slides = s.params.virtual.slides),
3419          s.classNames.push(`${s.params.containerModifierClass}virtual`),
3420          (s.params.watchSlidesProgress = !0),
3421          (s.originalParams.watchSlidesProgress = !0),
3422          s.params.initialSlide || c();
3423      }),
3424        r("setTranslate", () => {
3425          s.params.virtual.enabled &&
3426            (s.params.cssMode && !s._immediateVirtual
3427              ? (clearTimeout(t),
3428                (t = setTimeout(() => {
3429                  c();
3430                }, 100)))
3431              : c());
3432        }),
3433        r("init update resize", () => {
3434          s.params.virtual.enabled &&
3435            s.params.cssMode &&
3436            p(s.wrapperEl, "--swiper-virtual-size", `${s.virtualSize}px`);
3437        }),
3438        Object.assign(s.virtual, {
3439          appendSlide: function (e) {
3440            if ("object" == typeof e && "length" in e)
3441              for (let t = 0; t < e.length; t += 1)
3442                e[t] && s.virtual.slides.push(e[t]);
3443            else s.virtual.slides.push(e);
3444            c(!0);
3445          },
3446          prependSlide: function (e) {
3447            const t = s.activeIndex;
3448            let a = t + 1,
3449              i = 1;
3450            if (Array.isArray(e)) {
3451              for (let t = 0; t < e.length; t += 1)
3452                e[t] && s.virtual.slides.unshift(e[t]);
3453              (a = t + e.length), (i = e.length);
3454            } else s.virtual.slides.unshift(e);
3455            if (s.params.virtual.cache) {
3456              const e = s.virtual.cache,
3457                t = {};
3458              Object.keys(e).forEach((s) => {
3459                const a = e[s],
3460                  r = a.getAttribute("data-swiper-slide-index");
3461                r &&
3462                  a.setAttribute(
3463                    "data-swiper-slide-index",
3464                    parseInt(r, 10) + i
3465                  ),
3466                  (t[parseInt(s, 10) + i] = a);
3467              }),
3468                (s.virtual.cache = t);
3469            }
3470            c(!0), s.slideTo(a, 0);
3471          },
3472          removeSlide: function (e) {
3473            if (null == e) return;
3474            let t = s.activeIndex;
3475            if (Array.isArray(e))
3476              for (let a = e.length - 1; a >= 0; a -= 1)
3477                s.virtual.slides.splice(e[a], 1),
3478                  s.params.virtual.cache && delete s.virtual.cache[e[a]],
3479                  e[a] < t && (t -= 1),
3480                  (t = Math.max(t, 0));
3481            else
3482              s.virtual.slides.splice(e, 1),
3483                s.params.virtual.cache && delete s.virtual.cache[e],
3484                e < t && (t -= 1),
3485                (t = Math.max(t, 0));
3486            c(!0), s.slideTo(t, 0);
3487          },
3488          removeAllSlides: function () {
3489            (s.virtual.slides = []),
3490              s.params.virtual.cache && (s.virtual.cache = {}),
3491              c(!0),
3492              s.slideTo(0, 0);
3493          },
3494          update: c,
3495        });
3496    },
3497    function (e) {
3498      let { swiper: t, extendParams: s, on: i, emit: n } = e;
3499      const l = a(),
3500        o = r();
3501      function d(e) {
3502        if (!t.enabled) return;
3503        const { rtlTranslate: s } = t;
3504        let a = e;
3505        a.originalEvent && (a = a.originalEvent);
3506        const i = a.keyCode || a.charCode,
3507          r = t.params.keyboard.pageUpDown,
3508          d = r && 33 === i,
3509          c = r && 34 === i,
3510          p = 37 === i,
3511          u = 39 === i,
3512          m = 38 === i,
3513          h = 40 === i;
3514        if (
3515          !t.allowSlideNext &&
3516          ((t.isHorizontal() && u) || (t.isVertical() && h) || c)
3517        )
3518          return !1;
3519        if (
3520          !t.allowSlidePrev &&
3521          ((t.isHorizontal() && p) || (t.isVertical() && m) || d)
3522        )
3523          return !1;
3524        if (
3525          !(
3526            a.shiftKey ||
3527            a.altKey ||
3528            a.ctrlKey ||
3529            a.metaKey ||
3530            (l.activeElement &&
3531              l.activeElement.nodeName &&
3532              ("input" === l.activeElement.nodeName.toLowerCase() ||
3533                "textarea" === l.activeElement.nodeName.toLowerCase()))
3534          )
3535        ) {
3536          if (
3537            t.params.keyboard.onlyInViewport &&
3538            (d || c || p || u || m || h)
3539          ) {
3540            let e = !1;
3541            if (
3542              b(t.el, `.${t.params.slideClass}, swiper-slide`).length > 0 &&
3543              0 === b(t.el, `.${t.params.slideActiveClass}`).length
3544            )
3545              return;
3546            const a = t.el,
3547              i = a.clientWidth,
3548              r = a.clientHeight,
3549              n = o.innerWidth,
3550              l = o.innerHeight,
3551              d = g(a);
3552            s && (d.left -= a.scrollLeft);
3553            const c = [
3554              [d.left, d.top],
3555              [d.left + i, d.top],
3556              [d.left, d.top + r],
3557              [d.left + i, d.top + r],
3558            ];
3559            for (let t = 0; t < c.length; t += 1) {
3560              const s = c[t];
3561              if (s[0] >= 0 && s[0] <= n && s[1] >= 0 && s[1] <= l) {
3562                if (0 === s[0] && 0 === s[1]) continue;
3563                e = !0;
3564              }
3565            }
3566            if (!e) return;
3567          }
3568          t.isHorizontal()
3569            ? ((d || c || p || u) &&
3570                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
3571              (((c || u) && !s) || ((d || p) && s)) && t.slideNext(),
3572              (((d || p) && !s) || ((c || u) && s)) && t.slidePrev())
3573            : ((d || c || m || h) &&
3574                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
3575              (c || h) && t.slideNext(),
3576              (d || m) && t.slidePrev()),
3577            n("keyPress", i);
3578        }
3579      }
3580      function c() {
3581        t.keyboard.enabled ||
3582          (l.addEventListener("keydown", d), (t.keyboard.enabled = !0));
3583      }
3584      function p() {
3585        t.keyboard.enabled &&
3586          (l.removeEventListener("keydown", d), (t.keyboard.enabled = !1));
3587      }
3588      (t.keyboard = { enabled: !1 }),
3589        s({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }),
3590        i("init", () => {
3591          t.params.keyboard.enabled && c();
3592        }),
3593        i("destroy", () => {
3594          t.keyboard.enabled && p();
3595        }),
3596        Object.assign(t.keyboard, { enable: c, disable: p });
3597    },
3598    function (e) {
3599      let { swiper: t, extendParams: s, on: a, emit: i } = e;
3600      const o = r();
3601      let d;
3602      s({
3603        mousewheel: {
3604          enabled: !1,
3605          releaseOnEdges: !1,
3606          invert: !1,
3607          forceToAxis: !1,
3608          sensitivity: 1,
3609          eventsTarget: "container",
3610          thresholdDelta: null,
3611          thresholdTime: null,
3612          noMousewheelClass: "swiper-no-mousewheel",
3613        },
3614      }),
3615        (t.mousewheel = { enabled: !1 });
3616      let c,
3617        p = l();
3618      const u = [];
3619      function m() {
3620        t.enabled && (t.mouseEntered = !0);
3621      }
3622      function h() {
3623        t.enabled && (t.mouseEntered = !1);
3624      }
3625      function f(e) {
3626        return (
3627          !(
3628            t.params.mousewheel.thresholdDelta &&
3629            e.delta < t.params.mousewheel.thresholdDelta
3630          ) &&
3631          !(
3632            t.params.mousewheel.thresholdTime &&
3633            l() - p < t.params.mousewheel.thresholdTime
3634          ) &&
3635          ((e.delta >= 6 && l() - p < 60) ||
3636            (e.direction < 0
3637              ? (t.isEnd && !t.params.loop) ||
3638                t.animating ||
3639                (t.slideNext(), i("scroll", e.raw))
3640              : (t.isBeginning && !t.params.loop) ||
3641                t.animating ||
3642                (t.slidePrev(), i("scroll", e.raw)),
3643            (p = new o.Date().getTime()),
3644            !1))
3645        );
3646      }
3647      function g(e) {
3648        let s = e,
3649          a = !0;
3650        if (!t.enabled) return;
3651        if (e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))
3652          return;
3653        const r = t.params.mousewheel;
3654        t.params.cssMode && s.preventDefault();
3655        let o = t.el;
3656        "container" !== t.params.mousewheel.eventsTarget &&
3657          (o = document.querySelector(t.params.mousewheel.eventsTarget));
3658        const p = o && o.contains(s.target);
3659        if (!t.mouseEntered && !p && !r.releaseOnEdges) return !0;
3660        s.originalEvent && (s = s.originalEvent);
3661        let m = 0;
3662        const h = t.rtlTranslate ? -1 : 1,
3663          g = (function (e) {
3664            let t = 0,
3665              s = 0,
3666              a = 0,
3667              i = 0;
3668            return (
3669              "detail" in e && (s = e.detail),
3670              "wheelDelta" in e && (s = -e.wheelDelta / 120),
3671              "wheelDeltaY" in e && (s = -e.wheelDeltaY / 120),
3672              "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120),
3673              "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = s), (s = 0)),
3674              (a = 10 * t),
3675              (i = 10 * s),
3676              "deltaY" in e && (i = e.deltaY),
3677              "deltaX" in e && (a = e.deltaX),
3678              e.shiftKey && !a && ((a = i), (i = 0)),
3679              (a || i) &&
3680                e.deltaMode &&
3681                (1 === e.deltaMode
3682                  ? ((a *= 40), (i *= 40))
3683                  : ((a *= 800), (i *= 800))),
3684              a && !t && (t = a < 1 ? -1 : 1),
3685              i && !s && (s = i < 1 ? -1 : 1),
3686              { spinX: t, spinY: s, pixelX: a, pixelY: i }
3687            );
3688          })(s);
3689        if (r.forceToAxis)
3690          if (t.isHorizontal()) {
3691            if (!(Math.abs(g.pixelX) > Math.abs(g.pixelY))) return !0;
3692            m = -g.pixelX * h;
3693          } else {
3694            if (!(Math.abs(g.pixelY) > Math.abs(g.pixelX))) return !0;
3695            m = -g.pixelY;
3696          }
3697        else
3698          m =
3699            Math.abs(g.pixelX) > Math.abs(g.pixelY) ? -g.pixelX * h : -g.pixelY;
3700        if (0 === m) return !0;
3701        r.invert && (m = -m);
3702        let v = t.getTranslate() + m * r.sensitivity;
3703        if (
3704          (v >= t.minTranslate() && (v = t.minTranslate()),
3705          v <= t.maxTranslate() && (v = t.maxTranslate()),
3706          (a =
3707            !!t.params.loop ||
3708            !(v === t.minTranslate() || v === t.maxTranslate())),
3709          a && t.params.nested && s.stopPropagation(),
3710          t.params.freeMode && t.params.freeMode.enabled)
3711        ) {
3712          const e = { time: l(), delta: Math.abs(m), direction: Math.sign(m) },
3713            a =
3714              c &&
3715              e.time < c.time + 500 &&
3716              e.delta <= c.delta &&
3717              e.direction === c.direction;
3718          if (!a) {
3719            c = void 0;
3720            let l = t.getTranslate() + m * r.sensitivity;
3721            const o = t.isBeginning,
3722              p = t.isEnd;
3723            if (
3724              (l >= t.minTranslate() && (l = t.minTranslate()),
3725              l <= t.maxTranslate() && (l = t.maxTranslate()),
3726              t.setTransition(0),
3727              t.setTranslate(l),
3728              t.updateProgress(),
3729              t.updateActiveIndex(),
3730              t.updateSlidesClasses(),
3731              ((!o && t.isBeginning) || (!p && t.isEnd)) &&
3732                t.updateSlidesClasses(),
3733              t.params.loop &&
3734                t.loopFix({
3735                  direction: e.direction < 0 ? "next" : "prev",
3736                  byMousewheel: !0,
3737                }),
3738              t.params.freeMode.sticky)
3739            ) {
3740              clearTimeout(d), (d = void 0), u.length >= 15 && u.shift();
3741              const s = u.length ? u[u.length - 1] : void 0,
3742                a = u[0];
3743              if (
3744                (u.push(e),
3745                s && (e.delta > s.delta || e.direction !== s.direction))
3746              )
3747                u.splice(0);
3748              else if (
3749                u.length >= 15 &&
3750                e.time - a.time < 500 &&
3751                a.delta - e.delta >= 1 &&
3752                e.delta <= 6
3753              ) {
3754                const s = m > 0 ? 0.8 : 0.2;
3755                (c = e),
3756                  u.splice(0),
3757                  (d = n(() => {
3758                    t.slideToClosest(t.params.speed, !0, void 0, s);
3759                  }, 0));
3760              }
3761              d ||
3762                (d = n(() => {
3763                  (c = e),
3764                    u.splice(0),
3765                    t.slideToClosest(t.params.speed, !0, void 0, 0.5);
3766                }, 500));
3767            }
3768            if (
3769              (a || i("scroll", s),
3770              t.params.autoplay &&
3771                t.params.autoplayDisableOnInteraction &&
3772                t.autoplay.stop(),
3773              r.releaseOnEdges &&
3774                (l === t.minTranslate() || l === t.maxTranslate()))
3775            )
3776              return !0;
3777          }
3778        } else {
3779          const s = {
3780            time: l(),
3781            delta: Math.abs(m),
3782            direction: Math.sign(m),
3783            raw: e,
3784          };
3785          u.length >= 2 && u.shift();
3786          const a = u.length ? u[u.length - 1] : void 0;
3787          if (
3788            (u.push(s),
3789            a
3790              ? (s.direction !== a.direction ||
3791                  s.delta > a.delta ||
3792                  s.time > a.time + 150) &&
3793                f(s)
3794              : f(s),
3795            (function (e) {
3796              const s = t.params.mousewheel;
3797              if (e.direction < 0) {
3798                if (t.isEnd && !t.params.loop && s.releaseOnEdges) return !0;
3799              } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges)
3800                return !0;
3801              return !1;
3802            })(s))
3803          )
3804            return !0;
3805        }
3806        return s.preventDefault ? s.preventDefault() : (s.returnValue = !1), !1;
3807      }
3808      function v(e) {
3809        let s = t.el;
3810        "container" !== t.params.mousewheel.eventsTarget &&
3811          (s = document.querySelector(t.params.mousewheel.eventsTarget)),
3812          s[e]("mouseenter", m),
3813          s[e]("mouseleave", h),
3814          s[e]("wheel", g);
3815      }
3816      function w() {
3817        return t.params.cssMode
3818          ? (t.wrapperEl.removeEventListener("wheel", g), !0)
3819          : !t.mousewheel.enabled &&
3820              (v("addEventListener"), (t.mousewheel.enabled = !0), !0);
3821      }
3822      function b() {
3823        return t.params.cssMode
3824          ? (t.wrapperEl.addEventListener(event, g), !0)
3825          : !!t.mousewheel.enabled &&
3826              (v("removeEventListener"), (t.mousewheel.enabled = !1), !0);
3827      }
3828      a("init", () => {
3829        !t.params.mousewheel.enabled && t.params.cssMode && b(),
3830          t.params.mousewheel.enabled && w();
3831      }),
3832        a("destroy", () => {
3833          t.params.cssMode && w(), t.mousewheel.enabled && b();
3834        }),
3835        Object.assign(t.mousewheel, { enable: w, disable: b });
3836    },
3837    function (e) {
3838      let { swiper: t, extendParams: s, on: a, emit: i } = e;
3839      s({
3840        navigation: {
3841          nextEl: null,
3842          prevEl: null,
3843          hideOnClick: !1,
3844          disabledClass: "swiper-button-disabled",
3845          hiddenClass: "swiper-button-hidden",
3846          lockClass: "swiper-button-lock",
3847          navigationDisabledClass: "swiper-navigation-disabled",
3848        },
3849      }),
3850        (t.navigation = { nextEl: null, prevEl: null });
3851      const r = (e) => (Array.isArray(e) ? e : [e]).filter((e) => !!e);
3852      function n(e) {
3853        let s;
3854        return e &&
3855          "string" == typeof e &&
3856          t.isElement &&
3857          ((s = t.el.querySelector(e)), s)
3858          ? s
3859          : (e &&
3860              ("string" == typeof e && (s = [...document.querySelectorAll(e)]),
3861              t.params.uniqueNavElements &&
3862                "string" == typeof e &&
3863                s.length > 1 &&
3864                1 === t.el.querySelectorAll(e).length &&
3865                (s = t.el.querySelector(e))),
3866            e && !s ? e : s);
3867      }
3868      function l(e, s) {
3869        const a = t.params.navigation;
3870        (e = r(e)).forEach((e) => {
3871          e &&
3872            (e.classList[s ? "add" : "remove"](...a.disabledClass.split(" ")),
3873            "BUTTON" === e.tagName && (e.disabled = s),
3874            t.params.watchOverflow &&
3875              t.enabled &&
3876              e.classList[t.isLocked ? "add" : "remove"](a.lockClass));
3877        });
3878      }
3879      function o() {
3880        const { nextEl: e, prevEl: s } = t.navigation;
3881        if (t.params.loop) return l(s, !1), void l(e, !1);
3882        l(s, t.isBeginning && !t.params.rewind),
3883          l(e, t.isEnd && !t.params.rewind);
3884      }
3885      function d(e) {
3886        e.preventDefault(),
3887          (!t.isBeginning || t.params.loop || t.params.rewind) &&
3888            (t.slidePrev(), i("navigationPrev"));
3889      }
3890      function c(e) {
3891        e.preventDefault(),
3892          (!t.isEnd || t.params.loop || t.params.rewind) &&
3893            (t.slideNext(), i("navigationNext"));
3894      }
3895      function p() {
3896        const e = t.params.navigation;
3897        if (
3898          ((t.params.navigation = J(
3899            t,
3900            t.originalParams.navigation,
3901            t.params.navigation,
3902            { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" }
3903          )),
3904          !e.nextEl && !e.prevEl)
3905        )
3906          return;
3907        let s = n(e.nextEl),
3908          a = n(e.prevEl);
3909        Object.assign(t.navigation, { nextEl: s, prevEl: a }),
3910          (s = r(s)),
3911          (a = r(a));
3912        const i = (s, a) => {
3913          s && s.addEventListener("click", "next" === a ? c : d),
3914            !t.enabled && s && s.classList.add(...e.lockClass.split(" "));
3915        };
3916        s.forEach((e) => i(e, "next")), a.forEach((e) => i(e, "prev"));
3917      }
3918      function u() {
3919        let { nextEl: e, prevEl: s } = t.navigation;
3920        (e = r(e)), (s = r(s));
3921        const a = (e, s) => {
3922          e.removeEventListener("click", "next" === s ? c : d),
3923            e.classList.remove(...t.params.navigation.disabledClass.split(" "));
3924        };
3925        e.forEach((e) => a(e, "next")), s.forEach((e) => a(e, "prev"));
3926      }
3927      a("init", () => {
3928        !1 === t.params.navigation.enabled ? m() : (p(), o());
3929      }),
3930        a("toEdge fromEdge lock unlock", () => {
3931          o();
3932        }),
3933        a("destroy", () => {
3934          u();
3935        }),
3936        a("enable disable", () => {
3937          let { nextEl: e, prevEl: s } = t.navigation;
3938          (e = r(e)),
3939            (s = r(s)),
3940            [...e, ...s]
3941              .filter((e) => !!e)
3942              .forEach((e) =>
3943                e.classList[t.enabled ? "remove" : "add"](
3944                  t.params.navigation.lockClass
3945                )
3946              );
3947        }),
3948        a("click", (e, s) => {
3949          let { nextEl: a, prevEl: n } = t.navigation;
3950          (a = r(a)), (n = r(n));
3951          const l = s.target;
3952          if (
3953            t.params.navigation.hideOnClick &&
3954            !n.includes(l) &&
3955            !a.includes(l)
3956          ) {
3957            if (
3958              t.pagination &&
3959              t.params.pagination &&
3960              t.params.pagination.clickable &&
3961              (t.pagination.el === l || t.pagination.el.contains(l))
3962            )
3963              return;
3964            let e;
3965            a.length
3966              ? (e = a[0].classList.contains(t.params.navigation.hiddenClass))
3967              : n.length &&
3968                (e = n[0].classList.contains(t.params.navigation.hiddenClass)),
3969              i(!0 === e ? "navigationShow" : "navigationHide"),
3970              [...a, ...n]
3971                .filter((e) => !!e)
3972                .forEach((e) =>
3973                  e.classList.toggle(t.params.navigation.hiddenClass)
3974                );
3975          }
3976        });
3977      const m = () => {
3978        t.el.classList.add(
3979          ...t.params.navigation.navigationDisabledClass.split(" ")
3980        ),
3981          u();
3982      };
3983      Object.assign(t.navigation, {
3984        enable: () => {
3985          t.el.classList.remove(
3986            ...t.params.navigation.navigationDisabledClass.split(" ")
3987          ),
3988            p(),
3989            o();
3990        },
3991        disable: m,
3992        update: o,
3993        init: p,
3994        destroy: u,
3995      });
3996    },
3997    function (e) {
3998      let { swiper: t, extendParams: s, on: a, emit: i } = e;
3999      const r = "swiper-pagination";
4000      let n;
4001      s({
4002        pagination: {
4003          el: null,
4004          bulletElement: "span",
4005          clickable: !1,
4006          hideOnClick: !1,
4007          renderBullet: null,
4008          renderProgressbar: null,
4009          renderFraction: null,
4010          renderCustom: null,
4011          progressbarOpposite: !1,
4012          type: "bullets",
4013          dynamicBullets: !1,
4014          dynamicMainBullets: 1,
4015          formatFractionCurrent: (e) => e,
4016          formatFractionTotal: (e) => e,
4017          bulletClass: `${r}-bullet`,
4018          bulletActiveClass: `${r}-bullet-active`,
4019          modifierClass: `${r}-`,
4020          currentClass: `${r}-current`,
4021          totalClass: `${r}-total`,
4022          hiddenClass: `${r}-hidden`,
4023          progressbarFillClass: `${r}-progressbar-fill`,
4024          progressbarOppositeClass: `${r}-progressbar-opposite`,
4025          clickableClass: `${r}-clickable`,
4026          lockClass: `${r}-lock`,
4027          horizontalClass: `${r}-horizontal`,
4028          verticalClass: `${r}-vertical`,
4029          paginationDisabledClass: `${r}-disabled`,
4030        },
4031      }),
4032        (t.pagination = { el: null, bullets: [] });
4033      let l = 0;
4034      const o = (e) => (Array.isArray(e) ? e : [e]).filter((e) => !!e);
4035      function d() {
4036        return (
4037          !t.params.pagination.el ||
4038          !t.pagination.el ||
4039          (Array.isArray(t.pagination.el) && 0 === t.pagination.el.length)
4040        );
4041      }
4042      function c(e, s) {
4043        const { bulletActiveClass: a } = t.params.pagination;
4044        e &&
4045          (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) &&
4046          (e.classList.add(`${a}-${s}`),
4047          (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) &&
4048            e.classList.add(`${a}-${s}-${s}`));
4049      }
4050      function p(e) {
4051        const s = e.target.closest(ee(t.params.pagination.bulletClass));
4052        if (!s) return;
4053        e.preventDefault();
4054        const a = w(s) * t.params.slidesPerGroup;
4055        if (t.params.loop) {
4056          if (t.realIndex === a) return;
4057          const e = t.getSlideIndexByData(a),
4058            s = t.getSlideIndexByData(t.realIndex);
4059          e > t.slides.length - t.loopedSlides &&
4060            t.loopFix({
4061              direction: e > s ? "next" : "prev",
4062              activeSlideIndex: e,
4063              slideTo: !1,
4064            }),
4065            t.slideToLoop(a);
4066        } else t.slideTo(a);
4067      }
4068      function u() {
4069        const e = t.rtl,
4070          s = t.params.pagination;
4071        if (d()) return;
4072        let a,
4073          r,
4074          p = t.pagination.el;
4075        p = o(p);
4076        const u =
4077            t.virtual && t.params.virtual.enabled
4078              ? t.virtual.slides.length
4079              : t.slides.length,
4080          m = t.params.loop
4081            ? Math.ceil(u / t.params.slidesPerGroup)
4082            : t.snapGrid.length;
4083        if (
4084          (t.params.loop
4085            ? ((r = t.previousRealIndex || 0),
4086              (a =
4087                t.params.slidesPerGroup > 1
4088                  ? Math.floor(t.realIndex / t.params.slidesPerGroup)
4089                  : t.realIndex))
4090            : void 0 !== t.snapIndex
4091            ? ((a = t.snapIndex), (r = t.previousSnapIndex))
4092            : ((r = t.previousIndex || 0), (a = t.activeIndex || 0)),
4093          "bullets" === s.type &&
4094            t.pagination.bullets &&
4095            t.pagination.bullets.length > 0)
4096        ) {
4097          const i = t.pagination.bullets;
4098          let o, d, u;
4099          if (
4100            (s.dynamicBullets &&
4101              ((n = E(i[0], t.isHorizontal() ? "width" : "height", !0)),
4102              p.forEach((e) => {
4103                e.style[t.isHorizontal() ? "width" : "height"] =
4104                  n * (s.dynamicMainBullets + 4) + "px";
4105              }),
4106              s.dynamicMainBullets > 1 &&
4107                void 0 !== r &&
4108                ((l += a - (r || 0)),
4109                l > s.dynamicMainBullets - 1
4110                  ? (l = s.dynamicMainBullets - 1)
4111                  : l < 0 && (l = 0)),
4112              (o = Math.max(a - l, 0)),
4113              (d = o + (Math.min(i.length, s.dynamicMainBullets) - 1)),
4114              (u = (d + o) / 2)),
4115            i.forEach((e) => {
4116              const t = [
4117                ...[
4118                  "",
4119                  "-next",
4120                  "-next-next",
4121                  "-prev",
4122                  "-prev-prev",
4123                  "-main",
4124                ].map((e) => `${s.bulletActiveClass}${e}`),
4125              ]
4126                .map((e) =>
4127                  "string" == typeof e && e.includes(" ") ? e.split(" ") : e
4128                )
4129                .flat();
4130              e.classList.remove(...t);
4131            }),
4132            p.length > 1)
4133          )
4134            i.forEach((e) => {
4135              const i = w(e);
4136              i === a
4137                ? e.classList.add(...s.bulletActiveClass.split(" "))
4138                : t.isElement && e.setAttribute("part", "bullet"),
4139                s.dynamicBullets &&
4140                  (i >= o &&
4141                    i <= d &&
4142                    e.classList.add(
4143                      ...`${s.bulletActiveClass}-main`.split(" ")
4144                    ),
4145                  i === o && c(e, "prev"),
4146                  i === d && c(e, "next"));
4147            });
4148          else {
4149            const e = i[a];
4150            if (
4151              (e && e.classList.add(...s.bulletActiveClass.split(" ")),
4152              t.isElement &&
4153                i.forEach((e, t) => {
4154                  e.setAttribute("part", t === a ? "bullet-active" : "bullet");
4155                }),
4156              s.dynamicBullets)
4157            ) {
4158              const e = i[o],
4159                t = i[d];
4160              for (let e = o; e <= d; e += 1)
4161                i[e] &&
4162                  i[e].classList.add(
4163                    ...`${s.bulletActiveClass}-main`.split(" ")
4164                  );
4165              c(e, "prev"), c(t, "next");
4166            }
4167          }
4168          if (s.dynamicBullets) {
4169            const a = Math.min(i.length, s.dynamicMainBullets + 4),
4170              r = (n * a - n) / 2 - u * n,
4171              l = e ? "right" : "left";
4172            i.forEach((e) => {
4173              e.style[t.isHorizontal() ? l : "top"] = `${r}px`;
4174            });
4175          }
4176        }
4177        p.forEach((e, r) => {
4178          if (
4179            ("fraction" === s.type &&
4180              (e.querySelectorAll(ee(s.currentClass)).forEach((e) => {
4181                e.textContent = s.formatFractionCurrent(a + 1);
4182              }),
4183              e.querySelectorAll(ee(s.totalClass)).forEach((e) => {
4184                e.textContent = s.formatFractionTotal(m);
4185              })),
4186            "progressbar" === s.type)
4187          ) {
4188            let i;
4189            i = s.progressbarOpposite
4190              ? t.isHorizontal()
4191                ? "vertical"
4192                : "horizontal"
4193              : t.isHorizontal()
4194              ? "horizontal"
4195              : "vertical";
4196            const r = (a + 1) / m;
4197            let n = 1,
4198              l = 1;
4199            "horizontal" === i ? (n = r) : (l = r),
4200              e.querySelectorAll(ee(s.progressbarFillClass)).forEach((e) => {
4201                (e.style.transform = `translate3d(0,0,0) scaleX(${n}) scaleY(${l})`),
4202                  (e.style.transitionDuration = `${t.params.speed}ms`);
4203              });
4204          }
4205          "custom" === s.type && s.renderCustom
4206            ? ((e.innerHTML = s.renderCustom(t, a + 1, m)),
4207              0 === r && i("paginationRender", e))
4208            : (0 === r && i("paginationRender", e), i("paginationUpdate", e)),
4209            t.params.watchOverflow &&
4210              t.enabled &&
4211              e.classList[t.isLocked ? "add" : "remove"](s.lockClass);
4212        });
4213      }
4214      function m() {
4215        const e = t.params.pagination;
4216        if (d()) return;
4217        const s =
4218          t.virtual && t.params.virtual.enabled
4219            ? t.virtual.slides.length
4220            : t.slides.length;
4221        let a = t.pagination.el;
4222        a = o(a);
4223        let r = "";
4224        if ("bullets" === e.type) {
4225          let a = t.params.loop
4226            ? Math.ceil(s / t.params.slidesPerGroup)
4227            : t.snapGrid.length;
4228          t.params.freeMode && t.params.freeMode.enabled && a > s && (a = s);
4229          for (let s = 0; s < a; s += 1)
4230            e.renderBullet
4231              ? (r += e.renderBullet.call(t, s, e.bulletClass))
4232              : (r += `<${e.bulletElement} ${
4233                  t.isElement ? 'part="bullet"' : ""
4234                } class="${e.bulletClass}"></${e.bulletElement}>`);
4235        }
4236        "fraction" === e.type &&
4237          (r = e.renderFraction
4238            ? e.renderFraction.call(t, e.currentClass, e.totalClass)
4239            : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`),
4240          "progressbar" === e.type &&
4241            (r = e.renderProgressbar
4242              ? e.renderProgressbar.call(t, e.progressbarFillClass)
4243              : `<span class="${e.progressbarFillClass}"></span>`),
4244          (t.pagination.bullets = []),
4245          a.forEach((s) => {
4246            "custom" !== e.type && (s.innerHTML = r || ""),
4247              "bullets" === e.type &&
4248                t.pagination.bullets.push(
4249                  ...s.querySelectorAll(ee(e.bulletClass))
4250                );
4251          }),
4252          "custom" !== e.type && i("paginationRender", a[0]);
4253      }
4254      function h() {
4255        t.params.pagination = J(
4256          t,
4257          t.originalParams.pagination,
4258          t.params.pagination,
4259          { el: "swiper-pagination" }
4260        );
4261        const e = t.params.pagination;
4262        if (!e.el) return;
4263        let s;
4264        "string" == typeof e.el &&
4265          t.isElement &&
4266          (s = t.el.querySelector(e.el)),
4267          s ||
4268            "string" != typeof e.el ||
4269            (s = [...document.querySelectorAll(e.el)]),
4270          s || (s = e.el),
4271          s &&
4272            0 !== s.length &&
4273            (t.params.uniqueNavElements &&
4274              "string" == typeof e.el &&
4275              Array.isArray(s) &&
4276              s.length > 1 &&
4277              ((s = [...t.el.querySelectorAll(e.el)]),
4278              s.length > 1 &&
4279                (s = s.filter((e) => b(e, ".swiper")[0] === t.el)[0])),
4280            Array.isArray(s) && 1 === s.length && (s = s[0]),
4281            Object.assign(t.pagination, { el: s }),
4282            (s = o(s)),
4283            s.forEach((s) => {
4284              "bullets" === e.type &&
4285                e.clickable &&
4286                s.classList.add(e.clickableClass),
4287                s.classList.add(e.modifierClass + e.type),
4288                s.classList.add(
4289                  t.isHorizontal() ? e.horizontalClass : e.verticalClass
4290                ),
4291                "bullets" === e.type &&
4292                  e.dynamicBullets &&
4293                  (s.classList.add(`${e.modifierClass}${e.type}-dynamic`),
4294                  (l = 0),
4295                  e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)),
4296                "progressbar" === e.type &&
4297                  e.progressbarOpposite &&
4298                  s.classList.add(e.progressbarOppositeClass),
4299                e.clickable && s.addEventListener("click", p),
4300                t.enabled || s.classList.add(e.lockClass);
4301            }));
4302      }
4303      function f() {
4304        const e = t.params.pagination;
4305        if (d()) return;
4306        let s = t.pagination.el;
4307        s &&
4308          ((s = o(s)),
4309          s.forEach((s) => {
4310            s.classList.remove(e.hiddenClass),
4311              s.classList.remove(e.modifierClass + e.type),
4312              s.classList.remove(
4313                t.isHorizontal() ? e.horizontalClass : e.verticalClass
4314              ),
4315              e.clickable && s.removeEventListener("click", p);
4316          })),
4317          t.pagination.bullets &&
4318            t.pagination.bullets.forEach((t) =>
4319              t.classList.remove(...e.bulletActiveClass.split(" "))
4320            );
4321      }
4322      a("changeDirection", () => {
4323        if (!t.pagination || !t.pagination.el) return;
4324        const e = t.params.pagination;
4325        let { el: s } = t.pagination;
4326        (s = o(s)),
4327          s.forEach((s) => {
4328            s.classList.remove(e.horizontalClass, e.verticalClass),
4329              s.classList.add(
4330                t.isHorizontal() ? e.horizontalClass : e.verticalClass
4331              );
4332          });
4333      }),
4334        a("init", () => {
4335          !1 === t.params.pagination.enabled ? g() : (h(), m(), u());
4336        }),
4337        a("activeIndexChange", () => {
4338          void 0 === t.snapIndex && u();
4339        }),
4340        a("snapIndexChange", () => {
4341          u();
4342        }),
4343        a("snapGridLengthChange", () => {
4344          m(), u();
4345        }),
4346        a("destroy", () => {
4347          f();
4348        }),
4349        a("enable disable", () => {
4350          let { el: e } = t.pagination;
4351          e &&
4352            ((e = o(e)),
4353            e.forEach((e) =>
4354              e.classList[t.enabled ? "remove" : "add"](
4355                t.params.pagination.lockClass
4356              )
4357            ));
4358        }),
4359        a("lock unlock", () => {
4360          u();
4361        }),
4362        a("click", (e, s) => {
4363          const a = s.target,
4364            r = o(t.pagination.el);
4365          if (
4366            t.params.pagination.el &&
4367            t.params.pagination.hideOnClick &&
4368            r &&
4369            r.length > 0 &&
4370            !a.classList.contains(t.params.pagination.bulletClass)
4371          ) {
4372            if (
4373              t.navigation &&
4374              ((t.navigation.nextEl && a === t.navigation.nextEl) ||
4375                (t.navigation.prevEl && a === t.navigation.prevEl))
4376            )
4377              return;
4378            const e = r[0].classList.contains(t.params.pagination.hiddenClass);
4379            i(!0 === e ? "paginationShow" : "paginationHide"),
4380              r.forEach((e) =>
4381                e.classList.toggle(t.params.pagination.hiddenClass)
4382              );
4383          }
4384        });
4385      const g = () => {
4386        t.el.classList.add(t.params.pagination.paginationDisabledClass);
4387        let { el: e } = t.pagination;
4388        e &&
4389          ((e = o(e)),
4390          e.forEach((e) =>
4391            e.classList.add(t.params.pagination.paginationDisabledClass)
4392          )),
4393          f();
4394      };
4395      Object.assign(t.pagination, {
4396        enable: () => {
4397          t.el.classList.remove(t.params.pagination.paginationDisabledClass);
4398          let { el: e } = t.pagination;
4399          e &&
4400            ((e = o(e)),
4401            e.forEach((e) =>
4402              e.classList.remove(t.params.pagination.paginationDisabledClass)
4403            )),
4404            h(),
4405            m(),
4406            u();
4407        },
4408        disable: g,
4409        render: m,
4410        update: u,
4411        init: h,
4412        destroy: f,
4413      });
4414    },
4415    function (e) {
4416      let { swiper: t, extendParams: s, on: i, emit: r }
4416 = e;
4417      const l = a();
4418      let o,
4419        d,
4420        c,
4421        p,
4422        u = !1,
4423        m = null,
4424        h = null;
4425      function v() {
4426        if (!t.params.scrollbar.el || !t.scrollbar.el) return;
4427        const { scrollbar: e, rtlTranslate: s } = t,
4428          { dragEl: a, el: i } = e,
4429          r = t.params.scrollbar,
4430          n = t.params.loop ? t.progressLoop : t.progress;
4431        let l = d,
4432          o = (c - d) * n;
4433        s
4434          ? ((o = -o),
4435            o > 0 ? ((l = d - o), (o = 0)) : -o + d > c && (l = c + o))
4436          : o < 0
4437          ? ((l = d + o), (o = 0))
4438          : o + d > c && (l = c - o),
4439          t.isHorizontal()
4440            ? ((a.style.transform = `translate3d(${o}px, 0, 0)`),
4441              (a.style.width = `${l}px`))
4442            : ((a.style.transform = `translate3d(0px, ${o}px, 0)`),
4443              (a.style.height = `${l}px`)),
4444          r.hide &&
4445            (clearTimeout(m),
4446            (i.style.opacity = 1),
4447            (m = setTimeout(() => {
4448              (i.style.opacity = 0), (i.style.transitionDuration = "400ms");
4449            }, 1e3)));
4450      }
4451      function w() {
4452        if (!t.params.scrollbar.el || !t.scrollbar.el) return;
4453        const { scrollbar: e } = t,
4454          { dragEl: s, el: a } = e;
4455        (s.style.width = ""),
4456          (s.style.height = ""),
4457          (c = t.isHorizontal() ? a.offsetWidth : a.offsetHeight),
4458          (p =
4459            t.size /
4460            (t.virtualSize +
4461              t.params.slidesOffsetBefore -
4462              (t.params.centeredSlides ? t.snapGrid[0] : 0))),
4463          (d =
4464            "auto" === t.params.scrollbar.dragSize
4465              ? c * p
4466              : parseInt(t.params.scrollbar.dragSize, 10)),
4467          t.isHorizontal()
4468            ? (s.style.width = `${d}px`)
4469            : (s.style.height = `${d}px`),
4470          (a.style.display = p >= 1 ? "none" : ""),
4471          t.params.scrollbar.hide && (a.style.opacity = 0),
4472          t.params.watchOverflow &&
4473            t.enabled &&
4474            e.el.classList[t.isLocked ? "add" : "remove"](
4475              t.params.scrollbar.lockClass
4476            );
4477      }
4478      function b(e) {
4479        return t.isHorizontal() ? e.clientX : e.clientY;
4480      }
4481      function y(e) {
4482        const { scrollbar: s, rtlTranslate: a } = t,
4483          { el: i } = s;
4484        let r;
4485        (r =
4486          (b(e) -
4487            g(i)[t.isHorizontal() ? "left" : "top"] -
4488            (null !== o ? o : d / 2)) /
4489          (c - d)),
4490          (r = Math.max(Math.min(r, 1), 0)),
4491          a && (r = 1 - r);
4492        const n = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * r;
4493        t.updateProgress(n),
4494          t.setTranslate(n),
4495          t.updateActiveIndex(),
4496          t.updateSlidesClasses();
4497      }
4498      function E(e) {
4499        const s = t.params.scrollbar,
4500          { scrollbar: a, wrapperEl: i } = t,
4501          { el: n, dragEl: l } = a;
4502        (u = !0),
4503          (o =
4504            e.target === l
4505              ? b(e) -
4506                e.target.getBoundingClientRect()[
4507                  t.isHorizontal() ? "left" : "top"
4508                ]
4509              : null),
4510          e.preventDefault(),
4511          e.stopPropagation(),
4512          (i.style.transitionDuration = "100ms"),
4513          (l.style.transitionDuration = "100ms"),
4514          y(e),
4515          clearTimeout(h),
4516          (n.style.transitionDuration = "0ms"),
4517          s.hide && (n.style.opacity = 1),
4518          t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "none"),
4519          r("scrollbarDragStart", e);
4520      }
4521      function x(e) {
4522        const { scrollbar: s, wrapperEl: a } = t,
4523          { el: i, dragEl: n } = s;
4524        u &&
4525          (e.preventDefault ? e.preventDefault() : (e.returnValue = !1),
4526          y(e),
4527          (a.style.transitionDuration = "0ms"),
4528          (i.style.transitionDuration = "0ms"),
4529          (n.style.transitionDuration = "0ms"),
4530          r("scrollbarDragMove", e));
4531      }
4532      function S(e) {
4533        const s = t.params.scrollbar,
4534          { scrollbar: a, wrapperEl: i } = t,
4535          { el: l } = a;
4536        u &&
4537          ((u = !1),
4538          t.params.cssMode &&
4539            ((t.wrapperEl.style["scroll-snap-type"] = ""),
4540            (i.style.transitionDuration = "")),
4541          s.hide &&
4542            (clearTimeout(h),
4543            (h = n(() => {
4544              (l.style.opacity = 0), (l.style.transitionDuration = "400ms");
4545            }, 1e3))),
4546          r("scrollbarDragEnd", e),
4547          s.snapOnRelease && t.slideToClosest());
4548      }
4549      function T(e) {
4550        const { scrollbar: s, params: a } = t,
4551          i = s.el;
4552        if (!i) return;
4553        const r = i,
4554          n = !!a.passiveListeners && { passive: !1, capture: !1 },
4555          o = !!a.passiveListeners && { passive: !0, capture: !1 };
4556        if (!r) return;
4557        const d = "on" === e ? "addEventListener" : "removeEventListener";
4558        r[d]("pointerdown", E, n),
4559          l[d]("pointermove", x, n),
4560          l[d]("pointerup", S, o);
4561      }
4562      function M() {
4563        const { scrollbar: e, el: s } = t;
4564        t.params.scrollbar = J(
4565          t,
4566          t.originalParams.scrollbar,
4567          t.params.scrollbar,
4568          { el: "swiper-scrollbar" }
4569        );
4570        const a = t.params.scrollbar;
4571        if (!a.el) return;
4572        let i, r;
4573        "string" == typeof a.el &&
4574          t.isElement &&
4575          (i = t.el.querySelector(a.el)),
4576          i || "string" != typeof a.el
4577            ? i || (i = a.el)
4578            : (i = l.querySelectorAll(a.el)),
4579          t.params.uniqueNavElements &&
4580            "string" == typeof a.el &&
4581            i.length > 1 &&
4582            1 === s.querySelectorAll(a.el).length &&
4583            (i = s.querySelector(a.el)),
4584          i.length > 0 && (i = i[0]),
4585          i.classList.add(
4586            t.isHorizontal() ? a.horizontalClass : a.verticalClass
4587          ),
4588          i &&
4589            ((r = i.querySelector(`.${t.params.scrollbar.dragClass}`)),
4590            r || ((r = f("div", t.params.scrollbar.dragClass)), i.append(r))),
4591          Object.assign(e, { el: i, dragEl: r }),
4592          a.draggable && t.params.scrollbar.el && t.scrollbar.el && T("on"),
4593          i &&
4594            i.classList[t.enabled ? "remove" : "add"](
4595              t.params.scrollbar.lockClass
4596            );
4597      }
4598      function C() {
4599        const e = t.params.scrollbar,
4600          s = t.scrollbar.el;
4601        s &&
4602          s.classList.remove(
4603            t.isHorizontal() ? e.horizontalClass : e.verticalClass
4604          ),
4605          t.params.scrollbar.el && t.scrollbar.el && T("off");
4606      }
4607      s({
4608        scrollbar: {
4609          el: null,
4610          dragSize: "auto",
4611          hide: !1,
4612          draggable: !1,
4613          snapOnRelease: !0,
4614          lockClass: "swiper-scrollbar-lock",
4615          dragClass: "swiper-scrollbar-drag",
4616          scrollbarDisabledClass: "swiper-scrollbar-disabled",
4617          horizontalClass: "swiper-scrollbar-horizontal",
4618          verticalClass: "swiper-scrollbar-vertical",
4619        },
4620      }),
4621        (t.scrollbar = { el: null, dragEl: null }),
4622        i("init", () => {
4623          !1 === t.params.scrollbar.enabled ? P() : (M(), w(), v());
4624        }),
4625        i("update resize observerUpdate lock unlock", () => {
4626          w();
4627        }),
4628        i("setTranslate", () => {
4629          v();
4630        }),
4631        i("setTransition", (e, s) => {
4632          !(function (e) {
4633            t.params.scrollbar.el &&
4634              t.scrollbar.el &&
4635              (t.scrollbar.dragEl.style.transitionDuration = `${e}ms`);
4636          })(s);
4637        }),
4638        i("enable disable", () => {
4639          const { el: e } = t.scrollbar;
4640          e &&
4641            e.classList[t.enabled ? "remove" : "add"](
4642              t.params.scrollbar.lockClass
4643            );
4644        }),
4645        i("destroy", () => {
4646          C();
4647        });
4648      const P = () => {
4649        t.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),
4650          t.scrollbar.el &&
4651            t.scrollbar.el.classList.add(
4652              t.params.scrollbar.scrollbarDisabledClass
4653            ),
4654          C();
4655      };
4656      Object.assign(t.scrollbar, {
4657        enable: () => {
4658          t.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),
4659            t.scrollbar.el &&
4660              t.scrollbar.el.classList.remove(
4661                t.params.scrollbar.scrollbarDisabledClass
4662              ),
4663            M(),
4664            w(),
4665            v();
4666        },
4667        disable: P,
4668        updateSize: w,
4669        setTranslate: v,
4670        init: M,
4671        destroy: C,
4672      });
4673    },
4674    function (e) {
4675      let { swiper: t, extendParams: s, on: a } = e;
4676      s({ parallax: { enabled: !1 } });
4677      const i = (e, s) => {
4678          const { rtl: a } = t,
4679            i = a ? -1 : 1,
4680            r = e.getAttribute("data-swiper-parallax") || "0";
4681          let n = e.getAttribute("data-swiper-parallax-x"),
4682            l = e.getAttribute("data-swiper-parallax-y");
4683          const o = e.getAttribute("data-swiper-parallax-scale"),
4684            d = e.getAttribute("data-swiper-parallax-opacity"),
4685            c = e.getAttribute("data-swiper-parallax-rotate");
4686          if (
4687            (n || l
4688              ? ((n = n || "0"), (l = l || "0"))
4689              : t.isHorizontal()
4690              ? ((n = r), (l = "0"))
4691              : ((l = r), (n = "0")),
4692            (n =
4693              n.indexOf("%") >= 0
4694                ? parseInt(n, 10) * s * i + "%"
4695                : n * s * i + "px"),
4696            (l =
4697              l.indexOf("%") >= 0 ? parseInt(l, 10) * s + "%" : l * s + "px"),
4698            null != d)
4699          ) {
4700            const t = d - (d - 1) * (1 - Math.abs(s));
4701            e.style.opacity = t;
4702          }
4703          let p = `translate3d(${n}, ${l}, 0px)`;
4704          if (null != o) {
4705            p += ` scale(${o - (o - 1) * (1 - Math.abs(s))})`;
4706          }
4707          if (c && null != c) {
4708            p += ` rotate(${c * s * -1}deg)`;
4709          }
4710          e.style.transform = p;
4711        },
4712        r = () => {
4713          const { el: e, slides: s, progress: a, snapGrid: r } = t;
4714          h(
4715            e,
4716            "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
4717          ).forEach((e) => {
4718            i(e, a);
4719          }),
4720            s.forEach((e, s) => {
4721              let n = e.progress;
4722              t.params.slidesPerGroup > 1 &&
4723                "auto" !== t.params.slidesPerView &&
4724                (n += Math.ceil(s / 2) - a * (r.length - 1)),
4725                (n = Math.min(Math.max(n, -1), 1)),
4726                e
4727                  .querySelectorAll(
4728                    "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]"
4729                  )
4730                  .forEach((e) => {
4731                    i(e, n);
4732                  });
4733            });
4734        };
4735      a("beforeInit", () => {
4736        t.params.parallax.enabled &&
4737          ((t.params.watchSlidesProgress = !0),
4738          (t.originalParams.watchSlidesProgress = !0));
4739      }),
4740        a("init", () => {
4741          t.params.parallax.enabled && r();
4742        }),
4743        a("setTranslate", () => {
4744          t.params.parallax.enabled && r();
4745        }),
4746        a("setTransition", (e, s) => {
4747          t.params.parallax.enabled &&
4748            (function (e) {
4749              void 0 === e && (e = t.params.speed);
4750              const { el: s } = t;
4751              s.querySelectorAll(
4752                "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
4753              ).forEach((t) => {
4754                let s =
4755                  parseInt(
4756                    t.getAttribute("data-swiper-parallax-duration"),
4757                    10
4758                  ) || e;
4759                0 === e && (s = 0), (t.style.transitionDuration = `${s}ms`);
4760              });
4761            })(s);
4762        });
4763    },
4764    function (e) {
4765      let { swiper: t, extendParams: s, on: a, emit: i } = e;
4766      const n = r();
4767      s({
4768        zoom: {
4769          enabled: !1,
4770          maxRatio: 3,
4771          minRatio: 1,
4772          toggle: !0,
4773          containerClass: "swiper-zoom-container",
4774          zoomedSlideClass: "swiper-slide-zoomed",
4775        },
4776      }),
4777        (t.zoom = { enabled: !1 });
4778      let l,
4779        d,
4780        c = 1,
4781        p = !1;
4782      const u = [],
4783        m = {
4784          originX: 0,
4785          originY: 0,
4786          slideEl: void 0,
4787          slideWidth: void 0,
4788          slideHeight: void 0,
4789          imageEl: void 0,
4790          imageWrapEl: void 0,
4791          maxRatio: 3,
4792        },
4793        f = {
4794          isTouched: void 0,
4795          isMoved: void 0,
4796          currentX: void 0,
4797          currentY: void 0,
4798          minX: void 0,
4799          minY: void 0,
4800          maxX: void 0,
4801          maxY: void 0,
4802          width: void 0,
4803          height: void 0,
4804          startX: void 0,
4805          startY: void 0,
4806          touchesStart: {},
4807          touchesCurrent: {},
4808        },
4809        v = {
4810          x: void 0,
4811          y: void 0,
4812          prevPositionX: void 0,
4813          prevPositionY: void 0,
4814          prevTime: void 0,
4815        };
4816      let w = 1;
4817      function y() {
4818        if (u.length < 2) return 1;
4819        const e = u[0].pageX,
4820          t = u[0].pageY,
4821          s = u[1].pageX,
4822          a = u[1].pageY;
4823        return Math.sqrt((s - e) ** 2 + (a - t) ** 2);
4824      }
4825      function E(e) {
4826        const s = t.isElement ? "swiper-slide" : `.${t.params.slideClass}`;
4827        return (
4828          !!e.target.matches(s) ||
4829          t.slides.filter((t) => t.contains(e.target)).length > 0
4830        );
4831      }
4832      function x(e) {
4833        if (("mouse" === e.pointerType && u.splice(0, u.length), !E(e))) return;
4834        const s = t.params.zoom;
4835        if (((l = !1), (d = !1), u.push(e), !(u.length < 2))) {
4836          if (((l = !0), (m.scaleStart = y()), !m.slideEl)) {
4837            (m.slideEl = e.target.closest(
4838              `.${t.params.slideClass}, swiper-slide`
4839            )),
4840              m.slideEl || (m.slideEl = t.slides[t.activeIndex]);
4841            let a = m.slideEl.querySelector(`.${s.containerClass}`);
4842            if (
4843              (a &&
4844                (a = a.querySelectorAll(
4845                  "picture, img, svg, canvas, .swiper-zoom-target"
4846                )[0]),
4847              (m.imageEl = a),
4848              (m.imageWrapEl = a
4849                ? b(m.imageEl, `.${s.containerClass}`)[0]
4850                : void 0),
4851              !m.imageWrapEl)
4852            )
4853              return void (m.imageEl = void 0);
4854            m.maxRatio =
4855              m.imageWrapEl.getAttribute("data-swiper-zoom") || s.maxRatio;
4856          }
4857          if (m.imageEl) {
4858            const [e, t] = (function () {
4859              if (u.length < 2) return { x: null, y: null };
4860              const e = m.imageEl.getBoundingClientRect();
4861              return [
4862                (u[0].pageX + (u[1].pageX - u[0].pageX) / 2 - e.x) / c,
4863                (u[0].pageY + (u[1].pageY - u[0].pageY) / 2 - e.y) / c,
4864              ];
4865            })();
4866            (m.originX = e),
4867              (m.originY = t),
4868              (m.imageEl.style.transitionDuration = "0ms");
4869          }
4870          p = !0;
4871        }
4872      }
4873      function S(e) {
4874        if (!E(e)) return;
4875        const s = t.params.zoom,
4876          a = t.zoom,
4877          i = u.findIndex((t) => t.pointerId === e.pointerId);
4878        i >= 0 && (u[i] = e),
4879          u.length < 2 ||
4880            ((d = !0),
4881            (m.scaleMove = y()),
4882            m.imageEl &&
4883              ((a.scale = (m.scaleMove / m.scaleStart) * c),
4884              a.scale > m.maxRatio &&
4885                (a.scale = m.maxRatio - 1 + (a.scale - m.maxRatio + 1) ** 0.5),
4886              a.scale < s.minRatio &&
4887                (a.scale = s.minRatio + 1 - (s.minRatio - a.scale + 1) ** 0.5),
4888              (m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`)));
4889      }
4890      function T(e) {
4891        if (!E(e)) return;
4892        if ("mouse" === e.pointerType && "pointerout" === e.type) return;
4893        const s = t.params.zoom,
4894          a = t.zoom,
4895          i = u.findIndex((t) => t.pointerId === e.pointerId);
4896        i >= 0 && u.splice(i, 1),
4897          l &&
4898            d &&
4899            ((l = !1),
4900            (d = !1),
4901            m.imageEl &&
4902              ((a.scale = Math.max(Math.min(a.scale, m.maxRatio), s.minRatio)),
4903              (m.imageEl.style.transitionDuration = `${t.params.speed}ms`),
4904              (m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`),
4905              (c = a.scale),
4906              (p = !1),
4907              a.scale > 1 && m.slideEl
4908                ? m.slideEl.classList.add(`${s.zoomedSlideClass}`)
4909                : a.scale <= 1 &&
4910                  m.slideEl &&
4911                  m.slideEl.classList.remove(`${s.zoomedSlideClass}`),
4912              1 === a.scale &&
4913                ((m.originX = 0), (m.originY = 0), (m.slideEl = void 0))));
4914      }
4915      function M(e) {
4916        if (
4917          !E(e) ||
4918          !(function (e) {
4919            const s = `.${t.params.zoom.containerClass}`;
4920            return (
4921              !!e.target.matches(s) ||
4922              [...t.hostEl.querySelectorAll(s)].filter((t) =>
4923                t.contains(e.target)
4924              ).length > 0
4925            );
4926          })(e)
4927        )
4928          return;
4929        const s = t.zoom;
4930        if (!m.imageEl) return;
4931        if (!f.isTouched || !m.slideEl) return;
4932        f.isMoved ||
4933          ((f.width = m.imageEl.offsetWidth),
4934          (f.height = m.imageEl.offsetHeight),
4935          (f.startX = o(m.imageWrapEl, "x") || 0),
4936          (f.startY = o(m.imageWrapEl, "y") || 0),
4937          (m.slideWidth = m.slideEl.offsetWidth),
4938          (m.slideHeight = m.slideEl.offsetHeight),
4939          (m.imageWrapEl.style.transitionDuration = "0ms"));
4940        const a = f.width * s.scale,
4941          i = f.height * s.scale;
4942        if (a < m.slideWidth && i < m.slideHeight) return;
4943        (f.minX = Math.min(m.slideWidth / 2 - a / 2, 0)),
4944          (f.maxX = -f.minX),
4945          (f.minY = Math.min(m.slideHeight / 2 - i / 2, 0)),
4946          (f.maxY = -f.minY),
4947          (f.touchesCurrent.x = u.length > 0 ? u[0].pageX : e.pageX),
4948          (f.touchesCurrent.y = u.length > 0 ? u[0].pageY : e.pageY);
4949        if (
4950          (Math.max(
4951            Math.abs(f.touchesCurrent.x - f.touchesStart.x),
4952            Math.abs(f.touchesCurrent.y - f.touchesStart.y)
4953          ) > 5 && (t.allowClick = !1),
4954          !f.isMoved && !p)
4955        ) {
4956          if (
4957            t.isHorizontal() &&
4958            ((Math.floor(f.minX) === Math.floor(f.startX) &&
4959              f.touchesCurrent.x < f.touchesStart.x) ||
4960              (Math.floor(f.maxX) === Math.floor(f.startX) &&
4961                f.touchesCurrent.x > f.touchesStart.x))
4962          )
4963            return void (f.isTouched = !1);
4964          if (
4965            !t.isHorizontal() &&
4966            ((Math.floor(f.minY) === Math.floor(f.startY) &&
4967              f.touchesCurrent.y < f.touchesStart.y) ||
4968              (Math.floor(f.maxY) === Math.floor(f.startY) &&
4969                f.touchesCurrent.y > f.touchesStart.y))
4970          )
4971            return void (f.isTouched = !1);
4972        }
4973        e.cancelable && e.preventDefault(),
4974          e.stopPropagation(),
4975          (f.isMoved = !0);
4976        const r = (s.scale - c) / (m.maxRatio - t.params.zoom.minRatio),
4977          { originX: n, originY: l } = m;
4978        (f.currentX =
4979          f.touchesCurrent.x -
4980          f.touchesStart.x +
4981          f.startX +
4982          r * (f.width - 2 * n)),
4983          (f.currentY =
4984            f.touchesCurrent.y -
4985            f.touchesStart.y +
4986            f.startY +
4987            r * (f.height - 2 * l)),
4988          f.currentX < f.minX &&
4989            (f.currentX = f.minX + 1 - (f.minX - f.currentX + 1) ** 0.8),
4990          f.currentX > f.maxX &&
4991            (f.currentX = f.maxX - 1 + (f.currentX - f.maxX + 1) ** 0.8),
4992          f.currentY < f.minY &&
4993            (f.currentY = f.minY + 1 - (f.minY - f.currentY + 1) ** 0.8),
4994          f.currentY > f.maxY &&
4995            (f.currentY = f.maxY - 1 + (f.currentY - f.maxY + 1) ** 0.8),
4996          v.prevPositionX || (v.prevPositionX = f.touchesCurrent.x),
4997          v.prevPositionY || (v.prevPositionY = f.touchesCurrent.y),
4998          v.prevTime || (v.prevTime = Date.now()),
4999          (v.x =
5000            (f.touchesCurrent.x - v.prevPositionX) /
5001            (Date.now() - v.prevTime) /
5002            2),
5003          (v.y =
5004            (f.touchesCurrent.y - v.prevPositionY) /
5005            (Date.now() - v.prevTime) /
5006            2),
5007          Math.abs(f.touchesCurrent.x - v.prevPositionX) < 2 && (v.x = 0),
5008          Math.abs(f.touchesCurrent.y - v.prevPositionY) < 2 && (v.y = 0),
5009          (v.prevPositionX = f.touchesCurrent.x),
5010          (v.prevPositionY = f.touchesCurrent.y),
5011          (v.prevTime = Date.now()),
5012          (m.imageWrapEl.style.transform = `translate3d(${f.currentX}px, ${f.currentY}px,0)`);
5013      }
5014      function C() {
5015        const e = t.zoom;
5016        m.slideEl &&
5017          t.activeIndex !== t.slides.indexOf(m.slideEl) &&
5018          (m.imageEl &&
5019            (m.imageEl.style.transform = "translate3d(0,0,0) scale(1)"),
5020          m.imageWrapEl &&
5021            (m.imageWrapEl.style.transform = "translate3d(0,0,0)"),
5022          m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),
5023          (e.scale = 1),
5024          (c = 1),
5025          (m.slideEl = void 0),
5026          (m.imageEl = void 0),
5027          (m.imageWrapEl = void 0),
5028          (m.originX = 0),
5029          (m.originY = 0));
5030      }
5031      function P(e) {
5032        const s = t.zoom,
5033          a = t.params.zoom;
5034        if (!m.slideEl) {
5035          e &&
5036            e.target &&
5037            (m.slideEl = e.target.closest(
5038              `.${t.params.slideClass}, swiper-slide`
5039            )),
5040            m.slideEl ||
5041              (t.params.virtual && t.params.virtual.enabled && t.virtual
5042                ? (m.slideEl = h(
5043                    t.slidesEl,
5044                    `.${t.params.slideActiveClass}`
5045                  )[0])
5046                : (m.slideEl = t.slides[t.activeIndex]));
5047          let s = m.slideEl.querySelector(`.${a.containerClass}`);
5048          s &&
5049            (s = s.querySelectorAll(
5050              "picture, img, svg, canvas, .swiper-zoom-target"
5051            )[0]),
5052            (m.imageEl = s),
5053            (m.imageWrapEl = s
5054              ? b(m.imageEl, `.${a.containerClass}`)[0]
5055              : void 0);
5056        }
5057        if (!m.imageEl || !m.imageWrapEl) return;
5058        let i, r, l, o, d, p, u, v, w, y, E, x, S, T, M, C, P, L;
5059        t.params.cssMode &&
5060          ((t.wrapperEl.style.overflow = "hidden"),
5061          (t.wrapperEl.style.touchAction = "none")),
5062          m.slideEl.classList.add(`${a.zoomedSlideClass}`),
5063          void 0 === f.touchesStart.x && e
5064            ? ((i = e.pageX), (r = e.pageY))
5065            : ((i = f.touchesStart.x), (r = f.touchesStart.y));
5066        const z = "number" == typeof e ? e : null;
5067        1 === c && z && ((i = void 0), (r = void 0)),
5068          (s.scale =
5069            z || m.imageWrapEl.getAttribute("data-swiper-zoom") || a.maxRatio),
5070          (c =
5071            z || m.imageWrapEl.getAttribute("data-swiper-zoom") || a.maxRatio),
5072          !e || (1 === c && z)
5073            ? ((u = 0), (v = 0))
5074            : ((P = m.slideEl.offsetWidth),
5075              (L = m.slideEl.offsetHeight),
5076              (l = g(m.slideEl).left + n.scrollX),
5077              (o = g(m.slideEl).top + n.scrollY),
5078              (d = l + P / 2 - i),
5079              (p = o + L / 2 - r),
5080              (w = m.imageEl.offsetWidth),
5081              (y = m.imageEl.offsetHeight),
5082              (E = w * s.scale),
5083              (x = y * s.scale),
5084              (S = Math.min(P / 2 - E / 2, 0)),
5085              (T = Math.min(L / 2 - x / 2, 0)),
5086              (M = -S),
5087              (C = -T),
5088              (u = d * s.scale),
5089              (v = p * s.scale),
5090              u < S && (u = S),
5091              u > M && (u = M),
5092              v < T && (v = T),
5093              v > C && (v = C)),
5094          z && 1 === s.scale && ((m.originX = 0), (m.originY = 0)),
5095          (m.imageWrapEl.style.transitionDuration = "300ms"),
5096          (m.imageWrapEl.style.transform = `translate3d(${u}px, ${v}px,0)`),
5097          (m.imageEl.style.transitionDuration = "300ms"),
5098          (m.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})`);
5099      }
5100      function L() {
5101        const e = t.zoom,
5102          s = t.params.zoom;
5103        if (!m.slideEl) {
5104          t.params.virtual && t.params.virtual.enabled && t.virtual
5105            ? (m.slideEl = h(t.slidesEl, `.${t.params.slideActiveClass}`)[0])
5106            : (m.slideEl = t.slides[t.activeIndex]);
5107          let e = m.slideEl.querySelector(`.${s.containerClass}`);
5108          e &&
5109            (e = e.querySelectorAll(
5110              "picture, img, svg, canvas, .swiper-zoom-target"
5111            )[0]),
5112            (m.imageEl = e),
5113            (m.imageWrapEl = e
5114              ? b(m.imageEl, `.${s.containerClass}`)[0]
5115              : void 0);
5116        }
5117        m.imageEl &&
5118          m.imageWrapEl &&
5119          (t.params.cssMode &&
5120            ((t.wrapperEl.style.overflow = ""),
5121            (t.wrapperEl.style.touchAction = "")),
5122          (e.scale = 1),
5123          (c = 1),
5124          (m.imageWrapEl.style.transitionDuration = "300ms"),
5125          (m.imageWrapEl.style.transform = "translate3d(0,0,0)"),
5126          (m.imageEl.style.transitionDuration = "300ms"),
5127          (m.imageEl.style.transform = "translate3d(0,0,0) scale(1)"),
5128          m.slideEl.classList.remove(`${s.zoomedSlideClass}`),
5129          (m.slideEl = void 0),
5130          (m.originX = 0),
5131          (m.originY = 0));
5132      }
5133      function z(e) {
5134        const s = t.zoom;
5135        s.scale && 1 !== s.scale ? L() : P(e);
5136      }
5137      function A() {
5138        return {
5139          passiveListener: !!t.params.passiveListeners && {
5140            passive: !0,
5141            capture: !1,
5142          },
5143          activeListenerWithCapture: !t.params.passiveListeners || {
5144            passive: !1,
5145            capture: !0,
5146          },
5147        };
5148      }
5149      function $() {
5150        const e = t.zoom;
5151        if (e.enabled) return;
5152        e.enabled = !0;
5153        const { passiveListener: s, activeListenerWithCapture: a } = A();
5154        t.wrapperEl.addEventListener("pointerdown", x, s),
5155          t.wrapperEl.addEventListener("pointermove", S, a),
5156          ["pointerup", "pointercancel", "pointerout"].forEach((e) => {
5157            t.wrapperEl.addEventListener(e, T, s);
5158          }),
5159          t.wrapperEl.addEventListener("pointermove", M, a);
5160      }
5161      function I() {
5162        const e = t.zoom;
5163        if (!e.enabled) return;
5164        e.enabled = !1;
5165        const { passiveListener: s, activeListenerWithCapture: a } = A();
5166        t.wrapperEl.removeEventListener("pointerdown", x, s),
5167          t.wrapperEl.removeEventListener("pointermove", S, a),
5168          ["pointerup", "pointercancel", "pointerout"].forEach((e) => {
5169            t.wrapperEl.removeEventListener(e, T, s);
5170          }),
5171          t.wrapperEl.removeEventListener("pointermove", M, a);
5172      }
5173      Object.defineProperty(t.zoom, "scale", {
5174        get: () => w,
5175        set(e) {
5176          if (w !== e) {
5177            const t = m.imageEl,
5178              s = m.slideEl;
5179            i("zoomChange", e, t, s);
5180          }
5181          w = e;
5182        },
5183      }),
5184        a("init", () => {
5185          t.params.zoom.enabled && $();
5186        }),
5187        a("destroy", () => {
5188          I();
5189        }),
5190        a("touchStart", (e, s) => {
5191          t.zoom.enabled &&
5192            (function (e) {
5193              const s = t.device;
5194              if (!m.imageEl) return;
5195              if (f.isTouched) return;
5196              s.android && e.cancelable && e.preventDefault(),
5197                (f.isTouched = !0);
5198              const a = u.length > 0 ? u[0] : e;
5199              (f.touchesStart.x = a.pageX), (f.touchesStart.y = a.pageY);
5200            })(s);
5201        }),
5202        a("touchEnd", (e, s) => {
5203          t.zoom.enabled &&
5204            (function () {
5205              const e = t.zoom;
5206              if (!m.imageEl) return;
5207              if (!f.isTouched || !f.isMoved)
5208                return (f.isTouched = !1), void (f.isMoved = !1);
5209              (f.isTouched = !1), (f.isMoved = !1);
5210              let s = 300,
5211                a = 300;
5212              const i = v.x * s,
5213                r = f.currentX + i,
5214                n = v.y * a,
5215                l = f.currentY + n;
5216              0 !== v.x && (s = Math.abs((r - f.currentX) / v.x)),
5217                0 !== v.y && (a = Math.abs((l - f.currentY) / v.y));
5218              const o = Math.max(s, a);
5219              (f.currentX = r), (f.currentY = l);
5220              const d = f.width * e.scale,
5221                c = f.height * e.scale;
5222              (f.minX = Math.min(m.slideWidth / 2 - d / 2, 0)),
5223                (f.maxX = -f.minX),
5224                (f.minY = Math.min(m.slideHeight / 2 - c / 2, 0)),
5225                (f.maxY = -f.minY),
5226                (f.currentX = Math.max(Math.min(f.currentX, f.maxX), f.minX)),
5227                (f.currentY = Math.max(Math.min(f.currentY, f.maxY), f.minY)),
5228                (m.imageWrapEl.style.transitionDuration = `${o}ms`),
5229                (m.imageWrapEl.style.transform = `translate3d(${f.currentX}px, ${f.currentY}px,0)`);
5230            })();
5231        }),
5232        a("doubleTap", (e, s) => {
5233          !t.animating &&
5234            t.params.zoom.enabled &&
5235            t.zoom.enabled &&
5236            t.params.zoom.toggle &&
5237            z(s);
5238        }),
5239        a("transitionEnd", () => {
5240          t.zoom.enabled && t.params.zoom.enabled && C();
5241        }),
5242        a("slideChange", () => {
5243          t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && C();
5244        }),
5245        Object.assign(t.zoom, {
5246          enable: $,
5247          disable: I,
5248          in: P,
5249          out: L,
5250          toggle: z,
5251        });
5252    },
5253    function (e) {
5254      let { swiper: t, extendParams: s, on: a } = e;
5255      function i(e, t) {
5256        const s = (function () {
5257          let e, t, s;
5258          return (a, i) => {
5259            for (t = -1, e = a.length; e - t > 1; )
5260              (s = (e + t) >> 1), a[s] <= i ? (t = s) : (e = s);
5261            return e;
5262          };
5263        })();
5264        let a, i;
5265        return (
5266          (this.x = e),
5267          (this.y = t),
5268          (this.lastIndex = e.length - 1),
5269          (this.interpolate = function (e) {
5270            return e
5271              ? ((i = s(this.x, e)),
5272                (a = i - 1),
5273                ((e - this.x[a]) * (this.y[i] - this.y[a])) /
5274                  (this.x[i] - this.x[a]) +
5275                  this.y[a])
5276              : 0;
5277          }),
5278          this
5279        );
5280      }
5281      function r() {
5282        t.controller.control &&
5283          t.controller.spline &&
5284          ((t.controller.spline = void 0), delete t.controller.spline);
5285      }
5286      s({ controller: { control: void 0, inverse: !1, by: "slide" } }),
5287        (t.controller = { control: void 0 }),
5288        a("beforeInit", () => {
5289          if (
5290            "undefined" != typeof window &&
5291            ("string" == typeof t.params.controller.control ||
5292              t.params.controller.control instanceof HTMLElement)
5293          ) {
5294            const e = document.querySelector(t.params.controller.control);
5295            if (e && e.swiper) t.controller.control = e.swiper;
5296            else if (e) {
5297              const s = (a) => {
5298                (t.controller.control = a.detail[0]),
5299                  t.update(),
5300                  e.removeEventListener("init", s);
5301              };
5302              e.addEventListener("init", s);
5303            }
5304          } else t.controller.control = t.params.controller.control;
5305        }),
5306        a("update", () => {
5307          r();
5308        }),
5309        a("resize", () => {
5310          r();
5311        }),
5312        a("observerUpdate", () => {
5313          r();
5314        }),
5315        a("setTranslate", (e, s, a) => {
5316          t.controller.control &&
5317            !t.controller.control.destroyed &&
5318            t.controller.setTranslate(s, a);
5319        }),
5320        a("setTransition", (e, s, a) => {
5321          t.controller.control &&
5322            !t.controller.control.destroyed &&
5323            t.controller.setTransition(s, a);
5324        }),
5325        Object.assign(t.controller, {
5326          setTranslate: function (e, s) {
5327            const a = t.controller.control;
5328            let r, n;
5329            const l = t.constructor;
5330            function o(e) {
5331              if (e.destroyed) return;
5332              const s = t.rtlTranslate ? -t.translate : t.translate;
5333              "slide" === t.params.controller.by &&
5334                (!(function (e) {
5335                  t.controller.spline = t.params.loop
5336                    ? new i(t.slidesGrid, e.slidesGrid)
5337                    : new i(t.snapGrid, e.snapGrid);
5338                })(e),
5339                (n = -t.controller.spline.interpolate(-s))),
5340                (n && "container" !== t.params.controller.by) ||
5341                  ((r =
5342                    (e.maxTranslate() - e.minTranslate()) /
5343                    (t.maxTranslate() - t.minTranslate())),
5344                  (!Number.isNaN(r) && Number.isFinite(r)) || (r = 1),
5345                  (n = (s - t.minTranslate()) * r + e.minTranslate())),
5346                t.params.controller.inverse && (n = e.maxTranslate() - n),
5347                e.updateProgress(n),
5348                e.setTranslate(n, t),
5349                e.updateActiveIndex(),
5350                e.updateSlidesClasses();
5351            }
5352            if (Array.isArray(a))
5353              for (let e = 0; e < a.length; e += 1)
5354                a[e] !== s && a[e] instanceof l && o(a[e]);
5355            else a instanceof l && s !== a && o(a);
5356          },
5357          setTransition: function (e, s) {
5358            const a = t.constructor,
5359              i = t.controller.control;
5360            let r;
5361            function l(s) {
5362              s.destroyed ||
5363                (s.setTransition(e, t),
5364                0 !== e &&
5365                  (s.transitionStart(),
5366                  s.params.autoHeight &&
5367                    n(() => {
5368                      s.updateAutoHeight();
5369                    }),
5370                  y(s.wrapperEl, () => {
5371                    i && s.transitionEnd();
5372                  })));
5373            }
5374            if (Array.isArray(i))
5375              for (r = 0; r < i.length; r += 1)
5376                i[r] !== s && i[r] instanceof a && l(i[r]);
5377            else i instanceof a && s !== i && l(i);
5378          },
5379        });
5380    },
5381    function (e) {
5382      let { swiper: t, extendParams: s, on: a } = e;
5383      s({
5384        a11y: {
5385          enabled: !0,
5386          notificationClass: "swiper-notification",
5387          prevSlideMessage: "Previous slide",
5388          nextSlideMessage: "Next slide",
5389          firstSlideMessage: "This is the first slide",
5390          lastSlideMessage: "This is the last slide",
5391          paginationBulletMessage: "Go to slide {{index}}",
5392          slideLabelMessage: "{{index}} / {{slidesLength}}",
5393          containerMessage: null,
5394          containerRoleDescriptionMessage: null,
5395          itemRoleDescriptionMessage: null,
5396          slideRole: "group",
5397          id: null,
5398        },
5399      }),
5400        (t.a11y = { clicked: !1 });
5401      let i = null;
5402      function r(e) {
5403        const t = i;
5404        0 !== t.length && ((t.innerHTML = ""), (t.innerHTML = e));
5405      }
5406      const n = (e) => (Array.isArray(e) ? e : [e]).filter((e) => !!e);
5407      function l(e) {
5408        (e = n(e)).forEach((e) => {
5409          e.setAttribute("tabIndex", "0");
5410        });
5411      }
5412      function o(e) {
5413        (e = n(e)).forEach((e) => {
5414          e.setAttribute("tabIndex", "-1");
5415        });
5416      }
5417      function d(e, t) {
5418        (e = n(e)).forEach((e) => {
5419          e.setAttribute("role", t);
5420        });
5421      }
5422      function c(e, t) {
5423        (e = n(e)).forEach((e) => {
5424          e.setAttribute("aria-roledescription", t);
5425        });
5426      }
5427      function p(e, t) {
5428        (e = n(e)).forEach((e) => {
5429          e.setAttribute("aria-label", t);
5430        });
5431      }
5432      function u(e) {
5433        (e = n(e)).forEach((e) => {
5434          e.setAttribute("aria-disabled", !0);
5435        });
5436      }
5437      function m(e) {
5438        (e = n(e)).forEach((e) => {
5439          e.setAttribute("aria-disabled", !1);
5440        });
5441      }
5442      function h(e) {
5443        if (13 !== e.keyCode && 32 !== e.keyCode) return;
5444        const s = t.params.a11y,
5445          a = e.target;
5446        (t.pagination &&
5447          t.pagination.el &&
5448          (a === t.pagination.el || t.pagination.el.contains(e.target)) &&
5449          !e.target.matches(ee(t.params.pagination.bulletClass))) ||
5450          (t.navigation &&
5451            t.navigation.nextEl &&
5452            a === t.navigation.nextEl &&
5453            ((t.isEnd && !t.params.loop) || t.slideNext(),
5454            t.isEnd ? r(s.lastSlideMessage) : r(s.nextSlideMessage)),
5455          t.navigation &&
5456            t.navigation.prevEl &&
5457            a === t.navigation.prevEl &&
5458            ((t.isBeginning && !t.params.loop) || t.slidePrev(),
5459            t.isBeginning ? r(s.firstSlideMessage) : r(s.prevSlideMessage)),
5460          t.pagination &&
5461            a.matches(ee(t.params.pagination.bulletClass)) &&
5462            a.click());
5463      }
5464      function g() {
5465        return (
5466          t.pagination && t.pagination.bullets && t.pagination.bullets.length
5467        );
5468      }
5469      function v() {
5470        return g() && t.params.pagination.clickable;
5471      }
5472      const b = (e, t, s) => {
5473          l(e),
5474            "BUTTON" !== e.tagName &&
5475              (d(e, "button"), e.addEventListener("keydown", h)),
5476            p(e, s),
5477            (function (e, t) {
5478              (e = n(e)).forEach((e) => {
5479                e.setAttribute("aria-controls", t);
5480              });
5481            })(e, t);
5482        },
5483        y = () => {
5484          t.a11y.clicked = !0;
5485        },
5486        E = () => {
5487          requestAnimationFrame(() => {
5488            requestAnimationFrame(() => {
5489              t.destroyed || (t.a11y.clicked = !1);
5490            });
5491          });
5492        },
5493        x = (e) => {
5494          if (t.a11y.clicked) return;
5495          const s = e.target.closest(`.${t.params.slideClass}, swiper-slide`);
5496          if (!s || !t.slides.includes(s)) return;
5497          const a = t.slides.indexOf(s) === t.activeIndex,
5498            i =
5499              t.params.watchSlidesProgress &&
5500              t.visibleSlides &&
5501              t.visibleSlides.includes(s);
5502          a ||
5503            i ||
5504            (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) ||
5505            (t.isHorizontal() ? (t.el.scrollLeft = 0) : (t.el.scrollTop = 0),
5506            t.slideTo(t.slides.indexOf(s), 0));
5507        },
5508        S = () => {
5509          const e = t.params.a11y;
5510          e.itemRoleDescriptionMessage &&
5511            c(t.slides, e.itemRoleDescriptionMessage),
5512            e.slideRole && d(t.slides, e.slideRole);
5513          const s = t.slides.length;
5514          e.slideLabelMessage &&
5515            t.slides.forEach((a, i) => {
5516              const r = t.params.loop
5517                ? parseInt(a.getAttribute("data-swiper-slide-index"), 10)
5518                : i;
5519              p(
5520                a,
5521                e.slideLabelMessage
5522                  .replace(/\{\{index\}\}/, r + 1)
5523                  .replace(/\{\{slidesLength\}\}/, s)
5524              );
5525            });
5526        },
5527        T = () => {
5528          const e = t.params.a11y;
5529          t.el.append(i);
5530          const s = t.el;
5531          e.containerRoleDescriptionMessage &&
5532            c(s, e.containerRoleDescriptionMessage),
5533            e.containerMessage && p(s, e.containerMessage);
5534          const a = t.wrapperEl,
5535            r =
5536              e.id ||
5537              a.getAttribute("id") ||
5538              `swiper-wrapper-${
5539                ((l = 16),
5540                void 0 === l && (l = 16),
5541                "x"
5542                  .repeat(l)
5543                  .replace(/x/g, () =>
5544                    Math.round(16 * Math.random()).toString(16)
5545                  ))
5546              }`;
5547          var l;
5548          const o =
5549            t.params.autoplay && t.params.autoplay.enabled ? "off" : "polite";
5550          var d;
5551          (d = r),
5552            n(a).forEach((e) => {
5553              e.setAttribute("id", d);
5554            }),
5555            (function (e, t) {
5556              (e = n(e)).forEach((e) => {
5557                e.setAttribute("aria-live", t);
5558              });
5559            })(a, o),
5560            S();
5561          let { nextEl: u, prevEl: m } = t.navigation ? t.navigation : {};
5562          if (
5563            ((u = n(u)),
5564            (m = n(m)),
5565            u && u.forEach((t) => b(t, r, e.nextSlideMessage)),
5566            m && m.forEach((t) => b(t, r, e.prevSlideMessage)),
5567            v())
5568          ) {
5569            (Array.isArray(t.pagination.el)
5570              ? t.pagination.el
5571              : [t.pagination.el]
5572            ).forEach((e) => {
5573              e.addEventListener("keydown", h);
5574            });
5575          }
5576          t.el.addEventListener("focus", x, !0),
5577            t.el.addEventListener("pointerdown", y, !0),
5578            t.el.addEventListener("pointerup", E, !0);
5579        };
5580      a("beforeInit", () => {
5581        (i = f("span", t.params.a11y.notificationClass)),
5582          i.setAttribute("aria-live", "assertive"),
5583          i.setAttribute("aria-atomic", "true");
5584      }),
5585        a("afterInit", () => {
5586          t.params.a11y.enabled && T();
5587        }),
5588        a(
5589          "slidesLengthChange snapGridLengthChange slidesGridLengthChange",
5590          () => {
5591            t.params.a11y.enabled && S();
5592          }
5593        ),
5594        a("fromEdge toEdge afterInit lock unlock", () => {
5595          t.params.a11y.enabled &&
5596            (function () {
5597              if (t.params.loop || t.params.rewind || !t.navigation) return;
5598              const { nextEl: e, prevEl: s } = t.navigation;
5599              s && (t.isBeginning ? (u(s), o(s)) : (m(s), l(s))),
5600                e && (t.isEnd ? (u(e), o(e)) : (m(e), l(e)));
5601            })();
5602        }),
5603        a("paginationUpdate", () => {
5604          t.params.a11y.enabled &&
5605            (function () {
5606              const e = t.params.a11y;
5607              g() &&
5608                t.pagination.bullets.forEach((s) => {
5609                  t.params.pagination.clickable &&
5610                    (l(s),
5611                    t.params.pagination.renderBullet ||
5612                      (d(s, "button"),
5613                      p(
5614                        s,
5615                        e.paginationBulletMessage.replace(
5616                          /\{\{index\}\}/,
5617                          w(s) + 1
5618                        )
5619                      ))),
5620                    s.matches(ee(t.params.pagination.bulletActiveClass))
5621                      ? s.setAttribute("aria-current", "true")
5622                      : s.removeAttribute("aria-current");
5623                });
5624            })();
5625        }),
5626        a("destroy", () => {
5627          t.params.a11y.enabled &&
5628            (function () {
5629              i && i.remove();
5630              let { nextEl: e, prevEl: s } = t.navigation ? t.navigation : {};
5631              (e = n(e)),
5632                (s = n(s)),
5633                e && e.forEach((e) => e.removeEventListener("keydown", h)),
5634                s && s.forEach((e) => e.removeEventListener("keydown", h)),
5635                v() &&
5636                  (Array.isArray(t.pagination.el)
5637                    ? t.pagination.el
5638                    : [t.pagination.el]
5639                  ).forEach((e) => {
5640                    e.removeEventListener("keydown", h);
5641                  });
5642              t.el.removeEventListener("focus", x, !0),
5643                t.el.removeEventListener("pointerdown", y, !0),
5644                t.el.removeEventListener("pointerup", E, !0);
5645            })();
5646        });
5647    },
5648    function (e) {
5649      let { swiper: t, extendParams: s, on: a } = e;
5650      s({
5651        history: {
5652          enabled: !1,
5653          root: "",
5654          replaceState: !1,
5655          key: "slides",
5656          keepQuery: !1,
5657        },
5658      });
5659      let i = !1,
5660        n = {};
5661      const l = (e) =>
5662          e
5663            .toString()
5664            .replace(/\s+/g, "-")
5665            .replace(/[^\w-]+/g, "")
5666            .replace(/--+/g, "-")
5667            .replace(/^-+/, "")
5668            .replace(/-+$/, ""),
5669        o = (e) => {
5670          const t = r();
5671          let s;
5672          s = e ? new URL(e) : t.location;
5673          const a = s.pathname
5674              .slice(1)
5675              .split("/")
5676              .filter((e) => "" !== e),
5677            i = a.length;
5678          return { key: a[i - 2], value: a[i - 1] };
5679        },
5680        d = (e, s) => {
5681          const a = r();
5682          if (!i || !t.params.history.enabled) return;
5683          let n;
5684          n = t.params.url ? new URL(t.params.url) : a.location;
5685          const o = t.slides[s];
5686          let d = l(o.getAttribute("data-history"));
5687          if (t.params.history.root.length > 0) {
5688            let s = t.params.history.root;
5689            "/" === s[s.length - 1] && (s = s.slice(0, s.length - 1)),
5690              (d = `${s}/${e ? `${e}/` : ""}${d}`);
5691          } else n.pathname.includes(e) || (d = `${e ? `${e}/` : ""}${d}`);
5692          t.params.history.keepQuery && (d += n.search);
5693          const c = a.history.state;
5694          (c && c.value === d) ||
5695            (t.params.history.replaceState
5696              ? a.history.replaceState({ value: d }, null, d)
5697              : a.history.pushState({ value: d }, null, d));
5698        },
5699        c = (e, s, a) => {
5700          if (s)
5701            for (let i = 0, r = t.slides.length; i < r; i += 1) {
5702              const r = t.slides[i];
5703              if (l(r.getAttribute("data-history")) === s) {
5704                const s = t.getSlideIndex(r);
5705                t.slideTo(s, e, a);
5706              }
5707            }
5708          else t.slideTo(0, e, a);
5709        },
5710        p = () => {
5711          (n = o(t.params.url)), c(t.params.speed, n.value, !1);
5712        };
5713      a("init", () => {
5714        t.params.history.enabled &&
5715          (() => {
5716            const e = r();
5717            if (t.params.history) {
5718              if (!e.history || !e.history.pushState)
5719                return (
5720                  (t.params.history.enabled = !1),
5721                  void (t.params.hashNavigation.enabled = !0)
5722                );
5723              (i = !0),
5724                (n = o(t.params.url)),
5725                n.key || n.value
5726                  ? (c(0, n.value, t.params.runCallbacksOnInit),
5727                    t.params.history.replaceState ||
5728                      e.addEventListener("popstate", p))
5729                  : t.params.history.replaceState ||
5730                    e.addEventListener("popstate", p);
5731            }
5732          })();
5733      }),
5734        a("destroy", () => {
5735          t.params.history.enabled &&
5736            (() => {
5737              const e = r();
5738              t.params.history.replaceState ||
5739                e.removeEventListener("popstate", p);
5740            })();
5741        }),
5742        a("transitionEnd _freeModeNoMomentumRelease", () => {
5743          i && d(t.params.history.key, t.activeIndex);
5744        }),
5745        a("slideChange", () => {
5746          i && t.params.cssMode && d(t.params.history.key, t.activeIndex);
5747        });
5748    },
5749    function (e) {
5750      let { swiper: t, extendParams: s, emit: i, on: n } = e,
5751        l = !1;
5752      const o = a(),
5753        d = r();
5754      s({
5755        hashNavigation: {
5756          enabled: !1,
5757          replaceState: !1,
5758          watchState: !1,
5759          getSlideIndex(e, s) {
5760            if (t.virtual && t.params.virtual.enabled) {
5761              const e = t.slides.filter(
5762                (e) => e.getAttribute("data-hash") === s
5763              )[0];
5764              if (!e) return 0;
5765              return parseInt(e.getAttribute("data-swiper-slide-index"), 10);
5766            }
5767            return t.getSlideIndex(
5768              h(
5769                t.slidesEl,
5770                `.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`
5771              )[0]
5772            );
5773          },
5774        },
5775      });
5776      const c = () => {
5777          i("hashChange");
5778          const e = o.location.hash.replace("#", ""),
5779            s =
5780              t.virtual && t.params.virtual.enabled
5781                ? t.slidesEl.querySelector(
5782                    `[data-swiper-slide-index="${t.activeIndex}"]`
5783                  )
5784                : t.slides[t.activeIndex];
5785          if (e !== (s ? s.getAttribute("data-hash") : "")) {
5786            const s = t.params.hashNavigation.getSlideIndex(t, e);
5787            if (void 0 === s || Number.isNaN(s)) return;
5788            t.slideTo(s);
5789          }
5790        },
5791        p = () => {
5792          if (!l || !t.params.hashNavigation.enabled) return;
5793          const e =
5794              t.virtual && t.params.virtual.enabled
5795                ? t.slidesEl.querySelector(
5796                    `[data-swiper-slide-index="${t.activeIndex}"]`
5797                  )
5798                : t.slides[t.activeIndex],
5799            s = e
5800              ? e.getAttribute("data-hash") || e.getAttribute("data-history")
5801              : "";
5802          t.params.hashNavigation.replaceState &&
5803          d.history &&
5804          d.history.replaceState
5805            ? (d.history.replaceState(null, null, `#${s}` || ""), i("hashSet"))
5806            : ((o.location.hash = s || ""), i("hashSet"));
5807        };
5808      n("init", () => {
5809        t.params.hashNavigation.enabled &&
5810          (() => {
5811            if (
5812              !t.params.hashNavigation.enabled ||
5813              (t.params.history && t.params.history.enabled)
5814            )
5815              return;
5816            l = !0;
5817            const e = o.location.hash.replace("#", "");
5818            if (e) {
5819              const s = 0,
5820                a = t.params.hashNavigation.getSlideIndex(t, e);
5821              t.slideTo(a || 0, s, t.params.runCallbacksOnInit, !0);
5822            }
5823            t.params.hashNavigation.watchState &&
5824              d.addEventListener("hashchange", c);
5825          })();
5826      }),
5827        n("destroy", () => {
5828          t.params.hashNavigation.enabled &&
5829            t.params.hashNavigation.watchState &&
5830            d.removeEventListener("hashchange", c);
5831        }),
5832        n("transitionEnd _freeModeNoMomentumRelease", () => {
5833          l && p();
5834        }),
5835        n("slideChange", () => {
5836          l && t.params.cssMode && p();
5837        });
5838    },
5839    function (e) {
5840      let t,
5841        s,
5842        { swiper: i, extendParams: r, on: n, emit: l, params: o } = e;
5843      (i.autoplay = { running: !1, paused: !1, timeLeft: 0 }),
5844        r({
5845          autoplay: {
5846            enabled: !1,
5847            delay: 3e3,
5848            waitForTransition: !0,
5849            disableOnInteraction: !0,
5850            stopOnLastSlide: !1,
5851            reverseDirection: !1,
5852            pauseOnMouseEnter: !1,
5853          },
5854        });
5855      let d,
5856        c,
5857        p,
5858        u,
5859        m,
5860        h,
5861        f,
5862        g = o && o.autoplay ? o.autoplay.delay : 3e3,
5863        v = o && o.autoplay ? o.autoplay.delay : 3e3,
5864        w = new Date().getTime;
5865      function b(e) {
5866        i &&
5867          !i.destroyed &&
5868          i.wrapperEl &&
5869          e.target === i.wrapperEl &&
5870          (i.wrapperEl.removeEventListener("transitionend", b), M());
5871      }
5872      const y = () => {
5873          if (i.destroyed || !i.autoplay.running) return;
5874          i.autoplay.paused ? (c = !0) : c && ((v = d), (c = !1));
5875          const e = i.autoplay.paused ? d : w + v - new Date().getTime();
5876          (i.autoplay.timeLeft = e),
5877            l("autoplayTimeLeft", e, e / g),
5878            (s = requestAnimationFrame(() => {
5879              y();
5880            }));
5881        },
5882        E = (e) => {
5883          if (i.destroyed || !i.autoplay.running) return;
5884          cancelAnimationFrame(s), y();
5885          let a = void 0 === e ? i.params.autoplay.delay : e;
5886          (g = i.params.autoplay.delay), (v = i.params.autoplay.delay);
5887          const r = (() => {
5888            let e;
5889            if (
5890              ((e =
5891                i.virtual && i.params.virtual.enabled
5892                  ? i.slides.filter((e) =>
5893                      e.classList.contains("swiper-slide-active")
5894                    )[0]
5895                  : i.slides[i.activeIndex]),
5896              !e)
5897            )
5898              return;
5899            return parseInt(e.getAttribute("data-swiper-autoplay"), 10);
5900          })();
5901          !Number.isNaN(r) &&
5902            r > 0 &&
5903            void 0 === e &&
5904            ((a = r), (g = r), (v = r)),
5905            (d = a);
5906          const n = i.params.speed,
5907            o = () => {
5908              i &&
5909                !i.destroyed &&
5910                (i.params.autoplay.reverseDirection
5911                  ? !i.isBeginning || i.params.loop || i.params.rewind
5912                    ? (i.slidePrev(n, !0, !0), l("autoplay"))
5913                    : i.params.autoplay.stopOnLastSlide ||
5914                      (i.slideTo(i.slides.length - 1, n, !0, !0), l("autoplay"))
5915                  : !i.isEnd || i.params.loop || i.params.rewind
5916                  ? (i.slideNext(n, !0, !0), l("autoplay"))
5917                  : i.params.autoplay.stopOnLastSlide ||
5918                    (i.slideTo(0, n, !0, !0), l("autoplay")),
5919                i.params.cssMode &&
5920                  ((w = new Date().getTime()),
5921                  requestAnimationFrame(() => {
5922                    E();
5923                  })));
5924            };
5925          return (
5926            a > 0
5927              ? (clearTimeout(t),
5928                (t = setTimeout(() => {
5929                  o();
5930                }, a)))
5931              : requestAnimationFrame(() => {
5932                  o();
5933                }),
5934            a
5935          );
5936        },
5937        x = () => {
5938          (i.autoplay.running = !0), E(), l("autoplayStart");
5939        },
5940        S = () => {
5941          (i.autoplay.running = !1),
5942            clearTimeout(t),
5943            cancelAnimationFrame(s),
5944            l("autoplayStop");
5945        },
5946        T = (e, s) => {
5947          if (i.destroyed || !i.autoplay.running) return;
5948          clearTimeout(t), e || (f = !0);
5949          const a = () => {
5950            l("autoplayPause"),
5951              i.params.autoplay.waitForTransition
5952                ? i.wrapperEl.addEventListener("transitionend", b)
5953                : M();
5954          };
5955          if (((i.autoplay.paused = !0), s))
5956            return h && (d = i.params.autoplay.delay), (h = !1), void a();
5957          const r = d || i.params.autoplay.delay;
5958          (d = r - (new Date().getTime() - w)),
5959            (i.isEnd && d < 0 && !i.params.loop) || (d < 0 && (d = 0), a());
5960        },
5961        M = () => {
5962          (i.isEnd && d < 0 && !i.params.loop) ||
5963            i.destroyed ||
5964            !i.autoplay.running ||
5965            ((w = new Date().getTime()),
5966            f ? ((f = !1), E(d)) : E(),
5967            (i.autoplay.paused = !1),
5968            l("autoplayResume"));
5969        },
5970        C = () => {
5971          if (i.destroyed || !i.autoplay.running) return;
5972          const e = a();
5973          "hidden" === e.visibilityState && ((f = !0), T(!0)),
5974            "visible" === e.visibilityState && M();
5975        },
5976        P = (e) => {
5977          "mouse" === e.pointerType && ((f = !0), T(!0));
5978        },
5979        L = (e) => {
5980          "mouse" === e.pointerType && i.autoplay.paused && M();
5981        };
5982      n("init", () => {
5983        i.params.autoplay.enabled &&
5984          (i.params.autoplay.pauseOnMouseEnter &&
5985            (i.el.addEventListener("pointerenter", P),
5986            i.el.addEventListener("pointerleave", L)),
5987          a().addEventListener("visibilitychange", C),
5988          (w = new Date().getTime()),
5989          x());
5990      }),
5991        n("destroy", () => {
5992          i.el.removeEventListener("pointerenter", P),
5993            i.el.removeEventListener("pointerleave", L),
5994            a().removeEventListener("visibilitychange", C),
5995            i.autoplay.running && S();
5996        }),
5997        n("beforeTransitionStart", (e, t, s) => {
5998          !i.destroyed &&
5999            i.autoplay.running &&
6000            (s || !i.params.autoplay.disableOnInteraction ? T(!0, !0) : S());
6001        }),
6002        n("sliderFirstMove", () => {
6003          !i.destroyed &&
6004            i.autoplay.running &&
6005            (i.params.autoplay.disableOnInteraction
6006              ? S()
6007              : ((p = !0),
6008                (u = !1),
6009                (f = !1),
6010                (m = setTimeout(() => {
6011                  (f = !0), (u = !0), T(!0);
6012                }, 200))));
6013        }),
6014        n("touchEnd", () => {
6015          if (!i.destroyed && i.autoplay.running && p) {
6016            if (
6017              (clearTimeout(m),
6018              clearTimeout(t),
6019              i.params.autoplay.disableOnInteraction)
6020            )
6021              return (u = !1), void (p = !1);
6022            u && i.params.cssMode && M(), (u = !1), (p = !1);
6023          }
6024        }),
6025        n("slideChange", () => {
6026          !i.destroyed && i.autoplay.running && (h = !0);
6027        }),
6028        Object.assign(i.autoplay, { start: x, stop: S, pause: T, resume: M });
6029    },
6030    function (e) {
6031      let { swiper: t, extendParams: s, on: i } = e;
6032      s({
6033        thumbs: {
6034          swiper: null,
6035          multipleActiveThumbs: !0,
6036          autoScrollOffset: 0,
6037          slideThumbActiveClass: "swiper-slide-thumb-active",
6038          thumbsContainerClass: "swiper-thumbs",
6039        },
6040      });
6041      let r = !1,
6042        n = !1;
6043      function l() {
6044        const e = t.thumbs.swiper;
6045        if (!e || e.destroyed) return;
6046        const s = e.clickedIndex,
6047          a = e.clickedSlide;
6048        if (a && a.classList.contains(t.params.thumbs.slideThumbActiveClass))
6049          return;
6050        if (null == s) return;
6051        let i;
6052        (i = e.params.loop
6053          ? parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10)
6054          : s),
6055          t.params.loop ? t.slideToLoop(i) : t.slideTo(i);
6056      }
6057      function o() {
6058        const { thumbs: e } = t.params;
6059        if (r) return !1;
6060        r = !0;
6061        const s = t.constructor;
6062        if (e.swiper instanceof s)
6063          (t.thumbs.swiper = e.swiper),
6064            Object.assign(t.thumbs.swiper.originalParams, {
6065              watchSlidesProgress: !0,
6066              slideToClickedSlide: !1,
6067            }),
6068            Object.assign(t.thumbs.swiper.params, {
6069              watchSlidesProgress: !0,
6070              slideToClickedSlide: !1,
6071            }),
6072            t.thumbs.swiper.update();
6073        else if (d(e.swiper)) {
6074          const a = Object.assign({}, e.swiper);
6075          Object.assign(a, {
6076            watchSlidesProgress: !0,
6077            slideToClickedSlide: !1,
6078          }),
6079            (t.thumbs.swiper = new s(a)),
6080            (n = !0);
6081        }
6082        return (
6083          t.thumbs.swiper.el.classList.add(
6084            t.params.thumbs.thumbsContainerClass
6085          ),
6086          t.thumbs.swiper.on("tap", l),
6087          !0
6088        );
6089      }
6090      function c(e) {
6091        const s = t.thumbs.swiper;
6092        if (!s || s.destroyed) return;
6093        const a =
6094          "auto" === s.params.slidesPerView
6095            ? s.slidesPerViewDynamic()
6096            : s.params.slidesPerView;
6097        let i = 1;
6098        const r = t.params.thumbs.slideThumbActiveClass;
6099        if (
6100          (t.params.slidesPerView > 1 &&
6101            !t.params.centeredSlides &&
6102            (i = t.params.slidesPerView),
6103          t.params.thumbs.multipleActiveThumbs || (i = 1),
6104          (i = Math.floor(i)),
6105          s.slides.forEach((e) => e.classList.remove(r)),
6106          s.params.loop || (s.params.virtual && s.params.virtual.enabled))
6107        )
6108          for (let e = 0; e < i; e += 1)
6109            h(
6110              s.slidesEl,
6111              `[data-swiper-slide-index="${t.realIndex + e}"]`
6112            ).forEach((e) => {
6113              e.classList.add(r);
6114            });
6115        else
6116          for (let e = 0; e < i; e += 1)
6117            s.slides[t.realIndex + e] &&
6118              s.slides[t.realIndex + e].classList.add(r);
6119        const n = t.params.thumbs.autoScrollOffset,
6120          l = n && !s.params.loop;
6121        if (t.realIndex !== s.realIndex || l) {
6122          const i = s.activeIndex;
6123          let r, o;
6124          if (s.params.loop) {
6125            const e = s.slides.filter(
6126              (e) =>
6127                e.getAttribute("data-swiper-slide-index") === `${t.realIndex}`
6128            )[0];
6129            (r = s.slides.indexOf(e)),
6130              (o = t.activeIndex > t.previousIndex ? "next" : "prev");
6131          } else (r = t.realIndex), (o = r > t.previousIndex ? "next" : "prev");
6132          l && (r += "next" === o ? n : -1 * n),
6133            s.visibleSlidesIndexes &&
6134              s.visibleSlidesIndexes.indexOf(r) < 0 &&
6135              (s.params.centeredSlides
6136                ? (r =
6137                    r > i
6138                      ? r - Math.floor(a / 2) + 1
6139                      : r + Math.floor(a / 2) - 1)
6140                : r > i && s.params.slidesPerGroup,
6141              s.slideTo(r, e ? 0 : void 0));
6142        }
6143      }
6144      (t.thumbs = { swiper: null }),
6145        i("beforeInit", () => {
6146          const { thumbs: e } = t.params;
6147          if (e && e.swiper)
6148            if (
6149              "string" == typeof e.swiper ||
6150              e.swiper instanceof HTMLElement
6151            ) {
6152              const s = a(),
6153                i = () => {
6154                  const a =
6155                    "string" == typeof e.swiper
6156                      ? s.querySelector(e.swiper)
6157                      : e.swiper;
6158                  if (a && a.swiper) (e.swiper = a.swiper), o(), c(!0);
6159                  else if (a) {
6160                    const s = (i) => {
6161                      (e.swiper = i.detail[0]),
6162                        a.removeEventListener("init", s),
6163                        o(),
6164                        c(!0),
6165                        e.swiper.update(),
6166                        t.update();
6167                    };
6168                    a.addEventListener("init", s);
6169                  }
6170                  return a;
6171                },
6172                r = () => {
6173                  if (t.destroyed) return;
6174                  i() || requestAnimationFrame(r);
6175                };
6176              requestAnimationFrame(r);
6177            } else o(), c(!0);
6178        }),
6179        i("slideChange update resize observerUpdate", () => {
6180          c();
6181        }),
6182        i("setTransition", (e, s) => {
6183          const a = t.thumbs.swiper;
6184          a && !a.destroyed && a.setTransition(s);
6185        }),
6186        i("beforeDestroy", () => {
6187          const e = t.thumbs.swiper;
6188          e && !e.destroyed && n && e.destroy();
6189        }),
6190        Object.assign(t.thumbs, { init: o, update: c });
6191    },
6192    function (e) {
6193      let { swiper: t, extendParams: s, emit: a, once: i } = e;
6194      s({
6195        freeMode: {
6196          enabled: !1,
6197          momentum: !0,
6198          momentumRatio: 1,
6199          momentumBounce: !0,
6200          momentumBounceRatio: 1,
6201          momentumVelocityRatio: 1,
6202          sticky: !1,
6203          minimumVelocity: 0.02,
6204        },
6205      }),
6206        Object.assign(t, {
6207          freeMode: {
6208            onTouchStart: function () {
6209              if (t.params.cssMode) return;
6210              const e = t.getTranslate();
6211              t.setTranslate(e),
6212                t.setTransition(0),
6213                (t.touchEventsData.velocities.length = 0),
6214                t.freeMode.onTouchEnd({
6215                  currentPos: t.rtl ? t.translate : -t.translate,
6216                });
6217            },
6218            onTouchMove: function () {
6219              if (t.params.cssMode) return;
6220              const { touchEventsData: e, touches: s } = t;
6221              0 === e.velocities.length &&
6222                e.velocities.push({
6223                  position: s[t.isHorizontal() ? "startX" : "startY"],
6224                  time: e.touchStartTime,
6225                }),
6226                e.velocities.push({
6227                  position: s[t.isHorizontal() ? "currentX" : "currentY"],
6228                  time: l(),
6229                });
6230            },
6231            onTouchEnd: function (e) {
6232              let { currentPos: s } = e;
6233              if (t.params.cssMode) return;
6234              const {
6235                  params: r,
6236                  wrapperEl: n,
6237                  rtlTranslate: o,
6238                  snapGrid: d,
6239                  touchEventsData: c,
6240                } = t,
6241                p = l() - c.touchStartTime;
6242              if (s < -t.minTranslate()) t.slideTo(t.activeIndex);
6243              else if (s > -t.maxTranslate())
6244                t.slides.length < d.length
6245                  ? t.slideTo(d.length - 1)
6246                  : t.slideTo(t.slides.length - 1);
6247              else {
6248                if (r.freeMode.momentum) {
6249                  if (c.velocities.length > 1) {
6250                    const e = c.velocities.pop(),
6251                      s = c.velocities.pop(),
6252                      a = e.position - s.position,
6253                      i = e.time - s.time;
6254                    (t.velocity = a / i),
6255                      (t.velocity /= 2),
6256                      Math.abs(t.velocity) < r.freeMode.minimumVelocity &&
6257                        (t.velocity = 0),
6258                      (i > 150 || l() - e.time > 300) && (t.velocity = 0);
6259                  } else t.velocity = 0;
6260                  (t.velocity *= r.freeMode.momentumVelocityRatio),
6261                    (c.velocities.length = 0);
6262                  let e = 1e3 * r.freeMode.momentumRatio;
6263                  const s = t.velocity * e;
6264                  let p = t.translate + s;
6265                  o && (p = -p);
6266                  let u,
6267                    m = !1;
6268                  const h =
6269                    20 * Math.abs(t.velocity) * r.freeMode.momentumBounceRatio;
6270                  let f;
6271                  if (p < t.maxTranslate())
6272                    r.freeMode.momentumBounce
6273                      ? (p + t.maxTranslate() < -h &&
6274                          (p = t.maxTranslate() - h),
6275                        (u = t.maxTranslate()),
6276                        (m = !0),
6277                        (c.allowMomentumBounce = !0))
6278                      : (p = t.maxTranslate()),
6279                      r.loop && r.centeredSlides && (f = !0);
6280                  else if (p > t.minTranslate())
6281                    r.freeMode.momentumBounce
6282                      ? (p - t.minTranslate() > h && (p = t.minTranslate() + h),
6283                        (u = t.minTranslate()),
6284                        (m = !0),
6285                        (c.allowMomentumBounce = !0))
6286                      : (p = t.minTranslate()),
6287                      r.loop && r.centeredSlides && (f = !0);
6288                  else if (r.freeMode.sticky) {
6289                    let e;
6290                    for (let t = 0; t < d.length; t += 1)
6291                      if (d[t] > -p) {
6292                        e = t;
6293                        break;
6294                      }
6295                    (p =
6296                      Math.abs(d[e] - p) < Math.abs(d[e - 1] - p) ||
6297                      "next" === t.swipeDirection
6298                        ? d[e]
6299                        : d[e - 1]),
6300                      (p = -p);
6301                  }
6302                  if (
6303                    (f &&
6304                      i("transitionEnd", () => {
6305                        t.loopFix();
6306                      }),
6307                    0 !== t.velocity)
6308                  ) {
6309                    if (
6310                      ((e = o
6311                        ? Math.abs((-p - t.translate) / t.velocity)
6312                        : Math.abs((p - t.translate) / t.velocity)),
6313                      r.freeMode.sticky)
6314                    ) {
6315                      const s = Math.abs((o ? -p : p) - t.translate),
6316                        a = t.slidesSizesGrid[t.activeIndex];
6317                      e =
6318                        s < a
6319                          ? r.speed
6320                          : s < 2 * a
6321                          ? 1.5 * r.speed
6322                          : 2.5 * r.speed;
6323                    }
6324                  } else if (r.freeMode.sticky) return void t.slideToClosest();
6325                  r.freeMode.momentumBounce && m
6326                    ? (t.updateProgress(u),
6327                      t.setTransition(e),
6328                      t.setTranslate(p),
6329                      t.transitionStart(!0, t.swipeDirection),
6330                      (t.animating = !0),
6331                      y(n, () => {
6332                        t &&
6333                          !t.destroyed &&
6334                          c.allowMomentumBounce &&
6335                          (a("momentumBounce"),
6336                          t.setTransition(r.speed),
6337                          setTimeout(() => {
6338                            t.setTranslate(u),
6339                              y(n, () => {
6340                                t && !t.destroyed && t.transitionEnd();
6341                              });
6342                          }, 0));
6343                      }))
6344                    : t.velocity
6345                    ? (a("_freeModeNoMomentumRelease"),
6346                      t.updateProgress(p),
6347                      t.setTransition(e),
6348                      t.setTranslate(p),
6349                      t.transitionStart(!0, t.swipeDirection),
6350                      t.animating ||
6351                        ((t.animating = !0),
6352                        y(n, () => {
6353                          t && !t.destroyed && t.transitionEnd();
6354                        })))
6355                    : t.updateProgress(p),
6356                    t.updateActiveIndex(),
6357                    t.updateSlidesClasses();
6358                } else {
6359                  if (r.freeMode.sticky) return void t.slideToClosest();
6360                  r.freeMode && a("_freeModeNoMomentumRelease");
6361                }
6362                (!r.freeMode.momentum || p >= r.longSwipesMs) &&
6363                  (t.updateProgress(),
6364                  t.updateActiveIndex(),
6365                  t.updateSlidesClasses());
6366              }
6367            },
6368          },
6369        });
6370    },
6371    function (e) {
6372      let t,
6373        s,
6374        a,
6375        { swiper: i, extendParams: r } = e;
6376      r({ grid: { rows: 1, fill: "column" } });
6377      const n = () => {
6378        let e = i.params.spaceBetween;
6379        return (
6380          "string" == typeof e && e.indexOf("%") >= 0
6381            ? (e = (parseFloat(e.replace("%", "")) / 100) * i.size)
6382            : "string" == typeof e && (e = parseFloat(e)),
6383          e
6384        );
6385      };
6386      i.grid = {
6387        initSlides: (e) => {
6388          const { slidesPerView: r } = i.params,
6389            { rows: n, fill: l } = i.params.grid;
6390          (a = Math.floor(e / n)),
6391            (t = Math.floor(e / n) === e / n ? e : Math.ceil(e / n) * n),
6392            "auto" !== r && "row" === l && (t = Math.max(t, r * n)),
6393            (s = t / n);
6394        },
6395        updateSlide: (e, r, l, o) => {
6396          const { slidesPerGroup: d } = i.params,
6397            c = n(),
6398            { rows: p, fill: u } = i.params.grid;
6399          let m, h, f;
6400          if ("row" === u && d > 1) {
6401            const s = Math.floor(e / (d * p)),
6402              a = e - p * d * s,
6403              i = 0 === s ? d : Math.min(Math.ceil((l - s * p * d) / p), d);
6404            (f = Math.floor(a / i)),
6405              (h = a - f * i + s * d),
6406              (m = h + (f * t) / p),
6407              (r.style.order = m);
6408          } else
6409            "column" === u
6410              ? ((h = Math.floor(e / p)),
6411                (f = e - h * p),
6412                (h > a || (h === a && f === p - 1)) &&
6413                  ((f += 1), f >= p && ((f = 0), (h += 1))))
6414              : ((f = Math.floor(e / s)), (h = e - f * s));
6415          (r.row = f),
6416            (r.column = h),
6417            (r.style[o("margin-top")] = 0 !== f ? c && `${c}px` : "");
6418        },
6419        updateWrapperSize: (e, s, a) => {
6420          const { centeredSlides: r, roundLengths: l } = i.params,
6421            o = n(),
6422            { rows: d } = i.params.grid;
6423          if (
6424            ((i.virtualSize = (e + o) * t),
6425            (i.virtualSize = Math.ceil(i.virtualSize / d) - o),
6426            (i.wrapperEl.style[a("width")] = `${i.virtualSize + o}px`),
6427            r)
6428          ) {
6429            const e = [];
6430            for (let t = 0; t < s.length; t += 1) {
6431              let a = s[t];
6432              l && (a = Math.floor(a)),
6433                s[t] < i.virtualSize + s[0] && e.push(a);
6434            }
6435            s.splice(0, s.length), s.push(...e);
6436          }
6437        },
6438      };
6439    },
6440    function (e) {
6441      let { swiper: t } = e;
6442      Object.assign(t, {
6443        appendSlide: te.bind(t),
6444        prependSlide: se.bind(t),
6445        addSlide: ae.bind(t),
6446        removeSlide: ie.bind(t),
6447        removeAllSlides: re.bind(t),
6448      });
6449    },
6450    function (e) {
6451      let { swiper: t, extendParams: s, on: a } = e;
6452      s({ fadeEffect: { crossFade: !1 } }),
6453        ne({
6454          effect: "fade",
6455          swiper: t,
6456          on: a,
6457          setTranslate: () => {
6458            const { slides: e } = t;
6459            t.params.fadeEffect;
6460            for (let s = 0; s < e.length; s += 1) {
6461              const e = t.slides[s];
6462              let a = -e.swiperSlideOffset;
6463              t.params.virtualTranslate || (a -= t.translate);
6464              let i = 0;
6465              t.isHorizontal() || ((i = a), (a = 0));
6466              const r = t.params.fadeEffect.crossFade
6467                  ? Math.max(1 - Math.abs(e.progress), 0)
6468                  : 1 + Math.min(Math.max(e.progress, -1), 0),
6469                n = le(0, e);
6470              (n.style.opacity = r),
6471                (n.style.transform = `translate3d(${a}px, ${i}px, 0px)`);
6472            }
6473          },
6474          setTransition: (e) => {
6475            const s = t.slides.map((e) => m(e));
6476            s.forEach((t) => {
6477              t.style.transitionDuration = `${e}ms`;
6478            }),
6479              oe({
6480                swiper: t,
6481                duration: e,
6482                transformElements: s,
6483                allSlides: !0,
6484              });
6485          },
6486          overwriteParams: () => ({
6487            slidesPerView: 1,
6488            slidesPerGroup: 1,
6489            watchSlidesProgress: !0,
6490            spaceBetween: 0,
6491            virtualTranslate: !t.params.cssMode,
6492          }),
6493        });
6494    },
6495    function (e) {
6496      let { swiper: t, extendParams: s, on: a } = e;
6497      s({
6498        cubeEffect: {
6499          slideShadows: !0,
6500          shadow: !0,
6501          shadowOffset: 20,
6502          shadowScale: 0.94,
6503        },
6504      });
6505      const i = (e, t, s) => {
6506        let a = s
6507            ? e.querySelector(".swiper-slide-shadow-left")
6508            : e.querySelector(".swiper-slide-shadow-top"),
6509          i = s
6510            ? e.querySelector(".swiper-slide-shadow-right")
6511            : e.querySelector(".swiper-slide-shadow-bottom");
6512        a ||
6513          ((a = f(
6514            "div",
6515            (
6516              "swiper-slide-shadow-cube swiper-slide-shadow-" +
6517              (s ? "left" : "top")
6518            ).split(" ")
6519          )),
6520          e.append(a)),
6521          i ||
6522            ((i = f(
6523              "div",
6524              (
6525                "swiper-slide-shadow-cube swiper-slide-shadow-" +
6526                (s ? "right" : "bottom")
6527              ).split(" ")
6528            )),
6529            e.append(i)),
6530          a && (a.style.opacity = Math.max(-t, 0)),
6531          i && (i.style.opacity = Math.max(t, 0));
6532      };
6533      ne({
6534        effect: "cube",
6535        swiper: t,
6536        on: a,
6537        setTranslate: () => {
6538          const {
6539              el: e,
6540              wrapperEl: s,
6541              slides: a,
6542              width: r,
6543              height: n,
6544              rtlTranslate: l,
6545              size: o,
6546              browser: d,
6547            } = t,
6548            c = t.params.cubeEffect,
6549            p = t.isHorizontal(),
6550            u = t.virtual && t.params.virtual.enabled;
6551          let m,
6552            h = 0;
6553          c.shadow &&
6554            (p
6555              ? ((m = t.wrapperEl.querySelector(".swiper-cube-shadow")),
6556                m ||
6557                  ((m = f("div", "swiper-cube-shadow")), t.wrapperEl.append(m)),
6558                (m.style.height = `${r}px`))
6559              : ((m = e.querySelector(".swiper-cube-shadow")),
6560                m || ((m = f("div", "swiper-cube-shadow")), e.append(m))));
6561          for (let e = 0; e < a.length; e += 1) {
6562            const t = a[e];
6563            let s = e;
6564            u && (s = parseInt(t.getAttribute("data-swiper-slide-index"), 10));
6565            let r = 90 * s,
6566              n = Math.floor(r / 360);
6567            l && ((r = -r), (n = Math.floor(-r / 360)));
6568            const d = Math.max(Math.min(t.progress, 1), -1);
6569            let m = 0,
6570              f = 0,
6571              g = 0;
6572            s % 4 == 0
6573              ? ((m = 4 * -n * o), (g = 0))
6574              : (s - 1) % 4 == 0
6575              ? ((m = 0), (g = 4 * -n * o))
6576              : (s - 2) % 4 == 0
6577              ? ((m = o + 4 * n * o), (g = o))
6578              : (s - 3) % 4 == 0 && ((m = -o), (g = 3 * o + 4 * o * n)),
6579              l && (m = -m),
6580              p || ((f = m), (m = 0));
6581            const v = `rotateX(${p ? 0 : -r}deg) rotateY(${
6582              p ? r : 0
6583            }deg) translate3d(${m}px, ${f}px, ${g}px)`;
6584            d <= 1 &&
6585              d > -1 &&
6586              ((h = 90 * s + 90 * d), l && (h = 90 * -s - 90 * d)),
6587              (t.style.transform = v),
6588              c.slideShadows && i(t, d, p);
6589          }
6590          if (
6591            ((s.style.transformOrigin = `50% 50% -${o / 2}px`),
6592            (s.style["-webkit-transform-origin"] = `50% 50% -${o / 2}px`),
6593            c.shadow)
6594          )
6595            if (p)
6596              m.style.transform = `translate3d(0px, ${
6597                r / 2 + c.shadowOffset
6598              }px, ${-r / 2}px) rotateX(90deg) rotateZ(0deg) scale(${
6599                c.shadowScale
6600              })`;
6601            else {
6602              const e = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90),
6603                t =
6604                  1.5 -
6605                  (Math.sin((2 * e * Math.PI) / 360) / 2 +
6606                    Math.cos((2 * e * Math.PI) / 360) / 2),
6607                s = c.shadowScale,
6608                a = c.shadowScale / t,
6609                i = c.shadowOffset;
6610              m.style.transform = `scale3d(${s}, 1, ${a}) translate3d(0px, ${
6611                n / 2 + i
6612              }px, ${-n / 2 / a}px) rotateX(-90deg)`;
6613            }
6614          const g =
6615            (d.isSafari || d.isWebView) && d.needPerspectiveFix ? -o / 2 : 0;
6616          (s.style.transform = `translate3d(0px,0,${g}px) rotateX(${
6617            t.isHorizontal() ? 0 : h
6618          }deg) rotateY(${t.isHorizontal() ? -h : 0}deg)`),
6619            s.style.setProperty("--swiper-cube-translate-z", `${g}px`);
6620        },
6621        setTransition: (e) => {
6622          const { el: s, slides: a } = t;
6623          if (
6624            (a.forEach((t) => {
6625              (t.style.transitionDuration = `${e}ms`),
6626                t
6627                  .querySelectorAll(
6628                    ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
6629                  )
6630                  .forEach((t) => {
6631                    t.style.transitionDuration = `${e}ms`;
6632                  });
6633            }),
6634            t.params.cubeEffect.shadow && !t.isHorizontal())
6635          ) {
6636            const t = s.querySelector(".swiper-cube-shadow");
6637            t && (t.style.transitionDuration = `${e}ms`);
6638          }
6639        },
6640        recreateShadows: () => {
6641          const e = t.isHorizontal();
6642          t.slides.forEach((t) => {
6643            const s = Math.max(Math.min(t.progress, 1), -1);
6644            i(t, s, e);
6645          });
6646        },
6647        getEffectParams: () => t.params.cubeEffect,
6648        perspective: () => !0,
6649        overwriteParams: () => ({
6650          slidesPerView: 1,
6651          slidesPerGroup: 1,
6652          watchSlidesProgress: !0,
6653          resistanceRatio: 0,
6654          spaceBetween: 0,
6655          centeredSlides: !1,
6656          virtualTranslate: !0,
6657        }),
6658      });
6659    },
6660    function (e) {
6661      let { swiper: t, extendParams: s, on: a } = e;
6662      s({ flipEffect: { slideShadows: !0, limitRotation: !0 } });
6663      const i = (e, s) => {
6664        let a = t.isHorizontal()
6665            ? e.querySelector(".swiper-slide-shadow-left")
6666            : e.querySelector(".swiper-slide-shadow-top"),
6667          i = t.isHorizontal()
6668            ? e.querySelector(".swiper-slide-shadow-right")
6669            : e.querySelector(".swiper-slide-shadow-bottom");
6670        a || (a = de("flip", e, t.isHorizontal() ? "left" : "top")),
6671          i || (i = de("flip", e, t.isHorizontal() ? "right" : "bottom")),
6672          a && (a.style.opacity = Math.max(-s, 0)),
6673          i && (i.style.opacity = Math.max(s, 0));
6674      };
6675      ne({
6676        effect: "flip",
6677        swiper: t,
6678        on: a,
6679        setTranslate: () => {
6680          const { slides: e, rtlTranslate: s } = t,
6681            a = t.params.flipEffect;
6682          for (let r = 0; r < e.length; r += 1) {
6683            const n = e[r];
6684            let l = n.progress;
6685            t.params.flipEffect.limitRotation &&
6686              (l = Math.max(Math.min(n.progress, 1), -1));
6687            const o = n.swiperSlideOffset;
6688            let d = -180 * l,
6689              c = 0,
6690              p = t.params.cssMode ? -o - t.translate : -o,
6691              u = 0;
6692            t.isHorizontal()
6693              ? s && (d = -d)
6694              : ((u = p), (p = 0), (c = -d), (d = 0)),
6695              (n.style.zIndex = -Math.abs(Math.round(l)) + e.length),
6696              a.slideShadows && i(n, l);
6697            const m = `translate3d(${p}px, ${u}px, 0px) rotateX(${c}deg) rotateY(${d}deg)`;
6698            le(0, n).style.transform = m;
6699          }
6700        },
6701        setTransition: (e) => {
6702          const s = t.slides.map((e) => m(e));
6703          s.forEach((t) => {
6704            (t.style.transitionDuration = `${e}ms`),
6705              t
6706                .querySelectorAll(
6707                  ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
6708                )
6709                .forEach((t) => {
6710                  t.style.transitionDuration = `${e}ms`;
6711                });
6712          }),
6713            oe({ swiper: t, duration: e, transformElements: s });
6714        },
6715        recreateShadows: () => {
6716          t.params.flipEffect,
6717            t.slides.forEach((e) => {
6718              let s = e.progress;
6719              t.params.flipEffect.limitRotation &&
6720                (s = Math.max(Math.min(e.progress, 1), -1)),
6721                i(e, s);
6722            });
6723        },
6724        getEffectParams: () => t.params.flipEffect,
6725        perspective: () => !0,
6726        overwriteParams: () => ({
6727          slidesPerView: 1,
6728          slidesPerGroup: 1,
6729          watchSlidesProgress: !0,
6730          spaceBetween: 0,
6731          virtualTranslate: !t.params.cssMode,
6732        }),
6733      });
6734    },
6735    function (e) {
6736      let { swiper: t, extendParams: s, on: a } = e;
6737      s({
6738        coverflowEffect: {
6739          rotate: 50,
6740          stretch: 0,
6741          depth: 100,
6742          scale: 1,
6743          modifier: 1,
6744          slideShadows: !0,
6745        },
6746      }),
6747        ne({
6748          effect: "coverflow",
6749          swiper: t,
6750          on: a,
6751          setTranslate: () => {
6752            const { width: e, height: s, slides: a, slidesSizesGrid: i } = t,
6753              r = t.params.coverflowEffect,
6754              n = t.isHorizontal(),
6755              l = t.translate,
6756              o = n ? e / 2 - l : s / 2 - l,
6757              d = n ? r.rotate : -r.rotate,
6758              c = r.depth;
6759            for (let e = 0, t = a.length; e < t; e += 1) {
6760              const t = a[e],
6761                s = i[e],
6762                l = (o - t.swiperSlideOffset - s / 2) / s,
6763                p =
6764                  "function" == typeof r.modifier
6765                    ? r.modifier(l)
6766                    : l * r.modifier;
6767              let u = n ? d * p : 0,
6768                m = n ? 0 : d * p,
6769                h = -c * Math.abs(p),
6770                f = r.stretch;
6771              "string" == typeof f &&
6772                -1 !== f.indexOf("%") &&
6773                (f = (parseFloat(r.stretch) / 100) * s);
6774              let g = n ? 0 : f * p,
6775                v = n ? f * p : 0,
6776                w = 1 - (1 - r.scale) * Math.abs(p);
6777              Math.abs(v) < 0.001 && (v = 0),
6778                Math.abs(g) < 0.001 && (g = 0),
6779                Math.abs(h) < 0.001 && (h = 0),
6780                Math.abs(u) < 0.001 && (u = 0),
6781                Math.abs(m) < 0.001 && (m = 0),
6782                Math.abs(w) < 0.001 && (w = 0);
6783              const b = `translate3d(${v}px,${g}px,${h}px)  rotateX(${m}deg) rotateY(${u}deg) scale(${w})`;
6784              if (
6785                ((le(0, t).style.transform = b),
6786                (t.style.zIndex = 1 - Math.abs(Math.round(p))),
6787                r.slideShadows)
6788              ) {
6789                let e = n
6790                    ? t.querySelector(".swiper-slide-shadow-left")
6791                    : t.querySelector(".swiper-slide-shadow-top"),
6792                  s = n
6793                    ? t.querySelector(".swiper-slide-shadow-right")
6794                    : t.querySelector(".swiper-slide-shadow-bottom");
6795                e || (e = de("coverflow", t, n ? "left" : "top")),
6796                  s || (s = de("coverflow", t, n ? "right" : "bottom")),
6797                  e && (e.style.opacity = p > 0 ? p : 0),
6798                  s && (s.style.opacity = -p > 0 ? -p : 0);
6799              }
6800            }
6801          },
6802          setTransition: (e) => {
6803            t.slides
6804              .map((e) => m(e))
6805              .forEach((t) => {
6806                (t.style.transitionDuration = `${e}ms`),
6807                  t
6808                    .querySelectorAll(
6809                      ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
6810                    )
6811                    .forEach((t) => {
6812                      t.style.transitionDuration = `${e}ms`;
6813                    });
6814              });
6815          },
6816          perspective: () => !0,
6817          overwriteParams: () => ({ watchSlidesProgress: !0 }),
6818        });
6819    },
6820    function (e) {
6821      let { swiper: t, extendParams: s, on: a } = e;
6822      s({
6823        creativeEffect: {
6824          limitProgress: 1,
6825          shadowPerProgress: !1,
6826          progressMultiplier: 1,
6827          perspective: !0,
6828          prev: {
6829            translate: [0, 0, 0],
6830            rotate: [0, 0, 0],
6831            opacity: 1,
6832            scale: 1,
6833          },
6834          next: {
6835            translate: [0, 0, 0],
6836            rotate: [0, 0, 0],
6837            opacity: 1,
6838            scale: 1,
6839          },
6840        },
6841      });
6842      const i = (e) => ("string" == typeof e ? e : `${e}px`);
6843      ne({
6844        effect: "creative",
6845        swiper: t,
6846        on: a,
6847        setTranslate: () => {
6848          const { slides: e, wrapperEl: s, slidesSizesGrid: a } = t,
6849            r = t.params.creativeEffect,
6850            { progressMultiplier: n } = r,
6851            l = t.params.centeredSlides;
6852          if (l) {
6853            const e = a[0] / 2 - t.params.slidesOffsetBefore || 0;
6854            s.style.transform = `translateX(calc(50% - ${e}px))`;
6855          }
6856          for (let s = 0; s < e.length; s += 1) {
6857            const a = e[s],
6858              o = a.progress,
6859              d = Math.min(
6860                Math.max(a.progress, -r.limitProgress),
6861                r.limitProgress
6862              );
6863            let c = d;
6864            l ||
6865              (c = Math.min(
6866                Math.max(a.originalProgress, -r.limitProgress),
6867                r.limitProgress
6868              ));
6869            const p = a.swiperSlideOffset,
6870              u = [t.params.cssMode ? -p - t.translate : -p, 0, 0],
6871              m = [0, 0, 0];
6872            let h = !1;
6873            t.isHorizontal() || ((u[1] = u[0]), (u[0] = 0));
6874            let f = {
6875              translate: [0, 0, 0],
6876              rotate: [0, 0, 0],
6877              scale: 1,
6878              opacity: 1,
6879            };
6880            d < 0
6881              ? ((f = r.next), (h = !0))
6882              : d > 0 && ((f = r.prev), (h = !0)),
6883              u.forEach((e, t) => {
6884                u[t] = `calc(${e}px + (${i(f.translate[t])} * ${Math.abs(
6885                  d * n
6886                )}))`;
6887              }),
6888              m.forEach((e, t) => {
6889                m[t] = f.rotate[t] * Math.abs(d * n);
6890              }),
6891              (a.style.zIndex = -Math.abs(Math.round(o)) + e.length);
6892            const g = u.join(", "),
6893              v = `rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,
6894              w =
6895                c < 0
6896                  ? `scale(${1 + (1 - f.scale) * c * n})`
6897                  : `scale(${1 - (1 - f.scale) * c * n})`,
6898              b =
6899                c < 0
6900                  ? 1 + (1 - f.opacity) * c * n
6901                  : 1 - (1 - f.opacity) * c * n,
6902              y = `translate3d(${g}) ${v} ${w}`;
6903            if ((h && f.shadow) || !h) {
6904              let e = a.querySelector(".swiper-slide-shadow");
6905              if ((!e && f.shadow && (e = de("creative", a)), e)) {
6906                const t = r.shadowPerProgress ? d * (1 / r.limitProgress) : d;
6907                e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1);
6908              }
6909            }
6910            const E = le(0, a);
6911            (E.style.transform = y),
6912              (E.style.opacity = b),
6913              f.origin && (E.style.transformOrigin = f.origin);
6914          }
6915        },
6916        setTransition: (e) => {
6917          const s = t.slides.map((e) => m(e));
6918          s.forEach((t) => {
6919            (t.style.transitionDuration = `${e}ms`),
6920              t.querySelectorAll(".swiper-slide-shadow").forEach((t) => {
6921                t.style.transitionDuration = `${e}ms`;
6922              });
6923          }),
6924            oe({ swiper: t, duration: e, transformElements: s, allSlides: !0 });
6925        },
6926        perspective: () => t.params.creativeEffect.perspective,
6927        overwriteParams: () => ({
6928          watchSlidesProgress: !0,
6929          virtualTranslate: !t.params.cssMode,
6930        }),
6931      });
6932    },
6933    function (e) {
6934      let { swiper: t, extendParams: s, on: a } = e;
6935      s({
6936        cardsEffect: {
6937          slideShadows: !0,
6938          rotate: !0,
6939          perSlideRotate: 2,
6940          perSlideOffset: 8,
6941        },
6942      }),
6943        ne({
6944          effect: "cards",
6945          swiper: t,
6946          on: a,
6947          setTranslate: () => {
6948            const { slides: e, activeIndex: s, rtlTranslate: a } = t,
6949              i = t.params.cardsEffect,
6950              { startTranslate: r, isTouched: n } = t.touchEventsData,
6951              l = a ? -t.translate : t.translate;
6952            for (let o = 0; o < e.length; o += 1) {
6953              const d = e[o],
6954                c = d.progress,
6955                p = Math.min(Math.max(c, -4), 4);
6956              let u = d.swiperSlideOffset;
6957              t.params.centeredSlides &&
6958                !t.params.cssMode &&
6959                (t.wrapperEl.style.transform = `translateX(${t.minTranslate()}px)`),
6960                t.params.centeredSlides &&
6961                  t.params.cssMode &&
6962                  (u -= e[0].swiperSlideOffset);
6963              let m = t.params.cssMode ? -u - t.translate : -u,
6964                h = 0;
6965              const f = -100 * Math.abs(p);
6966              let g = 1,
6967                v = -i.perSlideRotate * p,
6968                w = i.perSlideOffset - 0.75 * Math.abs(p);
6969              const b =
6970                  t.virtual && t.params.virtual.enabled
6971                    ? t.virtual.from + o
6972                    : o,
6973                y =
6974                  (b === s || b === s - 1) &&
6975                  p > 0 &&
6976                  p < 1 &&
6977                  (n || t.params.cssMode) &&
6978                  l < r,
6979                E =
6980                  (b === s || b === s + 1) &&
6981                  p < 0 &&
6982                  p > -1 &&
6983                  (n || t.params.cssMode) &&
6984                  l > r;
6985              if (y || E) {
6986                const e = (1 - Math.abs((Math.abs(p) - 0.5) / 0.5)) ** 0.5;
6987                (v += -28 * p * e),
6988                  (g += -0.5 * e),
6989                  (w += 96 * e),
6990                  (h = -25 * e * Math.abs(p) + "%");
6991              }
6992              if (
6993                ((m =
6994                  p < 0
6995                    ? `calc(${m}px ${a ? "-" : "+"} (${w * Math.abs(p)}%))`
6996                    : p > 0
6997                    ? `calc(${m}px ${a ? "-" : "+"} (-${w * Math.abs(p)}%))`
6998                    : `${m}px`),
6999                !t.isHorizontal())
7000              ) {
7001                const e = h;
7002                (h = m), (m = e);
7003              }
7004              const x = p < 0 ? "" + (1 + (1 - g) * p) : "" + (1 - (1 - g) * p),
7005                S = `\n        translate3d(${m}, ${h}, ${f}px)\n        rotateZ(${
7006                  i.rotate ? (a ? -v : v) : 0
7007                }deg)\n        scale(${x})\n      `;
7008              if (i.slideShadows) {
7009                let e = d.querySelector(".swiper-slide-shadow");
7010                e || (e = de("cards", d)),
7011                  e &&
7012                    (e.style.opacity = Math.min(
7013                      Math.max((Math.abs(p) - 0.5) / 0.5, 0),
7014                      1
7015                    ));
7016              }
7017              d.style.zIndex = -Math.abs(Math.round(c)) + e.length;
7018              le(0, d).style.transform = S;
7019            }
7020          },
7021          setTransition: (e) => {
7022            const s = t.slides.map((e) => m(e));
7023            s.forEach((t) => {
7024              (t.style.transitionDuration = `${e}ms`),
7025                t.querySelectorAll(".swiper-slide-shadow").forEach((t) => {
7026                  t.style.transitionDuration = `${e}ms`;
7027                });
7028            }),
7029              oe({ swiper: t, duration: e, transformElements: s });
7030          },
7031          perspective: () => !0,
7032          overwriteParams: () => ({
7033            watchSlidesProgress: !0,
7034            virtualTranslate: !t.params.cssMode,
7035          }),
7036        });
7037    },
7038  ];
7039  return Q.use(ce), Q;
7040})();
7041//# sourceMappingURL=swiper-bundle.min.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.