@neo4j-nvl/react 0.2.9 → 0.2.11
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/lib/basic-wrapper/BasicNvlWrapper.d.ts +2 -2
- package/lib/basic-wrapper/BasicNvlWrapper.js +5 -3
- package/lib/index.d.ts +1 -1
- package/lib/interactive-nvl-wrapper/InteractiveNvlWrapper.d.ts +1 -1
- package/lib/utils/graphComparison.d.ts +1 -1
- package/lib/utils/graphComparison.js +7 -7
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { NvlOptions, Node, Relationship, LayoutOptions, Layout, ExternalCallbacks } from '@neo4j-nvl/core';
|
|
1
|
+
import type { ExternalCallbacks, Layout, LayoutOptions, Node, NvlOptions, Relationship } from '@neo4j-nvl/core';
|
|
3
2
|
import NVL from '@neo4j-nvl/core';
|
|
3
|
+
import React from 'react';
|
|
4
4
|
type IncludeMethods<T> = Pick<T, {
|
|
5
5
|
[K in keyof T]: T[K] extends (_: unknown) => unknown ? K : never;
|
|
6
6
|
}[keyof T]>;
|
|
@@ -9,8 +9,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import React, { useEffect, useState, useRef, forwardRef, useImperativeHandle, memo } from 'react';
|
|
13
12
|
import NVL from '@neo4j-nvl/core';
|
|
13
|
+
import React, { forwardRef, memo, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
14
14
|
import { getMapDifferences, getNodeAttributeDifferences } from '../utils/graphComparison';
|
|
15
15
|
import { useDeepCompareEffect } from '../utils/hooks';
|
|
16
16
|
/**
|
|
@@ -147,8 +147,10 @@ export const BasicNvlWrapper = memo(forwardRef((_a, ref) => {
|
|
|
147
147
|
const relChanges = getMapDifferences(currentRels, rels);
|
|
148
148
|
setCurrentRels(rels);
|
|
149
149
|
setCurrentNodes(nodes);
|
|
150
|
-
nvlRef.current &&
|
|
151
|
-
|
|
150
|
+
nvlRef.current &&
|
|
151
|
+
nvlRef.current.addAndUpdateElementsInGraph([...nodeChanges.added, ...nodeDiff], [...relChanges.added, ...relChanges.updated]);
|
|
152
|
+
nvlRef.current &&
|
|
153
|
+
nvlRef.current.removeRelationshipsWithIds(relChanges.removed.map((r) => r.id));
|
|
152
154
|
nvlRef.current && nvlRef.current.removeNodesWithIds(nodeChanges.removed.map((n) => n.id));
|
|
153
155
|
}, [nodes, rels]);
|
|
154
156
|
useEffect(() => {
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BasicNvlWrapper } from './basic-wrapper/BasicNvlWrapper';
|
|
2
2
|
import type { BasicReactWrapperProps } from './basic-wrapper/BasicNvlWrapper';
|
|
3
3
|
import { InteractiveNvlWrapper } from './interactive-nvl-wrapper/InteractiveNvlWrapper';
|
|
4
|
-
import type {
|
|
4
|
+
import type { InteractionOptions, InteractiveNvlWrapperProps, MouseEvent, MouseEventCallbacks } from './interactive-nvl-wrapper/InteractiveNvlWrapper';
|
|
5
5
|
export { BasicNvlWrapper, InteractiveNvlWrapper };
|
|
6
6
|
export type { MouseEventCallbacks, MouseEvent, BasicReactWrapperProps, InteractionOptions, InteractiveNvlWrapperProps };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type NVL from '@neo4j-nvl/core';
|
|
2
|
-
import type { ClickInteractionOptions,
|
|
2
|
+
import type { ClickInteractionCallbacks, ClickInteractionOptions, DragNodeInteractionCallbacks, DrawInteractionCallbacks, HoverInteractionCallbacks, HoverInteractionOptions, MultiSelectInteractionCallbacks, MultiSelectInteractionOptions, PanInteractionCallbacks, ZoomInteractionCallbacks } from '@neo4j-nvl/interaction-handlers';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import type { BasicReactWrapperProps } from '../basic-wrapper/BasicNvlWrapper';
|
|
5
5
|
/**
|
|
@@ -5,4 +5,4 @@ declare const getMapDifferences: <T extends Node | Relationship>(prevGraphElemen
|
|
|
5
5
|
updated: T[];
|
|
6
6
|
};
|
|
7
7
|
declare const getNodeAttributeDifferences: (prevNodes: Node[], newNodes: Node[]) => Node[];
|
|
8
|
-
export { getNodeAttributeDifferences, getMapDifferences
|
|
8
|
+
export { getNodeAttributeDifferences, getMapDifferences };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isEqual, keyBy,
|
|
1
|
+
import { isEqual, keyBy, keys, sortBy, transform } from 'lodash';
|
|
2
2
|
const getMapDifferences = (prevGraphElements, newGraphElements) => {
|
|
3
3
|
const prevMap = keyBy(prevGraphElements, 'id');
|
|
4
4
|
const currentMap = keyBy(newGraphElements, 'id');
|
|
@@ -35,15 +35,15 @@ const getMapDifferences = (prevGraphElements, newGraphElements) => {
|
|
|
35
35
|
added.push(currentIds[j++]);
|
|
36
36
|
}
|
|
37
37
|
return {
|
|
38
|
-
added: added.map(id => currentMap[id]),
|
|
39
|
-
removed: removed.map(id => prevMap[id]),
|
|
40
|
-
updated: updated.map(id => currentMap[id])
|
|
38
|
+
added: added.map((id) => currentMap[id]),
|
|
39
|
+
removed: removed.map((id) => prevMap[id]),
|
|
40
|
+
updated: updated.map((id) => currentMap[id])
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
43
|
const getNodeAttributeDifferences = (prevNodes, newNodes) => {
|
|
44
44
|
const prevNodeMap = keyBy(prevNodes, 'id');
|
|
45
45
|
return newNodes
|
|
46
|
-
.map(nodeToUpdate => {
|
|
46
|
+
.map((nodeToUpdate) => {
|
|
47
47
|
const previousNode = prevNodeMap[nodeToUpdate.id];
|
|
48
48
|
if (!previousNode) {
|
|
49
49
|
return null;
|
|
@@ -54,6 +54,6 @@ const getNodeAttributeDifferences = (prevNodes, newNodes) => {
|
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
})
|
|
57
|
-
.filter(n => n && Object.keys(n).length > 1);
|
|
57
|
+
.filter((n) => n && Object.keys(n).length > 1);
|
|
58
58
|
};
|
|
59
|
-
export { getNodeAttributeDifferences, getMapDifferences
|
|
59
|
+
export { getNodeAttributeDifferences, getMapDifferences };
|