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

v2 data.onclick not working #1619

Closed
maxwondercorn opened this issue Aug 22, 2020 · 1 comment
Closed

v2 data.onclick not working #1619

maxwondercorn opened this issue Aug 22, 2020 · 1 comment
Labels

Comments

@maxwondercorn
Copy link

Description

I am converting from v1 to v2 found that the data.onclick event is not working while other events (.i.e onover) work. See test graph below.

Tracing through the problem the issue occurs when $$.isWithinShape(this, d2)) is called from the clickHandlerForSingleX function.

main.selectAll("." + CLASS.shape + "-" + index)
  .each(function (d2) {
    if (config.data_selection_grouped || $$.isWithinShape(this, d2)) {
         $$.toggleShape(this, d2, index);
         config.data_onclick.bind($$.api)(d2, this);
     }
});

Specifically, $$.hasValidPointType generates a type error

// isWithinShape()

...
if (!$$.isTargetToShow(d.id)) {
   isWithin = false;
}
else if ($$.hasValidPointType(that.nodeName)) {
...
}
Uncaught TypeError: $$.hasValidPointType is not a function

Steps to check or reproduce

Graph setup

import bb, { bar } from 'billboard.js';

async function setupGraph() {
  const data = await graphData();

  const config = {
    bindto: document.getElementById(this.graphId),
    data: {
      json: data.records,
      keys: { x: 'year', value: ['operation1', 'operation2'] },
      types: { operation1: bar(), operation2: bar() },

      // works
      onover: function (d, element) {
        console.log(d);
      },

      // does not work
      onclick: function (d, element) {
        console.log(d);
      }
    },
    axis: {
      x: {
        type: 'category'
      }
    }
  };

  bb.generate(config);
}

image

@netil netil added the bug label Aug 24, 2020
@netil
Copy link
Member

netil commented Aug 24, 2020

Hi @maxwondercorn, thanks for the report.

The issue happens for EMS imports build only, where needed functionality weren't extended.
For the workaround in current version, import and initialize line & selection.

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

selection();
line();

bb.generate({
    data: {
        type: bar()
    ...
});

I'll be fixing this for future release.

netil added a commit to netil/billboard.js that referenced this issue Aug 24, 2020
- Add conditional to check when only 'bar' named binding is imported.
- Add test codes for ESM

Ref naver#1619
netil added a commit to netil/billboard.js that referenced this issue Aug 24, 2020
- Add conditional to check when only 'bar' named binding is imported.
- Add test codes for ESM

Ref naver#1619
Ref naver#1620
@netil netil closed this as completed in 62e7a10 Aug 24, 2020
netil pushed a commit that referenced this issue Sep 7, 2020
# [2.1.0-next.2](2.1.0-next.1...2.1.0-next.2) (2020-09-07)

### Bug Fixes

* upgrade d3-brush from 1.1.5 to 1.1.6 ([#1605](#1605)) ([624f044](624f044))
* **api:** prevent TypeError when chart already destroyed ([ce42768](ce42768)), closes [#1613](#1613)
* upgrade d3-ease from 1.0.6 to 1.0.7 ([#1617](#1617)) ([4f78533](4f78533))
* **bar:** Fix not firing data.onclick ([62e7a10](62e7a10)), closes [#1619](#1619) [#1620](#1620)
* **grid:** Fix grid text position update ([056b565](056b565)), closes [#1592](#1592)
* **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)
* **step:** Fix rendering nullish data ([dbe7b9b](dbe7b9b)), closes [#1637](#1637)
* **types:** Fix donut option types ([1917169](1917169)), closes [#1615](#1615)

### Features

* **interaction:** avoid multiple <rect> generation ([97df63a](97df63a)), closes [#1642](#1642)
* **theme:** Add new 'datalab' theme ([aba20d4](aba20d4)), closes [#241](#241)
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