Provide a rectangle getArea implementation for horizontal bars (#6027)

This commit is contained in:
Evert Timberg 2019-02-04 03:56:38 -05:00 committed by Simon Brunel
parent 93d5ac9a31
commit 945d91aee2
2 changed files with 22 additions and 2 deletions

View File

@ -206,7 +206,10 @@ module.exports = Element.extend({
getArea: function() {
var vm = this._view;
return vm.width * Math.abs(vm.y - vm.base);
return isVertical(this)
? vm.width * Math.abs(vm.y - vm.base)
: vm.height * Math.abs(vm.x - vm.base);
},
tooltipPosition: function() {

View File

@ -132,7 +132,7 @@ describe('Rectangle element tests', function() {
});
});
it ('should get the correct area', function() {
it ('should get the correct vertical area', function() {
var rectangle = new Chart.elements.Rectangle({
_datasetIndex: 2,
_index: 1
@ -149,6 +149,23 @@ describe('Rectangle element tests', function() {
expect(rectangle.getArea()).toEqual(60);
});
it ('should get the correct horizontal area', function() {
var rectangle = new Chart.elements.Rectangle({
_datasetIndex: 2,
_index: 1
});
// Attach a view object as if we were the controller
rectangle._view = {
base: 0,
height: 4,
x: 10,
y: 15
};
expect(rectangle.getArea()).toEqual(40);
});
it ('should get the center', function() {
var rectangle = new Chart.elements.Rectangle({
_datasetIndex: 2,