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

Tooltip misalignment when using viewBox auto resize #3917

Closed
LMasterGame opened this issue Nov 18, 2024 · 1 comment
Closed

Tooltip misalignment when using viewBox auto resize #3917

LMasterGame opened this issue Nov 18, 2024 · 1 comment
Assignees
Labels

Comments

@LMasterGame
Copy link

Description

The tooltip gets misaligned with the cursor when the viewBox resize option is enabled.
Here is an example screenshot:
image

I already have a workaround for this, which consists of a position function for the tooltip:

tooltip: {
    order: 'desc',
    grouped: true,
    position: function (data, width, height, element, pos) {
        // get root svg from element
        let svg = element;
        while (svg && svg.tagName !== 'svg') {
            svg = svg.parentElement;
        }
        // use jquery to get properties of root svg
        svg = $(svg);
        const viewBox = svg.attr('viewBox').split(' ').map(Number);
        const svgWidth = svg.width();
        const svgHeight  = svg.height();
        // calculate final coordinates
        const scaleX = svgWidth / viewBox[2];
        const scaleY  = svgHeight / viewBox[3];
        let transformedX = pos.xAxis * scaleX;
        const transformedY = pos.y * scaleY;
        if(transformedX + width > svgWidth) {
            // avoid out of bounds
            transformedX -= width;
        }
        return {
            top: transformedY,
            left: transformedX
        };
    },
},

Here is a screenshot while using the position function above:
image

Although i found a solution for myself, it would be great if the tooltip becomes aware of the viewBox scaling.

Steps to check or reproduce

  1. define a chart that uses viewBox resizing:
resize: {
    auto: "viewBox"
}
  1. Scale the SVG so the viewBox size doesn't match the actual SVG size in pixels.
@matwey
Copy link

matwey commented Nov 18, 2024

Same for me, even on the official demo page:
https://naver.github.io/billboard.js/demo/#ChartOptions.resizeViewBox

@netil netil self-assigned this Nov 19, 2024
netil pushed a commit to netil/billboard.js that referenced this issue Nov 19, 2024
- Fix coordinate value translating SVG to DOM
- Adjust tooltip position by its type

Ref naver#3917
@netil netil closed this as completed in 582feb4 Nov 19, 2024
github-actions bot pushed a commit that referenced this issue Nov 26, 2024
## [3.14.2](3.14.1...3.14.2) (2024-11-26)

### Bug Fixes

* **axis:** Fix x axis extent to work ([4d73834](4d73834)), closes [#3768](#3768)
* **tooltip:** Fix tooltip position on viewBox resizing ([582feb4](582feb4)), closes [#3917](#3917)
newkdr added a commit to newkdr/vscode-gitlens that referenced this issue Dec 18, 2024
![snyk-top-banner](https://redirect.github.com/andygongea/OWASP-Benchmark/assets/818805/c518c423-16fe-447e-b67f-ad5a49b5d123)


<h3>Snyk has created this PR to upgrade billboard.js from 3.14.0 to
3.14.2.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.

<hr/>


- The recommended version is **2 versions** ahead of your current
version.

- The recommended version was released on **21 days ago**.



<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>billboard.js</b></summary>
    <ul>
      <li>
<b>3.14.2</b> - <a
href="https://redirect.github.com/naver/billboard.js/releases/tag/3.14.2">2024-11-26</a></br><h2><a
href="https://redirect.github.com/naver/billboard.js/compare/3.14.1...3.14.2">3.14.2</a>
(2024-11-26)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>axis:</strong> Fix x axis extent to work (<a
href="https://redirect.github.com/naver/billboard.js/commit/4d738348ee5c189274d277ce07bd31d626de303d">4d73834</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3768"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3768/hovercard">gitkraken#3768</a></li>
<li><strong>tooltip:</strong> Fix tooltip position on viewBox resizing
(<a
href="https://redirect.github.com/naver/billboard.js/commit/582feb46500a2eaf337a83f225dcebcc4d9317e9">582feb4</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3917"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3917/hovercard">gitkraken#3917</a></li>
</ul>
      </li>
      <li>
<b>3.14.1</b> - <a
href="https://redirect.github.com/naver/billboard.js/releases/tag/3.14.1">2024-11-18</a></br><h2><a
href="https://redirect.github.com/naver/billboard.js/compare/3.14.0...3.14.1">3.14.1</a>
(2024-11-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>point:</strong> fix data.onclick working with sensitivity
function (<a
href="https://redirect.github.com/naver/billboard.js/commit/587d71e9b413d5abd2265a3fb13c3c09914fca80">587d71e</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3912"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3912/hovercard">gitkraken#3912</a></li>
<li><strong>tooltip:</strong> Hide tooltip on redraw when unexpected
error (<a
href="https://redirect.github.com/naver/billboard.js/commit/35406406962c89bac0503800771d96ba2f47f56d">3540640</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3909"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3909/hovercard">gitkraken#3909</a>
<a href="https://redirect.github.com/naver/billboard.js/issues/3910"
data-hovercard-type="pull_request"
data-hovercard-url="/naver/billboard.js/pull/3910/hovercard">gitkraken#3910</a></li>
</ul>
      </li>
      <li>
<b>3.14.0</b> - <a
href="https://redirect.github.com/naver/billboard.js/releases/tag/3.14.0">2024-10-25</a></br><h1><a
href="https://redirect.github.com/naver/billboard.js/compare/3.13.0...3.14.0">3.14.0</a>
(2024-10-25)</h1>
<p>The detailed new feature description can be found at:</p>
<blockquote>
<p><a
href="https://netil.medium.com/billboard-js-3-14-release-viewbox-resizing-e1cb90ee0697"
rel="nofollow">billboard.js 3.14 release: viewBox resizing!</a> (<a
href="https://dev.to/netil/billboardjs-314-release-viewbox-resizing-p6e"
rel="nofollow">dev.to link</a>)</p>
</blockquote>
<h3>Bug Fixes</h3>
<ul>
<li><strong>axis:</strong> fix error when showing tick only (<a
href="https://redirect.github.com/naver/billboard.js/commit/705947f635807e359c5c2f869a7d906e2315a01a">705947f</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3881"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3881/hovercard">gitkraken#3881</a></li>
<li><strong>bar:</strong> fix representation of radius for small data
(<a
href="https://redirect.github.com/naver/billboard.js/commit/91b5dca91a86779b0c808e3498d85dcb93ab5f0e">91b5dca</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3903"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3903/hovercard">gitkraken#3903</a></li>
<li><strong>event:</strong> Fix interaction with viewBox (<a
href="https://redirect.github.com/naver/billboard.js/commit/243bf3cf10a7d3b4b0f668240168e4b2d9ba1eba">243bf3c</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3414"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3414/hovercard">gitkraken#3414</a></li>
<li><strong>input:</strong> Fix touch/mouse input detection (<a
href="https://redirect.github.com/naver/billboard.js/commit/3d4392ac51dca1947c6380329f7c6a6e0b3a497a">3d4392a</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3854"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3854/hovercard">#3854</a></li>
<li><strong>point:</strong> fix sensitivity error when blank area is
clicked (<a
href="https://redirect.github.com/naver/billboard.js/commit/00607861a96826b2e1c9fec37159065680ff278e">0060786</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3900"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3900/hovercard">#3900</a></li>
<li><strong>scale:</strong> Fix non-shape's element positioned
accurately (<a
href="https://redirect.github.com/naver/billboard.js/commit/216141bd6a415752fbb31ba3016188b20401f5b0">216141b</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3907"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3907/hovercard">#3907</a></li>
<li><strong>size:</strong> Fix legend overflows with padding fit mode
(<a
href="https://redirect.github.com/naver/billboard.js/commit/8357d1161fa132a6d788c1349dee1f7e99eedf39">8357d11</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3872"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3872/hovercard">gitkraken#3872</a></li>
<li><strong>zoom:</strong> Fix unzoom after dynamic data load (<a
href="https://redirect.github.com/naver/billboard.js/commit/385907e5cbab1af52b63f9a2987a302d479fe332">385907e</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3878"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3878/hovercard">gitkraken#3878</a></li>
<li><strong>zoom:</strong> Prevent error for out of range (<a
href="https://redirect.github.com/naver/billboard.js/commit/6f69e970bd31fdd9d353854c54437c2a9c95e269">6f69e97</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3895"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3895/hovercard">gitkraken#3895</a></li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>axis:</strong> Intent to ship axis.evalTextSize (<a
href="https://redirect.github.com/naver/billboard.js/commit/87048e9258d521ffb4da7b98a167e184fe3489a3">87048e9</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3889"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3889/hovercard">gitkraken#3889</a></li>
<li><strong>interaction:</strong> Intent to ship interaction.onout (<a
href="https://redirect.github.com/naver/billboard.js/commit/9c668e688624e0003d6dca6ea00fcf79a3f1b782">9c668e6</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3887"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3887/hovercard">gitkraken#3887</a></li>
<li><strong>legend:</strong> Pass visibility state to legend item's
event callback (<a
href="https://redirect.github.com/naver/billboard.js/commit/ba71911b7c4b47b95f0b1e2bf8f12138d5b31cb1">ba71911</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3897"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3897/hovercard">gitkraken#3897</a></li>
<li><strong>render:</strong> Add forced init option on lazy rendering
(<a
href="https://redirect.github.com/naver/billboard.js/commit/218ce4608dd7da7a5288bce1c6f95d71d8aa9c5f">218ce46</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3106"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3106/hovercard">gitkraken#3106</a></li>
<li><strong>resize:</strong> Intent to ship resize.auto='viewBox' (<a
href="https://redirect.github.com/naver/billboard.js/commit/db213873e2959b7c24c44f1330ec86af801406e8">db21387</a>),
closes <a
href="https://redirect.github.com/naver/billboard.js/issues/3893"
data-hovercard-type="issue"
data-hovercard-url="/naver/billboard.js/issues/3893/hovercard">gitkraken#3893</a></li>
</ul>
      </li>
    </ul>
from <a
href="https://redirect.github.com/naver/billboard.js/releases">billboard.js
GitHub release notes</a>
  </details>
</details>

---

> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.

---

**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._

**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJkY2EwZTViMC1mNjdhLTQwZDMtODQwOS05ZDMxYWU5ZDY4YzkiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImRjYTBlNWIwLWY2N2EtNDBkMy04NDA5LTlkMzFhZTlkNjhjOSJ9fQ=="
width="0" height="0"/>

> - 🧐 [View latest project
report](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17/settings/integration?pkg&#x3D;billboard.js&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"billboard.js","from":"3.14.0","to":"3.14.2"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"dca0e5b0-f67a-40d3-8409-9d31ae9d68c9","prPublicId":"dca0e5b0-f67a-40d3-8409-9d31ae9d68c9","packageManager":"npm","priorityScoreList":[],"projectPublicId":"12a8a5f5-3e19-438c-8280-eb8f4ee06d17","projectUrl":"https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17?utm_source=github&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":2,"publishedDate":"2024-11-26T05:44:58.122Z"},"vulns":[]}'
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

3 participants