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

Bar tooltip with grouped: false crashes #1663

Closed
creage opened this issue Sep 9, 2020 · 7 comments
Closed

Bar tooltip with grouped: false crashes #1663

creage opened this issue Sep 9, 2020 · 7 comments
Labels

Comments

@creage
Copy link

creage commented Sep 9, 2020

Having grouped: false in tooltip options crashes the widget

I'm trying to migrate to v2 now from v1, and my Bar widget is broken. I have

tooltip:{
    grouped: false
}

And when I hover over the bars, I get console error

node_modules\billboard.js\dist\billboard.esm.js:5966 Uncaught TypeError: $$.hasValidPointType is not a function
    at ChartInternal.isWithinShape (node_modules\billboard.js\dist\billboard.esm.js:5966)
    at SVGPathElement.eval (node_modules\billboard.js\dist\billboard.esm.js:3906)
    at Selection.eval [as filter] (node_modules\d3-selection\src\selection\filter.js:9)
    at ChartInternal.setOverOut (node_modules\billboard.js\dist\billboard.esm.js:3905)
    at SVGRectElement.eval (node_modules\billboard.js\dist\billboard.esm.js:11458)
    at SVGRectElement.eval

and my tooltip is not displayed

@netil netil added the bug label Sep 9, 2020
@netil
Copy link
Member

netil commented Sep 9, 2020

Hi @creage, thanks for the report. I'll be digging into.
And can you try this way? I think this way will solve from the current version.

import {bar, line} from "billboard.js";

line();  // this will make extend $$.hasValidPointType

// your generation code
bb.generate(... );

@creage
Copy link
Author

creage commented Sep 9, 2020

@netil confirmed, adding a call to line() fixes the issue, but I'd still prefer a fixed version, you know :)

@netil
Copy link
Member

netil commented Sep 9, 2020

@creage, sure. I'll fix that.

@netil
Copy link
Member

netil commented Sep 9, 2020

@creage, can you provide full generation code?
Just generation with below option, not getting same error.

Forget the comment. It's reproducible.

bb.generate({
	data: {
		columns: [
			["data1", 300, 350, 300, 0, 100],
			["data2", 130, 100, 140, 200, 150]
		],
		type: bar()
	},
	tooltip: {
		grouped: false
	}
});

@netil
Copy link
Member

netil commented Sep 9, 2020

Added as condition to check the existence of $$.hasValidPointType

} else if ($$.hasValidPointType && $$.hasValidPointType(that.nodeName)) {

But from the build, it disappears. The weird is for local build it doesn't.

       else if ($$.hasValidPointType(that.nodeName)) {

netil added a commit to netil/billboard.js that referenced this issue Sep 9, 2020
Condition is removed after the build, where is causing
unexpected issue.
Update condition to not be removed from the build.

Ref naver#1663
@netil netil closed this as completed in 781fb61 Sep 9, 2020
netil pushed a commit that referenced this issue Sep 11, 2020
# [2.1.0-next.3](2.1.0-next.2...2.1.0-next.3) (2020-09-11)

### Bug Fixes

* **interaction:** fix for data point click on mobile ([727c26f](727c26f)), closes [#1651](#1651)
* **interaction:** fix retrieving event rect position ([6fc449e](6fc449e)), closes [#1670](#1670)
* **shape:** fix possible condition removal by transpiler ([781fb61](781fb61)), closes [#1663](#1663)

### Features

* **plugin:** Add JS  Plugin class file ([4a20480](4a20480)), closes [#1665](#1665)
@creage
Copy link
Author

creage commented Sep 11, 2020

Installed 2.1.0-next.3, and now there is another error

node_modules\billboard.js\dist\billboard.esm.js:3923 Uncaught TypeError: $$.unexpandCircles is not a function
    at eval (node_modules\billboard.js\dist\billboard.esm.js:3923)
    at Selection.eval [as call] (node_modules\d3-selection\src\selection\call.js:4)
    at ChartInternal.selectRectForSingle (node_modules\billboard.js\dist\billboard.esm.js:3914)
    at SVGRectElement.eval (node_modules\billboard.js\dist\billboard.esm.js:11527)
    at SVGRectElement.eval (node_modules\d3-selection\src\selection\on.js:27)

@netil
Copy link
Member

netil commented Sep 14, 2020

@creage, confirmed.

netil added a commit to netil/billboard.js that referenced this issue Sep 14, 2020
- Add condition to execute $$.unexpandCircles()
- Split test's util file to be helper/util for ESM test

Ref #naver#1663 (comment)
netil added a commit that referenced this issue Sep 14, 2020
- Add condition to execute $$.unexpandCircles()
- Split test's util file to be helper/util for ESM test

Ref ##1663 (comment)
netil pushed a commit that referenced this issue Sep 16, 2020
# [2.1.0-next.4](2.1.0-next.3...2.1.0-next.4) (2020-09-16)

### Bug Fixes

* **bar:** fix on bar tooglip grouped false ([4bd69be](4bd69be)), closes [/github.com//issues/1663#issuecomment-690991679](https://github.com//github.com/naver/billboard.js/issues/1663/issues/issuecomment-690991679)
* **interaction:** bind touch event only for rect element ([12da3e4](12da3e4)), closes [#1650](#1650)
netil pushed a commit that referenced this issue Sep 25, 2020
# [2.1.0](2.0.3...2.1.0) (2020-09-25)

### Bug Fixes

* **api:** prevent TypeError when chart already destroyed ([ce42768](ce42768)), closes [#1613](#1613)
* **axis:** fix y axis clip-path coordinates ([bdf7694](bdf7694)), closes [#1572](#1572)
* **bar:** Fix not firing data.onclick ([62e7a10](62e7a10)), closes [#1619](#1619) [#1620](#1620)
* **bar:** fix on bar tooglip grouped false ([4bd69be](4bd69be)), closes [/github.com//issues/1663#issuecomment-690991679](https://github.com//github.com/naver/billboard.js/issues/1663/issues/issuecomment-690991679)
* **grid:** Fix grid text position update ([056b565](056b565)), closes [#1592](#1592)
* **interaction:** bind touch event only for rect element ([12da3e4](12da3e4)), closes [#1650](#1650)
* upgrade d3-ease from 1.0.6 to 1.0.7 ([#1617](#1617)) ([4f78533](4f78533))
* **interaction:** correct draggable selection functionality ([160f873](160f873)), closes [#1642](#1642)
* upgrade d3-brush from 1.1.5 to 1.1.6 ([#1605](#1605)) ([624f044](624f044))
* **interaction:** fix for data point click on mobile ([727c26f](727c26f)), closes [#1651](#1651)
* **interaction:** fix retrieving event rect position ([6fc449e](6fc449e)), closes [#1670](#1670)
* **legend:** Fix error for color.threshold option ([6e06629](6e06629)), closes [#1604](#1604) [#1611](#1611)
* **legend:** Make legend blurry after click ([319d608](319d608)), closes [#1599](#1599)
* **shape:** fix possible condition removal by transpiler ([781fb61](781fb61)), closes [#1663](#1663)
* **step:** Fix rendering nullish data ([dbe7b9b](dbe7b9b)), closes [#1637](#1637)
* **types:** Fix donut option types ([1917169](1917169)), closes [#1615](#1615)
* **types:** Specify context for callbacks ([f3b9f26](f3b9f26)), closes [#1551](#1551)

### Features

* **area:** Intent to ship area.front ([fe315dc](fe315dc)), closes [#1543](#1543)
* **axis:** Improve log scale to handle 0 ([ca6cf62](ca6cf62)), closes [#1578](#1578)
* **axis:** Intent to ship axis.y2.type ([a94c25e](a94c25e)), closes [#1575](#1575)
* **interaction:** avoid multiple <rect> generation ([97df63a](97df63a)), closes [#1642](#1642)
* **plugin:** Add JS  Plugin class file ([4a20480](4a20480)), closes [#1665](#1665)
* **theme:** Add new 'datalab' theme ([aba20d4](aba20d4)), closes [#241](#241)
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