UNPKG

vexip-ui

Version:

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

1 lines 3.02 kB
{"version":3,"file":"linker.vue2.cjs","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","__props","props","useProps","value","createIconProp","nh","useNameHelper","className","computed","handleClick","event","emitEvent","_createElementBlock","_unref","_renderSlot","_ctx","_createBlock","Icon","_normalizeClass"],"mappings":"gQAUM,MAAAA,EAAc,OAAO,OAAqB,CAC9C,UACA,UACA,UACA,QACA,UACA,MAAA,CACD,EAIKC,EAASC,EACTC,EAAQC,EAAAA,SAAS,SAAUH,EAAQ,CACvC,GAAI,CACF,QAAS,KACT,OAAQ,EACV,EACA,KAAM,CACJ,QAAS,UACT,UAAYI,GAAsBL,EAAY,SAASK,CAAK,CAC9D,EACA,KAAMC,EAAAA,eAAe,EACrB,UAAW,GACX,SAAU,GACV,OAAQ,QAAA,CACT,EAEKC,EAAKC,gBAAc,QAAQ,EAE3BC,EAAYC,EAAAA,SAAS,KAClB,CACL,CAACH,EAAG,EAAE,CAAC,EAAG,GACV,CAACA,EAAG,GAAG,MAAM,CAAC,EAAG,GACjB,CAACA,EAAG,GAAG,SAAS,CAAC,EAAGJ,EAAM,QAC1B,CAACI,EAAG,GAAGJ,EAAM,IAAI,CAAC,EAAGA,EAAM,OAAS,UACpC,CAACI,EAAG,GAAG,UAAU,CAAC,EAAGJ,EAAM,SAC3B,CAACI,EAAG,GAAG,WAAW,CAAC,EAAGJ,EAAM,SAC9B,EACD,EAED,SAASQ,EAAYC,EAAmB,CAClCT,EAAM,UACRS,EAAM,eAAe,EAGbC,YAAAV,EAAM,QAASS,CAAK,CAAA,6BAK9BE,EAAA,mBAWI,IAAA,CAVD,uBAAOL,EAAS,KAAA,EAChB,KAAMM,EAAAA,MAAKZ,CAAA,EAAC,GACb,SAAS,IACR,OAAQY,EAAAA,MAAKZ,CAAA,EAAC,OACd,QAAOQ,CAAA,GAERK,EAAAA,WAEOC,mBAFP,IAEO,CADOF,QAAAZ,CAAA,EAAM,kBAAlB,EAAAe,cAAyEH,EAAAA,MAAAI,CAAA,EAAA,OAAhD,MAAKC,EAAE,eAAAL,EAAA,MAAER,CAAA,EAAC,GAAE,MAAA,CAAA,EAAW,KAAMQ,EAAAA,MAAKZ,CAAA,EAAC,IAAA,0DAE9Da,aAAaC,EAAA,OAAA,SAAA,CAAA"}