@@ -117,8 +117,11 @@ module.exports = function draw(gd) {
117
117
}
118
118
} )
119
119
. each ( function ( d ) {
120
- drawTexts ( gd , this , d [ 0 ] ) ;
121
- setupTraceToggle ( gd , this , d [ 0 ] ) ;
120
+ var legendItem = d [ 0 ] ;
121
+
122
+ d3 . select ( this )
123
+ . call ( drawTexts , gd , legendItem )
124
+ . call ( setupTraceToggle , gd , legendItem ) ;
122
125
} ) ;
123
126
124
127
if ( gd . firstRender ) {
@@ -311,14 +314,14 @@ module.exports = function draw(gd) {
311
314
}
312
315
} ;
313
316
314
- function drawTexts ( gd , context , legendItem ) {
317
+ function drawTexts ( g , gd , legendItem ) {
315
318
var fullLayout = gd . _fullLayout ,
316
319
trace = legendItem . trace ,
317
320
isPie = Plots . traceIs ( trace , 'pie' ) ,
318
321
traceIndex = trace . index ,
319
322
name = isPie ? legendItem . label : trace . name ;
320
323
321
- var text = d3 . select ( context ) . selectAll ( 'text.legendtext' )
324
+ var text = g . selectAll ( 'text.legendtext' )
322
325
. data ( [ 0 ] ) ;
323
326
text . enter ( ) . append ( 'text' ) . classed ( 'legendtext' , true ) ;
324
327
text . attr ( {
@@ -334,7 +337,7 @@ function drawTexts(gd, context, legendItem) {
334
337
function textLayout ( s ) {
335
338
Plotly . util . convertToTspans ( s , function ( ) {
336
339
s . selectAll ( 'tspan.line' ) . attr ( { x : s . attr ( 'x' ) } ) ;
337
- computeTextDimensions ( gd , context , legendItem ) ;
340
+ g . call ( computeTextDimensions , gd , legendItem ) ;
338
341
} ) ;
339
342
}
340
343
@@ -352,12 +355,12 @@ function drawTexts(gd, context, legendItem) {
352
355
else text . call ( textLayout ) ;
353
356
}
354
357
355
- function setupTraceToggle ( gd , container , legendItem ) {
358
+ function setupTraceToggle ( g , gd , legendItem ) {
356
359
var hiddenSlices = gd . _fullLayout . hiddenlabels ?
357
360
gd . _fullLayout . hiddenlabels . slice ( ) :
358
361
[ ] ;
359
362
360
- var traceToggle = d3 . select ( container ) . selectAll ( 'rect' )
363
+ var traceToggle = g . selectAll ( 'rect' )
361
364
. data ( [ 0 ] ) ;
362
365
363
366
traceToggle . enter ( ) . append ( 'rect' )
@@ -402,11 +405,10 @@ function setupTraceToggle(gd, container, legendItem) {
402
405
} ) ;
403
406
}
404
407
405
- function computeTextDimensions ( gd , container , legendItem ) {
406
- var opts = gd . _fullLayout . legend ,
407
- g = d3 . select ( container ) ,
408
- bg = g . selectAll ( '.legendtoggle' ) ,
408
+ function computeTextDimensions ( g , gd , legendItem ) {
409
+ var bg = g . selectAll ( '.legendtoggle' ) ,
409
410
mathjaxGroup = g . select ( 'g[class*=math-group]' ) ,
411
+ opts = gd . _fullLayout . legend ,
410
412
lineHeight = opts . font . size * 1.3 ,
411
413
height ,
412
414
width ;
0 commit comments