@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
64 lines (63 loc) • 2.86 kB
TypeScript
/// <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;
}