Based on paper Real time group editors without Operational transformation.
Generate an insert operation.
Generate a delete operation.
Generate an set attributes operation.
Receive an operation. If the op is executable, execute it. Otherwise, push it into pool.
Get the visible position of a element. Returns the position of the element c in document, ignoring any invisble elements. Returns -1 if position is not found, or the c is invisible internally.
Emitted when an insert is generated locally.
Emitted when a delete is generated locally.
Emitted when an attrib is generated locally.
Emitted when an operation from remote is executed.
Get an structure that can be persisted the current state of document as JSON.
Get a Document from JSON.
Insert a character to document.
- insert: the character to be inserted
{
insert: char
}
Delete a character from document.
- delete: the character to be deleted
{
delete: char
}
Update attribute of a character.
- attrib: the character to be updated
- value: the attributes
{
attrib: char
value: value
}