rete-comment-plugin packageA union of all possible signals that can be emitted by the comment plugin
type Produces =
  | { data: Comment; type: "commentcreated" }
  | { data: Comment; type: "commentremoved" }
  | { data: Comment; type: "editcomment" }
  | { data: Comment; type: "commentselected" }
  | { data: Comment; type: "commentunselected" }
  | { data: Object; type: "commenttranslated" }
  | { data: Object; type: "commentlinktranslate" };
A plugin that provides comments for nodes
class CommentPlugin<Schemes extends ExpectedSchemes, K extends unknown>
| Parameter | Extends | Description | 
|---|---|---|
| Schemes | ExpectedSchemes | |
| K | unknown | 
Extends Scope<Produces, BaseArea<Schemes> | K>
constructor(props: Props): CommentPlugin<Schemes, K>
| Parameter | Type | Description | 
|---|---|---|
| props | Props | Optional comment plugin properties | 
Returns CommentPlugin<Schemes, K>
Adds a frame comment. Represents a rectangle with a text and nodes linked to it. When user translates a comment, all linked nodes will be translated as well. When user drops a node on a comment, the node will be linked to the comment.
addFrame(text: string, links: string[]): void
| Parameter | Type | Description | 
|---|---|---|
| text | string | Comment text | 
| links | string[] | List of node IDs the comment is linked with | 
Returns void
Adds an inline comment which is represented by a block with text at certain position, which is attached to the node. When user translates a node, the comment will be translated as well. When user drops a comment on a node, the comment will be linked to the node.
addInline(text: string, position: [number, number], link: string): void
| Parameter | Type | Description | 
|---|---|---|
| text | string | Comment text | 
| position | [number, number] | Comment position | 
| link | string | Node ID the comment is linked with | 
Returns void
Removes all comments
clear(): void
Returns void
Removes a comment
delete(id: string): void
| Parameter | Type | Description | 
|---|---|---|
| id | string | Comment id | 
Returns void
Trigger edit form for a comment
editComment(id: string): Promise<void>
| Parameter | Type | Description | 
|---|---|---|
| id | string | Comment id | 
Returns Promise<void>
Selects a comment
select(id: string): void
| Parameter | Type | Description | 
|---|---|---|
| id | string | Comment id | 
Returns void
Translates a comment
translate(id: string, dx: number, dy: number): void
| Parameter | Type | Description | 
|---|---|---|
| id | string | Comment id | 
| dx | number | Delta x | 
| dy | number | Delta y | 
Returns void
Unselects a comment
unselect(id: string): void
| Parameter | Type | Description | 
|---|---|---|
| id | string | Comment id | 
Returns void
Comment plugin extensions
Enables synchronization between comments and the selector
selectable(plugin: CommentPlugin<S, K>, selector: Selector<SelectorEntity>, accumulating: { active: unknown }): void
| Parameter | Type | Description | 
|---|---|---|
| plugin | CommentPlugin<S, K> | Comment plugin instance | 
| selector | Selector<SelectorEntity> | Selector instance | 
| accumulating | { active: unknown } | Accumulating state | 
Returns void
Comment plugin properties
type Props = { edit: Function };