vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 1.86 kB
Source Map (JSON)
{"version":3,"file":"table-icon.vue2.cjs","sources":["../../../components/table/table-icon.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Icon } from '@/components/icon'\nimport { Renderer } from '@/components/renderer'\n\nimport { computed, inject } from 'vue'\n\nimport { isFunction } from '@vexip-ui/utils'\nimport { TABLE_ACTIONS, TABLE_SLOTS } from './symbol'\n\nimport type { PropType } from 'vue'\nimport type { TableIconName } from './symbol'\n\ndefineOptions({ name: 'TableIcon' })\n\nconst props = defineProps({\n name: {\n type: String as PropType<TableIconName>,\n required: true,\n },\n origin: {\n type: Object,\n default: null,\n },\n})\n\nconst tableActions = inject(TABLE_ACTIONS)!\nconst tableSlots = inject(TABLE_SLOTS)!\n\nconst customIcon = computed(() => tableActions.getIcon(props.name))\n</script>\n\n<template>\n <Renderer\n v-if=\"isFunction(tableSlots[`icon-${name}`])\"\n :renderer=\"tableActions.renderTableSlot\"\n :data=\"{ name: `icon-${name}` }\"\n ></Renderer>\n <Icon v-else-if=\"tableActions.hasIcon(name)\" :icon=\"customIcon\"></Icon>\n <Icon v-else v-bind=\"origin\"></Icon>\n</template>\n"],"names":["props","__props","tableActions","inject","TABLE_ACTIONS","tableSlots","TABLE_SLOTS","customIcon","computed","_unref","isFunction","_createBlock","Renderer","Icon","_openBlock"],"mappings":"+WAcA,MAAMA,EAAQC,EAWRC,EAAeC,SAAOC,eAAa,EACnCC,EAAaF,SAAOG,aAAW,EAE/BC,EAAaC,EAAAA,SAAS,IAAMN,EAAa,QAAQF,EAAM,IAAI,CAAC,eAKxDS,EAAAA,MAAUC,EAAAA,UAAA,EAACD,EAAU,MAAAJ,CAAA,EAAA,QAASJ,EAAI,IAAA,EAAA,CAAA,iBAD1CU,EAAAA,YAIYF,EAAAA,MAAAG,CAAA,EAAA,OAFT,SAAUH,EAAAA,MAAYP,CAAA,EAAC,gBACvB,mBAAsBD,EAAI,IAAA,EAAA,CAAA,+BAEZQ,EAAAA,MAAYP,CAAA,EAAC,QAAQD,EAAI,IAAA,iBAA1CU,cAAuEF,EAAAA,MAAAI,CAAA,EAAA,OAAzB,KAAMN,EAAU,KAAA,qBAC9DO,EAAAA,YAAAH,EAAAA,YAAoCF,iDAAfR,EAAM,MAAA,CAAA,EAAA,KAAA,EAAA"}