diff --git a/dist/ReactGraph.js b/dist/ReactGraph.js index 650a2961..e4bf6324 100644 --- a/dist/ReactGraph.js +++ b/dist/ReactGraph.js @@ -242,6 +242,14 @@ var isNode = function isNode(element) { return !element.source && !element.target; }; + var removeElements = function removeElements(elements, elementsToRemove) { + var nodeIdsToRemove = elementsToRemove.filter(isNode).map(function (n) { + return n.id; + }); + return elements.filter(function (e) { + return !nodeIdsToRemove.includes(e.id) && !nodeIdsToRemove.includes(e.target) && !nodeIdsToRemove.includes(e.source); + }); + }; var parseElements = function parseElements(e) { e.type = e.type || 'default'; @@ -33266,10 +33274,12 @@ var isNode$1 = isNode; var isEdge$1 = isEdge; + var removeElements$1 = removeElements; exports.default = ReactGraph; exports.isEdge = isEdge$1; exports.isNode = isNode$1; + exports.removeElements = removeElements$1; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/example/SimpleGraph.js b/example/SimpleGraph.js index ec00d214..1ef1fe28 100644 --- a/example/SimpleGraph.js +++ b/example/SimpleGraph.js @@ -1,6 +1,6 @@ import React, { PureComponent } from 'react'; -import Graph, { isEdge, isNode } from '../src'; +import Graph, { isEdge, removeElements } from '../src'; // import Graph from '../dist/ReactGraph'; const SpecialNode = ({ data, onChange, styles }) => ( @@ -57,12 +57,11 @@ class App extends PureComponent { } onLoad(graphInstance) { - this.graphInstance = graphInstance; console.log('graph loaded:', this.graphInstance); - window.rg = graphInstance; - this.graphInstance.fitView(); + this.graphInstance = graphInstance; + this.graphInstance.fitView(); this.setState({ graphLoaded: true }); @@ -98,17 +97,9 @@ class App extends PureComponent { this.graphInstance.zoomOut(); } - onElementsRemove(elements) { - const nodeIds = elements.filter(isNode).map(n => n.id); - + onElementsRemove(elementsToRemove) { this.setState(prevState => ({ - elements: prevState.elements.filter(e => { - return ( - !nodeIds.includes(e.id) && - !nodeIds.includes(e.target) && - !nodeIds.includes(e.source) - ); - }) + elements: removeElements(prevState.elements, elementsToRemove) })); } diff --git a/src/graph-utils.js b/src/graph-utils.js index 4790d322..36bdc1b9 100644 --- a/src/graph-utils.js +++ b/src/graph-utils.js @@ -1,6 +1,19 @@ export const isEdge = element => element.source && element.target; + export const isNode = element => !element.source && !element.target; +export const removeElements = (elements, elementsToRemove) => { + const nodeIdsToRemove = elementsToRemove.filter(isNode).map(n => n.id); + + return elements.filter(e => { + return ( + !nodeIdsToRemove.includes(e.id) && + !nodeIdsToRemove.includes(e.target) && + !nodeIdsToRemove.includes(e.source) + ); + }); +} + export const parseElements = e => { e.type = e.type || 'default'; diff --git a/src/index.js b/src/index.js index 55c616ef..2dc138ee 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,12 @@ import ReactGraph from './ReactGraph'; -import { isNode as isNodeRG , isEdge as isEdgeRG } from './graph-utils'; +import { + isNode as _isNode , + isEdge as _isEdge, + removeElements as _removeElements +} from './graph-utils'; -export const isNode = isNodeRG; -export const isEdge = isEdgeRG; +export const isNode = _isNode; +export const isEdge = _isEdge; +export const removeElements = _removeElements; export default ReactGraph; \ No newline at end of file