UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

64 lines (63 loc) 2.86 kB
/// <reference types="react" /> import { IBasicEvent } from '@docsvision/webclient/System/IBasicEvent'; import { ICancelableEvent } from '@docsvision/webclient/System/ICancelableEvent'; import { IEventArgs } from '@docsvision/webclient/System/IEventArgs'; import { Optional } from '@docsvision/web/core/services'; import { $RootCssClass } from '@docsvision/webclient/Helpers/$RootCssClass'; /** * Предоставляет контейнер для отрисовки модального окна. Позволяет отображать диалоговое окно вне react-компонент. * * Пример использования: * * let host = new ModalHost("time-dialog", () => { * return ( * <ModalBackdrop visible={true}> * <ModalDialog isOpen={true}> * <ModalDialogCloseButton onClick={() => host.unmount()} /> * <ModalDialogHeader>Текущее время</ModalDialogHeader> * <div>Текущее время: {(new Date()).toTimeString()}</div> * </ModalDialog> * </ModalBackdrop> * ); * }); * host.mount(); * setInterval(() => host.forceUpdate(), 1000); * */ export declare class ModalHost { private mId; private mContainer; private mRenderFunction; private static mModalDialogHostContainerProvider; private unmountingEvent; private unmountedEvent; private rootCssClass; private static getModalDialogHostContainer; /** * Инициализирует объект ModalDialogHost * @param className Класс, который будет задан элементу-контейнеру в DOM * @param render Функция, выполняющая отрисовку модального окна */ constructor(className: string, render: () => React.ReactNode | React.ReactNode[], services?: Optional<$RootCssClass> | {}); get className(): string; set className(c: string); get unmounting(): ICancelableEvent<IEventArgs>; get unmounted(): IBasicEvent<IEventArgs>; /** * Иницирует перерисовку модального окна. При этом вызывается функция render, переданная в конструктор. */ forceUpdate(callback?: Function): Promise<void>; /** * Создает в DOM элемент-контейнер, и запускает отрисовку модального окна. */ mount(callback?: Function): Promise<void>; /** * Удаляет все созданные элементы из DOM. */ unmount(timeoutMs?: number): Promise<any>; /** * Создано ли модальное окно */ isMounted(): boolean; private render; }