Skip to content

Commit 06d4d2d

Browse files
authored
Merge pull request #5771 from plotly/clickable-legend-group-titles
Allow clickable legend group titles when group has no pie-like traces
2 parents 3725a47 + 69d6060 commit 06d4d2d

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

draftlogs/5771_fix.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Allow clickable legend group titles when group has no pie-like traces [[#5771](https://github.com/plotly/plotly.js/pull/5771)]
2+

src/components/legend/get_legend_data.js

+13-2
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ module.exports = function getLegendData(calcdata, opts) {
118118
legendData[i].forEach(function(a, k) { a._preSort = k; });
119119
legendData[i].sort(orderFn2);
120120

121-
var firstItem = legendData[i][0];
121+
var firstItemTrace = legendData[i][0].trace;
122122

123123
var groupTitle = null;
124124
// get group title text
@@ -134,12 +134,23 @@ module.exports = function getLegendData(calcdata, opts) {
134134
if(reversed) legendData[i].reverse();
135135

136136
if(groupTitle) {
137+
var hasPieLike = false;
138+
for(j = 0; j < legendData[i].length; j++) {
139+
if(Registry.traceIs(legendData[i][j].trace, 'pie-like')) {
140+
hasPieLike = true;
141+
break;
142+
}
143+
}
144+
137145
// set group title text
138146
legendData[i].unshift({
139147
i: -1,
140148
groupTitle: groupTitle,
149+
noClick: hasPieLike,
141150
trace: {
142-
showlegend: firstItem.trace.showlegend
151+
showlegend: firstItemTrace.showlegend,
152+
legendgroup: firstItemTrace.legendgroup,
153+
visible: firstItemTrace.visible
143154
}
144155
});
145156
}

src/components/legend/handle_click.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ module.exports = function handleClick(g, gd, numClicks) {
3232
[];
3333

3434
var legendItem = g.data()[0][0];
35-
if(legendItem.groupTitle) return; // no click on group legends for now
35+
if(legendItem.groupTitle && legendItem.noClick) return;
3636

3737
var fullData = gd._fullData;
3838
var fullTrace = legendItem.trace;

0 commit comments

Comments
 (0)