@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 4.52 kB
Source Map (JSON)
{"version":3,"file":"result.vue2.mjs","sources":["../../../components/result/result.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Icon } from '@/components/icon'\nimport { Renderer } from '@/components/renderer'\n\nimport { computed } from 'vue'\n\nimport { createIconProp, createSizeProp, useIcons, useNameHelper, useProps } from '@vexip-ui/config'\nimport { resultProps } from './props'\nimport { resultTypes } from './symbol'\n\nimport type { ResultSlots } from './symbol'\n\ndefineOptions({ name: 'Result' })\n\nconst _props = defineProps(resultProps)\nconst props = useProps('result', _props, {\n title: '',\n size: createSizeProp(),\n type: {\n default: 'primary',\n validator: value => resultTypes.includes(value)\n },\n icon: createIconProp(),\n iconColor: '',\n description: '',\n slots: () => ({})\n})\n\nconst slots = defineSlots<ResultSlots>()\n\nconst nh = useNameHelper('result')\nconst icons = useIcons()\n\nconst predefinedIcons = computed(() => ({\n primary: icons.value.info,\n info: icons.value.info,\n success: icons.value.success,\n warning: icons.value.warning,\n error: icons.value.error\n}))\n\nconst iconComp = computed(() => {\n return props.icon ? { icon: props.icon } : predefinedIcons.value[props.type]\n})\nconst hasTitle = computed(() => !!(slots.title || props.title || props.slots.title))\nconst hasIcon = computed(() => !!(slots.icon || props.type || props.icon || props.slots.icon))\nconst hasDescription = computed(\n () => !!(slots.description || props.description || props.slots.description)\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,\n [nh.bm(props.size)]: props.size !== 'default'\n }\n})\nconst style = computed(() => {\n if (props.iconColor) {\n return nh.cvm({\n 'icon-color': props.iconColor\n })\n }\n\n return {}\n})\n</script>\n\n<template>\n <div :class=\"className\" :style=\"style\">\n <div v-if=\"hasIcon\" :class=\"nh.be('icon')\">\n <slot name=\"icon\">\n <Renderer :renderer=\"props.slots.icon\">\n <Icon v-bind=\"iconComp\" :class=\"nh.be('icon')\" :style=\"{ color: props.iconColor }\"></Icon>\n </Renderer>\n </slot>\n </div>\n <div v-if=\"hasTitle\" :class=\"nh.be('title')\">\n <slot name=\"title\">\n <Renderer :renderer=\"props.slots.title\">\n {{ props.title }}\n </Renderer>\n </slot>\n </div>\n <div v-if=\"hasDescription\" :class=\"nh.be('description')\">\n <slot name=\"description\">\n <Renderer :renderer=\"props.slots.description\">\n {{ props.description }}\n </Renderer>\n </slot>\n </div>\n <div v-if=\"slots.extra || props.slots.extra\" :class=\"nh.be('extra')\">\n <slot name=\"extra\">\n <Renderer :renderer=\"props.slots.extra\"></Renderer>\n </slot>\n </div>\n </div>\n</template>\n"],"names":["props","useProps","__props","createSizeProp","value","resultTypes","createIconProp","slots","_useSlots","nh","useNameHelper","icons","useIcons","predefinedIcons","computed","iconComp","hasTitle","hasIcon","hasDescription","className","style"],"mappings":";;;;;;;;;;;;;AAeM,UAAAA,IAAQC,EAAS,UADRC,GAC0B;AAAA,MACvC,OAAO;AAAA,MACP,MAAMC,EAAe;AAAA,MACrB,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,WAAW,CAAAC,MAASC,EAAY,SAASD,CAAK;AAAA,MAChD;AAAA,MACA,MAAME,EAAe;AAAA,MACrB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO,OAAO,CAAC;AAAA,IAAA,CAChB,GAEKC,IAAQC,EAAA,GAERC,IAAKC,EAAc,QAAQ,GAC3BC,IAAQC,EAAS,GAEjBC,IAAkBC,EAAS,OAAO;AAAA,MACtC,SAASH,EAAM,MAAM;AAAA,MACrB,MAAMA,EAAM,MAAM;AAAA,MAClB,SAASA,EAAM,MAAM;AAAA,MACrB,SAASA,EAAM,MAAM;AAAA,MACrB,OAAOA,EAAM,MAAM;AAAA,IAAA,EACnB,GAEII,IAAWD,EAAS,MACjBd,EAAM,OAAO,EAAE,MAAMA,EAAM,KAAS,IAAAa,EAAgB,MAAMb,EAAM,IAAI,CAC5E,GACKgB,IAAWF,EAAS,MAAM,CAAC,EAAEP,EAAM,SAASP,EAAM,SAASA,EAAM,MAAM,MAAM,GAC7EiB,IAAUH,EAAS,MAAM,CAAC,EAAEP,EAAM,QAAQP,EAAM,QAAQA,EAAM,QAAQA,EAAM,MAAM,KAAK,GACvFkB,IAAiBJ;AAAA,MACrB,MAAM,CAAC,EAAEP,EAAM,eAAeP,EAAM,eAAeA,EAAM,MAAM;AAAA,IACjE,GACMmB,IAAYL,EAAS,OAClB;AAAA,MACL,CAACL,EAAG,EAAE,CAAC,GAAG;AAAA,MACV,CAACA,EAAG,GAAG,MAAM,CAAC,GAAG;AAAA,MACjB,CAACA,EAAG,GAAG,SAAS,CAAC,GAAGT,EAAM;AAAA,MAC1B,CAACS,EAAG,GAAGT,EAAM,IAAI,CAAC,GAAGA,EAAM;AAAA,MAC3B,CAACS,EAAG,GAAGT,EAAM,IAAI,CAAC,GAAGA,EAAM,SAAS;AAAA,IACtC,EACD,GACKoB,IAAQN,EAAS,MACjBd,EAAM,YACDS,EAAG,IAAI;AAAA,MACZ,cAAcT,EAAM;AAAA,IAAA,CACrB,IAGI,CAAC,CACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}