toJsGraph method

String toJsGraph()

Convert to JSON string for ELK layout serialization.

Hyperedges are expanded on-the-fly during LayoutNode.toJson — no separate expansion or filtering step is needed.

Implementation

String toJsGraph() {
  // Phase 1: Temporarily move partial children into visible lists.
  _applyPartialExpansions(root);

  // Phase 2: Ensure all nodes have sizes calculated.
  _prepareNodeSizes(root);

  // Phase 3: Serialize (edge expansion + filtering happen inside toJson).
  final json = jsonEncode(root.toJson());

  // Phase 4: Restore original child/hidden-child lists.
  _restorePartialExpansions(root);

  return json;
}