static filterDroppable()

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])
    }, [])
  }