// Accept at current selectioneditor.commands.acceptTrackedChangeBySelection()// Accept a specific change by IDeditor.commands.acceptTrackedChangeById('change-123')// Accept a change object (with start/end positions)editor.commands.acceptTrackedChange({ trackedChange: { start: 10, end: 50 } })// Accept changes in a rangeeditor.commands.acceptTrackedChangesBetween(10, 50)// Accept all changes in the documenteditor.commands.acceptAllTrackedChanges()// Toolbar-aware accept (uses active thread or selection)editor.commands.acceptTrackedChangeFromToolbar()
// Reject at current selectioneditor.commands.rejectTrackedChangeOnSelection()// Reject a specific change by IDeditor.commands.rejectTrackedChangeById('change-123')// Reject a change objecteditor.commands.rejectTrackedChange({ trackedChange: { start: 10, end: 50 } })// Reject changes in a rangeeditor.commands.rejectTrackedChangesBetween(10, 50)// Reject all changes in the documenteditor.commands.rejectAllTrackedChanges()// Toolbar-aware rejecteditor.commands.rejectTrackedChangeFromToolbar()
// Show document as it was before changeseditor.commands.toggleTrackChangesShowOriginal()editor.commands.enableTrackChangesShowOriginal()editor.commands.disableTrackChangesShowOriginal()// Show document as if all changes were acceptededitor.commands.toggleTrackChangesShowFinal()editor.commands.enableTrackChangesShowFinal()
import { trackChangesHelpers } from 'superdoc';// Get all tracked changes in the documentconst changes = trackChangesHelpers.getTrackChanges(editor.state);// Returns: [{ mark, from, to }, ...]// Get a specific change by IDconst change = trackChangesHelpers.getTrackChanges(editor.state, 'change-123');
// Export with changes preservedawait superdoc.export();// Accept all first, then export cleaneditor.commands.acceptAllTrackedChanges();await superdoc.export();