Closed
Description
So I've set up my graph to have a fixed width for hover labels, and it was a real PITA to get to this now,
I'm using the angular library, but basically, I set a manual tbbwidth in createHoverText
, changing
var tbb = tx.node().getBoundingClientRect();
var htx = d.xa._offset + (d.x0 + d.x1) / 2;
var hty = d.ya._offset + (d.y0 + d.y1) / 2;
var dx = Math.abs(d.x1 - d.x0);
var dy = Math.abs(d.y1 - d.y0);
var txTotalWidth = tbb.width + HOVERARROWSIZE + HOVERTEXTPAD + tx2width;
var anchorStartOK, anchorEndOK;
d.ty0 = outerTop - tbb.top;
d.bx = tbb.width + 2 * HOVERTEXTPAD;
d.by = Math.max(tbb.height + 2 * HOVERTEXTPAD, tx2height);
d.anchor = 'start';
d.txwidth = tbb.width;
d.tx2width = tx2width;
d.offset = 0;
To,
var tbb = tx.node().getBoundingClientRect();
var htx = d.xa._offset + (d.x0 + d.x1) / 2;
var hty = d.ya._offset + (d.y0 + d.y1) / 2;
var dx = Math.abs(d.x1 - d.x0);
var dy = Math.abs(d.y1 - d.y0);
var tbbwidth = 385;
var txTotalWidth = tbbwidth + HOVERARROWSIZE + HOVERTEXTPAD + tx2width;
var anchorStartOK, anchorEndOK;
d.tbbwidth = tbb.width;
d.ty0 = outerTop - tbb.top;
d.bx = tbbwidth + 2 * HOVERTEXTPAD;
d.by = Math.max(tbb.height + 2 * HOVERTEXTPAD, tx2height);
d.anchor = 'start';
d.txwidth = tbbwidth;
d.tx2width = tx2width;
d.offset = 0;
And in alignHoverText
(my local version is 1.45.3),
tx.call(svgTextUtils.positionText,
txx + offsetX, offsetY + d.ty0 - d.by / 2 + HOVERTEXTPAD);
To,
tx.call(svgTextUtils.positionText,
(txx < 0 ? -(d.bx - d.tbbwidth) : txx) + offsetX,
offsetY + d.ty0 - d.by / 2 + HOVERTEXTPAD);
I'd love to have this feature myself for graphs like this, and more - and would really appreciate some advice as to what would be the best method to submit a PR.