Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regions block tooltip #2067

Closed
adschm opened this issue Apr 29, 2021 · 4 comments
Closed

Regions block tooltip #2067

adschm opened this issue Apr 29, 2021 · 4 comments
Labels

Comments

@adschm
Copy link
Contributor

adschm commented Apr 29, 2021

Setup:

  • Line-plot with timeseries x data
  • Regions based on x-values
  • default tooltip

Problem:

  • The tooltip is not available for data-points "behind" the regions

This can be easily fixed by adding pointer-events: none to the .bb-region class or a custom class used for the regions.

Having solved this locally, I wonder what would be a good approach to address this by default:

  1. Put regions "behind" the other plots. To me this would be the better option anyway, as this also allows to still see the plots when opacity for the regions is 1.
  2. Have pointer-events: none for regions by default. The number of people wanting to use a tooltip inside regions might be much bigger than those wanting to bind a pointer-event to a region itself. However, having this setting differently by default for specific elements might still be counter-intuitive for the few that want to do the latter.
  3. Keep the current state. While not optimal, the issue is easy to fix locally and we won't break behavior for existing setups. However, tooltip is broken for default new users in the scenario as described.

Further setup background:
D3 v6.7.0, billboard 3.0.3, data via json url, multi y, single x, regions are set separately by chart3.regions(data); from another json

@netil
Copy link
Member

netil commented May 4, 2021

Hi @adschm, the current implementation make regions' <rect> elements to be positioned behind the chart elements.

I made an simple timeseries example with x Axis based region.

As you can see the <rect> element is behind the line's <path> element.

Can you share reproducible example code?

@netil netil added the question label May 4, 2021
@adschm
Copy link
Contributor Author

adschm commented May 10, 2021

The difference in my scenario is that I load the regions separately after the chart, i.e. I first set up the chart and then just call chart.regions(data) later. The separate commands are necessary as I need to show or not show regions based on user choice (which also involves loading additional data).

This is easily reproducible based on your example by just having the regions loaded separately:
https://jsfiddle.net/adschm/9sbegdfn/2/

-> Now the tooltip is blocked.

(This is my first time creating anything with jsfiddle, so I hope the link is working).

@netil netil added bug and removed question labels May 11, 2021
@netil
Copy link
Member

netil commented May 11, 2021

@adschm confirmed the issue. I'll do the fix.

netil added a commit to netil/billboard.js that referenced this issue May 11, 2021
- Insert regions's <g> node to be positioned behind the chart's graph nodes
- Set webpack output.publicPath option due to the webpack-dev-server option remove

Ref naver#2067
@netil netil closed this as completed in 2b50443 May 11, 2021
@adschm
Copy link
Contributor Author

adschm commented May 17, 2021

Fix confirmed. Thanks for taking care.

github-actions bot pushed a commit that referenced this issue Jun 25, 2021
# [3.1.0](3.0.3...3.1.0) (2021-06-25)

### Bug Fixes

* **axis:** Fix axis.x.padding value setting ([5b4b509](5b4b509)), closes [#2038](#2038)
* **axis:** fix handling x padding value ([489d47a](489d47a)), closes [#2038](#2038)
* **candlestick:** fix to set expand state ([a055b20](a055b20)), closes [#2036](#2036)
* **Chart:** Handle nullish properties from API extendings safely ([6cbf64a](6cbf64a)), closes [#2132](#2132) [#2134](#2134)
* **data:** Fix duplicated data.onclick call  ([b4c5dc2](b4c5dc2)), closes [#2104](#2104)
* **data:** Fix nullish data filtering for grouped data ([af19370](af19370)), closes [#2096](#2096)
* **gauge:** Fix incorrect rendering when gauge.min is given ([31fc981](31fc981)), closes [#2123](#2123)
* **point:** Fix custom point for nullish data ([8c198f2](8c198f2)), closes [#2107](#2107)
* **region:** fix region append position ([2b50443](2b50443)), closes [#2067](#2067)
* **size:** enhance applying height value ([0664a60](0664a60)), closes [#2086](#2086)
* **tooltip:** Correct the type of selectedData ([05b694d](05b694d)), closes [#2056](#2056) [#2058](#2058)
* **types:** fix missing candlestick export ([f218939](f218939)), closes [#2007](#2007)
* **types:** updated bar/candlestick options types ([d89c3f3](d89c3f3)), closes [#2043](#2043)
* **zoom:** Fix incorrect tooltip position ([689bfdf](689bfdf)), closes [#2095](#2095)
* **zoom,grid:** fix grid line pos during zoom ([e84a4f1](e84a4f1)), closes [#2156](#2156)

### Features

* **all:** contain inline css prop setting ([fde6a89](fde6a89)), closes [#2076](#2076)
* **api:** Intent to ship append load ([8076795](8076795)), closes [#2140](#2140)
* **data:** Intent to ship data.onshown/onhidden ([af98eb7](af98eb7)), closes [#2146](#2146)
* **data.labels:** Intent to ship data.labels.backgroundColors ([e0b2fed](e0b2fed)), closes [#1954](#1954)
* **subchart:** Intent to ship subchart.init.range option ([967bf1b](967bf1b)), closes [#2037](#2037)
* **subchart:** Intent to ship subchart.showHandle ([219bff3](219bff3)), closes [#2044](#2044)
netil pushed a commit that referenced this issue Jun 25, 2021
* **Chart:** Handle nullish properties from API extendings safely ([6cbf64a](6cbf64a)), closes [#2132](#2132) [#2134](#2134)
* **data:** Fix duplicated data.onclick call  ([b4c5dc2](b4c5dc2)), closes [#2104](#2104)
* **data:** Fix nullish data filtering for grouped data ([af19370](af19370)), closes [#2096](#2096)
* **gauge:** Fix incorrect rendering when gauge.min is given ([31fc981](31fc981)), closes [#2123](#2123)
* **point:** Fix custom point for nullish data ([8c198f2](8c198f2)), closes [#2107](#2107)
* **region:** fix region append position ([2b50443](2b50443)), closes [#2067](#2067)
* **size:** enhance applying height value ([0664a60](0664a60)), closes [#2086](#2086)
* **tooltip:** Correct the type of selectedData ([05b694d](05b694d)), closes [#2056](#2056) [#2058](#2058)
* **zoom:** Fix incorrect tooltip position ([689bfdf](689bfdf)), closes [#2095](#2095)
* **zoom,grid:** fix grid line pos during zoom ([e84a4f1](e84a4f1)), closes [#2156](#2156)

* **all:** contain inline css prop setting ([fde6a89](fde6a89)), closes [#2076](#2076)
* **api:** Intent to ship append load ([8076795](8076795)), closes [#2140](#2140)
* **data:** Intent to ship data.onshown/onhidden ([af98eb7](af98eb7)), closes [#2146](#2146)
* **data.labels:** Intent to ship data.labels.backgroundColors ([e0b2fed](e0b2fed)), closes [#1954](#1954)
* **subchart:** Intent to ship subchart.init.range option ([967bf1b](967bf1b)), closes [#2037](#2037)
* **subchart:** Intent to ship subchart.showHandle ([219bff3](219bff3)), closes [#2044](#2044)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants