UNPKG

ucc-ui

Version:

ucc-ui components library

47 lines (46 loc) 1.55 kB
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 _ };