@react-fabric/graph 1.0.0-beta.59 → 1.0.0-beta.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Context.js +6 -6
- package/dist/cjs/components/ContextMenu.js +8 -9
- package/dist/cjs/components/Tools.js +102 -24
- package/dist/cjs/components/Viewer.js +1 -0
- package/dist/cjs/graph/index.js +73 -66
- package/dist/cjs/hooks/useSigma.js +5 -5
- package/dist/cjs/programs/arrow-head/frag.glsl.js +1 -1
- package/dist/cjs/programs/arrow-head/index.js +1 -1
- package/dist/cjs/programs/arrow-head/vert.glsl.js +1 -1
- package/dist/cjs/programs/edge-curve/index.js +2 -2
- package/dist/cjs/programs/edge-line/index.js +2 -2
- package/dist/cjs/programs/node-badge/vert.glsl.js +1 -1
- package/dist/cjs/programs/node-circle/base/drawHover.js +2 -1
- package/dist/cjs/programs/node-circle/base/drawLabel.js +2 -1
- package/dist/cjs/programs/node-rect/base/drawHover.js +2 -1
- package/dist/cjs/programs/node-rect/base/drawLabel.js +2 -1
- package/dist/esm/components/Context.js +6 -6
- package/dist/esm/components/ContextMenu.js +8 -9
- package/dist/esm/components/Tools.js +102 -24
- package/dist/esm/components/Viewer.js +1 -0
- package/dist/esm/graph/index.js +74 -67
- package/dist/esm/hooks/useSigma.js +5 -5
- package/dist/esm/programs/arrow-head/frag.glsl.js +1 -1
- package/dist/esm/programs/arrow-head/index.js +1 -1
- package/dist/esm/programs/arrow-head/vert.glsl.js +1 -1
- package/dist/esm/programs/edge-curve/index.js +2 -2
- package/dist/esm/programs/edge-line/index.js +2 -2
- package/dist/esm/programs/node-badge/vert.glsl.js +1 -1
- package/dist/esm/programs/node-circle/base/drawHover.js +2 -1
- package/dist/esm/programs/node-circle/base/drawLabel.js +2 -1
- package/dist/esm/programs/node-rect/base/drawHover.js +2 -1
- package/dist/esm/programs/node-rect/base/drawLabel.js +2 -1
- package/dist/types/components/Context.d.ts +3 -3
- package/dist/types/components/Viewer.d.ts +1 -1
- package/dist/types/graph/index.d.ts +9 -4
- package/dist/types/hooks/sigmaHilighter.d.ts +1 -1
- package/dist/types/hooks/sigmaMouseActions.d.ts +1 -1
- package/dist/types/hooks/useGraphology.d.ts +1 -1
- package/dist/types/hooks/useSigma.d.ts +2 -2
- package/dist/types/programs/arrow-head/index.d.ts +4 -4
- package/dist/types/programs/edge-curve/index.d.ts +1 -1
- package/dist/types/programs/node-circle/base/drawHover.d.ts +1 -1
- package/dist/types/programs/node-circle/base/drawLabel.d.ts +1 -1
- package/dist/types/programs/node-circle/index.d.ts +1 -1
- package/dist/types/programs/node-rect/base/drawHover.d.ts +1 -1
- package/dist/types/programs/node-rect/base/drawLabel.d.ts +1 -1
- package/dist/types/programs/node-rect/index.d.ts +1 -1
- package/dist/types/types/index.d.ts +7 -7
- package/package.json +4 -4
- package/src/components/Context.tsx +18 -10
- package/src/components/ContextMenu.tsx +32 -14
- package/src/components/Tools.tsx +15 -16
- package/src/components/Viewer.tsx +2 -1
- package/src/graph/index.ts +68 -63
- package/src/graph/layout.worker.ts +1 -1
- package/src/hooks/sigmaHilighter.ts +2 -2
- package/src/hooks/sigmaMouseActions.ts +1 -1
- package/src/hooks/useGraphology.ts +1 -1
- package/src/hooks/useSigma.ts +8 -8
- package/src/programs/arrow-head/frag.glsl.ts +1 -1
- package/src/programs/arrow-head/index.ts +17 -8
- package/src/programs/arrow-head/vert.glsl.ts +1 -1
- package/src/programs/edge-curve/index.ts +2 -2
- package/src/programs/edge-line/index.ts +2 -2
- package/src/programs/node-badge/factory.ts +3 -3
- package/src/programs/node-badge/vert.glsl.ts +4 -4
- package/src/programs/node-circle/base/drawHover.ts +2 -2
- package/src/programs/node-circle/base/drawLabel.ts +6 -6
- package/src/programs/node-circle/index.ts +1 -1
- package/src/programs/node-rect/base/drawHover.ts +2 -2
- package/src/programs/node-rect/base/drawLabel.ts +6 -6
- package/src/programs/node-rect/index.ts +1 -1
- package/src/types/index.ts +6 -6
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
/* istanbul ignore file */
|
|
4
4
|
|
|
5
5
|
function drawNodeLabel(context, data, settings) {
|
|
6
|
+
var _ref, _data$labelColor;
|
|
6
7
|
var nodeSize = data.size;
|
|
7
8
|
var size = settings.labelSize;
|
|
8
9
|
var font = settings.labelFont;
|
|
@@ -10,7 +11,7 @@ function drawNodeLabel(context, data, settings) {
|
|
|
10
11
|
// use node color or default node color
|
|
11
12
|
var bg = settings.defaultNodeColor || "#fff";
|
|
12
13
|
// use label color or default label color
|
|
13
|
-
var color = data.labelColor
|
|
14
|
+
var color = (_ref = (_data$labelColor = data.labelColor) !== null && _data$labelColor !== void 0 ? _data$labelColor : settings.labelColor.color) !== null && _ref !== void 0 ? _ref : "#000";
|
|
14
15
|
if (data.highlight) {
|
|
15
16
|
var _data$highlightColor, _data$highlightColor2;
|
|
16
17
|
// Then we draw the label background
|
|
@@ -5,6 +5,7 @@ var drawLabel = require('./drawLabel.js');
|
|
|
5
5
|
/* istanbul ignore file */
|
|
6
6
|
|
|
7
7
|
function drawNodeHover(context, data, settings) {
|
|
8
|
+
var _ref, _data$labelColor;
|
|
8
9
|
var nodeSize = data.size;
|
|
9
10
|
var size = settings.labelSize;
|
|
10
11
|
var font = settings.labelFont;
|
|
@@ -12,7 +13,7 @@ function drawNodeHover(context, data, settings) {
|
|
|
12
13
|
// use node color or default node color
|
|
13
14
|
var bg = settings.defaultNodeColor || "#fff";
|
|
14
15
|
// use label color or default label color
|
|
15
|
-
var color = data.labelColor
|
|
16
|
+
var color = (_ref = (_data$labelColor = data.labelColor) !== null && _data$labelColor !== void 0 ? _data$labelColor : settings.labelColor.color) !== null && _ref !== void 0 ? _ref : "#000";
|
|
16
17
|
context.font = "".concat(weight, " ").concat(size, "px ").concat(font);
|
|
17
18
|
|
|
18
19
|
// Then we draw the label background
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
/* istanbul ignore file */
|
|
4
4
|
|
|
5
5
|
function drawNodeLabel(context, data, settings) {
|
|
6
|
+
var _ref, _data$labelColor;
|
|
6
7
|
var nodeSize = data.size;
|
|
7
8
|
var size = settings.labelSize;
|
|
8
9
|
var font = settings.labelFont;
|
|
@@ -10,7 +11,7 @@ function drawNodeLabel(context, data, settings) {
|
|
|
10
11
|
// use node color or default node color
|
|
11
12
|
var bg = settings.defaultNodeColor || "#fff";
|
|
12
13
|
// use label color or default label color
|
|
13
|
-
var color = data.labelColor
|
|
14
|
+
var color = (_ref = (_data$labelColor = data.labelColor) !== null && _data$labelColor !== void 0 ? _data$labelColor : settings.labelColor.color) !== null && _ref !== void 0 ? _ref : "#000";
|
|
14
15
|
if (data.highlight) {
|
|
15
16
|
var _data$highlightColor, _data$color;
|
|
16
17
|
// Then we draw the label background
|
|
@@ -33,25 +33,25 @@ var GraphProvider = function GraphProvider(_ref) {
|
|
|
33
33
|
setLayoutRunning = _useState2[1];
|
|
34
34
|
var resetViewport = function resetViewport() {
|
|
35
35
|
if (graph.size === 0) return;
|
|
36
|
-
sigma.instance && fitViewportToNodes(sigma.instance, graph.nodes(), {
|
|
36
|
+
void (sigma.instance && fitViewportToNodes(sigma.instance, graph.nodes(), {
|
|
37
37
|
animate: true
|
|
38
|
-
});
|
|
38
|
+
}));
|
|
39
39
|
};
|
|
40
40
|
var zoomIn = function zoomIn() {
|
|
41
41
|
var _sigma$instance;
|
|
42
42
|
if (graph.size === 0) return;
|
|
43
|
-
(_sigma$instance = sigma.instance) === null || _sigma$instance === void 0
|
|
43
|
+
void ((_sigma$instance = sigma.instance) === null || _sigma$instance === void 0 ? void 0 : _sigma$instance.getCamera().animatedZoom());
|
|
44
44
|
};
|
|
45
45
|
var zoomOut = function zoomOut() {
|
|
46
46
|
var _sigma$instance2;
|
|
47
47
|
if (graph.size === 0) return;
|
|
48
|
-
(_sigma$instance2 = sigma.instance) === null || _sigma$instance2 === void 0
|
|
48
|
+
void ((_sigma$instance2 = sigma.instance) === null || _sigma$instance2 === void 0 ? void 0 : _sigma$instance2.getCamera().animatedUnzoom());
|
|
49
49
|
};
|
|
50
50
|
useEffect(function () {
|
|
51
51
|
var resetHandler = function resetHandler() {
|
|
52
|
-
sigma.instance && fitViewportToNodes(sigma.instance, graph.nodes(), {
|
|
52
|
+
void (sigma.instance && fitViewportToNodes(sigma.instance, graph.nodes(), {
|
|
53
53
|
animate: true
|
|
54
|
-
});
|
|
54
|
+
}));
|
|
55
55
|
};
|
|
56
56
|
graph.on("layoutRunning", setLayoutRunning);
|
|
57
57
|
graph.on("layoutDone", resetHandler);
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
4
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
5
5
|
import { useFloatingNodeId, useFloating, autoUpdate, offset, flip, useClick, useDismiss, useInteractions, FloatingPortal } from '@floating-ui/react';
|
|
6
|
-
import { useState, useRef, useEffect, cloneElement } from 'react';
|
|
7
|
-
import { useGraph } from './Context.js';
|
|
8
6
|
import { Menu, MenuItem, Divider } from '@react-fabric/core';
|
|
7
|
+
import { useState, useRef, useEffect, cloneElement } from 'react';
|
|
9
8
|
import { ICONS } from '../constants/index.js';
|
|
9
|
+
import { useGraph } from './Context.js';
|
|
10
10
|
import { jsx } from 'react/jsx-runtime';
|
|
11
11
|
|
|
12
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -20,7 +20,6 @@ var GraphContextMenu = function GraphContextMenu() {
|
|
|
20
20
|
var nodeId = useFloatingNodeId();
|
|
21
21
|
var _useGraph = useGraph(),
|
|
22
22
|
sigma = _useGraph.sigma;
|
|
23
|
-
_useGraph.graph;
|
|
24
23
|
var _useState3 = useState([]),
|
|
25
24
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
26
25
|
menu = _useState4[0],
|
|
@@ -61,29 +60,29 @@ var GraphContextMenu = function GraphContextMenu() {
|
|
|
61
60
|
if ("node" in e) {
|
|
62
61
|
setMenu([/*#__PURE__*/jsx(MenuItem, {
|
|
63
62
|
label: "Select neighbors"
|
|
64
|
-
}), /*#__PURE__*/jsx(Divider, {}), /*#__PURE__*/jsx(MenuItem, {
|
|
63
|
+
}, "0.0"), /*#__PURE__*/jsx(Divider, {}, "0.1"), /*#__PURE__*/jsx(MenuItem, {
|
|
65
64
|
label: "Delete node(s)",
|
|
66
65
|
color: "danger",
|
|
67
66
|
icon: ICONS["delete"]
|
|
68
|
-
}), /*#__PURE__*/jsx(MenuItem, {
|
|
67
|
+
}, "0.2"), /*#__PURE__*/jsx(MenuItem, {
|
|
69
68
|
label: "Clear graph",
|
|
70
69
|
color: "danger",
|
|
71
70
|
icon: ICONS.clear
|
|
72
|
-
})]);
|
|
71
|
+
}, "0.3")]);
|
|
73
72
|
} else if ("edge" in e) {
|
|
74
73
|
setMenu([/*#__PURE__*/jsx(MenuItem, {
|
|
75
74
|
label: "Select neighbors"
|
|
76
|
-
}), /*#__PURE__*/jsx(Divider, {}), /*#__PURE__*/jsx(MenuItem, {
|
|
75
|
+
}, "1.0"), /*#__PURE__*/jsx(Divider, {}, "1.1"), /*#__PURE__*/jsx(MenuItem, {
|
|
77
76
|
label: "Clear graph",
|
|
78
77
|
color: "danger",
|
|
79
78
|
icon: ICONS.clear
|
|
80
|
-
})]);
|
|
79
|
+
}, "1.2")]);
|
|
81
80
|
} else {
|
|
82
81
|
setMenu([/*#__PURE__*/jsx(MenuItem, {
|
|
83
82
|
label: "Clear graph",
|
|
84
83
|
color: "danger",
|
|
85
84
|
icon: ICONS.clear
|
|
86
|
-
})]);
|
|
85
|
+
}, "2.0")]);
|
|
87
86
|
}
|
|
88
87
|
var virtual = {
|
|
89
88
|
getBoundingClientRect: function getBoundingClientRect() {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
4
|
+
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
3
5
|
import { ButtonGroup, Button, Dropdown, Menu, MenuItem } from '@react-fabric/core';
|
|
4
6
|
import { ICONS } from '../constants/index.js';
|
|
5
7
|
import { useGraph } from './Context.js';
|
|
@@ -9,9 +11,8 @@ var Tools = function Tools() {
|
|
|
9
11
|
var _useGraph = useGraph(),
|
|
10
12
|
dragSelector = _useGraph.dragSelector,
|
|
11
13
|
graph = _useGraph.graph,
|
|
12
|
-
selected = _useGraph.selected
|
|
13
|
-
_useGraph.
|
|
14
|
-
var resetViewport = _useGraph.resetViewport,
|
|
14
|
+
selected = _useGraph.selected,
|
|
15
|
+
resetViewport = _useGraph.resetViewport,
|
|
15
16
|
zoomIn = _useGraph.zoomIn,
|
|
16
17
|
zoomOut = _useGraph.zoomOut;
|
|
17
18
|
return /*#__PURE__*/jsxs("div", {
|
|
@@ -66,39 +67,116 @@ var Tools = function Tools() {
|
|
|
66
67
|
className: "text-sm",
|
|
67
68
|
children: [/*#__PURE__*/jsx(MenuItem, {
|
|
68
69
|
label: "box",
|
|
69
|
-
onClick: function
|
|
70
|
-
return
|
|
71
|
-
|
|
70
|
+
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
71
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
72
|
+
while (1) switch (_context.prev = _context.next) {
|
|
73
|
+
case 0:
|
|
74
|
+
_context.next = 2;
|
|
75
|
+
return graph.elkLayout("box");
|
|
76
|
+
case 2:
|
|
77
|
+
return _context.abrupt("return", _context.sent);
|
|
78
|
+
case 3:
|
|
79
|
+
case "end":
|
|
80
|
+
return _context.stop();
|
|
81
|
+
}
|
|
82
|
+
}, _callee);
|
|
83
|
+
}))
|
|
72
84
|
}), /*#__PURE__*/jsx(MenuItem, {
|
|
73
85
|
label: "force",
|
|
74
|
-
onClick: function
|
|
75
|
-
return
|
|
76
|
-
|
|
86
|
+
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
87
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
88
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
89
|
+
case 0:
|
|
90
|
+
_context2.next = 2;
|
|
91
|
+
return graph.elkLayout("force");
|
|
92
|
+
case 2:
|
|
93
|
+
return _context2.abrupt("return", _context2.sent);
|
|
94
|
+
case 3:
|
|
95
|
+
case "end":
|
|
96
|
+
return _context2.stop();
|
|
97
|
+
}
|
|
98
|
+
}, _callee2);
|
|
99
|
+
}))
|
|
77
100
|
}), /*#__PURE__*/jsx(MenuItem, {
|
|
78
101
|
label: "layered",
|
|
79
|
-
onClick: function
|
|
80
|
-
return
|
|
81
|
-
|
|
102
|
+
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
103
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
104
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
105
|
+
case 0:
|
|
106
|
+
_context3.next = 2;
|
|
107
|
+
return graph.elkLayout("layered");
|
|
108
|
+
case 2:
|
|
109
|
+
return _context3.abrupt("return", _context3.sent);
|
|
110
|
+
case 3:
|
|
111
|
+
case "end":
|
|
112
|
+
return _context3.stop();
|
|
113
|
+
}
|
|
114
|
+
}, _callee3);
|
|
115
|
+
}))
|
|
82
116
|
}), /*#__PURE__*/jsx(MenuItem, {
|
|
83
117
|
label: "stress",
|
|
84
|
-
onClick: function
|
|
85
|
-
return
|
|
86
|
-
|
|
118
|
+
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
119
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
120
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
121
|
+
case 0:
|
|
122
|
+
_context4.next = 2;
|
|
123
|
+
return graph.elkLayout("stress");
|
|
124
|
+
case 2:
|
|
125
|
+
return _context4.abrupt("return", _context4.sent);
|
|
126
|
+
case 3:
|
|
127
|
+
case "end":
|
|
128
|
+
return _context4.stop();
|
|
129
|
+
}
|
|
130
|
+
}, _callee4);
|
|
131
|
+
}))
|
|
87
132
|
}), /*#__PURE__*/jsx(MenuItem, {
|
|
88
133
|
label: "radial",
|
|
89
|
-
onClick: function
|
|
90
|
-
return
|
|
91
|
-
|
|
134
|
+
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
135
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
136
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
137
|
+
case 0:
|
|
138
|
+
_context5.next = 2;
|
|
139
|
+
return graph.elkLayout("radial");
|
|
140
|
+
case 2:
|
|
141
|
+
return _context5.abrupt("return", _context5.sent);
|
|
142
|
+
case 3:
|
|
143
|
+
case "end":
|
|
144
|
+
return _context5.stop();
|
|
145
|
+
}
|
|
146
|
+
}, _callee5);
|
|
147
|
+
}))
|
|
92
148
|
}), /*#__PURE__*/jsx(MenuItem, {
|
|
93
149
|
label: "sporeOverlap",
|
|
94
|
-
onClick: function
|
|
95
|
-
return
|
|
96
|
-
|
|
150
|
+
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
|
|
151
|
+
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
152
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
153
|
+
case 0:
|
|
154
|
+
_context6.next = 2;
|
|
155
|
+
return graph.elkLayout("sporeOverlap");
|
|
156
|
+
case 2:
|
|
157
|
+
return _context6.abrupt("return", _context6.sent);
|
|
158
|
+
case 3:
|
|
159
|
+
case "end":
|
|
160
|
+
return _context6.stop();
|
|
161
|
+
}
|
|
162
|
+
}, _callee6);
|
|
163
|
+
}))
|
|
97
164
|
}), /*#__PURE__*/jsx(MenuItem, {
|
|
98
165
|
label: "sporeCompaction",
|
|
99
|
-
onClick: function
|
|
100
|
-
return
|
|
101
|
-
|
|
166
|
+
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {
|
|
167
|
+
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
168
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
169
|
+
case 0:
|
|
170
|
+
_context7.next = 2;
|
|
171
|
+
return graph.elkLayout("sporeCompaction");
|
|
172
|
+
case 2:
|
|
173
|
+
return _context7.abrupt("return", _context7.sent);
|
|
174
|
+
case 3:
|
|
175
|
+
case "end":
|
|
176
|
+
return _context7.stop();
|
|
177
|
+
}
|
|
178
|
+
}, _callee7);
|
|
179
|
+
}))
|
|
102
180
|
})]
|
|
103
181
|
})]
|
|
104
182
|
})
|
package/dist/esm/graph/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
4
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
5
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
5
6
|
import _typeof from '@babel/runtime/helpers/typeof';
|
|
6
7
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
@@ -13,11 +14,15 @@ import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
|
13
14
|
import { debounce } from '@react-fabric/utilities';
|
|
14
15
|
import { indexParallelEdgesIndex, DEFAULT_EDGE_CURVATURE } from '@sigma/edge-curve';
|
|
15
16
|
import ElkConstructor from 'elkjs/lib/elk.bundled';
|
|
16
|
-
import WorkerFactory from '../_virtual/elk-worker.js';
|
|
17
17
|
import Graphology from 'graphology';
|
|
18
|
-
import {
|
|
18
|
+
import { circular } from 'graphology-layout';
|
|
19
|
+
import forceAtlas2 from 'graphology-layout-forceatlas2';
|
|
20
|
+
import ForceAtlas2Worker from 'graphology-layout-forceatlas2/worker';
|
|
19
21
|
import { animateNodes } from 'sigma/utils';
|
|
22
|
+
import WorkerFactory from '../_virtual/elk-worker.js';
|
|
20
23
|
|
|
24
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
21
26
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
22
27
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
23
28
|
var Graph = /*#__PURE__*/function (_Graphology) {
|
|
@@ -192,10 +197,11 @@ var Graph = /*#__PURE__*/function (_Graphology) {
|
|
|
192
197
|
}, {
|
|
193
198
|
key: "ungroupNode",
|
|
194
199
|
value: function ungroupNode(node) {
|
|
195
|
-
var
|
|
200
|
+
var _atts$nodeList,
|
|
201
|
+
_this4 = this;
|
|
196
202
|
var atts = this.getNodeAttributes(node);
|
|
197
203
|
if (!atts || !atts.isGroup) return;
|
|
198
|
-
var nodes = atts.nodeList
|
|
204
|
+
var nodes = (_atts$nodeList = atts.nodeList) !== null && _atts$nodeList !== void 0 ? _atts$nodeList : [];
|
|
199
205
|
nodes.forEach(function (n) {
|
|
200
206
|
var originalEdges = _this4.getNodeAttribute(n, "originalEdges");
|
|
201
207
|
if (originalEdges && Array.isArray(originalEdges)) {
|
|
@@ -226,7 +232,6 @@ var Graph = /*#__PURE__*/function (_Graphology) {
|
|
|
226
232
|
}, {
|
|
227
233
|
key: "import",
|
|
228
234
|
value: function _import(data, merge) {
|
|
229
|
-
var _this6 = this;
|
|
230
235
|
var newNodes = [];
|
|
231
236
|
if (data instanceof Graph) {
|
|
232
237
|
newNodes.push.apply(newNodes, _toConsumableArray(data.nodes()));
|
|
@@ -239,68 +244,70 @@ var Graph = /*#__PURE__*/function (_Graphology) {
|
|
|
239
244
|
// fire events for nodes added
|
|
240
245
|
this.emit("nodesLoaded", newNodes);
|
|
241
246
|
// apply random positions for nodes
|
|
242
|
-
|
|
247
|
+
// const positions = random(this as any);
|
|
248
|
+
// animateNodes(
|
|
249
|
+
// this as any,
|
|
250
|
+
// positions,
|
|
251
|
+
// {
|
|
252
|
+
// duration: 200,
|
|
253
|
+
// },
|
|
254
|
+
// () => {
|
|
255
|
+
// // fire layout done event
|
|
256
|
+
// this.emit("layoutDone");
|
|
257
|
+
// },
|
|
258
|
+
// );
|
|
259
|
+
void this.elkLayout("force");
|
|
260
|
+
return this;
|
|
261
|
+
}
|
|
262
|
+
}, {
|
|
263
|
+
key: "circularLayout",
|
|
264
|
+
value: function circularLayout() {
|
|
265
|
+
var _this6 = this;
|
|
266
|
+
if (this.size === 0) return this;
|
|
267
|
+
var positions = circular(this);
|
|
243
268
|
animateNodes(this, positions, {
|
|
244
269
|
duration: 200
|
|
245
270
|
}, function () {
|
|
246
|
-
// fire layout done event
|
|
247
271
|
_this6.emit("layoutDone");
|
|
248
272
|
});
|
|
249
273
|
return this;
|
|
250
274
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
// ...settings,
|
|
281
|
-
// },
|
|
282
|
-
// });
|
|
283
|
-
// this.emit("layoutRunning", true);
|
|
284
|
-
// this._worker.start();
|
|
285
|
-
// this._timer = setTimeout(
|
|
286
|
-
// () => {
|
|
287
|
-
// this._worker?.stop();
|
|
288
|
-
// this._worker?.kill();
|
|
289
|
-
// this.emit("layoutRunning", false);
|
|
290
|
-
// this.emit("layoutDone");
|
|
291
|
-
// },
|
|
292
|
-
// // @ts-expect-error ignore
|
|
293
|
-
// this.nodes().length * window.__GRAPH_LAYOUT_DURATION_MULTIPLIER__,
|
|
294
|
-
// );
|
|
295
|
-
// return this;
|
|
296
|
-
// }
|
|
275
|
+
}, {
|
|
276
|
+
key: "forceLayout",
|
|
277
|
+
value: function forceLayout() {
|
|
278
|
+
var _this$_worker,
|
|
279
|
+
_this$_worker2,
|
|
280
|
+
_this7 = this;
|
|
281
|
+
var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
282
|
+
if (this.size === 0) return this;
|
|
283
|
+
var sensibleSettings = forceAtlas2.inferSettings(this);
|
|
284
|
+
if ((_this$_worker = this._worker) !== null && _this$_worker !== void 0 && _this$_worker.isRunning()) {
|
|
285
|
+
clearTimeout(this._timer);
|
|
286
|
+
}
|
|
287
|
+
(_this$_worker2 = this._worker) === null || _this$_worker2 === void 0 || _this$_worker2.kill();
|
|
288
|
+
this._worker = new ForceAtlas2Worker(this, {
|
|
289
|
+
settings: _objectSpread(_objectSpread({}, sensibleSettings), settings)
|
|
290
|
+
});
|
|
291
|
+
this.emit("layoutRunning", true);
|
|
292
|
+
this._worker.start();
|
|
293
|
+
this._timer = setTimeout(function () {
|
|
294
|
+
var _this7$_worker, _this7$_worker2;
|
|
295
|
+
(_this7$_worker = _this7._worker) === null || _this7$_worker === void 0 || _this7$_worker.stop();
|
|
296
|
+
(_this7$_worker2 = _this7._worker) === null || _this7$_worker2 === void 0 || _this7$_worker2.kill();
|
|
297
|
+
_this7.emit("layoutRunning", false);
|
|
298
|
+
_this7.emit("layoutDone");
|
|
299
|
+
},
|
|
300
|
+
// @ts-expect-error ignore
|
|
301
|
+
this.nodes().length * window.__GRAPH_LAYOUT_DURATION_MULTIPLIER__);
|
|
302
|
+
return this;
|
|
303
|
+
}
|
|
297
304
|
|
|
298
305
|
// @ts-expect-error ignore
|
|
299
306
|
}, {
|
|
300
307
|
key: "elkLayout",
|
|
301
308
|
value: function () {
|
|
302
309
|
var _elkLayout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(type) {
|
|
303
|
-
var
|
|
310
|
+
var _this8 = this;
|
|
304
311
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
305
312
|
while (1) switch (_context.prev = _context.next) {
|
|
306
313
|
case 0:
|
|
@@ -312,8 +319,8 @@ var Graph = /*#__PURE__*/function (_Graphology) {
|
|
|
312
319
|
this.emit("layoutRunning", true);
|
|
313
320
|
this.elk.layout({
|
|
314
321
|
id: "root",
|
|
315
|
-
width: 1600,
|
|
316
|
-
height: 900,
|
|
322
|
+
// width: 1600,
|
|
323
|
+
// height: 900,
|
|
317
324
|
children: this.mapNodes(function (node, atts) {
|
|
318
325
|
var _atts$size, _atts$weight, _atts$size2, _atts$weight2;
|
|
319
326
|
return {
|
|
@@ -344,15 +351,15 @@ var Graph = /*#__PURE__*/function (_Graphology) {
|
|
|
344
351
|
y: (_node$y = node.y) !== null && _node$y !== void 0 ? _node$y : 0
|
|
345
352
|
}];
|
|
346
353
|
})) !== null && _graph$children$map !== void 0 ? _graph$children$map : []);
|
|
347
|
-
animateNodes(
|
|
354
|
+
animateNodes(_this8, positions, {
|
|
348
355
|
duration: 200
|
|
349
356
|
}, function () {
|
|
350
357
|
setTimeout(function () {
|
|
351
|
-
|
|
358
|
+
_this8.emit("layoutDone");
|
|
352
359
|
}, 100);
|
|
353
360
|
});
|
|
354
361
|
})["catch"](console.error)["finally"](function () {
|
|
355
|
-
|
|
362
|
+
_this8.emit("layoutRunning", false);
|
|
356
363
|
});
|
|
357
364
|
case 3:
|
|
358
365
|
case "end":
|
|
@@ -368,10 +375,10 @@ var Graph = /*#__PURE__*/function (_Graphology) {
|
|
|
368
375
|
}, {
|
|
369
376
|
key: "dropNodes",
|
|
370
377
|
value: function dropNodes(nodes) {
|
|
371
|
-
var
|
|
378
|
+
var _this9 = this;
|
|
372
379
|
if (!nodes.length) return;
|
|
373
380
|
nodes.forEach(function (n) {
|
|
374
|
-
return
|
|
381
|
+
return _this9.dropNode(n);
|
|
375
382
|
});
|
|
376
383
|
}
|
|
377
384
|
|
|
@@ -391,7 +398,7 @@ var Graph = /*#__PURE__*/function (_Graphology) {
|
|
|
391
398
|
}, {
|
|
392
399
|
key: "checkParallelEdges",
|
|
393
400
|
value: function checkParallelEdges() {
|
|
394
|
-
var
|
|
401
|
+
var _this10 = this;
|
|
395
402
|
// Use dedicated helper to identify parallel edges:
|
|
396
403
|
// @ts-expect-error ignore
|
|
397
404
|
indexParallelEdgesIndex(this, {
|
|
@@ -405,17 +412,17 @@ var Graph = /*#__PURE__*/function (_Graphology) {
|
|
|
405
412
|
parallelMinIndex = _ref2.parallelMinIndex,
|
|
406
413
|
parallelMaxIndex = _ref2.parallelMaxIndex;
|
|
407
414
|
if (typeof parallelMinIndex === "number") {
|
|
408
|
-
|
|
415
|
+
_this10.mergeEdgeAttributes(edge, {
|
|
409
416
|
type: parallelIndex ? "curved" : "line",
|
|
410
|
-
curvature:
|
|
417
|
+
curvature: _this10.getCurvature(parallelIndex !== null && parallelIndex !== void 0 ? parallelIndex : 1, parallelMaxIndex !== null && parallelMaxIndex !== void 0 ? parallelMaxIndex : 1)
|
|
411
418
|
});
|
|
412
419
|
} else if (typeof parallelIndex === "number") {
|
|
413
|
-
|
|
420
|
+
_this10.mergeEdgeAttributes(edge, {
|
|
414
421
|
type: "curved",
|
|
415
|
-
curvature:
|
|
422
|
+
curvature: _this10.getCurvature(parallelIndex !== null && parallelIndex !== void 0 ? parallelIndex : 1, parallelMaxIndex !== null && parallelMaxIndex !== void 0 ? parallelMaxIndex : 1)
|
|
416
423
|
});
|
|
417
424
|
} else {
|
|
418
|
-
|
|
425
|
+
_this10.setEdgeAttribute(edge, "type", "line");
|
|
419
426
|
}
|
|
420
427
|
});
|
|
421
428
|
}
|
|
@@ -47,8 +47,8 @@ var useSigma = function useSigma(graph, _nodeReducer, _edgeReducer) {
|
|
|
47
47
|
circle: NodeCircleProgram
|
|
48
48
|
},
|
|
49
49
|
nodeReducer: function nodeReducer(key, data) {
|
|
50
|
-
var _nodeData$size;
|
|
51
|
-
var nodeData = (_nodeReducer === null || _nodeReducer === void 0 ? void 0 : _nodeReducer(data))
|
|
50
|
+
var _nodeReducer2, _nodeData$size, _nodeData$label;
|
|
51
|
+
var nodeData = (_nodeReducer2 = _nodeReducer === null || _nodeReducer === void 0 ? void 0 : _nodeReducer(data)) !== null && _nodeReducer2 !== void 0 ? _nodeReducer2 : data;
|
|
52
52
|
// Ensure node size is at least 16 for visibility
|
|
53
53
|
if (!nodeData.size && nodeData.weight) {
|
|
54
54
|
nodeData.size = Math.max(16, nodeData.weight * 3);
|
|
@@ -58,13 +58,13 @@ var useSigma = function useSigma(graph, _nodeReducer, _edgeReducer) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
// ensure node label renderer is called in order to render selected border
|
|
61
|
-
nodeData.label = nodeData.label
|
|
61
|
+
nodeData.label = (_nodeData$label = nodeData.label) !== null && _nodeData$label !== void 0 ? _nodeData$label : "";
|
|
62
62
|
nodeData.id = key;
|
|
63
63
|
return nodeData;
|
|
64
64
|
},
|
|
65
65
|
edgeReducer: function edgeReducer(key, data) {
|
|
66
|
-
var _edgeData$size;
|
|
67
|
-
var edgeData = (_edgeReducer === null || _edgeReducer === void 0 ? void 0 : _edgeReducer(data))
|
|
66
|
+
var _edgeReducer2, _edgeData$size;
|
|
67
|
+
var edgeData = (_edgeReducer2 = _edgeReducer === null || _edgeReducer === void 0 ? void 0 : _edgeReducer(data)) !== null && _edgeReducer2 !== void 0 ? _edgeReducer2 : data;
|
|
68
68
|
// Ensure edge size is at least 0.5 for visibility
|
|
69
69
|
if (!edgeData.size && edgeData.weight) {
|
|
70
70
|
edgeData.size = Math.max(0.5, edgeData.weight * 6);
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
/* istanbul ignore file */
|
|
4
4
|
|
|
5
5
|
// language=GLSL
|
|
6
|
-
var SHADER_SOURCE = /*glsl*/"\nprecision mediump float;\n\nvarying vec4 v_color;\nvarying float v_opacity;\n\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nvoid main(void) {\n gl_FragColor = v_color;\n gl_FragColor = mix(transparent, gl_FragColor, v_opacity);\n}\n";
|
|
6
|
+
var SHADER_SOURCE = /* glsl */"\nprecision mediump float;\n\nvarying vec4 v_color;\nvarying float v_opacity;\n\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nvoid main(void) {\n gl_FragColor = v_color;\n gl_FragColor = mix(transparent, gl_FragColor, v_opacity);\n}\n";
|
|
7
7
|
|
|
8
8
|
export { SHADER_SOURCE as default };
|
|
@@ -25,7 +25,7 @@ var DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS = {
|
|
|
25
25
|
widenessToThicknessRatio: 2
|
|
26
26
|
};
|
|
27
27
|
function createEdgeArrowHeadProgram(inputOptions) {
|
|
28
|
-
var options = _objectSpread(_objectSpread({}, DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS), inputOptions
|
|
28
|
+
var options = _objectSpread(_objectSpread({}, DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS), inputOptions !== null && inputOptions !== void 0 ? inputOptions : {});
|
|
29
29
|
return /*#__PURE__*/function (_EdgeProgram) {
|
|
30
30
|
function EdgeArrowHeadProgram() {
|
|
31
31
|
_classCallCheck(this, EdgeArrowHeadProgram);
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
/* istanbul ignore file */
|
|
4
4
|
|
|
5
5
|
// language=GLSL
|
|
6
|
-
var SHADER_SOURCE = /*glsl*/"\nattribute vec2 a_position;\nattribute vec2 a_normal;\nattribute float a_radius;\nattribute vec3 a_barycentric;\nattribute float a_opacity;\n\n#ifdef PICKING_MODE\nattribute vec4 a_id;\n#else\nattribute vec4 a_color;\n#endif\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\nuniform float u_minEdgeThickness;\nuniform float u_lengthToThicknessRatio;\nuniform float u_widenessToThicknessRatio;\n\nvarying vec4 v_color;\nvarying float v_opacity;\n\nconst float bias = 255.0 / 254.0;\n\nvoid main() {\n float minThickness = u_minEdgeThickness;\n\n float normalLength = length(a_normal);\n vec2 unitNormal = a_normal / normalLength;\n\n // These first computations are taken from edge.vert.glsl and\n // edge.clamped.vert.glsl. Please read it to get better comments on what's\n // happening:\n float pixelsThickness = max(normalLength / u_sizeRatio, minThickness);\n float webGLThickness = pixelsThickness * u_correctionRatio;\n float webGLNodeRadius = a_radius * 2.0 * u_correctionRatio / u_sizeRatio;\n float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\n float webGLArrowHeadThickness = webGLThickness * u_widenessToThicknessRatio;\n\n float da = a_barycentric.x;\n float db = a_barycentric.y;\n float dc = a_barycentric.z;\n\n vec2 delta = vec2(\n da * (webGLNodeRadius * unitNormal.y)\n + db * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y + webGLArrowHeadThickness * unitNormal.x)\n + dc * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y - webGLArrowHeadThickness * unitNormal.x),\n\n da * (-webGLNodeRadius * unitNormal.x)\n + db * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x + webGLArrowHeadThickness * unitNormal.y)\n + dc * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x - webGLArrowHeadThickness * unitNormal.y)\n );\n\n vec2 position = (u_matrix * vec3(a_position + delta, 1)).xy;\n\n gl_Position = vec4(position, 0, 1);\n\n #ifdef PICKING_MODE\n // For picking mode, we use the ID as the color:\n v_color = a_id;\n #else\n // For normal mode, we use the color:\n v_color = a_color;\n v_opacity = a_opacity;\n #endif\n\n v_color.a *= bias;\n}\n";
|
|
6
|
+
var SHADER_SOURCE = /* glsl */"\nattribute vec2 a_position;\nattribute vec2 a_normal;\nattribute float a_radius;\nattribute vec3 a_barycentric;\nattribute float a_opacity;\n\n#ifdef PICKING_MODE\nattribute vec4 a_id;\n#else\nattribute vec4 a_color;\n#endif\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\nuniform float u_minEdgeThickness;\nuniform float u_lengthToThicknessRatio;\nuniform float u_widenessToThicknessRatio;\n\nvarying vec4 v_color;\nvarying float v_opacity;\n\nconst float bias = 255.0 / 254.0;\n\nvoid main() {\n float minThickness = u_minEdgeThickness;\n\n float normalLength = length(a_normal);\n vec2 unitNormal = a_normal / normalLength;\n\n // These first computations are taken from edge.vert.glsl and\n // edge.clamped.vert.glsl. Please read it to get better comments on what's\n // happening:\n float pixelsThickness = max(normalLength / u_sizeRatio, minThickness);\n float webGLThickness = pixelsThickness * u_correctionRatio;\n float webGLNodeRadius = a_radius * 2.0 * u_correctionRatio / u_sizeRatio;\n float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\n float webGLArrowHeadThickness = webGLThickness * u_widenessToThicknessRatio;\n\n float da = a_barycentric.x;\n float db = a_barycentric.y;\n float dc = a_barycentric.z;\n\n vec2 delta = vec2(\n da * (webGLNodeRadius * unitNormal.y)\n + db * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y + webGLArrowHeadThickness * unitNormal.x)\n + dc * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y - webGLArrowHeadThickness * unitNormal.x),\n\n da * (-webGLNodeRadius * unitNormal.x)\n + db * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x + webGLArrowHeadThickness * unitNormal.y)\n + dc * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x - webGLArrowHeadThickness * unitNormal.y)\n );\n\n vec2 position = (u_matrix * vec3(a_position + delta, 1)).xy;\n\n gl_Position = vec4(position, 0, 1);\n\n #ifdef PICKING_MODE\n // For picking mode, we use the ID as the color:\n v_color = a_id;\n #else\n // For normal mode, we use the color:\n v_color = a_color;\n v_opacity = a_opacity;\n #endif\n\n v_color.a *= bias;\n}\n";
|
|
7
7
|
|
|
8
8
|
export { SHADER_SOURCE as default };
|
|
@@ -93,11 +93,11 @@ var EdgeCurveProgramBase = /*#__PURE__*/function (_EdgeProgram) {
|
|
|
93
93
|
}, {
|
|
94
94
|
key: "processVisibleItem",
|
|
95
95
|
value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {
|
|
96
|
-
var _data$color, _data$curvature, _data$opacity, _data$arrow, _data$arrow2;
|
|
96
|
+
var _data$color, _data$selected, _data$curvature, _data$opacity, _data$arrow, _data$arrow2;
|
|
97
97
|
var color = (_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : this.renderer.getSetting("defaultEdgeColor");
|
|
98
98
|
if (data.selected) color = "#f00";
|
|
99
99
|
if (data.highlight) color = "#F54A4A";
|
|
100
|
-
var thickness = Math.min(data.size || 1, 0.5) * (data.selected
|
|
100
|
+
var thickness = Math.min(data.size || 1, 0.5) * (((_data$selected = data.selected) !== null && _data$selected !== void 0 ? _data$selected : data.highlight) ? 16 : 8);
|
|
101
101
|
var x1 = sourceData.x;
|
|
102
102
|
var y1 = sourceData.y;
|
|
103
103
|
var x2 = targetData.x;
|
|
@@ -97,11 +97,11 @@ var EdgeLineProgramBase = /*#__PURE__*/function (_EdgeProgram) {
|
|
|
97
97
|
}, {
|
|
98
98
|
key: "processVisibleItem",
|
|
99
99
|
value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {
|
|
100
|
-
var _data$color, _data$opacity, _data$arrow, _data$arrow2;
|
|
100
|
+
var _data$color, _data$selected, _data$opacity, _data$arrow, _data$arrow2;
|
|
101
101
|
var color = (_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : this.renderer.getSetting("defaultEdgeColor");
|
|
102
102
|
if (data.selected) color = "#f00";
|
|
103
103
|
if (data.highlight) color = "#F54A4A";
|
|
104
|
-
var thickness = Math.min(data.size || 1, 0.5) * (data.selected
|
|
104
|
+
var thickness = Math.min(data.size || 1, 0.5) * (((_data$selected = data.selected) !== null && _data$selected !== void 0 ? _data$selected : data.highlight) ? 8 : 4);
|
|
105
105
|
var x1 = sourceData.x;
|
|
106
106
|
var y1 = sourceData.y;
|
|
107
107
|
var x2 = targetData.x;
|