@dialpad/dialtone
Version:
Dialpad's Dialtone design system monorepo
1 lines • 3.35 kB
Source Map (JSON)
{"version":3,"file":"link.cjs","names":[],"sources":["../../../components/link/link.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n :class=\"getLinkClasses()\"\n data-qa=\"dt-link\"\n v-bind=\"computedAttrs\"\n >\n <!-- @slot Slot for main content -->\n <slot />\n </component>\n</template>\n\n<script>\nimport { resolveComponent } from 'vue';\nimport { LINK_VARIANTS, LINK_KIND_MODIFIERS, getLinkKindModifier } from './link_constants';\n\n/**\n * A link is a navigational element that can be found on its own, within other text, or directly following content.\n * @property {String} rel attribute\n * @see https://dialtone.dialpad.com/components/link.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtLink',\n\n props: {\n /**\n * Applies the link variant styles\n * @values null, danger, warning, success, muted, mention\n */\n kind: {\n type: String,\n default: '',\n validator (kind) {\n return LINK_VARIANTS.includes(kind);\n },\n },\n\n /**\n * Determines whether the link should have inverted styling\n * default is false.\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * URL for anchor link navigation. Renders as a native <a> element.\n */\n href: {\n type: String,\n default: null,\n },\n\n /**\n * Vue Router destination. Renders as a <router-link>.\n * Takes precedence over href when both are provided.\n * @see https://router.vuejs.org/api/interfaces/RouterLinkProps.html#to\n */\n to: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * When true, navigation replaces the current history entry instead of pushing.\n * Only applies when `to` is provided.\n * @values true, false\n */\n replace: {\n type: Boolean,\n default: false,\n },\n },\n\n data () {\n return {\n LINK_KIND_MODIFIERS,\n };\n },\n\n computed: {\n computedTag () {\n if (this.to) {\n return resolveComponent('RouterLink');\n }\n return 'a';\n },\n\n computedAttrs () {\n if (this.to) {\n return {\n to: this.to,\n replace: this.replace,\n };\n }\n return {\n href: this.href || 'javascript:void(0)',\n };\n },\n },\n\n methods: {\n getLinkClasses () {\n return [\n 'd-link',\n getLinkKindModifier(this.kind, this.inverted),\n ];\n },\n },\n};\n</script>\n"],"mappings":"0PAqBA,IAAK,EAAU,CACb,aAAc,CAAE,KAAM,EAAG,CACzB,KAAM,SAEN,MAAO,CAKL,KAAM,CACJ,KAAM,OACN,QAAS,GACT,UAAW,EAAM,CACf,OAAO,EAAA,cAAc,SAAS,EAAK,EAEtC,CAOD,SAAU,CACR,KAAM,QACN,QAAS,GACV,CAKD,KAAM,CACJ,KAAM,OACN,QAAS,KACV,CAOD,GAAI,CACF,KAAM,CAAC,OAAQ,OAAO,CACtB,QAAS,KACV,CAOD,QAAS,CACP,KAAM,QACN,QAAS,GACV,CACF,CAED,MAAQ,CACN,MAAO,CACL,oBAAA,EAAA,oBACD,EAGH,SAAU,CACR,aAAe,CAIb,OAHI,KAAK,IACP,EAAA,EAAA,kBAAwB,aAAa,CAEhC,KAGT,eAAiB,CAOf,OANI,KAAK,GACA,CACL,GAAI,KAAK,GACT,QAAS,KAAK,QACf,CAEI,CACL,KAAM,KAAK,MAAQ,qBACpB,EAEJ,CAED,QAAS,CACP,gBAAkB,CAChB,MAAO,CACL,SACA,EAAA,oBAAoB,KAAK,KAAM,KAAK,SAAS,CAC9C,EAEJ,CACF,iGA9GQ,EAAA,YAAW,EAAA,EAAA,EAAA,YAON,CANT,MAAO,EAAA,gBAAc,CACtB,UAAQ,WACA,EAAA,cAAa,CAAA,2BAGb,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,UAAA,CAAA,CAAA"}