UNPKG

@extclp/vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

1 lines 2.7 kB
{"version":3,"file":"linker.vue2.mjs","sources":["../../../components/linker/linker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Icon } from '@/components/icon'\n\nimport { computed } from 'vue'\n\nimport { createIconProp, emitEvent, useNameHelper, useProps } from '@vexip-ui/config'\nimport { linkerProps } from './props'\n\nimport type { LinkerType } from './symbol'\n\nconst linkerTypes = Object.freeze<LinkerType[]>([\n 'default',\n 'primary',\n 'success',\n 'error',\n 'warning',\n 'info'\n])\n\ndefineOptions({ name: 'Linker' })\n\nconst _props = defineProps(linkerProps)\nconst props = useProps('linker', _props, {\n to: {\n default: null,\n static: true\n },\n type: {\n default: 'default' as LinkerType,\n validator: (value: LinkerType) => linkerTypes.includes(value)\n },\n icon: createIconProp(),\n underline: false,\n disabled: false,\n target: '_blank'\n})\n\nconst nh = useNameHelper('linker')\n\nconst className = computed(() => {\n return {\n [nh.b()]: true,\n [nh.bs('vars')]: true,\n [nh.bm('inherit')]: props.inherit,\n [nh.bm(props.type)]: props.type !== 'default',\n [nh.bm('disabled')]: props.disabled,\n [nh.bm('underline')]: props.underline\n }\n})\n\nfunction handleClick(event: MouseEvent) {\n if (props.disabled) {\n event.preventDefault()\n }\n\n emitEvent(props.onClick, event)\n}\n</script>\n\n<template>\n <a\n :class=\"className\"\n :href=\"props.to\"\n tabindex=\"0\"\n :target=\"props.target\"\n @click=\"handleClick\"\n >\n <slot name=\"icon\">\n <Icon v-if=\"props.icon\" :class=\"nh.be('icon')\" :icon=\"props.icon\"></Icon>\n </slot>\n <slot></slot>\n </a>\n</template>\n"],"names":["linkerTypes","props","useProps","__props","value","createIconProp","nh","useNameHelper","className","computed","handleClick","event","emitEvent"],"mappings":";;;;;;;;;;AAUM,UAAAA,IAAc,OAAO,OAAqB;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD,GAKKC,IAAQC,EAAS,UADRC,GAC0B;AAAA,MACvC,IAAI;AAAA,QACF,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,WAAW,CAACC,MAAsBJ,EAAY,SAASI,CAAK;AAAA,MAC9D;AAAA,MACA,MAAMC,EAAe;AAAA,MACrB,WAAW;AAAA,MACX,UAAU;AAAA,MACV,QAAQ;AAAA,IAAA,CACT,GAEKC,IAAKC,EAAc,QAAQ,GAE3BC,IAAYC,EAAS,OAClB;AAAA,MACL,CAACH,EAAG,EAAE,CAAC,GAAG;AAAA,MACV,CAACA,EAAG,GAAG,MAAM,CAAC,GAAG;AAAA,MACjB,CAACA,EAAG,GAAG,SAAS,CAAC,GAAGL,EAAM;AAAA,MAC1B,CAACK,EAAG,GAAGL,EAAM,IAAI,CAAC,GAAGA,EAAM,SAAS;AAAA,MACpC,CAACK,EAAG,GAAG,UAAU,CAAC,GAAGL,EAAM;AAAA,MAC3B,CAACK,EAAG,GAAG,WAAW,CAAC,GAAGL,EAAM;AAAA,IAC9B,EACD;AAED,aAASS,EAAYC,GAAmB;AACtC,MAAIV,EAAM,YACRU,EAAM,eAAe,GAGbC,EAAAX,EAAM,SAASU,CAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;"}