react-application-core
Version:
A react-based application core for the business applications.
66 lines (65 loc) • 2.26 kB
TypeScript
import { IUniversalLayoutBuilderConfigEntity, IUniversalLayoutProps, IUniversalLayoutViewBuilder, UniversalLayoutBuilderChildrenT } from '../../../definition';
import { StringNumberT } from '../../../definitions.interface';
export declare class UniversalLayoutBuilder<TNode, TProps extends IUniversalLayoutProps = IUniversalLayoutProps> {
private readonly layoutViewBuilder;
private index;
private readonly layoutId;
/**
* @stable [22.10.2018]
* @param {IUniversalLayoutViewBuilder<TNode>} layoutViewBuilder
*/
constructor(layoutViewBuilder: IUniversalLayoutViewBuilder<TNode, TProps>);
/**
* @stable [23.01.2020]
* @param {IUniversalLayoutBuilderConfigEntity<TNode>} layoutConfig
* @returns {TNode}
*/
build(layoutConfig: IUniversalLayoutBuilderConfigEntity<TNode>): TNode;
/**
* @stable [23.01.2020]
* @param {UniversalLayoutBuilderChildrenT<TNode>} _
* @returns {StringNumberT}
*/
protected asClonedItemKey(_: UniversalLayoutBuilderChildrenT<TNode>): StringNumberT;
/**
* @stable [22.10.2018]
* @param {IUniversalLayoutBuilderConfigEntity<TNode>} layoutConfig
* @returns {TNode}
*/
private buildLayout;
/**
* @stable [23.01.2020]
* @param {IUniversalLayoutBuilderConfigEntity<TNode>} layoutConfig
* @returns {TNode}
*/
private buildHorizontalLayout;
/**
* @stable [22.10.2018]
* @param {IUniversalLayoutBuilderConfigEntity<TNode>} layoutConfig
* @returns {TNode}
*/
private buildVerticalLayout;
/**
* @stable [23.01.2020]
* @param {IUniversalLayoutBuilderConfigEntity<TNode>} layoutConfig
* @returns {Array<UniversalLayoutBuilderChildrenT<TNode>>}
*/
private filterChildren;
/**
* @stable [22.10.2018]
* @param {UniversalLayoutBuilderChildrenT<TNode>} item
* @param {IUniversalLayoutBuilderConfigEntity<TNode>} layoutConfig
* @returns {TNode}
*/
private asClonedItem;
/**
* @stable [23.01.2020]
* @returns {TProps}
*/
private get key();
/**
* @stable [23.01.2020]
* @returns {string}
*/
private get newKey();
}