redux-devtools/packages/d3tooltip
Nathan Bierema 191d419773
Convert d3 packages to ESM (#1648)
* d3tooltip

* Add back type-check

* Remove dependency

* map2tree

* Use lodash-es

* Update jest invocation

* Transform lodash-es

* d3-state-visualizer

* Use module: node16

* Update

* Create chilly-fans-hunt.md
2024-04-07 03:44:14 +00:00
..
src chore(deps): update dependency prettier to v3 (#1434) 2023-07-12 18:03:20 +00:00
.eslintignore Imprrove ability to tree-shake libraries (#1050) 2022-01-24 02:11:46 +00:00
.eslintrc.cjs Convert d3 packages to ESM (#1648) 2024-04-07 03:44:14 +00:00
CHANGELOG.md Version Packages (#1552) 2023-12-09 05:05:25 +00:00
LICENSE.md Merge d3tooltip package (#423) 2018-12-19 15:16:11 +02:00
package.json Convert d3 packages to ESM (#1648) 2024-04-07 03:44:14 +00:00
README.md chore(deps): update dependency prettier to v3 (#1434) 2023-07-12 18:03:20 +00:00
tsconfig.json Convert d3 packages to ESM (#1648) 2024-04-07 03:44:14 +00:00

d3tooltip

This tooltip aims for a minimal yet highly configurable API. It has a long way to go, but the essentials are there. It was created by @romseguy and merged from romseguy/d3tooltip.

Installation

npm install d3-state-visualizer

Quick usage

import * as d3 from 'd3';
import { tooltip } from 'd3tooltip';

const DOMNode = document.getElementById('chart');
const root = d3.select(DOMNode);
const vis = root.append('svg');

const options = {
  offset: { left: 30, top: 10 },
  styles: { 'min-width': '50px', 'border-radius': '5px' },
};

vis
  .selectAll('circle')
  .data(someData)
  .enter()
  .append('circle')
  .attr('r', 10)
  .call(
    d3tooltip('tooltipClassName', {
      ...options,
      text: (d) => toStringOrHtml(d),
    }),
  )
  .on('mouseover', function () {
    d3.select(this).style('fill', 'skyblue');
  })
  .on('mouseout', function () {
    d3.select(this).style('fill', 'black');
  });

API

Option Type Default Description
root DOM.Element body The tooltip will be added as a child of that element. You can also use a D3 selection.
left Number undefined Sets the tooltip x absolute position instead of the mouse x position, relative to the root element.
top Number undefined Sets the tooltip y absolute position instead of the mouse y position, relative to the root element.
offset Object {left: 0, top: 0} Sets the distance, starting from the cursor position, until the tooltip is rendered. Warning: only applicable if you don't provide a left or top option.
styles Object {} Sets the styles of the tooltip element.
text String or Function '' Sets the text of the tooltip. Can be a constant string or a function that takes the datum and returns a string.