Files
lucent-laravel/front/js/svelte/records/elements/reference.js
T

25 lines
806 B
JavaScript
Raw Normal View History

2023-10-13 21:06:23 +03:00
import {uniqBy} from "lodash";
export function insertEdges(graph, sourceRecord, targetRecords, fieldName, action = "") {
let newEdges = targetRecords.map((r) => {
return {
target: r.id,
source: sourceRecord.id,
sourceSchema: sourceRecord.schema,
targetSchema: r.schema,
field: fieldName,
2023-11-01 13:09:32 +02:00
depth: 1,
2023-10-13 21:06:23 +03:00
rank: ""
};
});
let replacedEdges = graph.edges;
if (action === "replace") {
replacedEdges = replacedEdges.filter((edge) => edge.field !== field.name);
}
graph.records = uniqBy([...graph.records, ...targetRecords], (r) => r.id);
2023-11-01 13:09:32 +02:00
graph.edges = uniqBy([...replacedEdges, ...newEdges], (edge) => edge.source + edge.target + edge.field + edge.depth);
2023-10-13 21:06:23 +03:00
return graph;
}