getAllExpandableIds method

Set<String> getAllExpandableIds(
  1. List<Map<String, dynamic>> rows, {
  2. String parentId = '',
})

Get all expandable row IDs (rows with children)

Implementation

Set<String> getAllExpandableIds(
  List<Map<String, dynamic>> rows, {
  String parentId = '',
}) {
  final ids = <String>{};

  for (var i = 0; i < rows.length; i++) {
    final row = rows[i];
    if (!_hasChildren(row)) continue;

    final rowId = _generateRowId(row, i, parentId);
    ids.add(rowId);

    // Recursively get children's expandable IDs
    final children = (row['_children'] as List)
        .whereType<Map<String, dynamic>>()
        .toList();
    ids.addAll(getAllExpandableIds(children, parentId: rowId));
  }

  return ids;
}