From: Martin Zürn Date: Mon, 27 Mar 2017 22:02:56 +0000 (+0200) Subject: Fixed misplaced data points on category scale X-Git-Tag: v2.6.0~2^2~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6f99157eb8857c90c7733c5c5ca896938c0ba48b;p=thirdparty%2FChart.js.git Fixed misplaced data points on category scale * Fixed issue, that category scale shows data points misplaced. See #4060 * Cleaned code * Fixed Irregular whitespace * Fixed error in case value is undefined * Verified that no error is thrown in case value === null --- diff --git a/src/scales/scale.category.js b/src/scales/scale.category.js index 3cee4ebf7..0388baa00 100644 --- a/src/scales/scale.category.js +++ b/src/scales/scale.category.js @@ -66,8 +66,15 @@ module.exports = function(Chart) { // 1 is added because we need the length but we have the indexes var offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - ((me.options.gridLines.offsetGridLines) ? 0 : 1)), 1); - if (value !== undefined && isNaN(index)) { + // If value is a data object, then index is the index in the data array, + // not the index of the scale. We need to change that. + var valueCategory; + if (value !== undefined && value !== null) { + valueCategory = me.isHorizontal() ? value.x : value.y; + } + if (valueCategory !== undefined || (value !== undefined && isNaN(index))) { var labels = me.getLabels(); + value = valueCategory || value; var idx = labels.indexOf(value); index = idx !== -1 ? idx : index; }