bootstrap-vue-3
Version:
Early (but lovely) implementation of Vue 3, Bootstrap 5 and Typescript
1,402 lines (1,401 loc) • 214 kB
JavaScript
var ol = Object.defineProperty;
var sl = (e, t, a) => t in e ? ol(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
var fe = (e, t, a) => (sl(e, typeof t != "symbol" ? t + "" : t, a), a);
import { computed as u, Comment as rl, reactive as Ie, inject as Fe, onMounted as ge, onBeforeUnmount as ot, ref as W, toRef as o, onActivated as Ft, watch as re, nextTick as Oe, defineComponent as A, provide as Me, openBlock as d, createElementBlock as b, unref as s, normalizeClass as F, renderSlot as y, createBlock as z, resolveDynamicComponent as J, withCtx as L, createElementVNode as H, withDirectives as Ke, createTextVNode as Y, toDisplayString as q, createVNode as be, Fragment as le, createCommentVNode as M, normalizeStyle as ze, useSlots as He, mergeProps as U, getCurrentInstance as il, renderList as ie, resolveComponent as Ot, normalizeProps as Ce, h as Q, Transition as ul, onUnmounted as dl, isReactive as cl, useAttrs as sa, withModifiers as st, isRef as Je, vModelCheckbox as fl, vModelRadio as vl, vModelSelect as bl, guardReactiveProps as Ve, Teleport as ml, createSlots as ra } from "vue";
import { Collapse as gl, Popover as $t, Tooltip as gt, Alert as pl, Carousel as hl, Dropdown as yl, Modal as Bl, Offcanvas as $l } from "bootstrap";
const kl = (e) => u(
() => e.value === "center" ? "justify-content-center" : e.value === "end" ? "justify-content-end" : "justify-content-start"
), rt = (e, t) => Object.keys(e).filter((a) => !t.includes(a)).reduce((a, l) => ({ ...a, [l]: e[l] }), {}), Ee = () => ({ enumerable: !0, configurable: !1, writable: !1 }), at = (e) => Array.isArray(e) ? e.map((t) => at(t)) : e instanceof Date ? new Date(e.getTime()) : e && typeof e == "object" ? Object.getOwnPropertyNames(e).reduce((t, a) => {
var l;
return Object.defineProperty(t, a, (l = Object.getOwnPropertyDescriptor(e, a)) != null ? l : {}), t[a] = at(e[a]), t;
}, Object.create(Object.getPrototypeOf(e))) : e, kt = (e) => new Promise((t) => t(at(e)));
class it {
constructor(t, a = {}) {
fe(this, "cancelable", !0);
fe(this, "componentId", null);
fe(this, "defaultPrevented", !1);
fe(this, "nativeEvent", null);
fe(this, "preventDefault");
fe(this, "relatedTarget", null);
fe(this, "target", null);
fe(this, "eventType", "");
fe(this, "vueTarget", null);
if (!t)
throw new TypeError(
`Failed to construct '${this.constructor.name}'. 1 argument required, ${arguments.length} given.`
);
Object.assign(this, it.Defaults, this.constructor.Defaults, a, { eventType: t }), Object.defineProperties(this, {
type: Ee(),
cancelable: Ee(),
nativeEvent: Ee(),
target: Ee(),
relatedTarget: Ee(),
vueTarget: Ee(),
componentId: Ee()
});
let l = !1;
this.preventDefault = function() {
this.cancelable && (l = !0);
}, Object.defineProperty(this, "defaultPrevented", {
enumerable: !0,
get() {
return l;
}
});
}
static get Defaults() {
return {
eventType: "",
cancelable: !0,
nativeEvent: null,
target: null,
relatedTarget: null,
vueTarget: null,
componentId: null
};
}
}
const Sl = (e) => e !== null && typeof e == "object", ia = (e) => /^[0-9]*\.?[0-9]+$/.test(String(e)), ua = (e) => Object.prototype.toString.call(e) === "[object Object]", da = /_/g, ca = /([a-z])([A-Z])/g, Cl = /(\s|^)(\w)/g, wl = /(\s|^)(\w)/, Ze = /\s+/, Tl = /^#/, Vl = /^#[A-Za-z]+[\w\-:.]*$/, St = (e, t = 2) => typeof e == "string" ? e : e == null ? "" : Array.isArray(e) || ua(e) && e.toString === Object.prototype.toString ? JSON.stringify(e, null, t) : String(e), Rt = (e) => e.replace(da, " ").replace(ca, (t, a, l) => `${a} ${l}`).replace(wl, (t, a, l) => a + l.toUpperCase()), jt = (e) => e.replace(da, " ").replace(ca, (t, a, l) => `${a} ${l}`).replace(Cl, (t, a, l) => a + l.toUpperCase()), _l = (e) => {
const t = e.trim();
return t.charAt(0).toUpperCase() + t.slice(1);
}, pt = (e) => `\\${e}`, xl = (e) => {
e = St(e);
const { length: t } = e, a = e.charCodeAt(0);
return e.split("").reduce((l, n, i) => {
const c = e.charCodeAt(i);
return c === 0 ? `${l}\uFFFD` : c === 127 || c >= 1 && c <= 31 || i === 0 && c >= 48 && c <= 57 || i === 1 && c >= 48 && c <= 57 && a === 45 ? l + pt(`${c.toString(16)} `) : i === 0 && c === 45 && t === 1 ? l + pt(n) : c >= 128 || c === 45 || c === 95 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 ? l + n : l + pt(n);
}, "");
}, fa = typeof window < "u", va = typeof document < "u", Al = typeof navigator < "u", Il = fa && va && Al, ba = va ? document : {}, Pe = (e) => !!(e && e.nodeType === Node.ELEMENT_NODE), Fl = (e) => Pe(e) ? e.getBoundingClientRect() : null, Ol = (e = []) => {
const { activeElement: t } = document;
return t && !e.some((a) => a === t) ? t : null;
}, zl = (e) => Pe(e) && e === Ol(), Pl = (e, t = {}) => {
try {
e.focus(t);
} catch (a) {
console.error(a);
}
return zl(e);
}, Nl = (e, t) => t && Pe(e) && e.getAttribute(t) || null, Ll = (e) => {
if (Nl(e, "display") === "none")
return !1;
const t = Fl(e);
return !!(t && t.height > 0 && t.width > 0);
}, Mt = (e, t) => !e || e(t).filter((a) => a.type !== rl).length < 1, El = (e, t) => (Pe(t) ? t : ba).querySelector(e) || null, Hl = (e, t) => Array.from([(Pe(t) ? t : ba).querySelectorAll(e)]), ma = (e, t) => t && Pe(e) ? e.getAttribute(t) : null, Dl = (e, t, a) => {
t && Pe(e) && e.setAttribute(t, a);
}, ql = (e, t) => {
t && Pe(e) && e.removeAttribute(t);
}, Rl = (e, t) => St(e).toLowerCase() === St(t).toLowerCase(), Ye = fa ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame || ((e) => setTimeout(e, 16)) : (e) => setTimeout(e, 0), ut = (e, t, a) => t.concat(["sm", "md", "lg", "xl", "xxl"]).reduce((l, n) => (l[e ? `${e}${n.charAt(0).toUpperCase() + n.slice(1)}` : n] = a, l), /* @__PURE__ */ Object.create(null)), ga = (e, t, a, l = a) => Object.keys(t).reduce((n, i) => (e[i] && n.push(
[l, i.replace(a, ""), e[i]].filter((c) => c && typeof c != "boolean").join("-").toLowerCase()
), n), []), Ae = (e = "") => `__BVID__${Math.random().toString().slice(2, 8)}___BV_${e}__`, dt = (e, t) => e === !0 || e === "true" || e === "" ? "true" : e === "grammar" || e === "spelling" ? e : t === !1 ? "true" : e === !1 || e === "false" ? "false" : void 0, ht = (e) => !!e && typeof e == "object" && e.constructor === Object, Ct = (e, t, a = !0) => {
const l = e instanceof Date && typeof e.getMonth == "function" ? new Date(e.getTime()) : Object.assign({}, e);
return ht(e) && ht(t) && Object.keys(t).forEach((n) => {
ht(t[n]) ? n in e ? l[n] = Ct(e[n], t[n], a) : Object.assign(l, { [n]: t[n] }) : Array.isArray(t[n]) && Array.isArray(e[n]) ? Object.assign(l, {
[n]: a ? e[n].concat(
t[n].filter((i) => !e[n].includes(i))
) : t[n]
}) : Object.assign(l, { [n]: t[n] });
}), l;
}, ke = (e, t = {}, a = {}) => {
const l = [e];
let n;
for (let i = 0; i < l.length && !n; i++) {
const c = l[i];
n = a[c];
}
return n && typeof n == "function" ? n(t) : n;
}, je = (e, t = NaN) => Number.isInteger(e) ? e : t, jl = (e, t = NaN) => {
const a = parseInt(e, 10);
return Number.isNaN(a) ? t : a;
}, zt = (e, t = NaN) => {
const a = Number.parseFloat(e.toString());
return Number.isNaN(a) ? t : a;
}, Gt = (e, t) => t + (e ? _l(e) : ""), Pt = (e, t) => (Array.isArray(t) ? t.slice() : Object.keys(t)).reduce(
(a, l) => (a[l] = e[l], a),
{}
), Ml = (e) => typeof e == "boolean" ? e : e === "" ? !0 : e === "true", We = (e) => !!(e.href || e.to);
function r(e) {
return u(() => e.value === void 0 ? void 0 : Ml(e.value));
}
const pa = Symbol(), ha = {
items: Ie([]),
reset() {
this.items = Ie([]);
}
}, Gl = (e) => {
e.provide(pa, ha);
}, Ul = () => {
const e = Fe(pa);
return e || ha;
}, ve = (e, t, a) => {
ge(() => {
var l;
(l = e == null ? void 0 : e.value) == null || l.addEventListener(t, a);
}), ot(() => {
var l;
(l = e == null ? void 0 : e.value) == null || l.removeEventListener(t, a);
});
}, ya = (e) => u(() => ({
"form-check": !e.plain && !e.button,
"form-check-inline": e.inline,
"form-switch": e.switch,
[`form-control-${e.size}`]: e.size && e.size !== "md"
})), Ba = (e) => u(() => ({
"form-check-input": !e.plain && !e.button,
"is-valid": e.state === !0,
"is-invalid": e.state === !1,
"btn-check": e.button
})), $a = (e) => u(() => ({
"form-check-label": !e.plain && !e.button,
btn: e.button,
[`btn-${e.buttonVariant}`]: e.button,
[`btn-${e.size}`]: e.button && e.size && e.size !== "md"
})), ka = (e) => u(() => {
var t;
return {
"aria-invalid": dt(e.ariaInvalid, e.state),
"aria-required": ((t = e.required) == null ? void 0 : t.toString()) === "true" ? "true" : null
};
}), Sa = (e) => u(() => ({
"was-validated": e.validated,
"btn-group": e.buttons && !e.stacked,
"btn-group-vertical": e.stacked,
[`btn-group-${e.size}`]: e.size
})), lt = (e, t, a) => e.reduce(
(l, n) => n.type.toString() === "Symbol(Fragment)" ? l.concat(n.children) : l.concat([n]),
[]
).filter((l) => (l.type.__name || l.type.name) === t).map((l) => {
const n = (l.children.default ? l.children.default() : []).find(
(i) => i.type.toString() === "Symbol(Text)"
);
return {
props: {
disabled: a,
...l.props
},
text: n ? n.children : ""
};
}), Ca = (e, t) => typeof e == "string" ? {
props: {
value: e,
disabled: t.disabled
},
text: e
} : {
props: {
value: e[t.valueField],
disabled: t.disabled || e[t.disabledField],
...e.props
},
text: e[t.textField],
html: e[t.htmlField]
}, wa = (e, t, a, l, n) => ({
...e,
props: {
"button-variant": a.buttonVariant,
form: a.form,
name: l.value,
id: `${n.value}_option_${t}`,
button: a.buttons,
state: a.state,
plain: a.plain,
size: a.size,
inline: !a.stacked,
required: a.required,
...e.props
}
}), he = (e, t) => u(() => (e == null ? void 0 : e.value) || Ae(t)), Ta = {
ariaInvalid: {
type: [Boolean, String],
default: void 0
},
autocomplete: { type: String, required: !1 },
autofocus: { type: Boolean, default: !1 },
disabled: { type: Boolean, default: !1 },
form: { type: String, required: !1 },
formatter: { type: Function, required: !1 },
id: { type: String, required: !1 },
lazy: { type: Boolean, default: !1 },
lazyFormatter: { type: Boolean, default: !1 },
list: { type: String, required: !1 },
modelValue: { type: [String, Number], default: "" },
name: { type: String, required: !1 },
number: { type: Boolean, default: !1 },
placeholder: { type: String, required: !1 },
plaintext: { type: Boolean, default: !1 },
readonly: { type: Boolean, default: !1 },
required: { type: Boolean, default: !1 },
size: { type: String, required: !1 },
state: { type: Boolean, default: null },
trim: { type: Boolean, default: !1 }
}, Va = (e, t) => {
const a = W();
let l = null, n = !0;
const i = he(o(e, "id"), "input"), c = (h, C, B = !1) => (h = String(h), typeof e.formatter == "function" && (!e.lazyFormatter || B) ? (n = !1, e.formatter(h, C)) : h), f = (h) => e.trim ? h.trim() : e.number ? Number.parseFloat(h) : h, v = () => {
Oe(() => {
var h;
e.autofocus && ((h = a.value) == null || h.focus());
});
};
ge(v), ge(() => {
a.value && (a.value.value = e.modelValue);
}), Ft(v);
const m = u(
() => {
var h;
return dt(e.ariaInvalid, (h = e.state) != null ? h : void 0);
}
), g = (h) => {
const { value: C } = h.target, B = c(C, h);
if (B === !1 || h.defaultPrevented) {
h.preventDefault();
return;
}
if (e.lazy)
return;
const O = f(B);
e.modelValue !== O && (l = C, t("update:modelValue", O)), t("input", B);
}, $ = (h) => {
const { value: C } = h.target, B = c(C, h);
if (B === !1 || h.defaultPrevented) {
h.preventDefault();
return;
}
if (!e.lazy)
return;
l = C, t("update:modelValue", B);
const O = f(B);
e.modelValue !== O && t("change", B);
}, p = (h) => {
if (t("blur", h), !e.lazy && !e.lazyFormatter)
return;
const { value: C } = h.target, B = c(C, h, !0);
l = C, t("update:modelValue", B);
}, k = () => {
var h;
e.disabled || (h = a.value) == null || h.focus();
}, V = () => {
var h;
e.disabled || (h = a.value) == null || h.blur();
};
return re(
() => e.modelValue,
(h) => {
!a.value || (a.value.value = l && n ? l : h, l = null, n = !0);
}
), {
input: a,
computedId: i,
computedAriaInvalid: m,
onInput: g,
onChange: $,
onBlur: p,
focus: k,
blur: V
};
}, Re = (e, t) => {
if (!e)
return e;
if (t in e)
return e[t];
const a = t.split(".");
return Re(e[a[0]], a.splice(1).join("."));
}, yt = (e, t = null, a, l) => {
if (Object.prototype.toString.call(e) === "[object Object]") {
const n = Re(e, l.valueField), i = Re(e, l.textField), c = Re(e, l.htmlField), f = Re(e, l.disabledField), v = e[l.optionsField] || null;
return v !== null ? {
label: String(Re(e, l.labelField) || i),
options: Nt(v, a, l)
} : {
value: typeof n > "u" ? t || i : n,
text: String(typeof i > "u" ? t : i),
html: c,
disabled: Boolean(f)
};
}
return {
value: t || e,
text: String(e),
disabled: !1
};
}, Nt = (e, t, a) => Array.isArray(e) ? e.map((l) => yt(l, null, t, a)) : Object.prototype.toString.call(e) === "[object Object]" ? (console.warn(
`[BootstrapVue warn]: ${t} - Setting prop "options" to an object is deprecated. Use the array format instead.`
), Object.keys(e).map((l) => {
const n = e[l];
switch (typeof n) {
case "object":
return yt(n.text, String(n.value), t, a);
default:
return yt(n, String(l), t, a);
}
})) : [], Wl = ["id"], _a = Symbol(), Xl = /* @__PURE__ */ A({
__name: "BAccordion",
props: {
flush: { default: !1 },
free: { default: !1 },
id: null
},
setup(e) {
const t = e, a = he(o(t, "id"), "accordion"), l = r(o(t, "flush")), n = r(o(t, "free")), i = u(() => ({
"accordion-flush": l.value
}));
return n.value || Me(_a, a.value.toString()), (c, f) => (d(), b("div", {
id: s(a),
class: F(["accordion", s(i)])
}, [
y(c.$slots, "default")
], 10, Wl));
}
}), xa = /* @__PURE__ */ A({
__name: "BCollapse",
props: {
accordion: null,
id: { default: Ae() },
modelValue: { default: !1 },
tag: { default: "div" },
toggle: { default: !1 },
visible: { default: !1 },
isNav: { default: !1 }
},
emits: ["update:modelValue", "show", "shown", "hide", "hidden"],
setup(e, { emit: t }) {
const a = e, l = r(o(a, "modelValue")), n = r(o(a, "toggle")), i = r(o(a, "visible")), c = r(o(a, "isNav")), f = W(), v = W(), m = u(() => ({
show: l.value,
"navbar-collapse": c.value
})), g = () => t("update:modelValue", !1);
return ve(f, "show.bs.collapse", () => {
t("show"), t("update:modelValue", !0);
}), ve(f, "hide.bs.collapse", () => {
t("hide"), t("update:modelValue", !1);
}), ve(f, "shown.bs.collapse", () => t("shown")), ve(f, "hidden.bs.collapse", () => t("hidden")), ge(() => {
var $;
v.value = new gl(f.value, {
parent: a.accordion ? `#${a.accordion}` : void 0,
toggle: n.value
}), (i.value || l.value) && (t("update:modelValue", !0), ($ = v.value) == null || $.show());
}), re(
() => l.value,
($) => {
var p, k;
$ ? (p = v.value) == null || p.show() : (k = v.value) == null || k.hide();
}
), re(
() => i.value,
($) => {
var p, k;
$ ? (t("update:modelValue", !!$), (p = v.value) == null || p.show()) : (t("update:modelValue", !!$), (k = v.value) == null || k.hide());
}
), ($, p) => (d(), z(J(e.tag), {
id: e.id,
ref_key: "element",
ref: f,
class: F(["collapse", s(m)]),
"data-bs-parent": e.accordion || null,
"is-nav": s(c)
}, {
default: L(() => [
y($.$slots, "default", {
visible: s(l),
close: g
})
]),
_: 3
}, 8, ["id", "class", "data-bs-parent", "is-nav"]));
}
}), Kl = {
mounted(e, t) {
let a = t.value;
Object.keys(t.modifiers).length > 0 && ([a] = Object.keys(t.modifiers)), e.setAttribute("data-bs-toggle", "modal"), e.setAttribute("data-bs-target", `#${a}`);
}
}, Jl = {
mounted(e, t) {
let a = "right";
const l = [];
t.modifiers.left ? a = "left" : t.modifiers.right ? a = "right" : t.modifiers.bottom ? a = "bottom" : t.modifiers.top && (a = "top"), t.modifiers.manual ? l.push("manual") : (t.modifiers.click && l.push("click"), t.modifiers.hover && l.push("hover"), t.modifiers.focus && l.push("focus")), e.setAttribute("data-bs-toggle", "popover"), new $t(e, {
trigger: l.length === 0 ? "click" : l.join(" "),
placement: a,
content: t.value
});
},
unmounted(e) {
const t = $t.getInstance(e);
t == null || t.dispose();
}
}, Yl = (e) => {
if (e.classList.contains("offcanvas"))
return "offcanvas";
if (e.classList.contains("collapse"))
return "collapse";
throw Error("Couldn't resolve toggle type");
}, Zl = (e, t) => {
const { modifiers: a, arg: l, value: n } = e, i = Object.keys(a || {}), c = typeof n == "string" ? n.split(Ze) : n;
if (Rl(t.tagName, "a")) {
const f = ma(t, "href") || "";
Vl.test(f) && i.push(f.replace(Tl, ""));
}
return Array.prototype.concat.apply([], [l, c]).forEach((f) => typeof f == "string" && i.push(f)), i.filter((f, v, m) => f && m.indexOf(f) === v);
}, Lt = {
mounted(e, t) {
const a = Zl(t, e), l = [];
let n = "data-bs-target";
e.tagName === "a" && (n = "href");
for (let i = 0; i < a.length; i++) {
const c = a[i], f = document.getElementById(c);
f && (e.setAttribute("data-bs-toggle", Yl(f)), l.push(`#${c}`));
}
l.length > 0 && e.setAttribute(n, l.join(","));
}
}, Ql = (e, t) => {
if (t != null && t.trigger)
return t.trigger;
if (e.manual)
return "manual";
const a = [];
return e.click && a.push("click"), e.hover && a.push("hover"), e.focus && a.push("focus"), a.length > 0 ? a.join(" ") : "hover focus";
}, en = (e, t) => t != null && t.placement ? t.placement : e.left ? "left" : e.right ? "right" : e.bottom ? "bottom" : "top", tn = (e) => e != null && e.delay ? e.delay : 0, Ut = (e) => typeof e == "object" ? e == null ? void 0 : e.title : e, an = {
beforeMount(e, t) {
e.setAttribute("data-bs-toggle", "tooltip"), e.getAttribute("title") || e.setAttribute("title", Ut(t.value).toString());
const a = /<("[^"]*"|'[^']*'|[^'">])*>/.test(e.title), l = Ql(t.modifiers, t.value), n = en(t.modifiers, t.value), i = tn(t.value), c = e.getAttribute("title");
new gt(e, {
trigger: l,
placement: n,
delay: i,
html: a
}), c && e.setAttribute("data-bs-original-title", c);
},
updated(e, t) {
e.getAttribute("title") || e.setAttribute("title", Ut(t.value).toString());
const a = e.getAttribute("title"), l = e.getAttribute("data-bs-original-title"), n = gt.getInstance(e);
e.removeAttribute("title"), a && a !== l && (n == null || n.setContent({ ".tooltip-inner": a }), e.setAttribute("data-bs-original-title", a));
},
unmounted(e) {
const t = gt.getInstance(e);
t == null || t.dispose();
}
}, Qe = /* @__PURE__ */ new Map(), Aa = (e) => {
if (Qe.has(e)) {
const t = Qe.get(e);
t && t.stop && t.stop(), Qe.delete(e);
}
}, Wt = (e, t) => {
const a = {
margin: "0px",
once: !1,
callback: t.value
};
Object.keys(t.modifiers).forEach((n) => {
Number.isInteger(n) ? a.margin = `${n}px` : n.toLowerCase() === "once" && (a.once = !0);
}), Aa(e);
const l = new nn(
e,
a.margin,
a.once,
a.callback,
t.instance
);
Qe.set(e, l);
}, ln = {
beforeMount(e, t) {
Wt(e, t);
},
updated(e, t) {
Wt(e, t);
},
unmounted(e) {
Aa(e);
}
};
class nn {
constructor(t, a, l, n, i) {
fe(this, "element");
fe(this, "margin");
fe(this, "once");
fe(this, "callback");
fe(this, "instance");
fe(this, "observer");
fe(this, "doneOnce");
fe(this, "visible");
this.element = t, this.margin = a, this.once = l, this.callback = n, this.instance = i, this.createObserver();
}
createObserver() {
if (this.observer && this.stop(), !(this.doneOnce || typeof this.callback != "function")) {
try {
this.observer = new IntersectionObserver(this.handler.bind(this), {
root: null,
rootMargin: this.margin,
threshold: 0
});
} catch {
console.error("Intersection Observer not supported"), this.doneOnce = !0, this.observer = void 0, this.callback(null);
return;
}
this.instance.$nextTick(() => {
this.observer && this.observer.observe(this.element);
});
}
}
handler(t) {
const [a] = t, l = Boolean(a.isIntersecting || a.intersectionRatio > 0);
l !== this.visible && (this.visible = l, this.callback(l), this.once && this.visible && (this.doneOnce = !0, this.stop()));
}
stop() {
this.observer && this.observer.disconnect(), this.observer = null;
}
}
const on = {
mounted(e, t) {
t.value !== !1 && e.focus();
}
}, sn = {
BModal: Kl,
BPopover: Jl,
BToggle: Lt,
BTooltip: an,
BVisible: ln,
focus: on
}, rn = { class: "accordion-item" }, un = ["id"], dn = ["aria-expanded", "aria-controls"], cn = { class: "accordion-body" }, fn = /* @__PURE__ */ A({
__name: "BAccordionItem",
props: {
id: null,
title: null,
visible: { default: !1 }
},
setup(e) {
const t = e, a = r(o(t, "visible")), l = he(o(t, "id"), "accordion_item"), n = Fe(_a, "");
return (i, c) => (d(), b("div", rn, [
H("h2", {
id: `${s(l)}heading`,
class: "accordion-header"
}, [
Ke((d(), b("button", {
class: F(["accordion-button", { collapsed: !s(a) }]),
type: "button",
"aria-expanded": s(a) ? "true" : "false",
"aria-controls": s(l)
}, [
y(i.$slots, "title", {}, () => [
Y(q(e.title), 1)
])
], 10, dn)), [
[s(Lt), void 0, s(l)]
])
], 8, un),
be(xa, {
id: s(l),
class: "accordion-collapse",
visible: s(a),
accordion: s(n),
"aria-labelledby": `heading${s(l)}`
}, {
default: L(() => [
H("div", cn, [
y(i.$slots, "default")
])
]),
_: 3
}, 8, ["id", "visible", "accordion", "aria-labelledby"])
]));
}
}), vn = ["type", "disabled", "aria-label"], Ge = /* @__PURE__ */ A({
__name: "BCloseButton",
props: {
ariaLabel: { default: "Close" },
disabled: { default: !1 },
white: { default: !1 },
type: { default: "button" }
},
emits: ["click"],
setup(e, { emit: t }) {
const a = e, l = r(o(a, "disabled")), n = r(o(a, "white")), i = u(() => ({
"btn-close-white": n.value
}));
return (c, f) => (d(), b("button", {
type: e.type,
class: F(["btn-close", s(i)]),
disabled: s(l),
"aria-label": e.ariaLabel,
onClick: f[0] || (f[0] = (v) => t("click", v))
}, null, 10, vn));
}
}), bn = /* @__PURE__ */ A({
__name: "BAlert",
props: {
dismissLabel: { default: "Close" },
dismissible: { default: !1 },
fade: { default: !1 },
modelValue: { type: [Boolean, Number], default: !1 },
show: { default: !1 },
variant: { default: "info" }
},
emits: ["closed", "close-count-down", "update:modelValue"],
setup(e, { emit: t }) {
const a = e, l = r(o(a, "dismissible"));
r(o(a, "fade"));
const n = r(o(a, "show")), i = W(null), c = W(), f = u(() => ({
[`alert-${a.variant}`]: !!a.variant,
show: !!a.modelValue,
"alert-dismissible": l.value,
fade: !!a.modelValue
}));
let v;
const m = (C) => {
if (typeof C == "boolean")
return 0;
const B = je(C, 0);
return B > 0 ? B : 0;
}, g = () => {
v !== void 0 && (clearTimeout(v), v = void 0);
}, $ = W(m(a.modelValue)), p = u(() => !!a.modelValue || n.value);
ot(() => {
var C;
g(), (C = c.value) == null || C.dispose(), c.value = void 0;
});
const k = u(() => a.modelValue === !0 ? !0 : a.modelValue === !1 || je(a.modelValue, 0) < 1 ? !1 : !!a.modelValue), V = () => {
$.value = m(a.modelValue), (k.value || n.value) && !c.value && (c.value = new pl(i.value));
}, h = () => {
typeof a.modelValue == "boolean" ? t("update:modelValue", !1) : t("update:modelValue", 0), t("closed");
};
return re(() => a.modelValue, V), re(() => n.value, V), re($, (C) => {
g(), typeof a.modelValue != "boolean" && (t("close-count-down", C), C === 0 && a.modelValue > 0 && t("closed"), a.modelValue !== C && t("update:modelValue", C), C > 0 && (v = setTimeout(() => {
$.value--;
}, 1e3)));
}), (C, B) => s(p) ? (d(), b("div", {
key: 0,
ref_key: "element",
ref: i,
class: F(["alert", s(f)]),
role: "alert"
}, [
y(C.$slots, "default"),
s(l) ? (d(), b(le, { key: 0 }, [
C.$slots.close ? (d(), b("button", {
key: 0,
type: "button",
"data-bs-dismiss": "alert",
onClick: h
}, [
y(C.$slots, "close")
])) : (d(), z(Ge, {
key: 1,
"aria-label": e.dismissLabel,
"data-bs-dismiss": "alert",
onClick: h
}, null, 8, ["aria-label"]))
], 64)) : M("", !0)
], 2)) : M("", !0);
}
}), Ia = Symbol(), mn = /* @__PURE__ */ A({
__name: "BAvatarGroup",
props: {
overlap: { default: 0.3 },
rounded: { type: [Boolean, String], default: !1 },
size: null,
square: { default: !1 },
tag: { default: "div" },
variant: null
},
setup(e) {
const t = e, a = r(o(t, "square")), l = u(() => wt(t.size)), n = (f) => typeof f == "string" && ia(f) ? zt(f, 0) : f || 0, i = u(
() => Math.min(Math.max(n(t.overlap), 0), 1) / 2
), c = u(() => {
const f = l.value ? `calc(${l.value} * ${i.value})` : null;
return f ? { paddingLeft: f, paddingRight: f } : {};
});
return Me(Ia, {
overlapScale: i,
size: t.size,
square: a.value,
rounded: t.rounded,
variant: t.variant
}), (f, v) => (d(), z(J(e.tag), {
class: "b-avatar-group",
role: "group"
}, {
default: L(() => [
H("div", {
class: "b-avatar-group-inner",
style: ze(s(c))
}, [
y(f.$slots, "default")
], 4)
]),
_: 3
}));
}
}), gn = {
key: 0,
class: "b-avatar-custom"
}, pn = {
key: 1,
class: "b-avatar-img"
}, hn = ["src", "alt"], wt = (e) => {
const t = typeof e == "string" && ia(e) ? zt(e, 0) : e;
return typeof t == "number" ? `${t}px` : t || null;
}, yn = /* @__PURE__ */ A({
__name: "BAvatar",
props: {
alt: { default: "avatar" },
ariaLabel: null,
badge: { type: [Boolean, String], default: !1 },
badgeLeft: { default: !1 },
badgeOffset: null,
badgeTop: { default: !1 },
badgeVariant: { default: "primary" },
button: { default: !1 },
buttonType: { default: "button" },
disabled: { default: !1 },
icon: null,
rounded: { type: [Boolean, String], default: "circle" },
size: null,
square: { default: !1 },
src: null,
text: null,
textVariant: { default: void 0 },
variant: { default: "secondary" }
},
emits: ["click", "img-error"],
setup(e, { emit: t }) {
const a = e, l = r(o(a, "badgeLeft")), n = r(o(a, "badgeTop")), i = r(o(a, "button")), c = r(o(a, "disabled")), f = r(o(a, "square")), v = He(), m = ["sm", null, "lg"], g = 0.4, $ = g * 0.7, p = Fe(Ia, null), k = (ee) => {
const Z = ee;
return Z === "light" || Z === "warning" ? "dark" : "light";
}, V = u(() => !Mt(v.default)), h = u(() => !Mt(v.badge)), C = u(
() => a.badge || a.badge === "" || h.value
), B = u(
() => p != null && p.size ? p.size : wt(a.size)
), O = u(
() => p != null && p.variant ? p.variant : a.variant
), N = u(
() => p != null && p.rounded ? p.rounded : a.rounded
), T = u(() => ({
type: i.value ? a.buttonType : void 0,
"aria-label": a.ariaLabel || null,
disabled: c.value || null
})), x = u(() => ({
[`bg-${a.badgeVariant}`]: !!a.badgeVariant
})), I = u(() => a.badge === !0 ? "" : a.badge), j = u(() => `text-${k(a.badgeVariant)}`), _ = u(() => ({
[`b-avatar-${a.size}`]: !!a.size && m.indexOf(wt(a.size)) !== -1,
[`bg-${O.value}`]: !!O.value,
badge: !i.value && O.value && V.value,
rounded: N.value === "" || N.value === !0,
["rounded-circle"]: !f.value && N.value === "circle",
["rounded-0"]: f.value || N.value === "0",
["rounded-1"]: !f.value && N.value === "sm",
["rounded-3"]: !f.value && N.value === "lg",
["rounded-top"]: !f.value && N.value === "top",
["rounded-bottom"]: !f.value && N.value === "bottom",
["rounded-start"]: !f.value && N.value === "left",
["rounded-end"]: !f.value && N.value === "right",
btn: i.value,
[`btn-${O.value}`]: i.value ? !!O.value : !1
})), w = u(() => `text-${a.textVariant || k(O.value)}`), D = u(() => {
const ee = a.badgeOffset || "0px";
return {
fontSize: (m.indexOf(B.value || null) === -1 ? `calc(${B.value} * ${$})` : "") || "",
top: n.value ? ee : "",
bottom: n.value ? "" : ee,
left: l.value ? ee : "",
right: l.value ? "" : ee
};
}), R = u(() => {
const ee = m.indexOf(B.value || null) === -1 ? `calc(${B.value} * ${g})` : null;
return ee ? { fontSize: ee } : {};
}), ne = u(() => {
var Be;
const ee = ((Be = p == null ? void 0 : p.overlapScale) == null ? void 0 : Be.value) || 0, Z = B.value && ee ? `calc(${B.value} * -${ee})` : null;
return Z ? { marginLeft: Z, marginRight: Z } : {};
}), ae = u(() => i.value ? "button" : "span"), K = u(() => ({
...ne.value,
width: B.value,
height: B.value
})), de = (ee) => {
!c.value && i.value && t("click", ee);
}, se = (ee) => t("img-error", ee);
return (ee, Z) => (d(), z(J(s(ae)), U({
class: ["b-avatar", s(_)],
style: s(K)
}, s(T), { onClick: de }), {
default: L(() => [
s(V) ? (d(), b("span", gn, [
y(ee.$slots, "default")
])) : e.src ? (d(), b("span", pn, [
H("img", {
src: e.src,
alt: e.alt,
onError: se
}, null, 40, hn)
])) : e.text ? (d(), b("span", {
key: 2,
class: F(["b-avatar-text", s(w)]),
style: ze(s(R))
}, q(e.text), 7)) : M("", !0),
s(C) ? (d(), b("span", {
key: 3,
class: F(["b-avatar-badge", s(x)]),
style: ze(s(D))
}, [
s(h) ? y(ee.$slots, "badge", { key: 0 }) : (d(), b("span", {
key: 1,
class: F(s(j))
}, q(s(I)), 3))
], 6)) : M("", !0)
]),
_: 3
}, 16, ["class", "style"]));
}
}), De = {
active: { type: [Boolean, String], default: !1 },
activeClass: { type: String, default: "router-link-active" },
append: { type: [Boolean, String], default: !1 },
disabled: { type: [Boolean, String], default: !1 },
event: { type: [String, Array], default: "click" },
exact: { type: [Boolean, String], default: !1 },
exactActiveClass: { type: String, default: "router-link-exact-active" },
href: { type: String },
rel: { type: String, default: null },
replace: { type: [Boolean, String], default: !1 },
routerComponentName: { type: String, default: "router-link" },
routerTag: { type: String, default: "a" },
target: { type: String, default: "_self" },
to: { type: [String, Object], default: null }
}, Bn = A({
props: De,
emits: ["click"],
setup(e, { emit: t, attrs: a }) {
const l = r(o(e, "active")), n = r(o(e, "append")), i = r(o(e, "disabled")), c = r(o(e, "exact")), f = r(o(e, "replace")), v = il(), m = W(null), g = u(() => {
const V = e.routerComponentName.split("-").map((C) => C.charAt(0).toUpperCase() + C.slice(1)).join("");
return !((v == null ? void 0 : v.appContext.app.component(V)) !== void 0) || i.value || !e.to ? "a" : e.routerComponentName;
}), $ = u(() => {
const V = "#";
if (e.href)
return e.href;
if (typeof e.to == "string")
return e.to || V;
const h = e.to;
if (Object.prototype.toString.call(h) === "[object Object]" && (h.path || h.query || h.hash)) {
const C = h.path || "", B = h.query ? `?${Object.keys(h.query).map((N) => `${N}=${h.query[N]}`).join("=")}` : "", O = !h.hash || h.hash.charAt(0) === "#" ? h.hash || "" : `#${h.hash}`;
return `${C}${B}${O}` || V;
}
return V;
}), p = u(() => ({
to: e.to,
href: $.value,
target: e.target,
rel: e.target === "_blank" && e.rel === null ? "noopener" : e.rel || null,
tabindex: i.value ? "-1" : typeof a.tabindex > "u" ? null : a.tabindex,
"aria-disabled": i.value ? "true" : null
}));
return {
tag: g,
routerAttr: p,
link: m,
clicked: (V) => {
if (i.value) {
V.preventDefault(), V.stopImmediatePropagation();
return;
}
t("click", V);
},
activeBoolean: l,
appendBoolean: n,
disabledBoolean: i,
replaceBoolean: f,
exactBoolean: c
};
}
}), ye = (e, t) => {
const a = e.__vccOpts || e;
for (const [l, n] of t)
a[l] = n;
return a;
};
function $n(e, t, a, l, n, i) {
return e.tag === "router-link" ? (d(), z(J(e.tag), U({ key: 0 }, e.routerAttr, { custom: "" }), {
default: L(({ href: c, navigate: f, isActive: v, isExactActive: m }) => [
(d(), z(J(e.routerTag), U({
ref: "link",
href: c,
class: [
(v || e.activeBoolean) && e.activeClass,
(m || e.exactBoolean) && e.exactActiveClass
]
}, e.$attrs, { onClick: f }), {
default: L(() => [
y(e.$slots, "default")
]),
_: 2
}, 1040, ["href", "class", "onClick"]))
]),
_: 3
}, 16)) : (d(), z(J(e.tag), U({
key: 1,
ref: "link",
class: { active: e.activeBoolean, disabled: e.disabledBoolean }
}, e.routerAttr, { onClick: e.clicked }), {
default: L(() => [
y(e.$slots, "default")
]),
_: 3
}, 16, ["class", "onClick"]));
}
const Se = /* @__PURE__ */ ye(Bn, [["render", $n]]), Xt = rt(De, ["event", "routerTag"]), kn = A({
components: { BLink: Se },
props: {
pill: { type: [Boolean, String], default: !1 },
tag: { type: String, default: "span" },
variant: { type: String, default: "secondary" },
textIndicator: { type: [Boolean, String], default: !1 },
dotIndicator: { type: [Boolean, String], default: !1 },
...Xt
},
setup(e) {
const t = u(() => We(e)), a = u(() => t.value ? Se : e.tag), l = r(o(e, "pill")), n = r(o(e, "textIndicator")), i = r(o(e, "dotIndicator"));
return {
classes: u(() => ({
[`bg-${e.variant}`]: e.variant,
active: e.active,
disabled: e.disabled,
"text-dark": ["warning", "info", "light"].includes(e.variant),
"rounded-pill": l.value,
"position-absolute top-0 start-100 translate-middle": n.value || i.value,
"p-2 border border-light rounded-circle": i.value,
"text-decoration-none": t.value
})),
props: t.value ? Pt(e, Xt) : {},
computedTag: a
};
}
});
function Sn(e, t, a, l, n, i) {
return d(), z(J(e.computedTag), U({
class: ["badge", e.classes]
}, e.props), {
default: L(() => [
y(e.$slots, "default")
]),
_: 3
}, 16, ["class"]);
}
const Cn = /* @__PURE__ */ ye(kn, [["render", Sn]]), Kt = rt(De, ["event", "routerTag"]), wn = A({
components: { BLink: Se },
props: {
...Kt,
active: { type: [Boolean, String], default: !1 },
ariaCurrent: { type: String, default: "location" },
disabled: { type: [Boolean, String], default: !1 },
text: { type: String, required: !1 }
},
emits: ["click"],
setup(e, { emit: t }) {
const a = r(o(e, "active")), l = r(o(e, "disabled")), n = u(() => ({
active: a.value
})), i = u(
() => a.value ? "span" : Se
), c = u(
() => a.value ? e.ariaCurrent : void 0
), f = (v) => {
if (l.value || a.value) {
v.preventDefault(), v.stopImmediatePropagation();
return;
}
l.value || t("click", v);
};
return {
props: i.value !== "span" ? Pt(e, Kt) : {},
liClasses: n,
computedTag: i,
computedAriaCurrent: c,
clicked: f
};
}
});
function Tn(e, t, a, l, n, i) {
return d(), b("li", {
class: F(["breadcrumb-item", e.liClasses])
}, [
(d(), z(J(e.computedTag), U({ "aria-current": e.computedAriaCurrent }, e.props, { onClick: e.clicked }), {
default: L(() => [
y(e.$slots, "default", {}, () => [
Y(q(e.text), 1)
])
]),
_: 3
}, 16, ["aria-current", "onClick"]))
], 2);
}
const Fa = /* @__PURE__ */ ye(wn, [["render", Tn]]), Vn = { "aria-label": "breadcrumb" }, _n = { class: "breadcrumb" }, xn = /* @__PURE__ */ A({
__name: "BBreadcrumb",
props: {
items: null
},
setup(e) {
const t = e, a = Ul(), l = u(() => {
const n = t.items || (a == null ? void 0 : a.items) || [];
let i = !1;
return n.map((f, v) => (typeof f == "string" && (f = { text: f }, v < n.length - 1 && (f.href = "#")), f.active && (i = !0), !f.active && !i && (f.active = v + 1 === n.length), f));
});
return (n, i) => (d(), b("nav", Vn, [
H("ol", _n, [
y(n.$slots, "prepend"),
(d(!0), b(le, null, ie(s(l), (c, f) => (d(), z(Fa, U({ key: f }, c), {
default: L(() => [
Y(q(c.text), 1)
]),
_: 2
}, 1040))), 128)),
y(n.$slots, "default"),
y(n.$slots, "append")
])
]));
}
}), An = {
key: 0,
class: "visually-hidden"
}, Et = /* @__PURE__ */ A({
__name: "BSpinner",
props: {
label: null,
role: { default: "status" },
small: { default: !1 },
tag: { default: "span" },
type: { default: "border" },
variant: null
},
setup(e) {
const t = e, a = r(o(t, "small")), l = u(() => ({
"spinner-border": t.type === "border",
"spinner-border-sm": t.type === "border" && a.value,
"spinner-grow": t.type === "grow",
"spinner-grow-sm": t.type === "grow" && a.value,
[`text-${t.variant}`]: t.variant !== void 0
}));
return (n, i) => (d(), z(J(e.tag), {
class: F(s(l)),
role: e.label || n.$slots.label ? e.role : null,
"aria-hidden": e.label || n.$slots.label ? null : !0
}, {
default: L(() => [
e.label || n.$slots.label ? (d(), b("span", An, [
y(n.$slots, "label", {}, () => [
Y(q(e.label), 1)
])
])) : M("", !0)
]),
_: 3
}, 8, ["class", "role", "aria-hidden"]));
}
}), In = A({
components: { BLink: Se, BSpinner: Et },
props: {
...De,
active: { type: [Boolean, String], default: !1 },
disabled: { type: [Boolean, String], default: !1 },
href: { type: String, required: !1 },
pill: { type: [Boolean, String], default: !1 },
pressed: { type: [Boolean, String], default: !1 },
rel: { type: String, default: void 0 },
size: { type: String, default: "md" },
squared: { type: [Boolean, String], default: !1 },
tag: { type: String, default: "button" },
target: { type: String, default: "_self" },
type: { type: String, default: "button" },
variant: { type: String, default: "secondary" },
loading: { type: [Boolean, String], default: !1 },
loadingMode: { type: String, default: "inline" }
},
emits: ["click", "update:pressed"],
setup(e, { emit: t }) {
const a = r(o(e, "active")), l = r(o(e, "disabled")), n = r(o(e, "pill")), i = r(o(e, "pressed")), c = r(o(e, "squared")), f = r(o(e, "loading")), v = u(() => i.value === !0), m = u(
() => e.tag === "button" && e.href === void 0 && e.to === null
), g = u(() => We(e)), $ = u(() => e.to !== null), p = u(
() => e.href !== void 0 ? !1 : !m.value
), k = u(() => ({
[`btn-${e.variant}`]: !!e.variant,
[`btn-${e.size}`]: !!e.size,
active: a.value || i.value,
"rounded-pill": n.value,
"rounded-0": c.value,
disabled: l.value
})), V = u(() => ({
"aria-disabled": p.value ? l.value : null,
"aria-pressed": v.value ? i.value : null,
autocomplete: v.value ? "off" : null,
disabled: m.value ? l.value : null,
href: e.href,
rel: g.value ? e.rel : null,
role: p.value || g.value ? "button" : null,
target: g.value ? e.target : null,
type: m.value ? e.type : null,
to: m.value ? null : e.to,
append: g.value ? e.append : null,
activeClass: $.value ? e.activeClass : null,
event: $.value ? e.event : null,
exact: $.value ? e.exact : null,
exactActiveClass: $.value ? e.exactActiveClass : null,
replace: $.value ? e.replace : null,
routerComponentName: $.value ? e.routerComponentName : null,
routerTag: $.value ? e.routerTag : null
})), h = u(
() => $.value ? Se : e.href ? "a" : e.tag
);
return {
classes: k,
attrs: V,
computedTag: h,
clicked: (B) => {
if (l.value) {
B.preventDefault(), B.stopPropagation();
return;
}
t("click", B), v.value && t("update:pressed", !i.value);
},
loadingBoolean: f
};
}
});
function Fn(e, t, a, l, n, i) {
const c = Ot("b-spinner");
return d(), z(J(e.computedTag), U({
class: ["btn", e.classes]
}, e.attrs, { onClick: e.clicked }), {
default: L(() => [
e.loadingBoolean ? (d(), b("div", {
key: 0,
class: F(["btn-loading", { "mode-fill": e.loadingMode === "fill", "mode-inline": e.loadingMode === "inline" }])
}, [
y(e.$slots, "loading", {}, () => [
be(c, {
class: "btn-spinner",
small: e.size !== "lg"
}, null, 8, ["small"])
])
], 2)) : M("", !0),
H("div", {
class: F(["btn-content", { "btn-loading-fill": e.loadingBoolean && e.loadingMode === "fill" }])
}, [
y(e.$slots, "default")
], 2)
]),
_: 3
}, 16, ["class", "onClick"]);
}
const Xe = /* @__PURE__ */ ye(In, [["render", Fn]]), On = /* @__PURE__ */ A({
__name: "BButtonGroup",
props: {
ariaLabel: { default: "Group" },
size: null,
tag: { default: "div" },
vertical: { default: !1 }
},
setup(e) {
const t = e, a = r(o(t, "vertical")), l = u(() => ({
"btn-group": !a.value && t.size === void 0,
[`btn-group-${t.size}`]: t.size !== void 0,
"btn-group-vertical": a.value
}));
return (n, i) => (d(), z(J(e.tag), {
class: F(s(l)),
role: "group",
"aria-label": e.ariaLabel
}, {
default: L(() => [
y(n.$slots, "default")
]),
_: 3
}, 8, ["class", "aria-label"]));
}
}), zn = ["role", "aria-label"], Pn = /* @__PURE__ */ A({
__name: "BButtonToolbar",
props: {
ariaLabel: { default: "Group" },
justify: { default: !1 },
role: { default: "toolbar" }
},
setup(e) {
const a = r(o(e, "justify")), l = u(() => ({
"justify-content-between": a.value
}));
return (n, i) => (d(), b("div", {
class: F([s(l), "btn-toolbar"]),
role: e.role,
"aria-label": e.ariaLabel
}, [
y(n.$slots, "default")
], 10, zn));
}
}), Ht = /* @__PURE__ */ A({
__name: "BImg",
props: {
alt: null,
blank: { default: !1 },
blankColor: { default: "transparent" },
block: { default: !1 },
center: { default: !1 },
fluid: { default: !1 },
lazy: { default: !1 },
fluidGrow: { default: !1 },
height: null,
left: { default: !1 },
start: { default: !1 },
right: { default: !1 },
end: { default: !1 },
rounded: { type: [Boolean, String], default: !1 },
sizes: null,
src: null,
srcset: null,
thumbnail: { default: !1 },
width: null
},
emits: ["load"],
setup(e, { emit: t }) {
const a = e, l = r(o(a, "lazy")), n = r(o(a, "blank")), i = r(o(a, "block")), c = r(o(a, "center")), f = r(o(a, "fluid")), v = r(o(a, "fluidGrow")), m = r(o(a, "left")), g = r(o(a, "start")), $ = r(o(a, "right")), p = r(o(a, "end")), k = r(o(a, "thumbnail")), V = '<svg width="%{w}" height="%{h}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 %{w} %{h}" preserveAspectRatio="none"><rect width="100%" height="100%" style="fill:%{f};"></rect></svg>', h = (j, _, w) => `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(
V.replace("%{w}", String(j)).replace("%{h}", String(_)).replace("%{f}", w)
)}`, C = u(
() => typeof a.srcset == "string" ? a.srcset.split(",").filter((j) => j).join(",") : Array.isArray(a.srcset) ? a.srcset.filter((j) => j).join(",") : void 0
), B = u(
() => typeof a.sizes == "string" ? a.sizes.split(",").filter((j) => j).join(",") : Array.isArray(a.sizes) ? a.sizes.filter((j) => j).join(",") : void 0
), O = u(() => {
const j = (D) => D === void 0 ? void 0 : typeof D == "number" ? D : Number.parseInt(D, 10) || void 0, _ = j(a.width), w = j(a.height);
if (n.value) {
if (_ !== void 0 && w === void 0)
return { height: _, width: _ };
if (_ === void 0 && w !== void 0)
return { height: w, width: w };
if (_ === void 0 && w === void 0)
return { height: 1, width: 1 };
}
return {
width: _,
height: w
};
}), N = u(
() => h(O.value.width, O.value.height, a.blankColor)
), T = u(() => ({
src: n.value ? N.value : a.src,
alt: a.alt,
width: O.value.width || void 0,
height: O.value.height || void 0,
srcset: n.value ? void 0 : C.value,
sizes: n.value ? void 0 : B.value,
loading: l.value ? "lazy" : "eager"
})), x = u(
() => m.value || g.value ? "float-start" : $.value || p.value ? "float-end" : c.value ? "mx-auto" : void 0
), I = u(() => ({
"img-thumbnail": k.value,
"img-fluid": f.value || v.value,
"w-100": v.value,
rounded: a.rounded === "" || a.rounded === !0,
[`rounded-${a.rounded}`]: typeof a.rounded == "string" && a.rounded !== "",
[`${x.value}`]: x.value !== void 0,
"d-block": i.value || c.value
}));
return (j, _) => (d(), b("img", U({ class: s(I) }, s(T), {
onLoad: _[0] || (_[0] = (w) => t("load", w))
}), null, 16));
}
}), Tt = /* @__PURE__ */ A({
__name: "BCardImg",
props: {
alt: null,
bottom: { default: !1 },
end: { default: !1 },
height: null,
left: { default: !1 },
right: { default: !1 },
src: null,
lazy: { default: !1 },
start: { default: !1 },
top: { default: !1 },
width: null,
blank: { default: !1 },
blankColor: null,
sizes: null,
srcset: null
},
emits: ["load"],
setup(e, { emit: t }) {
const a = e, l = r(o(a, "bottom")), n = r(o(a, "end")), i = r(o(a, "left")), c = r(o(a, "right")), f = r(o(a, "start")), v = r(o(a, "top")), m = u(
() => v.value ? "card-img-top" : c.value || n.value ? "card-img-right" : l.value ? "card-img-bottom" : i.value || f.value ? "card-img-left" : "card-img"
), g = u(() => ({
alt: a.alt,
height: a.height,
src: a.src,
lazy: a.lazy,
width: a.width,
blank: a.blank,
blankColor: a.blankColor,
sizes: a.sizes,
srcset: a.srcset
})), $ = u(() => [m.value]);
return (p, k) => (d(), z(Ht, U({ class: s($) }, s(g), {
onLoad: k[0] || (k[0] = (V) => t("load", V))
}), null, 16, ["class"]));
}
}), Nn = ["innerHTML"], Oa = /* @__PURE__ */ A({
__name: "BCardHeadFoot",
props: {
text: null,
bgVariant: null,
borderVariant: null,
html: null,
tag: { default: "div" },
textVariant: null
},
setup(e) {
const t = e, a = u(() => ({
[`text-${t.textVariant}`]: t.textVariant !== void 0,
[`bg-${t.bgVariant}`]: t.bgVariant !== void 0,
[`border-${t.borderVariant}`]: t.borderVariant !== void 0
}));
return (l, n) => (d(), z(J(e.tag), {
class: F(s(a))
}, {
default: L(() => [
e.html ? (d(), b("div", {
key: 0,
innerHTML: e.html
}, null, 8, Nn)) : y(l.$slots, "default", { key: 1 }, () => [
Y(q(e.text), 1)
])
]),
_: 3
}, 8, ["class"]));
}
}), za = /* @__PURE__ */ A({
__name: "BCardHeader",
props: {
text: null,
bgVariant: null,
borderVariant: null,
html: null,
tag: { default: "div" },
textVariant: null
},
setup(e) {
return (t, a) => (d(), z(Oa, U({ class: "card-header" }, t.$props), {
default: L(() => [
y(t.$slots, "default")
]),
_: 3
}, 16));
}
}), Pa = /* @__PURE__ */ A({
__name: "BCardTitle",
props: {
text: null,
tag: { default: "h4" }
},
setup(e) {
return (t, a) => (d(), z(J(e.tag), { class: "card-title" }, {
default: L(() => [
y(t.$slots, "default", {}, () => [
Y(q(e.text), 1)
])
]),
_: 3
}));
}
}), Na = /* @__PURE__ */ A({
__name: "BCardSubtitle",
props: {
text: null,
tag: { default: "h6" },
textVariant: { default: "muted" }