compose method

void compose()

Compose the delta in the compose map.

Implementation

void compose() {
  if (_composeMap.isEmpty) {
    markNeedsComposing = false;
    return;
  }
  for (final entry in _composeMap.entries) {
    final node = entry.key;
    if (node.delta == null) {
      continue;
    }
    final deltaQueue = entry.value;
    final composed =
        deltaQueue.fold<Delta>(node.delta!, (p, e) => p.compose(e));
    assert(composed.every((element) => element is TextInsert));
    updateNode(node, {
      'delta': composed.toJson(),
    });
  }
  markNeedsComposing = false;
  _composeMap.clear();
}