跳到主要内容

DocumentModel

@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