Merge pull request #1646 from nnnick/fix/1640

Can now replace entire chart data object on the fly
This commit is contained in:
Tanner Linsley 2015-11-16 16:10:01 -07:00
commit ae9db841f9
15 changed files with 288 additions and 102 deletions

View File

@ -19,6 +19,7 @@
<br> <br>
<br> <br>
<button id="randomizeData">Randomize Data</button> <button id="randomizeData">Randomize Data</button>
<button id="changeDataObject">Change Data Object</button>
<button id="addDataset">Add Dataset</button> <button id="addDataset">Add Dataset</button>
<button id="removeDataset">Remove Dataset</button> <button id="removeDataset">Remove Dataset</button>
<button id="addData">Add Data</button> <button id="addData">Add Data</button>
@ -147,6 +148,32 @@
updateLegend(); updateLegend();
}); });
$('#changeDataObject').click(function() {
config.data = {
labels: ["July", "August", "September", "October", "November", "December"],
datasets: [{
label: "My First dataset",
data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
fill: false,
}, {
label: "My Second dataset",
fill: false,
data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
}]
};
$.each(config.data.datasets, function(i, dataset) {
dataset.borderColor = randomColor(0.4);
dataset.backgroundColor = randomColor(0.5);
dataset.pointBorderColor = randomColor(0.7);
dataset.pointBackgroundColor = randomColor(0.5);
dataset.pointBorderWidth = 1;
});
// Update the chart
window.myLine.update();
});
$('#addDataset').click(function() { $('#addDataset').click(function() {
var newDataset = { var newDataset = {
label: 'Dataset ' + config.data.datasets.length, label: 'Dataset ' + config.data.datasets.length,

View File

@ -23,10 +23,15 @@
this.chart = instance; this.chart = instance;
this.config = instance.config; this.config = instance.config;
this.data = this.config.data;
this.options = this.config.options = helpers.configMerge(Chart.defaults.global, Chart.defaults[this.config.type], this.config.options || {}); this.options = this.config.options = helpers.configMerge(Chart.defaults.global, Chart.defaults[this.config.type], this.config.options || {});
this.id = helpers.uid(); this.id = helpers.uid();
Object.defineProperty(this, 'data', {
get: function() {
return this.config.data;
},
});
//Add the chart instance to the global namespace //Add the chart instance to the global namespace
Chart.instances[this.id] = this; Chart.instances[this.id] = this;
@ -123,7 +128,7 @@
var scale = new ScaleClass({ var scale = new ScaleClass({
ctx: this.chart.ctx, ctx: this.chart.ctx,
options: xAxisOptions, options: xAxisOptions,
data: this.data, chart: this,
id: xAxisOptions.id, id: xAxisOptions.id,
}); });
@ -138,7 +143,7 @@
var scale = new ScaleClass({ var scale = new ScaleClass({
ctx: this.chart.ctx, ctx: this.chart.ctx,
options: yAxisOptions, options: yAxisOptions,
data: this.data, chart: this,
id: yAxisOptions.id, id: yAxisOptions.id,
}); });
@ -152,8 +157,7 @@
var scale = new ScaleClass({ var scale = new ScaleClass({
ctx: this.chart.ctx, ctx: this.chart.ctx,
options: this.options.scale, options: this.options.scale,
data: this.data, chart: this,
chart: this.chart,
}); });
this.scale = scale; this.scale = scale;
@ -170,18 +174,22 @@
if (!dataset.type) { if (!dataset.type) {
dataset.type = this.config.type; dataset.type = this.config.type;
} }
var type = dataset.type; var type = dataset.type;
types.push(type); types.push(type);
if (dataset.controller) { if (dataset.controller) {
dataset.controller.updateIndex(datasetIndex); dataset.controller.updateIndex(datasetIndex);
return; return;
} }
dataset.controller = new Chart.controllers[type](this, datasetIndex); dataset.controller = new Chart.controllers[type](this, datasetIndex);
if (resetNewControllers) { if (resetNewControllers) {
dataset.controller.reset(); dataset.controller.reset();
} }
}, this); }, this);
if (types.length > 1) { if (types.length > 1) {
for (var i = 1; i < types.length; i++) { for (var i = 1; i < types.length; i++) {
if (types[i] != types[i - 1]) { if (types[i] != types[i - 1]) {
@ -199,6 +207,9 @@
}, },
update: function update(animationDuration, lazy) { update: function update(animationDuration, lazy) {
// In case the entire data object changed
this.tooltip._data = this.data;
Chart.scaleService.update(this, this.chart.width, this.chart.height); Chart.scaleService.update(this, this.chart.width, this.chart.height);
// Make sure dataset controllers are updated and new controllers are reset // Make sure dataset controllers are updated and new controllers are reset

View File

@ -12,7 +12,7 @@
var DatasetScale = Chart.Scale.extend({ var DatasetScale = Chart.Scale.extend({
buildTicks: function(index) { buildTicks: function(index) {
this.ticks = this.data.labels; this.ticks = this.chart.data.labels;
}, },
getLabelForIndex: function(index, datasetIndex) { getLabelForIndex: function(index, datasetIndex) {
@ -23,7 +23,7 @@
getPixelForValue: function(value, index, datasetIndex, includeOffset) { getPixelForValue: function(value, index, datasetIndex, includeOffset) {
if (this.isHorizontal()) { if (this.isHorizontal()) {
var innerWidth = this.width - (this.paddingLeft + this.paddingRight); var innerWidth = this.width - (this.paddingLeft + this.paddingRight);
var valueWidth = innerWidth / Math.max((this.data.labels.length - ((this.options.gridLines.offsetGridLines) ? 0 : 1)), 1); var valueWidth = innerWidth / Math.max((this.chart.data.labels.length - ((this.options.gridLines.offsetGridLines) ? 0 : 1)), 1);
var widthOffset = (valueWidth * index) + this.paddingLeft; var widthOffset = (valueWidth * index) + this.paddingLeft;
if (this.options.gridLines.offsetGridLines && includeOffset) { if (this.options.gridLines.offsetGridLines && includeOffset) {
@ -33,7 +33,7 @@
return this.left + Math.round(widthOffset); return this.left + Math.round(widthOffset);
} else { } else {
var innerHeight = this.height - (this.paddingTop + this.paddingBottom); var innerHeight = this.height - (this.paddingTop + this.paddingBottom);
var valueHeight = innerHeight / Math.max((this.data.labels.length - ((this.options.gridLines.offsetGridLines) ? 0 : 1)), 1); var valueHeight = innerHeight / Math.max((this.chart.data.labels.length - ((this.options.gridLines.offsetGridLines) ? 0 : 1)), 1);
var heightOffset = (valueHeight * index) + this.paddingTop; var heightOffset = (valueHeight * index) + this.paddingTop;
if (this.options.gridLines.offsetGridLines && includeOffset) { if (this.options.gridLines.offsetGridLines && includeOffset) {

View File

@ -45,7 +45,7 @@
if (this.options.stacked) { if (this.options.stacked) {
var valuesPerType = {}; var valuesPerType = {};
helpers.each(this.data.datasets, function(dataset) { helpers.each(this.chart.data.datasets, function(dataset) {
if (valuesPerType[dataset.type] === undefined) { if (valuesPerType[dataset.type] === undefined) {
valuesPerType[dataset.type] = { valuesPerType[dataset.type] = {
positiveValues: [], positiveValues: [],
@ -90,7 +90,7 @@
}, this); }, this);
} else { } else {
helpers.each(this.data.datasets, function(dataset) { helpers.each(this.chart.data.datasets, function(dataset) {
if (helpers.isDatasetVisible(dataset) && (this.isHorizontal() ? dataset.xAxisID === this.id : dataset.yAxisID === this.id)) { if (helpers.isDatasetVisible(dataset) && (this.isHorizontal() ? dataset.xAxisID === this.id : dataset.yAxisID === this.id)) {
helpers.each(dataset.data, function(rawValue, index) { helpers.each(dataset.data, function(rawValue, index) {
var value = this.getRightValue(rawValue); var value = this.getRightValue(rawValue);
@ -205,7 +205,7 @@
}, },
getLabelForIndex: function(index, datasetIndex) { getLabelForIndex: function(index, datasetIndex) {
return this.getRightValue(this.data.datasets[datasetIndex].data[index]); return this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);
}, },
// Utils // Utils

View File

@ -33,7 +33,7 @@
if (this.options.stacked) { if (this.options.stacked) {
var valuesPerType = {}; var valuesPerType = {};
helpers.each(this.data.datasets, function(dataset) { helpers.each(this.chart.data.datasets, function(dataset) {
if (helpers.isDatasetVisible(dataset) && (this.isHorizontal() ? dataset.xAxisID === this.id : dataset.yAxisID === this.id)) { if (helpers.isDatasetVisible(dataset) && (this.isHorizontal() ? dataset.xAxisID === this.id : dataset.yAxisID === this.id)) {
if (valuesPerType[dataset.type] === undefined) { if (valuesPerType[dataset.type] === undefined) {
valuesPerType[dataset.type] = []; valuesPerType[dataset.type] = [];
@ -66,7 +66,7 @@
}, this); }, this);
} else { } else {
helpers.each(this.data.datasets, function(dataset) { helpers.each(this.chart.data.datasets, function(dataset) {
if (helpers.isDatasetVisible(dataset) && (this.isHorizontal() ? dataset.xAxisID === this.id : dataset.yAxisID === this.id)) { if (helpers.isDatasetVisible(dataset) && (this.isHorizontal() ? dataset.xAxisID === this.id : dataset.yAxisID === this.id)) {
helpers.each(dataset.data, function(rawValue, index) { helpers.each(dataset.data, function(rawValue, index) {
var value = this.getRightValue(rawValue); var value = this.getRightValue(rawValue);
@ -145,7 +145,7 @@
}, },
// Get the correct tooltip label // Get the correct tooltip label
getLabelForIndex: function(index, datasetIndex) { getLabelForIndex: function(index, datasetIndex) {
return this.getRightValue(this.data.datasets[datasetIndex].data[index]); return this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);
}, },
getPixelForTick: function(index, includeOffset) { getPixelForTick: function(index, includeOffset) {
return this.getPixelForValue(this.tickValues[index], null, null, includeOffset); return this.getPixelForValue(this.tickValues[index], null, null, includeOffset);

View File

@ -51,7 +51,7 @@
var LinearRadialScale = Chart.Scale.extend({ var LinearRadialScale = Chart.Scale.extend({
getValueCount: function() { getValueCount: function() {
return this.data.labels.length; return this.chart.data.labels.length;
}, },
setDimensions: function() { setDimensions: function() {
// Set the unconstrained dimension before label rotation // Set the unconstrained dimension before label rotation
@ -67,7 +67,7 @@
this.min = null; this.min = null;
this.max = null; this.max = null;
helpers.each(this.data.datasets, function(dataset) { helpers.each(this.chart.data.datasets, function(dataset) {
if (helpers.isDatasetVisible(dataset)) { if (helpers.isDatasetVisible(dataset)) {
helpers.each(dataset.data, function(rawValue, index) { helpers.each(dataset.data, function(rawValue, index) {
var value = this.getRightValue(rawValue); var value = this.getRightValue(rawValue);
@ -153,7 +153,7 @@
this.zeroLineIndex = this.ticks.indexOf(0); this.zeroLineIndex = this.ticks.indexOf(0);
}, },
getLabelForIndex: function(index, datasetIndex) { getLabelForIndex: function(index, datasetIndex) {
return this.getRightValue(this.data.datasets[datasetIndex].data[index]); return this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);
}, },
getCircumference: function() { getCircumference: function() {
return ((Math.PI * 2) / this.getValueCount()); return ((Math.PI * 2) / this.getValueCount());
@ -210,7 +210,7 @@
for (i = 0; i < this.getValueCount(); i++) { for (i = 0; i < this.getValueCount(); i++) {
// 5px to space the text slightly out - similar to what we do in the draw function. // 5px to space the text slightly out - similar to what we do in the draw function.
pointPosition = this.getPointPosition(i, largestPossibleRadius); pointPosition = this.getPointPosition(i, largestPossibleRadius);
textWidth = this.ctx.measureText(this.options.ticks.callback(this.data.labels[i])).width + 5; textWidth = this.ctx.measureText(this.options.ticks.callback(this.chart.data.labels[i])).width + 5;
if (i === 0 || i === this.getValueCount() / 2) { if (i === 0 || i === this.getValueCount() / 2) {
// If we're at index zero, or exactly the middle, we're at exactly the top/bottom // If we're at index zero, or exactly the middle, we're at exactly the top/bottom
// of the radar chart, so text will be aligned centrally, so we'll half it and compare // of the radar chart, so text will be aligned centrally, so we'll half it and compare
@ -370,8 +370,8 @@
ctx.font = helpers.fontString(this.options.pointLabels.fontSize, this.options.pointLabels.fontStyle, this.options.pointLabels.fontFamily); ctx.font = helpers.fontString(this.options.pointLabels.fontSize, this.options.pointLabels.fontStyle, this.options.pointLabels.fontFamily);
ctx.fillStyle = this.options.pointLabels.fontColor; ctx.fillStyle = this.options.pointLabels.fontColor;
var labelsCount = this.data.labels.length, var labelsCount = this.chart.data.labels.length,
halfLabelsCount = this.data.labels.length / 2, halfLabelsCount = this.chart.data.labels.length / 2,
quarterLabelsCount = halfLabelsCount / 2, quarterLabelsCount = halfLabelsCount / 2,
upperHalf = (i < quarterLabelsCount || i > labelsCount - quarterLabelsCount), upperHalf = (i < quarterLabelsCount || i > labelsCount - quarterLabelsCount),
exactQuarter = (i === quarterLabelsCount || i === labelsCount - quarterLabelsCount); exactQuarter = (i === quarterLabelsCount || i === labelsCount - quarterLabelsCount);
@ -394,7 +394,7 @@
ctx.textBaseline = 'top'; ctx.textBaseline = 'top';
} }
ctx.fillText(this.data.labels[i], pointLabelPosition.x, pointLabelPosition.y); ctx.fillText(this.chart.data.labels[i], pointLabelPosition.x, pointLabelPosition.y);
} }
} }
} }

View File

@ -82,8 +82,8 @@
// Only parse these once. If the dataset does not have data as x,y pairs, we will use // Only parse these once. If the dataset does not have data as x,y pairs, we will use
// these // these
var scaleLabelMoments = []; var scaleLabelMoments = [];
if (this.data.labels && this.data.labels.length > 0) { if (this.chart.data.labels && this.chart.data.labels.length > 0) {
helpers.each(this.data.labels, function(label, index) { helpers.each(this.chart.data.labels, function(label, index) {
var labelMoment = this.parseTime(label); var labelMoment = this.parseTime(label);
if (this.options.time.round) { if (this.options.time.round) {
labelMoment.startOf(this.options.time.round); labelMoment.startOf(this.options.time.round);
@ -107,7 +107,7 @@
this.lastTick = null; this.lastTick = null;
} }
helpers.each(this.data.datasets, function(dataset, datasetIndex) { helpers.each(this.chart.data.datasets, function(dataset, datasetIndex) {
var momentsForDataset = []; var momentsForDataset = [];
if (typeof dataset.data[0] === 'object') { if (typeof dataset.data[0] === 'object') {
@ -174,7 +174,7 @@
this.lastTick.endOf(this.tickUnit); this.lastTick.endOf(this.tickUnit);
this.smallestLabelSeparation = this.width; this.smallestLabelSeparation = this.width;
helpers.each(this.data.datasets, function(dataset, datasetIndex) { helpers.each(this.chart.data.datasets, function(dataset, datasetIndex) {
for (var i = 1; i < this.labelMoments[datasetIndex].length; i++) { for (var i = 1; i < this.labelMoments[datasetIndex].length; i++) {
this.smallestLabelSeparation = Math.min(this.smallestLabelSeparation, this.labelMoments[datasetIndex][i].diff(this.labelMoments[datasetIndex][i - 1], this.tickUnit, true)); this.smallestLabelSeparation = Math.min(this.smallestLabelSeparation, this.labelMoments[datasetIndex][i].diff(this.labelMoments[datasetIndex][i - 1], this.tickUnit, true));
} }
@ -192,10 +192,10 @@
}, },
// Get tooltip label // Get tooltip label
getLabelForIndex: function(index, datasetIndex) { getLabelForIndex: function(index, datasetIndex) {
var label = this.data.labels && index < this.data.labels.length ? this.data.labels[index] : ''; var label = this.chart.data.labels && index < this.chart.data.labels.length ? this.chart.data.labels[index] : '';
if (typeof this.data.datasets[datasetIndex].data[0] === 'object') { if (typeof this.chart.data.datasets[datasetIndex].data[0] === 'object') {
label = this.getRightValue(this.data.datasets[datasetIndex].data[index]); label = this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);
} }
return label; return label;

View File

@ -190,7 +190,9 @@ describe('Bar controller tests', function() {
var yScale = new VerticalScaleConstructor({ var yScale = new VerticalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstYScaleID' id: 'firstYScaleID'
}); });
@ -207,7 +209,9 @@ describe('Bar controller tests', function() {
var xScale = new HorizontalScaleConstructor({ var xScale = new HorizontalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: horizontalScaleConfig, options: horizontalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstXScaleID' id: 'firstXScaleID'
}); });
@ -316,7 +320,9 @@ describe('Bar controller tests', function() {
var yScale = new VerticalScaleConstructor({ var yScale = new VerticalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstYScaleID' id: 'firstYScaleID'
}); });
@ -333,7 +339,9 @@ describe('Bar controller tests', function() {
var xScale = new HorizontalScaleConstructor({ var xScale = new HorizontalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: horizontalScaleConfig, options: horizontalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstXScaleID' id: 'firstXScaleID'
}); });
@ -399,7 +407,9 @@ describe('Bar controller tests', function() {
var yScale = new VerticalScaleConstructor({ var yScale = new VerticalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstYScaleID' id: 'firstYScaleID'
}); });
@ -416,7 +426,9 @@ describe('Bar controller tests', function() {
var xScale = new HorizontalScaleConstructor({ var xScale = new HorizontalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: horizontalScaleConfig, options: horizontalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstXScaleID' id: 'firstXScaleID'
}); });
@ -519,7 +531,9 @@ describe('Bar controller tests', function() {
var yScale = new VerticalScaleConstructor({ var yScale = new VerticalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstYScaleID' id: 'firstYScaleID'
}); });
@ -536,7 +550,9 @@ describe('Bar controller tests', function() {
var xScale = new HorizontalScaleConstructor({ var xScale = new HorizontalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: horizontalScaleConfig, options: horizontalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstXScaleID' id: 'firstXScaleID'
}); });

View File

@ -159,7 +159,9 @@ describe('Line controller tests', function() {
var yScale = new VerticalScaleConstructor({ var yScale = new VerticalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstYScaleID' id: 'firstYScaleID'
}); });
@ -176,7 +178,9 @@ describe('Line controller tests', function() {
var xScale = new HorizontalScaleConstructor({ var xScale = new HorizontalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: horizontalScaleConfig, options: horizontalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstXScaleID' id: 'firstXScaleID'
}); });
@ -642,7 +646,9 @@ describe('Line controller tests', function() {
var yScale = new VerticalScaleConstructor({ var yScale = new VerticalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstYScaleID' id: 'firstYScaleID'
}); });
@ -659,7 +665,9 @@ describe('Line controller tests', function() {
var xScale = new HorizontalScaleConstructor({ var xScale = new HorizontalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: horizontalScaleConfig, options: horizontalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstXScaleID' id: 'firstXScaleID'
}); });
@ -757,7 +765,9 @@ describe('Line controller tests', function() {
var yScale = new VerticalScaleConstructor({ var yScale = new VerticalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstYScaleID' id: 'firstYScaleID'
}); });
@ -774,7 +784,9 @@ describe('Line controller tests', function() {
var xScale = new HorizontalScaleConstructor({ var xScale = new HorizontalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: horizontalScaleConfig, options: horizontalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstXScaleID' id: 'firstXScaleID'
}); });
@ -891,7 +903,9 @@ describe('Line controller tests', function() {
var yScale = new VerticalScaleConstructor({ var yScale = new VerticalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstYScaleID' id: 'firstYScaleID'
}); });
@ -908,7 +922,9 @@ describe('Line controller tests', function() {
var xScale = new HorizontalScaleConstructor({ var xScale = new HorizontalScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: horizontalScaleConfig, options: horizontalScaleConfig,
data: data, chart: {
data: data
},
id: 'firstXScaleID' id: 'firstXScaleID'
}); });

View File

@ -21,7 +21,9 @@ describe('Test the scale service', function() {
var xScale = new XConstructor({ var xScale = new XConstructor({
ctx: mockContext, ctx: mockContext,
options: xScaleConfig, options: xScaleConfig,
data: mockData, chart: {
data: mockData
},
id: xScaleID id: xScaleID
}); });
@ -30,7 +32,9 @@ describe('Test the scale service', function() {
var yScale = new YConstructor({ var yScale = new YConstructor({
ctx: mockContext, ctx: mockContext,
options: yScaleConfig, options: yScaleConfig,
data: mockData, chart: {
data: mockData
},
id: yScaleID id: yScaleID
}); });
@ -84,7 +88,9 @@ describe('Test the scale service', function() {
var xScale = new XConstructor({ var xScale = new XConstructor({
ctx: mockContext, ctx: mockContext,
options: xScaleConfig, options: xScaleConfig,
data: mockData, chart: {
data: mockData
},
id: xScaleID id: xScaleID
}); });
@ -94,7 +100,9 @@ describe('Test the scale service', function() {
var yScale = new YConstructor({ var yScale = new YConstructor({
ctx: mockContext, ctx: mockContext,
options: yScaleConfig, options: yScaleConfig,
data: mockData, chart: {
data: mockData
},
id: yScaleID id: yScaleID
}); });
@ -151,7 +159,9 @@ describe('Test the scale service', function() {
var xScale = new XConstructor({ var xScale = new XConstructor({
ctx: mockContext, ctx: mockContext,
options: xScaleConfig, options: xScaleConfig,
data: mockData, chart: {
data: mockData
},
id: xScaleID id: xScaleID
}); });
@ -160,13 +170,17 @@ describe('Test the scale service', function() {
var yScale1 = new YConstructor({ var yScale1 = new YConstructor({
ctx: mockContext, ctx: mockContext,
options: yScaleConfig, options: yScaleConfig,
data: mockData, chart: {
data: mockData
},
id: yScaleID1 id: yScaleID1
}); });
var yScale2 = new YConstructor({ var yScale2 = new YConstructor({
ctx: mockContext, ctx: mockContext,
options: yScaleConfig, options: yScaleConfig,
data: mockData, chart: {
data: mockData
},
id: yScaleID2 id: yScaleID2
}); });
@ -230,7 +244,9 @@ describe('Test the scale service', function() {
var scale = new ScaleConstructor({ var scale = new ScaleConstructor({
ctx: mockContext, ctx: mockContext,
options: scaleConfig, options: scaleConfig,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });

View File

@ -67,7 +67,9 @@ describe('Category scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -93,7 +95,9 @@ describe('Category scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -151,7 +155,9 @@ describe('Category scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });

View File

@ -69,7 +69,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: Chart.scaleService.getScaleDefaults('linear'), // use default config for scale options: Chart.scaleService.getScaleDefaults('linear'), // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -107,7 +109,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: Chart.scaleService.getScaleDefaults('linear'), // use default config for scale options: Chart.scaleService.getScaleDefaults('linear'), // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -152,7 +156,9 @@ describe('Linear Scale', function() {
var verticalScale = new Constructor({ var verticalScale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -169,7 +175,9 @@ describe('Linear Scale', function() {
var horizontalScale = new Constructor({ var horizontalScale = new Constructor({
ctx: {}, ctx: {},
options: horizontalConfig, options: horizontalConfig,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -211,7 +219,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -251,7 +261,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -276,7 +288,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -307,7 +321,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -337,7 +353,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -376,7 +394,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -408,7 +428,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -440,7 +462,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -465,7 +489,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -494,7 +520,9 @@ describe('Linear Scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -521,7 +549,9 @@ describe('Linear Scale', function() {
var verticalScale = new Constructor({ var verticalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -547,7 +577,9 @@ describe('Linear Scale', function() {
var horizontalScale = new Constructor({ var horizontalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: horizontalConfig, options: horizontalConfig,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -586,7 +618,9 @@ describe('Linear Scale', function() {
var verticalScale = new Constructor({ var verticalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -645,7 +679,9 @@ describe('Linear Scale', function() {
var horizontalScale = new Constructor({ var horizontalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -705,7 +741,9 @@ describe('Linear Scale', function() {
var horizontalScale = new Constructor({ var horizontalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -936,7 +974,9 @@ describe('Linear Scale', function() {
var verticalScale = new Constructor({ var verticalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });

View File

@ -70,7 +70,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: Chart.scaleService.getScaleDefaults('logarithmic'), // use default config for scale options: Chart.scaleService.getScaleDefaults('logarithmic'), // use default config for scale
data: mockData, chart: {
data: mockData,
},
id: scaleID id: scaleID
}); });
@ -105,7 +107,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: Chart.scaleService.getScaleDefaults('logarithmic'), // use default config for scale options: Chart.scaleService.getScaleDefaults('logarithmic'), // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -147,7 +151,9 @@ describe('Logarithmic Scale tests', function() {
var verticalScale = new Constructor({ var verticalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -160,7 +166,9 @@ describe('Logarithmic Scale tests', function() {
var horizontalScale = new Constructor({ var horizontalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: horizontalConfig, options: horizontalConfig,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -199,7 +207,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -240,7 +250,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -262,7 +274,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -295,7 +309,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -328,7 +344,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: {}, ctx: {},
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -360,7 +378,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -389,7 +409,9 @@ describe('Logarithmic Scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -416,7 +438,9 @@ describe('Logarithmic Scale tests', function() {
var verticalScale = new Constructor({ var verticalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -441,7 +465,9 @@ describe('Logarithmic Scale tests', function() {
var horizontalScale = new Constructor({ var horizontalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: horizontalConfig, options: horizontalConfig,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });

View File

@ -86,7 +86,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: Chart.scaleService.getScaleDefaults('radialLinear'), // use default config for scale options: Chart.scaleService.getScaleDefaults('radialLinear'), // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -118,7 +120,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: Chart.scaleService.getScaleDefaults('radialLinear'), // use default config for scale options: Chart.scaleService.getScaleDefaults('radialLinear'), // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -140,7 +144,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: Chart.scaleService.getScaleDefaults('radialLinear'), // use default config for scale options: Chart.scaleService.getScaleDefaults('radialLinear'), // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -166,7 +172,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -205,7 +213,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -238,7 +248,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -265,7 +277,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -297,7 +311,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });
@ -340,7 +356,9 @@ describe('Test the radial linear scale', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, options: config,
data: mockData, chart: {
data: mockData
},
id: scaleID, id: scaleID,
}); });

View File

@ -72,7 +72,9 @@ describe('Time scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: Chart.scaleService.getScaleDefaults('time'), // use default config for scale options: Chart.scaleService.getScaleDefaults('time'), // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -97,7 +99,9 @@ describe('Time scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, // use default config for scale options: config, // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -121,7 +125,9 @@ describe('Time scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: config, // use default config for scale options: config, // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -145,7 +151,9 @@ describe('Time scale tests', function() {
var scale = new Constructor({ var scale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: Chart.scaleService.getScaleDefaults('time'), // use default config for scale options: Chart.scaleService.getScaleDefaults('time'), // use default config for scale
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
@ -168,7 +176,9 @@ describe('Time scale tests', function() {
var verticalScale = new Constructor({ var verticalScale = new Constructor({
ctx: mockContext, ctx: mockContext,
options: verticalScaleConfig, options: verticalScaleConfig,
data: mockData, chart: {
data: mockData
},
id: scaleID id: scaleID
}); });
verticalScale.update(50, 400); verticalScale.update(50, 400);