3.1.0 • Published 3 months ago

d3-graph-controller v3.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

Features

  • 👉 Fully interactive dragging, panning, zooming and more. Supports touch input and uses multi-touch.
  • 📱 Responsive graphs that fit any screen thanks to automatic or manual resizing.
  • 🔧 Extensive configuration enables customizable behavior and visuals.

Installation

# yarn
$ yarn add d3-graph-controller

# npm
$ npm install d3-graph-controller

Usage

import {
  defineGraph,
  defineGraphConfig,
  defineLink,
  defineNodeWithDefaults,
  Graph,
  GraphController,
} from 'd3-graph-controller'
import 'd3-graph-controller/default.css'

const a = defineNodeWithDefaults({
  type: 'node',
  id: 'a',
  label: {
    color: 'black',
    fontSize: '1rem',
    text: 'A',
  },
})

const b = defineNodeWithDefaults({
  type: 'node',
  id: 'b',
  label: {
    color: 'black',
    fontSize: '1rem',
    text: 'B',
  },
})

const link = defineLink({
  source: a,
  target: b,
  color: 'gray',
  label: false,
})

const graph = defineGraph({
  nodes: [a, b],
  links: [link],
})

// A reference to the native host element, e.g., an HTMLDivElement. This is framework agnostic.
// You may use Angular's @ViewChild, Vue's $ref, plain JavaScript or something else entirely.
const container = document.getElementById('graph') as HTMLDivElement

const controller = new GraphController(container, graph, defineGraphConfig())

// Integrate the controller into the lifecycle of your application
controller.shutdown()

Styling

In addition to the default style, that is available by adding import 'd3-graph-controller/default.css' to your project, it is possible to configure font-size and color of graph elements. Both properties of nodes and links accept valid CSS expressions. This allows you to use dynamic colors with CSS variables:

:root {
  --color-primary: 'red';
}
import { defineNodeWithDefaults } from 'd3-graph-controller'

defineNodeWithDefaults({
  type: 'node',
  id: 'a',
  label: {
    color: 'black',
    fontSize: '2rem',
    text: 'A',
  },
  color: 'var(--color-primary)',
})

For customization of the default theme, the custom CSS property --color-node-stroke can be used.

Development

# install dependencies
$ pnpm install

# build for production
$ pnpm build

# build in watch mode
$ pnpm dev

# lint project files
$ pnpm lint

License

MIT - Copyright © Jan Müller

3.1.0

3 months ago

3.0.13

4 months ago

3.0.12

5 months ago

3.0.11

8 months ago

3.0.10

12 months ago

3.0.9

1 year ago

3.0.8

1 year ago

3.0.7

1 year ago

3.0.6

1 year ago

3.0.5

1 year ago

3.0.4

1 year ago

3.0.3

1 year ago

3.0.2

2 years ago

2.6.1

2 years ago

2.6.0

2 years ago

2.6.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.5.2

2 years ago

2.4.0

3 years ago

2.5.0

2 years ago

2.5.1

2 years ago

2.3.28

3 years ago

2.3.27

3 years ago

2.3.29

3 years ago

2.3.24

3 years ago

2.3.23

3 years ago

2.3.26

3 years ago

2.3.25

3 years ago

2.3.20

3 years ago

2.3.22

3 years ago

2.3.21

3 years ago

2.3.19

3 years ago

2.3.18

3 years ago

2.3.17

3 years ago

2.3.16

3 years ago

2.3.13

3 years ago

2.3.12

3 years ago

2.3.15

3 years ago

2.3.14

3 years ago

2.2.55

3 years ago

2.2.53

3 years ago

2.2.54

3 years ago

2.2.51

3 years ago

2.2.52

3 years ago

2.2.50

3 years ago

2.3.0

3 years ago

2.3.2

3 years ago

2.3.1

3 years ago

2.3.4

3 years ago

2.3.3

3 years ago

2.3.6

3 years ago

2.3.5

3 years ago

2.3.8

3 years ago

2.3.7

3 years ago

2.3.9

3 years ago

2.2.48

3 years ago

2.2.49

3 years ago

2.2.46

3 years ago

2.2.47

3 years ago

2.2.44

3 years ago

2.2.45

3 years ago

2.2.42

3 years ago

2.2.43

3 years ago

2.3.11

3 years ago

2.3.10

3 years ago

2.2.39

3 years ago

2.2.37

3 years ago

2.2.38

3 years ago

2.2.35

3 years ago

2.2.36

3 years ago

2.2.33

3 years ago

2.2.34

3 years ago

2.2.32

3 years ago

2.2.40

3 years ago

2.2.41

3 years ago

2.2.28

3 years ago

2.2.29

3 years ago

2.2.26

3 years ago

2.2.27

3 years ago

2.2.31

3 years ago

2.2.30

3 years ago

2.2.17

3 years ago

2.2.18

3 years ago

2.2.15

3 years ago

2.2.16

3 years ago

2.2.19

3 years ago

2.2.24

3 years ago

2.2.25

3 years ago

2.2.22

3 years ago

2.2.23

3 years ago

2.2.20

3 years ago

2.2.21

3 years ago

2.2.13

3 years ago

2.2.14

3 years ago

2.2.12

3 years ago

2.2.11

3 years ago

2.2.10

3 years ago

2.2.9

3 years ago

2.2.8

3 years ago

2.2.7

3 years ago

2.2.6

3 years ago

2.2.5

3 years ago

2.2.4

3 years ago

2.2.3

3 years ago

2.2.2

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.0

3 years ago

2.0.0

3 years ago

1.16.1

3 years ago

1.16.0

3 years ago

1.15.1

3 years ago

1.15.0

3 years ago

1.14.1

3 years ago

1.14.0

3 years ago

1.13.3

3 years ago

1.13.2

3 years ago

1.13.1

3 years ago

1.13.0

3 years ago

1.12.0

3 years ago

1.11.0

3 years ago

1.10.1

3 years ago

1.10.0

3 years ago

1.9.0

3 years ago

1.8.1

3 years ago

1.8.0

3 years ago

1.7.0

3 years ago

1.6.0

3 years ago

1.5.0

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago