{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/msg/index.ts"],"sourcesContent":["import { h, render, isVNode } from 'vue'\nimport Msg from './src/msg.vue'\nimport { SFCWithInstall, withInstall } from '@touchvue/utils'\nimport { generateUUID, removeElement } from '@touchvue/utils'\n\nconst ToMsg: SFCWithInstall<typeof Msg> = withInstall(Msg)\nexport * from './src/instance'\n\n// 定义选项接口\nexport interface MsgOptions {\n\ttitle?: string\n\tcontent?: string\n\tpic?: string\n\tpicPosition?: string\n\tposition?: string\n\theight?: string | number\n\tconfirmButtonText?: string\n\tcancelButtonText?: string\n\tglobal?: boolean\n\tshow?: boolean\n\t[key: string]: any\n}\n\n// 创建msg实例的函数\nfunction createMsgInstance(app: any, ...args: any[]): Promise<boolean> {\n\tif (args.length === 0) return Promise.reject('无效的 msg 内容')\n\n\treturn new Promise((resolve, reject) => {\n\t\tconst defaultOptions: MsgOptions = {\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\tpic: '',\n\t\t\tpicPosition: 'left',\n\t\t\tposition: 'center',\n\t\t\theight: 'auto',\n\t\t\tconfirmButtonText: '确定',\n\t\t\tcancelButtonText: '取消',\n\t\t\tglobal: false,\n\t\t\tshow: false\n\t\t}\n\n\t\tlet options: MsgOptions = { ...defaultOptions }\n\n\t\t// 处理参数\n\t\tif (args.length === 1) {\n\t\t\tif (typeof args[0] === 'object') {\n\t\t\t\toptions = { ...defaultOptions, ...args[0] }\n\t\t\t} else {\n\t\t\t\toptions = { ...defaultOptions, content: String(args[0]) }\n\t\t\t}\n\t\t} else if (args.length >= 2) {\n\t\t\tif (typeof args[0] === 'string') {\n\t\t\t\tswitch (args[0]) {\n\t\t\t\t\tcase 'success':\n\t\t\t\t\t\toptions.pic = 'success'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\toptions.pic = 'error'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'help':\n\t\t\t\t\t\toptions.pic = 'help'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'loading':\n\t\t\t\t\t\toptions.pic = 'loading'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'info':\n\t\t\t\t\t\toptions.pic = 'info'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\toptions.pic = 'success'\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof args[1] === 'object') {\n\t\t\t\toptions = { ...options, ...args[1] }\n\t\t\t}\n\t\t}\n\n\t\t// 创建容器\n\t\tconst body = document.body\n\t\tconst uuid = `msg-${generateUUID()}`\n\t\tconst container = document.createElement('div')\n\t\tcontainer.setAttribute('id', uuid)\n\t\tbody.appendChild(container)\n\n\t\t// 处理VNode类型的content和title，避免同时作为props和slots传递\n\t\tconst isTitleVNode = isVNode(options.title)\n\t\tconst isDetailVNode = isVNode(options.detail)\n\n\t\tconst props = {\n\t\t\t...options,\n\t\t\t...(isTitleVNode ? { title: undefined } : {}),\n\t\t\t...(isDetailVNode ? { detail: undefined } : {})\n\t\t}\n\n\t\t// 创建VNode并渲染\n\t\tconst vnode = h(\n\t\t\tMsg,\n\t\t\t{\n\t\t\t\t...props,\n\t\t\t\tonClose: () => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\trender(null, container)\n\t\t\t\t\t\tremoveElement(container)\n\t\t\t\t\t\treject(false)\n\t\t\t\t\t}, 200)\n\t\t\t\t},\n\t\t\t\tonConfirm: () => {\n\t\t\t\t\trender(null, container)\n\t\t\t\t\tremoveElement(container)\n\t\t\t\t\tresolve(true)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: isTitleVNode ? options.title : null,\n\t\t\t\tdetail: isDetailVNode ? options.detail : null\n\t\t\t}\n\t\t)\n\n\t\t// 设置应用上下文\n\t\tif (app && app._context) {\n\t\t\tvnode.appContext = app._context\n\t\t}\n\n\t\t// 渲染组件到容器\n\t\trender(vnode, container)\n\n\t\t// 等待DOM挂载完成后调用open方法\n\t\tconst componentInstance = vnode.component\n\t\trequestAnimationFrame(() => {\n\t\t\tif (componentInstance && componentInstance.exposed && typeof componentInstance.exposed.open === 'function') {\n\t\t\t\tcomponentInstance.exposed.open()\n\t\t\t}\n\t\t})\n\t})\n}\n\n// 创建$msg函数工厂\nfunction createMsgFunction(app: any) {\n\tconst $msg = function (...args: any[]): Promise<boolean> {\n\t\tapp = app ? app : ToMsg._context\n\t\treturn createMsgInstance(app, ...args)\n\t}\n\n\t// 添加便捷方法\n\t$msg.success = function (options: MsgOptions): Promise<boolean> {\n\t\t// 成功提示默认不需要取消按钮\n\t\tif (typeof options === 'object') {\n\t\t\toptions.cancelButtonText = ''\n\t\t} else {\n\t\t\toptions = { cancelButtonText: '' }\n\t\t}\n\t\treturn $msg('success', options)\n\t}\n\n\t$msg.error = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('error', options)\n\t}\n\n\t$msg.help = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('help', options)\n\t}\n\n\t$msg.loading = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('loading', options)\n\t}\n\n\t$msg.info = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('info', options)\n\t}\n\n\t$msg.confirm = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('help', options)\n\t}\n\n\treturn $msg\n}\n\nexport const $msg = createMsgFunction(null)\n\nconst originInstall = ToMsg.install\n\nToMsg.install = app => {\n\toriginInstall(app)\n\tToMsg._context = app\n\tconst appMsg = createMsgFunction(app)\n\tapp.config.globalProperties.$msg = appMsg\n}\n\nexport default $msg\n\nexport { ToMsg }\n"],"names":["$msg"],"mappings":"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"}