UNPKG

@alilc/lowcode-shell

Version:

Shell Layer for AliLowCodeEngine

142 lines (141 loc) 5.21 kB
import { IDocumentModel as InnerDocumentModel } from '@alilc/lowcode-designer'; import { IPublicEnumTransformStage, IPublicTypeRootSchema, IPublicModelDocumentModel, IPublicTypeOnChangeOptions, IPublicTypeDragNodeObject, IPublicTypeDragNodeDataObject, IPublicModelNode, IPublicModelSelection, IPublicModelDetecting, IPublicModelHistory, IPublicApiProject, IPublicModelModalNodesManager, IPublicTypePropChangeOptions, IPublicModelDropLocation, IPublicApiCanvas, IPublicTypeDisposable, IPublicTypeNodeSchema } from '@alilc/lowcode-types'; import { documentSymbol, editorSymbol } from '../symbols'; export declare class DocumentModel implements IPublicModelDocumentModel { private readonly [documentSymbol]; private readonly [editorSymbol]; private _focusNode; selection: IPublicModelSelection; detecting: IPublicModelDetecting; history: IPublicModelHistory; /** * @deprecated use canvas API instead */ canvas: IPublicApiCanvas; constructor(document: InnerDocumentModel); static create(document: InnerDocumentModel | undefined | null): IPublicModelDocumentModel | null; /** * id */ get id(): string; set id(id: string); /** * 获取当前文档所属的 project * @returns */ get project(): IPublicApiProject; /** * 获取文档的根节点 * root node of this documentModel * @returns */ get root(): IPublicModelNode | null; get focusNode(): IPublicModelNode | null; set focusNode(node: IPublicModelNode | null); /** * 获取文档下所有节点 Map, key 为 nodeId * get map of all nodes , using node.id as key */ get nodesMap(): Map<string, IPublicModelNode>; /** * 模态节点管理 */ get modalNodesManager(): IPublicModelModalNodesManager | null; get dropLocation(): IPublicModelDropLocation | null; set dropLocation(loc: IPublicModelDropLocation | null); /** * 根据 nodeId 返回 Node 实例 * get node instance by nodeId * @param {string} nodeId */ getNodeById(nodeId: string): IPublicModelNode | null; /** * 导入 schema * @param schema */ importSchema(schema: IPublicTypeRootSchema): void; /** * 导出 schema * @param stage * @returns */ exportSchema(stage?: IPublicEnumTransformStage): IPublicTypeRootSchema | undefined; /** * 插入节点 * @param parent * @param thing * @param at * @param copy * @returns */ insertNode(parent: IPublicModelNode, thing: IPublicModelNode, at?: number | null | undefined, copy?: boolean | undefined): IPublicModelNode | null; /** * 创建一个节点 * @param data * @returns */ createNode<IPublicModelNode>(data: IPublicTypeNodeSchema): IPublicModelNode | null; /** * 移除指定节点/节点id * @param idOrNode */ removeNode(idOrNode: string | IPublicModelNode): void; /** * componentsMap of documentModel * @param extraComps * @returns */ getComponentsMap(extraComps?: string[]): any; /** * 检查拖拽放置的目标节点是否可以放置该拖拽对象 * @param dropTarget 拖拽放置的目标节点 * @param dragObject 拖拽的对象 * @returns boolean 是否可以放置 */ checkNesting(dropTarget: IPublicModelNode, dragObject: IPublicTypeDragNodeObject | IPublicTypeDragNodeDataObject): boolean; /** * 当前 document 新增节点事件 */ onAddNode(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable; /** * 当前 document 新增节点事件,此时节点已经挂载到 document 上 */ onMountNode(fn: (payload: { node: IPublicModelNode; }) => void): IPublicTypeDisposable; /** * 当前 document 删除节点事件 */ onRemoveNode(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable; /** * 当前 document 的 hover 变更事件 */ onChangeDetecting(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable; /** * 当前 document 的选中变更事件 */ onChangeSelection(fn: (ids: string[]) => void): IPublicTypeDisposable; /** * 当前 document 的节点显隐状态变更事件 * @param fn */ onChangeNodeVisible(fn: (node: IPublicModelNode, visible: boolean) => void): IPublicTypeDisposable; /** * 当前 document 的节点 children 变更事件 * @param fn */ onChangeNodeChildren(fn: (info: IPublicTypeOnChangeOptions) => void): IPublicTypeDisposable; /** * 当前 document 节点属性修改事件 * @param fn */ onChangeNodeProp(fn: (info: IPublicTypePropChangeOptions) => void): IPublicTypeDisposable; /** * import schema event * @param fn */ onImportSchema(fn: (schema: IPublicTypeRootSchema) => void): IPublicTypeDisposable; isDetectingNode(node: IPublicModelNode): boolean; onFocusNodeChanged(fn: (doc: IPublicModelDocumentModel, focusNode: IPublicModelNode) => void): IPublicTypeDisposable; onDropLocationChanged(fn: (doc: IPublicModelDocumentModel) => void): IPublicTypeDisposable; }