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

sparkline Plugin sizing and tooltip question #2682

Closed
VorticonCmdr opened this issue May 14, 2022 · 1 comment
Closed

sparkline Plugin sizing and tooltip question #2682

VorticonCmdr opened this issue May 14, 2022 · 1 comment

Comments

@VorticonCmdr
Copy link

VorticonCmdr commented May 14, 2022

Description

I am in the process of switching from a setup using c3js and jquery sparkline to billboard.js. I ran into two (three) issues which currently prevent me from using the sparkline plugin.

  1. even though I am setting the width to 42px and the height to 20px the sparkline graph itself is only half that size (and appears centered)

  2. I'd like to disable the tooltip but when applying tooltip.show false the sparkline plugin crashes with "Uncaught TypeError: Cannot read properties of null (reading 'node')"

  3. I am applying onmin & onmax but when the (unwanted) tooltip hovers over the min or max point the points disappear.

Steps to check or reproduce

var chart = bb.generate({
  size: {
    width: 42,
    height: 20,
  },
  axis: {
    y: {
      padding: 0
    },
    x: {
      padding: 0
    }
  },
  padding: false,
  data: {
    columns: [
      ["data1", 12300,10319,9843,10046,11886,15361,22886,36301,58436,84473,113425,142551,177024,219157,216367,190831,182064,173499,167160,160870,157161,157782]
    ],
    type: "area",
    onmin: function(data) {
     data.forEach(function(v) {
      // select data points
      d3.select(".bb-shapes-" + v.id + " .bb-circle-" + v.index)
       .style("fill", "red")
          .style("stroke", "red")
       .attr("r", "1");
     });
     },
    onmax: function(data) {
     data.forEach(function(v) {
      // select data points
      d3.select(".bb-shapes-" + v.id + " .bb-circle-" + v.index)
       .style("fill", "red")
          .style("stroke", "red")
       .attr("r", "1");
     });
     }
  },
  point: {
    r: 0
  },
  tooltip: {
    show: false
  },
  plugins: [
    new bb.plugin.sparkline({
     selector: ".sparkline"
    }),
  ],
  bindto: "#sparkline"
});
@netil
Copy link
Member

netil commented May 19, 2022

Hi @VorticonCmdr,

even though I am setting the width to 42px and the height to 20px the sparkline graph itself is only half that size (and appears centered)

It appears sparkline plugin's issue. Without using sparkline, padding=false will remove the padding and works fine.

I'd like to disable the tooltip but when applying tooltip.show false the sparkline plugin crashes with "Uncaught TypeError: Cannot read properties of null (reading 'node')"

Seems sparkline's bug. I'll look into. For now, if you don't want use tooltip, set interaction.enabled=false instead.

I am applying onmin & onmax but when the (unwanted) tooltip hovers over the min or max point the points disappear.

onmin/max callbacks are just option triggered for min/max datasets. And the reason why is disappearing, is because of the point.r=0 option from your generation code. If interaction.enabled=false is set, this will solve.

netil added a commit to netil/billboard.js that referenced this issue May 19, 2022
- Make to override padding values when there's no option
given and when padding != false.
- Append tooltip node when tooltip is enabled and bind
events when is necessary only.

Ref naver#2682
@netil netil closed this as completed in 79e1ab7 May 19, 2022
github-actions bot pushed a commit that referenced this issue Jun 9, 2022
# [3.5.0-next.1](3.4.1...3.5.0-next.1) (2022-06-09)

### Bug Fixes

* **bar:** fix bar radius for zero value ([9aa7579](9aa7579)), closes [#2642](#2642)
* **build:** Fix this keyword transpile ([b65531a](b65531a)), closes [#2671](#2671) [#2664](#2664) [#2665](#2665) [#2666](#2666) [#2667](#2667)
* **data:** Fix data label position on inverted axis ([b024d83](b024d83)), closes [#2700](#2700)
* **grid:** Fix y grid to show for log axis type ([d0b8cbd](d0b8cbd)), closes [#2710](#2710)
* **plugin:** fix sparkline dimension & tooltip ([79e1ab7](79e1ab7)), closes [#2682](#2682)
* **plugin:** fix stanford tooltip formatting ([9a87464](9a87464)), closes [#2657](#2657)
* **resize:** Fix legend resize ([7df949b](7df949b)), closes [#2650](#2650)
* **scale:** fix getting tickOffset ([3091677](3091677)), closes [#2669](#2669)
* **size.axis:** fix truncated axis when has no data ([40f4b66](40f4b66)), closes [#2675](#2675)
* **types:** Fix `Chart.load({ json })` typing ([1bd4f4a](1bd4f4a)), closes [#2711](#2711)
* **types:** Fix the signature of the tick format callback for timeseries ([c9c76e5](c9c76e5)), closes [#2676](#2676)
* **types:** Fix the type for options.data.names ([e64f6bd](e64f6bd)), closes [#2677](#2677)
* **types:** Fix types for the tooltip contents callback ([a0c0355](a0c0355)), closes [#2693](#2693)
* **zoom:** fix wheel zoom feeling "stuck" when panning past the edge ([50ed640](50ed640)), closes [#2588](#2588) [#2648](#2648)

### Features

* **data:** Intent to ship data.labels.rotate ([7b7ee08](7b7ee08)), closes [#2662](#2662)
* **module:** Support dual CJS/ESM package ([437c007](437c007)), closes [#2202](#2202)
* **plugin:** Intent to ship TableView plugin ([215b611](215b611)), closes [#1873](#1873)
* **resize:** Intent to ship resize.timer ([#2712](#2712)) ([0a07de0](0a07de0)), closes [#2650](#2650)
github-actions bot pushed a commit that referenced this issue Jun 30, 2022
# [3.5.0](3.4.1...3.5.0) (2022-06-30)

### Bug Fixes

* **bar:** fix bar radius for zero value ([9aa7579](9aa7579)), closes [#2642](#2642)
* **build:** Fix this keyword transpile ([b65531a](b65531a)), closes [#2671](#2671) [#2664](#2664) [#2665](#2665) [#2666](#2666) [#2667](#2667)
* **data:** Fix data label position on inverted axis ([b024d83](b024d83)), closes [#2700](#2700)
* **grid:** Fix y grid to show for log axis type ([d0b8cbd](d0b8cbd)), closes [#2710](#2710)
* **option:** Fix onresize/onresized call context ([3ef9684](3ef9684)), closes [#2726](#2726)
* **plugin, type:** fix TextOverlap type definition ([80cc3b7](80cc3b7))
* **plugin:** fix sparkline dimension & tooltip ([79e1ab7](79e1ab7)), closes [#2682](#2682)
* **plugin:** fix stanford tooltip formatting ([9a87464](9a87464)), closes [#2657](#2657)
* **resize:** Fix legend resize ([7df949b](7df949b)), closes [#2650](#2650)
* **scale:** fix getting tickOffset ([3091677](3091677)), closes [#2669](#2669)
* **size.axis:** fix truncated axis when has no data ([40f4b66](40f4b66)), closes [#2675](#2675)
* **types:** Fix `Chart.load({ json })` typing ([1bd4f4a](1bd4f4a)), closes [#2711](#2711)
* **types:** Fix the signature of the tick format callback for timeseries ([c9c76e5](c9c76e5)), closes [#2676](#2676)
* **types:** Fix the type for options.data.names ([e64f6bd](e64f6bd)), closes [#2677](#2677)
* **types:** Fix types for the tooltip contents callback ([a0c0355](a0c0355)), closes [#2693](#2693)
* **zoom:** fix wheel zoom feeling "stuck" when panning past the edge ([50ed640](50ed640)), closes [#2588](#2588) [#2648](#2648)

### Features

* **area:** add option to render area below line ([cf60291](cf60291)), closes [#2740](#2740) [#2741](#2741)
* **data:** Intent to ship data.labels.rotate ([7b7ee08](7b7ee08)), closes [#2662](#2662)
* **option:** Intent to ship boost.useCssRule ([4a060d6](4a060d6)), closes [#2716](#2716)
* **option:** Intent to ship boost.useWorker ([eeaf8bd](eeaf8bd))
* **resize:** Intent to ship resize.timer ([#2712](#2712)) ([0a07de0](0a07de0)), closes [#2650](#2650)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants