feat: Make hover label triangle optional#7451
Conversation
|
@emilykl |
|
@archmoj not quite ready for review but I'll merge |
1126715 to
63e44ab
Compare
| 'V' + pY(offsetY - HOVERARROWSIZE) + | ||
| 'Z')); | ||
| pathStr = 'M0,0L' + pX(horzSign * HOVERARROWSIZE + offsetX) + ',' + pY(HOVERARROWSIZE + offsetY) + | ||
| 'v' + pY(d.by / 2 - HOVERARROWSIZE) + |
There was a problem hiding this comment.
@gvwilson Coming up with the new SVG path string with no arrow was Claude Code's only helpful contribution to this PR (but it's a doozy, so, worth it)
|
@archmoj This is ready for review. A couple questions for you —
|
One could possibly add arrayOk to the Line 89 in 2cac1b1 For this PR I don't see a strong use case for that option. So IMHO it's a good idea to set arrayOk to false as you did.
|
We could handle this option for parcats as follow: hoverItems.trace._hoverlabel = {showarrow: false};before calling Then make the following change var showArrow = (d.trace._hoverlabel || d.trace.hoverlabel)?.showarrow; |
|
In addition to |
Oh that's clever, I like that. Maybe for another PR. It would be cool too if we could just support all the |
|
Instead of the solution proposed above, exports.loneHover = function loneHover(hoverItems, opts) {
...
var gd = opts.gd; |
camdecoster
left a comment
There was a problem hiding this comment.
This looks good to me. I left some suggested feedback for you to consider.
| pathStr = 'M-' + pX(d.bx / 2 + d.tx2width / 2) + ',' + pY(offsetY - d.by / 2) + | ||
| 'h' + pX(d.bx) + 'v' + pY(d.by) + 'h-' + pX(d.bx) + 'Z'; |
There was a problem hiding this comment.
Would you be up for using a template literal here and elsewhere?
| pathStr = 'M-' + pX(d.bx / 2 + d.tx2width / 2) + ',' + pY(offsetY - d.by / 2) + | |
| 'h' + pX(d.bx) + 'v' + pY(d.by) + 'h-' + pX(d.bx) + 'Z'; | |
| pathStr = `M-${pX(d.bx / 2 + d.tx2width / 2)},${pY(offsetY - d.by / 2)}h${pX(d.bx)}v${pY(d.by)}h-${pX(d.bx)}Z`; |
There was a problem hiding this comment.
We could leave refactoring for another PR.
Template literal may run slower: https://jsperf.app/es6-string-literals-vs-string-concatenation/43
There was a problem hiding this comment.
Have you seen any issues with this kind of calculation? I imagine that most computers are powerful enough where this isn't an issue.
Co-authored-by: Cameron DeCoster <[email protected]>
@emilykl Wondering if you tried this solution to fix the parcats and sankey traces? |
I did, but I didn't like the complexity of the if/else logic it required. It felt like building a parallel system for logic that is already handled for traces which support |


Closes #7278
Adds
trace.hoverlabel.showarrowandlayout.hoverlabel.showarrowattributes (default:true) to enable hiding the triangular carat on the hover text box.Also adds a Jasmine test for the new attributes.
With

showarrow: true(default; same as current behavior):With

showarrow: false: