@@ -14,6 +14,7 @@ var Registry = require('../../registry');
14
14
var Lib = require ( '../../lib' ) ;
15
15
var Drawing = require ( '../drawing' ) ;
16
16
var Color = require ( '../color' ) ;
17
+ var extractOpts = require ( '../colorscale/helpers' ) . extractOpts ;
17
18
18
19
var subTypes = require ( '../../traces/scatter/subtypes' ) ;
19
20
var stylePie = require ( '../../traces/pie/style_one' ) ;
@@ -30,7 +31,7 @@ module.exports = function style(s, gd) {
30
31
var legend = fullLayout . legend ;
31
32
var constantItemSizing = legend . itemsizing === 'constant' ;
32
33
33
- function boundLineWidth ( mlw , cont , max , cst ) {
34
+ var boundLineWidth = function ( mlw , cont , max , cst ) {
34
35
var v ;
35
36
if ( mlw + 1 ) {
36
37
v = mlw ;
@@ -40,7 +41,7 @@ module.exports = function style(s, gd) {
40
41
return 0 ;
41
42
}
42
43
return constantItemSizing ? cst : Math . min ( v , max ) ;
43
- }
44
+ } ;
44
45
45
46
s . each ( function ( d ) {
46
47
var traceGroup = d3 . select ( this ) ;
@@ -104,6 +105,29 @@ module.exports = function style(s, gd) {
104
105
var showGradientFill = false ;
105
106
var dMod , tMod ;
106
107
108
+ var cOpts = extractOpts ( trace ) ;
109
+ var colorscale = cOpts . colorscale ;
110
+ var reversescale = cOpts . reversescale ;
111
+
112
+ var fillGradient = function ( s ) {
113
+ if ( s . size ( ) ) {
114
+ var gradientID = 'legendfill-' + trace . uid ;
115
+ Drawing . gradient ( s , gd , gradientID ,
116
+ getGradientDirection ( reversescale ) ,
117
+ colorscale , 'fill' ) ;
118
+ }
119
+ } ;
120
+
121
+ var lineGradient = function ( s ) {
122
+ if ( s . size ( ) ) {
123
+ var gradientID = 'legendline-' + trace . uid ;
124
+ Drawing . lineGroupStyle ( s ) ;
125
+ Drawing . gradient ( s , gd , gradientID ,
126
+ getGradientDirection ( reversescale ) ,
127
+ colorscale , 'stroke' ) ;
128
+ }
129
+ } ;
130
+
107
131
if ( contours ) {
108
132
var coloring = contours . coloring ;
109
133
@@ -158,23 +182,6 @@ module.exports = function style(s, gd) {
158
182
// This issue (and workaround) exist across (Mac) Chrome, FF, and Safari
159
183
line . attr ( 'd' , pathStart + ( showGradientLine ? 'l30,0.0001' : 'h30' ) )
160
184
. call ( showLine ? Drawing . lineGroupStyle : lineGradient ) ;
161
-
162
- function fillGradient ( s ) {
163
- if ( s . size ( ) ) {
164
- var gradientID = 'legendfill-' + trace . uid ;
165
- Drawing . gradient ( s , gd , gradientID , 'horizontalreversed' ,
166
- trace . colorscale , 'fill' ) ;
167
- }
168
- }
169
-
170
- function lineGradient ( s ) {
171
- if ( s . size ( ) ) {
172
- var gradientID = 'legendline-' + trace . uid ;
173
- Drawing . lineGroupStyle ( s ) ;
174
- Drawing . gradient ( s , gd , gradientID , 'horizontalreversed' ,
175
- trace . colorscale , 'stroke' ) ;
176
- }
177
- }
178
185
}
179
186
180
187
function stylePoints ( d ) {
@@ -278,7 +285,7 @@ module.exports = function style(s, gd) {
278
285
var trace = d [ 0 ] . trace ;
279
286
280
287
var ptsData = [ ] ;
281
- if ( trace . type === 'waterfall' && trace . visible ) {
288
+ if ( trace . visible && trace . type === 'waterfall' ) {
282
289
ptsData = d [ 0 ] . hasTotals ?
283
290
[ [ 'increasing' , 'M-6,-6V6H0Z' ] , [ 'totals' , 'M6,6H0L-6,-6H-0Z' ] , [ 'decreasing' , 'M6,6V-6H0Z' ] ] :
284
291
[ [ 'increasing' , 'M-6,-6V6H6Z' ] , [ 'decreasing' , 'M6,6V-6H-6Z' ] ] ;
@@ -321,7 +328,7 @@ module.exports = function style(s, gd) {
321
328
var markerLine = marker . line || { } ;
322
329
323
330
var isVisible = ( ! desiredType ) ? Registry . traceIs ( trace , 'bar' ) :
324
- ( trace . type === desiredType && trace . visible ) ;
331
+ ( trace . visible && trace . type === desiredType ) ;
325
332
326
333
var barpath = d3 . select ( lThis ) . select ( 'g.legendpoints' )
327
334
. selectAll ( 'path.legend' + desiredType )
@@ -348,7 +355,7 @@ module.exports = function style(s, gd) {
348
355
349
356
var pts = d3 . select ( this ) . select ( 'g.legendpoints' )
350
357
. selectAll ( 'path.legendbox' )
351
- . data ( Registry . traceIs ( trace , 'box-violin' ) && trace . visible ? [ d ] : [ ] ) ;
358
+ . data ( trace . visible && Registry . traceIs ( trace , 'box-violin' ) ? [ d ] : [ ] ) ;
352
359
pts . enter ( ) . append ( 'path' ) . classed ( 'legendbox' , true )
353
360
// if we want the median bar, prepend M6,0H-6
354
361
. attr ( 'd' , 'M6,6H-6V-6H6Z' )
@@ -386,7 +393,7 @@ module.exports = function style(s, gd) {
386
393
387
394
var pts = d3 . select ( this ) . select ( 'g.legendpoints' )
388
395
. selectAll ( 'path.legendcandle' )
389
- . data ( trace . type === 'candlestick' && trace . visible ? [ d , d ] : [ ] ) ;
396
+ . data ( trace . visible && trace . type === 'candlestick' ? [ d , d ] : [ ] ) ;
390
397
pts . enter ( ) . append ( 'path' ) . classed ( 'legendcandle' , true )
391
398
. attr ( 'd' , function ( _ , i ) {
392
399
if ( i ) return 'M-15,0H-8M-8,6V-6H8Z' ; // increasing
@@ -413,7 +420,7 @@ module.exports = function style(s, gd) {
413
420
414
421
var pts = d3 . select ( this ) . select ( 'g.legendpoints' )
415
422
. selectAll ( 'path.legendohlc' )
416
- . data ( trace . type === 'ohlc' && trace . visible ? [ d , d ] : [ ] ) ;
423
+ . data ( trace . visible && trace . type === 'ohlc' ? [ d , d ] : [ ] ) ;
417
424
pts . enter ( ) . append ( 'path' ) . classed ( 'legendohlc' , true )
418
425
. attr ( 'd' , function ( _ , i ) {
419
426
if ( i ) return 'M-15,0H0M-8,-6V0' ; // increasing
@@ -448,7 +455,7 @@ module.exports = function style(s, gd) {
448
455
var trace = d0 . trace ;
449
456
450
457
var isVisible = ( ! desiredType ) ? Registry . traceIs ( trace , desiredType ) :
451
- ( trace . type === desiredType && trace . visible ) ;
458
+ ( trace . visible && trace . type === desiredType ) ;
452
459
453
460
var pts = d3 . select ( lThis ) . select ( 'g.legendpoints' )
454
461
. selectAll ( 'path.legend' + desiredType )
@@ -472,3 +479,7 @@ module.exports = function style(s, gd) {
472
479
}
473
480
}
474
481
} ;
482
+
483
+ function getGradientDirection ( reversescale ) {
484
+ return reversescale ? 'horizontal' : 'horizontalreversed' ;
485
+ }
0 commit comments