DocumentModel
@types IPublicModelDocumentModel
@since v1.0.0
基本介绍
文档模型
属性
id
唯一 ID
@type {string}
selection
画布节点选中区模型实例
@type {IPublicModelSelection}
相关章节:节点选中区模型
detecting
画布节点 hover 区模型实例
@type {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}
@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;
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;
onChangeNodeVisible
当前 document 的节点显隐状态变更事件
/**
* 当前 document 的节点显隐状态变更事件
* set callback for event on visibility changed for certain node
* @param fn
*/
onChangeNodeVisible(fn: (node: IPublicModelNode, visible: boolean) => void): IPublicTypeDisposable;
- 相关类型:IPublicModelNode
- 相关类型:IPublicTypeDisposable
onChangeNodeChildren
当前 document 的节点 children 变更事件
onChangeNodeChildren(fn: (info?: IPublicTypeOnChangeOptions) => void): IPublicTypeDisposable;
onChangeNodeProp
当前 document 节点属性修改事件
onChangeNodeProp(fn: (info: IPublicTypePropChangeOptions) => void): 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;
@since v1.1.0