in packages/core/src/models/TreeNode.ts [568:596]
insertAfter(...nodes: TreeNode[]) {
const parent = this.parent
if (nodes.some((node) => node.contains(this))) return []
if (parent?.children?.length) {
const originSourceParents = nodes.map((node) => node.parent)
const newNodes = this.resetNodesParent(nodes, parent)
if (!newNodes.length) return []
return this.triggerMutation(
new InsertAfterEvent({
originSourceParents,
target: this,
source: newNodes,
}),
() => {
parent.children = parent.children.reduce((buf, node) => {
if (node === this) {
return buf.concat([node]).concat(newNodes)
} else {
return buf.concat([node])
}
}, [])
return newNodes
},
[]
)
}
return []
}