UNPKG

element-plus

Version:

A Component Library for Vue 3

98 lines (95 loc) 3.5 kB
import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle, createElementVNode, renderSlot, createBlock, withModifiers, withCtx, createVNode, createCommentVNode, Transition } from 'vue'; import { ElIcon } from '../../icon/index.mjs'; import { Close } from '@element-plus/icons-vue'; import '../../../hooks/index.mjs'; import { tagProps, tagEmits } from './tag.mjs'; import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs'; import { useSize } from '../../../hooks/use-common-props/index.mjs'; import { useNamespace } from '../../../hooks/use-namespace/index.mjs'; const __default__ = defineComponent({ name: "ElTag" }); const _sfc_main = /* @__PURE__ */ defineComponent({ ...__default__, props: tagProps, emits: tagEmits, setup(__props, { emit }) { const props = __props; const tagSize = useSize(); const ns = useNamespace("tag"); const classes = computed(() => { const { type, hit, effect, closable, round } = props; return [ ns.b(), ns.is("closable", closable), ns.m(type), ns.m(tagSize.value), ns.m(effect), ns.is("hit", hit), ns.is("round", round) ]; }); const handleClose = (event) => { emit("close", event); }; const handleClick = (event) => { emit("click", event); }; return (_ctx, _cache) => { return _ctx.disableTransitions ? (openBlock(), createElementBlock("span", { key: 0, class: normalizeClass(unref(classes)), style: normalizeStyle({ backgroundColor: _ctx.color }), onClick: handleClick }, [ createElementVNode("span", { class: normalizeClass(unref(ns).e("content")) }, [ renderSlot(_ctx.$slots, "default") ], 2), _ctx.closable ? (openBlock(), createBlock(unref(ElIcon), { key: 0, class: normalizeClass(unref(ns).e("close")), onClick: withModifiers(handleClose, ["stop"]) }, { default: withCtx(() => [ createVNode(unref(Close)) ]), _: 1 }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true) ], 6)) : (openBlock(), createBlock(Transition, { key: 1, name: `${unref(ns).namespace.value}-zoom-in-center`, appear: "" }, { default: withCtx(() => [ createElementVNode("span", { class: normalizeClass(unref(classes)), style: normalizeStyle({ backgroundColor: _ctx.color }), onClick: handleClick }, [ createElementVNode("span", { class: normalizeClass(unref(ns).e("content")) }, [ renderSlot(_ctx.$slots, "default") ], 2), _ctx.closable ? (openBlock(), createBlock(unref(ElIcon), { key: 0, class: normalizeClass(unref(ns).e("close")), onClick: withModifiers(handleClose, ["stop"]) }, { default: withCtx(() => [ createVNode(unref(Close)) ]), _: 1 }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true) ], 6) ]), _: 3 }, 8, ["name"])); }; } }); var Tag = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]); export { Tag as default }; //# sourceMappingURL=tag2.mjs.map