UNPKG

@fifteen/design-system-vue

Version:

Vue 3 (Composition API + Typescript) implementation of the Fifteen Design System

2 lines (1 loc) 1.62 kB
"use strict";const g=require("../FLink.js");;/* empty css */const e=require("vue"),v=require("../../composables/useSmartLink.js"),y=e.defineComponent({__name:"FRouterLink",props:{location:{default:null},color:{default:"secondary"},hoverColor:{default:"primary"},arrowColor:{default:"neutral--light-5"},arrowHoverColor:{default:"neutral--light-5"},prevent:{type:Boolean},disabled:{type:Boolean,default:!1},hideArrow:{type:Boolean,default:!1},underlined:{type:Boolean,default:!1},uppercase:{type:Boolean,default:!1},target:{default:void 0},hreflang:{default:void 0},role:{default:void 0},activeClass:{default:null},exactActiveClass:{default:null},replace:{type:Boolean,default:!1}},emits:["click","focus"],setup(i,{emit:f}){const a=i,r=f,{isHref:c,isExternal:d,getProps:p,getClasses:k}=v.useSmartLink(a),m=e.computed(()=>a.location);return(t,o)=>{const s=g,C=e.resolveComponent("RouterLink");return t.location&&!e.unref(c)?(e.openBlock(),e.createBlock(C,{key:0,to:t.location,replace:t.replace,custom:""},{default:e.withCtx(({navigate:l,href:u})=>[e.createVNode(s,e.mergeProps({...t.$attrs,...e.unref(p)(u)},{class:e.unref(k)(u),onClick:n=>{r("click",n),l(n)},onFocus:o[0]||(o[0]=n=>r("focus",n))}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:2},1040,["class","onClick"])]),_:3},8,["to","replace"])):(e.openBlock(),e.createBlock(s,e.mergeProps({key:1},a,{href:e.unref(m),target:t.target??e.unref(d)?"_blank":"_self",onClick:o[1]||(o[1]=l=>r("click",l)),onFocus:o[2]||(o[2]=l=>r("focus",l))}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16,["href","target"]))}}});module.exports=y;