lowcode-engine/docs/docs/api/model/document-model.md
2023-07-06 09:55:13 +08:00

11 KiB

title, sidebar_position
title sidebar_position
DocumentModel 0

@types IPublicModelDocumentModel
@since v1.0.0

基本介绍

文档模型

属性

id

唯一 ID

@type {string}

selection

画布节点选中区模型实例

@type {IPublicModelSelection}

相关章节:节点选中区模型

相关类型:IPublicModelSelection

detecting

画布节点 hover 区模型实例

@type {IPublicModelDetecting}

相关章节:画布节点悬停模型

相关类型:IPublicModelDetecting

history

操作历史模型实例

@type {IPublicModelHistory}

相关章节:操作历史模型

相关类型:IPublicModelHistory

project

获取当前文档模型所属的 project

@type {IPublicApiProject}

相关类型:IPublicApiProject

root

获取文档的根节点

@type {IPublicModelNode | null}

相关类型:IPublicModelNode

nodesMap

获取文档下所有节点 Map, key 为 nodeId

@type {Map<string, IPublicModelNode>}

相关章节:节点模型

相关类型:IPublicModelNode

modalNodesManager

模态节点管理器

@type {IPublicModelModalNodesManager | null}

相关章节:模态节点管理

相关类型:IPublicModelModalNodesManager

dropLocation

文档的 dropLocation

@type {IPublicModelDropLocation | null}

相关类型:IPublicModelDropLocation

@since v1.1.0

方法

getNodeById

根据 nodeId 返回 Node 实例

/**
 * 根据 nodeId 返回 Node 实例
 * get node by nodeId
 * @param nodeId
 * @returns
 */
getNodeById(nodeId: string): IPublicModelNode | null;

相关类型:IPublicModelNode

importSchema

导入 schema

/**
 * 导入 schema
 * import schema data
 * @param schema
 */
importSchema(schema: IPublicTypeRootSchema): void;

相关类型:IPublicTypeRootSchema

exportSchema

导出 schema

/**
 * 导出 schema
 * export schema
 * @param stage
 * @returns
 */
exportSchema(stage: IPublicEnumTransformStage): IPublicTypeRootSchema | undefined;

相关类型:

insertNode

插入节点

/**
 * 插入节点
 * insert a node
 */
insertNode(
  parent: IPublicModelNode,
  thing: IPublicModelNode,
  at?: number | null | undefined,
  copy?: boolean | undefined
): IPublicModelNode | null;

相关类型:IPublicModelNode

createNode

创建一个节点

/**
 * 创建一个节点
 * create a node
 * @param data
 * @returns
 */
createNode(data: any): IPublicModelNode | null;

相关类型:IPublicModelNode

removeNode

移除指定节点/节点id

/**
 * 移除指定节点/节点id
 * remove a node by node instance or nodeId
 * @param idOrNode
 */
removeNode(idOrNode: string | IPublicModelNode): void;

相关类型:IPublicModelNode

checkNesting

检查拖拽放置的目标节点是否可以放置该拖拽对象

/**
 * 检查拖拽放置的目标节点是否可以放置该拖拽对象
 * check if dragOjbect can be put in this dragTarget
 * @param dropTarget 拖拽放置的目标节点
 * @param dragObject 拖拽的对象
 * @returns boolean 是否可以放置
 * @since v1.0.16
 */
checkNesting(
  dropTarget: IPublicModelNode,
  dragObject: IPublicTypeDragNodeObject | IPublicTypeDragNodeDataObject
): boolean;

相关类型:

@since v1.0.16

isDetectingNode

判断是否当前节点处于被探测状态

/**
 * 判断是否当前节点处于被探测状态
 * check is node being detected
 * @param node
 * @since v1.1.0
 */
isDetectingNode(node: IPublicModelNode): boolean;

相关类型:IPublicModelNode

@since v1.1.0

事件

onAddNode

当前 document 新增节点事件

/**
 * 当前 document 新增节点事件
 * set callback for event on node is created for a document
 */
onAddNode(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable;

相关类型:

onMountNode

当前 document 新增节点事件,此时节点已经挂载到 document 上

/**
 * 当前 document 新增节点事件,此时节点已经挂载到 document 上
 * set callback for event on node is mounted to canvas
 */
onMountNode(fn: (payload: { node: IPublicModelNode }) => void): IPublicTypeDisposable;

相关类型:

onRemoveNode

当前 document 删除节点事件

/**
 * 当前 document 删除节点事件
 * set callback for event on node is removed
 */
onRemoveNode(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable;

相关类型:

onChangeDetecting

当前 document 的 hover 变更事件

/**
 * 当前 document 的 hover 变更事件
 *
 * set callback for event on detecting changed
 */
onChangeDetecting(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable;

相关类型:

onChangeSelection

当前 document 的选中变更事件

/**
 * 当前 document 的选中变更事件
 * set callback for event on selection changed
 */
onChangeSelection(fn: (ids: string[]) => void): IPublicTypeDisposable;

相关类型:IPublicTypeDisposable

onChangeNodeVisible

当前 document 的节点显隐状态变更事件

/**
 * 当前 document 的节点显隐状态变更事件
 * set callback for event on visibility changed for certain node
 * @param fn
 */
onChangeNodeVisible(fn: (node: IPublicModelNode, visible: boolean) => void): IPublicTypeDisposable;

onChangeNodeChildren

当前 document 的节点 children 变更事件

onChangeNodeChildren(fn: (info?: IPublicTypeOnChangeOptions) => void): IPublicTypeDisposable;

相关类型:IPublicTypeDisposable

onChangeNodeProp

当前 document 节点属性修改事件

onChangeNodeProp(fn: (info: IPublicTypePropChangeOptions) => void): IPublicTypeDisposable;

相关类型:IPublicTypeDisposable

onImportSchema

当前 document 导入新的 schema 事件

/**
 * import schema event
 * @param fn
 * @since v1.0.15
 */
onImportSchema(fn: (schema: IPublicTypeRootSchema) => void): IPublicTypeDisposable;

相关类型:

@since v1.0.15

onFocusNodeChanged

设置聚焦节点变化的回调

/**
 * 设置聚焦节点变化的回调
 * triggered focused node is set mannually from plugin
 * @param fn
 * @since v1.1.0
 */
onFocusNodeChanged(
  fn: (doc: IPublicModelDocumentModel, focusNode: IPublicModelNode) => void,
): IPublicTypeDisposable;

相关类型:

@since v1.1.0

onDropLocationChanged

设置 DropLocation 变化的回调

/**
 * 设置 DropLocation 变化的回调
 * triggered when drop location changed
 * @param fn
 * @since v1.1.0
 */
onDropLocationChanged(fn: (doc: IPublicModelDocumentModel) => void): IPublicTypeDisposable;

相关类型:IPublicTypeDisposable

@since v1.1.0