@react-fabric/graph 1.0.0-beta.62 → 1.0.1
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/context/context.js +16 -0
- package/dist/cjs/graph/index.js +62 -385
- package/dist/cjs/index.js +25 -21
- package/dist/cjs/utils/edge.js +76 -0
- package/dist/cjs/utils/node.js +93 -0
- package/dist/cjs/utils/sdfFolder.js +107 -0
- package/dist/cjs/viewer/Graph.js +174 -0
- package/dist/esm/context/context.js +15 -0
- package/dist/esm/graph/index.js +63 -386
- package/dist/esm/index.js +24 -20
- package/dist/esm/utils/edge.js +75 -0
- package/dist/esm/utils/node.js +92 -0
- package/dist/esm/utils/sdfFolder.js +107 -0
- package/dist/esm/viewer/Graph.js +174 -0
- package/dist/types/context/context.d.ts +35 -0
- package/dist/types/graph/index.d.ts +47 -24
- package/dist/types/index.d.ts +28 -2
- package/dist/types/types/index.d.ts +124 -175
- package/dist/types/utils/edge.d.ts +28 -0
- package/dist/types/utils/node.d.ts +28 -0
- package/dist/types/utils/sdfFolder.d.ts +75 -0
- package/dist/types/viewer/Graph.d.ts +31 -0
- package/package.json +19 -25
- package/src/context/context.tsx +43 -0
- package/src/graph/index.ts +76 -399
- package/src/index.ts +24 -26
- package/src/types/index.ts +139 -185
- package/src/utils/edge.ts +65 -0
- package/src/utils/node.ts +105 -0
- package/src/utils/sdfFolder.ts +141 -0
- package/src/viewer/Graph.tsx +159 -0
- package/css/styles.css +0 -56
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +0 -14
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +0 -9
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -35
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +0 -11
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +0 -20
- package/dist/cjs/_virtual/elk-worker.js +0 -8
- package/dist/cjs/components/Context.js +0 -107
- package/dist/cjs/components/ContextMenu.js +0 -133
- package/dist/cjs/components/Tools.js +0 -205
- package/dist/cjs/components/Viewer.js +0 -58
- package/dist/cjs/constants/index.js +0 -16
- package/dist/cjs/hooks/sigmaDragSelect.js +0 -169
- package/dist/cjs/hooks/sigmaHilighter.js +0 -83
- package/dist/cjs/hooks/sigmaMouseActions.js +0 -145
- package/dist/cjs/hooks/useGraphology.js +0 -41
- package/dist/cjs/hooks/useSigma.js +0 -112
- package/dist/cjs/programs/arrow-head/frag.glsl.js +0 -8
- package/dist/cjs/programs/arrow-head/index.js +0 -142
- package/dist/cjs/programs/arrow-head/vert.glsl.js +0 -8
- package/dist/cjs/programs/edge-curve/drawLabel.js +0 -136
- package/dist/cjs/programs/edge-curve/frag.glsl.js +0 -8
- package/dist/cjs/programs/edge-curve/index.js +0 -157
- package/dist/cjs/programs/edge-curve/vert.glsl.js +0 -8
- package/dist/cjs/programs/edge-line/drawLabel.js +0 -70
- package/dist/cjs/programs/edge-line/frag.glsl.js +0 -8
- package/dist/cjs/programs/edge-line/index.js +0 -166
- package/dist/cjs/programs/edge-line/vert.glsl.js +0 -8
- package/dist/cjs/programs/node-badge/factory.js +0 -249
- package/dist/cjs/programs/node-badge/frag.glsl.js +0 -8
- package/dist/cjs/programs/node-badge/index.js +0 -33
- package/dist/cjs/programs/node-badge/texture.js +0 -455
- package/dist/cjs/programs/node-badge/vert.glsl.js +0 -19
- package/dist/cjs/programs/node-circle/base/drawHover.js +0 -71
- package/dist/cjs/programs/node-circle/base/drawLabel.js +0 -113
- package/dist/cjs/programs/node-circle/base/frag.glsl.js +0 -8
- package/dist/cjs/programs/node-circle/base/index.js +0 -136
- package/dist/cjs/programs/node-circle/base/vert.glsl.js +0 -8
- package/dist/cjs/programs/node-circle/index.js +0 -15
- package/dist/cjs/programs/node-image/factory.js +0 -223
- package/dist/cjs/programs/node-image/frag.glsl.js +0 -8
- package/dist/cjs/programs/node-image/index.js +0 -14
- package/dist/cjs/programs/node-image/texture.js +0 -472
- package/dist/cjs/programs/node-image/vert.glsl.js +0 -8
- package/dist/cjs/programs/node-rect/base/drawHover.js +0 -68
- package/dist/cjs/programs/node-rect/base/drawLabel.js +0 -107
- package/dist/cjs/programs/node-rect/base/frag.glsl.js +0 -8
- package/dist/cjs/programs/node-rect/base/index.js +0 -135
- package/dist/cjs/programs/node-rect/base/vert.glsl.js +0 -8
- package/dist/cjs/programs/node-rect/index.js +0 -15
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +0 -14
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +0 -9
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -34
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +0 -13
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +0 -20
- package/dist/esm/_virtual/elk-worker.js +0 -8
- package/dist/esm/components/Context.js +0 -106
- package/dist/esm/components/ContextMenu.js +0 -133
- package/dist/esm/components/Tools.js +0 -205
- package/dist/esm/components/Viewer.js +0 -58
- package/dist/esm/constants/index.js +0 -16
- package/dist/esm/hooks/sigmaDragSelect.js +0 -169
- package/dist/esm/hooks/sigmaHilighter.js +0 -83
- package/dist/esm/hooks/sigmaMouseActions.js +0 -145
- package/dist/esm/hooks/useGraphology.js +0 -41
- package/dist/esm/hooks/useSigma.js +0 -112
- package/dist/esm/programs/arrow-head/frag.glsl.js +0 -8
- package/dist/esm/programs/arrow-head/index.js +0 -141
- package/dist/esm/programs/arrow-head/vert.glsl.js +0 -8
- package/dist/esm/programs/edge-curve/drawLabel.js +0 -136
- package/dist/esm/programs/edge-curve/frag.glsl.js +0 -8
- package/dist/esm/programs/edge-curve/index.js +0 -156
- package/dist/esm/programs/edge-curve/vert.glsl.js +0 -8
- package/dist/esm/programs/edge-line/drawLabel.js +0 -70
- package/dist/esm/programs/edge-line/frag.glsl.js +0 -8
- package/dist/esm/programs/edge-line/index.js +0 -166
- package/dist/esm/programs/edge-line/vert.glsl.js +0 -8
- package/dist/esm/programs/node-badge/factory.js +0 -249
- package/dist/esm/programs/node-badge/frag.glsl.js +0 -8
- package/dist/esm/programs/node-badge/index.js +0 -32
- package/dist/esm/programs/node-badge/texture.js +0 -445
- package/dist/esm/programs/node-badge/vert.glsl.js +0 -19
- package/dist/esm/programs/node-circle/base/drawHover.js +0 -71
- package/dist/esm/programs/node-circle/base/drawLabel.js +0 -113
- package/dist/esm/programs/node-circle/base/frag.glsl.js +0 -8
- package/dist/esm/programs/node-circle/base/index.js +0 -136
- package/dist/esm/programs/node-circle/base/vert.glsl.js +0 -8
- package/dist/esm/programs/node-circle/index.js +0 -15
- package/dist/esm/programs/node-image/factory.js +0 -223
- package/dist/esm/programs/node-image/frag.glsl.js +0 -8
- package/dist/esm/programs/node-image/index.js +0 -13
- package/dist/esm/programs/node-image/texture.js +0 -462
- package/dist/esm/programs/node-image/vert.glsl.js +0 -8
- package/dist/esm/programs/node-rect/base/drawHover.js +0 -68
- package/dist/esm/programs/node-rect/base/drawLabel.js +0 -107
- package/dist/esm/programs/node-rect/base/frag.glsl.js +0 -8
- package/dist/esm/programs/node-rect/base/index.js +0 -135
- package/dist/esm/programs/node-rect/base/vert.glsl.js +0 -8
- package/dist/esm/programs/node-rect/index.js +0 -15
- package/dist/types/components/Context.d.ts +0 -18
- package/dist/types/components/ContextMenu.d.ts +0 -1
- package/dist/types/components/Tools.d.ts +0 -1
- package/dist/types/components/Viewer.d.ts +0 -2
- package/dist/types/constants/index.d.ts +0 -12
- package/dist/types/graph/layout.worker.d.ts +0 -1
- package/dist/types/hooks/sigmaDragSelect.d.ts +0 -8
- package/dist/types/hooks/sigmaHilighter.d.ts +0 -3
- package/dist/types/hooks/sigmaMouseActions.d.ts +0 -3
- package/dist/types/hooks/useGraphology.d.ts +0 -6
- package/dist/types/hooks/useSigma.d.ts +0 -8
- package/dist/types/i18n/index.d.ts +0 -0
- package/dist/types/programs/arrow-head/frag.glsl.d.ts +0 -2
- package/dist/types/programs/arrow-head/index.d.ts +0 -9
- package/dist/types/programs/arrow-head/vert.glsl.d.ts +0 -2
- package/dist/types/programs/edge-curve/drawLabel.d.ts +0 -6
- package/dist/types/programs/edge-curve/frag.glsl.d.ts +0 -2
- package/dist/types/programs/edge-curve/index.d.ts +0 -43
- package/dist/types/programs/edge-curve/vert.glsl.d.ts +0 -2
- package/dist/types/programs/edge-line/drawLabel.d.ts +0 -5
- package/dist/types/programs/edge-line/frag.glsl.d.ts +0 -2
- package/dist/types/programs/edge-line/index.d.ts +0 -11
- package/dist/types/programs/edge-line/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-badge/factory.d.ts +0 -27
- package/dist/types/programs/node-badge/frag.glsl.d.ts +0 -2
- package/dist/types/programs/node-badge/index.d.ts +0 -5
- package/dist/types/programs/node-badge/texture.d.ts +0 -102
- package/dist/types/programs/node-badge/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-circle/base/drawHover.d.ts +0 -8
- package/dist/types/programs/node-circle/base/drawLabel.d.ts +0 -8
- package/dist/types/programs/node-circle/base/frag.glsl.d.ts +0 -2
- package/dist/types/programs/node-circle/base/index.d.ts +0 -37
- package/dist/types/programs/node-circle/base/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-circle/index.d.ts +0 -11
- package/dist/types/programs/node-image/factory.d.ts +0 -25
- package/dist/types/programs/node-image/frag.glsl.d.ts +0 -2
- package/dist/types/programs/node-image/index.d.ts +0 -5
- package/dist/types/programs/node-image/texture.d.ts +0 -102
- package/dist/types/programs/node-image/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-rect/base/drawHover.d.ts +0 -8
- package/dist/types/programs/node-rect/base/drawLabel.d.ts +0 -8
- package/dist/types/programs/node-rect/base/frag.glsl.d.ts +0 -2
- package/dist/types/programs/node-rect/base/index.d.ts +0 -34
- package/dist/types/programs/node-rect/base/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-rect/index.d.ts +0 -11
- package/src/components/Context.tsx +0 -143
- package/src/components/ContextMenu.tsx +0 -174
- package/src/components/Tools.tsx +0 -106
- package/src/components/Viewer.tsx +0 -76
- package/src/constants/index.ts +0 -22
- package/src/graph/layout.worker.ts +0 -42
- package/src/hooks/sigmaDragSelect.ts +0 -219
- package/src/hooks/sigmaHilighter.ts +0 -107
- package/src/hooks/sigmaMouseActions.ts +0 -153
- package/src/hooks/useGraphology.ts +0 -31
- package/src/hooks/useSigma.ts +0 -118
- package/src/i18n/index.ts +0 -0
- package/src/programs/arrow-head/frag.glsl.ts +0 -18
- package/src/programs/arrow-head/index.ts +0 -157
- package/src/programs/arrow-head/vert.glsl.ts +0 -75
- package/src/programs/edge-curve/drawLabel.ts +0 -166
- package/src/programs/edge-curve/frag.glsl.ts +0 -86
- package/src/programs/edge-curve/index.ts +0 -158
- package/src/programs/edge-curve/vert.glsl.ts +0 -110
- package/src/programs/edge-line/drawLabel.ts +0 -113
- package/src/programs/edge-line/frag.glsl.ts +0 -34
- package/src/programs/edge-line/index.ts +0 -165
- package/src/programs/edge-line/vert.glsl.ts +0 -104
- package/src/programs/node-badge/factory.ts +0 -327
- package/src/programs/node-badge/frag.glsl.ts +0 -79
- package/src/programs/node-badge/index.ts +0 -35
- package/src/programs/node-badge/texture.ts +0 -425
- package/src/programs/node-badge/vert.glsl.ts +0 -99
- package/src/programs/node-circle/base/drawHover.ts +0 -80
- package/src/programs/node-circle/base/drawLabel.ts +0 -145
- package/src/programs/node-circle/base/frag.glsl.ts +0 -72
- package/src/programs/node-circle/base/index.ts +0 -102
- package/src/programs/node-circle/base/vert.glsl.ts +0 -83
- package/src/programs/node-circle/index.ts +0 -19
- package/src/programs/node-image/factory.ts +0 -301
- package/src/programs/node-image/frag.glsl.ts +0 -97
- package/src/programs/node-image/index.ts +0 -7
- package/src/programs/node-image/texture.ts +0 -435
- package/src/programs/node-image/vert.glsl.ts +0 -60
- package/src/programs/node-rect/base/drawHover.ts +0 -77
- package/src/programs/node-rect/base/drawLabel.ts +0 -149
- package/src/programs/node-rect/base/frag.glsl.ts +0 -67
- package/src/programs/node-rect/base/index.ts +0 -109
- package/src/programs/node-rect/base/vert.glsl.ts +0 -87
- package/src/programs/node-rect/index.ts +0 -19
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
|
|
6
|
-
var useDragSelection = function useDragSelection(renderer) {
|
|
7
|
-
var isDrawing = react.useRef(false);
|
|
8
|
-
var drawPoints = react.useRef([]);
|
|
9
|
-
var drawingCanvas = react.useRef(undefined);
|
|
10
|
-
var drawingContext = react.useRef(null);
|
|
11
|
-
var _useState = react.useState(false),
|
|
12
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
13
|
-
mode = _useState2[0],
|
|
14
|
-
setMode = _useState2[1];
|
|
15
|
-
var selectionMode = react.useRef(false);
|
|
16
|
-
react.useEffect(function () {
|
|
17
|
-
selectionMode.current = mode;
|
|
18
|
-
}, [mode]);
|
|
19
|
-
var startDrawing = function startDrawing(evt) {
|
|
20
|
-
isDrawing.current = true;
|
|
21
|
-
if (drawingCanvas.current) {
|
|
22
|
-
drawingContext.current = drawingCanvas.current.getContext("2d");
|
|
23
|
-
if (drawingContext.current) {
|
|
24
|
-
drawingContext.current.setLineDash([2, 4]);
|
|
25
|
-
drawingContext.current.lineWidth = 2;
|
|
26
|
-
drawingContext.current.strokeStyle = "#3a766c40";
|
|
27
|
-
drawingContext.current.fillStyle = "#3a766c10";
|
|
28
|
-
drawingContext.current.lineJoin = "round";
|
|
29
|
-
drawingContext.current.lineCap = "round";
|
|
30
|
-
}
|
|
31
|
-
var drawingRectangle = drawingCanvas.current.getBoundingClientRect();
|
|
32
|
-
drawPoints.current = [{
|
|
33
|
-
x: evt.clientX - drawingRectangle.left,
|
|
34
|
-
y: evt.clientY - drawingRectangle.top
|
|
35
|
-
}];
|
|
36
|
-
}
|
|
37
|
-
evt.stopImmediatePropagation();
|
|
38
|
-
evt.stopPropagation();
|
|
39
|
-
evt.preventDefault();
|
|
40
|
-
};
|
|
41
|
-
var drawPath = function drawPath(evt) {
|
|
42
|
-
if (!isDrawing) return;
|
|
43
|
-
if (drawingCanvas.current) {
|
|
44
|
-
var drawingRectangle = drawingCanvas.current.getBoundingClientRect();
|
|
45
|
-
if (drawingContext.current) {
|
|
46
|
-
if (selectionMode.current === "rectangle") {
|
|
47
|
-
drawingContext.current.clearRect(0, 0, drawingCanvas.current.width, drawingCanvas.current.height);
|
|
48
|
-
var _drawPoints$current$ = drawPoints.current[0],
|
|
49
|
-
x = _drawPoints$current$.x,
|
|
50
|
-
y = _drawPoints$current$.y;
|
|
51
|
-
drawingContext.current.beginPath();
|
|
52
|
-
drawingContext.current.rect(Math.min(x, evt.clientX), Math.min(y, evt.clientY), Math.abs(evt.clientX - drawingRectangle.left - x), Math.abs(evt.clientY - drawingRectangle.top - y));
|
|
53
|
-
drawingContext.current.stroke();
|
|
54
|
-
drawingContext.current.fill();
|
|
55
|
-
}
|
|
56
|
-
if (selectionMode.current === "lasso") {
|
|
57
|
-
drawPoints.current.push({
|
|
58
|
-
x: evt.clientX - drawingRectangle.left,
|
|
59
|
-
y: evt.clientY - drawingRectangle.top
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
// Clear the canvas
|
|
63
|
-
drawingContext.current.clearRect(0, 0, drawingContext.current.canvas.width, drawingContext.current.canvas.height);
|
|
64
|
-
|
|
65
|
-
// Redraw the complete path for a smoother effect
|
|
66
|
-
// Even smoother with quadratic curves
|
|
67
|
-
var sourcePoint = drawPoints.current[0];
|
|
68
|
-
var destinationPoint = drawPoints.current[1];
|
|
69
|
-
var pointsLength = drawPoints.current.length;
|
|
70
|
-
var getMiddlePointCoordinates = function getMiddlePointCoordinates(firstPoint, secondPoint) {
|
|
71
|
-
return {
|
|
72
|
-
x: firstPoint.x + (secondPoint.x - firstPoint.x) / 2,
|
|
73
|
-
y: firstPoint.y + (secondPoint.y - firstPoint.y) / 2
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
drawingContext.current.beginPath();
|
|
77
|
-
drawingContext.current.moveTo(sourcePoint.x, sourcePoint.y);
|
|
78
|
-
for (var i = 1; i < pointsLength; i++) {
|
|
79
|
-
var middlePoint = getMiddlePointCoordinates(sourcePoint, destinationPoint);
|
|
80
|
-
// drawingContext.current.lineTo(drawPoints[i].x, drawPoints[i].y);
|
|
81
|
-
drawingContext.current.quadraticCurveTo(sourcePoint.x, sourcePoint.y, middlePoint.x, middlePoint.y);
|
|
82
|
-
sourcePoint = drawPoints.current[i];
|
|
83
|
-
destinationPoint = drawPoints.current[i + 1];
|
|
84
|
-
}
|
|
85
|
-
drawingContext.current.lineTo(sourcePoint.x, sourcePoint.y);
|
|
86
|
-
drawingContext.current.stroke();
|
|
87
|
-
drawingContext.current.fill();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
var stopDrawing = function stopDrawing(evt) {
|
|
93
|
-
if (!renderer) return;
|
|
94
|
-
if (!isDrawing) return;
|
|
95
|
-
var nodes = Array.from(renderer.getGraph().nodes());
|
|
96
|
-
nodes.forEach(function (node) {
|
|
97
|
-
if (!renderer) return;
|
|
98
|
-
var _ref = renderer.getNodeDisplayData(node),
|
|
99
|
-
_ref$x = _ref.x,
|
|
100
|
-
nx = _ref$x === void 0 ? 0 : _ref$x,
|
|
101
|
-
_ref$y = _ref.y,
|
|
102
|
-
ny = _ref$y === void 0 ? 0 : _ref$y,
|
|
103
|
-
hidden = _ref.hidden;
|
|
104
|
-
var _renderer$framedGraph = renderer.framedGraphToViewport({
|
|
105
|
-
x: nx,
|
|
106
|
-
y: ny
|
|
107
|
-
}),
|
|
108
|
-
x = _renderer$framedGraph.x,
|
|
109
|
-
y = _renderer$framedGraph.y;
|
|
110
|
-
if (evt.shiftKey) {
|
|
111
|
-
var _drawingContext$curre;
|
|
112
|
-
((_drawingContext$curre = drawingContext.current) === null || _drawingContext$curre === void 0 ? void 0 : _drawingContext$curre.isPointInPath(x, y)) && !hidden && renderer.getGraph().setNodeAttribute(node, "selected", true);
|
|
113
|
-
} else {
|
|
114
|
-
var _drawingContext$curre2;
|
|
115
|
-
!hidden && renderer.getGraph().setNodeAttribute(node, "selected", (_drawingContext$curre2 = drawingContext.current) === null || _drawingContext$curre2 === void 0 ? void 0 : _drawingContext$curre2.isPointInPath(x, y));
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
dettachListeners();
|
|
119
|
-
};
|
|
120
|
-
var attachListeners = function attachListeners() {
|
|
121
|
-
if (!renderer) return;
|
|
122
|
-
drawingCanvas.current = document.createElement("canvas");
|
|
123
|
-
var rect = renderer.getContainer().getBoundingClientRect();
|
|
124
|
-
drawingCanvas.current.width = rect.width;
|
|
125
|
-
drawingCanvas.current.height = rect.height;
|
|
126
|
-
drawingCanvas.current.style.setProperty("inset", "0");
|
|
127
|
-
drawingCanvas.current.style.setProperty("position", "absolute");
|
|
128
|
-
renderer.getContainer().appendChild(drawingCanvas.current);
|
|
129
|
-
drawingCanvas.current.style.cursor = "crosshair";
|
|
130
|
-
drawingCanvas.current.addEventListener("mousedown", startDrawing, {
|
|
131
|
-
capture: true
|
|
132
|
-
});
|
|
133
|
-
document.addEventListener("mousemove", drawPath);
|
|
134
|
-
document.addEventListener("mouseup", stopDrawing);
|
|
135
|
-
};
|
|
136
|
-
var dettachListeners = function dettachListeners() {
|
|
137
|
-
if (drawingContext.current) {
|
|
138
|
-
drawingContext.current.clearRect(0, 0, drawingContext.current.canvas.width, drawingContext.current.canvas.height);
|
|
139
|
-
drawingContext.current = null;
|
|
140
|
-
}
|
|
141
|
-
if (drawingCanvas.current) {
|
|
142
|
-
var _drawingCanvas$curren;
|
|
143
|
-
(_drawingCanvas$curren = drawingCanvas.current) === null || _drawingCanvas$curren === void 0 || _drawingCanvas$curren.remove();
|
|
144
|
-
}
|
|
145
|
-
document.removeEventListener("mousemove", drawPath);
|
|
146
|
-
document.removeEventListener("mouseup", stopDrawing);
|
|
147
|
-
isDrawing.current = false;
|
|
148
|
-
setMode(false);
|
|
149
|
-
};
|
|
150
|
-
var startRectangleSelection = function startRectangleSelection() {
|
|
151
|
-
setMode("rectangle");
|
|
152
|
-
attachListeners();
|
|
153
|
-
};
|
|
154
|
-
var startLassoSelection = function startLassoSelection() {
|
|
155
|
-
setMode("lasso");
|
|
156
|
-
attachListeners();
|
|
157
|
-
};
|
|
158
|
-
var cancelSelection = function cancelSelection() {
|
|
159
|
-
dettachListeners();
|
|
160
|
-
};
|
|
161
|
-
return {
|
|
162
|
-
selectionMode: mode,
|
|
163
|
-
startRectangleSelection: startRectangleSelection,
|
|
164
|
-
startLassoSelection: startLassoSelection,
|
|
165
|
-
cancelSelection: cancelSelection
|
|
166
|
-
};
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
exports.useDragSelection = useDragSelection;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var utilities = require('@react-fabric/utilities');
|
|
4
|
-
|
|
5
|
-
var attachHighlighter = function attachHighlighter(renderer) {
|
|
6
|
-
var handleEnterNode = function handleEnterNode(id, graph) {
|
|
7
|
-
try {
|
|
8
|
-
var neighbors = graph.neighbors(id);
|
|
9
|
-
graph.forEachNode(function (node) {
|
|
10
|
-
graph.setNodeAttribute(node, "opacity", node !== id && !neighbors.includes(node) ? 0.1 : 1);
|
|
11
|
-
});
|
|
12
|
-
graph.forEachEdge(function (edge) {
|
|
13
|
-
graph.setEdgeAttribute(edge, "opacity", !graph.hasExtremity(edge, id) ? 0.1 : 1);
|
|
14
|
-
});
|
|
15
|
-
} catch (_unused) {
|
|
16
|
-
//
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
var handleLeaveNode = function handleLeaveNode(graph) {
|
|
20
|
-
graph.forEachNode(function (node) {
|
|
21
|
-
graph.setNodeAttribute(node, "opacity", 1);
|
|
22
|
-
});
|
|
23
|
-
graph.forEachEdge(function (edge) {
|
|
24
|
-
graph.setEdgeAttribute(edge, "opacity", 1);
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
var handleEnterEdge = function handleEnterEdge(id, graph) {
|
|
28
|
-
try {
|
|
29
|
-
var source = graph.source(id);
|
|
30
|
-
var target = graph.target(id);
|
|
31
|
-
graph.setEdgeAttribute(id, "zIndex", 2);
|
|
32
|
-
graph.setNodeAttribute(source, "zIndex", 2);
|
|
33
|
-
graph.setNodeAttribute(target, "zIndex", 2);
|
|
34
|
-
graph.setEdgeAttribute(id, "highlight", true);
|
|
35
|
-
graph.setNodeAttribute(source, "highlight", true);
|
|
36
|
-
graph.setNodeAttribute(target, "highlight", true);
|
|
37
|
-
graph.forEachNode(function (node) {
|
|
38
|
-
graph.setNodeAttribute(node, "opacity", node !== source && node !== target ? 0.1 : 1);
|
|
39
|
-
});
|
|
40
|
-
graph.forEachEdge(function (edge) {
|
|
41
|
-
graph.setEdgeAttribute(edge, "opacity", edge !== id ? 0.1 : 1);
|
|
42
|
-
});
|
|
43
|
-
} catch (_unused2) {
|
|
44
|
-
//
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
var handleLeaveEdge = function handleLeaveEdge(id, graph) {
|
|
48
|
-
var source = graph.source(id);
|
|
49
|
-
var target = graph.target(id);
|
|
50
|
-
graph.setEdgeAttribute(id, "zIndex", 0);
|
|
51
|
-
graph.setNodeAttribute(source, "zIndex", 0);
|
|
52
|
-
graph.setNodeAttribute(target, "zIndex", 0);
|
|
53
|
-
graph.setEdgeAttribute(id, "highlight", false);
|
|
54
|
-
graph.setNodeAttribute(source, "highlight", false);
|
|
55
|
-
graph.setNodeAttribute(target, "highlight", false);
|
|
56
|
-
graph.forEachNode(function (node) {
|
|
57
|
-
graph.setNodeAttribute(node, "opacity", 1);
|
|
58
|
-
graph.setNodeAttribute(node, "highlight", false);
|
|
59
|
-
});
|
|
60
|
-
graph.forEachEdge(function (edge) {
|
|
61
|
-
graph.setEdgeAttribute(edge, "opacity", 1);
|
|
62
|
-
graph.setEdgeAttribute(edge, "highlight", false);
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
var debouceNodeEnter = utilities.debounce(function (e) {
|
|
66
|
-
handleEnterNode(e.node, renderer.getGraph());
|
|
67
|
-
});
|
|
68
|
-
var debouceEdgeEnter = utilities.debounce(function (e) {
|
|
69
|
-
handleEnterEdge(e.edge, renderer.getGraph());
|
|
70
|
-
}, 100);
|
|
71
|
-
renderer.on("enterNode", debouceNodeEnter);
|
|
72
|
-
renderer.on("leaveNode", function (e) {
|
|
73
|
-
debouceNodeEnter.cancel();
|
|
74
|
-
handleLeaveNode(renderer.getGraph());
|
|
75
|
-
});
|
|
76
|
-
renderer.on("enterEdge", debouceEdgeEnter);
|
|
77
|
-
renderer.on("leaveEdge", function (e) {
|
|
78
|
-
debouceEdgeEnter.cancel();
|
|
79
|
-
handleLeaveEdge(e.edge, renderer.getGraph());
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
exports.attachHighlighter = attachHighlighter;
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
-
|
|
5
|
-
var attachMouseActions = function attachMouseActions(renderer) {
|
|
6
|
-
var isDragging = false;
|
|
7
|
-
var isDragged = false;
|
|
8
|
-
var startPos = {
|
|
9
|
-
x: 0,
|
|
10
|
-
y: 0
|
|
11
|
-
};
|
|
12
|
-
var draggedNode;
|
|
13
|
-
var handleDrag = function handleDrag(renderer) {
|
|
14
|
-
return function (e) {
|
|
15
|
-
if (!isDragging || !draggedNode) return;
|
|
16
|
-
isDragged = true;
|
|
17
|
-
// Get new position of node
|
|
18
|
-
var pos = renderer.viewportToGraph(e);
|
|
19
|
-
var diff = {
|
|
20
|
-
x: pos.x - startPos.x,
|
|
21
|
-
y: pos.y - startPos.y
|
|
22
|
-
};
|
|
23
|
-
var graph = renderer.getGraph();
|
|
24
|
-
Object.entries(draggedNode).forEach(function (_ref) {
|
|
25
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
26
|
-
node = _ref2[0],
|
|
27
|
-
xy = _ref2[1];
|
|
28
|
-
graph.setNodeAttribute(node, "x", xy.x + diff.x);
|
|
29
|
-
graph.setNodeAttribute(node, "y", xy.y + diff.y);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
// Prevent sigma to move camera:
|
|
33
|
-
e.preventSigmaDefault();
|
|
34
|
-
e.original.preventDefault();
|
|
35
|
-
e.original.stopPropagation();
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
var stopDragging = function stopDragging(graph) {
|
|
39
|
-
// if (draggedNode) {
|
|
40
|
-
// Object.entries<KeyValue>(draggedNode).forEach(([node, xy]) => {
|
|
41
|
-
// const atts = graph.getNodeAttributes(node);
|
|
42
|
-
// if (atts.isGroup) {
|
|
43
|
-
// const diff = { x: atts.x - xy.x, y: atts.y - xy.y };
|
|
44
|
-
// atts.nodes?.forEach((id: string) => {
|
|
45
|
-
// try {
|
|
46
|
-
// const { x, y } = graph.getNodeAttributes(id);
|
|
47
|
-
// graph.setNodeAttribute(id, "x", x + diff.x);
|
|
48
|
-
// graph.setNodeAttribute(id, "y", y + diff.y);
|
|
49
|
-
// } catch {
|
|
50
|
-
// //
|
|
51
|
-
// }
|
|
52
|
-
// });
|
|
53
|
-
// }
|
|
54
|
-
// });
|
|
55
|
-
// }
|
|
56
|
-
isDragging = false;
|
|
57
|
-
draggedNode = undefined;
|
|
58
|
-
};
|
|
59
|
-
var enableDragging = function enableDragging(renderer) {
|
|
60
|
-
renderer.on("downNode", function (e) {
|
|
61
|
-
if ("button" in e.event.original && e.event.original.button === 0) {
|
|
62
|
-
var graph = renderer.getGraph();
|
|
63
|
-
isDragging = true;
|
|
64
|
-
draggedNode = {};
|
|
65
|
-
var _graph$getNodeAttribu = graph.getNodeAttributes(e.node),
|
|
66
|
-
_graph$getNodeAttribu2 = _graph$getNodeAttribu.x,
|
|
67
|
-
x = _graph$getNodeAttribu2 === void 0 ? 0 : _graph$getNodeAttribu2,
|
|
68
|
-
_graph$getNodeAttribu3 = _graph$getNodeAttribu.y,
|
|
69
|
-
y = _graph$getNodeAttribu3 === void 0 ? 0 : _graph$getNodeAttribu3;
|
|
70
|
-
draggedNode[e.node] = {
|
|
71
|
-
x: x,
|
|
72
|
-
y: y
|
|
73
|
-
};
|
|
74
|
-
startPos = {
|
|
75
|
-
x: x,
|
|
76
|
-
y: y
|
|
77
|
-
};
|
|
78
|
-
graph.forEachNode(function (node, atts) {
|
|
79
|
-
if (atts.selected) {
|
|
80
|
-
draggedNode[node] = {
|
|
81
|
-
x: atts.x,
|
|
82
|
-
y: atts.y
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
// On mouse move, if the drag mode is enabled, we change the position of the draggedNode
|
|
90
|
-
renderer.getMouseCaptor().on("mousemovebody", handleDrag(renderer));
|
|
91
|
-
|
|
92
|
-
// On mouse up, we reset the autoscale and the dragging mode
|
|
93
|
-
renderer.getMouseCaptor().on("mouseup", function (e) {
|
|
94
|
-
if (isDragging) {
|
|
95
|
-
stopDragging(renderer.getGraph());
|
|
96
|
-
e.original.preventDefault();
|
|
97
|
-
e.preventSigmaDefault();
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
// Disable the autoscale at the first down interaction
|
|
102
|
-
renderer.getMouseCaptor().on("mousedown", function () {
|
|
103
|
-
if (!renderer.getCustomBBox()) renderer.setCustomBBox(renderer.getBBox());
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
var resetSelection = function resetSelection(graph) {
|
|
107
|
-
graph.forEachNode(function (node, atts) {
|
|
108
|
-
return atts.selected && graph.setNodeAttribute(node, "selected", false);
|
|
109
|
-
});
|
|
110
|
-
graph.forEachEdge(function (node, atts) {
|
|
111
|
-
return atts.selected && graph.setEdgeAttribute(node, "selected", false);
|
|
112
|
-
});
|
|
113
|
-
};
|
|
114
|
-
var enableSelection = function enableSelection(renderer) {
|
|
115
|
-
renderer.on("downNode", function (e) {
|
|
116
|
-
if ("button" in e.event.original && e.event.original.button === 2) {
|
|
117
|
-
var isSelected = renderer.getGraph().getNodeAttribute(e.node, "selected");
|
|
118
|
-
!isSelected && resetSelection(renderer.getGraph());
|
|
119
|
-
!isSelected && renderer.getGraph().setNodeAttribute(e.node, "selected", true);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
renderer.on("downEdge", function (e) {
|
|
123
|
-
if ("button" in e.event.original && e.event.original.button === 2) {
|
|
124
|
-
var isSelected = renderer.getGraph().getEdgeAttribute(e.edge, "selected");
|
|
125
|
-
!isSelected && resetSelection(renderer.getGraph());
|
|
126
|
-
!isSelected && renderer.getGraph().setEdgeAttribute(e.edge, "selected", true);
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
renderer.on("clickNode", function (e) {
|
|
130
|
-
if (!isDragged && "button" in e.event.original && e.event.original.button === 0) {
|
|
131
|
-
var isSelected = renderer.getGraph().getNodeAttribute(e.node, "selected");
|
|
132
|
-
!e.event.original.shiftKey && resetSelection(renderer.getGraph());
|
|
133
|
-
renderer.getGraph().setNodeAttribute(e.node, "selected", !isSelected);
|
|
134
|
-
}
|
|
135
|
-
isDragged = false;
|
|
136
|
-
});
|
|
137
|
-
renderer.on("downStage", function (e) {
|
|
138
|
-
resetSelection(renderer.getGraph());
|
|
139
|
-
});
|
|
140
|
-
};
|
|
141
|
-
enableSelection(renderer);
|
|
142
|
-
enableDragging(renderer);
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
exports.attachMouseActions = attachMouseActions;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
var index = require('../graph/index.js');
|
|
6
|
-
|
|
7
|
-
var useGraphology = function useGraphology(data) {
|
|
8
|
-
var _useState = react.useState(new index.Graph({
|
|
9
|
-
multi: true
|
|
10
|
-
})),
|
|
11
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
12
|
-
graph = _useState2[0],
|
|
13
|
-
setGraph = _useState2[1];
|
|
14
|
-
var _useState3 = react.useState([]),
|
|
15
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
16
|
-
selected = _useState4[0],
|
|
17
|
-
setSelected = _useState4[1];
|
|
18
|
-
react.useEffect(function () {
|
|
19
|
-
if (data instanceof index.Graph) {
|
|
20
|
-
setGraph(data);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
graph.clear();
|
|
24
|
-
data && graph["import"](data, false);
|
|
25
|
-
}, [data]);
|
|
26
|
-
react.useEffect(function () {
|
|
27
|
-
var handler = function handler(nodes) {
|
|
28
|
-
setSelected(nodes);
|
|
29
|
-
};
|
|
30
|
-
graph.on("nodesSelected", handler);
|
|
31
|
-
return function () {
|
|
32
|
-
graph.off("nodesSelected", handler);
|
|
33
|
-
};
|
|
34
|
-
}, [graph]);
|
|
35
|
-
return {
|
|
36
|
-
graph: graph,
|
|
37
|
-
selected: selected
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
exports.useGraphology = useGraphology;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
-
var core = require('@react-fabric/core');
|
|
5
|
-
var react = require('react');
|
|
6
|
-
var Sigma = require('sigma');
|
|
7
|
-
var index$1 = require('../programs/edge-curve/index.js');
|
|
8
|
-
var index = require('../programs/edge-line/index.js');
|
|
9
|
-
var index$3 = require('../programs/node-circle/index.js');
|
|
10
|
-
var index$2 = require('../programs/node-rect/index.js');
|
|
11
|
-
var sigmaHilighter = require('./sigmaHilighter.js');
|
|
12
|
-
var sigmaMouseActions = require('./sigmaMouseActions.js');
|
|
13
|
-
|
|
14
|
-
var useSigma = function useSigma(graph, _nodeReducer, _edgeReducer) {
|
|
15
|
-
var _useState = react.useState(null),
|
|
16
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
17
|
-
containerRef = _useState2[0],
|
|
18
|
-
setContainerRef = _useState2[1];
|
|
19
|
-
var _useState3 = react.useState(null),
|
|
20
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
21
|
-
componentsRef = _useState4[0],
|
|
22
|
-
setComponentsRef = _useState4[1];
|
|
23
|
-
var isDark = core.useIsDark();
|
|
24
|
-
var _useState5 = react.useState(),
|
|
25
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
26
|
-
sigma = _useState6[0],
|
|
27
|
-
updateSigma = _useState6[1];
|
|
28
|
-
react.useEffect(function () {
|
|
29
|
-
if (containerRef) {
|
|
30
|
-
var renderer = new Sigma(graph, containerRef, {
|
|
31
|
-
allowInvalidContainer: true,
|
|
32
|
-
enableEdgeEvents: true,
|
|
33
|
-
renderEdgeLabels: true,
|
|
34
|
-
renderLabels: true,
|
|
35
|
-
labelSize: 14,
|
|
36
|
-
defaultEdgeType: "line",
|
|
37
|
-
defaultNodeType: "circle",
|
|
38
|
-
edgeProgramClasses: {
|
|
39
|
-
line: index.EdgeLineProgram,
|
|
40
|
-
curved: index$1.EdgeCurveProgram
|
|
41
|
-
},
|
|
42
|
-
// for some reason max ratio is min zoom and min ratio is max zoom
|
|
43
|
-
maxCameraRatio: 10,
|
|
44
|
-
minCameraRatio: 0.01,
|
|
45
|
-
nodeProgramClasses: {
|
|
46
|
-
rect: index$2.NodeRectProgram,
|
|
47
|
-
circle: index$3.NodeCircleProgram
|
|
48
|
-
},
|
|
49
|
-
nodeReducer: function nodeReducer(key, 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
|
-
// Ensure node size is at least 16 for visibility
|
|
53
|
-
if (!nodeData.size && nodeData.weight) {
|
|
54
|
-
nodeData.size = Math.max(16, nodeData.weight * 3);
|
|
55
|
-
}
|
|
56
|
-
if (((_nodeData$size = nodeData.size) !== null && _nodeData$size !== void 0 ? _nodeData$size : 0) < 16) {
|
|
57
|
-
nodeData.size = 16;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// ensure node label renderer is called in order to render selected border
|
|
61
|
-
nodeData.label = (_nodeData$label = nodeData.label) !== null && _nodeData$label !== void 0 ? _nodeData$label : "";
|
|
62
|
-
nodeData.id = key;
|
|
63
|
-
return nodeData;
|
|
64
|
-
},
|
|
65
|
-
edgeReducer: function edgeReducer(key, 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
|
-
// Ensure edge size is at least 0.5 for visibility
|
|
69
|
-
if (!edgeData.size && edgeData.weight) {
|
|
70
|
-
edgeData.size = Math.max(0.5, edgeData.weight * 6);
|
|
71
|
-
}
|
|
72
|
-
if (((_edgeData$size = edgeData.size) !== null && _edgeData$size !== void 0 ? _edgeData$size : 0) < 0.5) {
|
|
73
|
-
edgeData.size = 0.5;
|
|
74
|
-
}
|
|
75
|
-
edgeData.id = key;
|
|
76
|
-
return edgeData;
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
sigmaMouseActions.attachMouseActions(renderer);
|
|
80
|
-
sigmaHilighter.attachHighlighter(renderer);
|
|
81
|
-
|
|
82
|
-
// containerRef?.insertBefore(
|
|
83
|
-
// componentsRef,
|
|
84
|
-
// renderer.getCanvases().mouse,
|
|
85
|
-
// );
|
|
86
|
-
|
|
87
|
-
// @ts-expect-error ignore
|
|
88
|
-
window.sigma = renderer;
|
|
89
|
-
updateSigma(renderer);
|
|
90
|
-
return function () {
|
|
91
|
-
renderer.kill();
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
}, [graph, containerRef, componentsRef]);
|
|
95
|
-
react.useEffect(function () {
|
|
96
|
-
sigma === null || sigma === void 0 || sigma.setSettings({
|
|
97
|
-
defaultNodeColor: isDark ? "#000" : "#fff",
|
|
98
|
-
defaultEdgeColor: isDark ? "#fff" : "#000",
|
|
99
|
-
labelColor: {
|
|
100
|
-
color: isDark ? "#fff" : "#000",
|
|
101
|
-
attribute: "labelColor"
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
}, [isDark, sigma]);
|
|
105
|
-
return {
|
|
106
|
-
instance: sigma,
|
|
107
|
-
containerRef: setContainerRef,
|
|
108
|
-
componentsRef: setComponentsRef
|
|
109
|
-
};
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
exports.useSigma = useSigma;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/* istanbul ignore file */
|
|
4
|
-
|
|
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";
|
|
7
|
-
|
|
8
|
-
module.exports = SHADER_SOURCE;
|