import { EditorState, Transaction } from "prosemirror-state"; import { getPluginStateOrThrow } from "./RangePlugin"; import { RangeDeleteStep } from "./RangeDeleteStep"; import { RangeCreateStep } from "./RangeCreateStep"; import { Range } from "./types"; export function createRange(editorState: EditorState, range: Range, tr = editorState.tr): Transaction { return tr.step(new RangeCreateStep(range)); } export function deleteRange(editorState: EditorState, rangeId: Range["id"], tr = editorState.tr): Transaction { const pluginState = getPluginStateOrThrow(editorState); const range = pluginState.sortedRanges.find(range => range.id === rangeId); if (range === undefined) { throw new Error(`Unable to delete range with id=${rangeId}, as it was not found.`); } return tr.step(new RangeDeleteStep(range)); }