UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

89 lines (88 loc) 5.41 kB
/// <reference types="react" /> import { $LayoutController } from "@docsvision/webclient/Generated/DocsVision.WebClient.Controllers"; import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models"; import { BaseControl, BaseControlParams, BaseControlState } from "@docsvision/webclient/System/BaseControl"; import { ControlImpl } from "@docsvision/webclient/System/ControlImpl"; import { LoadingState } from "@docsvision/webclient/System/LoadingState"; import { RequestHelper } from "@docsvision/webclient/System/RequestHelper"; import { Optional } from "@docsvision/web/core/services"; import { $LayoutManager } from "@docsvision/webclient/System/$LayoutManager"; import { $Layout, ILayout } from "@docsvision/webclient/System/$Layout"; import { $CurrentLocation } from '@docsvision/webclient/System/LayoutServices'; import { CancelableEvent } from '@docsvision/webclient/System/CancelableEvent'; import { IEventArgs } from '@docsvision/webclient/System/IEventArgs'; import { SimpleEvent } from '@docsvision/webclient/System/SimpleEvent'; import { LocationSourceMode } from '@docsvision/webclient/Helpers/LocationContainer/LocationSourceMode'; import { $DeviceType } from "@docsvision/webclient/StandardServices"; export declare type $LocationContainerControlServices = Optional<$LayoutController> & $LayoutManager & Optional<$CurrentLocation> & Optional<$Layout> & $DeviceType; /** * Содержит публичные свойства элемента управления [LayoutPosition]{@link LayoutPosition}. */ export declare class LocationContainerControlParams extends BaseControlParams { /** Стандартный CSS класс со стилями элемента управления */ standardCssClass?: string; /** Имя загружаемой разметки. */ locationName?: string; /** Идентификатор режима загружаемой разметки. */ layoutMode?: string; /** Если значение true, то контролы разметки полностью интегрируются в родительскую разметку. */ ownerLayoutPart?: boolean; /** * Если значени true, запрос разметки будет асинхронным после монтирования контрола в соответствии со параметром {@link locationName}. * Иначе параметр {@link layoutModel} должен содержать загруженную модель разметки. По умолчанию false. */ async: boolean; /** Сервер возвращает пустую разметку, не выдавая никаких ошибок в случае, если разметка с запрошенными условиями не будет обнаружена */ useEmptyLayoutAsDefault?: boolean; /** Json объект с перечнем параметров layoutParams, которые будут переданы при получении разметки */ params?: string; /** Функция выполняющая собственную логику загрузки разметки. */ customLayoutLoader?: (sender: LocationContainerControl) => Promise<GenModels.LayoutViewModel>; /** Загруженная модель разметки. Если значение параметра задано, то загрузка разметки не производится. */ layoutModel?: GenModels.LayoutViewModel; /** Экземпляр разметки, отображенной на странице. */ mountedLayout?: ILayout; renderLoadingState?: (state: LoadingState) => JSX.Element; showLoaderDelay?: number; reportLoadingError?: (err: any) => void; locationSource?: LocationSourceMode; layoutLoaded?: SimpleEvent<IEventArgs>; layoutLoading?: CancelableEvent<IEventArgs>; layoutUnloading?: SimpleEvent<IEventArgs>; services?: $LocationContainerControlServices; } /** @internal */ export interface LocationContainerControlState extends BaseControlState, LocationContainerControlParams { loadingHelper: RequestHelper; customLayoutLoaderName: string; currentCardId: string; } /** * Класс элемента управления, служащего для загрузки и отображения разметки. */ export declare class LocationContainerControl extends BaseControl<LocationContainerControlParams, LocationContainerControlState> { private root; private isControlEmpty; private destroying; protected construct(): void; componentWillUnmount(): void; dispose(): Promise<void>; private set customLayoutLoader(value); private set setBinding(value); private getCustomLayoutLoader; protected createParams(): LocationContainerControlParams; addCssClass: () => "" | " location-container-empty control-empty"; isContent: () => boolean; protected createImpl(): ControlImpl; /** @internal */ init(): void; /** @internal */ protected initInternal(isReload?: boolean): Promise<unknown>; reloadLayout(): Promise<void>; /** @internal */ protected loadLayout(): Promise<GenModels.LayoutViewModel>; /** @internal */ protected attachRoot(elem: HTMLElement): void; /** @internal */ renderControl(): JSX.Element; }