]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Apply offset regardless of min/max time scale options (#6264)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Sun, 12 May 2019 14:52:30 +0000 (17:52 +0300)
committerSimon Brunel <simonbrunel@users.noreply.github.com>
Sun, 12 May 2019 14:52:30 +0000 (16:52 +0200)
src/scales/scale.time.js
test/specs/scale.time.tests.js

index 7d21f47b53d16b4a9277ff1daf74e83e7181884f..849dd8dcc6e31eacd6181498be0e8ff9985c3848 100644 (file)
@@ -387,21 +387,17 @@ function computeOffsets(table, ticks, min, max, options) {
        var first, last;
 
        if (options.offset && ticks.length) {
-               if (!getMin(options)) {
-                       first = interpolate(table, 'time', ticks[0], 'pos');
-                       if (ticks.length === 1) {
-                               start = 1 - first;
-                       } else {
-                               start = (interpolate(table, 'time', ticks[1], 'pos') - first) / 2;
-                       }
+               first = interpolate(table, 'time', ticks[0], 'pos');
+               if (ticks.length === 1) {
+                       start = 1 - first;
+               } else {
+                       start = (interpolate(table, 'time', ticks[1], 'pos') - first) / 2;
                }
-               if (!getMax(options)) {
-                       last = interpolate(table, 'time', ticks[ticks.length - 1], 'pos');
-                       if (ticks.length === 1) {
-                               end = last;
-                       } else {
-                               end = (last - interpolate(table, 'time', ticks[ticks.length - 2], 'pos')) / 2;
-                       }
+               last = interpolate(table, 'time', ticks[ticks.length - 1], 'pos');
+               if (ticks.length === 1) {
+                       end = last;
+               } else {
+                       end = (last - interpolate(table, 'time', ticks[ticks.length - 2], 'pos')) / 2;
                }
        }
 
index 5f80dd7b55119d22096d3f00210b35e461de84a8..80f127da527eac34b881d904b15517a824e09a1b 100755 (executable)
@@ -1456,7 +1456,7 @@ describe('Time scale tests', function() {
                                        expect(scale.getPixelForValue('2051')).toBeCloseToPixel(scale.left + scale.width);
                                });
 
-                               it ('should not add offset if min and max extend the labels range and offset is true', function() {
+                               it ('should add offset if min and max extend the labels range and offset is true', function() {
                                        var chart = this.chart;
                                        var scale = chart.scales.x;
                                        var options = chart.options.scales.xAxes[0];
@@ -1466,8 +1466,11 @@ describe('Time scale tests', function() {
                                        options.offset = true;
                                        chart.update();
 
-                                       expect(scale.getPixelForValue('2012')).toBeCloseToPixel(scale.left);
-                                       expect(scale.getPixelForValue('2051')).toBeCloseToPixel(scale.left + scale.width);
+                                       var numTicks = scale.ticks.length;
+                                       var firstTickInterval = scale.getPixelForTick(1) - scale.getPixelForTick(0);
+                                       var lastTickInterval = scale.getPixelForTick(numTicks - 1) - scale.getPixelForTick(numTicks - 2);
+                                       expect(scale.getPixelForValue('2012')).toBeCloseToPixel(scale.left + firstTickInterval / 2);
+                                       expect(scale.getPixelForValue('2051')).toBeCloseToPixel(scale.left + scale.width - lastTickInterval / 2);
                                });
                        });
                });