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

32 lines
729 B
JavaScript
Raw Normal View History

2026-01-07 21:42:18 +02:00
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,
depth: 1,
rank: "",
};
});
2023-10-13 21:06:23 +03:00
2026-01-07 21:42:18 +02:00
let replacedEdges = graph.edges;
if (action === "replace") {
replacedEdges = replacedEdges.filter((edge) => edge.field !== field.name);
}
2023-10-13 21:06:23 +03:00
2026-01-07 21:42:18 +02:00
graph.records = uniqBy([...graph.records, ...targetRecords], (r) => r.id);
graph.edges = uniqBy(
[...replacedEdges, ...newEdges],
(edge) => edge.source + edge.target + edge.field + edge.depth,
);
return graph;
2023-10-13 21:06:23 +03:00
}