mirror of
https://github.com/chartjs/Chart.js.git
synced 2025-12-08 20:36:08 +00:00
When all datasets are hidden, the linear scale defaults to a range of 0 - 1.
If `ticks.min` was set this would not set the range correctly. Added a test to cover this case as well
This commit is contained in:
parent
548edc65ea
commit
ccb2898539
@ -124,8 +124,8 @@ module.exports = function(Chart) {
|
||||
});
|
||||
}
|
||||
|
||||
me.min = isFinite(me.min) ? me.min : DEFAULT_MIN;
|
||||
me.max = isFinite(me.max) ? me.max : DEFAULT_MAX;
|
||||
me.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;
|
||||
me.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;
|
||||
|
||||
// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero
|
||||
this.handleTickRangeOptions();
|
||||
|
||||
@ -27,6 +27,9 @@ module.exports = function(Chart) {
|
||||
}
|
||||
}
|
||||
|
||||
var setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;
|
||||
var setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;
|
||||
|
||||
if (tickOpts.min !== undefined) {
|
||||
me.min = tickOpts.min;
|
||||
} else if (tickOpts.suggestedMin !== undefined) {
|
||||
@ -47,6 +50,20 @@ module.exports = function(Chart) {
|
||||
}
|
||||
}
|
||||
|
||||
if (setMin !== setMax) {
|
||||
// We set the min or the max but not both.
|
||||
// So ensure that our range is good
|
||||
// Inverted or 0 length range can happen when
|
||||
// ticks.min is set, and no datasets are visible
|
||||
if (me.min >= me.max) {
|
||||
if (setMin) {
|
||||
me.max = me.min + 1;
|
||||
} else {
|
||||
me.min = me.max - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (me.min === me.max) {
|
||||
me.max++;
|
||||
|
||||
|
||||
@ -877,4 +877,33 @@ describe('Linear Scale', function() {
|
||||
expect(chart.scales['x-axis-0'].min).toEqual(0);
|
||||
expect(chart.scales['x-axis-0'].max).toEqual(1);
|
||||
});
|
||||
|
||||
it('max and min value should be valid when min is set and all datasets are hidden', function() {
|
||||
var barData = {
|
||||
labels: ['S1', 'S2', 'S3'],
|
||||
datasets: [{
|
||||
label: 'dataset 1',
|
||||
backgroundColor: '#382765',
|
||||
data: [2500, 2000, 1500],
|
||||
hidden: true,
|
||||
}]
|
||||
};
|
||||
|
||||
var chart = window.acquireChart({
|
||||
type: 'horizontalBar',
|
||||
data: barData,
|
||||
options: {
|
||||
scales: {
|
||||
xAxes: [{
|
||||
ticks: {
|
||||
min: 20
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
expect(chart.scales['x-axis-0'].min).toEqual(20);
|
||||
expect(chart.scales['x-axis-0'].max).toEqual(21);
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user