import Vue, { VNode } from 'vue'; import { MessageType } from './message'; export type MessageBoxCloseAction = 'confirm' | 'cancel' | 'close'; export type MessageBoxData = MessageBoxInputData | MessageBoxCloseAction; export interface MessageBoxInputData { value: string; action: MessageBoxCloseAction; } export interface MessageBoxInputValidator { (value: string): boolean | string; } export declare class ElMessageBoxComponent extends Vue { 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: MessageBoxCloseAction; dangerouslyUseHTMLString: boolean; confirmButtonText: string; cancelButtonText: string; confirmButtonLoading: boolean; cancelButtonLoading: boolean; confirmButtonClass: string; confirmButtonDisabled: boolean; cancelButtonClass: string; editorErrorMessage: string; } /** Options used in MessageBox */ export interface ElMessageBoxOptions { /** Title of the MessageBox */ title?: string; /** Content of the MessageBox */ message?: string | VNode; /** Message type, used for icon display */ type?: MessageType; /** Custom icon's class */ iconClass?: string; /** Custom class name for MessageBox */ customClass?: string; /** MessageBox closing callback if you don't prefer Promise */ callback?: (action: MessageBoxCloseAction, instance: ElMessageBoxComponent) => void; /** Callback before MessageBox closes, and it will prevent MessageBox from closing */ beforeClose?: (action: MessageBoxCloseAction, instance: ElMessageBoxComponent, done: () => void) => void; /** 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; /** 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; /** Whether message is treated as HTML string */ dangerouslyUseHTMLString?: 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; /** Whether to distinguish canceling and closing */ distinguishCancelAndClose?: boolean; } export interface ElMessageBoxShortcutMethod { (message: string, title: string, options?: ElMessageBoxOptions): Promise; (message: string, options?: ElMessageBoxOptions): Promise; } export interface ElMessageBox { /** Show a message box */ (message: string, title?: string, type?: string): Promise; /** Show a message box */ (options: ElMessageBoxOptions): Promise; /** Show an alert message box */ alert: ElMessageBoxShortcutMethod; /** Show a confirm message box */ confirm: ElMessageBoxShortcutMethod; /** Show a prompt message box */ prompt: ElMessageBoxShortcutMethod; /** Set default options of message boxes */ setDefaults(defaults: ElMessageBoxOptions): void; /** Close current message box */ close(): void; } declare module 'vue/types/vue' { interface Vue { /** Show a message box */ $msgbox: ElMessageBox; /** Show an alert message box */ $alert: ElMessageBoxShortcutMethod; /** Show a confirm message box */ $confirm: ElMessageBoxShortcutMethod; /** Show a prompt message box */ $prompt: ElMessageBoxShortcutMethod; } }