@alilc/lowcode-shell
Version:
Shell Layer for AliLowCodeEngine
117 lines (116 loc) • 4.32 kB
TypeScript
import { IProject as InnerProject } from '@alilc/lowcode-designer';
import { IPublicTypeRootSchema, IPublicTypeProjectSchema, IPublicModelEditor, IPublicApiProject, IPublicApiSimulatorHost, IPublicModelDocumentModel, IPublicTypePropsTransducer, IPublicEnumTransformStage, IPublicTypeDisposable, IPublicTypeAppConfig } from '@alilc/lowcode-types';
import { editorSymbol, projectSymbol, simulatorHostSymbol } from '../symbols';
declare const innerProjectSymbol: unique symbol;
export declare class Project implements IPublicApiProject {
workspaceMode: boolean;
private readonly [innerProjectSymbol];
private [simulatorHostSymbol];
get [projectSymbol](): InnerProject;
get [editorSymbol](): IPublicModelEditor;
constructor(project: InnerProject, workspaceMode?: boolean);
static create(project: InnerProject, workspaceMode?: boolean): Project;
/**
* 获取当前的 document
* @returns
*/
get currentDocument(): IPublicModelDocumentModel | null;
/**
* 获取当前 project 下所有 documents
* @returns
*/
get documents(): IPublicModelDocumentModel[];
/**
* 获取模拟器的 host
*/
get simulatorHost(): IPublicApiSimulatorHost | null;
/**
* @deprecated use .simulatorHost instead.
*/
get simulator(): IPublicApiSimulatorHost;
/**
* 打开一个 document
* @param doc
* @returns
*/
openDocument(doc?: string | IPublicTypeRootSchema | undefined): IPublicModelDocumentModel<import("@alilc/lowcode-types").IPublicModelSelection<import("@alilc/lowcode-types").IPublicModelNode>, import("@alilc/lowcode-types").IPublicModelHistory, import("@alilc/lowcode-types").IPublicModelNode, import("@alilc/lowcode-types").IPublicModelDropLocation, import("@alilc/lowcode-types").IPublicModelModalNodesManager<import("@alilc/lowcode-types").IPublicModelNode>, IPublicApiProject>;
/**
* 创建一个 document
* @param data
* @returns
*/
createDocument(data?: IPublicTypeRootSchema): IPublicModelDocumentModel | null;
/**
* 删除一个 document
* @param doc
*/
removeDocument(doc: IPublicModelDocumentModel): void;
/**
* 根据 fileName 获取 document
* @param fileName
* @returns
*/
getDocumentByFileName(fileName: string): IPublicModelDocumentModel | null;
/**
* 根据 id 获取 document
* @param id
* @returns
*/
getDocumentById(id: string): IPublicModelDocumentModel | null;
/**
* 导出 project
* @returns
*/
exportSchema(stage?: IPublicEnumTransformStage): IPublicTypeProjectSchema<IPublicTypeRootSchema>;
/**
* 导入 project
* @param schema 待导入的 project 数据
*/
importSchema(schema?: IPublicTypeProjectSchema): void;
/**
* 获取当前的 document
* @returns
*/
getCurrentDocument(): IPublicModelDocumentModel | null;
/**
* 增加一个属性的管道处理函数
* @param transducer
* @param stage
*/
addPropsTransducer(transducer: IPublicTypePropsTransducer, stage: IPublicEnumTransformStage): void;
/**
* 绑定删除文档事件
* @param fn
* @returns
*/
onRemoveDocument(fn: (data: {
id: string;
}) => void): IPublicTypeDisposable;
/**
* 当前 project 内的 document 变更事件
*/
onChangeDocument(fn: (doc: IPublicModelDocumentModel) => void): IPublicTypeDisposable;
/**
* 当前 project 的模拟器 ready 事件
*/
onSimulatorHostReady(fn: (host: IPublicApiSimulatorHost) => void): IPublicTypeDisposable;
/**
* 当前 project 的渲染器 ready 事件
*/
onSimulatorRendererReady(fn: () => void): IPublicTypeDisposable;
/**
* 设置多语言语料
* 数据格式参考 https://github.com/alibaba/lowcode-engine/blob/main/specs/lowcode-spec.md#2434%E5%9B%BD%E9%99%85%E5%8C%96%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%B1%BB%E5%9E%8Baa
* @param value object
* @returns
*/
setI18n(value: object): void;
/**
* 设置项目配置
* @param value object
* @returns
*/
setConfig<T extends keyof IPublicTypeAppConfig>(key: T, value: IPublicTypeAppConfig[T]): void;
setConfig(value: IPublicTypeAppConfig): void;
}
export {};