@@ -38,19 +38,9 @@ module.exports = function handleClick(g, gd, numClicks) {
38
38
var legendItem = g . data ( ) [ 0 ] [ 0 ] ;
39
39
if ( legendItem . groupTitle && legendItem . noClick ) return ;
40
40
41
- var i , j ;
42
41
var fullData = gd . _fullData ;
43
- var allLegendItems = fullData . slice ( ) ;
44
- if ( fullLayout . shapes ) {
45
- for ( i = 0 ; i < fullLayout . shapes . length ; i ++ ) {
46
- var shapeLegend = fullLayout . shapes [ i ] ; // TODO: make a copy instead!
47
- if ( shapeLegend . visible ) {
48
- shapeLegend . index = i ;
49
- shapeLegend . _fullInput = shapeLegend ;
50
- allLegendItems . push ( shapeLegend ) ;
51
- }
52
- }
53
- }
42
+ var shapesWithLegend = ( fullLayout . shapes || [ ] ) . filter ( function ( d ) { return d . showlegend ; } ) ;
43
+ var allLegendItems = fullData . concat ( shapesWithLegend ) ;
54
44
55
45
var fullTrace = legendItem . trace ;
56
46
if ( fullTrace . _isShape ) {
@@ -59,7 +49,7 @@ module.exports = function handleClick(g, gd, numClicks) {
59
49
60
50
var legendgroup = fullTrace . legendgroup ;
61
51
62
- var kcont , key , keys , val ;
52
+ var i , j , kcont , key , keys , val ;
63
53
var dataUpdate = { } ;
64
54
var dataIndices = [ ] ;
65
55
var carrs = [ ] ;
@@ -96,9 +86,10 @@ module.exports = function handleClick(g, gd, numClicks) {
96
86
function setVisibility ( fullTrace , visibility ) {
97
87
if ( legendItem . groupTitle && ! toggleGroup ) return ;
98
88
99
- var fullInput = fullTrace . _fullInput ;
89
+ var fullInput = fullTrace . _fullInput || fullTrace ;
100
90
var isShape = fullInput . _isShape ;
101
91
var index = fullInput . index ;
92
+ if ( index === undefined ) index = fullInput . _index ;
102
93
103
94
if ( Registry . hasTransform ( fullInput , 'groupby' ) ) {
104
95
var kcont = carrs [ index ] ;
0 commit comments