resolve method
Resolve layout with actual dimensions (e.g., resolve infinity values).
Implementation
@override
IChartLayout resolve(List<ILayoutData> dimensions) {
assert(dimensions.isNotEmpty);
final effectiveMinX = dimensions.map((d) => d.minX).reduce(min);
final effectiveMaxX = dimensions.map((d) => d.maxX).reduce(max);
final effectiveMinY = dimensions.map((d) => d.minY).reduce(min);
final effectiveMaxY = dimensions.map((d) => d.maxY).reduce(max);
final resolvedMinX = minX.isFinite ? minX : effectiveMinX;
final resolvedMaxX = maxX.isFinite ? maxX : effectiveMaxX;
final resolvedMinY = minY.isFinite ? minY : effectiveMinY;
final resolvedMaxY = maxY.isFinite ? maxY : effectiveMaxY;
final finalMinX =
resolvedMinX == resolvedMaxX ? resolvedMinX - 1.0 : resolvedMinX;
final finalMaxX =
resolvedMinX == resolvedMaxX ? resolvedMaxX + 1.0 : resolvedMaxX;
final finalMinY =
resolvedMinY == resolvedMaxY ? resolvedMinY - 1.0 : resolvedMinY;
final finalMaxY =
resolvedMinY == resolvedMaxY ? resolvedMaxY + 1.0 : resolvedMaxY;
return RelativeLayout(
minX: finalMinX,
maxX: finalMaxX,
minY: finalMinY,
maxY: finalMaxY,
);
}