@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
49 lines (48 loc) • 2.25 kB
TypeScript
import { IControlContainer } from '@docsvision/webclient/Helpers/ControlSelector/IControlContainer';
import { IControlSelectorProps } from "@docsvision/webclient/Helpers/ControlSelector/IControlSelectorProps";
import { LayoutControl } from '@docsvision/webclient/System/BaseControl';
import { LayoutControlType } from '@docsvision/webclient/System/LayoutControlType';
import React from "react";
interface IControlSelectorState {
controlInfo: IControlSelectorProps;
component: any;
hasError: boolean;
componentVersion: number;
}
/**
* @review Компонент для рендеринга контролов разметок. Например, при получении данных контрола с сервера при загрузке разметки.
*
* Пример использования:
*
* render() {
* var componentInfo = getComponentInfo();
*
* return <ControlSelector
* properties={componentInfo.properties}
* children={componentInfo.children}
* controlTypeName={componentInfo.controlTypeName}
* key={componentInfo.properties.name} />
* }
*
*/
export declare class ControlSelector extends React.Component<IControlSelectorProps, IControlSelectorState> implements IControlContainer {
private initializingInstance;
private controlInstance;
state: IControlSelectorState;
constructor(props: IControlSelectorProps);
get controlInfo(): IControlSelectorProps;
reload(props: IControlSelectorProps): Promise<LayoutControl>;
getControlInstance(): Promise<LayoutControl>;
/** @internal */
UNSAFE_componentWillMount(): void;
/** @internal */
UNSAFE_componentWillReceiveProps(nextProps: IControlSelectorProps, nextContext: any): void;
loadControl(controlTypeName: string, updateOnAsyncLoading?: boolean): Promise<LayoutControlType>;
loadControlFromModule(name: string, path: string): Promise<any>;
/** См. [документацию React](https://facebook.github.io/react/docs/react-component.html#the-component-lifecycle) */
componentDidCatch(error: any, info: any): void;
attachControl: (el: any) => void;
/** @internal */
render(): JSX.Element;
}
export {};