vega-tooltip
vega-tooltip copied to clipboard
Support positioning relative to marks
- Support both positionings relative to mark and to the cursor.
- Define relative offsets for both cases.
- For positioning relative to marks, let us define where the tooltip is (top, left, right, bottom).
- For positioning relative to marks, we should have a maximum distance after which we position the tooltip relative to the cursor.
@nyurik implemented something like this in kibana. https://github.com/elastic/kibana/pull/17632/files
https://github.com/elastic/eui/blob/ff9d5aa29d7ce5cd48b8f331d7d417767c2c123e/src/services/popover/calculate_popover_position.js
Here's the implementation using our positioning library - see construction of the clientRect https://github.com/nyurik/kibana/blob/c81fff3671cf40b86b1a368115b3852c0f9d8af3/src/core_plugins/vega/public/vega_view/vega_tooltip.js#L55 (note that it supports both the x,y mouse and mark. This is important because some marks may be too big to be used for centering)
Does this issue cover restoring the ability to have the tooltip follow the mouse as it moves? Currently it doesn't seem possible to do that with a view.tooltip(...)
handler, because it only gets invoked once on entry and not when moving the mouse around on top of a mark element.
@pelotom no, that would be a different issue with Vega itself. This tooltip opens up only when Vega tells it to open - basically it is a simple replacement for the built-in (drawn on canvas) tooltip.
@jheer mentioned that the next version of Vega will fire tooltip events as the cursor moves. With that, we will get the old behavior back (which I agree is preferred).
Ah, I just filed an issue for it: https://github.com/vega/vega/issues/1263. Good to hear it's already being planned!
Should it be up to the handler to determine if the last value is the same object as the current one? It might get tricky if the data itself changes inside the object. I wouldn't want to keep flashing the tooltip if the value is not changing.
Vega 4rc is out and so we can fix this now using getItemBoundingClientRect.
any updates here?
I’d love to review a PR. It should be fairly straightforward to implement.
It would also be great if this allowed clicking on a link inside the tooltip. Right now you can't have a link inside vega tooltips because they will immediately reposition if you try to move the mouse to click on it.
I'd like to pop up a tooltip locked to the mark without following the cursor. Is this possible right now?
That's what this issue is about. Not, it's not implemented yet.