Skip to content

Commit

Permalink
Scale: Make sure grace is applied only once (#8913)
Browse files Browse the repository at this point in the history
* Scale: Make sure grace is applied only once
* Add description to fixture
  • Loading branch information
kurkle committed Apr 17, 2021
1 parent 9e06f90 commit 853f094
Show file tree
Hide file tree
Showing 10 changed files with 31 additions and 3 deletions.
4 changes: 3 additions & 1 deletion src/core/core.scale.js
Expand Up @@ -3,7 +3,7 @@ import {_alignPixel, _measureText, renderText, clipArea, unclipArea} from '../he
import {callback as call, each, finiteOrDefault, isArray, isFinite, isNullOrUndef, isObject} from '../helpers/helpers.core';
import {toDegrees, toRadians, _int16Range, _limitValue, HALF_PI} from '../helpers/helpers.math';
import {_alignStartEnd, _toLeftRightCenter} from '../helpers/helpers.extras';
import {toFont, toPadding} from '../helpers/helpers.options';
import {toFont, toPadding, _addGrace} from '../helpers/helpers.options';

import './core.scale.defaults';

Expand Down Expand Up @@ -204,6 +204,7 @@ export default class Scale extends Element {
this.labelRotation = undefined;
this.min = undefined;
this.max = undefined;
this._range = undefined;
/** @type {Tick[]} */
this.ticks = [];
/** @type {object[]|null} */
Expand Down Expand Up @@ -401,6 +402,7 @@ export default class Scale extends Element {
me.beforeDataLimits();
me.determineDataLimits();
me.afterDataLimits();
me._range = _addGrace(me, me.options.grace);
me._dataLimitsCached = true;
}

Expand Down
4 changes: 2 additions & 2 deletions src/scales/scale.linearbase.js
Expand Up @@ -2,7 +2,6 @@ import {isNullOrUndef} from '../helpers/helpers.core';
import {almostEquals, almostWhole, niceNum, _decimalPlaces, _setMinAndMaxByKey, sign} from '../helpers/helpers.math';
import Scale from '../core/core.scale';
import {formatNumber} from '../helpers/helpers.intl';
import {_addGrace} from '../helpers/helpers.options';

/**
* Generate a set of linear ticks for an axis
Expand Down Expand Up @@ -232,7 +231,8 @@ export default class LinearScaleBase extends Scale {
step: tickOpts.stepSize,
count: tickOpts.count,
};
const ticks = generateTicks(numericGeneratorOptions, _addGrace(me, opts.grace));
const dataRange = me._range || me;
const ticks = generateTicks(numericGeneratorOptions, dataRange);

// At this point, we need to update our max and min given the tick values,
// since we probably have expanded the range of the scale
Expand Down
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
26 changes: 26 additions & 0 deletions test/fixtures/scale.linear/grace/issue-8912.js
@@ -0,0 +1,26 @@
module.exports = {
description: 'https://github.com/chartjs/Chart.js/issues/8912',
config: {
type: 'bar',
data: {
labels: ['Red', 'Blue'],
datasets: [{
data: [10, -10]
}]
},
options: {
plugins: false,
scales: {
x: {
display: false,
},
y: {
grace: '100%'
}
}
}
},
options: {
spriteText: true
}
};
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 853f094

Please sign in to comment.