{"version":3,"file":"useMessage2.mjs","sources":["../../../../../../packages/hooks/web/useMessage.ts"],"sourcesContent":["import { h } from 'vue'\nimport { CheckCircleFilled, CloseCircleFilled, InfoCircleFilled } from '@ant-design/icons-vue'\nimport { message as Message, Modal, notification } from 'ant-design-vue'\nimport { isString } from '@tav-ui/utils/is'\nimport type { ModalFunc, ModalFuncProps } from 'ant-design-vue/lib/modal/Modal'\nimport type { ConfigProps, NotificationArgsProps } from 'ant-design-vue/lib/notification'\n\nexport interface NotifyApi {\n  info(config: NotificationArgsProps): void\n  success(config: NotificationArgsProps): void\n  error(config: NotificationArgsProps): void\n  warn(config: NotificationArgsProps): void\n  warning(config: NotificationArgsProps): void\n  open(args: NotificationArgsProps): void\n  close(key: string): void\n  config(options: ConfigProps): void\n  destroy(): void\n}\n\nexport declare type NotificationPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'\nexport declare type IconType = 'success' | 'info' | 'error' | 'warning'\nexport interface ModalOptionsEx extends Omit<ModalFuncProps, 'iconType'> {\n  iconType: 'warning' | 'success' | 'error' | 'info'\n}\nexport type ModalOptionsPartial = Partial<ModalOptionsEx> & Pick<ModalOptionsEx, 'content'>\n\ninterface ConfirmOptions {\n  info: ModalFunc\n  success: ModalFunc\n  error: ModalFunc\n  warn: ModalFunc\n  warning: ModalFunc\n}\n\nfunction getIcon(iconType: string) {\n  if (iconType === 'warning') return h(InfoCircleFilled, { class: ['modal-icon-warning'] })\n  else if (iconType === 'success') return h(CheckCircleFilled, { class: ['modal-icon-success'] })\n  else if (iconType === 'info') return h(InfoCircleFilled, { class: ['modal-icon-info'] })\n  else return h(CloseCircleFilled, { class: ['modal-icon-error'] })\n}\n\nfunction renderContent({ content }: Pick<ModalOptionsEx, 'content'>): any {\n  if (isString(content)) return h('div', {}, `${content as string}`)\n  else return content\n}\n\n/**\n * @description: Create confirmation box\n */\nfunction createConfirm(options: ModalOptionsEx): ConfirmOptions {\n  const iconType = options.iconType || 'warning'\n  Reflect.deleteProperty(options, 'iconType')\n  const opt: ModalFuncProps = {\n    centered: true,\n    icon: getIcon(iconType),\n    ...options,\n    content: renderContent(options),\n  }\n  return Modal.confirm(opt) as unknown as ConfirmOptions\n}\n\nconst getBaseOptions = () => {\n  return {\n    okText: '确定',\n    centered: true,\n  }\n}\n\nfunction createModalOptions(options: ModalOptionsPartial, icon: string): ModalOptionsPartial {\n  return {\n    ...getBaseOptions(),\n    ...options,\n    content: renderContent(options),\n    icon: getIcon(icon),\n  }\n}\n\nfunction createSuccessModal(options: ModalOptionsPartial) {\n  return Modal.success(createModalOptions(options, 'success'))\n}\n\nfunction createErrorModal(options: ModalOptionsPartial) {\n  return Modal.error(createModalOptions(options, 'close'))\n}\n\nfunction createInfoModal(options: ModalOptionsPartial) {\n  return Modal.info(createModalOptions(options, 'info'))\n}\n\nfunction createWarningModal(options: ModalOptionsPartial) {\n  return Modal.warning(createModalOptions(options, 'warning'))\n}\n\nnotification.config({\n  placement: 'topRight',\n  duration: 3,\n})\n\n/**\n * @description: message\n */\nexport function useMessage() {\n  return {\n    createMessage: Message,\n    notification: notification as NotifyApi,\n    createConfirm,\n    createSuccessModal,\n    createErrorModal,\n    createInfoModal,\n    createWarningModal,\n  }\n}\n"],"names":["Message"],"mappings":"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"}