UNPKG

@alilc/lowcode-shell

Version:

Shell Layer for AliLowCodeEngine

77 lines (76 loc) 2.52 kB
import { IComponentMeta as InnerComponentMeta, INode } from '@alilc/lowcode-designer'; import { IPublicTypeNodeData, IPublicTypeNodeSchema, IPublicModelComponentMeta, IPublicTypeI18nData, IPublicTypeIconType, IPublicTypeNpmInfo, IPublicTypeTransformedComponentMetadata, IPublicModelNode, IPublicTypeAdvanced, IPublicTypeFieldConfig } from '@alilc/lowcode-types'; import { componentMetaSymbol } from '../symbols'; import { ReactElement } from 'react'; export declare class ComponentMeta implements IPublicModelComponentMeta { private readonly [componentMetaSymbol]; isComponentMeta: boolean; constructor(componentMeta: InnerComponentMeta); static create(componentMeta: InnerComponentMeta | null): IPublicModelComponentMeta | null; /** * 组件名 */ get componentName(): string; /** * 是否是「容器型」组件 */ get isContainer(): boolean; /** * 是否是最小渲染单元。 * 当组件需要重新渲染时: * 若为最小渲染单元,则只渲染当前组件, * 若不为最小渲染单元,则寻找到上层最近的最小渲染单元进行重新渲染,直至根节点。 */ get isMinimalRenderUnit(): boolean; /** * 是否为「模态框」组件 */ get isModal(): boolean; /** * 元数据配置 */ get configure(): IPublicTypeFieldConfig[]; /** * 标题 */ get title(): string | IPublicTypeI18nData | ReactElement; /** * 图标 */ get icon(): IPublicTypeIconType; /** * 组件 npm 信息 */ get npm(): IPublicTypeNpmInfo; /** * @deprecated */ get prototype(): any; get availableActions(): any; get advanced(): IPublicTypeAdvanced; /** * 设置 npm 信息 * @param npm */ setNpm(npm: IPublicTypeNpmInfo): void; /** * 获取元数据 * @returns */ getMetadata(): IPublicTypeTransformedComponentMetadata; /** * check if the current node could be placed in parent node * @param my * @param parent * @returns */ checkNestingUp(my: IPublicModelNode | IPublicTypeNodeData, parent: INode): boolean; /** * check if the target node(s) could be placed in current node * @param my * @param parent * @returns */ checkNestingDown(my: IPublicModelNode | IPublicTypeNodeData, target: IPublicTypeNodeSchema | IPublicModelNode | IPublicTypeNodeSchema[]): boolean; refreshMetadata(): void; }