]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Zero line dash options (#4019)
authorLee N Dobryden <lndobryden@gmail.com>
Tue, 21 Mar 2017 10:38:09 +0000 (03:38 -0700)
committerEvert Timberg <evert.timberg+github@gmail.com>
Tue, 21 Mar 2017 10:38:09 +0000 (06:38 -0400)
* Add of zero line border dash options
* Update Readme with zero line border dash config options

docs/axes/styling.md
src/core/core.scale.js
test/specs/core.helpers.tests.js
test/specs/scale.category.tests.js
test/specs/scale.linear.tests.js
test/specs/scale.logarithmic.tests.js
test/specs/scale.radialLinear.tests.js
test/specs/scale.time.tests.js

index b7fabcd8c8b61c67fe6d6774b02a689620e28f4c..48a4d7d0539c6338d34055ca8bc2cf634d9762b2 100644 (file)
@@ -19,6 +19,8 @@ The grid line configuration is nested under the scale configuration in the `grid
 | `tickMarkLength` | `Number` | `10` | Length in pixels that the grid lines will draw into the axis area.
 | `zeroLineWidth` | `Number` | `1` | Stroke width of the grid line for the first index (index 0).
 | `zeroLineColor` | Color | `'rgba(0, 0, 0, 0.25)'` | Stroke color of the grid line for the first index (index 0).
+| `zeroLineBorderDash` | `Number[]` | `[]` | Length and spacing of dashes of the grid line for the first index (index 0). See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash)
+| `zeroLineBorderDashOffset` | `Number` | `0` | Offset for line dashes of the grid line for the first index (index 0). See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset)
 | `offsetGridLines` | `Boolean` | `false` | If true, labels are shifted to be between grid lines. This is used in the bar chart and should not generally be used.
 
 ## Tick Configuration
index de453e64a33eceec525932e6d95ee40e85d48cda..f8df92497e90d410e9996e9d3e75abca3f5b36f9 100644 (file)
@@ -19,6 +19,8 @@ module.exports = function(Chart) {
                        tickMarkLength: 10,
                        zeroLineWidth: 1,
                        zeroLineColor: 'rgba(0,0,0,0.25)',
+                       zeroLineBorderDash: [],
+                       zeroLineBorderDashOffset: 0.0,
                        offsetGridLines: false,
                        borderDash: [],
                        borderDashOffset: 0.0
@@ -503,8 +505,6 @@ module.exports = function(Chart) {
                        var tickFont = parseFontOptions(optionTicks);
 
                        var tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0;
-                       var borderDash = helpers.getValueOrDefault(gridLines.borderDash, globalDefaults.borderDash);
-                       var borderDashOffset = helpers.getValueOrDefault(gridLines.borderDashOffset, globalDefaults.borderDashOffset);
 
                        var scaleLabelFontColor = helpers.getValueOrDefault(scaleLabel.fontColor, globalDefaults.defaultFontColor);
                        var scaleLabelFont = parseFontOptions(scaleLabel);
@@ -561,14 +561,18 @@ module.exports = function(Chart) {
                                        return;
                                }
 
-                               var lineWidth, lineColor;
+                               var lineWidth, lineColor, borderDash, borderDashOffset;
                                if (index === (typeof me.zeroLineIndex !== 'undefined' ? me.zeroLineIndex : 0)) {
                                        // Draw the first index specially
                                        lineWidth = gridLines.zeroLineWidth;
                                        lineColor = gridLines.zeroLineColor;
+                                       borderDash = gridLines.zeroLineBorderDash;
+                                       borderDashOffset = gridLines.zeroLineBorderDashOffset;
                                } else {
                                        lineWidth = helpers.getValueAtIndexOrDefault(gridLines.lineWidth, index);
                                        lineColor = helpers.getValueAtIndexOrDefault(gridLines.color, index);
+                                       borderDash = helpers.getValueOrDefault(gridLines.borderDash, globalDefaults.borderDash);
+                                       borderDashOffset = helpers.getValueOrDefault(gridLines.borderDashOffset, globalDefaults.borderDashOffset);
                                }
 
                                // Common properties
index 296958051d6261adb614fb7d11510460af3fb5d5..65e369d46b36779a2fd5deb22cdf5c6bde51e012 100644 (file)
@@ -193,6 +193,8 @@ describe('Core helper tests', function() {
                                                display: true,
                                                zeroLineColor: 'rgba(0,0,0,0.25)',
                                                zeroLineWidth: 1,
+                                               zeroLineBorderDash: [],
+                                               zeroLineBorderDashOffset: 0.0,
                                                borderDash: [],
                                                borderDashOffset: 0.0
                                        },
@@ -229,6 +231,8 @@ describe('Core helper tests', function() {
                                                display: true,
                                                zeroLineColor: 'rgba(0,0,0,0.25)',
                                                zeroLineWidth: 1,
+                                               zeroLineBorderDash: [],
+                                               zeroLineBorderDashOffset: 0.0,
                                                borderDash: [],
                                                borderDashOffset: 0.0
                                        },
index c474dd9c7fd2be733b1ef0ca7440ee9dd0a8b7b6..6eba2c2e2eb7aa1e31918209fb388ab9148aa481 100644 (file)
@@ -23,6 +23,8 @@ describe('Category scale tests', function() {
                                display: true,
                                zeroLineColor: 'rgba(0,0,0,0.25)',
                                zeroLineWidth: 1,
+                               zeroLineBorderDash: [],
+                               zeroLineBorderDashOffset: 0.0,
                                borderDash: [],
                                borderDashOffset: 0.0
                        },
index 0f63e8ce587ef5226a15290f12f29c6d35209d9f..e94741cf6a0e6fd824d50b3846ae7efbefa5f3e1 100644 (file)
@@ -21,6 +21,8 @@ describe('Linear Scale', function() {
                                display: true,
                                zeroLineColor: 'rgba(0,0,0,0.25)',
                                zeroLineWidth: 1,
+                               zeroLineBorderDash: [],
+                               zeroLineBorderDashOffset: 0.0,
                                borderDash: [],
                                borderDashOffset: 0.0
                        },
index a29b28260a3f0670cb45564992f6895203612f7e..b1053eefce2e681f72c8748c9c00cbbfa3376ec6 100644 (file)
@@ -20,6 +20,8 @@ describe('Logarithmic Scale tests', function() {
                                display: true,
                                zeroLineColor: 'rgba(0,0,0,0.25)',
                                zeroLineWidth: 1,
+                               zeroLineBorderDash: [],
+                               zeroLineBorderDashOffset: 0.0,
                                borderDash: [],
                                borderDashOffset: 0.0
                        },
index 7796e124418fd6ed54e799780605b2e37f05354c..3d102cf376f06064c0374fdfc0669a467c6fe236 100644 (file)
@@ -28,6 +28,8 @@ describe('Test the radial linear scale', function() {
                                display: true,
                                zeroLineColor: 'rgba(0,0,0,0.25)',
                                zeroLineWidth: 1,
+                               zeroLineBorderDash: [],
+                               zeroLineBorderDashOffset: 0.0,
                                borderDash: [],
                                borderDashOffset: 0.0
                        },
index 43022bcde0857b5a2c7ce2f7e188e3a28b1314ed..1aa3fa2bf2fd49801012c862af7507b47b93a658 100755 (executable)
@@ -45,6 +45,8 @@ describe('Time scale tests', function() {
                                display: true,
                                zeroLineColor: 'rgba(0,0,0,0.25)',
                                zeroLineWidth: 1,
+                               zeroLineBorderDash: [],
+                               zeroLineBorderDashOffset: 0.0,
                                borderDash: [],
                                borderDashOffset: 0.0
                        },