in packages/core/src/models/TreeNode.ts [627:652]
insertChildren(start: number, ...nodes: TreeNode[]) {
if (nodes.some((node) => node.contains(this))) return []
if (this.children?.length) {
const originSourceParents = nodes.map((node) => node.parent)
const newNodes = this.resetNodesParent(nodes, this)
if (!newNodes.length) return []
return this.triggerMutation(
new InsertChildrenEvent({
originSourceParents,
target: this,
source: newNodes,
}),
() => {
this.children = this.children.reduce((buf, node, index) => {
if (index === start) {
return buf.concat(newNodes).concat([node])
}
return buf.concat([node])
}, [])
return newNodes
},
[]
)
}
return []
}