@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
101 lines (100 loc) • 4.47 kB
TypeScript
import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models";
import { Layout } from "@docsvision/webclient/System/Layout";
import { $LayoutInfo } from '@docsvision/webclient/System/LayoutServices';
import { ILayoutContainer } from "@docsvision/webclient/System/ILayoutContainer";
import { ServiceContainer } from '@docsvision/web/core/services';
import { IRealTimeCommunicationMessage } from '@docsvision/webclient/System/IRealTimeCommunicationMessage';
export declare const LAYOUT_ROOT_CONTAINER_CLASSNAME = "layout-root-container";
/** Сервисный класс, обеспечивающий функционирование разметки. */
export declare class LayoutContainer<T extends GenModels.LayoutViewModel> implements ILayoutContainer<T> {
private layoutContainerParams;
private layoutContainerInfo;
private layoutResolver;
private initialized;
layoutServiceContainer: ServiceContainer;
services: $LayoutInfo;
private constructor();
/**
* Скрывать ли диалог подтверждения действия пользователя при изменении маршрута
*/
get pageLeaveConfirmationDisabled(): boolean;
set pageLeaveConfirmationDisabled(value: boolean);
/**
* Возвращает ID текущей разметки
* @internal
*/
get id(): string;
/**
* Возвращает разметку карточки.
*/
get layout(): Layout;
/**
* Возвращает корневой элемент, в котором расположена разметка.
*/
get rootElement(): HTMLElement;
/** Модель разметки, поступившая с сервера Web-клиента. */
get layoutViewModel(): T;
/**
* Возвращает контейнеры дочерних разметок
*/
get children(): ILayoutContainer<GenModels.LayoutViewModel>[];
/**
* Возвращает родительский контейнер, в котором находится текущий контейнер
*/
get parent(): ILayoutContainer<GenModels.LayoutViewModel>;
/** @internal */
static create<T extends GenModels.LayoutViewModel>(options: {
layoutViewModel: T;
name: string;
root: string | HTMLElement;
positionName: string;
parent: LayoutContainer<GenModels.LayoutViewModel>;
unmountCallback?: (layoutContainer: LayoutContainer<GenModels.LayoutViewModel>) => void;
mountCallback: (layoutContainer: LayoutContainer<GenModels.LayoutViewModel>) => void;
services: ServiceContainer;
}): Promise<LayoutContainer<T>>;
/**
* @internal
*/
removeChild(layoutContainer: LayoutContainer<GenModels.LayoutViewModel>): void;
/**
* @internal
*/
addChild(layoutContainer: LayoutContainer<GenModels.LayoutViewModel>): void;
/**
* Инициализация разметки.
*/
protected initialize(deferred: Promise<Layout>): Promise<void>;
/**
* Перезагрузка разметки с данными, переданными в параметре layoutViewModel
*/
reload(layoutViewModel: T): Promise<void>;
/**
* Уничтожение разметки.
*/
destroy(): Promise<void>;
protected onCardChanged: (message: IRealTimeCommunicationMessage<any>) => void;
protected onCardDisabled: (message: IRealTimeCommunicationMessage<any>) => void;
/** @internal */
protected mapLayout(layoutResolver: () => Layout): void;
/** @internal */
protected prepareModel(deferred: Promise<Layout>): void;
/** @internal */
protected renderLayout(deferred: Promise<Layout>): void;
protected loadAsyncControls(): Promise<void>;
/**
* Возвращает наименование позиции.
*/
get positionName(): string;
get PositionName(): string;
/**
* @deprecated Возвращает наименование разметки
*/
get name(): string;
/**
* @deprecated Возвращает идентификатор корневого элемента, в котором расположена разметка.
*/
get rootElementId(): string;
/** @deprecated Модель разметки, поступившая с сервера Web-клиента. */
get layoutCardModel(): T;
}