{"version":3,"file":"message.mjs","names":[],"sources":["../../../../../../packages/components/message/src/message.ts"],"sourcesContent":["import {\n  buildProps,\n  definePropType,\n  iconPropType,\n  isClient,\n  mutable,\n} from '@element-plus/utils'\n\nimport type { AppContext, ExtractPublicPropTypes, VNode } from 'vue'\nimport type { IconPropType, Mutable } from '@element-plus/utils'\nimport type MessageConstructor from './message.vue'\n\nexport interface MessageProps {\n  /**\n   * @description custom class name for Message\n   */\n  customClass?: string\n  /**\n   * @description whether `message` is treated as HTML string\n   */\n  dangerouslyUseHTMLString?: boolean\n  /**\n   * @description display duration, millisecond. If set to 0, it will not turn off automatically\n   */\n  duration?: number\n  /**\n   * @description custom icon component, overrides `type`\n   */\n  icon?: IconPropType\n  /**\n   * @description message dom id\n   */\n  id?: string\n  /**\n   * @description message text\n   */\n  message?: string | VNode | (() => VNode)\n  /**\n   * @description callback function when closed with the message instance as the parameter\n   */\n  onClose?: () => void\n  /**\n   * @description whether to show a close button\n   */\n  showClose?: boolean\n  /**\n   * @description message type\n   */\n  type?: MessageType\n  /**\n   * @description whether message is plain\n   */\n  plain?: boolean\n  /**\n   * @description set the distance to the top of viewport\n   */\n  offset?: number\n  /**\n   * @description message placement position\n   */\n  placement?: MessagePlacement\n  /**\n   * @description message element zIndex value\n   */\n  zIndex?: number\n  /**\n   * @description merge messages with the same content, type of VNode message is not supported\n   */\n  grouping?: boolean\n  /**\n   * @description The number of repetitions, similar to badge, is used as the initial number when used with `grouping`\n   */\n  repeatNum?: number\n}\n\nexport const messageTypes = [\n  'primary',\n  'success',\n  'info',\n  'warning',\n  'error',\n] as const\n\nexport const messagePlacement = [\n  'top',\n  'top-left',\n  'top-right',\n  'bottom',\n  'bottom-left',\n  'bottom-right',\n] as const\n\nexport const MESSAGE_DEFAULT_PLACEMENT = 'top'\n\nexport type MessageType = (typeof messageTypes)[number]\nexport type MessagePlacement = (typeof messagePlacement)[number]\n/** @deprecated please use `MessageType` instead */\nexport type messageType = MessageType // will be removed in 3.0.0.\n\nexport interface MessageConfigContext {\n  max?: number\n  grouping?: boolean\n  duration?: number\n  offset?: number\n  showClose?: boolean\n  plain?: boolean\n  placement?: string\n}\n\nexport const messageDefaults = mutable({\n  customClass: '',\n  dangerouslyUseHTMLString: false,\n  duration: 3000,\n  icon: undefined,\n  id: '',\n  message: '',\n  onClose: undefined,\n  showClose: false,\n  type: 'info',\n  plain: false,\n  offset: 16,\n  placement: undefined,\n  zIndex: 0,\n  grouping: false,\n  repeatNum: 1,\n  appendTo: isClient ? document.body : (undefined as never),\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `MessageProps` instead.\n */\nexport const messageProps = buildProps({\n  /**\n   * @description custom class name for Message\n   */\n  customClass: {\n    type: String,\n    default: messageDefaults.customClass,\n  },\n  /**\n   * @description whether `message` is treated as HTML string\n   */\n  dangerouslyUseHTMLString: {\n    type: Boolean,\n    default: messageDefaults.dangerouslyUseHTMLString,\n  },\n  /**\n   * @description display duration, millisecond. If set to 0, it will not turn off automatically\n   */\n  duration: {\n    type: Number,\n    default: messageDefaults.duration,\n  },\n  /**\n   * @description custom icon component, overrides `type`\n   */\n  icon: {\n    type: iconPropType,\n    default: messageDefaults.icon,\n  },\n  /**\n   * @description message dom id\n   */\n  id: {\n    type: String,\n    default: messageDefaults.id,\n  },\n  /**\n   * @description message text\n   */\n  message: {\n    type: definePropType<string | VNode | (() => VNode)>([\n      String,\n      Object,\n      Function,\n    ]),\n    default: messageDefaults.message,\n  },\n  /**\n   * @description callback function when closed with the message instance as the parameter\n   */\n  onClose: {\n    type: definePropType<() => void>(Function),\n    default: messageDefaults.onClose,\n  },\n  /**\n   * @description whether to show a close button\n   */\n  showClose: {\n    type: Boolean,\n    default: messageDefaults.showClose,\n  },\n  /**\n   * @description message type\n   */\n  type: {\n    type: String,\n    values: messageTypes,\n    default: messageDefaults.type,\n  },\n  /**\n   * @description whether message is plain\n   */\n  plain: {\n    type: Boolean,\n    default: messageDefaults.plain,\n  },\n  /**\n   * @description set the distance to the top of viewport\n   */\n  offset: {\n    type: Number,\n    default: messageDefaults.offset,\n  },\n  /**\n   * @description message placement position\n   */\n  placement: {\n    type: String,\n    values: messagePlacement,\n    default: messageDefaults.placement,\n  },\n  /**\n   * @description message element zIndex value\n   */\n  zIndex: {\n    type: Number,\n    default: messageDefaults.zIndex,\n  },\n  /**\n   * @description merge messages with the same content, type of VNode message is not supported\n   */\n  grouping: {\n    type: Boolean,\n    default: messageDefaults.grouping,\n  },\n  /**\n   * @description The number of repetitions, similar to badge, is used as the initial number when used with `grouping`\n   */\n  repeatNum: {\n    type: Number,\n    default: messageDefaults.repeatNum,\n  },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `MessageProps` instead.\n */\nexport type MessagePropsPublic = ExtractPublicPropTypes<typeof messageProps>\n\nexport const messageEmits = {\n  destroy: () => true,\n}\nexport type MessageEmits = typeof messageEmits\n\nexport type MessageInstance = InstanceType<typeof MessageConstructor> & unknown\n\nexport type MessageOptions = Partial<\n  Mutable<\n    Omit<MessageProps, 'id'> & {\n      appendTo?: HTMLElement | string\n    }\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  closeAllByPlacement(position: MessagePlacement): void\n}\nexport type MessageTypedFn = (\n  options?: MessageParamsWithType,\n  appContext?: null | AppContext\n) => MessageHandler\n\nexport type Message = MessageFn & {\n  primary: MessageTypedFn\n  success: MessageTypedFn\n  warning: MessageTypedFn\n  info: MessageTypedFn\n  error: MessageTypedFn\n}\n"],"mappings":";;;;;;AA2EA,MAAa,eAAe;CAC1B;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,mBAAmB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,4BAA4B;AAiBzC,MAAa,kBAAkB,QAAQ;CACrC,aAAa;CACb,0BAA0B;CAC1B,UAAU;CACV,MAAM;CACN,IAAI;CACJ,SAAS;CACT,SAAS;CACT,WAAW;CACX,MAAM;CACN,OAAO;CACP,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,UAAU;CACV,WAAW;CACX,UAAU,WAAW,SAAS,OAAQ;CACvC,CAAU;;;;AAKX,MAAa,eAAe,WAAW;CAIrC,aAAa;EACX,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,0BAA0B;EACxB,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,UAAU;EACR,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,MAAM;EACJ,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,IAAI;EACF,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,SAAS;EACP,MAAM,eAA+C;GACnD;GACA;GACA;GACD,CAAC;EACF,SAAS,gBAAgB;EAC1B;CAID,SAAS;EACP,MAAM,eAA2B,SAAS;EAC1C,SAAS,gBAAgB;EAC1B;CAID,WAAW;EACT,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,MAAM;EACJ,MAAM;EACN,QAAQ;EACR,SAAS,gBAAgB;EAC1B;CAID,OAAO;EACL,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,QAAQ;EACN,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,WAAW;EACT,MAAM;EACN,QAAQ;EACR,SAAS,gBAAgB;EAC1B;CAID,QAAQ;EACN,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,UAAU;EACR,MAAM;EACN,SAAS,gBAAgB;EAC1B;CAID,WAAW;EACT,MAAM;EACN,SAAS,gBAAgB;EAC1B;CACF,CAAU;AAOX,MAAa,eAAe,EAC1B,eAAe,MAChB"}