song-ui-u
Version:
vue3 + js的PC前端组件库
116 lines (113 loc) • 3.1 kB
JavaScript
import { defineComponent, createVNode } from 'vue';
import { useNamespace } from '../../../hook/use-namespace/index.mjs';
import { X } from 'song-ui-pro-icon';
import '../../../hook/use-zindex/index.mjs';
import '../../button/index.mjs';
import '../../buttonGroup/index.mjs';
import { XIcon } from '../../icon/index.mjs';
import '../../input/index.mjs';
import '../../textarea/index.mjs';
import '../../row/index.mjs';
import '../../col/index.mjs';
import '../../container/index.mjs';
import '../../checkbox/index.mjs';
import '../../switch/index.mjs';
import '../../form/index.mjs';
import '../../message/index.mjs';
import '../../mask/src/mask.mjs';
import '../../modal/index.mjs';
import '../../messageBox/index.mjs';
import '../../drawer/index.mjs';
import '../../badge/index.mjs';
import '../../space/index.mjs';
import '../../image/index.mjs';
import '../../radio/index.mjs';
import '../../divider/index.mjs';
import '../../chat/index.mjs';
import '../../progress/index.mjs';
import '../../upload/index.mjs';
import '../../vTree/index.mjs';
import '../../table/index.mjs';
import '../../tabs/index.mjs';
import '../../menu/index.mjs';
import '../../steps/index.mjs';
import '../../header/index.mjs';
import '../../breadcrumble/index.mjs';
import '../../datePicker/index.mjs';
import '../../tooltip/index.mjs';
import '../../popover/index.mjs';
import '../../timePicker/index.mjs';
import '../../select/index.mjs';
import '../../collapse/index.mjs';
import '../../card/index.mjs';
import '../../timeline/index.mjs';
import '../index.mjs';
import '../../result/index.mjs';
import '../../sender/index.mjs';
var Tag = /* @__PURE__ */ defineComponent({
name: "x-tag",
props: {
type: {
type: String,
default: "primary"
},
closable: {
type: Boolean,
default: false
},
round: {
type: Boolean,
default: true
},
size: {
type: String,
default: "medium"
},
// Tag 的颜色
bgColor: {
type: String,
default: ""
},
textColor: {
type: String,
default: ""
},
// Tag 的主题
effect: {
type: String,
default: "light",
validator: (value) => {
return ["light", "dark", "plain"].includes(value);
}
}
},
setup(props, {
slots,
emit
}) {
const ns = useNamespace("tag");
const handelClose = (e) => {
e.stopPropagation();
e.preventDefault();
emit("close", e);
};
return () => createVNode("div", {
"class": [ns.b(), ns.m(props.type), ns.m("effect", props.effect), ns.m(props.size), ns.is("round", props.round)],
"style": {
backgroundColor: props.bgColor,
color: props.textColor
}
}, [createVNode("div", {
"class": [ns.e("main")]
}, [slots.default?.()]), props.closable && createVNode("div", {
"onClick": (e) => handelClose(e),
"class": ns.e("close")
}, [createVNode(XIcon, {
"size": "12"
}, {
default: () => [createVNode(X, null, null)]
})])]);
}
});
export { Tag as default };
//# sourceMappingURL=index.mjs.map