vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 1.27 kB
JavaScript
"use strict";const e=require("vue");require("../icon/index.cjs");const o=require("@vexip-ui/config"),u=require("./props.cjs"),d=require("../icon/icon.cjs"),f=["href","target"],p=e.defineComponent({name:"Linker",__name:"linker",props:u.linkerProps,setup(s){const l=Object.freeze(["default","primary","success","error","warning","info"]),i=s,n=o.useProps("linker",i,{to:{default:null,static:!0},type:{default:"default",validator:t=>l.includes(t)},icon:o.createIconProp(),underline:!1,disabled:!1,target:"_blank"}),r=o.useNameHelper("linker"),a=e.computed(()=>({[r.b()]:!0,[r.bs("vars")]:!0,[r.bm("inherit")]:n.inherit,[r.bm(n.type)]:n.type!=="default",[r.bm("disabled")]:n.disabled,[r.bm("underline")]:n.underline}));function c(t){n.disabled&&t.preventDefault(),o.emitEvent(n.onClick,t)}return(t,m)=>(e.openBlock(),e.createElementBlock("a",{class:e.normalizeClass(a.value),href:e.unref(n).to,tabindex:"0",target:e.unref(n).target,onClick:c},[e.renderSlot(t.$slots,"icon",{},()=>[e.unref(n).icon?(e.openBlock(),e.createBlock(e.unref(d),{key:0,class:e.normalizeClass(e.unref(r).be("icon")),icon:e.unref(n).icon},null,8,["class","icon"])):e.createCommentVNode("",!0)]),e.renderSlot(t.$slots,"default")],10,f))}});module.exports=p;
//# sourceMappingURL=linker.vue2.cjs.map