// Model
_model: {
// Appearance
- tension: line.custom && line.custom.tension ? line.custom.tension : (this.getDataset().tension || this.chart.options.elements.line.tension),
+ tension: line.custom && line.custom.tension ? line.custom.tension : helpers.getValueOrDefault(this.getDataset().tension, this.chart.options.elements.line.tension),
backgroundColor: line.custom && line.custom.backgroundColor ? line.custom.backgroundColor : (this.getDataset().backgroundColor || this.chart.options.elements.line.backgroundColor),
borderWidth: line.custom && line.custom.borderWidth ? line.custom.borderWidth : (this.getDataset().borderWidth || this.chart.options.elements.line.borderWidth),
borderColor: line.custom && line.custom.borderColor ? line.custom.borderColor : (this.getDataset().borderColor || this.chart.options.elements.line.borderColor),
x: xScale.getPixelForValue(this.getDataset().data[index], index, this.index, this.chart.isCombo),
y: reset ? scaleBase : this.calculatePointY(this.getDataset().data[index], index, this.index, this.chart.isCombo),
// Appearance
- tension: point.custom && point.custom.tension ? point.custom.tension : (this.getDataset().tension || this.chart.options.elements.line.tension),
+ tension: point.custom && point.custom.tension ? point.custom.tension : helpers.getValueOrDefault(this.getDataset().tension, this.chart.options.elements.line.tension),
radius: point.custom && point.custom.radius ? point.custom.radius : helpers.getValueAtIndexOrDefault(this.getDataset().radius, index, this.chart.options.elements.point.radius),
backgroundColor: this.getPointBackgroundColor(point, index),
borderColor: this.getPointBorderColor(point, index),
// Model
_model: {
// Appearance
- tension: this.getDataset().tension || this.chart.options.elements.line.tension,
+ tension: helpers.getValueOrDefault(this.getDataset().tension, this.chart.options.elements.line.tension),
backgroundColor: this.getDataset().backgroundColor || this.chart.options.elements.line.backgroundColor,
borderWidth: this.getDataset().borderWidth || this.chart.options.elements.line.borderWidth,
borderColor: this.getDataset().borderColor || this.chart.options.elements.line.borderColor,
y: reset ? this.chart.scale.yCenter : pointPosition.y,
// Appearance
- tension: point.custom && point.custom.tension ? point.custom.tension : this.chart.options.elements.line.tension,
+ tension: point.custom && point.custom.tension ? point.custom.tension : helpers.getValueOrDefault(this.getDataset().tension, this.chart.options.elements.line.tension),
radius: point.custom && point.custom.radius ? point.custom.pointRadius : helpers.getValueAtIndexOrDefault(this.getDataset().pointRadius, index, this.chart.options.elements.point.radius),
backgroundColor: point.custom && point.custom.backgroundColor ? point.custom.backgroundColor : helpers.getValueAtIndexOrDefault(this.getDataset().pointBackgroundColor, index, this.chart.options.elements.point.backgroundColor),
borderColor: point.custom && point.custom.borderColor ? point.custom.borderColor : helpers.getValueAtIndexOrDefault(this.getDataset().pointBorderColor, index, this.chart.options.elements.point.borderColor),
return value;
},
+ getValueOrDefault = helpers.getValueOrDefault = function(value, defaultValue) {
+ return value === undefined ? defaultValue : value;
+ },
indexOf = helpers.indexOf = function(arrayToSearch, item) {
if (Array.prototype.indexOf) {
return arrayToSearch.indexOf(item);
});
// Use dataset level styles for lines & points
- chart.data.datasets[0].tension = 0.2;
+ chart.data.datasets[0].tension = 0;
chart.data.datasets[0].backgroundColor = 'rgb(98, 98, 98)';
chart.data.datasets[0].borderColor = 'rgb(8, 8, 8)';
chart.data.datasets[0].borderWidth = 0.55;
borderJoinStyle: 'miter',
borderWidth: 0.55,
fill: false,
- tension: 0.2,
+ tension: 0,
scaleTop: 0,
scaleBottom: 200,
hitRadius: 3.3,
radius: 22,
skip: false,
- tension: 0.2,
+ tension: 0,
// Point
x: 81,
// Control points
controlPointPreviousX: 81,
controlPointPreviousY: 62,
- controlPointNextX: 91,
- controlPointNextY: 52.6,
+ controlPointNextX: 81,
+ controlPointNextY: 62,
});
expect(chart.data.datasets[0].metaData[1]._model).toEqual({
hitRadius: 3.3,
radius: 22,
skip: false,
- tension: 0.2,
+ tension: 0,
// Point
x: 131,
y: 15,
// Control points
- controlPointPreviousX: 124.65778768378175,
- controlPointPreviousY: 9.097346953222619,
- controlPointNextX: 144.85778768378177,
- controlPointNextY: 27.897346953222623,
+ controlPointPreviousX: 131,
+ controlPointPreviousY: 15,
+ controlPointNextX: 131,
+ controlPointNextY: 15,
});
expect(chart.data.datasets[0].metaData[2]._model).toEqual({
hitRadius: 3.3,
radius: 22,
skip: false,
- tension: 0.2,
+ tension: 0,
// Point
x: 182,
y: 156,
// Control points
- controlPointPreviousX: 167.76304506745115,
- controlPointPreviousY: 130.76816898092827,
- controlPointNextX: 187.96304506745116,
- controlPointNextY: 166.56816898092828,
+ controlPointPreviousX: 182,
+ controlPointPreviousY: 156,
+ controlPointNextX: 182,
+ controlPointNextY: 156,
});
expect(chart.data.datasets[0].metaData[3]._model).toEqual({
hitRadius: 3.3,
radius: 22,
skip: false,
- tension: 0.2,
+ tension: 0,
// Point
x: 232,
y: 194,
// Control points
- controlPointPreviousX: 222,
- controlPointPreviousY: 186.4,
+ controlPointPreviousX: 232,
+ controlPointPreviousY: 194,
controlPointNextX: 232,
controlPointNextY: 194,
});