ucc-ui
Version:
ucc-ui components library
47 lines (46 loc) • 1.55 kB
JavaScript
import { defineComponent as p, computed as o, openBlock as t, createElementBlock as l, normalizeClass as s, normalizeStyle as m, toDisplayString as c, createCommentVNode as f, renderSlot as g } from "vue";
import { i as y } from "./vendors-PY6Ic9FA.js";
const b = {
PRIMARY: "primary",
SUCCESS: "success",
WARNING: "warning",
DANGER: "danger",
INFO: "info"
}, v = { class: "u-badge" }, S = /* @__PURE__ */ p({
name: "UBadge",
__name: "Badge",
props: {
value: { default: 0 },
max: { default: 99 },
isDot: { type: Boolean, default: !1 },
hidden: { type: Boolean, default: !1 },
type: { default: b.DANGER },
showZero: { type: Boolean, default: !0 },
color: {},
offset: { default: () => [0, 0] },
badgeStyle: {},
badgeClass: {}
},
setup(d) {
const e = d, n = o(() => y(Number(e.value))), r = o(() => !e.isDot && !e.hidden && (e.showZero || e.value)), u = o(() => n.value && Number(e.value) > e.max ? e.max + "+" : e.value), i = o(() => ({
...e.badgeStyle,
backgroundColor: e.color,
right: e.offset[0] + "px",
top: e.offset[1] + "px"
}));
return (a, B) => (t(), l("div", v, [
r.value ? (t(), l("div", {
key: 0,
class: s(["u-badge-content", [a.badgeClass, `u-badge-${a.type}`]]),
style: m(i.value)
}, c(u.value), 7)) : a.isDot ? (t(), l("div", {
key: 1,
class: s(["u-badge-dot", `u-badge-dot-${a.type}`])
}, null, 2)) : f("", !0),
g(a.$slots, "default")
]));
}
});
export {
S as _
};