@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 3.3 kB
Source Map (JSON)
{"version":3,"file":"linker.vue2.mjs","sources":["../../../components/linker/linker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Icon } from '@/components/icon'\r\n\r\nimport { computed } from 'vue'\r\n\r\nimport { createIconProp, emitEvent, useNameHelper, useProps } from '@vexip-ui/config'\r\nimport { linkerProps } from './props'\r\n\r\nimport type { LinkerType } from './symbol'\r\n\r\nconst linkerTypes = Object.freeze<LinkerType[]>([\r\n 'default',\r\n 'primary',\r\n 'success',\r\n 'error',\r\n 'warning',\r\n 'info',\r\n])\r\n\r\ndefineOptions({ name: 'Linker' })\r\n\r\nconst _props = defineProps(linkerProps)\r\nconst props = useProps('linker', _props, {\r\n to: {\r\n default: null,\r\n static: true,\r\n },\r\n type: {\r\n default: 'default' as LinkerType,\r\n validator: (value: LinkerType) => linkerTypes.includes(value),\r\n },\r\n icon: createIconProp(),\r\n underline: false,\r\n disabled: false,\r\n target: '_blank',\r\n})\r\n\r\nconst nh = useNameHelper('linker')\r\n\r\nconst className = computed(() => {\r\n return {\r\n [nh.b()]: true,\r\n [nh.bs('vars')]: true,\r\n [nh.bm('inherit')]: props.inherit,\r\n [nh.bm(props.type)]: props.type !== 'default',\r\n [nh.bm('disabled')]: props.disabled,\r\n [nh.bm('underline')]: props.underline,\r\n }\r\n})\r\n\r\nfunction handleClick(event: MouseEvent) {\r\n if (props.disabled) {\r\n event.preventDefault()\r\n }\r\n\r\n emitEvent(props.onClick, event)\r\n}\r\n</script>\r\n\r\n<template>\r\n <a\r\n :class=\"className\"\r\n :href=\"props.to\"\r\n tabindex=\"0\"\r\n :target=\"props.target\"\r\n @click=\"handleClick\"\r\n >\r\n <slot name=\"icon\">\r\n <Icon v-if=\"props.icon\" :class=\"nh.be('icon')\" :icon=\"props.icon\"></Icon>\r\n </slot>\r\n <slot></slot>\r\n </a>\r\n</template>\r\n"],"names":["linkerTypes","props","useProps","__props","value","createIconProp","nh","useNameHelper","className","computed","handleClick","event","emitEvent","_createElementBlock","_unref","_renderSlot","_ctx","_createBlock","Icon","_normalizeClass"],"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;2BAK9BE,EAWI,KAAA;AAAA,MAVD,SAAOL,EAAS,KAAA;AAAA,MAChB,MAAMM,EAAKb,CAAA,EAAC;AAAA,MACb,UAAS;AAAA,MACR,QAAQa,EAAKb,CAAA,EAAC;AAAA,MACd,SAAOS;AAAA,IAAA;MAERK,EAEOC,sBAFP,MAEO;AAAA,QADOF,EAAAb,CAAA,EAAM,UAAlB,GAAAgB,EAAyEH,EAAAI,CAAA,GAAA;AAAA;UAAhD,OAAKC,EAAEL,EAAER,CAAA,EAAC,GAAE,MAAA,CAAA;AAAA,UAAW,MAAMQ,EAAKb,CAAA,EAAC;AAAA,QAAA;;MAE9Dc,EAAaC,EAAA,QAAA,SAAA;AAAA,IAAA;;;"}