calculateInsets method
Calculates the insets required by this renderer.
Used to reserve space for axes, legends, etc.
Implementation
@override
EdgeInsets calculateInsets(Size availableSize) {
if (!_config.visible || items.isEmpty) return EdgeInsets.zero;
// Compute layouts to get size
final dummyChartArea = Rect.fromLTWH(
50,
50,
availableSize.width - 100,
availableSize.height - 100,
);
final layouts = _computeLayouts(availableSize, dummyChartArea);
if (layouts.isEmpty) return EdgeInsets.zero;
var maxY = 0.0;
var maxX = 0.0;
for (final layout in layouts) {
maxY = maxY > layout.bounds.bottom ? maxY : layout.bounds.bottom;
maxX = maxX > layout.bounds.right ? maxX : layout.bounds.right;
}
final contentHeight = maxY + _config.padding.vertical;
final contentWidth = maxX + _config.padding.horizontal;
switch (_config.position) {
case ChartPosition.top:
return EdgeInsets.only(top: contentHeight);
case ChartPosition.bottom:
return EdgeInsets.only(bottom: contentHeight);
case ChartPosition.left:
return EdgeInsets.only(left: contentWidth);
case ChartPosition.right:
return EdgeInsets.only(right: contentWidth);
case ChartPosition.center:
return EdgeInsets.zero;
}
}