UNPKG

vxe-pc-ui

Version:
1 lines 2.38 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTag",props:{border:{type:Boolean,default:()=>(0,_ui.getConfig)().tag.border},visible:{type:Boolean,default:null},status:String,title:[String,Number],icon:String,closeIcon:{type:String,default:()=>(0,_ui.getConfig)().tag.closeIcon},content:[String,Number],round:Boolean,closable:{type:Boolean,default:()=>(0,_ui.getConfig)().tag.closable},color:String,loading:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().tag.size||(0,_ui.getConfig)().size}},emits:["click","dblclick","close","update:visible"],setup(u,e){let{slots:s,emit:o}=e;var t=_xeUtils.default.uniqueId();let c=(0,_ui.useSize)(u).computeSize,g=(0,_vue.ref)(),d=(0,_vue.reactive)({showTag:!1!==u.visible}),i={refElem:g},l={},v={xID:t,props:u,context:e,reactData:d,getRefMaps:()=>i,getComputeMaps:()=>l},a=(e,t,i)=>{o(e,(0,_ui.createEvent)(i,{$tag:v},t))};t={dispatchEvent:a};let n=()=>{d.showTag=!1!==u.visible},_=e=>{var t=u.loading;t||a("click",{},e)},p=e=>{var t=u.loading;t||a("dblclick",{},e)},f=e=>{var t=u.loading;t||(t=!d.showTag,d.showTag=t,o("update:visible",t),a("close",{visible:t},e))};Object.assign(v,t,{});return(0,_vue.watch)(()=>u.visible,()=>{n()}),n(),v.renderVN=()=>{var{status:e,color:t,title:i,round:o,border:l,loading:a}=u,n=d.showTag,r=c.value;return n?(0,_vue.h)("span",{ref:g,class:["vxe-tag",{["size--"+r]:r,["theme--"+e]:e&&!t,["color--"+t]:t&&!e,"is--round":o,"is--border":l,"is--loading":a}],title:i,onClick:_,onDblclick:p},(()=>{var{icon:e,content:t,closable:i,closeIcon:o,loading:l}=u,a=s.default,n=s.icon,r=s.closeIcon||s["close-icon"];return[n||e?(0,_vue.h)("span",{class:"vxe-tag--icon"},n?n({}):[(0,_vue.h)("i",{class:e})]):(0,_ui.renderEmptyElement)(v),(0,_vue.h)("span",{class:"vxe-tag--content"},a?a({}):_xeUtils.default.toValueString(t)),l||i?(0,_vue.h)("span",{class:l?"vxe-tag--loading":"vxe-tag--close",onClick:f},!l&&r?r({}):[(0,_vue.h)("i",{class:l?(0,_ui.getIcon)().TAG_LOADING:o||(0,_ui.getIcon)().TAG_CLOSE})]):(0,_ui.renderEmptyElement)(v)]})()):(0,_ui.renderEmptyElement)(v)},v},render(){return this.renderVN()}});