force-graph 1.42.2 → 1.42.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -15
- package/dist/force-graph.common.js +60 -74
- package/dist/force-graph.d.ts +1 -1
- package/dist/force-graph.js +125 -71
- package/dist/force-graph.js.map +1 -1
- package/dist/force-graph.min.js +3 -3
- package/dist/force-graph.module.js +25 -39
- package/example/dag-yarn/index.html +1 -1
- package/package.json +13 -13
- package/src/force-graph.js +9 -7
- package/src/index.d.ts +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@ force-graph
|
|
|
3
3
|
|
|
4
4
|
[![NPM package][npm-img]][npm-url]
|
|
5
5
|
[![Build Size][build-size-img]][build-size-url]
|
|
6
|
-
[![
|
|
6
|
+
[![NPM Downloads][npm-downloads-img]][npm-downloads-url]
|
|
7
7
|
|
|
8
8
|
Force-directed graph rendered on HTML5 canvas.
|
|
9
9
|
|
|
@@ -52,22 +52,22 @@ And check out the [React bindings](https://github.com/vasturiano/react-force-gra
|
|
|
52
52
|
|
|
53
53
|
## Quick start
|
|
54
54
|
|
|
55
|
-
```
|
|
55
|
+
```js
|
|
56
56
|
import ForceGraph from 'force-graph';
|
|
57
57
|
```
|
|
58
58
|
or
|
|
59
|
-
```
|
|
60
|
-
|
|
59
|
+
```js
|
|
60
|
+
const ForceGraph = require('force-graph');
|
|
61
61
|
```
|
|
62
62
|
or even
|
|
63
|
-
```
|
|
63
|
+
```html
|
|
64
64
|
<script src="//unpkg.com/force-graph"></script>
|
|
65
65
|
```
|
|
66
66
|
then
|
|
67
|
-
```
|
|
68
|
-
|
|
67
|
+
```js
|
|
68
|
+
const myGraph = ForceGraph();
|
|
69
69
|
myGraph(<myDOMElement>)
|
|
70
|
-
|
|
70
|
+
.graphData(<myData>);
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
## API reference
|
|
@@ -191,7 +191,7 @@ myGraph(<myDOMElement>)
|
|
|
191
191
|
| <b>graph2ScreenCoords</b>(<i>x</i>, <i>y</i>) | Utility method to translate node coordinates to the viewport domain. Given a pair of `x`,`y` graph coordinates, returns the current equivalent `{x, y}` in viewport coordinates. |
|
|
192
192
|
|
|
193
193
|
### Input JSON syntax
|
|
194
|
-
```
|
|
194
|
+
```json
|
|
195
195
|
{
|
|
196
196
|
"nodes": [
|
|
197
197
|
{
|
|
@@ -204,14 +204,14 @@ myGraph(<myDOMElement>)
|
|
|
204
204
|
"name": "name2",
|
|
205
205
|
"val": 10
|
|
206
206
|
},
|
|
207
|
-
|
|
207
|
+
...
|
|
208
208
|
],
|
|
209
209
|
"links": [
|
|
210
210
|
{
|
|
211
211
|
"source": "id1",
|
|
212
212
|
"target": "id2"
|
|
213
213
|
},
|
|
214
|
-
|
|
214
|
+
...
|
|
215
215
|
]
|
|
216
216
|
}
|
|
217
217
|
```
|
|
@@ -220,9 +220,9 @@ myGraph(<myDOMElement>)
|
|
|
220
220
|
|
|
221
221
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=L398E7PKP47E8¤cy_code=USD&source=url) If this project has helped you and you'd like to contribute back, you can always [buy me a ☕](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=L398E7PKP47E8¤cy_code=USD&source=url)!
|
|
222
222
|
|
|
223
|
-
[npm-img]: https://img.shields.io/npm/v/force-graph
|
|
223
|
+
[npm-img]: https://img.shields.io/npm/v/force-graph
|
|
224
224
|
[npm-url]: https://npmjs.org/package/force-graph
|
|
225
|
-
[build-size-img]: https://img.shields.io/bundlephobia/minzip/force-graph
|
|
225
|
+
[build-size-img]: https://img.shields.io/bundlephobia/minzip/force-graph
|
|
226
226
|
[build-size-url]: https://bundlephobia.com/result?p=force-graph
|
|
227
|
-
[
|
|
228
|
-
[
|
|
227
|
+
[npm-downloads-img]: https://img.shields.io/npm/dt/force-graph
|
|
228
|
+
[npm-downloads-url]: https://www.npmtrends.com/force-graph
|
|
@@ -61,14 +61,9 @@ function ownKeys(object, enumerableOnly) {
|
|
|
61
61
|
|
|
62
62
|
if (Object.getOwnPropertySymbols) {
|
|
63
63
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
keys.push.apply(keys, symbols);
|
|
64
|
+
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
65
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
66
|
+
})), keys.push.apply(keys, symbols);
|
|
72
67
|
}
|
|
73
68
|
|
|
74
69
|
return keys;
|
|
@@ -76,19 +71,12 @@ function ownKeys(object, enumerableOnly) {
|
|
|
76
71
|
|
|
77
72
|
function _objectSpread2(target) {
|
|
78
73
|
for (var i = 1; i < arguments.length; i++) {
|
|
79
|
-
var source = arguments[i]
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
86
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
87
|
-
} else {
|
|
88
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
89
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
90
|
-
});
|
|
91
|
-
}
|
|
74
|
+
var source = null != arguments[i] ? arguments[i] : {};
|
|
75
|
+
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
76
|
+
_defineProperty(target, key, source[key]);
|
|
77
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
78
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
79
|
+
});
|
|
92
80
|
}
|
|
93
81
|
|
|
94
82
|
return target;
|
|
@@ -97,17 +85,11 @@ function _objectSpread2(target) {
|
|
|
97
85
|
function _typeof(obj) {
|
|
98
86
|
"@babel/helpers - typeof";
|
|
99
87
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
_typeof = function (obj) {
|
|
106
|
-
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return _typeof(obj);
|
|
88
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
|
|
89
|
+
return typeof obj;
|
|
90
|
+
} : function (obj) {
|
|
91
|
+
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
92
|
+
}, _typeof(obj);
|
|
111
93
|
}
|
|
112
94
|
|
|
113
95
|
function _defineProperty(obj, key, value) {
|
|
@@ -350,7 +332,7 @@ var notifyRedraw = function notifyRedraw(_, state) {
|
|
|
350
332
|
return state.onNeedsRedraw && state.onNeedsRedraw();
|
|
351
333
|
};
|
|
352
334
|
|
|
353
|
-
var CanvasForceGraph = Kapsule__default[
|
|
335
|
+
var CanvasForceGraph = Kapsule__default["default"]({
|
|
354
336
|
props: {
|
|
355
337
|
graphData: {
|
|
356
338
|
"default": {
|
|
@@ -604,10 +586,10 @@ var CanvasForceGraph = Kapsule__default['default']({
|
|
|
604
586
|
}
|
|
605
587
|
|
|
606
588
|
function paintNodes() {
|
|
607
|
-
var getVisibility = accessorFn__default[
|
|
608
|
-
var getVal = accessorFn__default[
|
|
609
|
-
var getColor = accessorFn__default[
|
|
610
|
-
var getNodeCanvasObjectMode = accessorFn__default[
|
|
589
|
+
var getVisibility = accessorFn__default["default"](state.nodeVisibility);
|
|
590
|
+
var getVal = accessorFn__default["default"](state.nodeVal);
|
|
591
|
+
var getColor = accessorFn__default["default"](state.nodeColor);
|
|
592
|
+
var getNodeCanvasObjectMode = accessorFn__default["default"](state.nodeCanvasObjectMode);
|
|
611
593
|
var ctx = state.ctx; // Draw wider nodes by 1px on shadow canvas for more precise hovering (due to boundary anti-aliasing)
|
|
612
594
|
|
|
613
595
|
var padAmount = state.isShadow / state.globalScale;
|
|
@@ -642,12 +624,12 @@ var CanvasForceGraph = Kapsule__default['default']({
|
|
|
642
624
|
}
|
|
643
625
|
|
|
644
626
|
function paintLinks() {
|
|
645
|
-
var getVisibility = accessorFn__default[
|
|
646
|
-
var getColor = accessorFn__default[
|
|
647
|
-
var getWidth = accessorFn__default[
|
|
648
|
-
var getLineDash = accessorFn__default[
|
|
649
|
-
var getCurvature = accessorFn__default[
|
|
650
|
-
var getLinkCanvasObjectMode = accessorFn__default[
|
|
627
|
+
var getVisibility = accessorFn__default["default"](state.linkVisibility);
|
|
628
|
+
var getColor = accessorFn__default["default"](state.linkColor);
|
|
629
|
+
var getWidth = accessorFn__default["default"](state.linkWidth);
|
|
630
|
+
var getLineDash = accessorFn__default["default"](state.linkLineDash);
|
|
631
|
+
var getCurvature = accessorFn__default["default"](state.linkCurvature);
|
|
632
|
+
var getLinkCanvasObjectMode = accessorFn__default["default"](state.linkCanvasObjectMode);
|
|
651
633
|
var ctx = state.ctx; // Draw wider lines by 2px on shadow canvas for more precise hovering (due to boundary anti-aliasing)
|
|
652
634
|
|
|
653
635
|
var padAmount = state.isShadow * 2;
|
|
@@ -679,7 +661,7 @@ var CanvasForceGraph = Kapsule__default['default']({
|
|
|
679
661
|
});
|
|
680
662
|
ctx.restore(); // Bundle strokes per unique color/width/dash for performance optimization
|
|
681
663
|
|
|
682
|
-
var linksPerColor = indexBy__default[
|
|
664
|
+
var linksPerColor = indexBy__default["default"](defaultPaintLinks, [getColor, getWidth, getLineDash]);
|
|
683
665
|
ctx.save();
|
|
684
666
|
Object.entries(linksPerColor).forEach(function (_ref) {
|
|
685
667
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
@@ -769,11 +751,11 @@ var CanvasForceGraph = Kapsule__default['default']({
|
|
|
769
751
|
function paintArrows() {
|
|
770
752
|
var ARROW_WH_RATIO = 1.6;
|
|
771
753
|
var ARROW_VLEN_RATIO = 0.2;
|
|
772
|
-
var getLength = accessorFn__default[
|
|
773
|
-
var getRelPos = accessorFn__default[
|
|
774
|
-
var getVisibility = accessorFn__default[
|
|
775
|
-
var getColor = accessorFn__default[
|
|
776
|
-
var getNodeVal = accessorFn__default[
|
|
754
|
+
var getLength = accessorFn__default["default"](state.linkDirectionalArrowLength);
|
|
755
|
+
var getRelPos = accessorFn__default["default"](state.linkDirectionalArrowRelPos);
|
|
756
|
+
var getVisibility = accessorFn__default["default"](state.linkVisibility);
|
|
757
|
+
var getColor = accessorFn__default["default"](state.linkDirectionalArrowColor || state.linkColor);
|
|
758
|
+
var getNodeVal = accessorFn__default["default"](state.nodeVal);
|
|
777
759
|
var ctx = state.ctx;
|
|
778
760
|
ctx.save();
|
|
779
761
|
state.graphData.links.filter(getVisibility).forEach(function (link) {
|
|
@@ -819,11 +801,11 @@ var CanvasForceGraph = Kapsule__default['default']({
|
|
|
819
801
|
}
|
|
820
802
|
|
|
821
803
|
function paintPhotons() {
|
|
822
|
-
var getNumPhotons = accessorFn__default[
|
|
823
|
-
var getSpeed = accessorFn__default[
|
|
824
|
-
var getDiameter = accessorFn__default[
|
|
825
|
-
var getVisibility = accessorFn__default[
|
|
826
|
-
var getColor = accessorFn__default[
|
|
804
|
+
var getNumPhotons = accessorFn__default["default"](state.linkDirectionalParticles);
|
|
805
|
+
var getSpeed = accessorFn__default["default"](state.linkDirectionalParticleSpeed);
|
|
806
|
+
var getDiameter = accessorFn__default["default"](state.linkDirectionalParticleWidth);
|
|
807
|
+
var getVisibility = accessorFn__default["default"](state.linkVisibility);
|
|
808
|
+
var getColor = accessorFn__default["default"](state.linkDirectionalParticleColor || state.linkColor);
|
|
827
809
|
var ctx = state.ctx;
|
|
828
810
|
ctx.save();
|
|
829
811
|
state.graphData.links.filter(getVisibility).forEach(function (link) {
|
|
@@ -915,12 +897,12 @@ var CanvasForceGraph = Kapsule__default['default']({
|
|
|
915
897
|
|
|
916
898
|
if (state.nodeAutoColorBy !== null) {
|
|
917
899
|
// Auto add color to uncolored nodes
|
|
918
|
-
autoColorObjects(state.graphData.nodes, accessorFn__default[
|
|
900
|
+
autoColorObjects(state.graphData.nodes, accessorFn__default["default"](state.nodeAutoColorBy), state.nodeColor);
|
|
919
901
|
}
|
|
920
902
|
|
|
921
903
|
if (state.linkAutoColorBy !== null) {
|
|
922
904
|
// Auto add color to uncolored links
|
|
923
|
-
autoColorObjects(state.graphData.links, accessorFn__default[
|
|
905
|
+
autoColorObjects(state.graphData.links, accessorFn__default["default"](state.linkAutoColorBy), state.linkColor);
|
|
924
906
|
} // parse links
|
|
925
907
|
|
|
926
908
|
|
|
@@ -931,7 +913,7 @@ var CanvasForceGraph = Kapsule__default['default']({
|
|
|
931
913
|
|
|
932
914
|
if (!state.isShadow) {
|
|
933
915
|
// Add photon particles
|
|
934
|
-
var linkParticlesAccessor = accessorFn__default[
|
|
916
|
+
var linkParticlesAccessor = accessorFn__default["default"](state.linkDirectionalParticles);
|
|
935
917
|
state.graphData.links.forEach(function (link) {
|
|
936
918
|
var numPhotons = Math.round(Math.abs(linkParticlesAccessor(link)));
|
|
937
919
|
|
|
@@ -1102,7 +1084,7 @@ function clearCanvas(ctx, width, height) {
|
|
|
1102
1084
|
} //
|
|
1103
1085
|
|
|
1104
1086
|
|
|
1105
|
-
var forceGraph = Kapsule__default[
|
|
1087
|
+
var forceGraph = Kapsule__default["default"]({
|
|
1106
1088
|
props: _objectSpread2({
|
|
1107
1089
|
width: {
|
|
1108
1090
|
"default": window.innerWidth,
|
|
@@ -1263,11 +1245,9 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1263
1245
|
triggerUpdate: false
|
|
1264
1246
|
},
|
|
1265
1247
|
onZoom: {
|
|
1266
|
-
"default": function _default() {},
|
|
1267
1248
|
triggerUpdate: false
|
|
1268
1249
|
},
|
|
1269
1250
|
onZoomEnd: {
|
|
1270
|
-
"default": function _default() {},
|
|
1271
1251
|
triggerUpdate: false
|
|
1272
1252
|
},
|
|
1273
1253
|
onRenderFramePre: {
|
|
@@ -1311,7 +1291,7 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1311
1291
|
// no animation
|
|
1312
1292
|
setCenter(finalPos);
|
|
1313
1293
|
} else {
|
|
1314
|
-
new TWEEN__default[
|
|
1294
|
+
new TWEEN__default["default"].Tween(getCenter()).to(finalPos, transitionDuration).easing(TWEEN__default["default"].Easing.Quadratic.Out).onUpdate(setCenter).start();
|
|
1315
1295
|
}
|
|
1316
1296
|
|
|
1317
1297
|
return this;
|
|
@@ -1344,11 +1324,11 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1344
1324
|
// no animation
|
|
1345
1325
|
setZoom(k);
|
|
1346
1326
|
} else {
|
|
1347
|
-
new TWEEN__default[
|
|
1327
|
+
new TWEEN__default["default"].Tween({
|
|
1348
1328
|
k: getZoom()
|
|
1349
1329
|
}).to({
|
|
1350
1330
|
k: k
|
|
1351
|
-
}, transitionDuration).easing(TWEEN__default[
|
|
1331
|
+
}, transitionDuration).easing(TWEEN__default["default"].Easing.Quadratic.Out).onUpdate(function (_ref6) {
|
|
1352
1332
|
var k = _ref6.k;
|
|
1353
1333
|
return setZoom(k);
|
|
1354
1334
|
}).start();
|
|
@@ -1395,7 +1375,7 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1395
1375
|
var nodeFilter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
|
|
1396
1376
|
return true;
|
|
1397
1377
|
};
|
|
1398
|
-
var getVal = accessorFn__default[
|
|
1378
|
+
var getVal = accessorFn__default["default"](state.nodeVal);
|
|
1399
1379
|
|
|
1400
1380
|
var getR = function getR(node) {
|
|
1401
1381
|
return Math.sqrt(Math.max(0, getVal(node) || 1)) * state.nodeRelSize;
|
|
@@ -1450,11 +1430,13 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1450
1430
|
zoom: d3Zoom.zoom(),
|
|
1451
1431
|
forceGraph: new CanvasForceGraph(),
|
|
1452
1432
|
shadowGraph: new CanvasForceGraph().cooldownTicks(0).nodeColor('__indexColor').linkColor('__indexColor').isShadow(true),
|
|
1453
|
-
colorTracker: new ColorTracker__default[
|
|
1433
|
+
colorTracker: new ColorTracker__default["default"]() // indexed objects for rgb lookup
|
|
1454
1434
|
|
|
1455
1435
|
};
|
|
1456
1436
|
},
|
|
1457
1437
|
init: function init(domNode, state) {
|
|
1438
|
+
var _this = this;
|
|
1439
|
+
|
|
1458
1440
|
// Wipe DOM
|
|
1459
1441
|
domNode.innerHTML = ''; // Container anchor for canvas and tooltip
|
|
1460
1442
|
|
|
@@ -1548,9 +1530,12 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1548
1530
|
}
|
|
1549
1531
|
|
|
1550
1532
|
delete obj.__initialDragPos;
|
|
1551
|
-
|
|
1552
|
-
.
|
|
1553
|
-
|
|
1533
|
+
|
|
1534
|
+
if (state.forceGraph.d3AlphaTarget()) {
|
|
1535
|
+
state.forceGraph.d3AlphaTarget(0) // release engine low intensity
|
|
1536
|
+
.resetCountdown(); // let the engine readjust after releasing fixed nodes
|
|
1537
|
+
} // drag cursor
|
|
1538
|
+
|
|
1554
1539
|
|
|
1555
1540
|
state.canvas.classList.remove('grabbable');
|
|
1556
1541
|
state.isPointerDragging = false;
|
|
@@ -1577,10 +1562,11 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1577
1562
|
c.translate(t.x, t.y);
|
|
1578
1563
|
c.scale(t.k, t.k);
|
|
1579
1564
|
});
|
|
1580
|
-
state.onZoom(_objectSpread2({}, t));
|
|
1565
|
+
state.onZoom && state.onZoom(_objectSpread2(_objectSpread2({}, t), _this.centerAt())); // report x,y coordinates relative to canvas center
|
|
1566
|
+
|
|
1581
1567
|
state.needsRedraw = true;
|
|
1582
1568
|
}).on('end', function (ev) {
|
|
1583
|
-
return state.onZoomEnd(_objectSpread2({}, ev.transform));
|
|
1569
|
+
return state.onZoomEnd && state.onZoomEnd(_objectSpread2(_objectSpread2({}, ev.transform), _this.centerAt()));
|
|
1584
1570
|
});
|
|
1585
1571
|
adjustCanvasSize(state);
|
|
1586
1572
|
state.forceGraph.onNeedsRedraw(function () {
|
|
@@ -1677,12 +1663,12 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1677
1663
|
state.forceGraph(ctx);
|
|
1678
1664
|
state.shadowGraph(shadowCtx); //
|
|
1679
1665
|
|
|
1680
|
-
var refreshShadowCanvas = throttle__default[
|
|
1666
|
+
var refreshShadowCanvas = throttle__default["default"](function () {
|
|
1681
1667
|
// wipe canvas
|
|
1682
1668
|
clearCanvas(shadowCtx, state.width, state.height); // Adjust link hover area
|
|
1683
1669
|
|
|
1684
1670
|
state.shadowGraph.linkWidth(function (l) {
|
|
1685
|
-
return accessorFn__default[
|
|
1671
|
+
return accessorFn__default["default"](state.linkWidth)(l) + state.linkHoverPrecision;
|
|
1686
1672
|
}); // redraw
|
|
1687
1673
|
|
|
1688
1674
|
var t = d3Zoom.zoomTransform(state.canvas);
|
|
@@ -1719,7 +1705,7 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1719
1705
|
_fn2 && _fn2(obj.d, prevObjType === objType ? prevObj.d : null);
|
|
1720
1706
|
}
|
|
1721
1707
|
|
|
1722
|
-
var tooltipContent = obj ? accessorFn__default[
|
|
1708
|
+
var tooltipContent = obj ? accessorFn__default["default"](state["".concat(obj.type.toLowerCase(), "Label")])(obj.d) || '' : '';
|
|
1723
1709
|
toolTipElem.style.visibility = tooltipContent ? 'visible' : 'hidden';
|
|
1724
1710
|
toolTipElem.innerHTML = tooltipContent; // set pointer if hovered object is clickable
|
|
1725
1711
|
|
|
@@ -1740,7 +1726,7 @@ var forceGraph = Kapsule__default['default']({
|
|
|
1740
1726
|
state.onRenderFramePost && state.onRenderFramePost(ctx, globalScale);
|
|
1741
1727
|
}
|
|
1742
1728
|
|
|
1743
|
-
TWEEN__default[
|
|
1729
|
+
TWEEN__default["default"].update(); // update canvas animation tweens
|
|
1744
1730
|
|
|
1745
1731
|
state.animationFrameRequestId = requestAnimationFrame(animate);
|
|
1746
1732
|
})();
|
package/dist/force-graph.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ type DagMode = 'td' | 'bu' | 'lr' | 'rl' | 'radialout' | 'radialin';
|
|
|
30
30
|
|
|
31
31
|
interface ForceFn {
|
|
32
32
|
(alpha: number): void;
|
|
33
|
-
initialize?: (nodes: NodeObject[]) => void;
|
|
33
|
+
initialize?: (nodes: NodeObject[], ...args: any[]) => void;
|
|
34
34
|
[key: string]: any;
|
|
35
35
|
}
|
|
36
36
|
|