<script src="go.js"></script>
<script src="Figures.js"></script>
const myDiagram = new go.Diagram('myDiagramDiv', {
'draggingTool.dragsTree': true,
layout: new go.TreeLayout({
arrangement: go.TreeArrangement.FixedRoots,
'undoManager.isEnabled': true,
function nodeFillConverter(figure) {
return new go.Brush('Linear', { 0: '#EA8100', 1: '#C66D00', start: go.Spot.Right, end: go.Spot.Left });
return new go.Brush('Linear', { 0: '#0058D3', 1: '#004FB7', start: go.Spot.Right, end: go.Spot.Left });
return new go.Brush('Linear', { 0: '#009620', 1: '#007717' });
return new go.Brush('Linear', { 0: '#7A0099', 1: '#63007F' });
myDiagram.nodeTemplate = new go.Node('Spot', {
selectionObjectName: 'BODY',
locationSpot: go.Spot.Center,
locationObjectName: 'BODY',
new go.Panel('Auto', { name: 'BODY', portId: '' })
fill: new go.Brush('Linear', { 0: '#770000', 1: '#600000' }),
margin: new go.Margin(2, 10, 1, 10),
maxSize: new go.Size(100, NaN),
font: '10pt Segoe UI, sans-serif',
myDiagram.linkTemplate = new go.Link({
routing: go.Routing.Orthogonal,
}).add(new go.Shape({ strokeWidth: 1.5 }));
// Cargar un modelo JSON de prueba
{ key: 1, text: "Root", figure: "Circle" },
{ key: 2, parent: 1, text: "Child 1", figure: "AndGate" },
{ key: 3, parent: 1, text: "Child 2", figure: "OrGate" }
console.log('Modelo JSON:', testJson);
myDiagram.model = go.Model.fromJson(testJson);
<div id="myDiagramDiv"></div>