@@ -10,9 +10,6 @@ var resolve = helpers.options.resolve;
1010var isPointInArea = helpers . canvas . _isPointInArea ;
1111
1212defaults . _set ( 'line' , {
13- showLines : true ,
14- spanGaps : false ,
15-
1613 hover : {
1714 mode : 'label'
1815 } ,
@@ -29,9 +26,12 @@ defaults._set('line', {
2926 }
3027} ) ;
3128
32- function lineEnabled ( dataset , options ) {
33- return valueOrDefault ( dataset . showLine , options . showLines ) ;
34- }
29+ defaults . _set ( 'datasets' , {
30+ line : {
31+ showLine : true ,
32+ spanGaps : false
33+ }
34+ } ) ;
3535
3636module . exports = DatasetController . extend ( {
3737
@@ -44,9 +44,11 @@ module.exports = DatasetController.extend({
4444 var meta = me . getMeta ( ) ;
4545 var line = meta . dataset ;
4646 var points = meta . data || [ ] ;
47+ var options = me . chart . options ;
4748 var scale = me . getScaleForId ( meta . yAxisID ) ;
4849 var dataset = me . getDataset ( ) ;
49- var showLine = lineEnabled ( dataset , me . chart . options ) ;
50+ var datasetDefaults = me . _defaults ( ) ;
51+ var showLine = me . _showLine = resolve ( [ dataset . showLine , options . showLines , datasetDefaults . showLine ] ) ;
5052 var i , ilen ;
5153
5254 // Update Line
@@ -181,6 +183,7 @@ module.exports = DatasetController.extend({
181183 var dataset = chart . data . datasets [ me . index ] ;
182184 var custom = element . custom || { } ;
183185 var options = chart . options ;
186+ var datasetDefaults = me . _defaults ( ) ;
184187 var elementOptions = options . elements . line ;
185188 var values = { } ;
186189 var i , ilen , key ;
@@ -202,16 +205,17 @@ module.exports = DatasetController.extend({
202205 values [ key ] = resolve ( [
203206 custom [ key ] ,
204207 dataset [ key ] ,
205- elementOptions [ key ]
208+ elementOptions [ key ] ,
209+ datasetDefaults [ key ]
206210 ] ) ;
207211 }
208212
209213 // The default behavior of lines is to break at null values, according
210214 // to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158
211215 // This option gives lines the ability to span gaps
212- values . spanGaps = valueOrDefault ( dataset . spanGaps , options . spanGaps ) ;
213- values . tension = resolve ( [ custom . tension , dataset . lineTension , elementOptions . tension ] ) ;
214- values . steppedLine = resolve ( [ custom . steppedLine , dataset . steppedLine , elementOptions . stepped ] ) ;
216+ values . spanGaps = valueOrDefault ( dataset . spanGaps , options . spanGaps , datasetDefaults . spanGaps ) ;
217+ values . tension = resolve ( [ custom . tension , dataset . lineTension , elementOptions . tension , datasetDefaults . tension ] ) ;
218+ values . steppedLine = resolve ( [ custom . steppedLine , dataset . steppedLine , elementOptions . stepped , datasetDefaults . steppedLine ] ) ;
215219
216220 return values ;
217221 } ,
@@ -311,11 +315,11 @@ module.exports = DatasetController.extend({
311315 var meta = me . getMeta ( ) ;
312316 var points = meta . data || [ ] ;
313317 var area = chart . chartArea ;
314- var ilen = points . length ;
315318 var halfBorderWidth ;
316319 var i = 0 ;
320+ var ilen = points . length ;
317321
318- if ( lineEnabled ( me . getDataset ( ) , chart . options ) ) {
322+ if ( me . _showLine ) {
319323 halfBorderWidth = ( meta . dataset . _model . borderWidth || 0 ) / 2 ;
320324
321325 helpers . canvas . clipArea ( chart . ctx , {
0 commit comments