/*! * Bootstrap v5.0.2 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ !(function (t, e) { "object" == typeof exports && "undefined" != typeof module ? (module.exports = e(require("@popperjs/core"))) : "function" == typeof define && define.amd ? define(["@popperjs/core"], e) : ((t = "undefined" != typeof globalThis ? globalThis : t || self).bootstrap = e(t.Popper)); })(this, function (t) { "use strict"; function e(t) { if (t && t.__esModule) return t; var e = Object.create(null); return ( t && Object.keys(t).forEach(function (s) { if ("default" !== s) { var i = Object.getOwnPropertyDescriptor(t, s); Object.defineProperty( e, s, i.get ? i : { enumerable: !0, get: function () { return t[s]; }, } ); } }), (e.default = t), Object.freeze(e) ); } var s = e(t); const i = { find: (t, e = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(e, t)), findOne: (t, e = document.documentElement) => Element.prototype.querySelector.call(e, t), children: (t, e) => [].concat(...t.children).filter((t) => t.matches(e)), parents(t, e) { const s = []; let i = t.parentNode; for (; i && i.nodeType === Node.ELEMENT_NODE && 3 !== i.nodeType; ) i.matches(e) && s.push(i), (i = i.parentNode); return s; }, prev(t, e) { let s = t.previousElementSibling; for (; s; ) { if (s.matches(e)) return [s]; s = s.previousElementSibling; } return []; }, next(t, e) { let s = t.nextElementSibling; for (; s; ) { if (s.matches(e)) return [s]; s = s.nextElementSibling; } return []; }, }, n = (t) => { do { t += Math.floor(1e6 * Math.random()); } while (document.getElementById(t)); return t; }, o = (t) => { let e = t.getAttribute("data-bs-target"); if (!e || "#" === e) { let s = t.getAttribute("href"); if (!s || (!s.includes("#") && !s.startsWith("."))) return null; s.includes("#") && !s.startsWith("#") && (s = "#" + s.split("#")[1]), (e = s && "#" !== s ? s.trim() : null); } return e; }, r = (t) => { const e = o(t); return e && document.querySelector(e) ? e : null; }, a = (t) => { const e = o(t); return e ? document.querySelector(e) : null; }, l = (t) => { t.dispatchEvent(new Event("transitionend")); }, c = (t) => !(!t || "object" != typeof t) && (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType), h = (t) => c(t) ? t.jquery ? t[0] : t : "string" == typeof t && t.length > 0 ? i.findOne(t) : null, d = (t, e, s) => { Object.keys(s).forEach((i) => { const n = s[i], o = e[i], r = o && c(o) ? "element" : null == (a = o) ? "" + a : {}.toString .call(a) .match(/\s([a-z]+)/i)[1] .toLowerCase(); var a; if (!new RegExp(n).test(r)) throw new TypeError( `${t.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${n}".` ); }); }, u = (t) => !(!c(t) || 0 === t.getClientRects().length) && "visible" === getComputedStyle(t).getPropertyValue("visibility"), g = (t) => !t || t.nodeType !== Node.ELEMENT_NODE || !!t.classList.contains("disabled") || (void 0 !== t.disabled ? t.disabled : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")), p = (t) => { if (!document.documentElement.attachShadow) return null; if ("function" == typeof t.getRootNode) { const e = t.getRootNode(); return e instanceof ShadowRoot ? e : null; } return t instanceof ShadowRoot ? t : t.parentNode ? p(t.parentNode) : null; }, f = () => {}, m = (t) => t.offsetHeight, _ = () => { const { jQuery: t } = window; return t && !document.body.hasAttribute("data-bs-no-jquery") ? t : null; }, b = [], v = () => "rtl" === document.documentElement.dir, y = (t) => { var e; (e = () => { const e = _(); if (e) { const s = t.NAME, i = e.fn[s]; (e.fn[s] = t.jQueryInterface), (e.fn[s].Constructor = t), (e.fn[s].noConflict = () => ((e.fn[s] = i), t.jQueryInterface)); } }), "loading" === document.readyState ? (b.length || document.addEventListener("DOMContentLoaded", () => { b.forEach((t) => t()); }), b.push(e)) : e(); }, w = (t) => { "function" == typeof t && t(); }, E = (t, e, s = !0) => { if (!s) return void w(t); const i = ((t) => { if (!t) return 0; let { transitionDuration: e, transitionDelay: s } = window.getComputedStyle(t); const i = Number.parseFloat(e), n = Number.parseFloat(s); return i || n ? ((e = e.split(",")[0]), (s = s.split(",")[0]), 1e3 * (Number.parseFloat(e) + Number.parseFloat(s))) : 0; })(e) + 5; let n = !1; const o = ({ target: s }) => { s === e && ((n = !0), e.removeEventListener("transitionend", o), w(t)); }; e.addEventListener("transitionend", o), setTimeout(() => { n || l(e); }, i); }, A = (t, e, s, i) => { let n = t.indexOf(e); if (-1 === n) return t[!s && i ? t.length - 1 : 0]; const o = t.length; return ( (n += s ? 1 : -1), i && (n = (n + o) % o), t[Math.max(0, Math.min(n, o - 1))] ); }, T = /[^.]*(?=\..*)\.|.*/, C = /\..*/, k = /::\d+$/, L = {}; let O = 1; const D = { mouseenter: "mouseover", mouseleave: "mouseout" }, I = /^(mouseenter|mouseleave)/i, N = new Set([ "click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll", ]); function S(t, e) { return (e && `${e}::${O++}`) || t.uidEvent || O++; } function x(t) { const e = S(t); return (t.uidEvent = e), (L[e] = L[e] || {}), L[e]; } function M(t, e, s = null) { const i = Object.keys(t); for (let n = 0, o = i.length; n < o; n++) { const o = t[i[n]]; if (o.originalHandler === e && o.delegationSelector === s) return o; } return null; } function P(t, e, s) { const i = "string" == typeof e, n = i ? s : e; let o = R(t); return N.has(o) || (o = t), [i, n, o]; } function j(t, e, s, i, n) { if ("string" != typeof e || !t) return; if ((s || ((s = i), (i = null)), I.test(e))) { const t = (t) => function (e) { if ( !e.relatedTarget || (e.relatedTarget !== e.delegateTarget && !e.delegateTarget.contains(e.relatedTarget)) ) return t.call(this, e); }; i ? (i = t(i)) : (s = t(s)); } const [o, r, a] = P(e, s, i), l = x(t), c = l[a] || (l[a] = {}), h = M(c, r, o ? s : null); if (h) return void (h.oneOff = h.oneOff && n); const d = S(r, e.replace(T, "")), u = o ? (function (t, e, s) { return function i(n) { const o = t.querySelectorAll(e); for (let { target: r } = n; r && r !== this; r = r.parentNode) for (let a = o.length; a--; ) if (o[a] === r) return ( (n.delegateTarget = r), i.oneOff && B.off(t, n.type, e, s), s.apply(r, [n]) ); return null; }; })(t, s, i) : (function (t, e) { return function s(i) { return ( (i.delegateTarget = t), s.oneOff && B.off(t, i.type, e), e.apply(t, [i]) ); }; })(t, s); (u.delegationSelector = o ? s : null), (u.originalHandler = r), (u.oneOff = n), (u.uidEvent = d), (c[d] = u), t.addEventListener(a, u, o); } function H(t, e, s, i, n) { const o = M(e[s], i, n); o && (t.removeEventListener(s, o, Boolean(n)), delete e[s][o.uidEvent]); } function R(t) { return (t = t.replace(C, "")), D[t] || t; } const B = { on(t, e, s, i) { j(t, e, s, i, !1); }, one(t, e, s, i) { j(t, e, s, i, !0); }, off(t, e, s, i) { if ("string" != typeof e || !t) return; const [n, o, r] = P(e, s, i), a = r !== e, l = x(t), c = e.startsWith("."); if (void 0 !== o) { if (!l || !l[r]) return; return void H(t, l, r, o, n ? s : null); } c && Object.keys(l).forEach((s) => { !(function (t, e, s, i) { const n = e[s] || {}; Object.keys(n).forEach((o) => { if (o.includes(i)) { const i = n[o]; H(t, e, s, i.originalHandler, i.delegationSelector); } }); })(t, l, s, e.slice(1)); }); const h = l[r] || {}; Object.keys(h).forEach((s) => { const i = s.replace(k, ""); if (!a || e.includes(i)) { const e = h[s]; H(t, l, r, e.originalHandler, e.delegationSelector); } }); }, trigger(t, e, s) { if ("string" != typeof e || !t) return null; const i = _(), n = R(e), o = e !== n, r = N.has(n); let a, l = !0, c = !0, h = !1, d = null; return ( o && i && ((a = i.Event(e, s)), i(t).trigger(a), (l = !a.isPropagationStopped()), (c = !a.isImmediatePropagationStopped()), (h = a.isDefaultPrevented())), r ? ((d = document.createEvent("HTMLEvents")), d.initEvent(n, l, !0)) : (d = new CustomEvent(e, { bubbles: l, cancelable: !0 })), void 0 !== s && Object.keys(s).forEach((t) => { Object.defineProperty(d, t, { get: () => s[t] }); }), h && d.preventDefault(), c && t.dispatchEvent(d), d.defaultPrevented && void 0 !== a && a.preventDefault(), d ); }, }, $ = new Map(); var W = { set(t, e, s) { $.has(t) || $.set(t, new Map()); const i = $.get(t); i.has(e) || 0 === i.size ? i.set(e, s) : console.error( `Bootstrap doesn't allow more than one instance per element. Bound instance: ${ Array.from(i.keys())[0] }.` ); }, get: (t, e) => ($.has(t) && $.get(t).get(e)) || null, remove(t, e) { if (!$.has(t)) return; const s = $.get(t); s.delete(e), 0 === s.size && $.delete(t); }, }; class q { constructor(t) { (t = h(t)) && ((this._element = t), W.set(this._element, this.constructor.DATA_KEY, this)); } dispose() { W.remove(this._element, this.constructor.DATA_KEY), B.off(this._element, this.constructor.EVENT_KEY), Object.getOwnPropertyNames(this).forEach((t) => { this[t] = null; }); } _queueCallback(t, e, s = !0) { E(t, e, s); } static getInstance(t) { return W.get(t, this.DATA_KEY); } static getOrCreateInstance(t, e = {}) { return ( this.getInstance(t) || new this(t, "object" == typeof e ? e : null) ); } static get VERSION() { return "5.0.2"; } static get NAME() { throw new Error( 'You have to implement the static method "NAME", for each component!' ); } static get DATA_KEY() { return "bs." + this.NAME; } static get EVENT_KEY() { return "." + this.DATA_KEY; } } class z extends q { static get NAME() { return "alert"; } close(t) { const e = t ? this._getRootElement(t) : this._element, s = this._triggerCloseEvent(e); null === s || s.defaultPrevented || this._removeElement(e); } _getRootElement(t) { return a(t) || t.closest(".alert"); } _triggerCloseEvent(t) { return B.trigger(t, "close.bs.alert"); } _removeElement(t) { t.classList.remove("show"); const e = t.classList.contains("fade"); this._queueCallback(() => this._destroyElement(t), t, e); } _destroyElement(t) { t.remove(), B.trigger(t, "closed.bs.alert"); } static jQueryInterface(t) { return this.each(function () { const e = z.getOrCreateInstance(this); "close" === t && e[t](this); }); } static handleDismiss(t) { return function (e) { e && e.preventDefault(), t.close(this); }; } } B.on( document, "click.bs.alert.data-api", '[data-bs-dismiss="alert"]', z.handleDismiss(new z()) ), y(z); class F extends q { static get NAME() { return "button"; } toggle() { this._element.setAttribute( "aria-pressed", this._element.classList.toggle("active") ); } static jQueryInterface(t) { return this.each(function () { const e = F.getOrCreateInstance(this); "toggle" === t && e[t](); }); } } function U(t) { return ( "true" === t || ("false" !== t && (t === Number(t).toString() ? Number(t) : "" === t || "null" === t ? null : t)) ); } function K(t) { return t.replace(/[A-Z]/g, (t) => "-" + t.toLowerCase()); } B.on( document, "click.bs.button.data-api", '[data-bs-toggle="button"]', (t) => { t.preventDefault(); const e = t.target.closest('[data-bs-toggle="button"]'); F.getOrCreateInstance(e).toggle(); } ), y(F); const V = { setDataAttribute(t, e, s) { t.setAttribute("data-bs-" + K(e), s); }, removeDataAttribute(t, e) { t.removeAttribute("data-bs-" + K(e)); }, getDataAttributes(t) { if (!t) return {}; const e = {}; return ( Object.keys(t.dataset) .filter((t) => t.startsWith("bs")) .forEach((s) => { let i = s.replace(/^bs/, ""); (i = i.charAt(0).toLowerCase() + i.slice(1, i.length)), (e[i] = U(t.dataset[s])); }), e ); }, getDataAttribute: (t, e) => U(t.getAttribute("data-bs-" + K(e))), offset(t) { const e = t.getBoundingClientRect(); return { top: e.top + document.body.scrollTop, left: e.left + document.body.scrollLeft, }; }, position: (t) => ({ top: t.offsetTop, left: t.offsetLeft }), }, Q = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0, touch: !0, }, X = { interval: "(number|boolean)", keyboard: "boolean", slide: "(boolean|string)", pause: "(string|boolean)", wrap: "boolean", touch: "boolean", }, Y = "next", G = "prev", Z = "left", J = "right", tt = { ArrowLeft: J, ArrowRight: Z }; class et extends q { constructor(t, e) { super(t), (this._items = null), (this._interval = null), (this._activeElement = null), (this._isPaused = !1), (this._isSliding = !1), (this.touchTimeout = null), (this.touchStartX = 0), (this.touchDeltaX = 0), (this._config = this._getConfig(e)), (this._indicatorsElement = i.findOne( ".carousel-indicators", this._element )), (this._touchSupported = "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0), (this._pointerEvent = Boolean(window.PointerEvent)), this._addEventListeners(); } static get Default() { return Q; } static get NAME() { return "carousel"; } next() { this._slide(Y); } nextWhenVisible() { !document.hidden && u(this._element) && this.next(); } prev() { this._slide(G); } pause(t) { t || (this._isPaused = !0), i.findOne(".carousel-item-next, .carousel-item-prev", this._element) && (l(this._element), this.cycle(!0)), clearInterval(this._interval), (this._interval = null); } cycle(t) { t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), (this._interval = null)), this._config && this._config.interval && !this._isPaused && (this._updateInterval(), (this._interval = setInterval( (document.visibilityState ? this.nextWhenVisible : this.next).bind( this ), this._config.interval ))); } to(t) { this._activeElement = i.findOne(".active.carousel-item", this._element); const e = this._getItemIndex(this._activeElement); if (t > this._items.length - 1 || t < 0) return; if (this._isSliding) return void B.one(this._element, "slid.bs.carousel", () => this.to(t)); if (e === t) return this.pause(), void this.cycle(); const s = t > e ? Y : G; this._slide(s, this._items[t]); } _getConfig(t) { return ( (t = { ...Q, ...V.getDataAttributes(this._element), ...("object" == typeof t ? t : {}), }), d("carousel", t, X), t ); } _handleSwipe() { const t = Math.abs(this.touchDeltaX); if (t <= 40) return; const e = t / this.touchDeltaX; (this.touchDeltaX = 0), e && this._slide(e > 0 ? J : Z); } _addEventListeners() { this._config.keyboard && B.on(this._element, "keydown.bs.carousel", (t) => this._keydown(t)), "hover" === this._config.pause && (B.on(this._element, "mouseenter.bs.carousel", (t) => this.pause(t)), B.on(this._element, "mouseleave.bs.carousel", (t) => this.cycle(t))), this._config.touch && this._touchSupported && this._addTouchEventListeners(); } _addTouchEventListeners() { const t = (t) => { !this._pointerEvent || ("pen" !== t.pointerType && "touch" !== t.pointerType) ? this._pointerEvent || (this.touchStartX = t.touches[0].clientX) : (this.touchStartX = t.clientX); }, e = (t) => { this.touchDeltaX = t.touches && t.touches.length > 1 ? 0 : t.touches[0].clientX - this.touchStartX; }, s = (t) => { !this._pointerEvent || ("pen" !== t.pointerType && "touch" !== t.pointerType) || (this.touchDeltaX = t.clientX - this.touchStartX), this._handleSwipe(), "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), (this.touchTimeout = setTimeout( (t) => this.cycle(t), 500 + this._config.interval ))); }; i.find(".carousel-item img", this._element).forEach((t) => { B.on(t, "dragstart.bs.carousel", (t) => t.preventDefault()); }), this._pointerEvent ? (B.on(this._element, "pointerdown.bs.carousel", (e) => t(e)), B.on(this._element, "pointerup.bs.carousel", (t) => s(t)), this._element.classList.add("pointer-event")) : (B.on(this._element, "touchstart.bs.carousel", (e) => t(e)), B.on(this._element, "touchmove.bs.carousel", (t) => e(t)), B.on(this._element, "touchend.bs.carousel", (t) => s(t))); } _keydown(t) { if (/input|textarea/i.test(t.target.tagName)) return; const e = tt[t.key]; e && (t.preventDefault(), this._slide(e)); } _getItemIndex(t) { return ( (this._items = t && t.parentNode ? i.find(".carousel-item", t.parentNode) : []), this._items.indexOf(t) ); } _getItemByOrder(t, e) { const s = t === Y; return A(this._items, e, s, this._config.wrap); } _triggerSlideEvent(t, e) { const s = this._getItemIndex(t), n = this._getItemIndex( i.findOne(".active.carousel-item", this._element) ); return B.trigger(this._element, "slide.bs.carousel", { relatedTarget: t, direction: e, from: n, to: s, }); } _setActiveIndicatorElement(t) { if (this._indicatorsElement) { const e = i.findOne(".active", this._indicatorsElement); e.classList.remove("active"), e.removeAttribute("aria-current"); const s = i.find("[data-bs-target]", this._indicatorsElement); for (let e = 0; e < s.length; e++) if ( Number.parseInt(s[e].getAttribute("data-bs-slide-to"), 10) === this._getItemIndex(t) ) { s[e].classList.add("active"), s[e].setAttribute("aria-current", "true"); break; } } } _updateInterval() { const t = this._activeElement || i.findOne(".active.carousel-item", this._element); if (!t) return; const e = Number.parseInt(t.getAttribute("data-bs-interval"), 10); e ? ((this._config.defaultInterval = this._config.defaultInterval || this._config.interval), (this._config.interval = e)) : (this._config.interval = this._config.defaultInterval || this._config.interval); } _slide(t, e) { const s = this._directionToOrder(t), n = i.findOne(".active.carousel-item", this._element), o = this._getItemIndex(n), r = e || this._getItemByOrder(s, n), a = this._getItemIndex(r), l = Boolean(this._interval), c = s === Y, h = c ? "carousel-item-start" : "carousel-item-end", d = c ? "carousel-item-next" : "carousel-item-prev", u = this._orderToDirection(s); if (r && r.classList.contains("active")) return void (this._isSliding = !1); if (this._isSliding) return; if (this._triggerSlideEvent(r, u).defaultPrevented) return; if (!n || !r) return; (this._isSliding = !0), l && this.pause(), this._setActiveIndicatorElement(r), (this._activeElement = r); const g = () => { B.trigger(this._element, "slid.bs.carousel", { relatedTarget: r, direction: u, from: o, to: a, }); }; if (this._element.classList.contains("slide")) { r.classList.add(d), m(r), n.classList.add(h), r.classList.add(h); const t = () => { r.classList.remove(h, d), r.classList.add("active"), n.classList.remove("active", d, h), (this._isSliding = !1), setTimeout(g, 0); }; this._queueCallback(t, n, !0); } else n.classList.remove("active"), r.classList.add("active"), (this._isSliding = !1), g(); l && this.cycle(); } _directionToOrder(t) { return [J, Z].includes(t) ? v() ? t === Z ? G : Y : t === Z ? Y : G : t; } _orderToDirection(t) { return [Y, G].includes(t) ? v() ? t === G ? Z : J : t === G ? J : Z : t; } static carouselInterface(t, e) { const s = et.getOrCreateInstance(t, e); let { _config: i } = s; "object" == typeof e && (i = { ...i, ...e }); const n = "string" == typeof e ? e : i.slide; if ("number" == typeof e) s.to(e); else if ("string" == typeof n) { if (void 0 === s[n]) throw new TypeError(`No method named "${n}"`); s[n](); } else i.interval && i.ride && (s.pause(), s.cycle()); } static jQueryInterface(t) { return this.each(function () { et.carouselInterface(this, t); }); } static dataApiClickHandler(t) { const e = a(this); if (!e || !e.classList.contains("carousel")) return; const s = { ...V.getDataAttributes(e), ...V.getDataAttributes(this) }, i = this.getAttribute("data-bs-slide-to"); i && (s.interval = !1), et.carouselInterface(e, s), i && et.getInstance(e).to(i), t.preventDefault(); } } B.on( document, "click.bs.carousel.data-api", "[data-bs-slide], [data-bs-slide-to]", et.dataApiClickHandler ), B.on(window, "load.bs.carousel.data-api", () => { const t = i.find('[data-bs-ride="carousel"]'); for (let e = 0, s = t.length; e < s; e++) et.carouselInterface(t[e], et.getInstance(t[e])); }), y(et); return ( y(Qt), { Alert: z, Button: F, Carousel: et, Collapse: nt, Dropdown: pt, Modal: wt, Offcanvas: Tt, Popover: Wt, ScrollSpy: Ft, Tab: Ut, Toast: Qt, Tooltip: jt, } ); }); //# sourceMappingURL=bootstrap.min.js.map