PageSourceSearch

https://bani.africa/panorama-slider/vendor.js

js bani.africa collected 2026-10-03 21:38:38 UTC 116,138 bytes, 3,896 lines download raw bytes

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

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