8000 unifier hover label: fix positioning, display values · Franciraldo/plotly.js@20ac602 · GitHub
[go: up one dir, main page]

Skip to content

Commit 20ac602

Browse files
committed
unifier hover label: fix positioning, display values
1 parent b4cc343 commit 20ac602

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-9
lines changed

src/components/fx/hover.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
934934
var texts = getHoverLabelText(hoverData[j], true, hovermode, fullLayout, t0);
935935
var text = texts[0];
936936
var name = texts[1];
937-
legendOpts.entries.push({d: hoverData[j], text: text, name: name});
937+
hoverData[j].text = text;
938+
hoverData[j].name = name;
939+
legendOpts.entries.push([hoverData[j]]);
938940
}
939941

940942
// Draw unified hover label
@@ -945,8 +947,8 @@ function createHoverText(hoverData, opts, gd) {
945947
var lx = Lib.mean(hoverData.map(function(c) {return (c.x0 + c.x1) / 2;}));
946948
var legendContainer = container.select('g.legend');
947949
var tbb = legendContainer.node().getBoundingClientRect();
948-
lx += tbb.width;
949-
ly += tbb.height;
950+
lx += xa._offset;
951+
ly += ya._offset - tbb.height / 2;
950952
legendContainer.attr('transform', 'translate(' + lx + ',' + ly + ')');
951953

952954
return legendContainer;

src/components/legend/draw.js

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,13 @@ module.exports = function draw(gd, layer, opts) {
4444
main = true;
4545
opts = fullLayout.legend;
4646
}
47-
var legendData = (!main || fullLayout.showlegend) && getLegendData(gd.calcdata, opts);
47+
var legendData;
48+
if(main) {
49+
legendData = fullLayout.showlegend && getLegendData(gd.calcdata, opts);
50+
} else {
51+
legendData = opts.entries && [opts.entries];
52+
}
53+
4854
var hiddenSlices = fullLayout.hiddenlabels || [];
4955

5056
if(main && (!fullLayout.showlegend || !legendData.length)) {
@@ -372,16 +378,25 @@ function clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {
372378
function drawTexts(g, gd, opts) {
373379
var legendItem = g.data()[0][0];
374380
var fullLayout = gd._fullLayout;
375-
if(!opts) opts = fullLayout.legend;
381+
var main;
382+
if(!opts) {
383+
main = true;
384+
opts = fullLayout.legend;
385+
}
376386
var trace = legendItem.trace;
377387
var isPieLike = Registry.traceIs(trace, 'pie-like');
378388
var traceIndex = trace.index;
379-
var isEditable = gd._context.edits.legendText && !isPieLike;
389+
var isEditable = main && gd._context.edits.legendText && !isPieLike;
380390
var maxNameLength = opts._maxNameLength;
381391

382-
var name = isPieLike ? legendItem.label : trace.name;
383-
if(trace._meta) {
384-
name = Lib.templateString(name, trace._meta);
392+
var name;
393+
if(main) {
394+
name = isPieLike ? legendItem.label : trace.name;
395+
if(trace._meta) {
396+
name = Lib.templateString(name, trace._meta);
397+
}
398+
} else {
399+
name = legendItem.text;
385400
}
386401

387402
var textEl = Lib.ensureSingle(g, 'text', 'legendtext');

0 commit comments

Comments
 (0)
0