Skip to content

Commit 58510a9

Browse files
committed
Handle multiple index axis instead of focusing on x axis
1 parent d8abec5 commit 58510a9

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/controllers/controller.bar.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -490,18 +490,20 @@ export default class BarController extends DatasetController {
490490
return this._getAxis().length;
491491
}
492492

493-
getFirstScaleIdForXAxis() {
493+
getFirstScaleIdForIndexAxis() {
494494
const scales = this.chart.scales;
495-
return Object.keys(scales).filter(key => scales[key].axis === 'x').shift();
495+
const indexScaleId = this.chart.options.indexAxis;
496+
return Object.keys(scales).filter(key => scales[key].axis === indexScaleId).shift();
496497
}
497498

498499
_getAxis() {
499500
const axis = {};
500-
const firstScaleAxisId = this.getFirstScaleIdForXAxis();
501+
const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();
501502
for (const dataset of this.chart.data.datasets) {
502-
axis[valueOrDefault(dataset.xAxisID, firstScaleAxisId)] = true;
503+
axis[valueOrDefault(
504+
this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId
505+
)] = true;
503506
}
504-
505507
return Object.keys(axis);
506508
}
507509

@@ -644,7 +646,9 @@ export default class BarController extends DatasetController {
644646
? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount)
645647
: computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);
646648

647-
const axisNumber = this._getAxis().indexOf(valueOrDefault(this.getDataset().xAxisID, this.getFirstScaleIdForXAxis()));
649+
const axisNumber = this._getAxis().indexOf(valueOrDefault(
650+
this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID, this.getFirstScaleIdForIndexAxis()
651+
));
648652
const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;
649653
center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);
650654
size = Math.min(maxBarThickness, range.chunk * range.ratio);

0 commit comments

Comments
 (0)