resolve method

  1. @override
IChartLayout resolve(
  1. List<ILayoutData> dimensions
)
override

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,
    relativeTo: relativeTo
  );
}