Daniel Marques
feat: add llavm
22d91a3
raw
history blame
96.9 kB
/*!
* Bootstrap v5.1.3 (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)
*/
import * as Popper from "@popperjs/core";
const MAX_UID = 1e6,
MILLISECONDS_MULTIPLIER = 1e3,
TRANSITION_END = "transitionend",
toType = (e) =>
null == e
? `${e}`
: {}.toString
.call(e)
.match(/\s([a-z]+)/i)[1]
.toLowerCase(),
getUID = (e) => {
do {
e += Math.floor(1e6 * Math.random());
} while (document.getElementById(e));
return e;
},
getSelector = (e) => {
let t = e.getAttribute("data-bs-target");
if (!t || "#" === t) {
let i = e.getAttribute("href");
if (!i || (!i.includes("#") && !i.startsWith("."))) return null;
i.includes("#") && !i.startsWith("#") && (i = `#${i.split("#")[1]}`),
(t = i && "#" !== i ? i.trim() : null);
}
return t;
},
getSelectorFromElement = (e) => {
const t = getSelector(e);
return t && document.querySelector(t) ? t : null;
},
getElementFromSelector = (e) => {
const t = getSelector(e);
return t ? document.querySelector(t) : null;
},
getTransitionDurationFromElement = (e) => {
if (!e) return 0;
let { transitionDuration: t, transitionDelay: i } =
window.getComputedStyle(e);
const n = Number.parseFloat(t),
s = Number.parseFloat(i);
return n || s
? ((t = t.split(",")[0]),
(i = i.split(",")[0]),
1e3 * (Number.parseFloat(t) + Number.parseFloat(i)))
: 0;
},
triggerTransitionEnd = (e) => {
e.dispatchEvent(new Event(TRANSITION_END));
},
isElement = (e) =>
!(!e || "object" != typeof e) &&
(void 0 !== e.jquery && (e = e[0]), void 0 !== e.nodeType),
getElement = (e) =>
isElement(e)
? e.jquery
? e[0]
: e
: "string" == typeof e && e.length > 0
? document.querySelector(e)
: null,
typeCheckConfig = (e, t, i) => {
Object.keys(i).forEach((n) => {
const s = i[n],
o = t[n],
r =
o && isElement(o)
? "element"
: null == (a = o)
? `${a}`
: {}.toString
.call(a)
.match(/\s([a-z]+)/i)[1]
.toLowerCase();
var a;
if (!new RegExp(s).test(r))
throw new TypeError(
`${e.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`,
);
});
},
isVisible = (e) =>
!(!isElement(e) || 0 === e.getClientRects().length) &&
"visible" === getComputedStyle(e).getPropertyValue("visibility"),
isDisabled = (e) =>
!e ||
e.nodeType !== Node.ELEMENT_NODE ||
!!e.classList.contains("disabled") ||
(void 0 !== e.disabled
? e.disabled
: e.hasAttribute("disabled") && "false" !== e.getAttribute("disabled")),
findShadowRoot = (e) => {
if (!document.documentElement.attachShadow) return null;
if ("function" == typeof e.getRootNode) {
const t = e.getRootNode();
return t instanceof ShadowRoot ? t : null;
}
return e instanceof ShadowRoot
? e
: e.parentNode
? findShadowRoot(e.parentNode)
: null;
},
noop = () => {},
reflow = (e) => {
e.offsetHeight;
},
getjQuery = () => {
const { jQuery: e } = window;
return e && !document.body.hasAttribute("data-bs-no-jquery") ? e : null;
},
DOMContentLoadedCallbacks = [],
onDOMContentLoaded = (e) => {
"loading" === document.readyState
? (DOMContentLoadedCallbacks.length ||
document.addEventListener("DOMContentLoaded", () => {
DOMContentLoadedCallbacks.forEach((e) => e());
}),
DOMContentLoadedCallbacks.push(e))
: e();
},
isRTL = () => "rtl" === document.documentElement.dir,
defineJQueryPlugin = (e) => {
var t;
(t = () => {
const t = getjQuery();
if (t) {
const i = e.NAME,
n = t.fn[i];
(t.fn[i] = e.jQueryInterface),
(t.fn[i].Constructor = e),
(t.fn[i].noConflict = () => ((t.fn[i] = n), e.jQueryInterface));
}
}),
"loading" === document.readyState
? (DOMContentLoadedCallbacks.length ||
document.addEventListener("DOMContentLoaded", () => {
DOMContentLoadedCallbacks.forEach((e) => e());
}),
DOMContentLoadedCallbacks.push(t))
: t();
},
execute = (e) => {
"function" == typeof e && e();
},
executeAfterTransition = (e, t, i = !0) => {
if (!i) return void execute(e);
const n = getTransitionDurationFromElement(t) + 5;
let s = !1;
const o = ({ target: i }) => {
i === t &&
((s = !0), t.removeEventListener(TRANSITION_END, o), execute(e));
};
t.addEventListener(TRANSITION_END, o),
setTimeout(() => {
s || triggerTransitionEnd(t);
}, n);
},
getNextActiveElement = (e, t, i, n) => {
let s = e.indexOf(t);
if (-1 === s) return e[!i && n ? e.length - 1 : 0];
const o = e.length;
return (
(s += i ? 1 : -1),
n && (s = (s + o) % o),
e[Math.max(0, Math.min(s, o - 1))]
);
},
namespaceRegex = /[^.]*(?=\..*)\.|.*/,
stripNameRegex = /\..*/,
stripUidRegex = /::\d+$/,
eventRegistry = {};
let uidEvent = 1;
const customEvents = { mouseenter: "mouseover", mouseleave: "mouseout" },
customEventsRegex = /^(mouseenter|mouseleave)/i,
nativeEvents = 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 getUidEvent(e, t) {
return (t && `${t}::${uidEvent++}`) || e.uidEvent || uidEvent++;
}
function getEvent(e) {
const t = getUidEvent(e);
return (
(e.uidEvent = t),
(eventRegistry[t] = eventRegistry[t] || {}),
eventRegistry[t]
);
}
function bootstrapHandler(e, t) {
return function i(n) {
return (
(n.delegateTarget = e),
i.oneOff && EventHandler.off(e, n.type, t),
t.apply(e, [n])
);
};
}
function bootstrapDelegationHandler(e, t, i) {
return function n(s) {
const o = e.querySelectorAll(t);
for (let { target: r } = s; r && r !== this; r = r.parentNode)
for (let a = o.length; a--; )
if (o[a] === r)
return (
(s.delegateTarget = r),
n.oneOff && EventHandler.off(e, s.type, t, i),
i.apply(r, [s])
);
return null;
};
}
function findHandler(e, t, i = null) {
const n = Object.keys(e);
for (let s = 0, o = n.length; s < o; s++) {
const o = e[n[s]];
if (o.originalHandler === t && o.delegationSelector === i) return o;
}
return null;
}
function normalizeParams(e, t, i) {
const n = "string" == typeof t,
s = n ? i : t;
let o = getTypeEvent(e);
return nativeEvents.has(o) || (o = e), [n, s, o];
}
function addHandler(e, t, i, n, s) {
if ("string" != typeof t || !e) return;
if ((i || ((i = n), (n = null)), customEventsRegex.test(t))) {
const e = (e) =>
function (t) {
if (
!t.relatedTarget ||
(t.relatedTarget !== t.delegateTarget &&
!t.delegateTarget.contains(t.relatedTarget))
)
return e.call(this, t);
};
n ? (n = e(n)) : (i = e(i));
}
const [o, r, a] = normalizeParams(t, i, n),
l = getEvent(e),
c = l[a] || (l[a] = {}),
E = findHandler(c, r, o ? i : null);
if (E) return void (E.oneOff = E.oneOff && s);
const _ = getUidEvent(r, t.replace(namespaceRegex, "")),
h = o ? bootstrapDelegationHandler(e, i, n) : bootstrapHandler(e, i);
(h.delegationSelector = o ? i : null),
(h.originalHandler = r),
(h.oneOff = s),
(h.uidEvent = _),
(c[_] = h),
e.addEventListener(a, h, o);
}
function removeHandler(e, t, i, n, s) {
const o = findHandler(t[i], n, s);
o && (e.removeEventListener(i, o, Boolean(s)), delete t[i][o.uidEvent]);
}
function removeNamespacedHandlers(e, t, i, n) {
const s = t[i] || {};
Object.keys(s).forEach((o) => {
if (o.includes(n)) {
const n = s[o];
removeHandler(e, t, i, n.originalHandler, n.delegationSelector);
}
});
}
function getTypeEvent(e) {
return (e = e.replace(stripNameRegex, "")), customEvents[e] || e;
}
const EventHandler = {
on(e, t, i, n) {
addHandler(e, t, i, n, !1);
},
one(e, t, i, n) {
addHandler(e, t, i, n, !0);
},
off(e, t, i, n) {
if ("string" != typeof t || !e) return;
const [s, o, r] = normalizeParams(t, i, n),
a = r !== t,
l = getEvent(e),
c = t.startsWith(".");
if (void 0 !== o) {
if (!l || !l[r]) return;
return void removeHandler(e, l, r, o, s ? i : null);
}
c &&
Object.keys(l).forEach((i) => {
removeNamespacedHandlers(e, l, i, t.slice(1));
});
const E = l[r] || {};
Object.keys(E).forEach((i) => {
const n = i.replace(stripUidRegex, "");
if (!a || t.includes(n)) {
const t = E[i];
removeHandler(e, l, r, t.originalHandler, t.delegationSelector);
}
});
},
trigger(e, t, i) {
if ("string" != typeof t || !e) return null;
const n = getjQuery(),
s = getTypeEvent(t),
o = t !== s,
r = nativeEvents.has(s);
let a,
l = !0,
c = !0,
E = !1,
_ = null;
return (
o &&
n &&
((a = n.Event(t, i)),
n(e).trigger(a),
(l = !a.isPropagationStopped()),
(c = !a.isImmediatePropagationStopped()),
(E = a.isDefaultPrevented())),
r
? ((_ = document.createEvent("HTMLEvents")), _.initEvent(s, l, !0))
: (_ = new CustomEvent(t, { bubbles: l, cancelable: !0 })),
void 0 !== i &&
Object.keys(i).forEach((e) => {
Object.defineProperty(_, e, { get: () => i[e] });
}),
E && _.preventDefault(),
c && e.dispatchEvent(_),
_.defaultPrevented && void 0 !== a && a.preventDefault(),
_
);
},
},
elementMap = new Map(),
Data = {
set(e, t, i) {
elementMap.has(e) || elementMap.set(e, new Map());
const n = elementMap.get(e);
n.has(t) || 0 === n.size
? n.set(t, i)
: console.error(
`Bootstrap doesn't allow more than one instance per element. Bound instance: ${
Array.from(n.keys())[0]
}.`,
);
},
get: (e, t) => (elementMap.has(e) && elementMap.get(e).get(t)) || null,
remove(e, t) {
if (!elementMap.has(e)) return;
const i = elementMap.get(e);
i.delete(t), 0 === i.size && elementMap.delete(e);
},
},
VERSION = "5.1.3";
class BaseComponent {
constructor(e) {
(e = getElement(e)) &&
((this._element = e),
Data.set(this._element, this.constructor.DATA_KEY, this));
}
dispose() {
Data.remove(this._element, this.constructor.DATA_KEY),
EventHandler.off(this._element, this.constructor.EVENT_KEY),
Object.getOwnPropertyNames(this).forEach((e) => {
this[e] = null;
});
}
_queueCallback(e, t, i = !0) {
executeAfterTransition(e, t, i);
}
static getInstance(e) {
return Data.get(getElement(e), this.DATA_KEY);
}
static getOrCreateInstance(e, t = {}) {
return this.getInstance(e) || new this(e, "object" == typeof t ? t : null);
}
static get VERSION() {
return "5.1.3";
}
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}`;
}
}
const enableDismissTrigger = (e, t = "hide") => {
const i = `click.dismiss${e.EVENT_KEY}`,
n = e.NAME;
EventHandler.on(document, i, `[data-bs-dismiss="${n}"]`, function (i) {
if (
(["A", "AREA"].includes(this.tagName) && i.preventDefault(),
isDisabled(this))
)
return;
const s = getElementFromSelector(this) || this.closest(`.${n}`);
e.getOrCreateInstance(s)[t]();
});
},
NAME$d = "alert",
DATA_KEY$c = "bs.alert",
EVENT_KEY$c = ".bs.alert",
EVENT_CLOSE = "close.bs.alert",
EVENT_CLOSED = "closed.bs.alert",
CLASS_NAME_FADE$5 = "fade",
CLASS_NAME_SHOW$8 = "show";
class Alert extends BaseComponent {
static get NAME() {
return NAME$d;
}
close() {
if (EventHandler.trigger(this._element, EVENT_CLOSE).defaultPrevented)
return;
this._element.classList.remove("show");
const e = this._element.classList.contains("fade");
this._queueCallback(() => this._destroyElement(), this._element, e);
}
_destroyElement() {
this._element.remove(),
EventHandler.trigger(this._element, EVENT_CLOSED),
this.dispose();
}
static jQueryInterface(e) {
return this.each(function () {
const t = Alert.getOrCreateInstance(this);
if ("string" == typeof e) {
if (void 0 === t[e] || e.startsWith("_") || "constructor" === e)
throw new TypeError(`No method named "${e}"`);
t[e](this);
}
});
}
}
enableDismissTrigger(Alert, "close"), defineJQueryPlugin(Alert);
const NAME$c = "button",
DATA_KEY$b = "bs.button",
EVENT_KEY$b = ".bs.button",
DATA_API_KEY$7 = ".data-api",
CLASS_NAME_ACTIVE$3 = "active",
SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]',
EVENT_CLICK_DATA_API$6 = "click.bs.button.data-api";
class Button extends BaseComponent {
static get NAME() {
return NAME$c;
}
toggle() {
this._element.setAttribute(
"aria-pressed",
this._element.classList.toggle("active"),
);
}
static jQueryInterface(e) {
return this.each(function () {
const t = Button.getOrCreateInstance(this);
"toggle" === e && t[e]();
});
}
}
function normalizeData(e) {
return (
"true" === e ||
("false" !== e &&
(e === Number(e).toString()
? Number(e)
: "" === e || "null" === e
? null
: e))
);
}
function normalizeDataKey(e) {
return e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`);
}
EventHandler.on(
document,
EVENT_CLICK_DATA_API$6,
SELECTOR_DATA_TOGGLE$5,
(e) => {
e.preventDefault();
const t = e.target.closest(SELECTOR_DATA_TOGGLE$5);
Button.getOrCreateInstance(t).toggle();
},
),
defineJQueryPlugin(Button);
const Manipulator = {
setDataAttribute(e, t, i) {
e.setAttribute(`data-bs-${normalizeDataKey(t)}`, i);
},
removeDataAttribute(e, t) {
e.removeAttribute(`data-bs-${normalizeDataKey(t)}`);
},
getDataAttributes(e) {
if (!e) return {};
const t = {};
return (
Object.keys(e.dataset)
.filter((e) => e.startsWith("bs"))
.forEach((i) => {
let n = i.replace(/^bs/, "");
(n = n.charAt(0).toLowerCase() + n.slice(1, n.length)),
(t[n] = normalizeData(e.dataset[i]));
}),
t
);
},
getDataAttribute: (e, t) =>
normalizeData(e.getAttribute(`data-bs-${normalizeDataKey(t)}`)),
offset(e) {
const t = e.getBoundingClientRect();
return {
top: t.top + window.pageYOffset,
left: t.left + window.pageXOffset,
};
},
position: (e) => ({ top: e.offsetTop, left: e.offsetLeft }),
},
NODE_TEXT = 3,
SelectorEngine = {
find: (e, t = document.documentElement) =>
[].concat(...Element.prototype.querySelectorAll.call(t, e)),
findOne: (e, t = document.documentElement) =>
Element.prototype.querySelector.call(t, e),
children: (e, t) => [].concat(...e.children).filter((e) => e.matches(t)),
parents(e, t) {
const i = [];
let n = e.parentNode;
for (; n && n.nodeType === Node.ELEMENT_NODE && 3 !== n.nodeType; )
n.matches(t) && i.push(n), (n = n.parentNode);
return i;
},
prev(e, t) {
let i = e.previousElementSibling;
for (; i; ) {
if (i.matches(t)) return [i];
i = i.previousElementSibling;
}
return [];
},
next(e, t) {
let i = e.nextElementSibling;
for (; i; ) {
if (i.matches(t)) return [i];
i = i.nextElementSibling;
}
return [];
},
focusableChildren(e) {
const t = [
"a",
"button",
"input",
"textarea",
"select",
"details",
"[tabindex]",
'[contenteditable="true"]',
]
.map((e) => `${e}:not([tabindex^="-"])`)
.join(", ");
return this.find(t, e).filter((e) => !isDisabled(e) && isVisible(e));
},
},
NAME$b = "carousel",
DATA_KEY$a = "bs.carousel",
EVENT_KEY$a = ".bs.carousel",
DATA_API_KEY$6 = ".data-api",
ARROW_LEFT_KEY = "ArrowLeft",
ARROW_RIGHT_KEY = "ArrowRight",
TOUCHEVENT_COMPAT_WAIT = 500,
SWIPE_THRESHOLD = 40,
Default$a = {
interval: 5e3,
keyboard: !0,
slide: !1,
pause: "hover",
wrap: !0,
touch: !0,
},
DefaultType$a = {
interval: "(number|boolean)",
keyboard: "boolean",
slide: "(boolean|string)",
pause: "(string|boolean)",
wrap: "boolean",
touch: "boolean",
},
ORDER_NEXT = "next",
ORDER_PREV = "prev",
DIRECTION_LEFT = "left",
DIRECTION_RIGHT = "right",
KEY_TO_DIRECTION = { ArrowLeft: DIRECTION_RIGHT, ArrowRight: DIRECTION_LEFT },
EVENT_SLIDE = "slide.bs.carousel",
EVENT_SLID = "slid.bs.carousel",
EVENT_KEYDOWN = "keydown.bs.carousel",
EVENT_MOUSEENTER = "mouseenter.bs.carousel",
EVENT_MOUSELEAVE = "mouseleave.bs.carousel",
EVENT_TOUCHSTART = "touchstart.bs.carousel",
EVENT_TOUCHMOVE = "touchmove.bs.carousel",
EVENT_TOUCHEND = "touchend.bs.carousel",
EVENT_POINTERDOWN = "pointerdown.bs.carousel",
EVENT_POINTERUP = "pointerup.bs.carousel",
EVENT_DRAG_START = "dragstart.bs.carousel",
EVENT_LOAD_DATA_API$2 = "load.bs.carousel.data-api",
EVENT_CLICK_DATA_API$5 = "click.bs.carousel.data-api",
CLASS_NAME_CAROUSEL = "carousel",
CLASS_NAME_ACTIVE$2 = "active",
CLASS_NAME_SLIDE = "slide",
CLASS_NAME_END = "carousel-item-end",
CLASS_NAME_START = "carousel-item-start",
CLASS_NAME_NEXT = "carousel-item-next",
CLASS_NAME_PREV = "carousel-item-prev",
CLASS_NAME_POINTER_EVENT = "pointer-event",
SELECTOR_ACTIVE$1 = ".active",
SELECTOR_ACTIVE_ITEM = ".active.carousel-item",
SELECTOR_ITEM = ".carousel-item",
SELECTOR_ITEM_IMG = ".carousel-item img",
SELECTOR_NEXT_PREV = ".carousel-item-next, .carousel-item-prev",
SELECTOR_INDICATORS = ".carousel-indicators",
SELECTOR_INDICATOR = "[data-bs-target]",
SELECTOR_DATA_SLIDE = "[data-bs-slide], [data-bs-slide-to]",
SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]',
POINTER_TYPE_TOUCH = "touch",
POINTER_TYPE_PEN = "pen";
class Carousel extends BaseComponent {
constructor(e, t) {
super(e),
(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(t)),
(this._indicatorsElement = SelectorEngine.findOne(
SELECTOR_INDICATORS,
this._element,
)),
(this._touchSupported =
"ontouchstart" in document.documentElement ||
navigator.maxTouchPoints > 0),
(this._pointerEvent = Boolean(window.PointerEvent)),
this._addEventListeners();
}
static get Default() {
return Default$a;
}
static get NAME() {
return NAME$b;
}
next() {
this._slide(ORDER_NEXT);
}
nextWhenVisible() {
!document.hidden && isVisible(this._element) && this.next();
}
prev() {
this._slide(ORDER_PREV);
}
pause(e) {
e || (this._isPaused = !0),
SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element) &&
(triggerTransitionEnd(this._element), this.cycle(!0)),
clearInterval(this._interval),
(this._interval = null);
}
cycle(e) {
e || (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(e) {
this._activeElement = SelectorEngine.findOne(
SELECTOR_ACTIVE_ITEM,
this._element,
);
const t = this._getItemIndex(this._activeElement);
if (e > this._items.length - 1 || e < 0) return;
if (this._isSliding)
return void EventHandler.one(this._element, EVENT_SLID, () => this.to(e));
if (t === e) return this.pause(), void this.cycle();
const i = e > t ? ORDER_NEXT : ORDER_PREV;
this._slide(i, this._items[e]);
}
_getConfig(e) {
return (
(e = {
...Default$a,
...Manipulator.getDataAttributes(this._element),
...("object" == typeof e ? e : {}),
}),
typeCheckConfig(NAME$b, e, DefaultType$a),
e
);
}
_handleSwipe() {
const e = Math.abs(this.touchDeltaX);
if (e <= 40) return;
const t = e / this.touchDeltaX;
(this.touchDeltaX = 0),
t && this._slide(t > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT);
}
_addEventListeners() {
this._config.keyboard &&
EventHandler.on(this._element, EVENT_KEYDOWN, (e) => this._keydown(e)),
"hover" === this._config.pause &&
(EventHandler.on(this._element, EVENT_MOUSEENTER, (e) => this.pause(e)),
EventHandler.on(this._element, EVENT_MOUSELEAVE, (e) => this.cycle(e))),
this._config.touch &&
this._touchSupported &&
this._addTouchEventListeners();
}
_addTouchEventListeners() {
const e = (e) =>
this._pointerEvent &&
("pen" === e.pointerType || "touch" === e.pointerType),
t = (t) => {
e(t)
? (this.touchStartX = t.clientX)
: this._pointerEvent || (this.touchStartX = t.touches[0].clientX);
},
i = (e) => {
this.touchDeltaX =
e.touches && e.touches.length > 1
? 0
: e.touches[0].clientX - this.touchStartX;
},
n = (t) => {
e(t) && (this.touchDeltaX = t.clientX - this.touchStartX),
this._handleSwipe(),
"hover" === this._config.pause &&
(this.pause(),
this.touchTimeout && clearTimeout(this.touchTimeout),
(this.touchTimeout = setTimeout(
(e) => this.cycle(e),
500 + this._config.interval,
)));
};
SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach((e) => {
EventHandler.on(e, EVENT_DRAG_START, (e) => e.preventDefault());
}),
this._pointerEvent
? (EventHandler.on(this._element, EVENT_POINTERDOWN, (e) => t(e)),
EventHandler.on(this._element, EVENT_POINTERUP, (e) => n(e)),
this._element.classList.add("pointer-event"))
: (EventHandler.on(this._element, EVENT_TOUCHSTART, (e) => t(e)),
EventHandler.on(this._element, EVENT_TOUCHMOVE, (e) => i(e)),
EventHandler.on(this._element, EVENT_TOUCHEND, (e) => n(e)));
}
_keydown(e) {
if (/input|textarea/i.test(e.target.tagName)) return;
const t = KEY_TO_DIRECTION[e.key];
t && (e.preventDefault(), this._slide(t));
}
_getItemIndex(e) {
return (
(this._items =
e && e.parentNode
? SelectorEngine.find(SELECTOR_ITEM, e.parentNode)
: []),
this._items.indexOf(e)
);
}
_getItemByOrder(e, t) {
const i = e === ORDER_NEXT;
return getNextActiveElement(this._items, t, i, this._config.wrap);
}
_triggerSlideEvent(e, t) {
const i = this._getItemIndex(e),
n = this._getItemIndex(
SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element),
);
return EventHandler.trigger(this._element, EVENT_SLIDE, {
relatedTarget: e,
direction: t,
from: n,
to: i,
});
}
_setActiveIndicatorElement(e) {
if (this._indicatorsElement) {
const t = SelectorEngine.findOne(".active", this._indicatorsElement);
t.classList.remove("active"), t.removeAttribute("aria-current");
const i = SelectorEngine.find(
"[data-bs-target]",
this._indicatorsElement,
);
for (let t = 0; t < i.length; t++)
if (
Number.parseInt(i[t].getAttribute("data-bs-slide-to"), 10) ===
this._getItemIndex(e)
) {
i[t].classList.add("active"),
i[t].setAttribute("aria-current", "true");
break;
}
}
}
_updateInterval() {
const e =
this._activeElement ||
SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
if (!e) return;
const t = Number.parseInt(e.getAttribute("data-bs-interval"), 10);
t
? ((this._config.defaultInterval =
this._config.defaultInterval || this._config.interval),
(this._config.interval = t))
: (this._config.interval =
this._config.defaultInterval || this._config.interval);
}
_slide(e, t) {
const i = this._directionToOrder(e),
n = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element),
s = this._getItemIndex(n),
o = t || this._getItemByOrder(i, n),
r = this._getItemIndex(o),
a = Boolean(this._interval),
l = i === ORDER_NEXT,
c = l ? CLASS_NAME_START : CLASS_NAME_END,
E = l ? CLASS_NAME_NEXT : CLASS_NAME_PREV,
_ = this._orderToDirection(i);
if (o && o.classList.contains("active")) return void (this._isSliding = !1);
if (this._isSliding) return;
if (this._triggerSlideEvent(o, _).defaultPrevented) return;
if (!n || !o) return;
(this._isSliding = !0),
a && this.pause(),
this._setActiveIndicatorElement(o),
(this._activeElement = o);
const h = () => {
EventHandler.trigger(this._element, EVENT_SLID, {
relatedTarget: o,
direction: _,
from: s,
to: r,
});
};
if (this._element.classList.contains("slide")) {
o.classList.add(E), reflow(o), n.classList.add(c), o.classList.add(c);
const e = () => {
o.classList.remove(c, E),
o.classList.add("active"),
n.classList.remove("active", E, c),
(this._isSliding = !1),
setTimeout(h, 0);
};
this._queueCallback(e, n, !0);
} else
n.classList.remove("active"),
o.classList.add("active"),
(this._isSliding = !1),
h();
a && this.cycle();
}
_directionToOrder(e) {
return [DIRECTION_RIGHT, DIRECTION_LEFT].includes(e)
? isRTL()
? e === DIRECTION_LEFT
? ORDER_PREV
: ORDER_NEXT
: e === DIRECTION_LEFT
? ORDER_NEXT
: ORDER_PREV
: e;
}
_orderToDirection(e) {
return [ORDER_NEXT, ORDER_PREV].includes(e)
? isRTL()
? e === ORDER_PREV
? DIRECTION_LEFT
: DIRECTION_RIGHT
: e === ORDER_PREV
? DIRECTION_RIGHT
: DIRECTION_LEFT
: e;
}
static carouselInterface(e, t) {
const i = Carousel.getOrCreateInstance(e, t);
let { _config: n } = i;
"object" == typeof t && (n = { ...n, ...t });
const s = "string" == typeof t ? t : n.slide;
if ("number" == typeof t) i.to(t);
else if ("string" == typeof s) {
if (void 0 === i[s]) throw new TypeError(`No method named "${s}"`);
i[s]();
} else n.interval && n.ride && (i.pause(), i.cycle());
}
static jQueryInterface(e) {
return this.each(function () {
Carousel.carouselInterface(this, e);
});
}
static dataApiClickHandler(e) {
const t = getElementFromSelector(this);
if (!t || !t.classList.contains("carousel")) return;
const i = {
...Manipulator.getDataAttributes(t),
...Manipulator.getDataAttributes(this),
},
n = this.getAttribute("data-bs-slide-to");
n && (i.interval = !1),
Carousel.carouselInterface(t, i),
n && Carousel.getInstance(t).to(n),
e.preventDefault();
}
}
EventHandler.on(
document,
EVENT_CLICK_DATA_API$5,
SELECTOR_DATA_SLIDE,
Carousel.dataApiClickHandler,
),
EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
const e = SelectorEngine.find(SELECTOR_DATA_RIDE);
for (let t = 0, i = e.length; t < i; t++)
Carousel.carouselInterface(e[t], Carousel.getInstance(e[t]));
}),
defineJQueryPlugin(Carousel);
const NAME$a = "collapse",
DATA_KEY$9 = "bs.collapse",
EVENT_KEY$9 = ".bs.collapse",
DATA_API_KEY$5 = ".data-api",
Default$9 = { toggle: !0, parent: null },
DefaultType$9 = { toggle: "boolean", parent: "(null|element)" },
EVENT_SHOW$5 = "show.bs.collapse",
EVENT_SHOWN$5 = "shown.bs.collapse",
EVENT_HIDE$5 = "hide.bs.collapse",
EVENT_HIDDEN$5 = "hidden.bs.collapse",
EVENT_CLICK_DATA_API$4 = "click.bs.collapse.data-api",
CLASS_NAME_SHOW$7 = "show",
CLASS_NAME_COLLAPSE = "collapse",
CLASS_NAME_COLLAPSING = "collapsing",
CLASS_NAME_COLLAPSED = "collapsed",
CLASS_NAME_DEEPER_CHILDREN = ":scope .collapse .collapse",
CLASS_NAME_HORIZONTAL = "collapse-horizontal",
WIDTH = "width",
HEIGHT = "height",
SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing",
SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
class Collapse extends BaseComponent {
constructor(e, t) {
super(e),
(this._isTransitioning = !1),
(this._config = this._getConfig(t)),
(this._triggerArray = []);
const i = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
for (let e = 0, t = i.length; e < t; e++) {
const t = i[e],
n = getSelectorFromElement(t),
s = SelectorEngine.find(n).filter((e) => e === this._element);
null !== n &&
s.length &&
((this._selector = n), this._triggerArray.push(t));
}
this._initializeChildren(),
this._config.parent ||
this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()),
this._config.toggle && this.toggle();
}
static get Default() {
return Default$9;
}
static get NAME() {
return NAME$a;
}
toggle() {
this._isShown() ? this.hide() : this.show();
}
show() {
if (this._isTransitioning || this._isShown()) return;
let e,
t = [];
if (this._config.parent) {
const e = SelectorEngine.find(
CLASS_NAME_DEEPER_CHILDREN,
this._config.parent,
);
t = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(
(t) => !e.includes(t),
);
}
const i = SelectorEngine.findOne(this._selector);
if (t.length) {
const n = t.find((e) => i !== e);
if (((e = n ? Collapse.getInstance(n) : null), e && e._isTransitioning))
return;
}
if (EventHandler.trigger(this._element, EVENT_SHOW$5).defaultPrevented)
return;
t.forEach((t) => {
i !== t && Collapse.getOrCreateInstance(t, { toggle: !1 }).hide(),
e || Data.set(t, DATA_KEY$9, null);
});
const n = this._getDimension();
this._element.classList.remove("collapse"),
this._element.classList.add("collapsing"),
(this._element.style[n] = 0),
this._addAriaAndCollapsedClass(this._triggerArray, !0),
(this._isTransitioning = !0);
const s = `scroll${n[0].toUpperCase() + n.slice(1)}`;
this._queueCallback(
() => {
(this._isTransitioning = !1),
this._element.classList.remove("collapsing"),
this._element.classList.add("collapse", "show"),
(this._element.style[n] = ""),
EventHandler.trigger(this._element, EVENT_SHOWN$5);
},
this._element,
!0,
),
(this._element.style[n] = `${this._element[s]}px`);
}
hide() {
if (this._isTransitioning || !this._isShown()) return;
if (EventHandler.trigger(this._element, EVENT_HIDE$5).defaultPrevented)
return;
const e = this._getDimension();
(this._element.style[e] = `${this._element.getBoundingClientRect()[e]}px`),
reflow(this._element),
this._element.classList.add("collapsing"),
this._element.classList.remove("collapse", "show");
const t = this._triggerArray.length;
for (let e = 0; e < t; e++) {
const t = this._triggerArray[e],
i = getElementFromSelector(t);
i && !this._isShown(i) && this._addAriaAndCollapsedClass([t], !1);
}
(this._isTransitioning = !0),
(this._element.style[e] = ""),
this._queueCallback(
() => {
(this._isTransitioning = !1),
this._element.classList.remove("collapsing"),
this._element.classList.add("collapse"),
EventHandler.trigger(this._element, EVENT_HIDDEN$5);
},
this._element,
!0,
);
}
_isShown(e = this._element) {
return e.classList.contains("show");
}
_getConfig(e) {
return (
((e = {
...Default$9,
...Manipulator.getDataAttributes(this._element),
...e,
}).toggle = Boolean(e.toggle)),
(e.parent = getElement(e.parent)),
typeCheckConfig(NAME$a, e, DefaultType$9),
e
);
}
_getDimension() {
return this._element.classList.contains("collapse-horizontal")
? WIDTH
: HEIGHT;
}
_initializeChildren() {
if (!this._config.parent) return;
const e = SelectorEngine.find(
CLASS_NAME_DEEPER_CHILDREN,
this._config.parent,
);
SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent)
.filter((t) => !e.includes(t))
.forEach((e) => {
const t = getElementFromSelector(e);
t && this._addAriaAndCollapsedClass([e], this._isShown(t));
});
}
_addAriaAndCollapsedClass(e, t) {
e.length &&
e.forEach((e) => {
t ? e.classList.remove("collapsed") : e.classList.add("collapsed"),
e.setAttribute("aria-expanded", t);
});
}
static jQueryInterface(e) {
return this.each(function () {
const t = {};
"string" == typeof e && /show|hide/.test(e) && (t.toggle = !1);
const i = Collapse.getOrCreateInstance(this, t);
if ("string" == typeof e) {
if (void 0 === i[e]) throw new TypeError(`No method named "${e}"`);
i[e]();
}
});
}
}
EventHandler.on(
document,
EVENT_CLICK_DATA_API$4,
SELECTOR_DATA_TOGGLE$4,
function (e) {
("A" === e.target.tagName ||
(e.delegateTarget && "A" === e.delegateTarget.tagName)) &&
e.preventDefault();
const t = getSelectorFromElement(this);
SelectorEngine.find(t).forEach((e) => {
Collapse.getOrCreateInstance(e, { toggle: !1 }).toggle();
});
},
),
defineJQueryPlugin(Collapse);
const NAME$9 = "dropdown",
DATA_KEY$8 = "bs.dropdown",
EVENT_KEY$8 = ".bs.dropdown",
DATA_API_KEY$4 = ".data-api",
ESCAPE_KEY$2 = "Escape",
SPACE_KEY = "Space",
TAB_KEY$1 = "Tab",
ARROW_UP_KEY = "ArrowUp",
ARROW_DOWN_KEY = "ArrowDown",
RIGHT_MOUSE_BUTTON = 2,
REGEXP_KEYDOWN = new RegExp("ArrowUp|ArrowDown|Escape"),
EVENT_HIDE$4 = "hide.bs.dropdown",
EVENT_HIDDEN$4 = "hidden.bs.dropdown",
EVENT_SHOW$4 = "show.bs.dropdown",
EVENT_SHOWN$4 = "shown.bs.dropdown",
EVENT_CLICK_DATA_API$3 = "click.bs.dropdown.data-api",
EVENT_KEYDOWN_DATA_API = "keydown.bs.dropdown.data-api",
EVENT_KEYUP_DATA_API = "keyup.bs.dropdown.data-api",
CLASS_NAME_SHOW$6 = "show",
CLASS_NAME_DROPUP = "dropup",
CLASS_NAME_DROPEND = "dropend",
CLASS_NAME_DROPSTART = "dropstart",
CLASS_NAME_NAVBAR = "navbar",
SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]',
SELECTOR_MENU = ".dropdown-menu",
SELECTOR_NAVBAR_NAV = ".navbar-nav",
SELECTOR_VISIBLE_ITEMS =
".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",
PLACEMENT_TOP = isRTL() ? "top-end" : "top-start",
PLACEMENT_TOPEND = isRTL() ? "top-start" : "top-end",
PLACEMENT_BOTTOM = isRTL() ? "bottom-end" : "bottom-start",
PLACEMENT_BOTTOMEND = isRTL() ? "bottom-start" : "bottom-end",
PLACEMENT_RIGHT = isRTL() ? "left-start" : "right-start",
PLACEMENT_LEFT = isRTL() ? "right-start" : "left-start",
Default$8 = {
offset: [0, 2],
boundary: "clippingParents",
reference: "toggle",
display: "dynamic",
popperConfig: null,
autoClose: !0,
},
DefaultType$8 = {
offset: "(array|string|function)",
boundary: "(string|element)",
reference: "(string|element|object)",
display: "string",
popperConfig: "(null|object|function)",
autoClose: "(boolean|string)",
};
class Dropdown extends BaseComponent {
constructor(e, t) {
super(e),
(this._popper = null),
(this._config = this._getConfig(t)),
(this._menu = this._getMenuElement()),
(this._inNavbar = this._detectNavbar());
}
static get Default() {
return Default$8;
}
static get DefaultType() {
return DefaultType$8;
}
static get NAME() {
return NAME$9;
}
toggle() {
return this._isShown() ? this.hide() : this.show();
}
show() {
if (isDisabled(this._element) || this._isShown(this._menu)) return;
const e = { relatedTarget: this._element };
if (EventHandler.trigger(this._element, EVENT_SHOW$4, e).defaultPrevented)
return;
const t = Dropdown.getParentFromElement(this._element);
this._inNavbar
? Manipulator.setDataAttribute(this._menu, "popper", "none")
: this._createPopper(t),
"ontouchstart" in document.documentElement &&
!t.closest(".navbar-nav") &&
[]
.concat(...document.body.children)
.forEach((e) => EventHandler.on(e, "mouseover", noop)),
this._element.focus(),
this._element.setAttribute("aria-expanded", !0),
this._menu.classList.add("show"),
this._element.classList.add("show"),
EventHandler.trigger(this._element, EVENT_SHOWN$4, e);
}
hide() {
if (isDisabled(this._element) || !this._isShown(this._menu)) return;
const e = { relatedTarget: this._element };
this._completeHide(e);
}
dispose() {
this._popper && this._popper.destroy(), super.dispose();
}
update() {
(this._inNavbar = this._detectNavbar()),
this._popper && this._popper.update();
}
_completeHide(e) {
EventHandler.trigger(this._element, EVENT_HIDE$4, e).defaultPrevented ||
("ontouchstart" in document.documentElement &&
[]
.concat(...document.body.children)
.forEach((e) => EventHandler.off(e, "mouseover", noop)),
this._popper && this._popper.destroy(),
this._menu.classList.remove("show"),
this._element.classList.remove("show"),
this._element.setAttribute("aria-expanded", "false"),
Manipulator.removeDataAttribute(this._menu, "popper"),
EventHandler.trigger(this._element, EVENT_HIDDEN$4, e));
}
_getConfig(e) {
if (
((e = {
...this.constructor.Default,
...Manipulator.getDataAttributes(this._element),
...e,
}),
typeCheckConfig(NAME$9, e, this.constructor.DefaultType),
"object" == typeof e.reference &&
!isElement(e.reference) &&
"function" != typeof e.reference.getBoundingClientRect)
)
throw new TypeError(
`${NAME$9.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`,
);
return e;
}
_createPopper(e) {
if (void 0 === Popper)
throw new TypeError(
"Bootstrap's dropdowns require Popper (https://popper.js.org)",
);
let t = this._element;
"parent" === this._config.reference
? (t = e)
: isElement(this._config.reference)
? (t = getElement(this._config.reference))
: "object" == typeof this._config.reference &&
(t = this._config.reference);
const i = this._getPopperConfig(),
n = i.modifiers.find((e) => "applyStyles" === e.name && !1 === e.enabled);
(this._popper = Popper.createPopper(t, this._menu, i)),
n && Manipulator.setDataAttribute(this._menu, "popper", "static");
}
_isShown(e = this._element) {
return e.classList.contains("show");
}
_getMenuElement() {
return SelectorEngine.next(this._element, SELECTOR_MENU)[0];
}
_getPlacement() {
const e = this._element.parentNode;
if (e.classList.contains("dropend")) return PLACEMENT_RIGHT;
if (e.classList.contains("dropstart")) return PLACEMENT_LEFT;
const t =
"end" ===
getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
return e.classList.contains("dropup")
? t
? PLACEMENT_TOPEND
: PLACEMENT_TOP
: t
? PLACEMENT_BOTTOMEND
: PLACEMENT_BOTTOM;
}
_detectNavbar() {
return null !== this._element.closest(".navbar");
}
_getOffset() {
const { offset: e } = this._config;
return "string" == typeof e
? e.split(",").map((e) => Number.parseInt(e, 10))
: "function" == typeof e
? (t) => e(t, this._element)
: e;
}
_getPopperConfig() {
const e = {
placement: this._getPlacement(),
modifiers: [
{
name: "preventOverflow",
options: { boundary: this._config.boundary },
},
{ name: "offset", options: { offset: this._getOffset() } },
],
};
return (
"static" === this._config.display &&
(e.modifiers = [{ name: "applyStyles", enabled: !1 }]),
{
...e,
...("function" == typeof this._config.popperConfig
? this._config.popperConfig(e)
: this._config.popperConfig),
}
);
}
_selectMenuItem({ key: e, target: t }) {
const i = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(
isVisible,
);
i.length &&
getNextActiveElement(i, t, "ArrowDown" === e, !i.includes(t)).focus();
}
static jQueryInterface(e) {
return this.each(function () {
const t = Dropdown.getOrCreateInstance(this, e);
if ("string" == typeof e) {
if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
t[e]();
}
});
}
static clearMenus(e) {
if (e && (2 === e.button || ("keyup" === e.type && "Tab" !== e.key)))
return;
const t = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);
for (let i = 0, n = t.length; i < n; i++) {
const n = Dropdown.getInstance(t[i]);
if (!n || !1 === n._config.autoClose) continue;
if (!n._isShown()) continue;
const s = { relatedTarget: n._element };
if (e) {
const t = e.composedPath(),
i = t.includes(n._menu);
if (
t.includes(n._element) ||
("inside" === n._config.autoClose && !i) ||
("outside" === n._config.autoClose && i)
)
continue;
if (
n._menu.contains(e.target) &&
(("keyup" === e.type && "Tab" === e.key) ||
/input|select|option|textarea|form/i.test(e.target.tagName))
)
continue;
"click" === e.type && (s.clickEvent = e);
}
n._completeHide(s);
}
}
static getParentFromElement(e) {
return getElementFromSelector(e) || e.parentNode;
}
static dataApiKeydownHandler(e) {
if (
/input|textarea/i.test(e.target.tagName)
? "Space" === e.key ||
("Escape" !== e.key &&
(("ArrowDown" !== e.key && "ArrowUp" !== e.key) ||
e.target.closest(SELECTOR_MENU)))
: !REGEXP_KEYDOWN.test(e.key)
)
return;
const t = this.classList.contains("show");
if (!t && "Escape" === e.key) return;
if ((e.preventDefault(), e.stopPropagation(), isDisabled(this))) return;
const i = this.matches(SELECTOR_DATA_TOGGLE$3)
? this
: SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0],
n = Dropdown.getOrCreateInstance(i);
if ("Escape" !== e.key)
return "ArrowUp" === e.key || "ArrowDown" === e.key
? (t || n.show(), void n._selectMenuItem(e))
: void ((t && "Space" !== e.key) || Dropdown.clearMenus());
n.hide();
}
}
EventHandler.on(
document,
EVENT_KEYDOWN_DATA_API,
SELECTOR_DATA_TOGGLE$3,
Dropdown.dataApiKeydownHandler,
),
EventHandler.on(
document,
EVENT_KEYDOWN_DATA_API,
SELECTOR_MENU,
Dropdown.dataApiKeydownHandler,
),
EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus),
EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus),
EventHandler.on(
document,
EVENT_CLICK_DATA_API$3,
SELECTOR_DATA_TOGGLE$3,
function (e) {
e.preventDefault(), Dropdown.getOrCreateInstance(this).toggle();
},
),
defineJQueryPlugin(Dropdown);
const SELECTOR_FIXED_CONTENT =
".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
SELECTOR_STICKY_CONTENT = ".sticky-top";
class ScrollBarHelper {
constructor() {
this._element = document.body;
}
getWidth() {
const e = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - e);
}
hide() {
const e = this.getWidth();
this._disableOverFlow(),
this._setElementAttributes(this._element, "paddingRight", (t) => t + e),
this._setElementAttributes(
SELECTOR_FIXED_CONTENT,
"paddingRight",
(t) => t + e,
),
this._setElementAttributes(".sticky-top", "marginRight", (t) => t - e);
}
_disableOverFlow() {
this._saveInitialAttribute(this._element, "overflow"),
(this._element.style.overflow = "hidden");
}
_setElementAttributes(e, t, i) {
const n = this.getWidth();
this._applyManipulationCallback(e, (e) => {
if (e !== this._element && window.innerWidth > e.clientWidth + n) return;
this._saveInitialAttribute(e, t);
const s = window.getComputedStyle(e)[t];
e.style[t] = `${i(Number.parseFloat(s))}px`;
});
}
reset() {
this._resetElementAttributes(this._element, "overflow"),
this._resetElementAttributes(this._element, "paddingRight"),
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, "paddingRight"),
this._resetElementAttributes(".sticky-top", "marginRight");
}
_saveInitialAttribute(e, t) {
const i = e.style[t];
i && Manipulator.setDataAttribute(e, t, i);
}
_resetElementAttributes(e, t) {
this._applyManipulationCallback(e, (e) => {
const i = Manipulator.getDataAttribute(e, t);
void 0 === i
? e.style.removeProperty(t)
: (Manipulator.removeDataAttribute(e, t), (e.style[t] = i));
});
}
_applyManipulationCallback(e, t) {
isElement(e) ? t(e) : SelectorEngine.find(e, this._element).forEach(t);
}
isOverflowing() {
return this.getWidth() > 0;
}
}
const Default$7 = {
className: "modal-backdrop",
isVisible: !0,
isAnimated: !1,
rootElement: "body",
clickCallback: null,
},
DefaultType$7 = {
className: "string",
isVisible: "boolean",
isAnimated: "boolean",
rootElement: "(element|string)",
clickCallback: "(function|null)",
},
NAME$8 = "backdrop",
CLASS_NAME_FADE$4 = "fade",
CLASS_NAME_SHOW$5 = "show",
EVENT_MOUSEDOWN = "mousedown.bs.backdrop";
class Backdrop {
constructor(e) {
(this._config = this._getConfig(e)),
(this._isAppended = !1),
(this._element = null);
}
show(e) {
this._config.isVisible
? (this._append(),
this._config.isAnimated && reflow(this._getElement()),
this._getElement().classList.add("show"),
this._emulateAnimation(() => {
execute(e);
}))
: execute(e);
}
hide(e) {
this._config.isVisible
? (this._getElement().classList.remove("show"),
this._emulateAnimation(() => {
this.dispose(), execute(e);
}))
: execute(e);
}
_getElement() {
if (!this._element) {
const e = document.createElement("div");
(e.className = this._config.className),
this._config.isAnimated && e.classList.add("fade"),
(this._element = e);
}
return this._element;
}
_getConfig(e) {
return (
((e = { ...Default$7, ...("object" == typeof e ? e : {}) }).rootElement =
getElement(e.rootElement)),
typeCheckConfig(NAME$8, e, DefaultType$7),
e
);
}
_append() {
this._isAppended ||
(this._config.rootElement.append(this._getElement()),
EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {
execute(this._config.clickCallback);
}),
(this._isAppended = !0));
}
dispose() {
this._isAppended &&
(EventHandler.off(this._element, EVENT_MOUSEDOWN),
this._element.remove(),
(this._isAppended = !1));
}
_emulateAnimation(e) {
executeAfterTransition(e, this._getElement(), this._config.isAnimated);
}
}
const Default$6 = { trapElement: null, autofocus: !0 },
DefaultType$6 = { trapElement: "element", autofocus: "boolean" },
NAME$7 = "focustrap",
DATA_KEY$7 = "bs.focustrap",
EVENT_KEY$7 = ".bs.focustrap",
EVENT_FOCUSIN$1 = "focusin.bs.focustrap",
EVENT_KEYDOWN_TAB = "keydown.tab.bs.focustrap",
TAB_KEY = "Tab",
TAB_NAV_FORWARD = "forward",
TAB_NAV_BACKWARD = "backward";
class FocusTrap {
constructor(e) {
(this._config = this._getConfig(e)),
(this._isActive = !1),
(this._lastTabNavDirection = null);
}
activate() {
const { trapElement: e, autofocus: t } = this._config;
this._isActive ||
(t && e.focus(),
EventHandler.off(document, EVENT_KEY$7),
EventHandler.on(document, EVENT_FOCUSIN$1, (e) => this._handleFocusin(e)),
EventHandler.on(document, EVENT_KEYDOWN_TAB, (e) =>
this._handleKeydown(e),
),
(this._isActive = !0));
}
deactivate() {
this._isActive &&
((this._isActive = !1), EventHandler.off(document, EVENT_KEY$7));
}
_handleFocusin(e) {
const { target: t } = e,
{ trapElement: i } = this._config;
if (t === document || t === i || i.contains(t)) return;
const n = SelectorEngine.focusableChildren(i);
0 === n.length
? i.focus()
: "backward" === this._lastTabNavDirection
? n[n.length - 1].focus()
: n[0].focus();
}
_handleKeydown(e) {
"Tab" === e.key &&
(this._lastTabNavDirection = e.shiftKey ? "backward" : "forward");
}
_getConfig(e) {
return (
(e = { ...Default$6, ...("object" == typeof e ? e : {}) }),
typeCheckConfig(NAME$7, e, DefaultType$6),
e
);
}
}
const NAME$6 = "modal",
DATA_KEY$6 = "bs.modal",
EVENT_KEY$6 = ".bs.modal",
DATA_API_KEY$3 = ".data-api",
ESCAPE_KEY$1 = "Escape",
Default$5 = { backdrop: !0, keyboard: !0, focus: !0 },
DefaultType$5 = {
backdrop: "(boolean|string)",
keyboard: "boolean",
focus: "boolean",
},
EVENT_HIDE$3 = "hide.bs.modal",
EVENT_HIDE_PREVENTED = "hidePrevented.bs.modal",
EVENT_HIDDEN$3 = "hidden.bs.modal",
EVENT_SHOW$3 = "show.bs.modal",
EVENT_SHOWN$3 = "shown.bs.modal",
EVENT_RESIZE = "resize.bs.modal",
EVENT_CLICK_DISMISS = "click.dismiss.bs.modal",
EVENT_KEYDOWN_DISMISS$1 = "keydown.dismiss.bs.modal",
EVENT_MOUSEUP_DISMISS = "mouseup.dismiss.bs.modal",
EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss.bs.modal",
EVENT_CLICK_DATA_API$2 = "click.bs.modal.data-api",
CLASS_NAME_OPEN = "modal-open",
CLASS_NAME_FADE$3 = "fade",
CLASS_NAME_SHOW$4 = "show",
CLASS_NAME_STATIC = "modal-static",
OPEN_SELECTOR$1 = ".modal.show",
SELECTOR_DIALOG = ".modal-dialog",
SELECTOR_MODAL_BODY = ".modal-body",
SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
class Modal extends BaseComponent {
constructor(e, t) {
super(e),
(this._config = this._getConfig(t)),
(this._dialog = SelectorEngine.findOne(".modal-dialog", this._element)),
(this._backdrop = this._initializeBackDrop()),
(this._focustrap = this._initializeFocusTrap()),
(this._isShown = !1),
(this._ignoreBackdropClick = !1),
(this._isTransitioning = !1),
(this._scrollBar = new ScrollBarHelper());
}
static get Default() {
return Default$5;
}
static get NAME() {
return NAME$6;
}
toggle(e) {
return this._isShown ? this.hide() : this.show(e);
}
show(e) {
this._isShown ||
this._isTransitioning ||
EventHandler.trigger(this._element, EVENT_SHOW$3, { relatedTarget: e })
.defaultPrevented ||
((this._isShown = !0),
this._isAnimated() && (this._isTransitioning = !0),
this._scrollBar.hide(),
document.body.classList.add("modal-open"),
this._adjustDialog(),
this._setEscapeEvent(),
this._setResizeEvent(),
EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {
EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, (e) => {
e.target === this._element && (this._ignoreBackdropClick = !0);
});
}),
this._showBackdrop(() => this._showElement(e)));
}
hide() {
if (!this._isShown || this._isTransitioning) return;
if (EventHandler.trigger(this._element, EVENT_HIDE$3).defaultPrevented)
return;
this._isShown = !1;
const e = this._isAnimated();
e && (this._isTransitioning = !0),
this._setEscapeEvent(),
this._setResizeEvent(),
this._focustrap.deactivate(),
this._element.classList.remove("show"),
EventHandler.off(this._element, EVENT_CLICK_DISMISS),
EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS),
this._queueCallback(() => this._hideModal(), this._element, e);
}
dispose() {
[window, this._dialog].forEach((e) => EventHandler.off(e, ".bs.modal")),
this._backdrop.dispose(),
this._focustrap.deactivate(),
super.dispose();
}
handleUpdate() {
this._adjustDialog();
}
_initializeBackDrop() {
return new Backdrop({
isVisible: Boolean(this._config.backdrop),
isAnimated: this._isAnimated(),
});
}
_initializeFocusTrap() {
return new FocusTrap({ trapElement: this._element });
}
_getConfig(e) {
return (
(e = {
...Default$5,
...Manipulator.getDataAttributes(this._element),
...("object" == typeof e ? e : {}),
}),
typeCheckConfig(NAME$6, e, DefaultType$5),
e
);
}
_showElement(e) {
const t = this._isAnimated(),
i = SelectorEngine.findOne(".modal-body", this._dialog);
(this._element.parentNode &&
this._element.parentNode.nodeType === Node.ELEMENT_NODE) ||
document.body.append(this._element),
(this._element.style.display = "block"),
this._element.removeAttribute("aria-hidden"),
this._element.setAttribute("aria-modal", !0),
this._element.setAttribute("role", "dialog"),
(this._element.scrollTop = 0),
i && (i.scrollTop = 0),
t && reflow(this._element),
this._element.classList.add("show"),
this._queueCallback(
() => {
this._config.focus && this._focustrap.activate(),
(this._isTransitioning = !1),
EventHandler.trigger(this._element, EVENT_SHOWN$3, {
relatedTarget: e,
});
},
this._dialog,
t,
);
}
_setEscapeEvent() {
this._isShown
? EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (e) => {
this._config.keyboard && "Escape" === e.key
? (e.preventDefault(), this.hide())
: this._config.keyboard ||
"Escape" !== e.key ||
this._triggerBackdropTransition();
})
: EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);
}
_setResizeEvent() {
this._isShown
? EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())
: EventHandler.off(window, EVENT_RESIZE);
}
_hideModal() {
(this._element.style.display = "none"),
this._element.setAttribute("aria-hidden", !0),
this._element.removeAttribute("aria-modal"),
this._element.removeAttribute("role"),
(this._isTransitioning = !1),
this._backdrop.hide(() => {
document.body.classList.remove("modal-open"),
this._resetAdjustments(),
this._scrollBar.reset(),
EventHandler.trigger(this._element, EVENT_HIDDEN$3);
});
}
_showBackdrop(e) {
EventHandler.on(this._element, EVENT_CLICK_DISMISS, (e) => {
this._ignoreBackdropClick
? (this._ignoreBackdropClick = !1)
: e.target === e.currentTarget &&
(!0 === this._config.backdrop
? this.hide()
: "static" === this._config.backdrop &&
this._triggerBackdropTransition());
}),
this._backdrop.show(e);
}
_isAnimated() {
return this._element.classList.contains("fade");
}
_triggerBackdropTransition() {
if (
EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED).defaultPrevented
)
return;
const { classList: e, scrollHeight: t, style: i } = this._element,
n = t > document.documentElement.clientHeight;
(!n && "hidden" === i.overflowY) ||
e.contains("modal-static") ||
(n || (i.overflowY = "hidden"),
e.add("modal-static"),
this._queueCallback(() => {
e.remove("modal-static"),
n ||
this._queueCallback(() => {
i.overflowY = "";
}, this._dialog);
}, this._dialog),
this._element.focus());
}
_adjustDialog() {
const e =
this._element.scrollHeight > document.documentElement.clientHeight,
t = this._scrollBar.getWidth(),
i = t > 0;
((!i && e && !isRTL()) || (i && !e && isRTL())) &&
(this._element.style.paddingLeft = `${t}px`),
((i && !e && !isRTL()) || (!i && e && isRTL())) &&
(this._element.style.paddingRight = `${t}px`);
}
_resetAdjustments() {
(this._element.style.paddingLeft = ""),
(this._element.style.paddingRight = "");
}
static jQueryInterface(e, t) {
return this.each(function () {
const i = Modal.getOrCreateInstance(this, e);
if ("string" == typeof e) {
if (void 0 === i[e]) throw new TypeError(`No method named "${e}"`);
i[e](t);
}
});
}
}
EventHandler.on(
document,
EVENT_CLICK_DATA_API$2,
SELECTOR_DATA_TOGGLE$2,
function (e) {
const t = getElementFromSelector(this);
["A", "AREA"].includes(this.tagName) && e.preventDefault(),
EventHandler.one(t, EVENT_SHOW$3, (e) => {
e.defaultPrevented ||
EventHandler.one(t, EVENT_HIDDEN$3, () => {
isVisible(this) && this.focus();
});
});
const i = SelectorEngine.findOne(".modal.show");
i && Modal.getInstance(i).hide(), Modal.getOrCreateInstance(t).toggle(this);
},
),
enableDismissTrigger(Modal),
defineJQueryPlugin(Modal);
const NAME$5 = "offcanvas",
DATA_KEY$5 = "bs.offcanvas",
EVENT_KEY$5 = ".bs.offcanvas",
DATA_API_KEY$2 = ".data-api",
EVENT_LOAD_DATA_API$1 = "load.bs.offcanvas.data-api",
ESCAPE_KEY = "Escape",
Default$4 = { backdrop: !0, keyboard: !0, scroll: !1 },
DefaultType$4 = {
backdrop: "boolean",
keyboard: "boolean",
scroll: "boolean",
},
CLASS_NAME_SHOW$3 = "show",
CLASS_NAME_BACKDROP = "offcanvas-backdrop",
OPEN_SELECTOR = ".offcanvas.show",
EVENT_SHOW$2 = "show.bs.offcanvas",
EVENT_SHOWN$2 = "shown.bs.offcanvas",
EVENT_HIDE$2 = "hide.bs.offcanvas",
EVENT_HIDDEN$2 = "hidden.bs.offcanvas",
EVENT_CLICK_DATA_API$1 = "click.bs.offcanvas.data-api",
EVENT_KEYDOWN_DISMISS = "keydown.dismiss.bs.offcanvas",
SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
class Offcanvas extends BaseComponent {
constructor(e, t) {
super(e),
(this._config = this._getConfig(t)),
(this._isShown = !1),
(this._backdrop = this._initializeBackDrop()),
(this._focustrap = this._initializeFocusTrap()),
this._addEventListeners();
}
static get NAME() {
return NAME$5;
}
static get Default() {
return Default$4;
}
toggle(e) {
return this._isShown ? this.hide() : this.show(e);
}
show(e) {
this._isShown ||
EventHandler.trigger(this._element, EVENT_SHOW$2, { relatedTarget: e })
.defaultPrevented ||
((this._isShown = !0),
(this._element.style.visibility = "visible"),
this._backdrop.show(),
this._config.scroll || new ScrollBarHelper().hide(),
this._element.removeAttribute("aria-hidden"),
this._element.setAttribute("aria-modal", !0),
this._element.setAttribute("role", "dialog"),
this._element.classList.add("show"),
this._queueCallback(
() => {
this._config.scroll || this._focustrap.activate(),
EventHandler.trigger(this._element, EVENT_SHOWN$2, {
relatedTarget: e,
});
},
this._element,
!0,
));
}
hide() {
this._isShown &&
(EventHandler.trigger(this._element, EVENT_HIDE$2).defaultPrevented ||
(this._focustrap.deactivate(),
this._element.blur(),
(this._isShown = !1),
this._element.classList.remove("show"),
this._backdrop.hide(),
this._queueCallback(
() => {
this._element.setAttribute("aria-hidden", !0),
this._element.removeAttribute("aria-modal"),
this._element.removeAttribute("role"),
(this._element.style.visibility = "hidden"),
this._config.scroll || new ScrollBarHelper().reset(),
EventHandler.trigger(this._element, EVENT_HIDDEN$2);
},
this._element,
!0,
)));
}
dispose() {
this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
}
_getConfig(e) {
return (
(e = {
...Default$4,
...Manipulator.getDataAttributes(this._element),
...("object" == typeof e ? e : {}),
}),
typeCheckConfig(NAME$5, e, DefaultType$4),
e
);
}
_initializeBackDrop() {
return new Backdrop({
className: CLASS_NAME_BACKDROP,
isVisible: this._config.backdrop,
isAnimated: !0,
rootElement: this._element.parentNode,
clickCallback: () => this.hide(),
});
}
_initializeFocusTrap() {
return new FocusTrap({ trapElement: this._element });
}
_addEventListeners() {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (e) => {
this._config.keyboard && "Escape" === e.key && this.hide();
});
}
static jQueryInterface(e) {
return this.each(function () {
const t = Offcanvas.getOrCreateInstance(this, e);
if ("string" == typeof e) {
if (void 0 === t[e] || e.startsWith("_") || "constructor" === e)
throw new TypeError(`No method named "${e}"`);
t[e](this);
}
});
}
}
EventHandler.on(
document,
EVENT_CLICK_DATA_API$1,
SELECTOR_DATA_TOGGLE$1,
function (e) {
const t = getElementFromSelector(this);
if (
(["A", "AREA"].includes(this.tagName) && e.preventDefault(),
isDisabled(this))
)
return;
EventHandler.one(t, EVENT_HIDDEN$2, () => {
isVisible(this) && this.focus();
});
const i = SelectorEngine.findOne(OPEN_SELECTOR);
i && i !== t && Offcanvas.getInstance(i).hide(),
Offcanvas.getOrCreateInstance(t).toggle(this);
},
),
EventHandler.on(window, EVENT_LOAD_DATA_API$1, () =>
SelectorEngine.find(OPEN_SELECTOR).forEach((e) =>
Offcanvas.getOrCreateInstance(e).show(),
),
),
enableDismissTrigger(Offcanvas),
defineJQueryPlugin(Offcanvas);
const uriAttributes = new Set([
"background",
"cite",
"href",
"itemtype",
"longdesc",
"poster",
"src",
"xlink:href",
]),
ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i,
SAFE_URL_PATTERN =
/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,
DATA_URL_PATTERN =
/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
allowedAttribute = (e, t) => {
const i = e.nodeName.toLowerCase();
if (t.includes(i))
return (
!uriAttributes.has(i) ||
Boolean(
SAFE_URL_PATTERN.test(e.nodeValue) ||
DATA_URL_PATTERN.test(e.nodeValue),
)
);
const n = t.filter((e) => e instanceof RegExp);
for (let e = 0, t = n.length; e < t; e++) if (n[e].test(i)) return !0;
return !1;
},
DefaultAllowlist = {
"*": ["class", "dir", "id", "lang", "role", ARIA_ATTRIBUTE_PATTERN],
a: ["target", "href", "title", "rel"],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ["src", "srcset", "alt", "title", "width", "height"],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: [],
};
function sanitizeHtml(e, t, i) {
if (!e.length) return e;
if (i && "function" == typeof i) return i(e);
const n = new window.DOMParser().parseFromString(e, "text/html"),
s = [].concat(...n.body.querySelectorAll("*"));
for (let e = 0, i = s.length; e < i; e++) {
const i = s[e],
n = i.nodeName.toLowerCase();
if (!Object.keys(t).includes(n)) {
i.remove();
continue;
}
const o = [].concat(...i.attributes),
r = [].concat(t["*"] || [], t[n] || []);
o.forEach((e) => {
allowedAttribute(e, r) || i.removeAttribute(e.nodeName);
});
}
return n.body.innerHTML;
}
const NAME$4 = "tooltip",
DATA_KEY$4 = "bs.tooltip",
EVENT_KEY$4 = ".bs.tooltip",
CLASS_PREFIX$1 = "bs-tooltip",
DISALLOWED_ATTRIBUTES = new Set(["sanitize", "allowList", "sanitizeFn"]),
DefaultType$3 = {
animation: "boolean",
template: "string",
title: "(string|element|function)",
trigger: "string",
delay: "(number|object)",
html: "boolean",
selector: "(string|boolean)",
placement: "(string|function)",
offset: "(array|string|function)",
container: "(string|element|boolean)",
fallbackPlacements: "array",
boundary: "(string|element)",
customClass: "(string|function)",
sanitize: "boolean",
sanitizeFn: "(null|function)",
allowList: "object",
popperConfig: "(null|object|function)",
},
AttachmentMap = {
AUTO: "auto",
TOP: "top",
RIGHT: isRTL() ? "left" : "right",
BOTTOM: "bottom",
LEFT: isRTL() ? "right" : "left",
},
Default$3 = {
animation: !0,
template:
'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
selector: !1,
placement: "top",
offset: [0, 0],
container: !1,
fallbackPlacements: ["top", "right", "bottom", "left"],
boundary: "clippingParents",
customClass: "",
sanitize: !0,
sanitizeFn: null,
allowList: DefaultAllowlist,
popperConfig: null,
},
Event$2 = {
HIDE: "hide.bs.tooltip",
HIDDEN: "hidden.bs.tooltip",
SHOW: "show.bs.tooltip",
SHOWN: "shown.bs.tooltip",
INSERTED: "inserted.bs.tooltip",
CLICK: "click.bs.tooltip",
FOCUSIN: "focusin.bs.tooltip",
FOCUSOUT: "focusout.bs.tooltip",
MOUSEENTER: "mouseenter.bs.tooltip",
MOUSELEAVE: "mouseleave.bs.tooltip",
},
CLASS_NAME_FADE$2 = "fade",
CLASS_NAME_MODAL = "modal",
CLASS_NAME_SHOW$2 = "show",
HOVER_STATE_SHOW = "show",
HOVER_STATE_OUT = "out",
SELECTOR_TOOLTIP_INNER = ".tooltip-inner",
SELECTOR_MODAL = ".modal",
EVENT_MODAL_HIDE = "hide.bs.modal",
TRIGGER_HOVER = "hover",
TRIGGER_FOCUS = "focus",
TRIGGER_CLICK = "click",
TRIGGER_MANUAL = "manual";
class Tooltip extends BaseComponent {
constructor(e, t) {
if (void 0 === Popper)
throw new TypeError(
"Bootstrap's tooltips require Popper (https://popper.js.org)",
);
super(e),
(this._isEnabled = !0),
(this._timeout = 0),
(this._hoverState = ""),
(this._activeTrigger = {}),
(this._popper = null),
(this._config = this._getConfig(t)),
(this.tip = null),
this._setListeners();
}
static get Default() {
return Default$3;
}
static get NAME() {
return NAME$4;
}
static get Event() {
return Event$2;
}
static get DefaultType() {
return DefaultType$3;
}
enable() {
this._isEnabled = !0;
}
disable() {
this._isEnabled = !1;
}
toggleEnabled() {
this._isEnabled = !this._isEnabled;
}
toggle(e) {
if (this._isEnabled)
if (e) {
const t = this._initializeOnDelegatedTarget(e);
(t._activeTrigger.click = !t._activeTrigger.click),
t._isWithActiveTrigger() ? t._enter(null, t) : t._leave(null, t);
} else {
if (this.getTipElement().classList.contains("show"))
return void this._leave(null, this);
this._enter(null, this);
}
}
dispose() {
clearTimeout(this._timeout),
EventHandler.off(
this._element.closest(".modal"),
"hide.bs.modal",
this._hideModalHandler,
),
this.tip && this.tip.remove(),
this._disposePopper(),
super.dispose();
}
show() {
if ("none" === this._element.style.display)
throw new Error("Please use show on visible elements");
if (!this.isWithContent() || !this._isEnabled) return;
const e = EventHandler.trigger(this._element, this.constructor.Event.SHOW),
t = findShadowRoot(this._element),
i =
null === t
? this._element.ownerDocument.documentElement.contains(this._element)
: t.contains(this._element);
if (e.defaultPrevented || !i) return;
"tooltip" === this.constructor.NAME &&
this.tip &&
this.getTitle() !== this.tip.querySelector(".tooltip-inner").innerHTML &&
(this._disposePopper(), this.tip.remove(), (this.tip = null));
const n = this.getTipElement(),
s = getUID(this.constructor.NAME);
n.setAttribute("id", s),
this._element.setAttribute("aria-describedby", s),
this._config.animation && n.classList.add("fade");
const o =
"function" == typeof this._config.placement
? this._config.placement.call(this, n, this._element)
: this._config.placement,
r = this._getAttachment(o);
this._addAttachmentClass(r);
const { container: a } = this._config;
Data.set(n, this.constructor.DATA_KEY, this),
this._element.ownerDocument.documentElement.contains(this.tip) ||
(a.append(n),
EventHandler.trigger(this._element, this.constructor.Event.INSERTED)),
this._popper
? this._popper.update()
: (this._popper = Popper.createPopper(
this._element,
n,
this._getPopperConfig(r),
)),
n.classList.add("show");
const l = this._resolvePossibleFunction(this._config.customClass);
l && n.classList.add(...l.split(" ")),
"ontouchstart" in document.documentElement &&
[].concat(...document.body.children).forEach((e) => {
EventHandler.on(e, "mouseover", noop);
});
const c = this.tip.classList.contains("fade");
this._queueCallback(
() => {
const e = this._hoverState;
(this._hoverState = null),
EventHandler.trigger(this._element, this.constructor.Event.SHOWN),
"out" === e && this._leave(null, this);
},
this.tip,
c,
);
}
hide() {
if (!this._popper) return;
const e = this.getTipElement();
if (
EventHandler.trigger(this._element, this.constructor.Event.HIDE)
.defaultPrevented
)
return;
e.classList.remove("show"),
"ontouchstart" in document.documentElement &&
[]
.concat(...document.body.children)
.forEach((e) => EventHandler.off(e, "mouseover", noop)),
(this._activeTrigger.click = !1),
(this._activeTrigger.focus = !1),
(this._activeTrigger.hover = !1);
const t = this.tip.classList.contains("fade");
this._queueCallback(
() => {
this._isWithActiveTrigger() ||
("show" !== this._hoverState && e.remove(),
this._cleanTipClass(),
this._element.removeAttribute("aria-describedby"),
EventHandler.trigger(this._element, this.constructor.Event.HIDDEN),
this._disposePopper());
},
this.tip,
t,
),
(this._hoverState = "");
}
update() {
null !== this._popper && this._popper.update();
}
isWithContent() {
return Boolean(this.getTitle());
}
getTipElement() {
if (this.tip) return this.tip;
const e = document.createElement("div");
e.innerHTML = this._config.template;
const t = e.children[0];
return (
this.setContent(t),
t.classList.remove("fade", "show"),
(this.tip = t),
this.tip
);
}
setContent(e) {
this._sanitizeAndSetContent(e, this.getTitle(), ".tooltip-inner");
}
_sanitizeAndSetContent(e, t, i) {
const n = SelectorEngine.findOne(i, e);
t || !n ? this.setElementContent(n, t) : n.remove();
}
setElementContent(e, t) {
if (null !== e)
return isElement(t)
? ((t = getElement(t)),
void (this._config.html
? t.parentNode !== e && ((e.innerHTML = ""), e.append(t))
: (e.textContent = t.textContent)))
: void (this._config.html
? (this._config.sanitize &&
(t = sanitizeHtml(
t,
this._config.allowList,
this._config.sanitizeFn,
)),
(e.innerHTML = t))
: (e.textContent = t));
}
getTitle() {
const e =
this._element.getAttribute("data-bs-original-title") ||
this._config.title;
return this._resolvePossibleFunction(e);
}
updateAttachment(e) {
return "right" === e ? "end" : "left" === e ? "start" : e;
}
_initializeOnDelegatedTarget(e, t) {
return (
t ||
this.constructor.getOrCreateInstance(
e.delegateTarget,
this._getDelegateConfig(),
)
);
}
_getOffset() {
const { offset: e } = this._config;
return "string" == typeof e
? e.split(",").map((e) => Number.parseInt(e, 10))
: "function" == typeof e
? (t) => e(t, this._element)
: e;
}
_resolvePossibleFunction(e) {
return "function" == typeof e ? e.call(this._element) : e;
}
_getPopperConfig(e) {
const t = {
placement: e,
modifiers: [
{
name: "flip",
options: { fallbackPlacements: this._config.fallbackPlacements },
},
{ name: "offset", options: { offset: this._getOffset() } },
{
name: "preventOverflow",
options: { boundary: this._config.boundary },
},
{
name: "arrow",
options: { element: `.${this.constructor.NAME}-arrow` },
},
{
name: "onChange",
enabled: !0,
phase: "afterWrite",
fn: (e) => this._handlePopperPlacementChange(e),
},
],
onFirstUpdate: (e) => {
e.options.placement !== e.placement &&
this._handlePopperPlacementChange(e);
},
};
return {
...t,
...("function" == typeof this._config.popperConfig
? this._config.popperConfig(t)
: this._config.popperConfig),
};
}
_addAttachmentClass(e) {
this.getTipElement().classList.add(
`${this._getBasicClassPrefix()}-${this.updateAttachment(e)}`,
);
}
_getAttachment(e) {
return AttachmentMap[e.toUpperCase()];
}
_setListeners() {
this._config.trigger.split(" ").forEach((e) => {
if ("click" === e)
EventHandler.on(
this._element,
this.constructor.Event.CLICK,
this._config.selector,
(e) => this.toggle(e),
);
else if ("manual" !== e) {
const t =
"hover" === e
? this.constructor.Event.MOUSEENTER
: this.constructor.Event.FOCUSIN,
i =
"hover" === e
? this.constructor.Event.MOUSELEAVE
: this.constructor.Event.FOCUSOUT;
EventHandler.on(this._element, t, this._config.selector, (e) =>
this._enter(e),
),
EventHandler.on(this._element, i, this._config.selector, (e) =>
this._leave(e),
);
}
}),
(this._hideModalHandler = () => {
this._element && this.hide();
}),
EventHandler.on(
this._element.closest(".modal"),
"hide.bs.modal",
this._hideModalHandler,
),
this._config.selector
? (this._config = { ...this._config, trigger: "manual", selector: "" })
: this._fixTitle();
}
_fixTitle() {
const e = this._element.getAttribute("title"),
t = typeof this._element.getAttribute("data-bs-original-title");
(e || "string" !== t) &&
(this._element.setAttribute("data-bs-original-title", e || ""),
!e ||
this._element.getAttribute("aria-label") ||
this._element.textContent ||
this._element.setAttribute("aria-label", e),
this._element.setAttribute("title", ""));
}
_enter(e, t) {
(t = this._initializeOnDelegatedTarget(e, t)),
e && (t._activeTrigger["focusin" === e.type ? "focus" : "hover"] = !0),
t.getTipElement().classList.contains("show") || "show" === t._hoverState
? (t._hoverState = "show")
: (clearTimeout(t._timeout),
(t._hoverState = "show"),
t._config.delay && t._config.delay.show
? (t._timeout = setTimeout(() => {
"show" === t._hoverState && t.show();
}, t._config.delay.show))
: t.show());
}
_leave(e, t) {
(t = this._initializeOnDelegatedTarget(e, t)),
e &&
(t._activeTrigger["focusout" === e.type ? "focus" : "hover"] =
t._element.contains(e.relatedTarget)),
t._isWithActiveTrigger() ||
(clearTimeout(t._timeout),
(t._hoverState = "out"),
t._config.delay && t._config.delay.hide
? (t._timeout = setTimeout(() => {
"out" === t._hoverState && t.hide();
}, t._config.delay.hide))
: t.hide());
}
_isWithActiveTrigger() {
for (const e in this._activeTrigger) if (this._activeTrigger[e]) return !0;
return !1;
}
_getConfig(e) {
const t = Manipulator.getDataAttributes(this._element);
return (
Object.keys(t).forEach((e) => {
DISALLOWED_ATTRIBUTES.has(e) && delete t[e];
}),
((e = {
...this.constructor.Default,
...t,
...("object" == typeof e && e ? e : {}),
}).container =
!1 === e.container ? document.body : getElement(e.container)),
"number" == typeof e.delay &&
(e.delay = { show: e.delay, hide: e.delay }),
"number" == typeof e.title && (e.title = e.title.toString()),
"number" == typeof e.content && (e.content = e.content.toString()),
typeCheckConfig(NAME$4, e, this.constructor.DefaultType),
e.sanitize &&
(e.template = sanitizeHtml(e.template, e.allowList, e.sanitizeFn)),
e
);
}
_getDelegateConfig() {
const e = {};
for (const t in this._config)
this.constructor.Default[t] !== this._config[t] &&
(e[t] = this._config[t]);
return e;
}
_cleanTipClass() {
const e = this.getTipElement(),
t = new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`, "g"),
i = e.getAttribute("class").match(t);
null !== i &&
i.length > 0 &&
i.map((e) => e.trim()).forEach((t) => e.classList.remove(t));
}
_getBasicClassPrefix() {
return "bs-tooltip";
}
_handlePopperPlacementChange(e) {
const { state: t } = e;
t &&
((this.tip = t.elements.popper),
this._cleanTipClass(),
this._addAttachmentClass(this._getAttachment(t.placement)));
}
_disposePopper() {
this._popper && (this._popper.destroy(), (this._popper = null));
}
static jQueryInterface(e) {
return this.each(function () {
const t = Tooltip.getOrCreateInstance(this, e);
if ("string" == typeof e) {
if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
t[e]();
}
});
}
}
defineJQueryPlugin(Tooltip);
const NAME$3 = "popover",
DATA_KEY$3 = "bs.popover",
EVENT_KEY$3 = ".bs.popover",
CLASS_PREFIX = "bs-popover",
Default$2 = {
...Tooltip.Default,
placement: "right",
offset: [0, 8],
trigger: "click",
content: "",
template:
'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
},
DefaultType$2 = {
...Tooltip.DefaultType,
content: "(string|element|function)",
},
Event$1 = {
HIDE: "hide.bs.popover",
HIDDEN: "hidden.bs.popover",
SHOW: "show.bs.popover",
SHOWN: "shown.bs.popover",
INSERTED: "inserted.bs.popover",
CLICK: "click.bs.popover",
FOCUSIN: "focusin.bs.popover",
FOCUSOUT: "focusout.bs.popover",
MOUSEENTER: "mouseenter.bs.popover",
MOUSELEAVE: "mouseleave.bs.popover",
},
SELECTOR_TITLE = ".popover-header",
SELECTOR_CONTENT = ".popover-body";
class Popover extends Tooltip {
static get Default() {
return Default$2;
}
static get NAME() {
return NAME$3;
}
static get Event() {
return Event$1;
}
static get DefaultType() {
return DefaultType$2;
}
isWithContent() {
return this.getTitle() || this._getContent();
}
setContent(e) {
this._sanitizeAndSetContent(e, this.getTitle(), SELECTOR_TITLE),
this._sanitizeAndSetContent(e, this._getContent(), ".popover-body");
}
_getContent() {
return this._resolvePossibleFunction(this._config.content);
}
_getBasicClassPrefix() {
return "bs-popover";
}
static jQueryInterface(e) {
return this.each(function () {
const t = Popover.getOrCreateInstance(this, e);
if ("string" == typeof e) {
if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
t[e]();
}
});
}
}
defineJQueryPlugin(Popover);
const NAME$2 = "scrollspy",
DATA_KEY$2 = "bs.scrollspy",
EVENT_KEY$2 = ".bs.scrollspy",
DATA_API_KEY$1 = ".data-api",
Default$1 = { offset: 10, method: "auto", target: "" },
DefaultType$1 = {
offset: "number",
method: "string",
target: "(string|element)",
},
EVENT_ACTIVATE = "activate.bs.scrollspy",
EVENT_SCROLL = "scroll.bs.scrollspy",
EVENT_LOAD_DATA_API = "load.bs.scrollspy.data-api",
CLASS_NAME_DROPDOWN_ITEM = "dropdown-item",
CLASS_NAME_ACTIVE$1 = "active",
SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]',
SELECTOR_NAV_LIST_GROUP$1 = ".nav, .list-group",
SELECTOR_NAV_LINKS = ".nav-link",
SELECTOR_NAV_ITEMS = ".nav-item",
SELECTOR_LIST_ITEMS = ".list-group-item",
SELECTOR_LINK_ITEMS = ".nav-link, .list-group-item, .dropdown-item",
SELECTOR_DROPDOWN$1 = ".dropdown",
SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle",
METHOD_OFFSET = "offset",
METHOD_POSITION = "position";
class ScrollSpy extends BaseComponent {
constructor(e, t) {
super(e),
(this._scrollElement =
"BODY" === this._element.tagName ? window : this._element),
(this._config = this._getConfig(t)),
(this._offsets = []),
(this._targets = []),
(this._activeTarget = null),
(this._scrollHeight = 0),
EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process()),
this.refresh(),
this._process();
}
static get Default() {
return Default$1;
}
static get NAME() {
return NAME$2;
}
refresh() {
const e =
this._scrollElement === this._scrollElement.window
? "offset"
: "position",
t = "auto" === this._config.method ? e : this._config.method,
i = "position" === t ? this._getScrollTop() : 0;
(this._offsets = []),
(this._targets = []),
(this._scrollHeight = this._getScrollHeight()),
SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target)
.map((e) => {
const n = getSelectorFromElement(e),
s = n ? SelectorEngine.findOne(n) : null;
if (s) {
const e = s.getBoundingClientRect();
if (e.width || e.height) return [Manipulator[t](s).top + i, n];
}
return null;
})
.filter((e) => e)
.sort((e, t) => e[0] - t[0])
.forEach((e) => {
this._offsets.push(e[0]), this._targets.push(e[1]);
});
}
dispose() {
EventHandler.off(this._scrollElement, EVENT_KEY$2), super.dispose();
}
_getConfig(e) {
return (
((e = {
...Default$1,
...Manipulator.getDataAttributes(this._element),
...("object" == typeof e && e ? e : {}),
}).target = getElement(e.target) || document.documentElement),
typeCheckConfig(NAME$2, e, DefaultType$1),
e
);
}
_getScrollTop() {
return this._scrollElement === window
? this._scrollElement.pageYOffset
: this._scrollElement.scrollTop;
}
_getScrollHeight() {
return (
this._scrollElement.scrollHeight ||
Math.max(
document.body.scrollHeight,
document.documentElement.scrollHeight,
)
);
}
_getOffsetHeight() {
return this._scrollElement === window
? window.innerHeight
: this._scrollElement.getBoundingClientRect().height;
}
_process() {
const e = this._getScrollTop() + this._config.offset,
t = this._getScrollHeight(),
i = this._config.offset + t - this._getOffsetHeight();
if ((this._scrollHeight !== t && this.refresh(), e >= i)) {
const e = this._targets[this._targets.length - 1];
this._activeTarget !== e && this._activate(e);
} else {
if (this._activeTarget && e < this._offsets[0] && this._offsets[0] > 0)
return (this._activeTarget = null), void this._clear();
for (let t = this._offsets.length; t--; )
this._activeTarget !== this._targets[t] &&
e >= this._offsets[t] &&
(void 0 === this._offsets[t + 1] || e < this._offsets[t + 1]) &&
this._activate(this._targets[t]);
}
}
_activate(e) {
(this._activeTarget = e), this._clear();
const t = SELECTOR_LINK_ITEMS.split(",").map(
(t) => `${t}[data-bs-target="${e}"],${t}[href="${e}"]`,
),
i = SelectorEngine.findOne(t.join(","), this._config.target);
i.classList.add("active"),
i.classList.contains("dropdown-item")
? SelectorEngine.findOne(
".dropdown-toggle",
i.closest(".dropdown"),
).classList.add("active")
: SelectorEngine.parents(i, ".nav, .list-group").forEach((e) => {
SelectorEngine.prev(e, ".nav-link, .list-group-item").forEach((e) =>
e.classList.add("active"),
),
SelectorEngine.prev(e, ".nav-item").forEach((e) => {
SelectorEngine.children(e, ".nav-link").forEach((e) =>
e.classList.add("active"),
);
});
}),
EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
relatedTarget: e,
});
}
_clear() {
SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target)
.filter((e) => e.classList.contains("active"))
.forEach((e) => e.classList.remove("active"));
}
static jQueryInterface(e) {
return this.each(function () {
const t = ScrollSpy.getOrCreateInstance(this, e);
if ("string" == typeof e) {
if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
t[e]();
}
});
}
}
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
SelectorEngine.find(SELECTOR_DATA_SPY).forEach((e) => new ScrollSpy(e));
}),
defineJQueryPlugin(ScrollSpy);
const NAME$1 = "tab",
DATA_KEY$1 = "bs.tab",
EVENT_KEY$1 = ".bs.tab",
DATA_API_KEY = ".data-api",
EVENT_HIDE$1 = "hide.bs.tab",
EVENT_HIDDEN$1 = "hidden.bs.tab",
EVENT_SHOW$1 = "show.bs.tab",
EVENT_SHOWN$1 = "shown.bs.tab",
EVENT_CLICK_DATA_API = "click.bs.tab.data-api",
CLASS_NAME_DROPDOWN_MENU = "dropdown-menu",
CLASS_NAME_ACTIVE = "active",
CLASS_NAME_FADE$1 = "fade",
CLASS_NAME_SHOW$1 = "show",
SELECTOR_DROPDOWN = ".dropdown",
SELECTOR_NAV_LIST_GROUP = ".nav, .list-group",
SELECTOR_ACTIVE = ".active",
SELECTOR_ACTIVE_UL = ":scope > li > .active",
SELECTOR_DATA_TOGGLE =
'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle",
SELECTOR_DROPDOWN_ACTIVE_CHILD = ":scope > .dropdown-menu .active";
class Tab extends BaseComponent {
static get NAME() {
return "tab";
}
show() {
if (
this._element.parentNode &&
this._element.parentNode.nodeType === Node.ELEMENT_NODE &&
this._element.classList.contains("active")
)
return;
let e;
const t = getElementFromSelector(this._element),
i = this._element.closest(".nav, .list-group");
if (i) {
const t =
"UL" === i.nodeName || "OL" === i.nodeName
? SELECTOR_ACTIVE_UL
: ".active";
(e = SelectorEngine.find(t, i)), (e = e[e.length - 1]);
}
const n = e
? EventHandler.trigger(e, EVENT_HIDE$1, { relatedTarget: this._element })
: null;
if (
EventHandler.trigger(this._element, EVENT_SHOW$1, { relatedTarget: e })
.defaultPrevented ||
(null !== n && n.defaultPrevented)
)
return;
this._activate(this._element, i);
const s = () => {
EventHandler.trigger(e, EVENT_HIDDEN$1, { relatedTarget: this._element }),
EventHandler.trigger(this._element, EVENT_SHOWN$1, {
relatedTarget: e,
});
};
t ? this._activate(t, t.parentNode, s) : s();
}
_activate(e, t, i) {
const n = (
!t || ("UL" !== t.nodeName && "OL" !== t.nodeName)
? SelectorEngine.children(t, ".active")
: SelectorEngine.find(SELECTOR_ACTIVE_UL, t)
)[0],
s = i && n && n.classList.contains("fade"),
o = () => this._transitionComplete(e, n, i);
n && s ? (n.classList.remove("show"), this._queueCallback(o, e, !0)) : o();
}
_transitionComplete(e, t, i) {
if (t) {
t.classList.remove("active");
const e = SelectorEngine.findOne(
SELECTOR_DROPDOWN_ACTIVE_CHILD,
t.parentNode,
);
e && e.classList.remove("active"),
"tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !1);
}
e.classList.add("active"),
"tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !0),
reflow(e),
e.classList.contains("fade") && e.classList.add("show");
let n = e.parentNode;
if (
(n && "LI" === n.nodeName && (n = n.parentNode),
n && n.classList.contains("dropdown-menu"))
) {
const t = e.closest(".dropdown");
t &&
SelectorEngine.find(".dropdown-toggle", t).forEach((e) =>
e.classList.add("active"),
),
e.setAttribute("aria-expanded", !0);
}
i && i();
}
static jQueryInterface(e) {
return this.each(function () {
const t = Tab.getOrCreateInstance(this);
if ("string" == typeof e) {
if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
t[e]();
}
});
}
}
EventHandler.on(
document,
EVENT_CLICK_DATA_API,
SELECTOR_DATA_TOGGLE,
function (e) {
["A", "AREA"].includes(this.tagName) && e.preventDefault(),
isDisabled(this) || Tab.getOrCreateInstance(this).show();
},
),
defineJQueryPlugin(Tab);
const NAME = "toast",
DATA_KEY = "bs.toast",
EVENT_KEY = ".bs.toast",
EVENT_MOUSEOVER = "mouseover.bs.toast",
EVENT_MOUSEOUT = "mouseout.bs.toast",
EVENT_FOCUSIN = "focusin.bs.toast",
EVENT_FOCUSOUT = "focusout.bs.toast",
EVENT_HIDE = "hide.bs.toast",
EVENT_HIDDEN = "hidden.bs.toast",
EVENT_SHOW = "show.bs.toast",
EVENT_SHOWN = "shown.bs.toast",
CLASS_NAME_FADE = "fade",
CLASS_NAME_HIDE = "hide",
CLASS_NAME_SHOW = "show",
CLASS_NAME_SHOWING = "showing",
DefaultType = { animation: "boolean", autohide: "boolean", delay: "number" },
Default = { animation: !0, autohide: !0, delay: 5e3 };
class Toast extends BaseComponent {
constructor(e, t) {
super(e),
(this._config = this._getConfig(t)),
(this._timeout = null),
(this._hasMouseInteraction = !1),
(this._hasKeyboardInteraction = !1),
this._setListeners();
}
static get DefaultType() {
return DefaultType;
}
static get Default() {
return Default;
}
static get NAME() {
return NAME;
}
show() {
EventHandler.trigger(this._element, EVENT_SHOW).defaultPrevented ||
(this._clearTimeout(),
this._config.animation && this._element.classList.add("fade"),
this._element.classList.remove("hide"),
reflow(this._element),
this._element.classList.add("show"),
this._element.classList.add("showing"),
this._queueCallback(
() => {
this._element.classList.remove("showing"),
EventHandler.trigger(this._element, EVENT_SHOWN),
this._maybeScheduleHide();
},
this._element,
this._config.animation,
));
}
hide() {
this._element.classList.contains("show") &&
(EventHandler.trigger(this._element, EVENT_HIDE).defaultPrevented ||
(this._element.classList.add("showing"),
this._queueCallback(
() => {
this._element.classList.add("hide"),
this._element.classList.remove("showing"),
this._element.classList.remove("show"),
EventHandler.trigger(this._element, EVENT_HIDDEN);
},
this._element,
this._config.animation,
)));
}
dispose() {
this._clearTimeout(),
this._element.classList.contains("show") &&
this._element.classList.remove("show"),
super.dispose();
}
_getConfig(e) {
return (
(e = {
...Default,
...Manipulator.getDataAttributes(this._element),
...("object" == typeof e && e ? e : {}),
}),
typeCheckConfig(NAME, e, this.constructor.DefaultType),
e
);
}
_maybeScheduleHide() {
this._config.autohide &&
(this._hasMouseInteraction ||
this._hasKeyboardInteraction ||
(this._timeout = setTimeout(() => {
this.hide();
}, this._config.delay)));
}
_onInteraction(e, t) {
switch (e.type) {
case "mouseover":
case "mouseout":
this._hasMouseInteraction = t;
break;
case "focusin":
case "focusout":
this._hasKeyboardInteraction = t;
}
if (t) return void this._clearTimeout();
const i = e.relatedTarget;
this._element === i ||
this._element.contains(i) ||
this._maybeScheduleHide();
}
_setListeners() {
EventHandler.on(this._element, EVENT_MOUSEOVER, (e) =>
this._onInteraction(e, !0),
),
EventHandler.on(this._element, EVENT_MOUSEOUT, (e) =>
this._onInteraction(e, !1),
),
EventHandler.on(this._element, EVENT_FOCUSIN, (e) =>
this._onInteraction(e, !0),
),
EventHandler.on(this._element, EVENT_FOCUSOUT, (e) =>
this._onInteraction(e, !1),
);
}
_clearTimeout() {
clearTimeout(this._timeout), (this._timeout = null);
}
static jQueryInterface(e) {
return this.each(function () {
const t = Toast.getOrCreateInstance(this, e);
if ("string" == typeof e) {
if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
t[e](this);
}
});
}
}
enableDismissTrigger(Toast), defineJQueryPlugin(Toast);
export {
Alert,
Button,
Carousel,
Collapse,
Dropdown,
Modal,
Offcanvas,
Popover,
ScrollSpy,
Tab,
Toast,
Tooltip,
};
//# sourceMappingURL=bootstrap.esm.min.js.map