UNPKG

bootstrap-vue-next

Version:

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

135 lines (134 loc) 4.85 kB
import { v as progressInjectionKey } from "./keys-CQKrwmvN.mjs"; import { L as useToNumber } from "./dist-Dn5blevd.mjs"; import { t as useDefaults } from "./useDefaults-CCWS15M8.mjs"; import { t as useColorVariantClasses } from "./useColorVariantClasses-GuDw8a_O.mjs"; import { computed, createElementBlock, createTextVNode, createVNode, defineComponent, inject, normalizeClass, normalizeStyle, openBlock, provide, renderSlot, toDisplayString, toRef, unref } from "vue"; //#endregion //#region src/components/BProgress/BProgressBar.vue var BProgressBar_default = /* @__PURE__ */ defineComponent({ __name: "BProgressBar", props: { animated: { type: Boolean, default: false }, label: { default: void 0 }, max: { default: void 0 }, precision: { default: 0 }, showProgress: { type: Boolean, default: false }, showValue: { type: Boolean, default: false }, striped: { type: Boolean, default: false }, value: { default: 0 }, variant: { default: null }, bgVariant: { default: null }, textVariant: { default: null } }, setup(__props) { const props = useDefaults(__props, "BProgressBar"); const parentData = inject(progressInjectionKey, null); const colorClasses = useColorVariantClasses(props); const computedClasses = computed(() => [colorClasses.value, { "progress-bar-animated": props.animated || parentData?.animated.value, "progress-bar-striped": props.striped || parentData?.striped.value || props.animated || parentData?.animated.value }]); const numberPrecision = useToNumber(() => props.precision); const numberValue = useToNumber(() => props.value); const numberMax = useToNumber(() => props.max ?? NaN); const parentMaxNumber = useToNumber(() => parentData?.max.value ?? NaN); const computedLabel = computed(() => props.showValue || parentData?.showValue.value ? numberValue.value.toFixed(numberPrecision.value) : props.showProgress || parentData?.showProgress.value ? (numberValue.value * 100 / (numberMax.value || 100)).toFixed(numberPrecision.value) : props.label !== void 0 ? props.label : ""); const computedWidth = computed(() => parentMaxNumber.value ? `${numberValue.value * 100 / parentMaxNumber.value}%` : numberMax.value ? `${numberValue.value * 100 / numberMax.value}%` : typeof props.value === "string" ? props.value : `${props.value}%`); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: normalizeClass(["progress-bar", computedClasses.value]), style: normalizeStyle({ width: computedWidth.value }) }, [renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(computedLabel.value), 1)])], 6); }; } }); //#endregion //#region src/components/BProgress/BProgress.vue?vue&type=script&setup=true&lang.ts var _hoisted_1 = ["aria-valuenow", "aria-valuemax"]; //#endregion //#region src/components/BProgress/BProgress.vue var BProgress_default = /* @__PURE__ */ defineComponent({ __name: "BProgress", props: { height: { default: void 0 }, animated: { type: Boolean, default: void 0 }, max: { default: 100 }, precision: { default: void 0 }, showProgress: { type: Boolean, default: void 0 }, showValue: { type: Boolean, default: void 0 }, striped: { type: Boolean, default: void 0 }, value: { default: void 0 }, variant: { default: void 0 }, bgVariant: { default: void 0 }, textVariant: { default: void 0 } }, setup(__props) { const props = useDefaults(__props, "BProgress"); provide(progressInjectionKey, { animated: toRef(() => props.animated), max: toRef(() => props.max), showProgress: toRef(() => props.showProgress), showValue: toRef(() => props.showValue), striped: toRef(() => props.striped) }); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: "progress", role: "progressbar", style: normalizeStyle({ height: unref(props).height }), "aria-valuenow": unref(props).value, "aria-valuemin": "0", "aria-valuemax": unref(props).max }, [renderSlot(_ctx.$slots, "default", {}, () => [createVNode(BProgressBar_default, { animated: unref(props).animated, max: unref(props).max, precision: unref(props).precision, "show-progress": unref(props).showProgress, "show-value": unref(props).showValue, striped: unref(props).striped, value: unref(props).value, variant: unref(props).variant, "text-variant": unref(props).textVariant, "bg-variant": unref(props).bgVariant }, null, 8, [ "animated", "max", "precision", "show-progress", "show-value", "striped", "value", "variant", "text-variant", "bg-variant" ])])], 12, _hoisted_1); }; } }); //#endregion export { BProgressBar_default as n, BProgress_default as t }; //# sourceMappingURL=BProgress-Bdf5AncM.mjs.map