vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 5.82 kB
Source Map (JSON)
{"version":3,"file":"result.vue2.cjs","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","__props","props","useProps","createSizeProp","value","resultTypes","createIconProp","slots","_useSlots","nh","useNameHelper","icons","useIcons","predefinedIcons","computed","iconComp","hasTitle","hasIcon","hasDescription","className","style","_createElementBlock","_normalizeClass","_unref","_renderSlot","_ctx","_createVNode","Renderer","Icon","_mergeProps","_createTextVNode","_toDisplayString"],"mappings":"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"}