///
/** Bootbox options shared by all modal types */
interface BootboxBaseOptions {
title?: string | Element | undefined;
callback?: ((result: T) => any) | undefined;
onEscape?: (() => any) | boolean | undefined;
show?: boolean | undefined;
backdrop?: boolean | undefined;
closeButton?: boolean | undefined;
animate?: boolean | undefined;
className?: string | undefined;
/** All other values result in medium */
size?: "small" | "sm" | "large" | "lg" | "extra-large" | "xl" | undefined;
locale?: string | undefined;
buttons?: BootboxButtonMap | undefined; // complex object where each key is of type BootboxButton
scrollable?: boolean | undefined;
}
/** Bootbox options available for custom modals */
interface BootboxDialogOptions extends BootboxBaseOptions {
message:
| JQuery
| any[]
| Element
| DocumentFragment
| Text
| string
| ((index: number, html: string) => string | Element | JQuery);
swapButtonOrder?: boolean | undefined;
centerVertical?: boolean | undefined;
}
/** Bootbox options available for alert modals */
interface BootboxAlertOptions extends BootboxDialogOptions {
callback?: (() => any) | undefined;
buttons?: BootboxAlertButtonMap | undefined;
}
/** Bootbox options available for confirm modals */
interface BootboxConfirmOptions extends BootboxDialogOptions {
callback: (result: boolean) => any;
buttons?: BootboxConfirmPromptButtonMap | undefined;
}
type BootboxInputType =
| "text"
| "textarea"
| "email"
| "select"
| "checkbox"
| "date"
| "time"
| "number"
| "password"
| "radio"
| "range";
/** Bootbox options available for prompt modals */
interface BootboxPromptOptions extends BootboxBaseOptions {
title: string;
message?:
| JQuery
| any[]
| Element
| DocumentFragment
| Text
| string
| ((index: number, html: string) => string | Element | JQuery);
value?: string | undefined;
inputType?: BootboxInputType | undefined;
callback: (result: string) => any;
buttons?: BootboxConfirmPromptButtonMap | undefined;
inputOptions?: Array<{ text: string; value: string; group?: string | undefined }> | undefined;
}
/** Bootbox options available when setting defaults for modals */
interface BootboxDefaultOptions {
locale?: string | undefined;
show?: boolean | undefined;
backdrop?: boolean | undefined;
closeButton?: boolean | undefined;
animate?: boolean | undefined;
className?: string | undefined;
container?: string | Element | JQuery | undefined;
value?: string | number | string[] | undefined;
inputType?: BootboxInputType | undefined;
swapButtonOrder?: boolean | undefined;
centerVertical?: boolean | undefined;
multiple?: boolean | undefined;
scrollable?: boolean | undefined;
reusable?: boolean | undefined;
}
interface BootboxButton {
label?: string | undefined;
className?: string | undefined;
callback?: (() => any) | undefined;
}
interface BootboxButtonMap {
[key: string]: BootboxButton | Function;
}
/** ButtonMap options for alerts modals */
interface BootboxAlertButtonMap extends BootboxButtonMap {
ok: BootboxButton | Function;
}
/** ButtonMap options for confirm and prompt modals */
interface BootboxConfirmPromptButtonMap extends BootboxButtonMap {
confirm: BootboxButton | Function;
cancel: BootboxButton | Function;
}
interface BootboxLocaleValues {
OK: string;
CANCEL: string;
CONFIRM: string;
}
interface BootboxStatic {
alert(message: string, callback?: () => void): JQuery;
alert(options: BootboxAlertOptions): JQuery;
confirm(message: string, callback: (result: boolean) => void): JQuery;
confirm(options: BootboxConfirmOptions): JQuery;
prompt(message: string, callback: (result: string) => void): JQuery;
prompt(options: BootboxPromptOptions): JQuery;
dialog(message: string, callback?: (result: string) => void): JQuery;
dialog(options: BootboxDialogOptions): JQuery;
setDefaults(options: BootboxDefaultOptions): void;
hideAll(): void;
addLocale(name: string, values: BootboxLocaleValues): void;
removeLocale(name: string): void;
setLocale(name: string): void;
}
declare var bootbox: BootboxStatic;
declare module "bootbox" {
export = bootbox;
}