]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Always include padding to ensure that we can always see the tick labels of vertical... 1649/head
authorEvert Timberg <evert.timberg@gmail.com>
Fri, 13 Nov 2015 18:24:22 +0000 (13:24 -0500)
committerEvert Timberg <evert.timberg@gmail.com>
Fri, 13 Nov 2015 18:24:22 +0000 (13:24 -0500)
src/core/core.scale.js
test/controller.bar.tests.js
test/controller.line.tests.js
test/core.scaleService.tests.js
test/scale.linear.tests.js

index edf807de07e882eda14592438b25df8d43fd4938..b4182d21dae32db30c25c851cd6045cbd2d61af8 100644 (file)
                                        // A horizontal axis is more constrained by the height.
                                        var maxLabelHeight = this.maxHeight - this.minSize.height;
                                        var longestLabelWidth = helpers.longestText(this.ctx, labelFont, this.ticks);
+
+                                       // TODO - improve this calculation
                                        var labelHeight = (Math.sin(helpers.toRadians(this.labelRotation)) * longestLabelWidth) + 1.5 * this.options.ticks.fontSize;
 
                                        this.minSize.height = Math.min(this.maxHeight, this.minSize.height + labelHeight);
                                        var maxLabelWidth = this.maxWidth - this.minSize.width;
                                        var largestTextWidth = helpers.longestText(this.ctx, labelFont, this.ticks);
 
+                                       // Account for padding
+                                       if (!this.options.ticks.mirror) {
+                                               largestTextWidth += this.options.ticks.padding;
+                                       }
+
                                        if (largestTextWidth < maxLabelWidth) {
                                                // We don't need all the room
                                                this.minSize.width += largestTextWidth;
index fc6308f56b82171e1b3398115e5519840891f38c..d271cf6213a69fda16357e21a4535f830a44e8a1 100644 (file)
@@ -262,7 +262,7 @@ describe('Bar controller tests', function() {
                expect(bar1._xScale).toBe(chart.scales.firstXScaleID);
                expect(bar1._yScale).toBe(chart.scales.firstYScaleID);
                expect(bar1._model).toEqual({
-                       x: 103.60000000000001,
+                       x: 113.60000000000001,
                        y: 194,
                        label: 'label1',
                        datasetLabel: 'dataset2',
@@ -279,7 +279,7 @@ describe('Bar controller tests', function() {
                expect(bar2._xScale).toBe(chart.scales.firstXScaleID);
                expect(bar2._yScale).toBe(chart.scales.firstYScaleID);
                expect(bar2._model).toEqual({
-                       x: 141.6,
+                       x: 151.60000000000002,
                        y: 6,
                        label: 'label2',
                        datasetLabel: 'dataset2',
index 7e86c99bdb76d380b0039e0795b18e744ef5d526..cdfb9bdc9a1147ccb3670019107db733dfd06e84 100644 (file)
@@ -267,13 +267,13 @@ describe('Line controller tests', function() {
                        tension: 0.1,
 
                        // Point
-                       x: 71,
+                       x: 81,
                        y: 62,
 
                        // Control points
-                       controlPointPreviousX: 71,
+                       controlPointPreviousX: 81,
                        controlPointPreviousY: 62,
-                       controlPointNextX: 76,
+                       controlPointNextX: 86,
                        controlPointNextY: 57.3,
                });
 
@@ -287,13 +287,13 @@ describe('Line controller tests', function() {
                        tension: 0.1,
 
                        // Point
-                       x: 121,
+                       x: 131,
                        y: 15,
 
                        // Control points
-                       controlPointPreviousX: 117.82889384189087,
+                       controlPointPreviousX: 127.82889384189087,
                        controlPointPreviousY: 12.04867347661131,
-                       controlPointNextX: 127.92889384189088,
+                       controlPointNextX: 137.92889384189088,
                        controlPointNextY: 21.44867347661131,
                });
 
@@ -307,13 +307,13 @@ describe('Line controller tests', function() {
                        tension: 0.1,
 
                        // Point
-                       x: 172,
+                       x: 182,
                        y: 156,
 
                        // Control points
-                       controlPointPreviousX: 164.8815225337256,
+                       controlPointPreviousX: 174.8815225337256,
                        controlPointPreviousY: 143.38408449046415,
-                       controlPointNextX: 174.98152253372558,
+                       controlPointNextX: 184.98152253372558,
                        controlPointNextY: 161.28408449046415,
                });
 
@@ -327,13 +327,13 @@ describe('Line controller tests', function() {
                        tension: 0.1,
 
                        // Point
-                       x: 222,
+                       x: 232,
                        y: 194,
 
                        // Control points
-                       controlPointPreviousX: 217,
+                       controlPointPreviousX: 227,
                        controlPointPreviousY: 190.2,
-                       controlPointNextX: 222,
+                       controlPointNextX: 232,
                        controlPointNextY: 194,
                });
 
@@ -383,13 +383,13 @@ describe('Line controller tests', function() {
                        tension: 0.2,
 
                        // Point
-                       x: 71,
+                       x: 81,
                        y: 62,
 
                        // Control points
-                       controlPointPreviousX: 71,
+                       controlPointPreviousX: 81,
                        controlPointPreviousY: 62,
-                       controlPointNextX: 81,
+                       controlPointNextX: 91,
                        controlPointNextY: 52.6,
                });
 
@@ -403,13 +403,13 @@ describe('Line controller tests', function() {
                        tension: 0.2,
 
                        // Point
-                       x: 121,
+                       x: 131,
                        y: 15,
 
                        // Control points
-                       controlPointPreviousX: 114.65778768378175,
+                       controlPointPreviousX: 124.65778768378175,
                        controlPointPreviousY: 9.097346953222619,
-                       controlPointNextX: 134.85778768378177,
+                       controlPointNextX: 144.85778768378177,
                        controlPointNextY: 27.897346953222623,
                });
 
@@ -423,13 +423,13 @@ describe('Line controller tests', function() {
                        tension: 0.2,
 
                        // Point
-                       x: 172,
+                       x: 182,
                        y: 156,
 
                        // Control points
-                       controlPointPreviousX: 157.76304506745115,
+                       controlPointPreviousX: 167.76304506745115,
                        controlPointPreviousY: 130.76816898092827,
-                       controlPointNextX: 177.96304506745116,
+                       controlPointNextX: 187.96304506745116,
                        controlPointNextY: 166.56816898092828,
                });
 
@@ -443,13 +443,13 @@ describe('Line controller tests', function() {
                        tension: 0.2,
 
                        // Point
-                       x: 222,
+                       x: 232,
                        y: 194,
 
                        // Control points
-                       controlPointPreviousX: 212,
+                       controlPointPreviousX: 222,
                        controlPointPreviousY: 186.4,
-                       controlPointNextX: 222,
+                       controlPointNextX: 232,
                        controlPointNextY: 194,
                });
 
@@ -505,13 +505,13 @@ describe('Line controller tests', function() {
                        tension: 0.15,
 
                        // Point
-                       x: 71,
+                       x: 81,
                        y: 62,
 
                        // Control points
-                       controlPointPreviousX: 71,
+                       controlPointPreviousX: 81,
                        controlPointPreviousY: 62,
-                       controlPointNextX: 78.5,
+                       controlPointNextX: 88.5,
                        controlPointNextY: 54.95,
                });
        });
index 3ea3e8a5b8fadce7e1675ddcf84bb78eafe2bdec..e69cc1eab50732cba7a270c43feac32009043699 100644 (file)
@@ -42,24 +42,24 @@ describe('Test the scale service', function() {
                Chart.scaleService.update(chartInstance, canvasWidth, canvasHeight);
 
                expect(chartInstance.chartArea).toEqual({
-                       left: 45,
+                       left: 55,
                        right: 245,
                        top: 5,
-                       bottom: 76.0423977855504,
+                       bottom: 75.0664716027288,
                });
 
                // Is xScale at the right spot
-               expect(xScale.left).toBe(45);
+               expect(xScale.left).toBe(55);
                expect(xScale.right).toBe(245);
-               expect(xScale.top).toBe(76.0423977855504);
+               expect(xScale.top).toBe(75.0664716027288);
                expect(xScale.bottom).toBe(145);
-               expect(xScale.labelRotation).toBe(55);
+               expect(xScale.labelRotation).toBe(57);
 
                // Is yScale at the right spot
                expect(yScale.left).toBe(5);
-               expect(yScale.right).toBe(45);
+               expect(yScale.right).toBe(55);
                expect(yScale.top).toBe(5);
-               expect(yScale.bottom).toBe(76.0423977855504);
+               expect(yScale.bottom).toBe(75.0664716027288);
        });
 
        it('should fit scales that are in the top and right positions', function() {
@@ -107,22 +107,22 @@ describe('Test the scale service', function() {
 
                expect(chartInstance.chartArea).toEqual({
                        left: 5,
-                       right: 205,
-                       top: 73.9576022144496,
+                       right: 195,
+                       top: 74.9335283972712,
                        bottom: 145,
                });
 
                // Is xScale at the right spot
                expect(xScale.left).toBe(5);
-               expect(xScale.right).toBe(205);
+               expect(xScale.right).toBe(195);
                expect(xScale.top).toBe(5);
-               expect(xScale.bottom).toBe(73.9576022144496);
-               expect(xScale.labelRotation).toBe(55);
+               expect(xScale.bottom).toBe(74.9335283972712);
+               expect(xScale.labelRotation).toBe(57);
 
                // Is yScale at the right spot
-               expect(yScale.left).toBe(205);
+               expect(yScale.left).toBe(195);
                expect(yScale.right).toBe(245);
-               expect(yScale.top).toBe(73.9576022144496);
+               expect(yScale.top).toBe(74.9335283972712);
                expect(yScale.bottom).toBe(145);
        });
 
@@ -179,28 +179,28 @@ describe('Test the scale service', function() {
                Chart.scaleService.update(chartInstance, canvasWidth, canvasHeight);
 
                expect(chartInstance.chartArea).toEqual({
-                       left: 95,
+                       left: 115,
                        right: 245,
                        top: 5,
-                       bottom: 70.01536896070459,
+                       bottom: 68.48521368620018,
                });
 
                // Is xScale at the right spot
-               expect(xScale.left).toBe(95);
+               expect(xScale.left).toBe(115);
                expect(xScale.right).toBe(245);
-               expect(xScale.top).toBe(70.01536896070459);
+               expect(xScale.top).toBe(68.48521368620018);
                expect(xScale.bottom).toBe(145);
 
                // Are yScales at the right spot
                expect(yScale1.left).toBe(5);
-               expect(yScale1.right).toBe(45);
+               expect(yScale1.right).toBe(55);
                expect(yScale1.top).toBe(5);
-               expect(yScale1.bottom).toBe(70.01536896070459);
+               expect(yScale1.bottom).toBe(68.48521368620018);
 
-               expect(yScale2.left).toBe(45);
-               expect(yScale2.right).toBe(95);
+               expect(yScale2.left).toBe(55);
+               expect(yScale2.right).toBe(115);
                expect(yScale2.top).toBe(5);
-               expect(yScale2.bottom).toBe(70.01536896070459);
+               expect(yScale2.bottom).toBe(68.48521368620018);
        });
 
        // This is an oddball case. What happens is, when the scales are fit the first time they must fit within the assigned size. In this case,
index e83c77cdb61dfc490946da46a5167873655eec08..c4d6948e9629325a11fbcb4b3455ddda56883755 100644 (file)
@@ -592,10 +592,10 @@ describe('Linear Scale', function() {
 
                var minSize = verticalScale.update(100, 300);
                expect(minSize).toEqual({
-                       width: 30,
+                       width: 40,
                        height: 300,
                });
-               expect(verticalScale.width).toBe(30);
+               expect(verticalScale.width).toBe(40);
                expect(verticalScale.height).toBe(300);
                expect(verticalScale.paddingTop).toBe(6);
                expect(verticalScale.paddingBottom).toBe(6);
@@ -622,7 +622,7 @@ describe('Linear Scale', function() {
                config.scaleLabel.show = true;
                minSize = verticalScale.update(100, 300);
                expect(minSize).toEqual({
-                       width: 48,
+                       width: 58,
                        height: 300,
                });
        });