///
declare namespace M {
class Modal extends Component implements Openable {
/**
* Get Instance
*/
static getInstance(elem: Element): Modal;
/**
* Init Modal
*/
static init(els: Element, options?: Partial): Modal;
/**
* Init Modals
*/
static init(els: MElements, options?: Partial): Modal[];
/**
* Open modal
*/
open(): void;
/**
* Close modal
*/
close(): void;
/**
* If the modal is open.
*/
isOpen: boolean;
/**
* ID of the modal element
*/
id: string;
}
/**
* Options for the Modal
*/
interface ModalOptions {
/**
* Opacity of the modal overlay.
* @default 0.5
*/
opacity: number;
/**
* Transition in duration in milliseconds.
* @default 250
*/
inDuration: number;
/**
* Transition out duration in milliseconds.
* @default 250
*/
outDuration: number;
/**
* Prevent page from scrolling while modal is open
* @default true
*/
preventScrolling: boolean;
/**
* Callback function called before modal is opened
* @default null
*/
onOpenStart: (this: Modal, el: Element) => void;
/**
* Callback function called after modal is opened
* @default null
*/
onOpenEnd: (this: Modal, el: Element) => void;
/**
* Callback function called before modal is closed
* @default null
*/
onCloseStart: (this: Modal, el: Element) => void;
/**
* Callback function called after modal is closed
* @default null
*/
onCloseEnd: (this: Modal, el: Element) => void;
/**
* Allow modal to be dismissed by keyboard or overlay click.
* @default true
*/
dismissible: boolean;
/**
* Starting top offset
* @default '4%'
*/
startingTop: string;
/**
* Ending top offset
* @default '10%'
*/
endingTop: string;
}
}
interface JQuery {
modal(method: keyof Pick): JQuery;
modal(options?: Partial): JQuery;
}