feat(utils): create helper function for creating edges
This commit is contained in:
+18
-1
@@ -1,5 +1,7 @@
|
||||
import { zoomIdentity } from 'd3-zoom';
|
||||
|
||||
import store from '../store';
|
||||
import { isDefined } from './index';
|
||||
|
||||
export const isEdge = element => element.source && element.target;
|
||||
|
||||
@@ -14,7 +16,7 @@ export const getOutgoers = (node, elements) => {
|
||||
return elements.filter(e => outgoerIds.includes(e.id));
|
||||
};
|
||||
|
||||
export const removeElements = (elements, elementsToRemove) => {
|
||||
export const removeElements = (elementsToRemove, elements) => {
|
||||
const nodeIdsToRemove = elementsToRemove.map(n => n.id);
|
||||
|
||||
return elements.filter(e => {
|
||||
@@ -26,6 +28,21 @@ export const removeElements = (elements, elementsToRemove) => {
|
||||
});
|
||||
};
|
||||
|
||||
function getEdgeId(params) {
|
||||
return `reactflow__edge-${params.source}-${params.target}`;
|
||||
}
|
||||
|
||||
export const addEdge = (edgeParams, elements) => {
|
||||
if (!edgeParams.source || !edgeParams.target) {
|
||||
throw new Error('Can not create edge. An edge needs a source and a target');
|
||||
}
|
||||
|
||||
return elements.concat({
|
||||
...edgeParams,
|
||||
id: isDefined(edgeParams.id) ? edgeParams.id : getEdgeId(edgeParams)
|
||||
});
|
||||
}
|
||||
|
||||
const pointToRendererPoint = ({ x, y }, transform) => {
|
||||
const rendererX = (x - transform[0]) * (1 / [transform[2]]);
|
||||
const rendererY = (y - transform[1]) * (1 / [transform[2]]);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
export const isFunction = obj => !!(obj && obj.constructor && obj.call && obj.apply);
|
||||
|
||||
export const isDefined = obj => typeof obj !== 'undefined';
|
||||
|
||||
export const inInputDOMNode = e => e && e.target && ['INPUT', 'SELECT', 'TEXTAREA'].includes(e.target.nodeName);
|
||||
|
||||
export const getDimensions = (node = {}) => ({
|
||||
|
||||
Reference in New Issue
Block a user