PageSourceSearch

https://www.curemd.com/cmd/cmd-assets/js/bootstrap-5.2.2.min.js

js curemd.com collected 2026-10-02 05:01:02 UTC 88,122 bytes, 2,887 lines download raw bytes

vendor: 4,143 bytes, lines 1-138
1/*!
2 * Bootstrap v5.2.2 (https://getbootstrap.com/)
3 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5 */
6!(function (t, e) {
7  "object" == typeof exports && "undefined" != typeof module
8    ? (module.exports = e(require("@popperjs/core")))
9    : "function" == typeof define && define.amd
10    ? define(["@popperjs/core"], e)
11    : ((t =
12        "undefined" != typeof globalThis ? globalThis : t || self).bootstrap =
13        e(t.Popper));
14})(this, function (t) {
15  "use strict";
16  function e(t) {
17    if (t && t.__esModule) return t;
18    const e = Object.create(null, {
19      [Symbol.toStringTag]: { value: "Module" },
20    });
21    if (t)
22      for (const i in t)
23        if ("default" !== i) {
24          const s = Object.getOwnPropertyDescriptor(t, i);
25          Object.defineProperty(
26            e,
27            i,
28            s.get ? s : { enumerable: !0, get: () => t[i] }
29          );
30        }
31    return (e.default = t), Object.freeze(e);
32  }
33  const i = e(t),
34    s = "transitionend",
35    n = (t) => {
36      let e = t.getAttribute("data-bs-target");
37      if (!e || "#" === e) {
38        let i = t.getAttribute("href");
39        if (!i || (!i.includes("#") && !i.startsWith("."))) return null;
40        i.includes("#") && !i.startsWith("#") && (i = `#${i.split("#")[1]}`),
41          (e = i && "#" !== i ? i.trim() : null);
42      }
43      return e;
44    },
45    o = (t) => {
46      const e = n(t);
47      return e && document.querySelector(e) ? e : null;
48    },
49    r = (t) => {
50      const e = n(t);
51      return e ? document.querySelector(e) : null;
52    },
53    a = (t) => {
54      t.dispatchEvent(new Event(s));
55    },
56    l = (t) =>
57      !(!t || "object" != typeof t) &&
58      (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType),
59    c = (t) =>
60      l(t)
61        ? t.jquery
62          ? t[0]
63          : t
64        : "string" == typeof t && t.length > 0
65        ? document.querySelector(t)
66        : null,
67    h = (t) => {
68      if (!l(t) || 0 === t.getClientRects().length) return !1;
69      const e =
70          "visible" === getComputedStyle(t).getPropertyValue("visibility"),
71        i = t.closest("details:not([open])");
72      if (!i) return e;
73      if (i !== t) {
74        const e = t.closest("summary");
75        if (e && e.parentNode !== i) return !1;
76        if (null === e) return !1;
77      }
78      return e;
79    },
80    d = (t) =>
81      !t ||
82      t.nodeType !== Node.ELEMENT_NODE ||
83      !!t.classList.contains("disabled") ||
84      (void 0 !== t.disabled
85        ? t.disabled
86        : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")),
87    u = (t) => {
88      if (!document.documentElement.attachShadow) return null;
89      if ("function" == typeof t.getRootNode) {
90        const e = t.getRootNode();
91        return e instanceof ShadowRoot ? e : null;
92      }
93      return t instanceof ShadowRoot
94        ? t
95        : t.parentNode
96        ? u(t.parentNode)
97        : null;
98    },
99    _ = () => {},
100    g = (t) => {
101      t.offsetHeight;
102    },
103    f = () =>
104      window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")
105        ? window.jQuery
106        : null,
107    p = [],
108    m = () => "rtl" === document.documentElement.dir,
109    b = (t) => {
110      var e;
111      (e = () => {
112        const e = f();
113        if (e) {
114          const i = t.NAME,
115            s = e.fn[i];
116          (e.fn[i] = t.jQueryInterface),
117            (e.fn[i].Constructor = t),
118            (e.fn[i].noConflict = () => ((e.fn[i] = s), t.jQueryInterface));
119        }
120      }),
121        "loading" === document.readyState
122          ? (p.length ||
123              document.addEventListener("DOMContentLoaded", () => {
124                for (const t of p) t();
125              }),
126            p.push(e))
127          : e();
128    },
129    v = (t) => {
130      "function" == typeof t && t();
131    },
132    y = (t, e, i = !0) => {
133      if (!i) return void v(t);
134      const n =
135        ((t) => {
136          if (!t) return 0;
137          let { transitionDuration: e, transitionDelay: i } =
138            window.getComputedStyle(t);
139          const s = Number.parseFloat(e),
140            n = Number.parseFloat(i);
141          return s || n
142            ? ((e = e.split(",")[0]),
143              (i = i.split(",")[0]),
144              1e3 * (Number.parseFloat(e) + Number.parseFloat(i)))
145            : 0;
146        })(e) + 5;
147      let o = !1;
148      const r = ({ target: i }) => {
149        i === e && ((o = !0), e.removeEventListener(s, r), v(t));
150      };
151      e.addEventListener(s, r),
152        setTimeout(() => {
153          o || a(e);
154        }, n);
155    },
156    w = (t, e, i, s) => {
157      const n = t.length;
158      let o = t.indexOf(e);
159      return -1 === o
160        ? !i && s
161          ? t[n - 1]
162          : t[0]
163        : ((o += i ? 1 : -1),
164          s && (o = (o + n) % n),
165          t[Math.max(0, Math.min(o, n - 1))]);
166    },
167    A = /[^.]*(?=\..*)\.|.*/,
168    E = /\..*/,
169    C = /::\d+$/,
170    T = {};
171  let k = 1;
172  const L = { mouseenter: "mouseover", mouseleave: "mouseout" },
173    O = new Set([
174      "click",
175      "dblclick",
176      "mouseup",
177      "mousedown",
178      "contextmenu",
179      "mousewheel",
180      "DOMMouseScroll",
181      "mouseover",
182      "mouseout",
183      "mousemove",
184      "selectstart",
185      "selectend",
186      "keydown",
187      "keypress",
188      "keyup",
189      "orientationchange",
190      "touchstart",
191      "touchmove",
192      "touchend",
193      "touchcancel",
194      "pointerdown",
195      "pointermove",
196      "pointerup",
197      "pointerleave",
198      "pointercancel",
199      "gesturestart",
200      "gesturechange",
201      "gestureend",
202      "focus",
203      "blur",
204      "change",
205      "reset",
206      "select",
207      "submit",
208      "focusin",
209      "focusout",
210      "load",
211      "unload",
212      "beforeunload",
213      "resize",
214      "move",
215      "DOMContentLoaded",
216      "readystatechange",
217      "error",
218      "abort",
219      "scroll",
220    ]);
221  function I(t, e) {
222    return (e && `${e}::${k++}`) || t.uidEvent || k++;
223  }
224  function S(t) {
225    const e = I(t);
226    return (t.uidEvent = e), (T[e] = T[e] || {}), T[e];
227  }
228  function D(t, e, i = null) {
229    return Object.values(t).find(
230      (t) => t.callable === e && t.delegationSelector === i
231    );
232  }
233  function N(t, e, i) {
234    const s = "string" == typeof e,
235      n = s ? i : e || i;
236    let o = j(t);
237    return O.has(o) || (o = t), [s, n, o];
238  }
239  function P(t, e, i, s, n) {
240    if ("string" != typeof e || !t) return;
241    let [o, r, a] = N(e, i, s);
242    if (e in L) {
243      const t = (t) =>
244        function (e) {
245          if (
246            !e.relatedTarget ||
247            (e.relatedTarget !== e.delegateTarget &&
248              !e.delegateTarget.contains(e.relatedTarget))
249          )
250            return t.call(this, e);
251        };
252      r = t(r);
253    }
254    const l = S(t),
255      c = l[a] || (l[a] = {}),
256      h = D(c, r, o ? i : null);
257    if (h) return void (h.oneOff = h.oneOff && n);
258    const d = I(r, e.replace(A, "")),
259      u = o
260        ? (function (t, e, i) {
261            return function s(n) {
262              const o = t.querySelectorAll(e);
263              for (let { target: r } = n; r && r !== this; r = r.parentNode)
264                for (const a of o)
265                  if (a === r)
266                    return (
267                      F(n, { delegateTarget: r }),
268                      s.oneOff && $.off(t, n.type, e, i),
269                      i.apply(r, [n])
270                    );
271            };
272          })(t, i, r)
273        : (function (t, e) {
274            return function i(s) {
275              return (
276                F(s, { delegateTarget: t }),
277                i.oneOff && $.off(t, s.type, e),
278                e.apply(t, [s])
279              );
280            };
281          })(t, r);
282    (u.delegationSelector = o ? i : null),
283      (u.callable = r),
284      (u.oneOff = n),
285      (u.uidEvent = d),
286      (c[d] = u),
287      t.addEventListener(a, u, o);
288  }
289  function x(t, e, i, s, n) {
290    const o = D(e[i], s, n);
291    o && (t.removeEventListener(i, o, Boolean(n)), delete e[i][o.uidEvent]);
292  }
293  function M(t, e, i, s) {
294    const n = e[i] || {};
295    for (const o of Object.keys(n))
296      if (o.includes(s)) {
297        const s = n[o];
298        x(t, e, i, s.callable, s.delegationSelector);
299      }
300  }
301  function j(t) {
302    return (t = t.replace(E, "")), L[t] || t;
303  }
304  const $ = {
305    on(t, e, i, s) {
306      P(t, e, i, s, !1);
307    },
308    one(t, e, i, s) {
309      P(t, e, i, s, !0);
310    },
311    off(t, e, i, s) {
312      if ("string" != typeof e || !t) return;
313      const [n, o, r] = N(e, i, s),
314        a = r !== e,
315        l = S(t),
316        c = l[r] || {},
317        h = e.startsWith(".");
318      if (void 0 === o) {
319        if (h) for (const i of Object.keys(l)) M(t, l, i, e.slice(1));
320        for (const i of Object.keys(c)) {
321          const s = i.replace(C, "");
322          if (!a || e.includes(s)) {
323            const e = c[i];
324            x(t, l, r, e.callable, e.delegationSelector);
325          }
326        }
327      } else {
328        if (!Object.keys(c).length) return;
329        x(t, l, r, o, n ? i : null);
330      }
331    },
332    trigger(t, e, i) {
333      if ("string" != typeof e || !t) return null;
334      const s = f();
335      let n = null,
336        o = !0,
337        r = !0,
338        a = !1;
339      e !== j(e) &&
340        s &&
341        ((n = s.Event(e, i)),
342        s(t).trigger(n),
343        (o = !n.isPropagationStopped()),
344        (r = !n.isImmediatePropagationStopped()),
345        (a = n.isDefaultPrevented()));
346      let l = new Event(e, { bubbles: o, cancelable: !0 });
347      return (
348        (l = F(l, i)),
349        a && l.preventDefault(),
350        r && t.dispatchEvent(l),
351        l.defaultPrevented && n && n.preventDefault(),
352        l
353      );
354    },
355  };
356  function F(t, e) {
357    for (const [i, s] of Object.entries(e || {}))
358      try {
359        t[i] = s;
360      } catch (e) {
361        Object.defineProperty(t, i, { configurable: !0, get: () => s });
362      }
363    return t;
364  }
365  const z = new Map(),
366    H = {
367      set(t, e, i) {
368        z.has(t) || z.set(t, new Map());
369        const s = z.get(t);
370        s.has(e) || 0 === s.size
371          ? s.set(e, i)
372          : console.error(
373              `Bootstrap doesn't allow more than one instance per element. Bound instance: ${
374                Array.from(s.keys())[0]
375              }.`
376            );
377      },
378      get: (t, e) => (z.has(t) && z.get(t).get(e)) || null,
379      remove(t, e) {
380        if (!z.has(t)) return;
381        const i = z.get(t);
382        i.delete(e), 0 === i.size && z.delete(t);
383      },
384    };
385  function q(t) {
386    if ("true" === t) return !0;
387    if ("false" === t) return !1;
388    if (t === Number(t).toString()) return Number(t);
389    if ("" === t || "null" === t) return null;
390    if ("string" != typeof t) return t;
391    try {
392      return JSON.parse(decodeURIComponent(t));
393    } catch (e) {
394      return t;
395    }
396  }
397  function B(t) {
398    return t.replace(/[A-Z]/g, (t) => `-${t.toLowerCase()}`);
399  }
400  const W = {
401    setDataAttribute(t, e, i) {
402      t.setAttribute(`data-bs-${B(e)}`, i);
403    },
404    removeDataAttribute(t, e) {
405      t.removeAttribute(`data-bs-${B(e)}`);
406    },
407    getDataAttributes(t) {
408      if (!t) return {};
409      const e = {},
410        i = Object.keys(t.dataset).filter(
411          (t) => t.startsWith("bs") && !t.startsWith("bsConfig")
412        );
413      for (const s of i) {
414        let i = s.replace(/^bs/, "");
415        (i = i.charAt(0).toLowerCase() + i.slice(1, i.length)),
416          (e[i] = q(t.dataset[s]));
417      }
418      return e;
419    },
420    getDataAttribute: (t, e) => q(t.getAttribute(`data-bs-${B(e)}`)),
421  };
422  class R {
423    static get Default() {
424      return {};
425    }
426    static get DefaultType() {
427      return {};
428    }
429    static get NAME() {
430      throw new Error(
431        'You have to implement the static method "NAME", for each component!'
432      );
433    }
434    _getConfig(t) {
435      return (
436        (t = this._mergeConfigObj(t)),
437        (t = this._configAfterMerge(t)),
438        this._typeCheckConfig(t),
439        t
440      );
441    }
442    _configAfterMerge(t) {
443      return t;
444    }
445    _mergeConfigObj(t, e) {
446      const i = l(e) ? W.getDataAttribute(e, "config") : {};
447      return {
448        ...this.constructor.Default,
449        ...("object" == typeof i ? i : {}),
450        ...(l(e) ? W.getDataAttributes(e) : {}),
451        ...("object" == typeof t ? t : {}),
452      };
453    }
454    _typeCheckConfig(t, e = this.constructor.DefaultType) {
455      for (const s of Object.keys(e)) {
456        const n = e[s],
457          o = t[s],
458          r = l(o)
459            ? "element"
460            : null == (i = o)
461            ? `${i}`
462            : Object.prototype.toString
463                .call(i)
464                .match(/\s([a-z]+)/i)[1]
465                .toLowerCase();
466        if (!new RegExp(n).test(r))
467          throw new TypeError(
468            `${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${r}" but expected type "${n}".`
469          );
470      }
471      var i;
472    }
473  }
474  class V extends R {
475    constructor(t, e) {
476      super(),
477        (t = c(t)) &&
478          ((this._element = t),
479          (this._config = this._getConfig(e)),
480          H.set(this._element, this.constructor.DATA_KEY, this));
481    }
482    dispose() {
483      H.remove(this._element, this.constructor.DATA_KEY),
484        $.off(this._element, this.constructor.EVENT_KEY);
485      for (const t of Object.getOwnPropertyNames(this)) this[t] = null;
486    }
487    _queueCallback(t, e, i = !0) {
488      y(t, e, i);
489    }
490    _getConfig(t) {
491      return (
492        (t = this._mergeConfigObj(t, this._element)),
493        (t = this._configAfterMerge(t)),
494        this._typeCheckConfig(t),
495        t
496      );
497    }
498    static getInstance(t) {
499      return H.get(c(t), this.DATA_KEY);
500    }
501    static getOrCreateInstance(t, e = {}) {
502      return (
503        this.getInstance(t) || new this(t, "object" == typeof e ? e : null)
504      );
505    }
506    static get VERSION() {
507      return "5.2.2";
508    }
509    static get DATA_KEY() {
510      return `bs.${this.NAME}`;
511    }
512    static get EVENT_KEY() {
513      return `.${this.DATA_KEY}`;
514    }
515    static eventName(t) {
516      return `${t}${this.EVENT_KEY}`;
517    }
518  }
519  const K = (t, e = "hide") => {
520    const i = `click.dismiss${t.EVENT_KEY}`,
521      s = t.NAME;
522    $.on(document, i, `[data-bs-dismiss="${s}"]`, function (i) {
523      if ((["A", "AREA"].includes(this.tagName) && i.preventDefault(), d(this)))
524        return;
525      const n = r(this) || this.closest(`.${s}`);
526      t.getOrCreateInstance(n)[e]();
527    });
528  };
529  class Q extends V {
530    static get NAME() {
531      return "alert";
532    }
533    close() {
534      if ($.trigger(this._element, "close.bs.alert").defaultPrevented) return;
535      this._element.classList.remove("show");
536      const t = this._element.classList.contains("fade");
537      this._queueCallback(() => this._destroyElement(), this._element, t);
538    }
539    _destroyElement() {
540      this._element.remove(),
541        $.trigger(this._element, "closed.bs.alert"),
542        this.dispose();
543    }
544    static jQueryInterface(t) {
545      return this.each(function () {
546        const e = Q.getOrCreateInstance(this);
547        if ("string" == typeof t) {
548          if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
549            throw new TypeError(`No method named "${t}"`);
550          e[t](this);
551        }
552      });
553    }
554  }
555  K(Q, "close"), b(Q);
556  const X = '[data-bs-toggle="button"]';
557  class Y extends V {
558    static get NAME() {
559      return "button";
560    }
561    toggle() {
562      this._element.setAttribute(
563        "aria-pressed",
564        this._element.classList.toggle("active")
565      );
566    }
567    static jQueryInterface(t) {
568      return this.each(function () {
569        const e = Y.getOrCreateInstance(this);
570        "toggle" === t && e[t]();
571      });
572    }
573  }
574  $.on(document, "click.bs.button.data-api", X, (t) => {
575    t.preventDefault();
576    const e = t.target.closest(X);
577    Y.getOrCreateInstance(e).toggle();
578  }),
579    b(Y);
580  const U = {
581      find: (t, e = document.documentElement) =>
582        [].concat(...Element.prototype.querySelectorAll.call(e, t)),
583      findOne: (t, e = document.documentElement) =>
584        Element.prototype.querySelector.call(e, t),
585      children: (t, e) => [].concat(...t.children).filter((t) => t.matches(e)),
586      parents(t, e) {
587        const i = [];
588        let s = t.parentNode.closest(e);
589        for (; s; ) i.push(s), (s = s.parentNode.closest(e));
590        return i;
591      },
592      prev(t, e) {
593        let i = t.previousElementSibling;
594        for (; i; ) {
595          if (i.matches(e)) return [i];
596          i = i.previousElementSibling;
597        }
598        return [];
599      },
600      next(t, e) {
601        let i = t.nextElementSibling;
602        for (; i; ) {
603          if (i.matches(e)) return [i];
604          i = i.nextElementSibling;
605        }
606        return [];
607      },
608      focusableChildren(t) {
609        const e = [
610          "a",
611          "button",
612          "input",
613          "textarea",
614          "select",
615          "details",
616          "[tabindex]",
617          '[contenteditable="true"]',
618        ]
619          .map((t) => `${t}:not([tabindex^="-"])`)
620          .join(",");
621        return this.find(e, t).filter((t) => !d(t) && h(t));
622      },
623    },
624    G = { endCallback: null, leftCallback: null, rightCallback: null },
625    J = {
626      endCallback: "(function|null)",
627      leftCallback: "(function|null)",
628      rightCallback: "(function|null)",
629    };
630  class Z extends R {
631    constructor(t, e) {
632      super(),
633        (this._element = t),
634        t &&
635          Z.isSupported() &&
636          ((this._config = this._getConfig(e)),
637          (this._deltaX = 0),
638          (this._supportPointerEvents = Boolean(window.PointerEvent)),
639          this._initEvents());
640    }
641    static get Default() {
642      return G;
643    }
644    static get DefaultType() {
645      return J;
646    }
647    static get NAME() {
648      return "swipe";
649    }
650    dispose() {
651      $.off(this._element, ".bs.swipe");
652    }
653    _start(t) {
654      this._supportPointerEvents
655        ? this._eventIsPointerPenTouch(t) && (this._deltaX = t.clientX)
656        : (this._deltaX = t.touches[0].clientX);
657    }
658    _end(t) {
659      this._eventIsPointerPenTouch(t) &&
660        (this._deltaX = t.clientX - this._deltaX),
661        this._handleSwipe(),
662        v(this._config.endCallback);
663    }
664    _move(t) {
665      this._deltaX =
666        t.touches && t.touches.length > 1
667          ? 0
668          : t.touches[0].clientX - this._deltaX;
669    }
670    _handleSwipe() {
671      const t = Math.abs(this._deltaX);
672      if (t <= 40) return;
673      const e = t / this._deltaX;
674      (this._deltaX = 0),
675        e && v(e > 0 ? this._config.rightCallback : this._config.leftCallback);
676    }
677    _initEvents() {
678      this._supportPointerEvents
679        ? ($.on(this._element, "pointerdown.bs.swipe", (t) => this._start(t)),
680          $.on(this._element, "pointerup.bs.swipe", (t) => this._end(t)),
681          this._element.classList.add("pointer-event"))
682        : ($.on(this._element, "touchstart.bs.swipe", (t) => this._start(t)),
683          $.on(this._element, "touchmove.bs.swipe", (t) => this._move(t)),
684          $.on(this._element, "touchend.bs.swipe", (t) => this._end(t)));
685    }
686    _eventIsPointerPenTouch(t) {
687      return (
688        this._supportPointerEvents &&
689        ("pen" === t.pointerType || "touch" === t.pointerType)
690      );
691    }
692    static isSupported() {
693      return (
694        "ontouchstart" in document.documentElement ||
695        navigator.maxTouchPoints > 0
696      );
697    }
698  }
699  const tt = "next",
700    et = "prev",
701    it = "left",
702    st = "right",
703    nt = "slid.bs.carousel",
704    ot = "carousel",
705    rt = "active",
706    at = { ArrowLeft: st, ArrowRight: it },
707    lt = {
708      interval: 5e3,
709      keyboard: !0,
710      pause: "hover",
711      ride: !1,
712      touch: !0,
713      wrap: !0,
714    },
715    ct = {
716      interval: "(number|boolean)",
717      keyboard: "boolean",
718      pause: "(string|boolean)",
719      ride: "(boolean|string)",
720      touch: "boolean",
721      wrap: "boolean",
722    };
723  class ht extends V {
724    constructor(t, e) {
725      super(t, e),
726        (this._interval = null),
727        (this._activeElement = null),
728        (this._isSliding = !1),
729        (this.touchTimeout = null),
730        (this._swipeHelper = null),
731        (this._indicatorsElement = U.findOne(
732          ".carousel-indicators",
733          this._element
734        )),
735        this._addEventListeners(),
736        this._config.ride === ot && this.cycle();
737    }
738    static get Default() {
739      return lt;
740    }
741    static get DefaultType() {
742      return ct;
743    }
744    static get NAME() {
745      return "carousel";
746    }
747    next() {
748      this._slide(tt);
749    }
750    nextWhenVisible() {
751      !document.hidden && h(this._element) && this.next();
752    }
753    prev() {
754      this._slide(et);
755    }
756    pause() {
757      this._isSliding && a(this._element), this._clearInterval();
758    }
759    cycle() {
760      this._clearInterval(),
761        this._updateInterval(),
762        (this._interval = setInterval(
763          () => this.nextWhenVisible(),
764          this._config.interval
765        ));
766    }
767    _maybeEnableCycle() {
768      this._config.ride &&
769        (this._isSliding
770          ? $.one(this._element, nt, () => this.cycle())
771          : this.cycle());
772    }
773    to(t) {
774      const e = this._getItems();
775      if (t > e.length - 1 || t < 0) return;
776      if (this._isSliding)
777        return void $.one(this._element, nt, () => this.to(t));
778      const i = this._getItemIndex(this._getActive());
779      if (i === t) return;
780      const s = t > i ? tt : et;
781      this._slide(s, e[t]);
782    }
783    dispose() {
784      this._swipeHelper && this._swipeHelper.dispose(), super.dispose();
785    }
786    _configAfterMerge(t) {
787      return (t.defaultInterval = t.interval), t;
788    }
789    _addEventListeners() {
790      this._config.keyboard &&
791        $.on(this._element, "keydown.bs.carousel", (t) => this._keydown(t)),
792        "hover" === this._config.pause &&
793          ($.on(this._element, "mouseenter.bs.carousel", () => this.pause()),
794          $.on(this._element, "mouseleave.bs.carousel", () =>
795            this._maybeEnableCycle()
796          )),
797        this._config.touch && Z.isSupported() && this._addTouchEventListeners();
798    }
799    _addTouchEventListeners() {
800      for (const t of U.find(".carousel-item img", this._element))
801        $.on(t, "dragstart.bs.carousel", (t) => t.preventDefault());
802      const t = {
803        leftCallback: () => this._slide(this._directionToOrder(it)),
804        rightCallback: () => this._slide(this._directionToOrder(st)),
805        endCallback: () => {
806          "hover" === this._config.pause &&
807            (this.pause(),
808            this.touchTimeout && clearTimeout(this.touchTimeout),
809            (this.touchTimeout = setTimeout(
810              () => this._maybeEnableCycle(),
811              500 + this._config.interval
812            )));
813        },
814      };
815      this._swipeHelper = new Z(this._element, t);
816    }
817    _keydown(t) {
818      if (/input|textarea/i.test(t.target.tagName)) return;
819      const e = at[t.key];
820      e && (t.preventDefault(), this._slide(this._directionToOrder(e)));
821    }
822    _getItemIndex(t) {
823      return this._getItems().indexOf(t);
824    }
825    _setActiveIndicatorElement(t) {
826      if (!this._indicatorsElement) return;
827      const e = U.findOne(".active", this._indicatorsElement);
828      e.classList.remove(rt), e.removeAttribute("aria-current");
829      const i = U.findOne(`[data-bs-slide-to="${t}"]`, this._indicatorsElement);
830      i && (i.classList.add(rt), i.setAttribute("aria-current", "true"));
831    }
832    _updateInterval() {
833      const t = this._activeElement || this._getActive();
834      if (!t) return;
835      const e = Number.parseInt(t.getAttribute("data-bs-interval"), 10);
836      this._config.interval = e || this._config.defaultInterval;
837    }
838    _slide(t, e = null) {
839      if (this._isSliding) return;
840      const i = this._getActive(),
841        s = t === tt,
842        n = e || w(this._getItems(), i, s, this._config.wrap);
843      if (n === i) return;
844      const o = this._getItemIndex(n),
845        r = (e) =>
846          $.trigger(this._element, e, {
847            relatedTarget: n,
848            direction: this._orderToDirection(t),
849            from: this._getItemIndex(i),
850            to: o,
851          });
852      if (r("slide.bs.carousel").defaultPrevented) return;
853      if (!i || !n) return;
854      const a = Boolean(this._interval);
855      this.pause(),
856        (this._isSliding = !0),
857        this._setActiveIndicatorElement(o),
858        (this._activeElement = n);
859      const l = s ? "carousel-item-start" : "carousel-item-end",
860        c = s ? "carousel-item-next" : "carousel-item-prev";
861      n.classList.add(c),
862        g(n),
863        i.classList.add(l),
864        n.classList.add(l),
865        this._queueCallback(
866          () => {
867            n.classList.remove(l, c),
868              n.classList.add(rt),
869              i.classList.remove(rt, c, l),
870              (this._isSliding = !1),
871              r(nt);
872          },
873          i,
874          this._isAnimated()
875        ),
876        a && this.cycle();
877    }
878    _isAnimated() {
879      return this._element.classList.contains("slide");
880    }
881    _getActive() {
882      return U.findOne(".active.carousel-item", this._element);
883    }
884    _getItems() {
885      return U.find(".carousel-item", this._element);
886    }
887    _clearInterval() {
888      this._interval &&
889        (clearInterval(this._interval), (this._interval = null));
890    }
891    _directionToOrder(t) {
892      return m() ? (t === it ? et : tt) : t === it ? tt : et;
893    }
894    _orderToDirection(t) {
895      return m() ? (t === et ? it : st) : t === et ? st : it;
896    }
897    static jQueryInterface(t) {
898      return this.each(function () {
899        const e = ht.getOrCreateInstance(this, t);
900        if ("number" != typeof t) {
901          if ("string" == typeof t) {
902            if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
903              throw new TypeError(`No method named "${t}"`);
904            e[t]();
905          }
906        } else e.to(t);
907      });
908    }
909  }
910  $.on(
911    document,
912    "click.bs.carousel.data-api",
913    "[data-bs-slide], [data-bs-slide-to]",
914    function (t) {
915      const e = r(this);
916      if (!e || !e.classList.contains(ot)) return;
917      t.preventDefault();
918      const i = ht.getOrCreateInstance(e),
919        s = this.getAttribute("data-bs-slide-to");
920      return s
921        ? (i.to(s), void i._maybeEnableCycle())
922        : "next" === W.getDataAttribute(this, "slide")
923        ? (i.next(), void i._maybeEnableCycle())
924        : (i.prev(), void i._maybeEnableCycle());
925    }
926  ),
927    $.on(window, "load.bs.carousel.data-api", () => {
928      const t = U.find('[data-bs-ride="carousel"]');
929      for (const e of t) ht.getOrCreateInstance(e);
930    }),
931    b(ht);
932  const dt = "show",
933    ut = "collapse",
934    _t = "collapsing",
935    gt = '[data-bs-toggle="collapse"]',
936    ft = { parent: null, toggle: !0 },
937    pt = { parent: "(null|element)", toggle: "boolean" };
938  class mt extends V {
939    constructor(t, e) {
940      super(t, e), (this._isTransitioning = !1), (this._triggerArray = []);
941      const i = U.find(gt);
942      for (const t of i) {
943        const e = o(t),
944          i = U.find(e).filter((t) => t === this._element);
945        null !== e && i.length && this._triggerArray.push(t);
946      }
947      this._initializeChildren(),
948        this._config.parent ||
949          this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()),
950        this._config.toggle && this.toggle();
951    }
952    static get Default() {
953      return ft;
954    }
955    static get DefaultType() {
956      return pt;
957    }
958    static get NAME() {
959      return "collapse";
960    }
961    toggle() {
962      this._isShown() ? this.hide() : this.show();
963    }
964    show() {
965      if (this._isTransitioning || this._isShown()) return;
966      let t = [];
967      if (
968        (this._config.parent &&
969          (t = this._getFirstLevelChildren(
970            ".collapse.show, .collapse.collapsing"
971          )
972            .filter((t) => t !== this._element)
973            .map((t) => mt.getOrCreateInstance(t, { toggle: !1 }))),
974        t.length && t[0]._isTransitioning)
975      )
976        return;
977      if ($.trigger(this._element, "show.bs.collapse").defaultPrevented) return;
978      for (const e of t) e.hide();
979      const e = this._getDimension();
980      this._element.classList.remove(ut),
981        this._element.classList.add(_t),
982        (this._element.style[e] = 0),
983        this._addAriaAndCollapsedClass(this._triggerArray, !0),
984        (this._isTransitioning = !0);
985      const i = `scroll${e[0].toUpperCase() + e.slice(1)}`;
986      this._queueCallback(
987        () => {
988          (this._isTransitioning = !1),
989            this._element.classList.remove(_t),
990            this._element.classList.add(ut, dt),
991            (this._element.style[e] = ""),
992            $.trigger(this._element, "shown.bs.collapse");
993        },
994        this._element,
995        !0
996      ),
997        (this._element.style[e] = `${this._element[i]}px`);
998    }
999    hide() {
1000      if (this._isTransitioning || !this._isShown()) return;
1001      if ($.trigger(this._element, "hide.bs.collapse").defaultPrevented) return;
1002      const t = this._getDimension();
1003      (this._element.style[t] = `${
1004        this._element.getBoundingClientRect()[t]
1005      }px`),
1006        g(this._element),
1007        this._element.classList.add(_t),
1008        this._element.classList.remove(ut, dt);
1009      for (const t of this._triggerArray) {
1010        const e = r(t);
1011        e && !this._isShown(e) && this._addAriaAndCollapsedClass([t], !1);
1012      }
1013      (this._isTransitioning = !0),
1014        (this._element.style[t] = ""),
1015        this._queueCallback(
1016          () => {
1017            (this._isTransitioning = !1),
1018              this._element.classList.remove(_t),
1019              this._element.classList.add(ut),
1020              $.trigger(this._element, "hidden.bs.collapse");
1021          },
1022          this._element,
1023          !0
1024        );
1025    }
1026    _isShown(t = this._element) {
1027      return t.classList.contains(dt);
1028    }
1029    _configAfterMerge(t) {
1030      return (t.toggle = Boolean(t.toggle)), (t.parent = c(t.parent)), t;
1031    }
1032    _getDimension() {
1033      return this._element.classList.contains("collapse-horizontal")
1034        ? "width"
1035        : "height";
1036    }
1037    _initializeChildren() {
1038      if (!this._config.parent) return;
1039      const t = this._getFirstLevelChildren(gt);
1040      for (const e of t) {
1041        const t = r(e);
1042        t && this._addAriaAndCollapsedClass([e], this._isShown(t));
1043      }
1044    }
1045    _getFirstLevelChildren(t) {
1046      const e = U.find(":scope .collapse .collapse", this._config.parent);
1047      return U.find(t, this._config.parent).filter((t) => !e.includes(t));
1048    }
1049    _addAriaAndCollapsedClass(t, e) {
1050      if (t.length)
1051        for (const i of t)
1052          i.classList.toggle("collapsed", !e),
1053            i.setAttribute("aria-expanded", e);
1054    }
1055    static jQueryInterface(t) {
1056      const e = {};
1057      return (
1058        "string" == typeof t && /show|hide/.test(t) && (e.toggle = !1),
1059        this.each(function () {
1060          const i = mt.getOrCreateInstance(this, e);
1061          if ("string" == typeof t) {
1062            if (void 0 === i[t]) throw new TypeError(`No method n
1062amed "${t}"`);
1063            i[t]();
1064          }
1065        })
1066      );
1067    }
1068  }
1069  $.on(document, "click.bs.collapse.data-api", gt, function (t) {
1070    ("A" === t.target.tagName ||
1071      (t.delegateTarget && "A" === t.delegateTarget.tagName)) &&
1072      t.preventDefault();
1073    const e = o(this),
1074      i = U.find(e);
1075    for (const t of i) mt.getOrCreateInstance(t, { toggle: !1 }).toggle();
1076  }),
1077    b(mt);
1078  const bt = "dropdown",
1079    vt = "ArrowUp",
1080    yt = "ArrowDown",
1081    wt = "click.bs.dropdown.data-api",
1082    At = "keydown.bs.dropdown.data-api",
1083    Et = "show",
1084    Ct = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',
1085    Tt = `${Ct}.show`,
1086    kt = ".dropdown-menu",
1087    Lt = m() ? "top-end" : "top-start",
1088    Ot = m() ? "top-start" : "top-end",
1089    It = m() ? "bottom-end" : "bottom-start",
1090    St = m() ? "bottom-start" : "bottom-end",
1091    Dt = m() ? "left-start" : "right-start",
1092    Nt = m() ? "right-start" : "left-start",
1093    Pt = {
1094      autoClose: !0,
1095      boundary: "clippingParents",
1096      display: "dynamic",
1097      offset: [0, 2],
1098      popperConfig: null,
1099      reference: "toggle",
1100    },
1101    xt = {
1102      autoClose: "(boolean|string)",
1103      boundary: "(string|element)",
1104      display: "string",
1105      offset: "(array|string|function)",
1106      popperConfig: "(null|object|function)",
1107      reference: "(string|element|object)",
1108    };
1109  class Mt extends V {
1110    constructor(t, e) {
1111      super(t, e),
1112        (this._popper = null),
1113        (this._parent = this._element.parentNode),
1114        (this._menu =
1115          U.next(this._element, kt)[0] ||
1116          U.prev(this._element, kt)[0] ||
1117          U.findOne(kt, this._parent)),
1118        (this._inNavbar = this._detectNavbar());
1119    }
1120    static get Default() {
1121      return Pt;
1122    }
1123    static get DefaultType() {
1124      return xt;
1125    }
1126    static get NAME() {
1127      return bt;
1128    }
1129    toggle() {
1130      return this._isShown() ? this.hide() : this.show();
1131    }
1132    show() {
1133      if (d(this._element) || this._isShown()) return;
1134      const t = { relatedTarget: this._element };
1135      if (!$.trigger(this._element, "show.bs.dropdown", t).defaultPrevented) {
1136        if (
1137          (this._createPopper(),
1138          "ontouchstart" in document.documentElement &&
1139            !this._parent.closest(".navbar-nav"))
1140        )
1141          for (const t of [].concat(...document.body.children))
1142            $.on(t, "mouseover", _);
1143        this._element.focus(),
1144          this._element.setAttribute("aria-expanded", !0),
1145          this._menu.classList.add(Et),
1146          this._element.classList.add(Et),
1147          $.trigger(this._element, "shown.bs.dropdown", t);
1148      }
1149    }
1150    hide() {
1151      if (d(this._element) || !this._isShown()) return;
1152      const t = { relatedTarget: this._element };
1153      this._completeHide(t);
1154    }
1155    dispose() {
1156      this._popper && this._popper.destroy(), super.dispose();
1157    }
1158    update() {
1159      (this._inNavbar = this._detectNavbar()),
1160        this._popper && this._popper.update();
1161    }
1162    _completeHide(t) {
1163      if (!$.trigger(this._element, "hide.bs.dropdown", t).defaultPrevented) {
1164        if ("ontouchstart" in document.documentElement)
1165          for (const t of [].concat(...document.body.children))
1166            $.off(t, "mouseover", _);
1167        this._popper && this._popper.destroy(),
1168          this._menu.classList.remove(Et),
1169          this._element.classList.remove(Et),
1170          this._element.setAttribute("aria-expanded", "false"),
1171          W.removeDataAttribute(this._menu, "popper"),
1172          $.trigger(this._element, "hidden.bs.dropdown", t);
1173      }
1174    }
1175    _getConfig(t) {
1176      if (
1177        "object" == typeof (t = super._getConfig(t)).reference &&
1178        !l(t.reference) &&
1179        "function" != typeof t.reference.getBoundingClientRect
1180      )
1181        throw new TypeError(
1182          `${bt.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`
1183        );
1184      return t;
1185    }
1186    _createPopper() {
1187      if (void 0 === i)
1188        throw new TypeError(
1189          "Bootstrap's dropdowns require Popper (https://popper.js.org)"
1190        );
1191      let t = this._element;
1192      "parent" === this._config.reference
1193        ? (t = this._parent)
1194        : l(this._config.reference)
1195        ? (t = c(this._config.reference))
1196        : "object" == typeof this._config.reference &&
1197          (t = this._config.reference);
1198      const e = this._getPopperConfig();
1199      this._popper = i.createPopper(t, this._menu, e);
1200    }
1201    _isShown() {
1202      return this._menu.classList.contains(Et);
1203    }
1204    _getPlacement() {
1205      const t = this._parent;
1206      if (t.classList.contains("dropend")) return Dt;
1207      if (t.classList.contains("dropstart")) return Nt;
1208      if (t.classList.contains("dropup-center")) return "top";
1209      if (t.classList.contains("dropdown-center")) return "bottom";
1210      const e =
1211        "end" ===
1212        getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
1213      return t.classList.contains("dropup") ? (e ? Ot : Lt) : e ? St : It;
1214    }
1215    _detectNavbar() {
1216      return null !== this._element.closest(".navbar");
1217    }
1218    _getOffset() {
1219      const { offset: t } = this._config;
1220      return "string" == typeof t
1221        ? t.split(",").map((t) => Number.parseInt(t, 10))
1222        : "function" == typeof t
1223        ? (e) => t(e, this._element)
1224        : t;
1225    }
1226    _getPopperConfig() {
1227      const t = {
1228        placement: this._getPlacement(),
1229        modifiers: [
1230          {
1231            name: "preventOverflow",
1232            options: { boundary: this._config.boundary },
1233          },
1234          { name: "offset", options: { offset: this._getOffset() } },
1235        ],
1236      };
1237      return (
1238        (this._inNavbar || "static" === this._config.display) &&
1239          (W.setDataAttribute(this._menu, "popper", "static"),
1240          (t.modifiers = [{ name: "applyStyles", enabled: !1 }])),
1241        {
1242          ...t,
1243          ...("function" == typeof this._config.popperConfig
1244            ? this._config.popperConfig(t)
1245            : this._config.popperConfig),
1246        }
1247      );
1248    }
1249    _selectMenuItem({ key: t, target: e }) {
1250      const i = U.find(
1251        ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",
1252        this._menu
1253      ).filter((t) => h(t));
1254      i.length && w(i, e, t === yt, !i.includes(e)).focus();
1255    }
1256    static jQueryInterface(t) {
1257      return this.each(function () {
1258        const e = Mt.getOrCreateInstance(this, t);
1259        if ("string" == typeof t) {
1260          if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
1261          e[t]();
1262        }
1263      });
1264    }
1265    static clearMenus(t) {
1266      if (2 === t.button || ("keyup" === t.type && "Tab" !== t.key)) return;
1267      const e = U.find(Tt);
1268      for (const i of e) {
1269        const e = Mt.getInstance(i);
1270        if (!e || !1 === e._config.autoClose) continue;
1271        const s = t.composedPath(),
1272          n = s.includes(e._menu);
1273        if (
1274          s.includes(e._element) ||
1275          ("inside" === e._config.autoClose && !n) ||
1276          ("outside" === e._config.autoClose && n)
1277        )
1278          continue;
1279        if (
1280          e._menu.contains(t.target) &&
1281          (("keyup" === t.type && "Tab" === t.key) ||
1282            /input|select|option|textarea|form/i.test(t.target.tagName))
1283        )
1284          continue;
1285        const o = { relatedTarget: e._element };
1286        "click" === t.type && (o.clickEvent = t), e._completeHide(o);
1287      }
1288    }
1289    static dataApiKeydownHandler(t) {
1290      const e = /input|textarea/i.test(t.target.tagName),
1291        i = "Escape" === t.key,
1292        s = [vt, yt].includes(t.key);
1293      if (!s && !i) return;
1294      if (e && !i) return;
1295      t.preventDefault();
1296      const n = this.matches(Ct)
1297          ? this
1298          : U.prev(this, Ct)[0] ||
1299            U.next(this, Ct)[0] ||
1300            U.findOne(Ct, t.delegateTarget.parentNode),
1301        o = Mt.getOrCreateInstance(n);
1302      if (s) return t.stopPropagation(), o.show(), void o._selectMenuItem(t);
1303      o._isShown() && (t.stopPropagation(), o.hide(), n.focus());
1304    }
1305  }
1306  $.on(document, At, Ct, Mt.dataApiKeydownHandler),
1307    $.on(document, At, kt, Mt.dataApiKeydownHandler),
1308    $.on(document, wt, Mt.clearMenus),
1309    $.on(document, "keyup.bs.dropdown.data-api", Mt.clearMenus),
1310    $.on(document, wt, Ct, function (t) {
1311      t.preventDefault(), Mt.getOrCreateInstance(this).toggle();
1312    }),
1313    b(Mt);
1314  const jt = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
1315    $t = ".sticky-top",
1316    Ft = "padding-right",
1317    zt = "margin-right";
1318  class Ht {
1319    constructor() {
1320      this._element = document.body;
1321    }
1322    getWidth() {
1323      const t = document.documentElement.clientWidth;
1324      return Math.abs(window.innerWidth - t);
1325    }
1326    hide() {
1327      const t = this.getWidth();
1328      this._disableOverFlow(),
1329        this._setElementAttributes(this._element, Ft, (e) => e + t),
1330        this._setElementAttributes(jt, Ft, (e) => e + t),
1331        this._setElementAttributes($t, zt, (e) => e - t);
1332    }
1333    reset() {
1334      this._resetElementAttributes(this._element, "overflow"),
1335        this._resetElementAttributes(this._element, Ft),
1336        this._resetElementAttributes(jt, Ft),
1337        this._resetElementAttributes($t, zt);
1338    }
1339    isOverflowing() {
1340      return this.getWidth() > 0;
1341    }
1342    _disableOverFlow() {
1343      this._saveInitialAttribute(this._element, "overflow"),
1344        (this._element.style.overflow = "hidden");
1345    }
1346    _setElementAttributes(t, e, i) {
1347      const s = this.getWidth();
1348      this._applyManipulationCallback(t, (t) => {
1349        if (t !== this._element && window.innerWidth > t.clientWidth + s)
1350          return;
1351        this._saveInitialAttribute(t, e);
1352        const n = window.getComputedStyle(t).getPropertyValue(e);
1353        t.style.setProperty(e, `${i(Number.parseFloat(n))}px`);
1354      });
1355    }
1356    _saveInitialAttribute(t, e) {
1357      const i = t.style.getPropertyValue(e);
1358      i && W.setDataAttribute(t, e, i);
1359    }
1360    _resetElementAttributes(t, e) {
1361      this._applyManipulationCallback(t, (t) => {
1362        const i = W.getDataAttribute(t, e);
1363        null !== i
1364          ? (W.removeDataAttribute(t, e), t.style.setProperty(e, i))
1365          : t.style.removeProperty(e);
1366      });
1367    }
1368    _applyManipulationCallback(t, e) {
1369      if (l(t)) e(t);
1370      else for (const i of U.find(t, this._element)) e(i);
1371    }
1372  }
1373  const qt = "show",
1374    Bt = "mousedown.bs.backdrop",
1375    Wt = {
1376      className: "modal-backdrop",
1377      clickCallback: null,
1378      isAnimated: !1,
1379      isVisible: !0,
1380      rootElement: "body",
1381    },
1382    Rt = {
1383      className: "string",
1384      clickCallback: "(function|null)",
1385      isAnimated: "boolean",
1386      isVisible: "boolean",
1387      rootElement: "(element|string)",
1388    };
1389  class Vt extends R {
1390    constructor(t) {
1391      super(),
1392        (this._config = this._getConfig(t)),
1393        (this._isAppended = !1),
1394        (this._element = null);
1395    }
1396    static get Default() {
1397      return Wt;
1398    }
1399    static get DefaultType() {
1400      return Rt;
1401    }
1402    static get NAME() {
1403      return "backdrop";
1404    }
1405    show(t) {
1406      if (!this._config.isVisible) return void v(t);
1407      this._append();
1408      const e = this._getElement();
1409      this._config.isAnimated && g(e),
1410        e.classList.add(qt),
1411        this._emulateAnimation(() => {
1412          v(t);
1413        });
1414    }
1415    hide(t) {
1416      this._config.isVisible
1417        ? (this._getElement().classList.remove(qt),
1418          this._emulateAnimation(() => {
1419            this.dispose(), v(t);
1420          }))
1421        : v(t);
1422    }
1423    dispose() {
1424      this._isAppended &&
1425        ($.off(this._element, Bt),
1426        this._element.remove(),
1427        (this._isAppended = !1));
1428    }
1429    _getElement() {
1430      if (!this._element) {
1431        const t = document.createElement("div");
1432        (t.className = this._config.className),
1433          this._config.isAnimated && t.classList.add("fade"),
1434          (this._element = t);
1435      }
1436      return this._element;
1437    }
1438    _configAfterMerge(t) {
1439      return (t.rootElement = c(t.rootElement)), t;
1440    }
1441    _append() {
1442      if (this._isAppended) return;
1443      const t = this._getElement();
1444      this._config.rootElement.append(t),
1445        $.on(t, Bt, () => {
1446          v(this._config.clickCallback);
1447        }),
1448        (this._isAppended = !0);
1449    }
1450    _emulateAnimation(t) {
1451      y(t, this._getElement(), this._config.isAnimated);
1452    }
1453  }
1454  const Kt = ".bs.focustrap",
1455    Qt = "backward",
1456    Xt = { autofocus: !0, trapElement: null },
1457    Yt = { autofocus: "boolean", trapElement: "element" };
1458  class Ut extends R {
1459    constructor(t) {
1460      super(),
1461        (this._config = this._getConfig(t)),
1462        (this._isActive = !1),
1463        (this._lastTabNavDirection = null);
1464    }
1465    static get Default() {
1466      return Xt;
1467    }
1468    static get DefaultType() {
1469      return Yt;
1470    }
1471    static get NAME() {
1472      return "focustrap";
1473    }
1474    activate() {
1475      this._isActive ||
1476        (this._config.autofocus && this._config.trapElement.focus(),
1477        $.off(document, Kt),
1478        $.on(document, "focusin.bs.focustrap", (t) => this._handleFocusin(t)),
1479        $.on(document, "keydown.tab.bs.focustrap", (t) =>
1480          this._handleKeydown(t)
1481        ),
1482        (this._isActive = !0));
1483    }
1484    deactivate() {
1485      this._isActive && ((this._isActive = !1), $.off(document, Kt));
1486    }
1487    _handleFocusin(t) {
1488      const { trapElement: e } = this._config;
1489      if (t.target === document || t.target === e || e.contains(t.target))
1490        return;
1491      const i = U.focusableChildren(e);
1492      0 === i.length
1493        ? e.focus()
1494        : this._lastTabNavDirection === Qt
1495        ? i[i.length - 1].focus()
1496        : i[0].focus();
1497    }
1498    _handleKeydown(t) {
1499      "Tab" === t.key &&
1500        (this._lastTabNavDirection = t.shiftKey ? Qt : "forward");
1501    }
1502  }
1503  const Gt = "hidden.bs.modal",
1504    Jt = "show.bs.modal",
1505    Zt = "modal-open",
1506    te = "show",
1507    ee = "modal-static",
1508    ie = { backdrop: !0, focus: !0, keyboard: !0 },
1509    se = {
1510      backdrop: "(boolean|string)",
1511      focus: "boolean",
1512      keyboard: "boolean",
1513    };
1514  class ne extends V {
1515    constructor(t, e) {
1516      super(t, e),
1517        (this._dialog = U.findOne(".modal-dialog", this._element)),
1518        (this._backdrop = this._initializeBackDrop()),
1519        (this._focustrap = this._initializeFocusTrap()),
1520        (this._isShown = !1),
1521        (this._isTransitioning = !1),
1522        (this._scrollBar = new Ht()),
1523        this._addEventListeners();
1524    }
1525    static get Default() {
1526      return ie;
1527    }
1528    static get DefaultType() {
1529      return se;
1530    }
1531    static get NAME() {
1532      return "modal";
1533    }
1534    toggle(t) {
1535      return this._isShown ? this.hide() : this.show(t);
1536    }
1537    show(t) {
1538      this._isShown ||
1539        this._isTransitioning ||
1540        $.trigger(this._element, Jt, { relatedTarget: t }).defaultPrevented ||
1541        ((this._isShown = !0),
1542        (this._isTransitioning = !0),
1543        this._scrollBar.hide(),
1544        document.body.classList.add(Zt),
1545        this._adjustDialog(),
1546        this._backdrop.show(() => this._showElement(t)));
1547    }
1548    hide() {
1549      this._isShown &&
1550        !this._isTransitioning &&
1551        ($.trigger(this._element, "hide.bs.modal").defaultPrevented ||
1552          ((this._isShown = !1),
1553          (this._isTransitioning = !0),
1554          this._focustrap.deactivate(),
1555          this._element.classList.remove(te),
1556          this._queueCallback(
1557            () => this._hideModal(),
1558            this._element,
1559            this._isAnimated()
1560          )));
1561    }
1562    dispose() {
1563      for (const t of [window, this._dialog]) $.off(t, ".bs.modal");
1564      this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
1565    }
1566    handleUpdate() {
1567      this._adjustDialog();
1568    }
1569    _initializeBackDrop() {
1570      return new Vt({
1571        isVisible: Boolean(this._config.backdrop),
1572        isAnimated: this._isAnimated(),
1573      });
1574    }
1575    _initializeFocusTrap() {
1576      return new Ut({ trapElement: this._element });
1577    }
1578    _showElement(t) {
1579      document.body.contains(this._element) ||
1580        document.body.append(this._element),
1581        (this._element.style.display = "block"),
1582        this._element.removeAttribute("aria-hidden"),
1583        this._element.setAttribute("aria-modal", !0),
1584        this._element.setAttribute("role", "dialog"),
1585        (this._element.scrollTop = 0);
1586      const e = U.findOne(".modal-body", this._dialog);
1587      e && (e.scrollTop = 0),
1588        g(this._element),
1589        this._element.classList.add(te),
1590        this._queueCallback(
1591          () => {
1592            this._config.focus && this._focustrap.activate(),
1593              (this._isTransitioning = !1),
1594              $.trigger(this._element, "shown.bs.modal", { relatedTarget: t });
1595          },
1596          this._dialog,
1597          this._isAnimated()
1598        );
1599    }
1600    _addEventListeners() {
1601      $.on(this._element, "keydown.dismiss.bs.modal", (t) => {
1602        if ("Escape" === t.key)
1603          return this._config.keyboard
1604            ? (t.preventDefault(), void this.hide())
1605            : void this._triggerBackdropTransition();
1606      }),
1607        $.on(window, "resize.bs.modal", () => {
1608          this._isShown && !this._isTransitioning && this._adjustDialog();
1609        }),
1610        $.on(this._element, "mousedown.dismiss.bs.modal", (t) => {
1611          $.one(this._element, "click.dismiss.bs.modal", (e) => {
1612            this._element === t.target &&
1613              this._element === e.target &&
1614              ("static" !== this._config.backdrop
1615                ? this._config.backdrop && this.hide()
1616                : this._triggerBackdropTransition());
1617          });
1618        });
1619    }
1620    _hideModal() {
1621      (this._element.style.display = "none"),
1622        this._element.setAttribute("aria-hidden", !0),
1623        this._element.removeAttribute("aria-modal"),
1624        this._element.removeAttribute("role"),
1625        (this._isTransitioning = !1),
1626        this._backdrop.hide(() => {
1627          document.body.classList.remove(Zt),
1628            this._resetAdjustments(),
1629            this._scrollBar.reset(),
1630            $.trigger(this._element, Gt);
1631        });
1632    }
1633    _isAnimated() {
1634      return this._element.classList.contains("fade");
1635    }
1636    _triggerBackdropTransition() {
1637      if ($.trigger(this._element, "hidePrevented.bs.modal").defaultPrevented)
1638        return;
1639      const t =
1640          this._element.scrollHeight > document.documentElement.clientHeight,
1641        e = this._element.style.overflowY;
1642      "hidden" === e ||
1643        this._element.classList.contains(ee) ||
1644        (t || (this._element.style.overflowY = "hidden"),
1645        this._element.classList.add(ee),
1646        this._queueCallback(() => {
1647          this._element.classList.remove(ee),
1648            this._queueCallback(() => {
1649              this._element.style.overflowY = e;
1650            }, this._dialog);
1651        }, this._dialog),
1652        this._element.focus());
1653    }
1654    _adjustDialog() {
1655      const t =
1656          this._element.scrollHeight > document.documentElement.clientHeight,
1657        e = this._scrollBar.getWidth(),
1658        i = e > 0;
1659      if (i && !t) {
1660        const t = m() ? "paddingLeft" : "paddingRight";
1661        this._element.style[t] = `${e}px`;
1662      }
1663      if (!i && t) {
1664        const t = m() ? "paddingRight" : "paddingLeft";
1665        this._element.style[t] = `${e}px`;
1666      }
1667    }
1668    _resetAdjustments() {
1669      (this._element.style.paddingLeft = ""),
1670        (this._element.style.paddingRight = "");
1671    }
1672    static jQueryInterface(t, e) {
1673      return this.each(function () {
1674        const i = ne.getOrCreateInstance(this, t);
1675        if ("string" == typeof t) {
1676          if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`);
1677          i[t](e);
1678        }
1679      });
1680    }
1681  }
1682  $.on(
1683    document,
1684    "click.bs.modal.data-api",
1685    '[data-bs-toggle="modal"]',
1686    function (t) {
1687      const e = r(this);
1688      ["A", "AREA"].includes(this.tagName) && t.preventDefault(),
1689        $.one(e, Jt, (t) => {
1690          t.defaultPrevented ||
1691            $.one(e, Gt, () => {
1692              h(this) && this.focus();
1693            });
1694        });
1695      const i = U.findOne(".modal.show");
1696      i && ne.getInstance(i).hide(), ne.getOrCreateInstance(e).toggle(this);
1697    }
1698  ),
1699    K(ne),
1700    b(ne);
1701  const oe = "show",
1702    re = "showing",
1703    ae = "hiding",
1704    le = ".offcanvas.show",
1705    ce = "hidePrevented.bs.offcanvas",
1706    he = "hidden.bs.offcanvas",
1707    de = { backdrop: !0, keyboard: !0, scroll: !1 },
1708    ue = {
1709      backdrop: "(boolean|string)",
1710      keyboard: "boolean",
1711      scroll: "boolean",
1712    };
1713  class _e extends V {
1714    constructor(t, e) {
1715      super(t, e),
1716        (this._isShown = !1),
1717        (this._backdrop = this._initializeBackDrop()),
1718        (this._focustrap = this._initializeFocusTrap()),
1719        this._addEventListeners();
1720    }
1721    static get Default() {
1722      return de;
1723    }
1724    static get DefaultType() {
1725      return ue;
1726    }
1727    static get NAME() {
1728      return "offcanvas";
1729    }
1730    toggle(t) {
1731      return this._isShown ? this.hide() : this.show(t);
1732    }
1733    show(t) {
1734      this._isShown ||
1735        $.trigger(this._element, "show.bs.offcanvas", { relatedTarget: t })
1736          .defaultPrevented ||
1737        ((this._isShown = !0),
1738        this._backdrop.show(),
1739        this._config.scroll || new Ht().hide(),
1740        this._element.setAttribute("aria-modal", !0),
1741        this._element.setAttribute("role", "dialog"),
1742        this._element.classList.add(re),
1743        this._queueCallback(
1744          () => {
1745            (this._config.scroll && !this._config.backdrop) ||
1746              this._focustrap.activate(),
1747              this._element.classList.add(oe),
1748              this._element.classList.remove(re),
1749              $.trigger(this._element, "shown.bs.offcanvas", {
1750                relatedTarget: t,
1751              });
1752          },
1753          this._element,
1754          !0
1755        ));
1756    }
1757    hide() {
1758      this._isShown &&
1759        ($.trigger(this._element, "hide.bs.offcanvas").defaultPrevented ||
1760          (this._focustrap.deactivate(),
1761          this._element.blur(),
1762          (this._isShown = !1),
1763          this._element.classList.add(ae),
1764          this._backdrop.hide(),
1765          this._queueCallback(
1766            () => {
1767              this._element.classList.remove(oe, ae),
1768                this._element.removeAttribute("aria-modal"),
1769                this._element.removeAttribute("role"),
1770                this._config.scroll || new Ht().reset(),
1771                $.trigger(this._element, he);
1772            },
1773            this._element,
1774            !0
1775          )));
1776    }
1777    dispose() {
1778      this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
1779    }
1780    _initializeBackDrop() {
1781      const t = Boolean(this._config.backdrop);
1782      return new Vt({
1783        className: "offcanvas-backdrop",
1784        isVisible: t,
1785        isAnimated: !0,
1786        rootElement: this._element.parentNode,
1787        clickCallback: t
1788          ? () => {
1789              "static" !== this._config.backdrop
1790                ? this.hide()
1791                : $.trigger(this._element, ce);
1792            }
1793          : null,
1794      });
1795    }
1796    _initializeFocusTrap() {
1797      return new Ut({ trapElement: this._element });
1798    }
1799    _addEventListeners() {
1800      $.on(this._element, "keydown.dismiss.bs.offcanvas", (t) => {
1801        "Escape" === t.key &&
1802          (this._config.keyboard ? this.hide() : $.trigger(this._element, ce));
1803      });
1804    }
1805    static jQueryInterface(t) {
1806      return this.each(function () {
1807        const e = _e.getOrCreateInstance(this, t);
1808        if ("string" == typeof t) {
1809          if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
1810            throw new TypeError(`No method named "${t}"`);
1811          e[t](this);
1812        }
1813      });
1814    }
1815  }
1816  $.on(
1817    document,
1818    "click.bs.offcanvas.data-api",
1819    '[data-bs-toggle="offcanvas"]',
1820    function (t) {
1821      const e = r(this);
1822      if ((["A", "AREA"].includes(this.tagName) && t.preventDefault(), d(this)))
1823        return;
1824      $.one(e, he, () => {
1825        h(this) && this.focus();
1826      });
1827      const i = U.findOne(le);
1828      i && i !== e && _e.getInstance(i).hide(),
1829        _e.getOrCreateInstance(e).toggle(this);
1830    }
1831  ),
1832    $.on(window, "load.bs.offcanvas.data-api", () => {
1833      for (const t of U.find(le)) _e.getOrCreateInstance(t).show();
1834    }),
1835    $.on(window, "resize.bs.offcanvas", () => {
1836      for (const t of U.find("[aria-modal][class*=show][class*=offcanvas-]"))
1837        "fixed" !== getComputedStyle(t).position &&
1838          _e.getOrCreateInstance(t).hide();
1839    }),
1840    K(_e),
1841    b(_e);
1842  const ge = new Set([
1843      "background",
1844      "cite",
1845      "href",
1846      "itemtype",
1847      "longdesc",
1848      "poster",
1849      "src",
1850      "xlink:href",
1851    ]),
1852    fe = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,
1853    pe =
1854      /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
1855    me = (t, e) => {
1856      const i = t.nodeName.toLowerCase();
1857      return e.includes(i)
1858        ? !ge.has(i) || Boolean(fe.test(t.nodeValue) || pe.test(t.nodeValue))
1859        : e.filter((t) => t instanceof RegExp).some((t) => t.test(i));
1860    },
1861    be = {
1862      "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
1863      a: ["target", "href", "title", "rel"],
1864      area: [],
1865      b: [],
1866      br: [],
1867      col: [],
1868      code: [],
1869      div: [],
1870      em: [],
1871      hr: [],
1872      h1: [],
1873      h2: [],
1874      h3: [],
1875      h4: [],
1876      h5: [],
1877      h6: [],
1878      i: [],
1879      img: ["src", "srcset", "alt", "title", "width", "height"],
1880      li: [],
1881      ol: [],
1882      p: [],
1883      pre: [],
1884      s: [],
1885      small: [],
1886      span: [],
1887      sub: [],
1888      sup: [],
1889      strong: [],
1890      u: [],
1891      ul: [],
1892    },
1893    ve = {
1894      allowList: be,
1895      content: {},
1896      extraClass: "",
1897      html: !1,
1898      sanitize: !0,
1899      sanitizeFn: null,
1900      template: "<div></div>",
1901    },
1902    ye = {
1903      allowList: "object",
1904      content: "object",
1905      extraClass: "(string|function)",
1906      html: "boolean",
1907      sanitize: "boolean",
1908      sanitizeFn: "(null|function)",
1909      template: "string",
1910    },
1911    we = {
1912      entry: "(string|element|function|null)",
1913      selector: "(string|element)",
1914    };
1915  class Ae extends R {
1916    constructor(t) {
1917      super(), (this._config = this._getConfig(t));
1918    }
1919    static get Default() {
1920      return ve;
1921    }
1922    static get DefaultType() {
1923      return ye;
1924    }
1925    static get NAME() {
1926      return "TemplateFactory";
1927    }
1928    getContent() {
1929      return Object.values(this._config.content)
1930        .map((t) => this._resolvePossibleFunction(t))
1931        .filter(Boolean);
1932    }
1933    hasContent() {
1934      return this.getContent().length > 0;
1935    }
1936    changeContent(t) {
1937      return (
1938        this._checkContent(t),
1939        (this._config.content = { ...this._config.content, ...t }),
1940        this
1941      );
1942    }
1943    toHtml() {
1944      const t = document.createElement("div");
1945      t.innerHTML = this._maybeSanitize(this._config.template);
1946      for (const [e, i] of Object.entries(this._config.content))
1947        this._setContent(t, i, e);
1948      const e = t.children[0],
1949        i = this._resolvePossibleFunction(this._config.extraClass);
1950      return i && e.classList.add(...i.split(" ")), e;
1951    }
1952    _typeCheckConfig(t) {
1953      super._typeCheckConfig(t), this._checkContent(t.content);
1954    }
1955    _checkContent(t) {
1956      for (const [e, i] of Object.entries(t))
1957        super._typeCheckConfig({ selector: e, entry: i }, we);
1958    }
1959    _setContent(t, e, i) {
1960      const s = U.findOne(i, t);
1961      s &&
1962        ((e = this._resolvePossibleFunction(e))
1963          ? l(e)
1964            ? this._putElementInTemplate(c(e), s)
1965            : this._config.html
1966            ? (s.innerHTML = this._maybeSanitize(e))
1967            : (s.textContent = e)
1968          : s.remove());
1969    }
1970    _maybeSanitize(t) {
1971      return this._config.sanitize
1972        ? (function (t, e, i) {
1973            if (!t.length) return t;
1974            if (i && "function" == typeof i) return i(t);
1975            const s = new window.DOMParser().parseFromString(t, "text/html"),
1976              n = [].concat(...s.body.querySelectorAll("*"));
1977            for (const t of n) {
1978              const i = t.nodeName.toLowerCase();
1979              if (!Object.keys(e).includes(i)) {
1980                t.remove();
1981                continue;
1982              }
1983              const s = [].concat(...t.attributes),
1984                n = [].concat(e["*"] || [], e[i] || []);
1985              for (const e of s) me(e, n) || t.removeAttribute(e.nodeName);
1986            }
1987            return s.body.innerHTML;
1988          })(t, this._config.allowList, this._config.sanitizeFn)
1989        : t;
1990    }
1991    _resolvePossibleFunction(t) {
1992      return "function" == typeof t ? t(this) : t;
1993    }
1994    _putElementInTemplate(t, e) {
1995      if (this._config.html) return (e.innerHTML = ""), void e.append(t);
1996      e.textContent = t.textContent;
1997    }
1998  }
1999  const Ee = new Set(["sanitize", "allowList", "sanitizeFn"]),
2000    Ce = "fade",
2001    Te = "show",
2002    ke = ".modal",
2003    Le = "hide.bs.modal",
2004    Oe = "hover",
2005    Ie = "focus",
2006    Se = {
2007      AUTO: "auto",
2008      TOP: "top",
2009      RIGHT: m() ? "left" : "right",
2010      BOTTOM: "bottom",
2011      LEFT: m() ? "right" : "left",
2012    },
2013    De = {
2014      allowList: be,
2015      animation: !0,
2016      boundary: "clippingParents",
2017      container: !1,
2018      customClass: "",
2019      delay: 0,
2020      fallbackPlacements: ["top", "right", "bottom", "left"],
2021      html: !1,
2022      offset: [0, 0],
2023      placement: "top",
2024      popperConfig: null,
2025      sanitize: !0,
2026      sanitizeFn: null,
2027      selector: !1,
2028      template:
2029        '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
2030      title: "",
2031      trigger: "hover focus",
2032    },
2033    Ne = {
2034      allowList: "object",
2035      animation: "boolean",
2036      boundary: "(string|element)",
2037      container: "(string|element|boolean)",
2038      customClass: "(string|function)",
2039      delay: "(number|object)",
2040      fallbackPlacements: "array",
2041      html: "boolean",
2042      offset: "(array|string|function)",
2043      placement: "(string|function)",
2044      popperConfig: "(null|object|function)",
2045      sanitize: "boolean",
2046      sanitizeFn: "(null|function)",
2047      selector: "(string|boolean)",
2048      template: "string",
2049      title: "(string|element|function)",
2050      trigger: "string",
2051    };
2052  class Pe extends V {
2053    constructor(t, e) {
2054      if (void 0 === i)
2055        throw new TypeError(
2056          "Bootstrap's tooltips require Popper (https://popper.js.org)"
2057        );
2058      super(t, e),
2059        (this._isEnabled = !0),
2060        (this._timeout = 0),
2061        (this._isHovered = null),
2062        (this._activeTrigger = {}),
2063        (this._popper = null),
2064        (this._templateFactory = null),
2065        (this._newContent = null),
2066        (this.tip = null),
2067        this._setListeners(),
2068        this._config.selector || this._fixTitle();
2069    }
2070    static get Default() {
2071      return De;
2072    }
2073    static get DefaultType() {
2074      return Ne;
2075    }
2076    static get NAME() {
2077      return "tooltip";
2078    }
2079    enable() {
2080      this._isEnabled = !0;
2081    }
2082    disable() {
2083      this._isEnabled = !1;
2084    }
2085    toggleEnabled() {
2086      this._isEnabled = !this._isEnabled;
2087    }
2088    toggle() {
2089      this._isEnabled &&
2090        ((this._activeTrigger.click = !this._activeTrigger.click),
2091        this._isShown() ? this._leave() : this._enter());
2092    }
2093    dispose() {
2094      clearTimeout(this._timeout),
2095        $.off(this._element.closest(ke), Le, this._hideModalHandler),
2096        this.tip && this.tip.remove(),
2097        this._element.getAttribute("data-bs-original-title") &&
2098          this._element.setAttribute(
2099            "title",
2100            this._element.getAttribute("data-bs-original-title")
2101          ),
2102        this._disposePopper(),
2103        super.dispose();
2104    }
2105    show() {
2106      if ("none" === this._element.style.display)
2107        throw new Error("Please use show on visible elements");
2108      if (!this._isWithContent() || !this._isEnabled) return;
2109      const t = $.trigger(this._element, this.constructor.eventName("show")),
2110        e = (
2111          u(this._element) || this._element.ownerDocument.documentElement
2112        ).contains(this._element);
2113      if (t.defaultPrevented || !e) return;
2114      this.tip && (this.tip.remove(), (this.tip = null));
2115      const i = this._getTipElement();
2116      this._element.setAttribute("aria-describedby", i.getAttribute("id"));
2117      const { container: s } = this._config;
2118      if (
2119        (this._element.ownerDocument.documentElement.contains(this.tip) ||
2120          (s.append(i),
2121          $.trigger(this._element, this.constructor.eventName("inserted"))),
2122        this._popper
2123          ? this._popper.update()
2124          : (this._popper = this._createPopper(i)),
2125        i.classList.add(Te),
2126        "ontouchstart" in document.documentElement)
2127      )
2128        for (const t of [].concat(...document.body.children))
2129          $.on(t, "mouseover", _);
2130      this._queueCallback(
2131        () => {
2132          $.trigger(this._element, this.constructor.eventName("shown")),
2133            !1 === this._isHovered && this._leave(),
2134            (this._isHovered = !1);
2135        },
2136        this.tip,
2137        this._isAnimated()
2138      );
2139    }
2140    hide() {
2141      if (!this._isShown()) return;
2142      if (
2143        $.trigger(this._element, this.constructor.eventName("hide"))
2144          .defaultPrevented
2145      )
2146        return;
2147      const t = this._getTipElement();
2148      if ((t.classList.remove(Te), "ontouchstart" in document.documentElement))
2149        for (const t of [].concat(...document.body.children))
2150          $.off(t, "mouseover", _);
2151      (this._activeTrigger.click = !1),
2152        (this._activeTrigger.focus = !1),
2153        (this._activeTrigger.hover = !1),
2154        (this._isHovered = null),
2155        this._queueCallback(
2156          () => {
2157            this._isWithActiveTrigger() ||
2158              (this._isHovered || t.remove(),
2159              this._element.removeAttribute("aria-describedby"),
2160              $.trigger(this._element, this.constructor.eventName("hidden")),
2161              this._disposePopper());
2162          },
2163          this.tip,
2164          this._isAnimated()
2165        );
2166    }
2167    update() {
2168      this._popper && this._popper.update();
2169    }
2170    _isWithContent() {
2171      return Boolean(this._getTitle());
2172    }
2173    _getTipElement() {
2174      return (
2175        this.tip ||
2176          (this.tip = this._createTipElement(
2177            this._newContent || this._getContentForTemplate()
2178          )),
2179        this.tip
2180      );
2181    }
2182    _createTipElement(t) {
2183      const e = this._getTemplateFactory(t).toHtml();
2184      if (!e) return null;
2185      e.classList.remove(Ce, Te),
2186        e.classList.add(`bs-${this.constructor.NAME}-auto`);
2187      const i = ((t) => {
2188        do {
2189          t += Math.floor(1e6 * Math.random());
2190        } while (document.getElementById(t));
2191        return t;
2192      })(this.constructor.NAME).toString();
2193      return (
2194        e.setAttribute("id", i), this._isAnimated() && e.classList.add(Ce), e
2195      );
2196    }
2197    setContent(t) {
2198      (this._newContent = t),
2199        this._isShown() && (this._disposePopper(), this.show());
2200    }
2201    _getTemplateFactory(t) {
2202      return (
2203        this._templateFactory
2204          ? this._templateFactory.changeContent(t)
2205          : (this._templateFactory = new Ae({
2206              ...this._config,
2207              content: t,
2208              extraClass: this._resolvePossibleFunction(
2209                this._config.customClass
2210              ),
2211            })),
2212        this._templateFactory
2213      );
2214    }
2215    _getContentForTemplate() {
2216      return { ".tooltip-inner": this._getTitle() };
2217    }
2218    _getTitle() {
2219      return (
2220        this._resolvePossibleFunction(this._config.title) ||
2221        this._element.getAttribute("data-bs-original-title")
2222      );
2223    }
2224    _initializeOnDelegatedTarget(t) {
2225      return this.constructor.getOrCreateInstance(
2226        t.delegateTarget,
2227        this._getDelegateConfig()
2228      );
2229    }
2230    _isAnimated() {
2231      return (
2232        this._config.animation || (this.tip && this.tip.classList.contains(Ce))
2233      );
2234    }
2235    _isShown() {
2236      return this.tip && this.tip.classList.contains(Te);
2237    }
2238    _createPopper(t) {
2239      const e =
2240          "function" == typeof this._config.placement
2241            ? this._config.placement.call(this, t, this._element)
2242            : this._config.placement,
2243        s = Se[e.toUpperCase()];
2244      return i.createPopper(this._element, t, this._getPopperConfig(s));
2245    }
2246    _getOffset() {
2247      const { offset: t } = this._config;
2248      return "string" == typeof t
2249        ? t.split(",").map((t) => Number.parseInt(t, 10))
2250        : "function" == typeof t
2251        ? (e) => t(e, this._element)
2252        : t;
2253    }
2254    _resolvePossibleFunction(t) {
2255      return "function" == typeof t ? t.call(this._element) : t;
2256    }
2257    _getPopperConfig(t) {
2258      const e = {
2259        placement: t,
2260        modifiers: [
2261          {
2262            name: "flip",
2263            options: { fallbackPlacements: this._config.fallbackPlacements },
2264          },
2265          { name: "offset", options: { offset: this._getOffset() } },
2266          {
2267            name: "preventOverflow",
2268            options: { boundary: this._config.boundary },
2269          },
2270          {
2271            name: "arrow",
2272            options: { element: `.${this.constructor.NAME}-arrow` },
2273          },
2274          {
2275            name: "preSetPlacement",
2276            enabled: !0,
2277            phase: "beforeMain",
2278            fn: (t) => {
2279              this._getTipElement().setAttribute(
2280                "data-popper-placement",
2281                t.state.placement
2282              );
2283            },
2284          },
2285        ],
2286      };
2287      return {
2288        ...e,
2289        ...("function" == typeof this._config.popperConfig
2290          ? this._config.popperConfig(e)
2291          : this._config.popperConfig),
2292      };
2293    }
2294    _setListeners() {
2295      const t = this._config.trigger.split(" ");
2296      for (const e of t)
2297        if ("click" === e)
2298          $.on(
2299            this._element,
2300            this.constructor.eventName("click"),
2301            this._config.selector,
2302            (t) => {
2303              this._initializeOnDelegatedTarget(t).toggle();
2304            }
2305          );
2306        else if ("manual" !== e) {
2307          const t =
2308              e === Oe
2309                ? this.constructor.eventName("mouseenter")
2310                : this.constructor.eventName("focusin"),
2311            i =
2312              e === Oe
2313                ? this.constructor.eventName("mouseleave")
2314                : this.constructor.eventName("focusout");
2315          $.on(this._element, t, this._config.selector, (t) => {
2316            const e = this._initializeOnDelegatedTarget(t);
2317            (e._activeTrigger["focusin" === t.type ? Ie : Oe] = !0), e._enter();
2318          }),
2319            $.on(this._element, i, this._config.selector, (t) => {
2320              const e = this._initializeOnDelegatedTarget(t);
2321              (e._activeTrigger["focusout" === t.type ? Ie : Oe] =
2322                e._element.contains(t.relatedTarget)),
2323                e._leave();
2324            });
2325        }
2326      (this._hideModalHandler = () => {
2327        this._element && this.hide();
2328      }),
2329        $.on(this._element.closest(ke), Le, this._hideModalHandler);
2330    }
2331    _fixTitle() {
2332      const t = this._element.getAttribute("title");
2333      t &&
2334        (this._element.getAttribute("aria-label") ||
2335          this._element.textContent.trim() ||
2336          this._element.setAttribute("aria-label", t),
2337        this._element.setAttribute("data-bs-original-title", t),
2338        this._element.removeAttribute("title"));
2339    }
2340    _enter() {
2341      this._isShown() || this._isHovered
2342        ? (this._isHovered = !0)
2343        : ((this._isHovered = !0),
2344          this._setTimeout(() => {
2345            this._isHovered && this.show();
2346          }, this._config.delay.show));
2347    }
2348    _leave() {
2349      this._isWithActiveTrigger() ||
2350        ((this._isHovered = !1),
2351        this._setTimeout(() => {
2352          this._isHovered || this.hide();
2353        }, this._config.delay.hide));
2354    }
2355    _setTimeout(t, e) {
2356      clearTimeout(this._timeout), (this._timeout = setTimeout(t, e));
2357    }
2358    _isWithActiveTrigger() {
2359      return Object.values(this._activeTrigger).includes(!0);
2360    }
2361    _getConfig(t) {
2362      const e = W.getDataAttributes(this._element);
2363      for (const t of Object.keys(e)) Ee.has(t) && delete e[t];
2364      return (
2365        (t = { ...e, ...("object" == typeof t && t ? t : {}) }),
2366        (t = this._mergeConfigObj(t)),
2367        (t = this._configAfterMerge(t)),
2368        this._typeCheckConfig(t),
2369        t
2370      );
2371    }
2372    _configAfterMerge(t) {
2373      return (
2374        (t.container = !1 === t.container ? document.body : c(t.container)),
2375        "number" == typeof t.delay &&
2376          (t.delay = { show: t.delay, hide: t.delay }),
2377        "number" == typeof t.title && (t.title = t.title.toString()),
2378        "number" == typeof t.content && (t.content = t.content.toString()),
2379        t
2380      );
2381    }
2382    _getDelegateConfig() {
2383      const t = {};
2384      for (const e in this._config)
2385        this.constructor.Default[e] !== this._config[e] &&
2386          (t[e] = this._config[e]);
2387      return (t.selector = !1), (t.trigger = "manual"), t;
2388    }
2389    _disposePopper() {
2390      this._popper && (this._popper.destroy(), (this._popper = null));
2391    }
2392    static jQueryInterface(t) {
2393      return this.each(function () {
2394        const e = Pe.getOrCreateInstance(this, t);
2395        if ("string" == typeof t) {
2396          if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
2397          e[t]();
2398        }
2399      });
2400    }
2401  }
2402  b(Pe);
2403  const xe = {
2404      ...Pe.Default,
2405      content: "",
2406      offset: [0, 8],
2407      placement: "right",
2408      template:
2409        '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
2410      trigger: "click",
2411    },
2412    Me = { ...Pe.DefaultType, content: "(null|string|element|function)" };
2413  class je extends Pe {
2414    static get Default() {
2415      return xe;
2416    }
2417    static get DefaultType() {
2418      return Me;
2419    }
2420    static get NAME() {
2421      return "popover";
2422    }
2423    _isWithContent() {
2424      return this._getTitle() || this._getContent();
2425    }
2426    _getContentForTemplate() {
2427      return {
2428        ".popover-header": this._getTitle(),
2429        ".popover-body": this._getContent(),
2430      };
2431    }
2432    _getContent() {
2433      return this._resolvePossibleFunction(this._config.content);
2434    }
2435    static jQueryInterface(t) {
2436      return this.each(function () {
2437        const e = je.getOrCreateInstance(this, t);
2438        if ("string" == typeof t) {
2439          if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
2440          e[t]();
2441        }
2442      });
2443    }
2444  }
2445  b(je);
2446  const $e = "click.bs.scrollspy",
2447    Fe = "active",
2448    ze = "[href]",
2449    He = {
2450      offset: null,
2451      rootMargin: "0px 0px -25%",
2452      smoothScroll: !1,
2453      target: null,
2454      threshold: [0.1, 0.5, 1],
2455    },
2456    qe = {
2457      offset: "(number|null)",
2458      rootMargin: "string",
2459      smoothScroll: "boolean",
2460      target: "element",
2461      threshold: "array",
2462    };
2463  class Be extends V {
2464    constructor(t, e) {
2465      super(t, e),
2466        (this._targetLinks = new Map()),
2467        (this._observableSections = new Map()),
2468        (this._rootElement =
2469          "visible" === getComputedStyle(this._element).overflowY
2470            ? null
2471            : this._element),
2472        (this._activeTarget = null),
2473        (this._observer = null),
2474        (this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }),
2475        this.refresh();
2476    }
2477    static get Default() {
2478      return He;
2479    }
2480    static get DefaultType() {
2481      return qe;
2482    }
2483    static get NAME() {
2484      return "scrollspy";
2485    }
2486    refresh() {
2487      this._initializeTargetsAndObservables(),
2488        this._maybeEnableSmoothScroll(),
2489        this._observer
2490          ? this._observer.disconnect()
2491          : (this._observer = this._getNewObserver());
2492      for (const t of this._observableSections.values())
2493        this._observer.observe(t);
2494    }
2495    dispose() {
2496      this._observer.disconnect(), super.dispose();
2497    }
2498    _configAfterMerge(t) {
2499      return (
2500        (t.target = c(t.target) || document.body),
2501        (t.rootMargin = t.offset ? `${t.offset}px 0px -30%` : t.rootMargin),
2502        "string" == typeof t.threshold &&
2503          (t.threshold = t.threshold
2504            .split(",")
2505            .map((t) => Number.parseFloat(t))),
2506        t
2507      );
2508    }
2509    _maybeEnableSmoothScroll() {
2510      this._config.smoothScroll &&
2511        ($.off(this._config.target, $e),
2512        $.on(this._config.target, $e, ze, (t) => {
2513          const e = this._observableSections.get(t.target.hash);
2514          if (e) {
2515            t.preventDefault();
2516            const i = this._rootElement || window,
2517              s = e.offsetTop - this._element.offsetTop;
2518            if (i.scrollTo)
2519              return void i.scrollTo({ top: s, behavior: "smooth" });
2520            i.scrollTop = s;
2521          }
2522        }));
2523    }
2524    _getNewObserver() {
2525      const t = {
2526        root: this._rootElement,
2527        threshold: this._config.threshold,
2528        rootMargin: this._config.rootMargin,
2529      };
2530      return new IntersectionObserver((t) => this._observerCallback(t), t);
2531    }
2532    _observerCallback(t) {
2533      const e = (t) => this._targetLinks.get(`#${t.target.id}`),
2534        i = (t) => {
2535          (this._previousScrollData.visibleEntryTop = t.target.offsetTop),
2536            this._process(e(t));
2537        },
2538        s = (this._rootElement || document.documentElement).scrollTop,
2539        n = s >= this._previousScrollData.parentScrollTop;
2540      this._previousScrollData.parentScrollTop = s;
2541      for (const o of t) {
2542        if (!o.isIntersecting) {
2543          (this._activeTarget = null), this._clearActiveClass(e(o));
2544          continue;
2545        }
2546        const t =
2547          o.target.offsetTop >= this._previousScrollData.visibleEntryTop;
2548        if (n && t) {
2549          if ((i(o), !s)) return;
2550        } else n || t || i(o);
2551      }
2552    }
2553    _initializeTargetsAndObservables() {
2554      (this._targetLinks = new Map()), (this._observableSections = new Map());
2555      const t = U.find(ze, this._config.target);
2556      for (const e of t) {
2557        if (!e.hash || d(e)) continue;
2558        const t = U.findOne(e.hash, this._element);
2559        h(t) &&
2560          (this._targetLinks.set(e.hash, e),
2561          this._observableSections.set(e.hash, t));
2562      }
2563    }
2564    _process(t) {
2565      this._activeTarget !== t &&
2566        (this._clearActiveClass(this._config.target),
2567        (this._activeTarget = t),
2568        t.classList.add(Fe),
2569        this._activateParents(t),
2570        $.trigger(this._element, "activate.bs.scrollspy", {
2571          relatedTarget: t,
2572        }));
2573    }
2574    _activateParents(t) {
2575      if (t.classList.contains("dropdown-item"))
2576        U.findOne(".dropdown-toggle", t.closest(".dropdown")).classList.add(Fe);
2577      else
2578        for (const e of U.parents(t, ".nav, .list-group"))
2579          for (const t of U.prev(
2580            e,
2581            ".nav-link, .nav-item > .nav-link, .list-group-item"
2582          ))
2583            t.classList.add(Fe);
2584    }
2585    _clearActiveClass(t) {
2586      t.classList.remove(Fe);
2587      const e = U.find("[href].active", t);
2588      for (const t of e) t.classList.remove(Fe);
2589    }
2590    static jQueryInterface(t) {
2591      return this.each(function () {
2592        const e = Be.getOrCreateInstance(this, t);
2593        if ("string" == typeof t) {
2594          if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
2595            throw new TypeError(`No method named "${t}"`);
2596          e[t]();
2597        }
2598      });
2599    }
2600  }
2601  $.on(window, "load.bs.scrollspy.data-api", () => {
2602    for (const t of U.find('[data-bs-spy="scroll"]')) Be.getOrCreateInstance(t);
2603  }),
2604    b(Be);
2605  const We = "ArrowLeft",
2606    Re = "ArrowRight",
2607    Ve = "ArrowUp",
2608    Ke = "ArrowDown",
2609    Qe = "active",
2610    Xe = "fade",
2611    Ye = "show",
2612    Ue =
2613      '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
2614    Ge = `.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${Ue}`;
2615  class Je extends V {
2616    constructor(t) {
2617      super(t),
2618        (this._parent = this._element.closest(
2619          '.list-group, .nav, [role="tablist"]'
2620        )),
2621        this._parent &&
2622          (this._setInitialAttributes(this._parent, this._getChildren()),
2623          $.on(this._element, "keydown.bs.tab", (t) => this._keydown(t)));
2624    }
2625    static get NAME() {
2626      return "tab";
2627    }
2628    show() {
2629      const t = this._element;
2630      if (this._elemIsActive(t)) return;
2631      const e = this._getActiveElem(),
2632        i = e ? $.trigger(e, "hide.bs.tab", { relatedTarget: t }) : null;
2633      $.trigger(t, "show.bs.tab", { relatedTarget: e }).defaultPrevented ||
2634        (i && i.defaultPrevented) ||
2635        (this._deactivate(e, t), this._activate(t, e));
2636    }
2637    _activate(t, e) {
2638      t &&
2639        (t.classList.add(Qe),
2640        this._activate(r(t)),
2641        this._queueCallback(
2642          () => {
2643            "tab" === t.getAttribute("role")
2644              ? (t.removeAttribute("tabindex"),
2645                t.setAttribute("aria-selected", !0),
2646                this._toggleDropDown(t, !0),
2647                $.trigger(t, "shown.bs.tab", { relatedTarget: e }))
2648              : t.classList.add(Ye);
2649          },
2650          t,
2651          t.classList.contains(Xe)
2652        ));
2653    }
2654    _deactivate(t, e) {
2655      t &&
2656        (t.classList.remove(Qe),
2657        t.blur(),
2658        this._deactivate(r(t)),
2659        this._queueCallback(
2660          () => {
2661            "tab" === t.getAttribute("role")
2662              ? (t.setAttribute("aria-selected", !1),
2663                t.setAttribute("tabindex", "-1"),
2664                this._toggleDropDown(t, !1),
2665                $.trigger(t, "hidden.bs.tab", { relatedTarget: e }))
2666              : t.classList.remove(Ye);
2667          },
2668          t,
2669          t.classList.contains(Xe)
2670        ));
2671    }
2672    _keydown(t) {
2673      if (![We, Re, Ve, Ke].includes(t.key)) return;
2674      t.stopPropagation(), t.preventDefault();
2675      const e = [Re, Ke].includes(t.key),
2676        i = w(
2677          this._getChildren().filter((t) => !d(t)),
2678          t.target,
2679          e,
2680          !0
2681        );
2682      i && (i.focus({ preventScroll: !0 }), Je.getOrCreateInstance(i).show());
2683    }
2684    _getChildren() {
2685      return U.find(Ge, this._parent);
2686    }
2687    _getActiveElem() {
2688      return this._getChildren().find((t) => this._elemIsActive(t)) || null;
2689    }
2690    _setInitialAttributes(t, e) {
2691      this._setAttributeIfNotExists(t, "role", "tablist");
2692      for (const t of e) this._setInitialAttributesOnChild(t);
2693    }
2694    _setInitialAttributesOnChild(t) {
2695      t = this._getInnerElement(t);
2696      const e = this._elemIsActive(t),
2697        i = this._getOuterElement(t);
2698      t.setAttribute("aria-selected", e),
2699        i !== t && this._setAttributeIfNotExists(i, "role", "presentation"),
2700        e || t.setAttribute("tabindex", "-1"),
2701        this._setAttributeIfNotExists(t, "role", "tab"),
2702        this._setInitialAttributesOnTargetPanel(t);
2703    }
2704    _setInitialAttributesOnTargetPanel(t) {
2705      const e = r(t);
2706      e &&
2707        (this._setAttributeIfNotExists(e, "role", "tabpanel"),
2708        t.id &&
2709          this._setAttributeIfNotExists(e, "aria-labelledby", `#${t.id}`));
2710    }
2711    _toggleDropDown(t, e) {
2712      const i = this._getOuterElement(t);
2713      if (!i.classList.contains("dropdown")) return;
2714      const s = (t, s) => {
2715        const n = U.findOne(t, i);
2716        n && n.classList.toggle(s, e);
2717      };
2718      s(".dropdown-toggle", Qe),
2719        s(".dropdown-menu", Ye),
2720        i.setAttribute("aria-expanded", e);
2721    }
2722    _setAttributeIfNotExists(t, e, i) {
2723      t.hasAttribute(e) || t.setAttribute(e, i);
2724    }
2725    _elemIsActive(t) {
2726      return t.classList.contains(Qe);
2727    }
2728    _getInnerElement(t) {
2729      return t.matches(Ge) ? t : U.findOne(Ge, t);
2730    }
2731    _getOuterElement(t) {
vendor: 4,460 bytes, lines 2732-2887
2732      return t.closest(".nav-item, .list-group-item") || t;
2733    }
2734    static jQueryInterface(t) {
2735      return this.each(function () {
2736        const e = Je.getOrCreateInstance(this);
2737        if ("string" == typeof t) {
2738          if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
2739            throw new TypeError(`No method named "${t}"`);
2740          e[t]();
2741        }
2742      });
2743    }
2744  }
2745  $.on(document, "click.bs.tab", Ue, function (t) {
2746    ["A", "AREA"].includes(this.tagName) && t.preventDefault(),
2747      d(this) || Je.getOrCreateInstance(this).show();
2748  }),
2749    $.on(window, "load.bs.tab", () => {
2750      for (const t of U.find(
2751        '.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]'
2752      ))
2753        Je.getOrCreateInstance(t);
2754    }),
2755    b(Je);
2756  const Ze = "hide",
2757    ti = "show",
2758    ei = "showing",
2759    ii = { animation: "boolean", autohide: "boolean", delay: "number" },
2760    si = { animation: !0, autohide: !0, delay: 5e3 };
2761  class ni extends V {
2762    constructor(t, e) {
2763      super(t, e),
2764        (this._timeout = null),
2765        (this._hasMouseInteraction = !1),
2766        (this._hasKeyboardInteraction = !1),
2767        this._setListeners();
2768    }
2769    static get Default() {
2770      return si;
2771    }
2772    static get DefaultType() {
2773      return ii;
2774    }
2775    static get NAME() {
2776      return "toast";
2777    }
2778    show() {
2779      $.trigger(this._element, "show.bs.toast").defaultPrevented ||
2780        (this._clearTimeout(),
2781        this._config.animation && this._element.classList.add("fade"),
2782        this._element.classList.remove(Ze),
2783        g(this._element),
2784        this._element.classList.add(ti, ei),
2785        this._queueCallback(
2786          () => {
2787            this._element.classList.remove(ei),
2788              $.trigger(this._element, "shown.bs.toast"),
2789              this._maybeScheduleHide();
2790          },
2791          this._element,
2792          this._config.animation
2793        ));
2794    }
2795    hide() {
2796      this.isShown() &&
2797        ($.trigger(this._element, "hide.bs.toast").defaultPrevented ||
2798          (this._element.classList.add(ei),
2799          this._queueCallback(
2800            () => {
2801              this._element.classList.add(Ze),
2802                this._element.classList.remove(ei, ti),
2803                $.trigger(this._element, "hidden.bs.toast");
2804            },
2805            this._element,
2806            this._config.animation
2807          )));
2808    }
2809    dispose() {
2810      this._clearTimeout(),
2811        this.isShown() && this._element.classList.remove(ti),
2812        super.dispose();
2813    }
2814    isShown() {
2815      return this._element.classList.contains(ti);
2816    }
2817    _maybeScheduleHide() {
2818      this._config.autohide &&
2819        (this._hasMouseInteraction ||
2820          this._hasKeyboardInteraction ||
2821          (this._timeout = setTimeout(() => {
2822            this.hide();
2823          }, this._config.delay)));
2824    }
2825    _onInteraction(t, e) {
2826      switch (t.type) {
2827        case "mouseover":
2828        case "mouseout":
2829          this._hasMouseInteraction = e;
2830          break;
2831        case "focusin":
2832        case "focusout":
2833          this._hasKeyboardInteraction = e;
2834      }
2835      if (e) return void this._clearTimeout();
2836      const i = t.relatedTarget;
2837      this._element === i ||
2838        this._element.contains(i) ||
2839        this._maybeScheduleHide();
2840    }
2841    _setListeners() {
2842      $.on(this._element, "mouseover.bs.toast", (t) =>
2843        this._onInteraction(t, !0)
2844      ),
2845        $.on(this._element, "mouseout.bs.toast", (t) =>
2846          this._onInteraction(t, !1)
2847        ),
2848        $.on(this._element, "focusin.bs.toast", (t) =>
2849          this._onInteraction(t, !0)
2850        ),
2851        $.on(this._element, "focusout.bs.toast", (t) =>
2852          this._onInteraction(t, !1)
2853        );
2854    }
2855    _clearTimeout() {
2856      clearTimeout(this._timeout), (this._timeout = null);
2857    }
2858    static jQueryInterface(t) {
2859      return this.each(function () {
2860        const e = ni.getOrCreateInstance(this, t);
2861        if ("string" == typeof t) {
2862          if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
2863          e[t](this);
2864        }
2865      });
2866    }
2867  }
2868  return (
2869    K(ni),
2870    b(ni),
2871    {
2872      Alert: Q,
2873      Button: Y,
2874      Carousel: ht,
2875      Collapse: mt,
2876      Dropdown: Mt,
2877      Modal: ne,
2878      Offcanvas: _e,
2879      Popover: je,
2880      ScrollSpy: Be,
2881      Tab: Je,
2882      Toast: ni,
2883      Tooltip: Pe,
2884    }
2885  );
2886});
2887//# sourceMappingURL=bootstrap.min.js.map

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