DocumentModel
@types IPublicModelDocumentModel
> @since v1.0.0
Overview
Document model
Properties
id
Unique ID
@type {string}
selection
Canvas node selection model instance
@type {IPublicModelSelection}
Related sections: Node Selection Model
Related types: IPublicModelSelection
detecting
Canvas node hover model instance
@type {IPublicModelDetecting}
Related sections: Canvas Node Hover Model
Related types: IPublicModelDetecting
history
Operation history model instance
@type {IPublicModelHistory}
Related sections: Operation History Model
Related types: IPublicModelHistory
project
Get the project that owns the current document model
@type {IPublicApiProject}
Related types: IPublicApiProject
root
Get the root node of the document
@type {IPublicModelNode | null}
Related types: IPublicModelNode
nodesMap
Get a Map of all nodes in the document, keyed by nodeId
@type {Map<string, IPublicModelNode>}
Related sections: Node Model
Related types: IPublicModelNode
modalNodesManager
Modal nodes manager
@type {IPublicModelModalNodesManager | null}
Related sections: Modal Nodes Manager
Related types: IPublicModelModalNodesManager
dropLocation
The document's dropLocation
@type {IPublicModelDropLocation | null}
Related types: IPublicModelDropLocation
@since v1.1.0
Methods
getNodeById
Return a Node instance by nodeId
/**
* Return Node instance by nodeId
* get node by nodeId
* @param nodeId
* @returns
*/
getNodeById(nodeId: string): IPublicModelNode | null;
Related types: IPublicModelNode
importSchema
Import schema
/**
* Import schema
* import schema data
* @param schema
*/
importSchema(schema: IPublicTypeRootSchema): void;
Related types: IPublicTypeRootSchema
exportSchema
Export schema
/**
* Export schema
* export schema
* @param stage
* @returns
*/
exportSchema(stage: IPublicEnumTransformStage): IPublicTypeRootSchema | undefined;
Related types:
insertNode
Insert a node
/**
* Insert a node
* insert a node
*/
insertNode(
parent: IPublicModelNode,
thing: IPublicModelNode,
at?: number | null | undefined,
copy?: boolean | undefined
): IPublicModelNode | null;
Related types: IPublicModelNode
createNode
Create a node
/**
* Create a node
* create a node
* @param data
* @returns
*/
createNode(data: any): IPublicModelNode | null;
Related types: IPublicModelNode
removeNode
Remove the specified node or node id
/**
* Remove the specified node / node id
* remove a node by node instance or nodeId
* @param idOrNode
*/
removeNode(idOrNode: string | IPublicModelNode): void;
Related types: IPublicModelNode
checkNesting
Check whether the drop target node can accept the dragged object
/**
* Check whether the drop target can accept the drag object
* check if dragOjbect can be put in this dragTarget
* @param dropTarget drop target node
* @param dragObject drag object
* @returns boolean whether drop is allowed
* @since v1.0.16
*/
checkNesting(
dropTarget: IPublicModelNode,
dragObject: IPublicTypeDragNodeObject | IPublicTypeDragNodeDataObject
): boolean;
Related types:
@since v1.0.16
isDetectingNode
Check whether the given node is currently being detected (hovered)
/**
* Check whether the current node is being detected
* check is node being detected
* @param node
* @since v1.1.0
*/
isDetectingNode(node: IPublicModelNode): boolean;
Related types: IPublicModelNode
@since v1.1.0
Events
onAddNode
Event fired when a new node is added to the current document
/**
* Current document node-added event
* set callback for event on node is created for a document
*/
onAddNode(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable;
Related types:
onMountNode
Event fired when a new node is added to the current document and has been mounted to the document
/**
* Current document node-added event; node is already mounted on the document
* set callback for event on node is mounted to canvas
*/
onMountNode(fn: (payload: { node: IPublicModelNode }) => void): IPublicTypeDisposable;
Related types:
onRemoveNode
Event fired when a node is removed from the current document
/**
* Current document node-removed event
* set callback for event on node is removed
*/
onRemoveNode(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable;
Related types:
onChangeDetecting
Event fired when hover state changes in the current document
/**
* Current document hover change event
*
* set callback for event on detecting changed
*/
onChangeDetecting(fn: (node: IPublicModelNode) => void): IPublicTypeDisposable;
Related types:
onChangeSelection
Event fired when selection changes in the current document
/**
* Current document selection change event
* set callback for event on selection changed
*/
onChangeSelection(fn: (ids: string[]) => void): IPublicTypeDisposable;
Related types: IPublicTypeDisposable
onChangeNodeVisible
Event fired when a node's visibility changes in the current document
/**
* Current document node visibility change event
* set callback for event on visibility changed for certain node
* @param fn
*/
onChangeNodeVisible(fn: (node: IPublicModelNode, visible: boolean) => void): IPublicTypeDisposable;
- Related types: IPublicModelNode
- Related types: IPublicTypeDisposable
onChangeNodeChildren
Event fired when a node's children change in the current document
onChangeNodeChildren(fn: (info?: IPublicTypeOnChangeOptions) => void): IPublicTypeDisposable;
Related types: IPublicTypeDisposable
onChangeNodeProp
Event fired when a node property is modified in the current document
onChangeNodeProp(fn: (info: IPublicTypePropChangeOptions) => void): IPublicTypeDisposable;
Related types: IPublicTypeDisposable
onImportSchema
Event fired when a new schema is imported into the current document
/**
* import schema event
* @param fn
* @since v1.0.15
*/
onImportSchema(fn: (schema: IPublicTypeRootSchema) => void): IPublicTypeDisposable;
Related types:
@since v1.0.15
onFocusNodeChanged
Set a callback for when the focused node changes
/**
* Set callback for focus node changes
* triggered focused node is set mannually from plugin
* @param fn
* @since v1.1.0
*/
onFocusNodeChanged(
fn: (doc: IPublicModelDocumentModel, focusNode: IPublicModelNode) => void,
): IPublicTypeDisposable;
Related types:
@since v1.1.0
onDropLocationChanged
Set a callback for when DropLocation changes
/**
* Set callback for DropLocation changes
* triggered when drop location changed
* @param fn
* @since v1.1.0
*/
onDropLocationChanged(fn: (doc: IPublicModelDocumentModel) => void): IPublicTypeDisposable;
Related types: IPublicTypeDisposable
@since v1.1.0