UNPKG

vxe-pc-ui

Version:
1 lines 2.05 kB
"use strict";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:"VxeText",props:{status:String,title:[String,Number],icon:String,loading:Boolean,content:[String,Number],clickToCopy:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().text.size||(0,_ui.getConfig)().size}},emits:["click"],setup(r,e){const{emit:n,slots:s}=e;var t=_xeUtils.default.uniqueId();const o=(0,_ui.useSize)(r)["computeSize"],a=(0,_vue.ref)(),c=(0,_vue.ref)();var i=(0,_vue.reactive)({});const u={refElem:a},l={},_=()=>{var{content:e,clickToCopy:t}=r;t&&(t=((t=c.value)?t.textContent:"")||e)&&(_ui.VxeUI.clipboard.copy(t)?_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.text.copySuccess"),status:"success"}):_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.text.copyError"),status:"error"}))},v={xID:t,props:r,context:e,reactData:i,getRefMaps:()=>u,getComputeMaps:()=>l},p=(e,t,i)=>{n(e,(0,_ui.createEvent)(i,{$text:v},t))};t={dispatchEvent:p};const x=e=>{var t=r["loading"];t||p("click",{},e)};Object.assign(v,t,{});return v.renderVN=()=>{var{loading:e,status:t,title:i,clickToCopy:n}=r,u=o.value;return(0,_vue.h)("span",{ref:a,title:i,class:["vxe-text",{["size--"+u]:u,["theme--"+t]:t,"is--copy":n,"is--loading":e}],onClick:x},(()=>{var{loading:e,icon:t,content:i,clickToCopy:n}=r,u=s.default,o=s.icon;return[e?(0,_vue.h)("span",{class:"vxe-text--loading"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().TEXT_LOADING})]):o||t||n?(0,_vue.h)("span",{class:"vxe-text--icon",onClick:_},o?(0,_vn.getSlotVNs)(o({})):[(0,_vue.h)("i",{class:t||(0,_ui.getIcon)().TEXT_COPY})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("span",{ref:c,class:"vxe-text--content"},u?u({}):_xeUtils.default.toValueString(i))]})())},v},render(){return this.renderVN()}});