Skip to content

Commit 16adaac

Browse files
author
Daniel Gröger
committed
use more descriptive variable names
1 parent 8805949 commit 16adaac

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

src/components/fx/hover.js

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1549,20 +1549,20 @@ function hoverAvoidOverlaps(hoverLabels, rotateLabels, fullLayout, commonLabel)
15491549
}
15501550
var pmin = 0;
15511551
var pmax = (axIsX ? fullLayout.width : fullLayout.height);
1552+
// in hovermode avoid overlap between hover labels and axis label
15521553
if(fullLayout.hovermode === 'x' || fullLayout.hovermode === 'y') {
15531554
// extent of rect behind hover label on cross axis (without arrow):
15541555
var offsets = getHoverLabelOffsets(d, rotateLabels);
1555-
var shiftX = getLabelShiftX(d);
1556+
var shiftX = getTextShiftX(d);
15561557
// calculation based on alignHoverText function
1557-
var offsetRectX = (shiftX.x2x + (shiftX.alignShift - 1) * d.tx2width / 2 + offsets.x) * fullLayout._invScaleX;
1558+
var offsetRectX = (shiftX.text2ShiftX + (shiftX.alignShift - 1) * d.tx2width / 2 + offsets.x) * fullLayout._invScaleX;
15581559
var offsetRectY = (offsets.y - d.by / 2 - 1) * fullLayout._invScaleY;
15591560

15601561
var labelMin = d.crossPos + (axIsX ? offsetRectY : offsetRectX);
15611562
var labelMax = labelMin + (axIsX ? d.tx2width * fullLayout._invScaleX : (d.by + 2) * fullLayout._invScaleY);
15621563
if(axIsX) {
1563-
// at least 1 pixel overlap
15641564
if(axisLabelMinY !== undefined && axisLabelMaxY !== undefined && Math.min(labelMax, axisLabelMaxY) - Math.max(labelMin, axisLabelMinY) > 1) {
1565-
// has overlap with axis label
1565+
// has at least 1 pixel overlap with axis label
15661566
if(crossAx.side === 'left') {
15671567
pmin = crossAx._mainLinePosition;
15681568
pmax = fullLayout.width;
@@ -1571,9 +1571,8 @@ function hoverAvoidOverlaps(hoverLabels, rotateLabels, fullLayout, commonLabel)
15711571
}
15721572
}
15731573
} else {
1574-
// at least 1 pixel overlap
15751574
if(axisLabelMinX !== undefined && axisLabelMaxX !== undefined && Math.min(labelMax, axisLabelMaxX) - Math.max(labelMin, axisLabelMinX) > 1) {
1576-
// has overlap with axis label
1575+
// has at least 1 pixel overlap with axis label
15771576
if(crossAx.side === 'top') {
15781577
pmin = crossAx._mainLinePosition;
15791578
pmax = fullLayout.height;
@@ -1751,21 +1750,24 @@ function getHoverLabelOffsets(hoverLabel, rotateLabels) {
17511750
};
17521751
}
17531752

1754-
function getLabelShiftX(hoverLabel) {
1753+
/**
1754+
* Calculate the shift in x for text and text2 elements
1755+
*/
1756+
function getTextShiftX(hoverLabel) {
17551757
var alignShift = {start: 1, end: -1, middle: 0}[hoverLabel.anchor];
1756-
var txx = alignShift * (HOVERARROWSIZE + HOVERTEXTPAD);
1757-
var tx2x = txx + alignShift * (hoverLabel.txwidth + HOVERTEXTPAD);
1758+
var textShiftX = alignShift * (HOVERARROWSIZE + HOVERTEXTPAD);
1759+
var text2ShiftX = textShiftX + alignShift * (hoverLabel.txwidth + HOVERTEXTPAD);
17581760

17591761
var isMiddle = hoverLabel.anchor === 'middle';
17601762
if(isMiddle) {
1761-
txx -= hoverLabel.tx2width / 2;
1762-
tx2x += hoverLabel.txwidth / 2 + HOVERTEXTPAD;
1763+
textShiftX -= hoverLabel.tx2width / 2;
1764+
text2ShiftX += hoverLabel.txwidth / 2 + HOVERTEXTPAD;
17631765
}
17641766

17651767
return {
17661768
alignShift: alignShift,
1767-
xx: txx,
1768-
x2x: tx2x
1769+
textShiftX: textShiftX,
1770+
text2ShiftX: text2ShiftX
17691771
};
17701772
}
17711773

@@ -1782,7 +1784,7 @@ function alignHoverText(hoverLabels, rotateLabels, scaleX, scaleY) {
17821784
var tx = g.select('text.nums');
17831785
var anchor = d.anchor;
17841786
var horzSign = anchor === 'end' ? -1 : 1;
1785-
var shiftX = getLabelShiftX(d);
1787+
var shiftX = getTextShiftX(d);
17861788
var offsets = getHoverLabelOffsets(d, rotateLabels);
17871789
var offsetX = offsets.x;
17881790
var offsetY = offsets.y;
@@ -1803,7 +1805,7 @@ function alignHoverText(hoverLabels, rotateLabels, scaleX, scaleY) {
18031805
'V' + pY(offsetY - HOVERARROWSIZE) +
18041806
'Z'));
18051807

1806-
var posX = offsetX + shiftX.xx;
1808+
var posX = offsetX + shiftX.textShiftX;
18071809
var posY = offsetY + d.ty0 - d.by / 2 + HOVERTEXTPAD;
18081810
var textAlign = d.textAlign || 'auto';
18091811

@@ -1826,11 +1828,11 @@ function alignHoverText(hoverLabels, rotateLabels, scaleX, scaleY) {
18261828
if(d.tx2width) {
18271829
g.select('text.name')
18281830
.call(svgTextUtils.positionText,
1829-
pX(shiftX.x2x + shiftX.alignShift * HOVERTEXTPAD + offsetX),
1831+
pX(shiftX.text2ShiftX + shiftX.alignShift * HOVERTEXTPAD + offsetX),
18301832
pY(offsetY + d.ty0 - d.by / 2 + HOVERTEXTPAD));
18311833
g.select('rect')
18321834
.call(Drawing.setRect,
1833-
pX(shiftX.x2x + (shiftX.alignShift - 1) * d.tx2width / 2 + offsetX),
1835+
pX(shiftX.text2ShiftX + (shiftX.alignShift - 1) * d.tx2width / 2 + offsetX),
18341836
pY(offsetY - d.by / 2 - 1),
18351837
pX(d.tx2width), pY(d.by + 2));
18361838
}

0 commit comments

Comments
 (0)