element-plus
Version:
> TODO: description
44 lines (36 loc) • 1.3 kB
text/typescript
import type { VNode } from 'vue'
export type Position = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'
export type NotificationType = 'success' | 'warning' | 'info' | 'error' | ''
export type TypedNotificationOptions = Omit<INotificationOptions, 'type'> | string
export interface INotificationHandle {
close: () => void
}
export interface INotification {
(options?: INotificationOptions) : INotificationHandle
success?: (options: TypedNotificationOptions) => INotificationHandle
warning?: (options: TypedNotificationOptions) => INotificationHandle
error?: (options: TypedNotificationOptions) => INotificationHandle
info?: (options: TypedNotificationOptions) => INotificationHandle
closeAll: () => void
}
export type INotificationOptions = {
customClass?: string
dangerouslyUseHTMLString?: boolean // default false
duration?: number // default 4500
iconClass?: string
id?: string
message?: string | VNode
zIndex?: number
onClose?: () => void
onClick?: () => void
offset?: number // defaults 0
position?: Position // default top-right
showClose?: boolean
type?: NotificationType
title?: string
}
export type NotificationVM = VNode
type NotificationQueueItem = {
vm: NotificationVM
}
export type NotificationQueue = Array<NotificationQueueItem>