{"version":3,"file":"message.mjs","sources":["../../../../../../packages/components/message/src/message.ts"],"sourcesContent":["import { isClient, buildProp, definePropType, mutable } from '@hongluan-ui/utils'\n\nimport type { VNode, ExtractPropTypes, AppContext } from 'vue'\nimport type { Mutable } from '@hongluan-ui/utils'\nimport type MessageConstructor from './message.vue'\n\nexport const messageTypes = ['success', 'info', 'warning', 'error', 'danger'] as const\nexport type messageType = typeof messageTypes[number]\n\nexport const aligns = ['left', 'center', 'right'] as const\nexport interface MessageConfigContext {\n  max?: number\n}\n\nexport const messageDefaults = mutable({\n  /**\n   * @description custom class name for Message\n   */\n  customClass: '',\n  /**\n   * @description the text align\n   */\n  textAlign: 'left',\n  /**\n   * @description whether `message` is treated as HTML string\n   */\n  dangerouslyUseHTMLString: false,\n  /**\n   * @description display duration, millisecond. If set to 0, it will not turn off automatically\n   */\n  duration: 3000,\n  /**\n   * @description message dom id\n   */\n  id: '',\n  /**\n   * @description message text\n   */\n  message: '',\n  /**\n   * @description callback function when closed with the message instance as the parameter\n   */\n  onClose: undefined,\n  /**\n   * @description whether to show a close button\n   */\n  showClose: false,\n  /**\n   * @description message type\n   */\n  type: 'info',\n  /**\n   * @description set the distance to the top of viewport\n   */\n  offset: 16,\n  /**\n   * @description input box size\n   */\n  zIndex: 0,\n  /**\n   * @description merge messages with the same content, type of VNode message is not supported\n   */\n  grouping: false,\n  /**\n   * @description The number of repetitions, similar to badge, is used as the initial number when used with `grouping`\n   */\n  repeatNum: 1,\n  appendTo: isClient ? document.body : (undefined as never),\n} as const)\n\nexport const messageProps = {\n  customClass: {\n    type: String,\n    default: messageDefaults.customClass,\n  },\n  textAlign: buildProp({\n    type: String,\n    values: aligns,\n    default: messageDefaults.textAlign,\n  } as const),\n  dangerouslyUseHTMLString: {\n    type: Boolean,\n    default: messageDefaults.dangerouslyUseHTMLString,\n  },\n  duration: {\n    type: Number,\n    default: messageDefaults.duration,\n  },\n  id: {\n    type: String,\n    default: messageDefaults.id,\n  },\n  message: buildProp({\n    type: definePropType<string | VNode | (() => VNode)>([\n      String,\n      Object,\n      Function,\n    ]),\n    default: messageDefaults.message,\n  }),\n  icon: buildProp({\n    type: definePropType<VNode>(Object),\n  }),\n  onClose: buildProp({\n    type: definePropType<() => void>(Function),\n    required: false,\n  }),\n  showClose: {\n    type: Boolean,\n    default: messageDefaults.showClose,\n  },\n  type: buildProp({\n    type: String,\n    values: messageTypes,\n    default: messageDefaults.type,\n  } as const),\n  offset: {\n    type: Number,\n    default: messageDefaults.offset,\n  },\n  zIndex: {\n    type: Number,\n    default: messageDefaults.zIndex,\n  },\n  grouping: {\n    type: Boolean,\n    default: messageDefaults.grouping,\n  },\n  repeatNum: {\n    type: Number,\n    default: messageDefaults.repeatNum,\n  },\n} as const\nexport type MessageProps = ExtractPropTypes<typeof messageProps>\n\nexport const messageEmits = {\n  destroy: () => true,\n}\nexport type MessageEmits = typeof messageEmits\n\nexport type MessageInstance = InstanceType<typeof MessageConstructor>\n\nexport type MessageOptions = Partial<Mutable<\nOmit<MessageProps, 'id'> & {\n  appendTo?: HTMLElement | string\n}\n>>\nexport type MessageParams = MessageOptions | MessageOptions['message']\nexport type MessageParamsNormalized = Omit<MessageProps, 'id'> & {\n  /**\n   * @description set the root element for the message, default to `document.body`\n   */\n  appendTo: HTMLElement\n}\nexport type MessageOptionsWithType = Omit<MessageOptions, 'type'>\nexport type MessageParamsWithType =\n  | MessageOptionsWithType\n  | MessageOptions['message']\n\nexport interface MessageHandler {\n  /**\n   * @description close the Message\n   */\n  close: () => void\n}\n\nexport type MessageFn = {\n  (options?: MessageParams, appContext?: null | AppContext): MessageHandler\n  closeAll(type?: messageType): void\n}\nexport type MessageTypedFn = (\n  options?: MessageParamsWithType,\n  appContext?: null | AppContext\n) => MessageHandler\n\nexport interface Message extends MessageFn {\n  success: MessageTypedFn\n  warning: MessageTypedFn\n  info: MessageTypedFn\n  error: MessageTypedFn\n  danger: MessageTypedFn\n}\n"],"names":[],"mappings":"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"}