force-graph 1.44.0 → 1.44.2

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,4 +1,4 @@
1
- // Version 1.44.0 force-graph - https://github.com/vasturiano/force-graph
1
+ // Version 1.44.2 force-graph - https://github.com/vasturiano/force-graph
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -11612,7 +11612,7 @@
11612
11612
  // Main canvas object to manipulate
11613
11613
  state.ctx = canvasCtx;
11614
11614
  },
11615
- update: function update(state) {
11615
+ update: function update(state, changedProps) {
11616
11616
  state.engineRunning = false; // Pause simulation
11617
11617
  state.onUpdate();
11618
11618
  if (state.nodeAutoColorBy !== null) {
@@ -11652,18 +11652,23 @@
11652
11652
  var maxDepth = Math.max.apply(Math, _toConsumableArray$2(Object.values(nodeDepths || [])));
11653
11653
  var dagLevelDistance = state.dagLevelDistance || state.graphData.nodes.length / (maxDepth || 1) * DAG_LEVEL_NODE_RATIO * (['radialin', 'radialout'].indexOf(state.dagMode) !== -1 ? 0.7 : 1);
11654
11654
 
11655
+ // Reset relevant fx/fy when swapping dag modes
11656
+ if (['lr', 'rl', 'td', 'bu'].includes(changedProps.dagMode)) {
11657
+ var resetProp = ['lr', 'rl'].includes(changedProps.dagMode) ? 'fx' : 'fy';
11658
+ state.graphData.nodes.filter(state.dagNodeFilter).forEach(function (node) {
11659
+ return delete node[resetProp];
11660
+ });
11661
+ }
11662
+
11655
11663
  // Fix nodes to x,y for dag mode
11656
- if (state.dagMode) {
11657
- var getFFn = function getFFn(fix, invert) {
11658
- return function (node) {
11659
- return !fix ? undefined : (nodeDepths[node[state.nodeId]] - maxDepth / 2) * dagLevelDistance * (invert ? -1 : 1);
11660
- };
11664
+ if (['lr', 'rl', 'td', 'bu'].includes(state.dagMode)) {
11665
+ var invert = ['rl', 'bu'].includes(state.dagMode);
11666
+ var fixFn = function fixFn(node) {
11667
+ return (nodeDepths[node[state.nodeId]] - maxDepth / 2) * dagLevelDistance * (invert ? -1 : 1);
11661
11668
  };
11662
- var fxFn = getFFn(['lr', 'rl'].indexOf(state.dagMode) !== -1, state.dagMode === 'rl');
11663
- var fyFn = getFFn(['td', 'bu'].indexOf(state.dagMode) !== -1, state.dagMode === 'bu');
11669
+ var _resetProp = ['lr', 'rl'].includes(state.dagMode) ? 'fx' : 'fy';
11664
11670
  state.graphData.nodes.filter(state.dagNodeFilter).forEach(function (node) {
11665
- node.fx = fxFn(node);
11666
- node.fy = fyFn(node);
11671
+ return node[_resetProp] = fixFn(node);
11667
11672
  });
11668
11673
  }
11669
11674