bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
80 lines (79 loc) • 2.95 kB
JavaScript
import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
import { t as useId$1 } from "./useId-BKZFSYm8.mjs";
import { t as useColorVariantClasses } from "./useColorVariantClasses-B6Me_Kx6.mjs";
import { t as BCloseButton_default } from "./BCloseButton-CjgbR1Ec.mjs";
import { computed, createBlock, createCommentVNode, createElementVNode, createTextVNode, defineComponent, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, useSlots, withCtx } from "vue";
//#region src/components/BFormTags/BFormTag.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1 = ["id"];
//#endregion
//#region src/components/BFormTags/BFormTag.vue
var BFormTag_default = /* @__PURE__ */ defineComponent({
__name: "BFormTag",
props: {
disabled: {
type: Boolean,
default: false
},
id: { default: void 0 },
noRemove: {
type: Boolean,
default: false
},
pill: {
type: Boolean,
default: false
},
removeLabel: { default: "Remove tag" },
tag: { default: "span" },
title: { default: void 0 },
variant: { default: "secondary" }
},
emits: ["remove"],
setup(__props, { emit: __emit }) {
const props = useDefaults(__props, "BFormTag");
const emit = __emit;
const slots = useSlots();
const computedId = useId$1(() => props.id);
const tagText = computed(() => ((slots.default?.({})[0].children ?? "").toString() || props.title) ?? "");
const taglabelId = computed(() => `${computedId.value}taglabel__`);
const colorClasses = useColorVariantClasses(props);
const computedClasses = computed(() => [colorClasses.value, {
"rounded-pill": props.pill,
"disabled": props.disabled
}]);
return (_ctx, _cache) => {
return openBlock(), createBlock(resolveDynamicComponent(unref(props).tag), {
id: unref(computedId),
title: tagText.value,
class: normalizeClass(["badge b-form-tag d-inline-flex align-items-center mw-100", computedClasses.value]),
"aria-labelledby": taglabelId.value
}, {
default: withCtx(() => [createElementVNode("span", {
id: taglabelId.value,
class: "b-form-tag-content flex-grow-1 text-truncate"
}, [renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(tagText.value), 1)])], 8, _hoisted_1), !unref(props).disabled && !unref(props).noRemove ? (openBlock(), createBlock(BCloseButton_default, {
key: 0,
"aria-keyshortcuts": "Delete",
"aria-label": unref(props).removeLabel,
class: "b-form-tag-remove",
"aria-describedby": taglabelId.value,
"aria-controls": unref(props).id,
onClick: _cache[0] || (_cache[0] = ($event) => emit("remove", tagText.value))
}, null, 8, [
"aria-label",
"aria-describedby",
"aria-controls"
])) : createCommentVNode("", true)]),
_: 3
}, 8, [
"id",
"title",
"class",
"aria-labelledby"
]);
};
}
});
//#endregion
export { BFormTag_default as t };
//# sourceMappingURL=BFormTag-BUWEugEC.mjs.map