Commit c0f4e780 authored by Almouhannad Hafez's avatar Almouhannad Hafez

Fix chartConfiguration usage in chart.ts

parent a379d8c4
...@@ -2,12 +2,7 @@ import * as d3 from 'd3'; ...@@ -2,12 +2,7 @@ import * as d3 from 'd3';
import { ChartConfiguration } from './chart-configuration'; import { ChartConfiguration } from './chart-configuration';
export abstract class Chart { export abstract class Chart {
protected config: { protected config: ChartConfiguration;
parentSVGElement: string;
containerWidth: number;
containerHeight: number;
margin: { top: number; right: number; bottom: number; left: number; };
};
public data: any[]; public data: any[];
protected width: number; protected width: number;
protected height: number; protected height: number;
...@@ -24,13 +19,10 @@ export abstract class Chart { ...@@ -24,13 +19,10 @@ export abstract class Chart {
const vis = this; const vis = this;
// Configuration object with defaults // Configuration object with defaults
const { width, height } = _config.containerSize || vis.getDefaultContainerSize(); vis.config = new ChartConfiguration(_config.parentSVGElement,
vis.config = { _config.containerSize || vis.getDefaultContainerSize(),
parentSVGElement: _config.parentSVGElement, _config.margin || vis.getDefaultMargins());
containerWidth: width,
containerHeight: height,
margin: _config.margin || vis.getDefaultMargins()
};
vis.data = _data || []; vis.data = _data || [];
vis.initChart(); vis.initChart();
} }
...@@ -52,18 +44,18 @@ export abstract class Chart { ...@@ -52,18 +44,18 @@ export abstract class Chart {
const vis = this; const vis = this;
// Calculate inner chart size. // Calculate inner chart size.
vis.width = vis.config.containerWidth - vis.config.margin.left - vis.config.margin.right; vis.width = vis.config.containerSize!.width - vis.config.margin!.left - vis.config.margin!.right;
vis.height = vis.config.containerHeight - vis.config.margin.top - vis.config.margin.bottom; vis.height = vis.config.containerSize!.height - vis.config.margin!.top - vis.config.margin!.bottom;
// Define size of SVG drawing area // Define size of SVG drawing area
vis.svg = d3.select(vis.config.parentSVGElement) vis.svg = d3.select(vis.config.parentSVGElement)
.attr('width', vis.config.containerWidth) .attr('width', vis.config.containerSize!.width)
.attr('height', vis.config.containerHeight); .attr('height', vis.config.containerSize!.height);
// Append group element that will contain our actual chart // Append group element that will contain our actual chart
// and position it according to the given margin config // and position it according to the given margin config
vis.chart = vis.svg.append('g') vis.chart = vis.svg.append('g')
.attr('transform', `translate(${vis.config.margin.left},${vis.config.margin.top})`); .attr('transform', `translate(${vis.config.margin!.left},${vis.config.margin!.top})`);
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment