in packages/core/src/models/TreeNode.ts [880:892]
static filterDroppable(nodes: TreeNode[] = [], parent: TreeNode) {
return nodes.reduce((buf, node) => {
if (!node.allowDrop(parent)) return buf
if (isFn(node.designerProps?.getDropNodes)) {
const cloned = node.isSourceNode ? node.clone(node.parent) : node
const transformed = node.designerProps.getDropNodes(cloned, parent)
return transformed ? buf.concat(transformed) : buf
}
if (node.componentName === '$$ResourceNode$$')
return buf.concat(node.children)
return buf.concat([node])
}, [])
}