vega-tooltip icon indicating copy to clipboard operation
vega-tooltip copied to clipboard

Support positioning relative to marks

Open domoritz opened this issue 6 years ago • 15 comments

  • 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

domoritz avatar Apr 25 '18 15:04 domoritz

https://github.com/elastic/eui/blob/ff9d5aa29d7ce5cd48b8f331d7d417767c2c123e/src/services/popover/calculate_popover_position.js

domoritz avatar Apr 25 '18 16:04 domoritz

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)

nyurik avatar Apr 27 '18 04:04 nyurik

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 avatar Apr 27 '18 23:04 pelotom

@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.

nyurik avatar Apr 27 '18 23:04 nyurik

@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).

domoritz avatar Apr 27 '18 23:04 domoritz

Ah, I just filed an issue for it: https://github.com/vega/vega/issues/1263. Good to hear it's already being planned!

pelotom avatar Apr 27 '18 23:04 pelotom

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.

nyurik avatar Apr 28 '18 02:04 nyurik

Vega 4rc is out and so we can fix this now using getItemBoundingClientRect.

domoritz avatar May 08 '18 00:05 domoritz

any updates here?

ifokeev avatar Oct 13 '18 21:10 ifokeev

I’d love to review a PR. It should be fairly straightforward to implement.

domoritz avatar Oct 13 '18 21:10 domoritz

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.

bkfarnsworth avatar Dec 23 '18 01:12 bkfarnsworth

I'd like to pop up a tooltip locked to the mark without following the cursor. Is this possible right now?

Shians avatar Jul 23 '20 03:07 Shians

That's what this issue is about. Not, it's not implemented yet.

domoritz avatar Jul 23 '20 06:07 domoritz