PageSourceSearch

https://www.pinesol.ca/js/bootstrap.min.js

js pinesol.ca collected 2026-10-09 22:11:21 UTC 100,501 bytes, 2,456 lines download raw bytes

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

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.