@@ -987,7 +987,7 @@ const COLOR_COMPATIBLE_CHARTS = { | |||||
heatmap: [] | heatmap: [] | ||||
}; | }; | ||||
function getDifferentChart(type, current_type, args) { | |||||
function getDifferentChart(type, current_type, parent, args) { | |||||
if(type === current_type) return; | if(type === current_type) return; | ||||
if(!ALL_CHART_TYPES.includes(type)) { | if(!ALL_CHART_TYPES.includes(type)) { | ||||
@@ -1004,8 +1004,7 @@ function getDifferentChart(type, current_type, args) { | |||||
// Okay, this is anticlimactic | // Okay, this is anticlimactic | ||||
// this function will need to actually be 'changeChartType(type)' | // this function will need to actually be 'changeChartType(type)' | ||||
// that will update only the required elements, but for now ... | // that will update only the required elements, but for now ... | ||||
return new Chart({ | |||||
parent: args.parent, | |||||
return new Chart(parent, { | |||||
title: args.title, | title: args.title, | ||||
data: args.data, | data: args.data, | ||||
type: type, | type: type, | ||||
@@ -1130,36 +1129,26 @@ function runSMILAnimation(parent, svgElement, elementsToAnimate) { | |||||
} | } | ||||
class BaseChart { | class BaseChart { | ||||
constructor({ | |||||
height = 240, | |||||
title = '', | |||||
subtitle = '', | |||||
colors = [], | |||||
isNavigable = 0, | |||||
showLegend = 1, | |||||
type = '', | |||||
parent, | |||||
data | |||||
}) { | |||||
this.rawChartArgs = arguments[0]; | |||||
constructor(parent, options) { | |||||
this.rawChartArgs = options; | |||||
this.parent = typeof parent === 'string' ? document.querySelector(parent) : parent; | this.parent = typeof parent === 'string' ? document.querySelector(parent) : parent; | ||||
this.title = title; | |||||
this.subtitle = subtitle; | |||||
this.argHeight = height; | |||||
this.type = type; | |||||
if (!(this.parent instanceof HTMLElement)) { | |||||
throw new Error('No `parent` element to render on was provided.'); | |||||
} | |||||
this.title = options.title || ''; | |||||
this.subtitle = options.subtitle || ''; | |||||
this.argHeight = options.height || 240; | |||||
this.type = options.type || ''; | |||||
this.realData = this.prepareData(data); | |||||
this.realData = this.prepareData(options.data); | |||||
this.data = this.prepareFirstData(this.realData); | this.data = this.prepareFirstData(this.realData); | ||||
this.colors = []; | this.colors = []; | ||||
this.config = { | this.config = { | ||||
showTooltip: 1, // calculate | showTooltip: 1, // calculate | ||||
showLegend: 1, | |||||
isNavigable: isNavigable, | |||||
showLegend: options.showLegend || 1, | |||||
isNavigable: options.isNavigable || 0, | |||||
animate: 1 | animate: 1 | ||||
}; | }; | ||||
this.state = {}; | this.state = {}; | ||||
@@ -1170,7 +1159,7 @@ class BaseChart { | |||||
this.overlays = []; | this.overlays = []; | ||||
} | } | ||||
this.configure(arguments[0]); | |||||
this.configure(options); | |||||
} | } | ||||
configure(args) { | configure(args) { | ||||
@@ -1210,11 +1199,7 @@ class BaseChart { | |||||
this.rightMargin = RIGHT_MARGIN_BASE_CHART; | this.rightMargin = RIGHT_MARGIN_BASE_CHART; | ||||
} | } | ||||
validate(){ | |||||
if(!this.parent) { | |||||
console.error("No parent element to render on was provided."); | |||||
return false; | |||||
} | |||||
validate() { | |||||
return true; | return true; | ||||
} | } | ||||
@@ -1419,13 +1404,13 @@ class BaseChart { | |||||
removeDataPoint(index = 0) {} | removeDataPoint(index = 0) {} | ||||
getDifferentChart(type) { | getDifferentChart(type) { | ||||
return getDifferentChart(type, this.type, this.rawChartArgs); | |||||
return getDifferentChart(type, this.type, this.parent, this.rawChartArgs); | |||||
} | } | ||||
} | } | ||||
class PercentageChart extends BaseChart { | class PercentageChart extends BaseChart { | ||||
constructor(args) { | |||||
super(args); | |||||
constructor(parent, args) { | |||||
super(parent, args); | |||||
this.type = 'percentage'; | this.type = 'percentage'; | ||||
this.max_slices = 10; | this.max_slices = 10; | ||||
@@ -1549,8 +1534,8 @@ const ANGLE_RATIO = Math.PI / 180; | |||||
const FULL_ANGLE = 360; | const FULL_ANGLE = 360; | ||||
class PieChart extends BaseChart { | class PieChart extends BaseChart { | ||||
constructor(args) { | |||||
super(args); | |||||
constructor(parent, args) { | |||||
super(parent, args); | |||||
this.type = 'pie'; | this.type = 'pie'; | ||||
this.elements_to_animate = null; | this.elements_to_animate = null; | ||||
this.hoverRadio = args.hoverRadio || 0.1; | this.hoverRadio = args.hoverRadio || 0.1; | ||||
@@ -1980,29 +1965,21 @@ function getMaxCheckpoint(value, distribution) { | |||||
} | } | ||||
class Heatmap extends BaseChart { | class Heatmap extends BaseChart { | ||||
constructor({ | |||||
start = '', | |||||
domain = '', | |||||
subdomain = '', | |||||
data = {}, | |||||
discrete_domains = 0, | |||||
count_label = '', | |||||
legend_colors = [] | |||||
}) { | |||||
super(arguments[0]); | |||||
constructor(parent, options) { | |||||
super(parent, options); | |||||
this.type = 'heatmap'; | this.type = 'heatmap'; | ||||
this.domain = domain; | |||||
this.subdomain = subdomain; | |||||
this.data = data; | |||||
this.discrete_domains = discrete_domains; | |||||
this.count_label = count_label; | |||||
this.domain = options.domain || ''; | |||||
this.subdomain = options.subdomain || ''; | |||||
this.data = options.data || {}; | |||||
this.discrete_domains = options.discrete_domains || 1; | |||||
this.count_label = options.count_label || ''; | |||||
let today = new Date(); | let today = new Date(); | ||||
this.start = start || addDays(today, 365); | |||||
this.start = options.start || addDays(today, 365); | |||||
legend_colors = legend_colors.slice(0, 5); | |||||
let legend_colors = (options.legend_colors || []).slice(0, 5); | |||||
this.legend_colors = this.validate_colors(legend_colors) | this.legend_colors = this.validate_colors(legend_colors) | ||||
? legend_colors | ? legend_colors | ||||
: ['#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127']; | : ['#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127']; | ||||
@@ -2680,8 +2657,8 @@ function getComponent(name, constants, getData) { | |||||
} | } | ||||
class AxisChart extends BaseChart { | class AxisChart extends BaseChart { | ||||
constructor(args) { | |||||
super(args); | |||||
constructor(parent, args) { | |||||
super(parent, args); | |||||
this.isSeries = args.isSeries; | this.isSeries = args.isSeries; | ||||
this.valuesOverPoints = args.valuesOverPoints; | this.valuesOverPoints = args.valuesOverPoints; | ||||
this.formatTooltipY = args.formatTooltipY; | this.formatTooltipY = args.formatTooltipY; | ||||
@@ -3158,7 +3135,6 @@ class AxisChart extends BaseChart { | |||||
// keep a binding at the end of chart | // keep a binding at the end of chart | ||||
// import MultiAxisChart from './charts/MultiAxisChart'; | |||||
const chartTypes = { | const chartTypes = { | ||||
// multiaxis: MultiAxisChart, | // multiaxis: MultiAxisChart, | ||||
percentage: PercentageChart, | percentage: PercentageChart, | ||||
@@ -3166,16 +3142,16 @@ const chartTypes = { | |||||
pie: PieChart | pie: PieChart | ||||
}; | }; | ||||
function getChartByType(chartType = 'line', options) { | |||||
function getChartByType(chartType = 'line', parent, options) { | |||||
if(chartType === 'line') { | if(chartType === 'line') { | ||||
options.type = 'line'; | options.type = 'line'; | ||||
return new AxisChart(options); | |||||
return new AxisChart(parent, options); | |||||
} else if (chartType === 'bar') { | } else if (chartType === 'bar') { | ||||
options.type = 'bar'; | options.type = 'bar'; | ||||
return new AxisChart(options); | |||||
return new AxisChart(parent, options); | |||||
} else if (chartType === 'axis-mixed') { | } else if (chartType === 'axis-mixed') { | ||||
options.type = 'line'; | options.type = 'line'; | ||||
return new AxisChart(options); | |||||
return new AxisChart(parent, options); | |||||
} | } | ||||
if (!chartTypes[chartType]) { | if (!chartTypes[chartType]) { | ||||
@@ -3183,12 +3159,12 @@ function getChartByType(chartType = 'line', options) { | |||||
return; | return; | ||||
} | } | ||||
return new chartTypes[chartType](options); | |||||
return new chartTypes[chartType](parent, options); | |||||
} | } | ||||
class Chart { | class Chart { | ||||
constructor(args) { | |||||
return getChartByType(args.type, arguments[0]); | |||||
constructor(parent, options) { | |||||
return getChartByType(options.type, parent, options); | |||||
} | } | ||||
} | } | ||||
@@ -62,8 +62,7 @@ let more_line_data = [ | |||||
let c1 = document.querySelector("#chart-composite-1"); | let c1 = document.querySelector("#chart-composite-1"); | ||||
let c2 = document.querySelector("#chart-composite-2"); | let c2 = document.querySelector("#chart-composite-2"); | ||||
let bar_composite_chart = new Chart ({ | |||||
parent: c1, | |||||
let bar_composite_chart = new Chart (c1, { | |||||
title: "Fireball/Bolide Events - Yearly (more than 5 reports)", | title: "Fireball/Bolide Events - Yearly (more than 5 reports)", | ||||
data: bar_composite_data, | data: bar_composite_data, | ||||
type: 'bar', | type: 'bar', | ||||
@@ -76,8 +75,7 @@ let bar_composite_chart = new Chart ({ | |||||
// regionFill: 1 | // regionFill: 1 | ||||
}); | }); | ||||
let line_composite_chart = new Chart ({ | |||||
parent: c2, | |||||
let line_composite_chart = new Chart (c2, { | |||||
data: line_composite_data, | data: line_composite_data, | ||||
type: 'line', | type: 'line', | ||||
lineOptions: { | lineOptions: { | ||||
@@ -165,8 +163,7 @@ let type_data = { | |||||
] | ] | ||||
}; | }; | ||||
let type_chart = new Chart({ | |||||
parent: "#chart-types", | |||||
let type_chart = new Chart("#chart-types", { | |||||
// title: "My Awesome Chart", | // title: "My Awesome Chart", | ||||
data: type_data, | data: type_data, | ||||
type: 'bar', | type: 'bar', | ||||
@@ -222,7 +219,6 @@ let trends_data = { | |||||
}; | }; | ||||
let plot_chart_args = { | let plot_chart_args = { | ||||
parent: "#chart-trends", | |||||
title: "Mean Total Sunspot Count - Yearly", | title: "Mean Total Sunspot Count - Yearly", | ||||
data: trends_data, | data: trends_data, | ||||
type: 'line', | type: 'line', | ||||
@@ -237,7 +233,7 @@ let plot_chart_args = { | |||||
yAxisMode: 'span' | yAxisMode: 'span' | ||||
}; | }; | ||||
new Chart(plot_chart_args); | |||||
new Chart("#chart-trends", plot_chart_args); | |||||
Array.prototype.slice.call( | Array.prototype.slice.call( | ||||
document.querySelectorAll('.chart-plot-buttons button') | document.querySelectorAll('.chart-plot-buttons button') | ||||
@@ -261,7 +257,7 @@ Array.prototype.slice.call( | |||||
plot_chart_args.init = false; | plot_chart_args.init = false; | ||||
new Chart(plot_chart_args); | |||||
new Chart("#chart-trends", plot_chart_args); | |||||
Array.prototype.slice.call( | Array.prototype.slice.call( | ||||
btn.parentNode.querySelectorAll('button')).map(el => { | btn.parentNode.querySelectorAll('button')).map(el => { | ||||
@@ -301,8 +297,7 @@ let update_data = { | |||||
] | ] | ||||
}; | }; | ||||
let update_chart = new Chart({ | |||||
parent: "#chart-update", | |||||
let update_chart = new Chart("#chart-update", { | |||||
data: update_data, | data: update_data, | ||||
type: 'line', | type: 'line', | ||||
height: 250, | height: 250, | ||||
@@ -377,8 +372,7 @@ let events_data = { | |||||
] | ] | ||||
}; | }; | ||||
let events_chart = new Chart({ | |||||
parent: "#chart-events", | |||||
let events_chart = new Chart("#chart-events", { | |||||
title: "Jupiter's Moons: Semi-major Axis (1000 km)", | title: "Jupiter's Moons: Semi-major Axis (1000 km)", | ||||
data: events_data, | data: events_data, | ||||
type: 'bar', | type: 'bar', | ||||
@@ -412,8 +406,7 @@ let aggr_data = { | |||||
] | ] | ||||
}; | }; | ||||
let aggr_chart = new Chart({ | |||||
parent: "#chart-aggr", | |||||
let aggr_chart = new Chart("#chart-aggr", { | |||||
data: aggr_data, | data: aggr_data, | ||||
type: 'bar', | type: 'bar', | ||||
height: 250, | height: 250, | ||||
@@ -456,8 +449,7 @@ for (var i = 0; i< 375; i++) { | |||||
timestamp = Math.floor(timestamp - 86400).toFixed(1); | timestamp = Math.floor(timestamp - 86400).toFixed(1); | ||||
} | } | ||||
new Chart({ | |||||
parent: "#chart-heatmap", | |||||
new Chart("#chart-heatmap", { | |||||
data: heatmap_data, | data: heatmap_data, | ||||
type: 'heatmap', | type: 'heatmap', | ||||
legend_scale: [0, 1, 2, 4, 5], | legend_scale: [0, 1, 2, 4, 5], | ||||
@@ -485,8 +477,7 @@ Array.prototype.slice.call( | |||||
colors = ['#ebedf0', '#fdf436', '#ffc700', '#ff9100', '#06001c']; | colors = ['#ebedf0', '#fdf436', '#ffc700', '#ff9100', '#06001c']; | ||||
} | } | ||||
new Chart({ | |||||
parent: "#chart-heatmap", | |||||
new Chart("#chart-heatmap", { | |||||
data: heatmap_data, | data: heatmap_data, | ||||
type: 'heatmap', | type: 'heatmap', | ||||
legend_scale: [0, 1, 2, 4, 5], | legend_scale: [0, 1, 2, 4, 5], | ||||
@@ -524,8 +515,7 @@ Array.prototype.slice.call( | |||||
discrete_domains = 0; | discrete_domains = 0; | ||||
} | } | ||||
new Chart({ | |||||
parent: "#chart-heatmap", | |||||
new Chart("#chart-heatmap", { | |||||
data: heatmap_data, | data: heatmap_data, | ||||
type: 'heatmap', | type: 'heatmap', | ||||
legend_scale: [0, 1, 2, 4, 5], | legend_scale: [0, 1, 2, 4, 5], | ||||
@@ -52,5 +52,8 @@ | |||||
"rollup-plugin-uglify": "^2.0.1", | "rollup-plugin-uglify": "^2.0.1", | ||||
"rollup-plugin-uglify-es": "0.0.1", | "rollup-plugin-uglify-es": "0.0.1", | ||||
"rollup-watch": "^4.3.1" | "rollup-watch": "^4.3.1" | ||||
}, | |||||
"dependencies": { | |||||
"eslint": "^4.18.2" | |||||
} | } | ||||
} | } |
@@ -13,16 +13,16 @@ const chartTypes = { | |||||
pie: PieChart | pie: PieChart | ||||
}; | }; | ||||
function getChartByType(chartType = 'line', options) { | |||||
function getChartByType(chartType = 'line', parent, options) { | |||||
if(chartType === 'line') { | if(chartType === 'line') { | ||||
options.type = 'line'; | options.type = 'line'; | ||||
return new AxisChart(options); | |||||
return new AxisChart(parent, options); | |||||
} else if (chartType === 'bar') { | } else if (chartType === 'bar') { | ||||
options.type = 'bar'; | options.type = 'bar'; | ||||
return new AxisChart(options); | |||||
return new AxisChart(parent, options); | |||||
} else if (chartType === 'axis-mixed') { | } else if (chartType === 'axis-mixed') { | ||||
options.type = 'line'; | options.type = 'line'; | ||||
return new AxisChart(options); | |||||
return new AxisChart(parent, options); | |||||
} | } | ||||
if (!chartTypes[chartType]) { | if (!chartTypes[chartType]) { | ||||
@@ -30,11 +30,11 @@ function getChartByType(chartType = 'line', options) { | |||||
return; | return; | ||||
} | } | ||||
return new chartTypes[chartType](options); | |||||
return new chartTypes[chartType](parent, options); | |||||
} | } | ||||
export default class Chart { | export default class Chart { | ||||
constructor(args) { | |||||
return getChartByType(args.type, arguments[0]); | |||||
constructor(parent, options) { | |||||
return getChartByType(options.type, parent, options); | |||||
} | } | ||||
} | } |
@@ -9,8 +9,8 @@ import { makeOverlay, updateOverlay } from '../utils/draw'; | |||||
import { MIN_BAR_PERCENT_HEIGHT, DEFAULT_AXIS_CHART_TYPE, BAR_CHART_SPACE_RATIO, LINE_CHART_DOT_SIZE } from '../utils/constants'; | import { MIN_BAR_PERCENT_HEIGHT, DEFAULT_AXIS_CHART_TYPE, BAR_CHART_SPACE_RATIO, LINE_CHART_DOT_SIZE } from '../utils/constants'; | ||||
export default class AxisChart extends BaseChart { | export default class AxisChart extends BaseChart { | ||||
constructor(args) { | |||||
super(args); | |||||
constructor(parent, args) { | |||||
super(parent, args); | |||||
this.isSeries = args.isSeries; | this.isSeries = args.isSeries; | ||||
this.valuesOverPoints = args.valuesOverPoints; | this.valuesOverPoints = args.valuesOverPoints; | ||||
this.formatTooltipY = args.formatTooltipY; | this.formatTooltipY = args.formatTooltipY; | ||||
@@ -9,36 +9,26 @@ import { getDifferentChart } from '../config'; | |||||
import { runSMILAnimation } from '../utils/animation'; | import { runSMILAnimation } from '../utils/animation'; | ||||
export default class BaseChart { | export default class BaseChart { | ||||
constructor({ | |||||
height = 240, | |||||
title = '', | |||||
subtitle = '', | |||||
colors = [], | |||||
isNavigable = 0, | |||||
showLegend = 1, | |||||
type = '', | |||||
parent, | |||||
data | |||||
}) { | |||||
this.rawChartArgs = arguments[0]; | |||||
constructor(parent, options) { | |||||
this.rawChartArgs = options; | |||||
this.parent = typeof parent === 'string' ? document.querySelector(parent) : parent; | this.parent = typeof parent === 'string' ? document.querySelector(parent) : parent; | ||||
this.title = title; | |||||
this.subtitle = subtitle; | |||||
this.argHeight = height; | |||||
this.type = type; | |||||
if (!(this.parent instanceof HTMLElement)) { | |||||
throw new Error('No `parent` element to render on was provided.'); | |||||
} | |||||
this.realData = this.prepareData(data); | |||||
this.title = options.title || ''; | |||||
this.subtitle = options.subtitle || ''; | |||||
this.argHeight = options.height || 240; | |||||
this.type = options.type || ''; | |||||
this.realData = this.prepareData(options.data); | |||||
this.data = this.prepareFirstData(this.realData); | this.data = this.prepareFirstData(this.realData); | ||||
this.colors = []; | this.colors = []; | ||||
this.config = { | this.config = { | ||||
showTooltip: 1, // calculate | showTooltip: 1, // calculate | ||||
showLegend: 1, | |||||
isNavigable: isNavigable, | |||||
showLegend: options.showLegend || 1, | |||||
isNavigable: options.isNavigable || 0, | |||||
animate: 1 | animate: 1 | ||||
}; | }; | ||||
this.state = {}; | this.state = {}; | ||||
@@ -49,7 +39,7 @@ export default class BaseChart { | |||||
this.overlays = []; | this.overlays = []; | ||||
} | } | ||||
this.configure(arguments[0]); | |||||
this.configure(options); | |||||
} | } | ||||
configure(args) { | configure(args) { | ||||
@@ -89,13 +79,7 @@ export default class BaseChart { | |||||
this.rightMargin = RIGHT_MARGIN_BASE_CHART; | this.rightMargin = RIGHT_MARGIN_BASE_CHART; | ||||
} | } | ||||
validate(){ | |||||
let args = this.rawChartArgs; | |||||
// Now yo have the args, set this stuff only after validating | |||||
if(!this.parent) { | |||||
console.error("No parent element to render on was provided."); | |||||
return false; | |||||
} | |||||
validate() { | |||||
return true; | return true; | ||||
} | } | ||||
@@ -300,6 +284,6 @@ export default class BaseChart { | |||||
removeDataPoint(index = 0) {} | removeDataPoint(index = 0) {} | ||||
getDifferentChart(type) { | getDifferentChart(type) { | ||||
return getDifferentChart(type, this.type, this.rawChartArgs); | |||||
return getDifferentChart(type, this.type, this.parent, this.rawChartArgs); | |||||
} | } | ||||
} | } |
@@ -5,29 +5,21 @@ import { calcDistribution, getMaxCheckpoint } from '../utils/intervals'; | |||||
import { isValidColor } from '../utils/colors'; | import { isValidColor } from '../utils/colors'; | ||||
export default class Heatmap extends BaseChart { | export default class Heatmap extends BaseChart { | ||||
constructor({ | |||||
start = '', | |||||
domain = '', | |||||
subdomain = '', | |||||
data = {}, | |||||
discrete_domains = 0, | |||||
count_label = '', | |||||
legend_colors = [] | |||||
}) { | |||||
super(arguments[0]); | |||||
constructor(parent, options) { | |||||
super(parent, options); | |||||
this.type = 'heatmap'; | this.type = 'heatmap'; | ||||
this.domain = domain; | |||||
this.subdomain = subdomain; | |||||
this.data = data; | |||||
this.discrete_domains = discrete_domains; | |||||
this.count_label = count_label; | |||||
this.domain = options.domain || ''; | |||||
this.subdomain = options.subdomain || ''; | |||||
this.data = options.data || {}; | |||||
this.discrete_domains = options.discrete_domains || 1; | |||||
this.count_label = options.count_label || ''; | |||||
let today = new Date(); | let today = new Date(); | ||||
this.start = start || addDays(today, 365); | |||||
this.start = options.start || addDays(today, 365); | |||||
legend_colors = legend_colors.slice(0, 5); | |||||
let legend_colors = (options.legend_colors || []).slice(0, 5); | |||||
this.legend_colors = this.validate_colors(legend_colors) | this.legend_colors = this.validate_colors(legend_colors) | ||||
? legend_colors | ? legend_colors | ||||
: ['#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127']; | : ['#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127']; | ||||
@@ -2,8 +2,8 @@ import BaseChart from './BaseChart'; | |||||
import { $, getOffset } from '../utils/dom'; | import { $, getOffset } from '../utils/dom'; | ||||
export default class PercentageChart extends BaseChart { | export default class PercentageChart extends BaseChart { | ||||
constructor(args) { | |||||
super(args); | |||||
constructor(parent, args) { | |||||
super(parent, args); | |||||
this.type = 'percentage'; | this.type = 'percentage'; | ||||
this.max_slices = 10; | this.max_slices = 10; | ||||
@@ -7,8 +7,8 @@ const ANGLE_RATIO = Math.PI / 180; | |||||
const FULL_ANGLE = 360; | const FULL_ANGLE = 360; | ||||
export default class PieChart extends BaseChart { | export default class PieChart extends BaseChart { | ||||
constructor(args) { | |||||
super(args); | |||||
constructor(parent, args) { | |||||
super(parent, args); | |||||
this.type = 'pie'; | this.type = 'pie'; | ||||
this.elements_to_animate = null; | this.elements_to_animate = null; | ||||
this.hoverRadio = args.hoverRadio || 0.1; | this.hoverRadio = args.hoverRadio || 0.1; | ||||
@@ -21,7 +21,7 @@ const COLOR_COMPATIBLE_CHARTS = { | |||||
heatmap: [] | heatmap: [] | ||||
}; | }; | ||||
export function getDifferentChart(type, current_type, args) { | |||||
export function getDifferentChart(type, current_type, parent, args) { | |||||
if(type === current_type) return; | if(type === current_type) return; | ||||
if(!ALL_CHART_TYPES.includes(type)) { | if(!ALL_CHART_TYPES.includes(type)) { | ||||
@@ -38,8 +38,7 @@ export function getDifferentChart(type, current_type, args) { | |||||
// Okay, this is anticlimactic | // Okay, this is anticlimactic | ||||
// this function will need to actually be 'changeChartType(type)' | // this function will need to actually be 'changeChartType(type)' | ||||
// that will update only the required elements, but for now ... | // that will update only the required elements, but for now ... | ||||
return new Chart({ | |||||
parent: args.parent, | |||||
return new Chart(parent, { | |||||
title: args.title, | title: args.title, | ||||
data: args.data, | data: args.data, | ||||
type: type, | type: type, | ||||