block graph

This commit is contained in:
2023-10-14 20:26:57 +03:00
parent 2e81d27ff6
commit 237d234e51
4 changed files with 25 additions and 13 deletions
+22 -11
View File
@@ -8,20 +8,28 @@
const channel = getContext("channel");
export let graph;
export let record;
function findEdgeField(schema, edgeField){
if(edgeField.includes(":")){
let edgeFieldAr = edgeField.split(":");
edgeField = edgeFieldAr[0];
}
return schema.fields.find((f) => f.name === edgeField);
}
let parentEdgesByField = graph.parentEdges
.filter((edge) => edge.source !== record.id && edge.depth === 1)
.reduce((carry, edge) => {
let schemaField = edge.sourceSchema + edge.field;
let schema = channel.schemas.find((s) => s.name === edge.sourceSchema);
let edgeField = findEdgeField(schema,edge.field);
let schemaField = edge.sourceSchema + edgeField;
let arecord = graph.records.find((n) => {
return n.id === edge.source;
});
if (!carry[schemaField]) {
let schema = channel.schemas.find((s) => s.name === edge.sourceSchema);
carry[schemaField] = {
field: schema.fields.find((f) => f.name === edge.field),
field: edgeField,
schema: schema,
nodes: [],
};
@@ -31,18 +39,21 @@
}
return carry;
}, {});
console.log(parentEdgesByField)
let childrenEdgesByField = graph.edges
.filter((edge) => edge.source === record.id && edge.depth === 0)
.filter((edge) => edge.source === record.id && edge.depth === 1)
.reduce((carry, edge) => {
let schemaField = edge.targetSchema + edge.field;
let schema = channel.schemas.find((s) => s.name === record.schema);
let edgeField = findEdgeField(schema,edge.field);
// let schemaField = edge.targetSchema + edgeField;
let schemaField = edgeField;
if (!carry[schemaField]) {
carry[schemaField] = {
field: channel.schemas
.find((s) => s.name === record.schema)
.fields.find((f) => f.name === edge.field),
field: edgeField,
nodes: [],
};
}