t-fighting-design
Version:
Fighting design can quickly build interactive interfaces in vue3 applications, which looks good.
2 lines (1 loc) • 1.38 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),f=require("./index3.js"),r=require("../../svg-icon/index.js"),d=require("../../_utils/index3.js"),p=["href","target"],k=e.defineComponent({name:"FLink"}),m=e.defineComponent({...k,props:f.Props,setup(s){const n=s,i=o=>{if(n.prohibit||n.noLink){o.preventDefault();return}n.click&&n.click(o)},l=e.computed(()=>{const{type:o,state:t,prohibit:u,noCopy:a}=n;return["f-link",{[`f-link__${t}`]:t,[`f-link__${o}`]:o,"f-link__prohibit":u,"f-link__no-copy":a}]}),c=e.computed(()=>{const{size:o,color:t}=n;return{color:t,fontSize:d.sizeChange(o)}});return(o,t)=>(e.openBlock(),e.createElementBlock("a",{role:"link",class:e.normalizeClass(e.unref(l)),style:e.normalizeStyle(e.unref(c)),href:o.href,target:o.target,onClick:i},[o.$slots.beforeIcon||o.beforeIcon?(e.openBlock(),e.createBlock(e.unref(r.FSvgIcon),{key:0,icon:o.beforeIcon,size:o.size||16},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"beforeIcon")]),_:3},8,["icon","size"])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default"),o.$slots.afterIcon||o.afterIcon?(e.openBlock(),e.createBlock(e.unref(r.FSvgIcon),{key:1,icon:o.afterIcon,size:o.size},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"afterIcon")]),_:3},8,["icon","size"])):e.createCommentVNode("",!0)],14,p))}});exports.default=m;