1 | (function (factory) {
|
2 | if (typeof module === "object" && typeof module.exports === "object") {
|
3 | var v = factory(require, exports);
|
4 | if (v !== undefined) module.exports = v;
|
5 | }
|
6 | else if (typeof define === "function" && define.amd) {
|
7 | define(["require", "exports", "../release/go.js"], factory);
|
8 | }
|
9 | })(function (require, exports) {
|
10 | 'use strict';
|
11 | Object.defineProperty(exports, "__esModule", { value: true });
|
12 | exports.showArrowInfo = exports.infoString = exports.init = void 0;
|
13 | |
14 |
|
15 |
|
16 | var go = require("../release/go.js");
|
17 | function init() {
|
18 | if (window.goSamples)
|
19 | window.goSamples();
|
20 | var $ = go.GraphObject.make;
|
21 | var myDiagram = $(go.Diagram, 'myDiagramDiv',
|
22 | {
|
23 | isReadOnly: true,
|
24 | layout: $(go.CircularLayout, {
|
25 | radius: 100,
|
26 | spacing: 0,
|
27 | nodeDiameterFormula: go.CircularLayout.Circular,
|
28 | startAngle: 270
|
29 | }),
|
30 |
|
31 | 'LayoutCompleted': function (e) {
|
32 |
|
33 | var cntr = myDiagram.findNodeForKey('Center');
|
34 | if (cntr !== null)
|
35 | cntr.location = myDiagram.layout.actualCenter;
|
36 | }
|
37 | });
|
38 |
|
39 | var radBrush = $(go.Brush, 'Radial', { 0: '#550266', 1: '#80418C' });
|
40 |
|
41 | myDiagram.nodeTemplate =
|
42 | $(go.Node, $(go.Shape, 'Circle', {
|
43 | desiredSize: new go.Size(28, 28),
|
44 | fill: radBrush, strokeWidth: 0, stroke: null
|
45 | }),
|
46 | {
|
47 | locationSpot: go.Spot.Center,
|
48 | click: showArrowInfo,
|
49 | toolTip:
|
50 | $('ToolTip', $(go.TextBlock, { margin: 4 }, new go.Binding('text', '', infoString).ofObject()))
|
51 | });
|
52 |
|
53 | myDiagram.nodeTemplateMap.add('Center', $(go.Node, 'Spot', {
|
54 | selectable: false,
|
55 | isLayoutPositioned: false,
|
56 | locationSpot: go.Spot.Center
|
57 | }, $(go.Shape, 'Circle', { fill: radBrush, strokeWidth: 0, stroke: null, desiredSize: new go.Size(200, 200) }),
|
58 | $(go.TextBlock, 'Arrowheads', { margin: 1, stroke: 'white', font: 'bold 14px sans-serif' })));
|
59 |
|
60 |
|
61 | myDiagram.linkTemplate =
|
62 | $(go.Link,
|
63 | { routing: go.Link.Normal }, $(go.Shape,
|
64 |
|
65 | { stroke: 'gray', strokeWidth: 2 }), $(go.Shape,
|
66 | new go.Binding('fromArrow', 'fromArrow'), { scale: 2, fill: '#D4B52C' }), $(go.Shape,
|
67 | new go.Binding('toArrow', 'toArrow'), { scale: 2, fill: '#D4B52C' }), {
|
68 | click: showArrowInfo,
|
69 | toolTip:
|
70 | $('ToolTip', $(go.TextBlock, { margin: 4 }, new go.Binding('text', '', infoString).ofObject()))
|
71 | });
|
72 |
|
73 | var arrowheads = go.Shape.getArrowheadGeometries().toKeySet().toArray();
|
74 | if (arrowheads.length % 2 === 1)
|
75 | arrowheads.push('');
|
76 |
|
77 | var linkdata = [];
|
78 | var i = 0;
|
79 | for (var j = 0; j < arrowheads.length; j = j + 2) {
|
80 | linkdata.push({ from: 'Center', to: i++, toArrow: arrowheads[j], fromArrow: arrowheads[j + 1] });
|
81 | }
|
82 | myDiagram.model =
|
83 | $(go.GraphLinksModel, {
|
84 |
|
85 | archetypeNodeData: {},
|
86 |
|
87 | nodeDataArray: [{ category: 'Center', key: 'Center' }],
|
88 |
|
89 | linkDataArray: linkdata
|
90 | });
|
91 | }
|
92 | exports.init = init;
|
93 |
|
94 | function infoString(obj) {
|
95 | var part = obj.part;
|
96 | if (part instanceof go.Adornment)
|
97 | part = part.adornedPart;
|
98 | var msg = '';
|
99 | if (part instanceof go.Link) {
|
100 | var link = part;
|
101 | msg = 'toArrow: ' + link.data.toArrow + ';\nfromArrow: ' + link.data.fromArrow;
|
102 | }
|
103 | else if (part instanceof go.Node) {
|
104 | var node = part;
|
105 | var link = node.linksConnected.first();
|
106 | if (link)
|
107 | msg = 'toArrow: ' + link.data.toArrow + ';\nfromArrow: ' + link.data.fromArrow;
|
108 | }
|
109 | return msg;
|
110 | }
|
111 | exports.infoString = infoString;
|
112 |
|
113 | function showArrowInfo(e, obj) {
|
114 | var msg = infoString(obj);
|
115 | if (msg) {
|
116 | var status_1 = document.getElementById('myArrowheadInfo');
|
117 | if (status_1)
|
118 | status_1.textContent = msg;
|
119 | }
|
120 | }
|
121 | exports.showArrowInfo = showArrowInfo;
|
122 | });
|