UNPKG

@extclp/vexip-ui

Version:

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

1 lines 6.05 kB
{"version":3,"file":"result.vue2.mjs","sources":["../../../components/result/result.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Icon } from '@/components/icon'\r\nimport { Renderer } from '@/components/renderer'\r\n\r\nimport { computed } from 'vue'\r\n\r\nimport { createIconProp, createSizeProp, useIcons, useNameHelper, useProps } from '@vexip-ui/config'\r\nimport { resultProps } from './props'\r\nimport { resultTypes } from './symbol'\r\n\r\nimport type { ResultSlots } from './symbol'\r\n\r\ndefineOptions({ name: 'Result' })\r\n\r\nconst _props = defineProps(resultProps)\r\nconst props = useProps('result', _props, {\r\n title: '',\r\n size: createSizeProp(),\r\n type: {\r\n default: 'primary',\r\n validator: value => resultTypes.includes(value),\r\n },\r\n icon: createIconProp(),\r\n iconColor: '',\r\n description: '',\r\n slots: () => ({}),\r\n})\r\n\r\nconst slots = defineSlots<ResultSlots>()\r\n\r\nconst nh = useNameHelper('result')\r\nconst icons = useIcons()\r\n\r\nconst predefinedIcons = computed(() => ({\r\n primary: icons.value.info,\r\n info: icons.value.info,\r\n success: icons.value.success,\r\n warning: icons.value.warning,\r\n error: icons.value.error,\r\n}))\r\n\r\nconst iconComp = computed(() => {\r\n return props.icon ? { icon: props.icon } : predefinedIcons.value[props.type]\r\n})\r\nconst hasTitle = computed(() => !!(slots.title || props.title || props.slots.title))\r\nconst hasIcon = computed(() => !!(slots.icon || props.type || props.icon || props.slots.icon))\r\nconst hasDescription = computed(\r\n () => !!(slots.description || props.description || props.slots.description),\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,\r\n [nh.bm(props.size)]: props.size !== 'default',\r\n }\r\n})\r\nconst style = computed(() => {\r\n if (props.iconColor) {\r\n return nh.cvm({\r\n 'icon-color': props.iconColor,\r\n })\r\n }\r\n\r\n return {}\r\n})\r\n</script>\r\n\r\n<template>\r\n <div :class=\"className\" :style=\"style\">\r\n <div v-if=\"hasIcon\" :class=\"nh.be('icon')\">\r\n <slot name=\"icon\">\r\n <Renderer :renderer=\"props.slots.icon\">\r\n <Icon v-bind=\"iconComp\" :class=\"nh.be('icon')\" :style=\"{ color: props.iconColor }\"></Icon>\r\n </Renderer>\r\n </slot>\r\n </div>\r\n <div v-if=\"hasTitle\" :class=\"nh.be('title')\">\r\n <slot name=\"title\">\r\n <Renderer :renderer=\"props.slots.title\">\r\n {{ props.title }}\r\n </Renderer>\r\n </slot>\r\n </div>\r\n <div v-if=\"hasDescription\" :class=\"nh.be('description')\">\r\n <slot name=\"description\">\r\n <Renderer :renderer=\"props.slots.description\">\r\n {{ props.description }}\r\n </Renderer>\r\n </slot>\r\n </div>\r\n <div v-if=\"slots.extra || props.slots.extra\" :class=\"nh.be('extra')\">\r\n <slot name=\"extra\">\r\n <Renderer :renderer=\"props.slots.extra\"></Renderer>\r\n </slot>\r\n </div>\r\n </div>\r\n</template>\r\n"],"names":["props","useProps","__props","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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"}