R
T

EditorOp

The CRDT operation log entry. Each carries an op id for the oplog; structural ops address blocks by their stable string id, text ops by character op ids.

Signature

ts
export type EditorOp
  = | { readonly id: OpId; readonly kind: 'block-insert'; readonly blockId: string; readonly blockType: string; readonly attrs: Attrs; readonly posKey: string; readonly isText: boolean }
    | { readonly id: OpId; readonly kind: 'block-remove'; readonly blockId: string }
    | { readonly id: OpId; readonly kind: 'block-move'; readonly blockId: string; readonly posKey: string }
    | { readonly id: OpId; readonly kind: 'block-attrs'; readonly blockId: string; readonly attrs: Attrs }
    | { readonly id: OpId; readonly kind: 'block-type'; readonly blockId: string; readonly blockType: string; readonly attrs: Attrs }
    | { readonly id: OpId; readonly kind: 'text-insert'; readonly blockId: string; readonly afterId: OpId | null; readonly ch: string }
    | { readonly id: OpId; readonly kind: 'text-delete'; readonly blockId: string; readonly charId: OpId }
    | { readonly id: OpId; readonly kind: 'mark-add'; readonly blockId: string; readonly markType: string; readonly value: MarkValue; readonly startId: OpId; readonly endId: OpId };