minimumSize property

  1. @override
DiagramSize get minimumSize
inherited

Implementation

@override
DiagramSize get minimumSize {
  final extents = _extents, weights = _weights;
  var fixed = gap * (children.length - 1),
      flex = 0.0,
      unit = 0.0,
      cross = 0.0;
  for (var i = 0; i < children.length; i++) {
    // A part that can hide, such as an optional section, may take no space,
    // and a content-sized part is exactly as tall as its measured content.
    if (children[i]
        case ShapeSized(visibleWhen: _?) ||
            ShapeSized(contentHeightSlot: _?)) {
      continue;
    }
    final size = children[i].minimumSize;
    cross = math.max(cross, _cross(size));
    if (extents[i] case final extent?) {
      fixed += extent;
    } else {
      flex += weights[i];
      unit = math.max(unit, _main(size) / weights[i]);
    }
  }
  final main = fixed + flex * unit;
  return horizontal ? DiagramSize(main, cross) : DiagramSize(cross, main);
}