@alilc/lowcode-shell
Version:
Shell Layer for AliLowCodeEngine
101 lines (100 loc) • 3.74 kB
TypeScript
import { IDesigner } from '@alilc/lowcode-designer';
import { IPublicTypeAssetsJson } from '@alilc/lowcode-utils';
import { IPublicTypeComponentAction, IPublicTypeComponentMetadata, IPublicApiMaterial, IPublicTypeMetadataTransducer, IPublicModelComponentMeta, IPublicTypeNpmInfo, IPublicModelEditor, IPublicTypeDisposable, IPublicTypeContextMenuAction, IPublicTypeContextMenuItem } from '@alilc/lowcode-types';
import { editorSymbol, designerSymbol } from '../symbols';
import { ComponentType } from 'react';
declare const innerEditorSymbol: unique symbol;
export declare class Material implements IPublicApiMaterial {
readonly workspaceMode: boolean;
private readonly [innerEditorSymbol];
get [editorSymbol](): IPublicModelEditor;
get [designerSymbol](): IDesigner;
constructor(editor: IPublicModelEditor, workspaceMode?: boolean);
/**
* 获取组件 map 结构
*/
get componentsMap(): {
[key: string]: IPublicTypeNpmInfo | ComponentType<any> | object;
};
/**
* 设置「资产包」结构
* @param assets
* @returns
*/
setAssets(assets: IPublicTypeAssetsJson): Promise<void>;
/**
* 获取「资产包」结构
* @returns
*/
getAssets(): IPublicTypeAssetsJson | undefined;
/**
* 加载增量的「资产包」结构,该增量包会与原有的合并
* @param incrementalAssets
* @returns
*/
loadIncrementalAssets(incrementalAssets: IPublicTypeAssetsJson): Promise<void>;
/**
* 注册物料元数据管道函数
* @param transducer
* @param level
* @param id
*/
registerMetadataTransducer: (transducer: IPublicTypeMetadataTransducer, level?: number, id?: string | undefined) => void;
/**
* 获取所有物料元数据管道函数
* @returns
*/
getRegisteredMetadataTransducers(): IPublicTypeMetadataTransducer[];
/**
* 获取指定名称的物料元数据
* @param componentName
* @returns
*/
getComponentMeta(componentName: string): IPublicModelComponentMeta | null;
/**
* create an instance of ComponentMeta by given metadata
* @param metadata
* @returns
*/
createComponentMeta(metadata: IPublicTypeComponentMetadata): IPublicModelComponentMeta<import("@alilc/lowcode-types").IPublicModelNode>;
/**
* test if the given object is a ComponentMeta instance or not
* @param obj
* @returns
*/
isComponentMeta(obj: any): obj is import("@alilc/lowcode-designer").ComponentMeta;
/**
* 获取所有已注册的物料元数据
* @returns
*/
getComponentMetasMap(): Map<string, IPublicModelComponentMeta>;
/**
* 在设计器辅助层增加一个扩展 action
* @param action
*/
addBuiltinComponentAction: (action: IPublicTypeComponentAction) => void;
/**
* 刷新 componentMetasMap,可触发模拟器里的 components 重新构建
*/
refreshComponentMetasMap: () => void;
/**
* 移除设计器辅助层的指定 action
* @param name
*/
removeBuiltinComponentAction(name: string): void;
/**
* 修改已有的设计器辅助层的指定 action
* @param actionName
* @param handle
*/
modifyBuiltinComponentAction(actionName: string, handle: (action: IPublicTypeComponentAction) => void): void;
/**
* 监听 assets 变化的事件
* @param fn
*/
onChangeAssets(fn: () => void): IPublicTypeDisposable;
addContextMenuOption(option: IPublicTypeContextMenuAction): void;
removeContextMenuOption(name: string): void;
adjustContextMenuLayout(fn: (actions: IPublicTypeContextMenuItem[]) => IPublicTypeContextMenuItem[]): void;
}
export {};