bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
60 lines (59 loc) • 2.27 kB
JavaScript
require("./chunk-CoQrYLCe.js");
const require_dom = require("./dom-Bs6DzM72.js");
const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
const require_useColorVariantClasses = require("./useColorVariantClasses-CEfOwjPv.js");
let vue = require("vue");
//#region src/components/BSpinner/BSpinner.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1 = {
key: 0,
class: "visually-hidden"
};
//#endregion
//#region src/components/BSpinner/BSpinner.vue
var BSpinner_default = /* @__PURE__ */ (0, vue.defineComponent)({
__name: "BSpinner",
props: {
label: { default: void 0 },
role: { default: "status" },
small: {
type: Boolean,
default: false
},
tag: { default: "span" },
type: { default: "border" },
variant: { default: null }
},
setup(__props) {
const props = require_useDefaults.useDefaults(__props, "BSpinner");
const slots = (0, vue.useSlots)();
const colorClasses = require_useColorVariantClasses.useColorVariantClasses((0, vue.computed)(() => ({ textVariant: props.variant })));
const computedClasses = (0, vue.computed)(() => [
`spinner-${props.type}`,
colorClasses.value,
{ [`spinner-${props.type}-sm`]: props.small }
]);
const hasLabelSlot = (0, vue.computed)(() => !require_dom.isEmptySlot(slots.label));
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(props).tag), {
class: (0, vue.normalizeClass)(computedClasses.value),
role: (0, vue.unref)(props).label || hasLabelSlot.value ? (0, vue.unref)(props).role : null,
"aria-hidden": (0, vue.unref)(props).label || hasLabelSlot.value ? null : true
}, {
default: (0, vue.withCtx)(() => [(0, vue.unref)(props).label || hasLabelSlot.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_1, [(0, vue.renderSlot)(_ctx.$slots, "label", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(props).label), 1)])])) : (0, vue.createCommentVNode)("", true)]),
_: 3
}, 8, [
"class",
"role",
"aria-hidden"
]);
};
}
});
//#endregion
Object.defineProperty(exports, "BSpinner_default", {
enumerable: true,
get: function() {
return BSpinner_default;
}
});
//# sourceMappingURL=BSpinner-8UMAINYb.js.map