From e5c4dad7bcfce6b2b5ff11a0f5f69820102ff092 Mon Sep 17 00:00:00 2001 From: archmoj Date: Fri, 25 Jun 2021 14:03:50 -0400 Subject: [PATCH 1/5] enable clickable legend group titles when group has no pie-like traces --- src/components/legend/get_legend_data.js | 15 +++++++++++++-- src/components/legend/handle_click.js | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/legend/get_legend_data.js b/src/components/legend/get_legend_data.js index 7d236ae7617..6e54ac137f9 100644 --- a/src/components/legend/get_legend_data.js +++ b/src/components/legend/get_legend_data.js @@ -118,7 +118,7 @@ module.exports = function getLegendData(calcdata, opts) { legendData[i].forEach(function(a, k) { a._preSort = k; }); legendData[i].sort(orderFn2); - var firstItem = legendData[i][0]; + var firstItemTrace = legendData[i][0].trace; var groupTitle = null; // get group title text @@ -134,12 +134,23 @@ module.exports = function getLegendData(calcdata, opts) { if(reversed) legendData[i].reverse(); if(groupTitle) { + var hasPieLike = false; + for(j = 0; j < legendData[i].length; j++) { + if(Registry.traceIs(legendData[i][j].trace, 'pie-like')) { + hasPieLike = true; + break; + } + } + // set group title text legendData[i].unshift({ i: -1, groupTitle: groupTitle, + noClick: hasPieLike, trace: { - showlegend: firstItem.trace.showlegend + showlegend: firstItemTrace.showlegend, + legendgroup: firstItemTrace.legendgroup, + visible: firstItemTrace.visible } }); } diff --git a/src/components/legend/handle_click.js b/src/components/legend/handle_click.js index 8c33fb975de..f2b21412f04 100644 --- a/src/components/legend/handle_click.js +++ b/src/components/legend/handle_click.js @@ -32,7 +32,7 @@ module.exports = function handleClick(g, gd, numClicks) { []; var legendItem = g.data()[0][0]; - if(legendItem.groupTitle) return; // no click on group legends for now + if(legendItem.groupTitle && legendItem.noClick) return; var fullData = gd._fullData; var fullTrace = legendItem.trace; From 1e75b9e74dfdb8d7207c363b345ee3aa6c6e9053 Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 14 Jul 2021 17:43:15 -0400 Subject: [PATCH 2/5] draft log for PR 5771 --- draftlogs/5771_fix.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/5771_fix.md diff --git a/draftlogs/5771_fix.md b/draftlogs/5771_fix.md new file mode 100644 index 00000000000..675baf8fe8a --- /dev/null +++ b/draftlogs/5771_fix.md @@ -0,0 +1 @@ + - Clickable legend group titles [[#5771](https://github.com/plotly/plotly.js/pull/5771)] From 4c4a11b2a05dde7190e6f69f93d062217545da82 Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 14 Jul 2021 17:48:23 -0400 Subject: [PATCH 3/5] enable click for pie like group titles as well --- src/components/legend/get_legend_data.js | 9 --------- src/components/legend/handle_click.js | 1 - 2 files changed, 10 deletions(-) diff --git a/src/components/legend/get_legend_data.js b/src/components/legend/get_legend_data.js index 6e54ac137f9..81d2b6c9a26 100644 --- a/src/components/legend/get_legend_data.js +++ b/src/components/legend/get_legend_data.js @@ -134,19 +134,10 @@ module.exports = function getLegendData(calcdata, opts) { if(reversed) legendData[i].reverse(); if(groupTitle) { - var hasPieLike = false; - for(j = 0; j < legendData[i].length; j++) { - if(Registry.traceIs(legendData[i][j].trace, 'pie-like')) { - hasPieLike = true; - break; - } - } - // set group title text legendData[i].unshift({ i: -1, groupTitle: groupTitle, - noClick: hasPieLike, trace: { showlegend: firstItemTrace.showlegend, legendgroup: firstItemTrace.legendgroup, diff --git a/src/components/legend/handle_click.js b/src/components/legend/handle_click.js index f2b21412f04..e5f6b3a4ac3 100644 --- a/src/components/legend/handle_click.js +++ b/src/components/legend/handle_click.js @@ -32,7 +32,6 @@ module.exports = function handleClick(g, gd, numClicks) { []; var legendItem = g.data()[0][0]; - if(legendItem.groupTitle && legendItem.noClick) return; var fullData = gd._fullData; var fullTrace = legendItem.trace; From b8e71e28a5f0cf063487ad7b2a2d3534fa591f4b Mon Sep 17 00:00:00 2001 From: archmoj Date: Sat, 17 Jul 2021 10:17:48 -0400 Subject: [PATCH 4/5] Revert "enable click for pie like group titles as well" This reverts commit 4c4a11b2a05dde7190e6f69f93d062217545da82. --- src/components/legend/get_legend_data.js | 9 +++++++++ src/components/legend/handle_click.js | 1 + 2 files changed, 10 insertions(+) diff --git a/src/components/legend/get_legend_data.js b/src/components/legend/get_legend_data.js index 81d2b6c9a26..6e54ac137f9 100644 --- a/src/components/legend/get_legend_data.js +++ b/src/components/legend/get_legend_data.js @@ -134,10 +134,19 @@ module.exports = function getLegendData(calcdata, opts) { if(reversed) legendData[i].reverse(); if(groupTitle) { + var hasPieLike = false; + for(j = 0; j < legendData[i].length; j++) { + if(Registry.traceIs(legendData[i][j].trace, 'pie-like')) { + hasPieLike = true; + break; + } + } + // set group title text legendData[i].unshift({ i: -1, groupTitle: groupTitle, + noClick: hasPieLike, trace: { showlegend: firstItemTrace.showlegend, legendgroup: firstItemTrace.legendgroup, diff --git a/src/components/legend/handle_click.js b/src/components/legend/handle_click.js index e5f6b3a4ac3..f2b21412f04 100644 --- a/src/components/legend/handle_click.js +++ b/src/components/legend/handle_click.js @@ -32,6 +32,7 @@ module.exports = function handleClick(g, gd, numClicks) { []; var legendItem = g.data()[0][0]; + if(legendItem.groupTitle && legendItem.noClick) return; var fullData = gd._fullData; var fullTrace = legendItem.trace; From c8ebcde9523b157c6ca8550fe7e5f7da4f375db3 Mon Sep 17 00:00:00 2001 From: archmoj Date: Sat, 17 Jul 2021 10:20:44 -0400 Subject: [PATCH 5/5] update log for PR 5771 --- draftlogs/5771_fix.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/draftlogs/5771_fix.md b/draftlogs/5771_fix.md index 675baf8fe8a..12466352283 100644 --- a/draftlogs/5771_fix.md +++ b/draftlogs/5771_fix.md @@ -1 +1,2 @@ - - Clickable legend group titles [[#5771](https://github.com/plotly/plotly.js/pull/5771)] + - Allow clickable legend group titles when group has no pie-like traces [[#5771](https://github.com/plotly/plotly.js/pull/5771)] +