addNode static method
Implementation
static CanvasSceneDocument addNode(
CanvasSceneDocument doc,
Node node, {
NodeId? parentId,
int? index,
}) {
if (parentId == null) {
final out = [...doc.children];
final i = _clampInsertIndex(index ?? out.length, out.length);
out.insert(i, node);
return doc.copyWith(children: out);
}
final parent = findById(doc, parentId);
if (parent == null || !parent.isGroup) return doc;
final outKids = [...parent.childrenOrEmpty];
final i = _clampInsertIndex(index ?? outKids.length, outKids.length);
outKids.insert(i, node);
return _replaceChildren(doc, parent, outKids);
}