UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 9.69 kB
{"version":3,"file":"message.mjs","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, Component, ExtractPublicPropTypes, VNode } from 'vue'\nimport type { 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?: string | Component\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 * @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"],"names":[],"mappings":"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"}