flattenElectricalNodes static method

List<ElectricalNode> flattenElectricalNodes(
  1. ElectricalNode? root
)

Flatten tree to list of nodes (depth-first)

Implementation

static List<ElectricalNode> flattenElectricalNodes(ElectricalNode? root) {
  if (root == null) return [];

  final children = root.map(
    source: (node) => node.children,
    protection: (node) => node.children,
    panel: (node) => node.children,
    load: (_) => <ElectricalNode>[],
  );

  return [
    root,
    ...children.expand((child) => flattenElectricalNodes(child)),
  ];
}