Skip to content

Commit

Permalink
Reduce complexity
Browse files Browse the repository at this point in the history
  • Loading branch information
kurkle committed Jun 27, 2019
1 parent 0f0124a commit 5a08e81
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 14 deletions.
16 changes: 9 additions & 7 deletions src/controllers/controller.bar.js
Expand Up @@ -118,7 +118,7 @@ function getMatchingVisibleMetas(scale) {
var isHorizontal = scale.isHorizontal();
return scale.chart._getSortedVisibleDatasetMetas()
.filter(function(meta) {
return meta.bar && isHorizontal ? meta.xAxisID === scale.id : meta.yAxisID === scale.id;
return meta.bar && (isHorizontal ? meta.xAxisID === scale.id : meta.yAxisID === scale.id);
});
}

Expand Down Expand Up @@ -216,20 +216,22 @@ module.exports = DatasetController.extend({
*/
_getStacks: function(last) {
var me = this;
var chart = me.chart;
var scale = me._getIndexScale();
var metasets = chart._getSortedVisibleDatasetMetas();
var metasets = getMatchingVisibleMetas(scale);
var stacked = scale.options.stacked;
var ilen = metasets.length;
var stacks = [];
var i, meta;

for (i = 0; i < ilen; ++i) {
meta = metasets[i];
if (meta.bar &&
(stacked === false ||
(stacked === true && stacks.indexOf(meta.stack) === -1) ||
(stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {
// stacked | meta.stack
// | found | not found | undefined
// false | x | x | x
// true | | x |
// undefined | | x | x
if (stacked === false || stacks.indexOf(meta.stack) === -1 ||
(stacked === undefined && meta.stack === undefined)) {
stacks.push(meta.stack);
}
if (meta.index === last) {
Expand Down
25 changes: 18 additions & 7 deletions src/scales/scale.linear.js
Expand Up @@ -41,6 +41,19 @@ function getOrCreateStack(stacks, stacked, meta) {
return stacks[key];
}

function isInvalidOrHidden(value, meta, i) {
return isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden;
}

function initStackIndex(pos, neg, i) {
pos[i] = pos[i] || 0;
neg[i] = neg[i] || 0;
}

function isNegative(value) {
return value.min < 0 || value.max < 0;
}

function stackData(scale, stacks, meta, data) {
var opts = scale.options;
var stacked = opts.stacked;
Expand All @@ -51,17 +64,16 @@ function stackData(scale, stacks, meta, data) {
var i, value;

for (i = 0; i < ilen; ++i) {
initStackIndex(pos, neg, i);

value = scale._parseValue(data[i]);
if (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) {
if (isInvalidOrHidden(value, meta, i)) {
continue;
}

pos[i] = pos[i] || 0;
neg[i] = neg[i] || 0;

if (opts.relativePoints) {
pos[i] = 100;
} else if (value.min < 0 || value.max < 0) {
} else if (isNegative(value)) {
neg[i] += value.min;
} else {
pos[i] += value.max;
Expand All @@ -75,8 +87,7 @@ function updateMinMax(scale, meta, data) {

for (i = 0; i < ilen; ++i) {
value = scale._parseValue(data[i]);

if (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) {
if (isInvalidOrHidden(value, meta, i)) {
continue;
}

Expand Down

0 comments on commit 5a08e81

Please sign in to comment.