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

formatting tooltip value for ranged bars #3371

Closed
michkami opened this issue Aug 24, 2023 · 2 comments
Closed

formatting tooltip value for ranged bars #3371

michkami opened this issue Aug 24, 2023 · 2 comments
Assignees
Labels

Comments

@michkami
Copy link
Collaborator

Description

When using ranged bars, the value format function for tooltip gets called 3 times:

  1. In the first call the callback receives the value array, ratio, data name and the x axis index:
    grafik
  2. In the second call the callback only receives the start value:
    grafik
  3. In the third call the callback only receives the end value:
    grafik

In my case I use specific value formattings that depend on the additional information that i get in the first call: data name and x axis index
Is there any specific reason why the additional informations isn't passed to the callback in internals/tooltip.ts or can you fix this easily?
grafik

In some callbacks the values are specified as number, but it doesn't consider using ranged bars where the value can also be an array of numbers:

  • tooltip.format.value
  • data.labels.format
  • data.labels.position
  • maybe more types?

Btw. ranged bars work very well for the waterfall chart, thanks for the hint (didn't want to reopen the issue to say thank you ^^)

Steps to check or reproduce

  1. Open https://jsfiddle.net/michkami/mgka1n38/
  2. Hover over any bar.
  3. Check console:
    grafik
@netil
Copy link
Member

netil commented Aug 25, 2023

@michkami, usually "formatter" function can be called multiple times due to the dimension calculation at the initialization.
There's no way to get the text returned from the formatter without executing it.

BTW, I'll be checking your case. Thanks for the report.

@netil
Copy link
Member

netil commented Aug 31, 2023

After reviewing the code, found inconsistency on call of tooltip.format.value callback.

Is there any specific reason why the additional informations isn't passed to the callback in internals/tooltip.ts or can you fix this easily?

As you mentioned, on that call it should call format function with id & index value parameters.
To make consistent on value formatter call, will be fixed as:

  • formatter function will be called on every value unit.
    • this means, when is ranged data(as the above example), formatter will be called on each value.
    • So when ranged data is array(ex. [100, 250]), formatter will be called twice with each value as value parameter for formatter.
    // for ranged value: [100, 250]
    tooltip.format.value = function(value, ratio, id, index) {
        // first call with arguments: 100 undefined 'data1' 1
        // second call with arguments: 250 undefined 'data1' 1
       return value;
    }
    image

@netil netil self-assigned this Aug 31, 2023
netil pushed a commit to netil/billboard.js that referenced this issue Aug 31, 2023
- Unify the call of sanitize for all formatter function
- Fix the unnecessary call and pass correct arguments for bar range type

Ref naver#3371
@netil netil closed this as completed in f7d587d Aug 31, 2023
github-actions bot pushed a commit that referenced this issue Sep 4, 2023
# [3.10.0-next.1](3.9.3...3.10.0-next.1) (2023-09-04)

### Bug Fixes

* **api:** Fix to return indexed categories ([55c17c6](55c17c6)), closes [#3365](#3365)
* **bar:** Fix stacking bar position on multiple xs ([216da62](216da62)), closes [#3372](#3372)
* **candlestick:** Fix rendering on rotated axis ([17f5058](17f5058)), closes [#3387](#3387)
* **clip:** Fix x axis hide on title.bottom ([beec1bb](beec1bb)), closes [#3364](#3364)
* **shape:** Fix circleY() undefined error ([f4ac3f1](f4ac3f1)), closes [#3388](#3388)
* **subchart, zoom:** Fix returning domain value ([90338ec](90338ec)), closes [#3347](#3347)
* **subchart:** Fix handlebar position ([b897cbb](b897cbb)), closes [#3358](#3358)
* **title:** fix title text center align ([b254a61](b254a61)), closes [#3363](#3363)
* **tooltip:** Fix tooltip.format.value call ([f7d587d](f7d587d)), closes [#3371](#3371)
* **tooltip:** Fix tootip display on tooltip.init ([98e6f8b](98e6f8b)), closes [#3369](#3369)

### Features

* **api:** Intent to ship subchart method ([976f04a](976f04a)), closes [#3342](#3342)
* **module:** Support dual CJS/ESM package ([437c007](437c007)), closes [#2202](#2202)
* **plugin:** Intent to ship TableView plugin ([215b611](215b611)), closes [#1873](#1873)
* **regions:** Intent to ship regions.label ([b4e3bc2](b4e3bc2)), closes [#3319](#3319)
netil added a commit that referenced this issue Sep 5, 2023
- Unify the call of sanitize for all formatter function
- Fix the unnecessary call and pass correct arguments for bar range type

Fix #3371
github-actions bot pushed a commit that referenced this issue Sep 8, 2023
# [3.10.0-next.2](3.10.0-next.1...3.10.0-next.2) (2023-09-08)

### Bug Fixes

* **api:** Fix to return indexed categories ([1209138](1209138)), closes [#3365](#3365)
* **bar:** Fix stacking bar position on multiple xs ([674bad1](674bad1)), closes [#3372](#3372)
* **candlestick:** Fix rendering on rotated axis ([fe4c04b](fe4c04b)), closes [#3387](#3387)
* **clip:** Fix x axis hide on title.bottom ([d00052c](d00052c)), closes [#3364](#3364)
* **point:** Fix rendering error when point.focus.only=true is set ([787fd15](787fd15)), closes [#3406](#3406)
* **shape:** Fix circleY() undefined error ([d245853](d245853)), closes [#3388](#3388)
* **subchart, zoom:** Fix returning domain value ([321510b](321510b)), closes [#3347](#3347)
* **subchart:** Fix handlebar position ([83ef6d0](83ef6d0)), closes [#3358](#3358)
* **title:** fix title text center align ([b0fc214](b0fc214)), closes [#3363](#3363)
* **tooltip:** Fix error throw when tooltip.show=false is set ([4081a90](4081a90)), closes [#3396](#3396)
* **tooltip:** Fix tooltip.format.value call ([2e88484](2e88484)), closes [#3371](#3371)
* **tooltip:** Fix tootip display on tooltip.init ([52083bf](52083bf)), closes [#3369](#3369)

### Features

* **api:** Intent to ship subchart method ([ac9e229](ac9e229)), closes [#3342](#3342)
* **point:** Intent to ship point.radialGradient ([7b51fd6](7b51fd6)), closes [#3405](#3405)
* **regions:** Intent to ship regions.label ([0496ec6](0496ec6)), closes [#3319](#3319)
github-actions bot pushed a commit that referenced this issue Oct 25, 2023
# [3.10.0](3.9.4...3.10.0) (2023-10-25)

### Bug Fixes

* **api:** Fix to return indexed categories ([1209138](1209138)), closes [#3365](#3365)
* **axis:** Fix axis.x.height=0 to be applied ([0c562c3](0c562c3)), closes [#3424](#3424)
* **axis:** Fix x axis tick text overlap with legend ([796671f](796671f)), closes [#3485](#3485)
* **bar:** Fix stacking bar position on multiple xs ([674bad1](674bad1)), closes [#3372](#3372)
* **candlestick:** Fix rendering on rotated axis ([fe4c04b](fe4c04b)), closes [#3387](#3387)
* **clip:** Fix x axis hide on title.bottom ([d00052c](d00052c)), closes [#3364](#3364)
* **domain:** fix trimXDomain not trimming min ([bacc287](bacc287)), closes [#3420](#3420)
* **labels:** Fix index argument for nullish value ([13d1077](13d1077)), closes [#3547](#3547)
* **option:** Fix inconsistency of padding ([694aa34](694aa34)), closes [#3426](#3426)
* **point:** Fix data.onclick not called when point.senstivity is radius ([83b0206](83b0206)), closes [#3466](#3466)
* **point:** Fix pointFucusOnly check error ([f9b65ac](f9b65ac)), closes [#3407](#3407) [#3456](#3456)
* **point:** Fix rendering error when point.focus.only=true is set ([787fd15](787fd15)), closes [#3406](#3406)
* **shape:** Fix circleY() undefined error ([d245853](d245853)), closes [#3388](#3388)
* **subchart, zoom:** Fix returning domain value ([321510b](321510b)), closes [#3347](#3347)
* **subchart:** Fix handlebar position ([83ef6d0](83ef6d0)), closes [#3358](#3358)
* **title:** fix title text center align ([b0fc214](b0fc214)), closes [#3363](#3363)
* **tooltip:** Fix tooltip.format.value call ([2e88484](2e88484)), closes [#3371](#3371)
* **tooltip:** Fix tootip display on tooltip.init ([52083bf](52083bf)), closes [#3369](#3369)
* **tooltip:** Fix wrong .tooltip.show() on rotated axis ([9b90c81](9b90c81)), closes [#3476](#3476)
* **tooltip:** Fix wrong tooltip position with padding option ([041e144](041e144)), closes [#3473](#3473)
* **zoom:** Fix initial error empty data with zoom ([a94d09c](a94d09c)), closes [#3470](#3470)

### Features

* **api:** Intent to ship subchart method ([ac9e229](ac9e229)), closes [#3342](#3342)
* **plugin:** Add nullString option ([29bdb0c](29bdb0c)), closes [#3412](#3412) [#3413](#3413)
* **point:** Intent to ship point.radialGradient ([7b51fd6](7b51fd6)), closes [#3405](#3405)
* **regions:** Intent to ship regions.label ([0496ec6](0496ec6)), closes [#3319](#3319)
* **theme:** Add new modern theme ([b0f1aa7](b0f1aa7))
* **tooltip:** Provide y position for tooltip position callback ([a793a2e](a793a2e)), closes [#3434](#3434)
github-actions bot pushed a commit that referenced this issue Jan 19, 2024
# [3.11.0-next.1](3.10.3...3.11.0-next.1) (2024-01-19)

### Bug Fixes

* **api:** Fix to return indexed categories ([55c17c6](55c17c6)), closes [#3365](#3365)
* **Axis:** Correct x axis height calculation for autorotated x axis tick texts ([d5b5d09](d5b5d09)), closes [#3584](#3584) [#3585](#3585)
* **axis:** Fixed x axis tick texts rotation when legend is positioned right ([ed4703e](ed4703e)), closes [#3570](#3570) [#3571](#3571)
* **bar:** Fix stacking bar position on multiple xs ([216da62](216da62)), closes [#3372](#3372)
* **candlestick:** Fix rendering on rotated axis ([17f5058](17f5058)), closes [#3387](#3387)
* **clip:** Fix x axis hide on title.bottom ([beec1bb](beec1bb)), closes [#3364](#3364)
* **option:** Fix inconsistency of padding ([0c1ce81](0c1ce81)), closes [#3426](#3426)
* **packages:** Fix build error with moduleResolution:bundler ([9c17eea](9c17eea)), closes [#3541](#3541)
* **radar:** Fix axes texts exclusion on resize ([3a814a5](3a814a5)), closes [#3126](#3126)
* **shape:** Fix circleY() undefined error ([f4ac3f1](f4ac3f1)), closes [#3388](#3388)
* **subchart, zoom:** Fix returning domain value ([90338ec](90338ec)), closes [#3347](#3347)
* **subchart:** Fix handlebar position ([b897cbb](b897cbb)), closes [#3358](#3358)
* **title:** fix title text center align ([b254a61](b254a61)), closes [#3363](#3363)
* **tooltip:** Fix tooltip position from interference ([9d28cbb](9d28cbb)), closes [#3575](#3575)
* **tooltip:** Fix tooltip.format.value call ([f7d587d](f7d587d)), closes [#3371](#3371)
* **tooltip:** Fix tootip display on tooltip.init ([98e6f8b](98e6f8b)), closes [#3369](#3369)
* **tooltip:** Fix wrong tooltip selection on browser scroll change ([#3593](#3593)) ([8f80637](8f80637)), closes [#3592](#3592)
* **zoom:** Fix zoom state on data load ([967207b](967207b)), closes [#3422](#3422)

### Features

* **api:** Intent to ship subchart method ([976f04a](976f04a)), closes [#3342](#3342)
* **axis:** Add x.tick.text.inner option ([cfc856c](cfc856c)), closes [#3552](#3552)
* **legend:** Itent to ship legend.format, legend.tooltip ([aecff2f](aecff2f)), closes [#3533](#3533)
* **module:** Support dual CJS/ESM package ([437c007](437c007)), closes [#2202](#2202)
* **plugin:** Intent to ship TableView plugin ([215b611](215b611)), closes [#1873](#1873)
* **regions:** Intent to ship regions.label ([b4e3bc2](b4e3bc2)), closes [#3319](#3319)
github-actions bot pushed a commit that referenced this issue Apr 15, 2024
# [3.12.0-next.1](3.11.3...3.12.0-next.1) (2024-04-15)

### Bug Fixes

* **api:** Fix to return indexed categories ([55c17c6](55c17c6)), closes [#3365](#3365)
* **bar:** Fix stacking bar position on multiple xs ([216da62](216da62)), closes [#3372](#3372)
* **candlestick:** Fix rendering on rotated axis ([17f5058](17f5058)), closes [#3387](#3387)
* **clip:** Fix x axis hide on title.bottom ([beec1bb](beec1bb)), closes [#3364](#3364)
* **option:** Fix inconsistency of padding ([0c1ce81](0c1ce81)), closes [#3426](#3426)
* **shape:** Fix circleY() undefined error ([f4ac3f1](f4ac3f1)), closes [#3388](#3388)
* **subchart, zoom:** Fix returning domain value ([90338ec](90338ec)), closes [#3347](#3347)
* **subchart:** Fix handlebar position ([b897cbb](b897cbb)), closes [#3358](#3358)
* **title:** fix title text center align ([b254a61](b254a61)), closes [#3363](#3363)
* **tooltip:** Fix tooltip.format.value call ([f7d587d](f7d587d)), closes [#3371](#3371)
* **tooltip:** Fix tootip display on tooltip.init ([98e6f8b](98e6f8b)), closes [#3369](#3369)
* **types:** Add missing arc.needle.value ([e0a30fe](e0a30fe)), closes [#3697](#3697)
* **types:** Add missing region.label option ([e03057c](e03057c)), closes [#3732](#3732)

### Features

* **api:** Intent to ship subchart method ([976f04a](976f04a)), closes [#3342](#3342)
* **axis:** Intent to ship axis.tooltip ([54e77cb](54e77cb)), closes [#3603](#3603)
* **bundler:** Migrate babel -> esbuild ([ff0a98c](ff0a98c)), closes [#3601](#3601)
* **module:** Support dual CJS/ESM package ([437c007](437c007)), closes [#2202](#2202)
* **plugin:** Intent to ship TableView plugin ([215b611](215b611)), closes [#1873](#1873)
* **regions:** Intent to ship regions.label ([b4e3bc2](b4e3bc2)), closes [#3319](#3319)
github-actions bot pushed a commit that referenced this issue Jul 25, 2024
# [3.13.0-next.1](3.12.4...3.13.0-next.1) (2024-07-25)

### Bug Fixes

* **api:** Fix to return indexed categories ([55c17c6](55c17c6)), closes [#3365](#3365)
* **bar:** Fix stacking bar position on multiple xs ([216da62](216da62)), closes [#3372](#3372)
* **candlestick:** Fix rendering on rotated axis ([17f5058](17f5058)), closes [#3387](#3387)
* **clip:** Fix x axis hide on title.bottom ([beec1bb](beec1bb)), closes [#3364](#3364)
* **option:** Fix inconsistency of padding ([0c1ce81](0c1ce81)), closes [#3426](#3426)
* **regions:** Mitigate broken dashed lines rendering ([d1df575](d1df575)), closes [#3790](#3790)
* **shape:** Fix circleY() undefined error ([f4ac3f1](f4ac3f1)), closes [#3388](#3388)
* **subchart, zoom:** Fix returning domain value ([90338ec](90338ec)), closes [#3347](#3347)
* **subchart:** Fix handlebar position ([b897cbb](b897cbb)), closes [#3358](#3358)
* **title:** fix title text center align ([b254a61](b254a61)), closes [#3363](#3363)
* **tooltip:** Fix tooltip.format.value call ([f7d587d](f7d587d)), closes [#3371](#3371)
* **tooltip:** Fix tootip display on tooltip.init ([98e6f8b](98e6f8b)), closes [#3369](#3369)

### Features

* **api:** Intent to ship subchart method ([976f04a](976f04a)), closes [#3342](#3342)
* **bar:** Enhance bar width to adjust from callback ([4ce74fc](4ce74fc)), closes [#3820](#3820)
* **module:** Support dual CJS/ESM package ([437c007](437c007)), closes [#2202](#2202)
* **plugin:** Intent to ship TableView plugin ([215b611](215b611)), closes [#1873](#1873)
* **regions:** Enhance regions rendering ([567b323](567b323)), closes [#3830](#3830) [#3790](#3790)
* **regions:** Intent to ship regions.label ([b4e3bc2](b4e3bc2)), closes [#3319](#3319)
* **shape:** Intent to ship area-step-range type ([03b9a7d](03b9a7d)), closes [#3776](#3776)
* **types:** Add area-step-range chart type ([2a763d2](2a763d2))
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