@jonywu/icon_test
Version:
96 lines (95 loc) • 2.65 kB
JavaScript
import { inject as h, computed as r, createElementBlock as d, createBlock as m, createCommentVNode as o, openBlock as a, resolveDynamicComponent as f, defineComponent as v, normalizeClass as s, createVNode as l, renderSlot as g } from "vue";
const b = ["src", "width", "height", "alt"], u = {
__name: "Icon",
props: {
name: {
type: String
},
size: {
type: String
},
width: {
type: String
},
height: {
type: String
},
color: {
type: String,
default: "currentColor"
}
},
setup(t) {
const e = t, i = h("icons", {}), n = r(() => i[e.name] || null), c = r(() => typeof n.value == "string" && n.value.startsWith("data:image/svg+xml,"));
return ($, w) => c.value ? (a(), d("img", {
key: 0,
src: n.value,
width: t.size || t.width,
height: t.size || t.height,
alt: t.name
}, null, 8, b)) : n.value ? (a(), m(f(n.value), {
key: 1,
width: t.size || t.width,
height: t.size || t.height,
fill: t.color
}, null, 8, ["width", "height", "fill"])) : o("", !0);
}
}, y = {
key: 1,
class: "ded-button-content"
}, C = /* @__PURE__ */ v({
__name: "Button",
props: {
themeColor: { default: "primary" },
variant: {},
prefix: {},
suffix: {},
size: { default: "medium" },
width: { default: "fit" },
borderWidth: {},
radius: {},
isDisabled: { type: Boolean, default: !1 },
className: { default: "" }
},
setup(t) {
const e = t;
return (i, n) => (a(), d("button", {
class: s({
"ded-button": !0,
[`ded-button-${e.width}`]: e.width,
[`ded-text-${e.size}`]: e.size,
[`ded-button-${e.variant}`]: e.variant,
[`ded-button-${e.variant}-${e.themeColor}`]: e.variant && e.themeColor,
[`ded-button-${e.variant}-disabled`]: e.variant && e.isDisabled,
[`ded-button-border-width-${e.borderWidth}`]: e.borderWidth,
[`ded-button-radius-${e.radius}`]: e.radius,
[e.className]: !!e.className
// 'ded-button-only-icon' : !slot
})
}, [
i.prefix ? (a(), d("div", {
key: 0,
class: s(`ded-icon-${e.size}`)
}, [
l(u, {
name: e.prefix
}, null, 8, ["name"])
], 2)) : o("", !0),
i.$slots.default ? (a(), d("div", y, [
g(i.$slots, "default")
])) : o("", !0),
i.suffix ? (a(), d("div", {
key: 2,
class: s(`ded-icon-${e.size}`)
}, [
l(u, {
name: e.suffix
}, null, 8, ["name"])
], 2)) : o("", !0)
], 2));
}
});
export {
C as Button,
u as Icon
};