redux-devtools/packages/d3tooltip
Nathan Bierema 4164b6279e
Use flat config for ESLint (#1712)
* d3tooltip

* map2tree

* d3-state-visualizer

* react-base16-styling

* react-dock

* Cleanup

* Update

* react-json-tree

* redux-devtools

* redux-devtools-app

* redux-devtools-app-core

* redux-devtools-cli

* Fix

* redux-devtools-dock-monitor

* redux-devtools-extension

* redux-devtools-inspector-monitor

* redux-devtools-inspector-monitor-test-tab

* redux-devtools-inspector-monitor-trace-tab

* redux-devtools-instrument

* Simplify

* redux-devtools-log-monitor

* redux-devtools-remote

* redux-devtools-rtk-query-monitor

* redux-devtools-serialize

* redux-devtools-slider-monitor

* redux-devtools-utils

* Format
2024-08-08 23:47:07 -04:00
..
src chore(deps): update dependency prettier to v3 (#1434) 2023-07-12 18:03:20 +00:00
CHANGELOG.md Version Packages (#1649) 2024-04-07 00:05:15 -04:00
eslint.config.js Use flat config for ESLint (#1712) 2024-08-08 23:47:07 -04:00
LICENSE.md Merge d3tooltip package (#423) 2018-12-19 15:16:11 +02:00
package.json Use flat config for ESLint (#1712) 2024-08-08 23:47:07 -04: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.