UNPKG

@alilc/lowcode-shell

Version:

Shell Layer for AliLowCodeEngine

117 lines (116 loc) 4.32 kB
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 {};