UNPKG

baseframe-js

Version:

A suite of useful Javascript plugins and functions to help with Front-end Development on websites

76 lines (75 loc) 2.12 kB
import type { Cash, Selector } from "cash-dom"; import type { LocationHashTracking, StringPluginArgChoices } from './types'; type ModalObj = { $backdrop: Cash; $content: Cash; contentAppended: boolean; $dialog: Cash; $dialogContent: Cash; $closeBtn: Cash; id: string; $modal: Cash; close: () => void; show: boolean; }; export interface IModalDefaults extends LocationHashTracking { src: Selector; modalID: string | null; enableEvent: string; appendTo: Selector; ariaLabelledby: string | null; ariaLabel: string | null; cssPrefix: string; closeBtnIconCss: string; closeBtnLabel: string; closeOutDelay: number; backDropClose: boolean; fromDOM: boolean; modalCss: string | null; focusInDelay: number | null; onOpenOnce(modalObj: ModalObj): void; onOpen(modalObj: ModalObj): void; onClose(modalObj: ModalObj): void; afterClose(modalObj: ModalObj): void; } export interface IModalOptions extends Partial<IModalDefaults> { modalID: string | null; } export default class Modal { element: HTMLElement; params: IModalDefaults; modalID: string; modalObj: ModalObj; modalEvent: string; trappedFocus: any; enabledElem: Element | null; openedOnce: boolean; static defaults: IModalDefaults; static version: string; static pluginName: string; constructor(element: HTMLAnchorElement | HTMLElement | HTMLButtonElement, options: IModalOptions | StringPluginArgChoices); static remove(element: Cash, plugin?: Modal): void; handleEvents(): void; setDisplayAndEvents(): void; getModalObj(): { $backdrop: Cash; $content: Cash; contentAppended: boolean; $dialog: Cash; $dialogContent: Cash; $closeBtn: Cash; id: string; $modal: Cash; close: () => void; show: boolean; }; enableModal(): void; close(): void; loadFromUrl(): void; } declare module 'cash-dom' { interface Cash { modal(options: IModalOptions | StringPluginArgChoices): Cash; } } export {};