vxe-pc-ui
Version:
A vue based PC component library
1 lines • 1.41 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTag",props:{status:String,title:[String,Number],icon:String,content:[String,Number],size:{type:String,default:()=>(0,_ui.getConfig)().tag.size||(0,_ui.getConfig)().size}},emits:["click"],setup(u,e){const{slots:n,emit:i}=e;var t=_xeUtils.default.uniqueId();const s=(0,_ui.useSize)(u)["computeSize"],a=(0,_vue.ref)();var r=(0,_vue.reactive)({});const o={refElem:a},c={},l={xID:t,props:u,context:e,reactData:r,getRefMaps:()=>o,getComputeMaps:()=>c},v=(e,t,r)=>{i(e,(0,_ui.createEvent)(r,{$tag:l},t))};t={dispatchEvent:v};const _=e=>{v("click",{},e)};Object.assign(l,t,{});return l.renderVN=()=>{var{status:e,title:t}=u,r=s.value;return(0,_vue.h)("span",{ref:a,class:["vxe-tag",{["size--"+r]:r,["theme--"+e]:e}],title:t,onClick:_},(()=>{var{icon:e,content:t}=u,r=n.default,i=n.icon;return[i||e?(0,_vue.h)("span",{class:"vxe-tag--icon"},i?(0,_vn.getSlotVNs)(i({})):[(0,_vue.h)("i",{class:e})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("span",{class:"vxe-tag--content"},r?r({}):_xeUtils.default.toValueString(t))]})())},l},render(){return this.renderVN()}});