bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
139 lines (138 loc) • 4.07 kB
JavaScript
import { t as useDefaults } from "./useDefaults-BzP4qZBu.js";
import { r as useBLinkHelper, t as BLink_default } from "./BLink-mdwZsC7b.js";
import { t as useColorVariantClasses } from "./useColorVariantClasses-DHQvLjek.js";
import { t as ConditionalWrapper_default } from "./ConditionalWrapper-CCIk52zt.js";
import { computed, createBlock, createVNode, defineComponent, mergeProps, openBlock, renderSlot, resolveDynamicComponent, unref, withCtx } from "vue";
//#endregion
//#region src/components/BBadge/BBadge.vue
var BBadge_default = /* @__PURE__ */ defineComponent({
__name: "BBadge",
props: {
dotIndicator: {
type: Boolean,
default: false
},
pill: {
type: Boolean,
default: false
},
placement: { default: void 0 },
tag: { default: "span" },
active: {
type: Boolean,
default: void 0
},
activeClass: { default: void 0 },
disabled: {
type: Boolean,
default: void 0
},
exactActiveClass: { default: void 0 },
href: { default: void 0 },
icon: {
type: Boolean,
default: void 0
},
noRel: { type: Boolean },
opacity: { default: void 0 },
opacityHover: { default: void 0 },
prefetch: { type: Boolean },
prefetchOn: {},
noPrefetch: { type: Boolean },
prefetchedClass: {},
rel: { default: void 0 },
replace: {
type: Boolean,
default: void 0
},
routerComponentName: { default: void 0 },
stretched: {
type: Boolean,
default: false
},
target: { default: void 0 },
to: { default: void 0 },
underlineOffset: { default: void 0 },
underlineOffsetHover: { default: void 0 },
underlineOpacity: { default: void 0 },
underlineOpacityHover: { default: void 0 },
underlineVariant: { default: void 0 },
variant: { default: "secondary" },
bgVariant: { default: null },
textVariant: { default: null }
},
setup(__props) {
const props = useDefaults(__props, "BBadge");
const { computedLink, computedLinkProps } = useBLinkHelper(props, [
"active",
"activeClass",
"disabled",
"exactActiveClass",
"href",
"icon",
"noRel",
"opacity",
"opacityHover",
"noPrefetch",
"prefetch",
"prefetchOn",
"prefetchedClass",
"rel",
"replace",
"routerComponentName",
"stretched",
"target",
"to",
"underlineOffset",
"underlineOffsetHover",
"underlineOpacity",
"underlineOpacityHover",
"underlineVariant"
]);
const computedTag = computed(() => computedLink.value ? BLink_default : props.tag);
const placementClasses = computed(() => {
const pos = props.placement ?? (props.dotIndicator ? "top-end" : void 0);
return [
"position-absolute",
"translate-middle",
{
"start-0 top-0": pos === "top-start",
"start-0 top-50": pos === "start",
"start-0 top-100": pos === "bottom-start",
"start-50 top-0": pos === "top",
"start-50 top-100": pos === "bottom",
"start-100 top-0": pos === "top-end",
"start-100 top-50": pos === "end",
"start-100 top-100": pos === "bottom-end"
}
];
});
const colorClasses = useColorVariantClasses(props);
const computedClasses = computed(() => [
colorClasses.value,
props.placement !== void 0 || props.dotIndicator ? placementClasses.value : void 0,
{
"active": props.active,
"disabled": props.disabled,
"rounded-pill": props.pill,
"p-2 border border-light rounded-circle": props.dotIndicator,
"text-decoration-none": computedLink.value
}
]);
return (_ctx, _cache) => {
return openBlock(), createBlock(resolveDynamicComponent(computedTag.value), mergeProps({ class: ["badge", computedClasses.value] }, unref(computedLinkProps)), {
default: withCtx(() => [createVNode(ConditionalWrapper_default, mergeProps({
skip: unref(props).dotIndicator !== true,
tag: "span"
}, unref(props).dotIndicator ? { class: "visually-hidden" } : {}), {
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
_: 3
}, 16, ["skip"])]),
_: 3
}, 16, ["class"]);
};
}
});
//#endregion
export { BBadge_default as t };
//# sourceMappingURL=BBadge-BaZ13wE_.js.map