UNPKG

vxe-pc-ui

Version:
1 lines 2.08 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"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLink",props:{href:String,target:String,status:String,title:[String,Number],disabled:Boolean,icon:String,routerLink:Object,underline:{type:Boolean,default:()=>(0,_ui.getConfig)().link.underline},permissionCode:[String,Number],content:[String,Number],size:{type:String,default:()=>(0,_ui.getConfig)().link.size||(0,_ui.getConfig)().size}},emits:["click"],setup(o,e){let{slots:n,emit:r}=e;var t=_xeUtils.default.uniqueId();let d=(0,_ui.useSize)(o).computeSize,c=(0,_ui.usePermission)(o).computePermissionInfo,v=(0,_vue.ref)();var i=(0,_vue.reactive)({});let u={refElem:v},l={},_={xID:t,props:o,context:e,reactData:i,getRefMaps:()=>u,getComputeMaps:()=>l},s=(e,t,i)=>{r(e,(0,_ui.createEvent)(i,{$link:_},t))};t={dispatchEvent:s};let p=e=>{var t=o.disabled;t||s("click",{},e)},f=(Object.assign(_,t,{}),()=>{var{icon:e,content:t}=o,i=n.default,r=n.icon,t=_xeUtils.default.toValueString(t);return[r||e?(0,_vue.h)("span",{class:"vxe-link--icon"},r?(0,_vn.getSlotVNs)(r({})):[(0,_vue.h)("i",{class:e})]):(0,_ui.renderEmptyElement)(_),i||t?(0,_vue.h)("span",{class:"vxe-link--content"},i?i({}):t):(0,_ui.renderEmptyElement)(_)]});return _.renderVN=()=>{var{status:e,target:t,href:i,title:r,underline:n,disabled:u,routerLink:l}=o,s=c.value,a=d.value;return s.visible?l&&!u?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{class:["vxe-link",{["size--"+a]:a,["theme--"+e]:e,"is--disabled":u,"is--underline":n}],title:r,target:t,to:u?null:l,onClick:p},{default(){return f()}}):(0,_vue.h)("a",{ref:v,class:["vxe-link",{["size--"+a]:a,["theme--"+e]:e,"is--disabled":u,"is--underline":n}],href:u?null:i,target:t,title:r,onClick:p},f()):(0,_ui.renderEmptyElement)(_)},_},render(){return this.renderVN()}});