UNPKG

tdesign-vue-next

Version:
1 lines 9.15 kB
{"version":3,"file":"message.mjs","sources":["../../../components/message/message.tsx"],"sourcesContent":["import { defineComponent, h, onBeforeMount, onMounted, computed, ref } from 'vue';\nimport {\n InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n HelpCircleFilledIcon as TdHelpCircleFilledIcon,\n CloseIcon as TdCloseIcon,\n} from 'tdesign-icons-vue-next';\n\nimport TLoading from '../loading';\nimport { THEME_LIST } from './consts';\nimport props from './props';\nimport { useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { fadeIn, fadeOut } from './utils';\n\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TMessage',\n props: {\n ...props,\n placement: String, // just for animation\n },\n setup(props, { slots, expose }) {\n const COMPONENT_NAME = usePrefixClass('message');\n const { InfoCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, HelpCircleFilledIcon, CloseIcon } =\n useGlobalIcon({\n InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n HelpCircleFilledIcon: TdHelpCircleFilledIcon,\n CloseIcon: TdCloseIcon,\n });\n const classPrefix = usePrefixClass();\n\n const renderTNode = useTNodeJSX();\n const renderContent = useContent();\n\n const msgRef = ref(null);\n const timer = ref(null);\n\n const classes = computed(() => {\n const status: Record<string, boolean> = {};\n THEME_LIST.forEach((t) => (status[`${classPrefix.value}-is-${t}`] = props.theme === t));\n return [\n COMPONENT_NAME.value,\n status,\n {\n [`${classPrefix.value}-is-closable`]: props.closeBtn || slots.closeBtn,\n },\n ];\n });\n\n const close = (e?: MouseEvent) => {\n props.onClose?.({ trigger: 'close-click', e });\n props.onCloseBtnClick?.({ e });\n };\n\n const clearTimer = () => {\n props.duration && clearTimeout(timer.value);\n };\n\n const setTimer = () => {\n if (!props.duration) {\n return;\n }\n timer.value = Number(\n setTimeout(() => {\n clearTimer();\n const msgDom = msgRef.value as HTMLElement;\n fadeOut(msgDom, props.placement, () => {\n props.onClose?.({ trigger: 'duration-end' });\n props.onDurationEnd?.();\n });\n }, props.duration),\n );\n };\n\n const renderClose = () => {\n const defaultClose = <CloseIcon />;\n return (\n <span class={`${COMPONENT_NAME.value}__close`} onClick={close}>\n {renderTNode('closeBtn', defaultClose)}\n </span>\n );\n };\n\n const renderIcon = () => {\n if (props.icon === false) return;\n if (isFunction(props.icon)) return props.icon(h);\n if (slots.icon) {\n return slots.icon(null);\n }\n const Icon = {\n info: InfoCircleFilledIcon,\n success: CheckCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n error: ErrorCircleFilledIcon,\n question: HelpCircleFilledIcon,\n loading: TLoading,\n }[props.theme];\n return <Icon />;\n };\n\n onBeforeMount(() => {\n props.duration && setTimer();\n });\n\n onMounted(() => {\n const msgDom = msgRef.value;\n fadeIn(msgDom, props.placement);\n });\n\n expose({ close });\n\n return () => (\n <div ref={msgRef} class={classes.value} onMouseenter={clearTimer} onMouseleave={setTimer}>\n {renderIcon()}\n {renderContent('content', 'default')}\n {renderClose()}\n </div>\n );\n },\n});\n"],"names":["defineComponent","name","props","_objectSpread","placement","String","setup","slots","_ref","expose","COMPONENT_NAME","usePrefixClass","_useGlobalIcon","useGlobalIcon","InfoCircleFilledIcon","TdInfoCircleFilledIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","HelpCircleFilledIcon","TdHelpCircleFilledIcon","CloseIcon","TdCloseIcon","classPrefix","renderTNode","useTNodeJSX","renderContent","useContent","msgRef","ref","timer","classes","computed","status","THEME_LIST","forEach","t","concat","value","theme","_defineProperty","closeBtn","close","e","_props2$onClose","_props2$onCloseBtnCli","onClose","trigger","onCloseBtnClick","clearTimer","duration","clearTimeout","setTimer","Number","setTimeout","msgDom","fadeOut","_props2$onClose2","_props2$onDurationEnd","onDurationEnd","renderClose","defaultClose","_createVNode","renderIcon","icon","isFunction","h","Icon","info","success","warning","error","question","loading","TLoading","onBeforeMount","onMounted","fadeIn"],"mappings":"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"}