Merge branch 'demo' into refactor/nodes-match-functionality

This commit is contained in:
Björn Otgaar
2026-01-07 13:15:40 +01:00
15 changed files with 522 additions and 70 deletions

View File

@@ -20,7 +20,10 @@ import { BasicBeliefReduce } from './BasicBeliefNode';
export type NormNodeData = {
label: string;
droppable: boolean;
<<<<<<< HEAD
condition?: string; // id of this node's belief.
=======
>>>>>>> demo
norm: string;
hasReduce: boolean;
critical: boolean;
@@ -70,12 +73,15 @@ export default function NormNode(props: NodeProps<NormNode>) {
/>
</div>
<<<<<<< HEAD
{data.condition && (<div className={"flex-row gap-md align-center"} data-testid="norm-condition-information">
<label htmlFor={checkbox_id}>Condition/ Belief attached.</label>
</div>)}
<Handle type="source" position={Position.Right} id="phase"/>
<Handle type="target" position={Position.Bottom} id="belief"/>
=======
<Handle type="source" position={Position.Right} id="norms"/>
<Handle type="target" position={Position.Bottom} id="norms"/>
>>>>>>> demo
</div>
</>;
};
@@ -89,7 +95,9 @@ export default function NormNode(props: NodeProps<NormNode>) {
export function NormReduce(node: Node, nodes: Node[]) {
const data = node.data as NormNodeData;
// Build the result object
<<<<<<< HEAD
=======
// conditions nodes - make sure to check for empty arrays
const result: Record<string, unknown> = {
id: node.id,
label: data.label,
@@ -97,6 +105,7 @@ export function NormReduce(node: Node, nodes: Node[]) {
critical: data.critical,
};
<<<<<<< HEAD
if (data.condition) {
const reducer = BasicBeliefReduce; // TODO: also add inferred.
const conditionNode = nodes.find((node) => node.id === data.condition);
@@ -104,7 +113,6 @@ export function NormReduce(node: Node, nodes: Node[]) {
if (conditionNode == undefined) return result;
result["condition"] = reducer(conditionNode, nodes)
}
return result
}