element-plus
Version:
A Component Library for Vue3.0
189 lines (144 loc) • 4.69 kB
text/typescript
import type { VNode } from 'vue'
export type Action = 'confirm' | 'close' | 'cancel'
export type MessageType = 'success' | 'warning' | 'info' | 'error'
export type MessageBoxData = MessageBoxInputData & Action
export interface MessageBoxInputData {
value: string
action: Action
}
export interface MessageBoxInputValidator {
(value: string): boolean | string
}
export interface MessageBoxState {
action: Action
cancelButtonLoading: boolean
cancelButtonText: string
confirmButtonLoading: boolean
confirmButtonDisabled: boolean
confirmButtonText: string
editorErrorMessage: string
// isOnComposition: boolean temporary commented
inputValue: string
validateError: boolean
zIndex: number
}
export declare class ElMessageBoxComponent {
title: string
message: string
type: MessageType
iconClass: string
customClass: string
showInput: boolean
showClose: boolean
inputValue: string
inputPlaceholder: string
inputType: string
inputPattern: RegExp
inputValidator: MessageBoxInputValidator
inputErrorMessage: string
showConfirmButton: boolean
showCancelButton: boolean
action: Action
dangerouslyUseHTMLString: boolean
confirmButtonText: string
cancelButtonText: string
confirmButtonLoading: boolean
cancelButtonLoading: boolean
confirmButtonClass: string
confirmButtonDisabled: boolean
cancelButtonClass: string
editorErrorMessage: string
close(): any
}
export type Callback =
| ((value: string, action: Action) => any)
| ((action: Action) => any)
/** Options used in MessageBox */
export interface ElMessageBoxOptions {
/** Callback before MessageBox closes, and it will prevent MessageBox from closing */
beforeClose?: (
action: Action,
instance: ElMessageBoxComponent,
done: () => void,
) => void
/** Custom class name for MessageBox */
customClass?: string
/** MessageBox closing callback if you don't prefer Promise */
callback?: Callback
/** Text content of cancel button */
cancelButtonText?: string
/** Text content of confirm button */
confirmButtonText?: string
/** Custom class name of cancel button */
cancelButtonClass?: string
/** Custom class name of confirm button */
confirmButtonClass?: string
/** Whether to align the content in center */
center?: boolean
/** Content of the MessageBox */
message?: string | VNode
/** Title of the MessageBox */
title?: string
/** Message type, used for icon display */
type?: MessageType
/** Custom icon's class */
iconClass?: string
/** Whether message is treated as HTML string */
dangerouslyUseHTMLString?: boolean
/** Whether to distinguish canceling and closing */
distinguishCancelAndClose?: boolean
/** Whether to lock body scroll when MessageBox prompts */
lockScroll?: boolean
/** Whether to show a cancel button */
showCancelButton?: boolean
/** Whether to show a confirm button */
showConfirmButton?: boolean
/** Whether to show a close button */
showClose?: boolean
/** Whether to use round button */
roundButton?: boolean
/** Whether MessageBox can be closed by clicking the mask */
closeOnClickModal?: boolean
/** Whether MessageBox can be closed by pressing the ESC */
closeOnPressEscape?: boolean
/** Whether to close MessageBox when hash changes */
closeOnHashChange?: boolean
/** Whether to show an input */
showInput?: boolean
/** Placeholder of input */
inputPlaceholder?: string
/** Initial value of input */
inputValue?: string
/** Regexp for the input */
inputPattern?: RegExp
/** Input Type: text, textArea, password or number */
inputType?: string
/** Validation function for the input. Should returns a boolean or string. If a string is returned, it will be assigned to inputErrorMessage */
inputValidator?: MessageBoxInputValidator
/** Error message when validation fails */
inputErrorMessage?: string
}
export type ElMessageBoxShortcutMethod =
((
message: string,
title: string,
options?: ElMessageBoxOptions,
) => Promise<MessageBoxData>)
& ((
message: string,
options?: ElMessageBoxOptions,
) => Promise<MessageBoxData>)
export interface ElMessageBox {
/** Show a message box */
// (message: string, title?: string, type?: string): Promise<MessageBoxData>
/** Show a message box */
(options: ElMessageBoxOptions): Promise<MessageBoxData>
/** Show an alert message box */
alert: ElMessageBoxShortcutMethod
/** Show a confirm message box */
confirm: ElMessageBoxShortcutMethod
/** Show a prompt message box */
prompt: ElMessageBoxShortcutMethod
/** Close current message box */
close(): void
}