tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 8.74 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/message/index.ts"],"sourcesContent":["import { createApp, defineComponent, ref, Ref, h, VNode, App, nextTick } from 'vue';\nimport Message from './message';\nimport { isBrowser } from '../shared';\nimport { TdMessageProps } from './type';\n\nimport './style';\n\ninterface MessageActionOptionsType extends TdMessageProps {\n context?: Element;\n}\n\nconst instanceMap: Map<\n Element,\n {\n context: Element;\n visible: Ref<boolean>;\n }\n> = new Map();\n\nconst defaultProps: MessageActionOptionsType = {\n align: 'left',\n closeBtn: false,\n content: '',\n duration: 3000,\n theme: 'info',\n visible: false,\n zIndex: 5000,\n context: isBrowser ? document.body : null,\n onDurationEnd: () => {},\n onCloseBtnClick: () => {},\n};\n\n/** 展示普通消息 */\nMessage.info = (options?: MessageActionOptionsType | string) => {\n create({ ...parseOptions(options), theme: 'info' });\n};\n\n/** 展示成功消息 */\nMessage.success = (options?: MessageActionOptionsType | string) => {\n create({ ...parseOptions(options), theme: 'success' });\n};\n\n/** 展示警示消息 */\nMessage.warning = (options?: MessageActionOptionsType | string) => {\n create({ ...parseOptions(options), theme: 'warning' });\n};\n\n/** 展示错误消息 */\nMessage.error = (options?: MessageActionOptionsType | string) => {\n create({ ...parseOptions(options), theme: 'error' });\n};\n\n/** 关闭全部 */\nMessage.closeAll = () => {\n if (instanceMap instanceof Map) {\n for (const [key, value] of instanceMap) {\n const { context, visible } = value;\n destroy(context as Element, key);\n visible.value = false;\n }\n }\n};\n\nMessage.install = (app: App, name = '') => {\n app.component(name || Message.name, Message);\n app.config.globalProperties.$message = Message;\n};\n\nexport const MessagePlugin = Message;\nexport default MessagePlugin;\n\ndeclare module 'vue' {\n // Bind to `this` keyword\n export interface ComponentCustomProperties {\n $message: typeof Message;\n }\n}\n\nfunction destroy(context: Element, root: Element) {\n if (context.contains(root)) {\n context.removeChild(root);\n if (instanceMap.has(root)) {\n instanceMap.delete(root);\n }\n }\n}\n\nfunction create(props: MessageActionOptionsType): void {\n if (!isBrowser) return;\n\n const { context, ...otherOptions } = props;\n\n if (!context) {\n console.error('未找到组件, 请确认 context 是否正确');\n return;\n }\n\n const root = document.createElement('div');\n context.appendChild(root);\n const visible = ref(false);\n\n const component = defineComponent({\n render: (): VNode =>\n // @ts-ignore\n h(Message, {\n ...otherOptions,\n visible: visible.value,\n onDurationEnd: () => {\n otherOptions.onDurationEnd?.();\n visible.value = false;\n },\n onCloseBtnClick: (context: { e: MouseEvent }) => {\n otherOptions.onCloseBtnClick?.(context);\n visible.value = false;\n },\n onAfterLeave: () => {\n destroy(context, root);\n },\n }),\n });\n\n createApp(component).mount(root);\n\n instanceMap.set(root, {\n context,\n visible,\n });\n\n nextTick(() => {\n visible.value = true;\n });\n}\n\nfunction parseOptions(content?: MessageActionOptionsType | string) {\n return typeof content === 'string' ? { ...defaultProps, content } : { ...defaultProps, ...content };\n}\n"],"names":["instanceMap","Map","defaultProps","align","closeBtn","content","duration","theme","visible","zIndex","context","isBrowser","document","body","onDurationEnd","onCloseBtnClick","Message","info","options","create","_objectSpread","parseOptions","success","warning","error","closeAll","_iterator","_createForOfIteratorHelper","_step","s","n","done","_step$value","_slicedToArray","value","key","destroy","err","e","f","install","app","name","arguments","length","undefined","component","config","globalProperties","$message","MessagePlugin","root","contains","removeChild","has","delete","props","otherOptions","_objectWithoutProperties","_excluded","console","createElement","appendChild","ref","defineComponent","render","h","_otherOptions$onDurat","call","_otherOptions$onClose","onAfterLeave","createApp","mount","set","nextTick"],"mappings":"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"}