force-graph 1.49.2 → 1.49.4

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.
@@ -1,5 +1,5 @@
1
1
  import { select } from 'd3-selection';
2
- import { zoom, zoomTransform } from 'd3-zoom';
2
+ import { zoomTransform, zoom } from 'd3-zoom';
3
3
  import { drag } from 'd3-drag';
4
4
  import { sum, min, max } from 'd3-array';
5
5
  import { throttle } from 'lodash-es';
@@ -8,14 +8,14 @@ import Kapsule from 'kapsule';
8
8
  import accessorFn from 'accessor-fn';
9
9
  import ColorTracker from 'canvas-color-tracker';
10
10
  import Tooltip from 'float-tooltip';
11
- import { forceSimulation, forceLink, forceManyBody, forceCenter, forceRadial } from 'd3-force-3d';
11
+ import { forceRadial, forceSimulation, forceLink, forceManyBody, forceCenter } from 'd3-force-3d';
12
12
  import { Bezier } from 'bezier-js';
13
13
  import indexBy from 'index-array-by';
14
14
  import { scaleOrdinal } from 'd3-scale';
15
15
  import { schemePaired } from 'd3-scale-chromatic';
16
16
 
17
17
  function styleInject(css, ref) {
18
- if (ref === undefined) ref = {};
18
+ if (ref === void 0) ref = {};
19
19
  var insertAt = ref.insertAt;
20
20
  if (typeof document === 'undefined') {
21
21
  return;
@@ -139,8 +139,8 @@ function _toConsumableArray(r) {
139
139
  function _toPrimitive(t, r) {
140
140
  if ("object" != typeof t || !t) return t;
141
141
  var e = t[Symbol.toPrimitive];
142
- if (undefined !== e) {
143
- var i = e.call(t, r || "default");
142
+ if (void 0 !== e) {
143
+ var i = e.call(t, r);
144
144
  if ("object" != typeof i) return i;
145
145
  throw new TypeError("@@toPrimitive must return a primitive value.");
146
146
  }
@@ -163,7 +163,7 @@ function _unsupportedIterableToArray(r, a) {
163
163
  if (r) {
164
164
  if ("string" == typeof r) return _arrayLikeToArray(r, a);
165
165
  var t = {}.toString.call(r).slice(8, -1);
166
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : undefined;
166
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
167
167
  }
168
168
  }
169
169
 
@@ -186,11 +186,11 @@ function getDagDepths (_ref, idAccessor) {
186
186
  links = _ref.links;
187
187
  var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
188
188
  _ref2$nodeFilter = _ref2.nodeFilter,
189
- nodeFilter = _ref2$nodeFilter === undefined ? function () {
189
+ nodeFilter = _ref2$nodeFilter === void 0 ? function () {
190
190
  return true;
191
191
  } : _ref2$nodeFilter,
192
192
  _ref2$onLoopError = _ref2.onLoopError,
193
- onLoopError = _ref2$onLoopError === undefined ? function (loopIds) {
193
+ onLoopError = _ref2$onLoopError === void 0 ? function (loopIds) {
194
194
  throw "Invalid DAG structure! Found cycle in node path: ".concat(loopIds.join(' -> '), ".");
195
195
  } : _ref2$onLoopError;
196
196
  // linked graph
@@ -1414,6 +1414,10 @@ var forceGraph = Kapsule({
1414
1414
  var initPos = obj.__initialDragPos;
1415
1415
  var dragPos = ev;
1416
1416
  var k = zoomTransform(state.canvas).k;
1417
+ var translate = {
1418
+ x: initPos.x + (dragPos.x - initPos.x) / k - obj.x,
1419
+ y: initPos.y + (dragPos.y - initPos.y) / k - obj.y
1420
+ };
1417
1421
 
1418
1422
  // Move fx/fy (and x/y) of nodes based on the scaled drag distance since the drag start
1419
1423
  ['x', 'y'].forEach(function (c) {
@@ -1424,10 +1428,6 @@ var forceGraph = Kapsule({
1424
1428
  if (!obj.__dragged && DRAG_CLICK_TOLERANCE_PX >= Math.sqrt(sum(['x', 'y'].map(function (k) {
1425
1429
  return Math.pow(ev[k] - initPos[k], 2);
1426
1430
  })))) return;
1427
- var translate = {
1428
- x: initPos.x + (dragPos.x - initPos.x) / k - obj.x,
1429
- y: initPos.y + (dragPos.y - initPos.y) / k - obj.y
1430
- };
1431
1431
  state.forceGraph.d3AlphaTarget(0.3) // keep engine running at low intensity throughout drag
1432
1432
  .resetCountdown(); // prevent freeze while dragging
1433
1433
 
@@ -1479,10 +1479,12 @@ var forceGraph = Kapsule({
1479
1479
  c.translate(t.x, t.y);
1480
1480
  c.scale(t.k, t.k);
1481
1481
  });
1482
+ state.isPointerDragging = true;
1482
1483
  state.onZoom && state.onZoom(_objectSpread2(_objectSpread2({}, t), _this.centerAt())); // report x,y coordinates relative to canvas center
1483
1484
  state.needsRedraw = true;
1484
1485
  }).on('end', function (ev) {
1485
- return state.onZoomEnd && state.onZoomEnd(_objectSpread2(_objectSpread2({}, ev.transform), _this.centerAt()));
1486
+ state.isPointerDragging = false;
1487
+ state.onZoomEnd && state.onZoomEnd(_objectSpread2(_objectSpread2({}, ev.transform), _this.centerAt()));
1486
1488
  });
1487
1489
  adjustCanvasSize(state);
1488
1490
  state.forceGraph.onNeedsRedraw(function () {
@@ -1549,7 +1551,7 @@ var forceGraph = Kapsule({
1549
1551
  // mouse left-click or touch
1550
1552
  if (state.hoverObj) {
1551
1553
  var fn = state["on".concat(state.hoverObj.type, "Click")];
1552
- fn && fn.apply(undefined, [state.hoverObj.d].concat(cbEvents));
1554
+ fn && fn.apply(void 0, [state.hoverObj.d].concat(cbEvents));
1553
1555
  } else {
1554
1556
  state.onBackgroundClick && state.onBackgroundClick.apply(state, cbEvents);
1555
1557
  }
@@ -1558,7 +1560,7 @@ var forceGraph = Kapsule({
1558
1560
  // mouse right-click
1559
1561
  if (state.hoverObj) {
1560
1562
  var _fn = state["on".concat(state.hoverObj.type, "RightClick")];
1561
- _fn && _fn.apply(undefined, [state.hoverObj.d].concat(cbEvents));
1563
+ _fn && _fn.apply(void 0, [state.hoverObj.d].concat(cbEvents));
1562
1564
  } else {
1563
1565
  state.onBackgroundRightClick && state.onBackgroundRightClick.apply(state, cbEvents);
1564
1566
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "force-graph",
3
- "version": "1.49.2",
3
+ "version": "1.49.4",
4
4
  "description": "2D force-directed graph rendered on HTML5 canvas",
5
5
  "type": "module",
6
6
  "unpkg": "dist/force-graph.min.js",
@@ -64,18 +64,18 @@
64
64
  "lodash-es": "4"
65
65
  },
66
66
  "devDependencies": {
67
- "@babel/core": "^7.26.0",
68
- "@babel/preset-env": "^7.26.0",
67
+ "@babel/core": "^7.26.9",
68
+ "@babel/preset-env": "^7.26.9",
69
69
  "@rollup/plugin-babel": "^6.0.4",
70
- "@rollup/plugin-commonjs": "^28.0.2",
70
+ "@rollup/plugin-commonjs": "^28.0.3",
71
71
  "@rollup/plugin-node-resolve": "^16.0.0",
72
72
  "@rollup/plugin-terser": "^0.4.4",
73
- "postcss": "^8.5.1",
73
+ "postcss": "^8.5.3",
74
74
  "rimraf": "^6.0.1",
75
- "rollup": "^4.30.1",
75
+ "rollup": "^4.34.9",
76
76
  "rollup-plugin-dts": "^6.1.1",
77
77
  "rollup-plugin-postcss": "^4.0.2",
78
- "typescript": "^5.7.3"
78
+ "typescript": "^5.8.2"
79
79
  },
80
80
  "engines": {
81
81
  "node": ">=12"
@@ -420,6 +420,10 @@ export default Kapsule({
420
420
  const dragPos = ev;
421
421
 
422
422
  const k = d3ZoomTransform(state.canvas).k;
423
+ const translate = {
424
+ x: (initPos.x + (dragPos.x - initPos.x) / k) - obj.x,
425
+ y: (initPos.y + (dragPos.y - initPos.y) / k) - obj.y
426
+ };
423
427
 
424
428
  // Move fx/fy (and x/y) of nodes based on the scaled drag distance since the drag start
425
429
  ['x', 'y'].forEach(c => obj[`f${c}`] = obj[c] = initPos[c] + (dragPos[c] - initPos[c]) / k);
@@ -428,11 +432,6 @@ export default Kapsule({
428
432
  if (!obj.__dragged && (DRAG_CLICK_TOLERANCE_PX >= Math.sqrt(d3Sum(['x', 'y'].map(k => (ev[k] - initPos[k])**2)))))
429
433
  return;
430
434
 
431
- const translate = {
432
- x: (initPos.x + (dragPos.x - initPos.x) / k) - obj.x,
433
- y: (initPos.y + (dragPos.y - initPos.y) / k) - obj.y
434
- };
435
-
436
435
  state.forceGraph
437
436
  .d3AlphaTarget(0.3) // keep engine running at low intensity throughout drag
438
437
  .resetCountdown(); // prevent freeze while dragging
@@ -489,10 +488,14 @@ export default Kapsule({
489
488
  c.translate(t.x, t.y);
490
489
  c.scale(t.k, t.k);
491
490
  });
491
+ state.isPointerDragging = true;
492
492
  state.onZoom && state.onZoom({ ...t, ...this.centerAt() }); // report x,y coordinates relative to canvas center
493
493
  state.needsRedraw = true;
494
494
  })
495
- .on('end', ev => state.onZoomEnd && state.onZoomEnd({ ...ev.transform, ...this.centerAt() }));
495
+ .on('end', ev => {
496
+ state.isPointerDragging = false;
497
+ state.onZoomEnd && state.onZoomEnd({ ...ev.transform, ...this.centerAt() });
498
+ });
496
499
 
497
500
  adjustCanvasSize(state);
498
501