Skip to content

Commit

Permalink
adjust hover positions on parcats category bands in respect to css tr…
Browse files Browse the repository at this point in the history
…ansforms
  • Loading branch information
archmoj committed Nov 18, 2020
1 parent 28a9178 commit a2f34c9
Showing 1 changed file with 17 additions and 11 deletions.
28 changes: 17 additions & 11 deletions src/traces/parcats/parcats.js
Original file line number Diff line number Diff line change
Expand Up @@ -765,7 +765,10 @@ function emitPointsEventColorHovermode(bandElement, eventName, event) {
* HTML element for band
*
*/
function createHoverLabelForCategoryHovermode(rootBBox, bandElement) {
function createHoverLabelForCategoryHovermode(gd, rootBBox, bandElement) {
var scaleX = gd._fullLayout._inverseScaleX;
var scaleY = gd._fullLayout._inverseScaleY;

// Selections
var rectSelection = d3.select(bandElement.parentNode).select('rect.catrect');
var rectBoundingBox = rectSelection.node().getBoundingClientRect();
Expand Down Expand Up @@ -813,8 +816,8 @@ function createHoverLabelForCategoryHovermode(rootBBox, bandElement) {
var hovertext = hoverinfoParts.join('<br>');
return {
trace: trace,
x: hoverCenterX - rootBBox.left,
y: hoverCenterY - rootBBox.top,
x: scaleX * (hoverCenterX - rootBBox.left),
y: scaleY * (hoverCenterY - rootBBox.top),
text: hovertext,
color: 'lightgray',
borderColor: 'black',
Expand Down Expand Up @@ -843,15 +846,15 @@ function createHoverLabelForCategoryHovermode(rootBBox, bandElement) {
* HTML element for band
*
*/
function createHoverLabelForDimensionHovermode(rootBBox, bandElement) {
function createHoverLabelForDimensionHovermode(gd, rootBBox, bandElement) {
var allHoverlabels = [];

d3.select(bandElement.parentNode.parentNode)
.selectAll('g.category')
.select('rect.catrect')
.each(function() {
var bandNode = this;
allHoverlabels.push(createHoverLabelForCategoryHovermode(rootBBox, bandNode));
allHoverlabels.push(createHoverLabelForCategoryHovermode(gd, rootBBox, bandNode));
});

return allHoverlabels;
Expand All @@ -866,7 +869,10 @@ function createHoverLabelForDimensionHovermode(rootBBox, bandElement) {
* HTML element for band
*
*/
function createHoverLabelForColorHovermode(rootBBox, bandElement) {
function createHoverLabelForColorHovermode(gd, rootBBox, bandElement) {
var scaleX = gd._fullLayout._inverseScaleX;
var scaleY = gd._fullLayout._inverseScaleY;

var bandBoundingBox = bandElement.getBoundingClientRect();

// Models
Expand Down Expand Up @@ -944,8 +950,8 @@ function createHoverLabelForColorHovermode(rootBBox, bandElement) {

return {
trace: trace,
x: hoverCenterX - rootBBox.left,
y: hoverCenterY - rootBBox.top,
x: scaleX * (hoverCenterX - rootBBox.left),
y: scaleY * (hoverCenterY - rootBBox.top),
// name: 'NAME',
text: hovertext,
color: bandViewModel.color,
Expand Down Expand Up @@ -1008,11 +1014,11 @@ function mouseoverCategoryBand(bandViewModel) {
if(bandViewModel.parcatsViewModel.hoverinfoItems.indexOf('none') === -1) {
var hoverItems;
if(hoveron === 'category') {
hoverItems = createHoverLabelForCategoryHovermode(rootBBox, bandElement);
hoverItems = createHoverLabelForCategoryHovermode(gd, rootBBox, bandElement);
} else if(hoveron === 'color') {
hoverItems = createHoverLabelForColorHovermode(rootBBox, bandElement);
hoverItems = createHoverLabelForColorHovermode(gd, rootBBox, bandElement);
} else if(hoveron === 'dimension') {
hoverItems = createHoverLabelForDimensionHovermode(rootBBox, bandElement);
hoverItems = createHoverLabelForDimensionHovermode(gd, rootBBox, bandElement);
}

if(hoverItems) {
Expand Down

0 comments on commit a2f34c9

Please sign in to comment.