@react-fabric/graph 1.0.0-beta.58 → 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.
Files changed (144) hide show
  1. package/dist/cjs/{packages/graph/src/components → components}/Context.js +6 -6
  2. package/dist/cjs/{packages/graph/src/components → components}/ContextMenu.js +8 -9
  3. package/dist/cjs/{packages/graph/src/components → components}/Tools.js +102 -24
  4. package/dist/cjs/{packages/graph/src/components → components}/Viewer.js +1 -0
  5. package/dist/cjs/{packages/graph/src/graph → graph}/index.js +75 -68
  6. package/dist/cjs/{packages/graph/src/hooks → hooks}/useSigma.js +5 -5
  7. package/dist/cjs/programs/arrow-head/frag.glsl.js +8 -0
  8. package/dist/cjs/{packages/graph/src/programs → programs}/arrow-head/index.js +1 -1
  9. package/dist/cjs/programs/arrow-head/vert.glsl.js +8 -0
  10. package/dist/cjs/{packages/graph/src/programs → programs}/edge-curve/index.js +2 -2
  11. package/dist/cjs/{packages/graph/src/programs → programs}/edge-line/index.js +2 -2
  12. package/dist/cjs/{packages/graph/src/programs → programs}/node-badge/vert.glsl.js +1 -1
  13. package/dist/cjs/{packages/graph/src/programs → programs}/node-circle/base/drawHover.js +2 -1
  14. package/dist/cjs/{packages/graph/src/programs → programs}/node-circle/base/drawLabel.js +2 -1
  15. package/dist/cjs/{packages/graph/src/programs → programs}/node-rect/base/drawHover.js +2 -1
  16. package/dist/cjs/{packages/graph/src/programs → programs}/node-rect/base/drawLabel.js +2 -1
  17. package/dist/esm/{packages/graph/src/components → components}/Context.js +6 -6
  18. package/dist/esm/{packages/graph/src/components → components}/ContextMenu.js +8 -9
  19. package/dist/esm/components/Tools.js +205 -0
  20. package/dist/esm/{packages/graph/src/components → components}/Viewer.js +1 -0
  21. package/dist/esm/{packages/graph/src/graph → graph}/index.js +75 -68
  22. package/dist/esm/{packages/graph/src/hooks → hooks}/useSigma.js +5 -5
  23. package/dist/esm/programs/arrow-head/frag.glsl.js +8 -0
  24. package/dist/esm/{packages/graph/src/programs → programs}/arrow-head/index.js +1 -1
  25. package/dist/esm/programs/arrow-head/vert.glsl.js +8 -0
  26. package/dist/esm/{packages/graph/src/programs → programs}/edge-curve/index.js +2 -2
  27. package/dist/esm/{packages/graph/src/programs → programs}/edge-line/index.js +2 -2
  28. package/dist/esm/{packages/graph/src/programs → programs}/node-badge/vert.glsl.js +1 -1
  29. package/dist/esm/{packages/graph/src/programs → programs}/node-circle/base/drawHover.js +2 -1
  30. package/dist/esm/{packages/graph/src/programs → programs}/node-circle/base/drawLabel.js +2 -1
  31. package/dist/esm/{packages/graph/src/programs → programs}/node-rect/base/drawHover.js +2 -1
  32. package/dist/esm/{packages/graph/src/programs → programs}/node-rect/base/drawLabel.js +2 -1
  33. package/dist/types/components/Context.d.ts +3 -3
  34. package/dist/types/components/Viewer.d.ts +1 -1
  35. package/dist/types/graph/index.d.ts +9 -4
  36. package/dist/types/hooks/sigmaHilighter.d.ts +1 -1
  37. package/dist/types/hooks/sigmaMouseActions.d.ts +1 -1
  38. package/dist/types/hooks/useGraphology.d.ts +1 -1
  39. package/dist/types/hooks/useSigma.d.ts +2 -2
  40. package/dist/types/programs/arrow-head/index.d.ts +4 -4
  41. package/dist/types/programs/edge-curve/index.d.ts +1 -1
  42. package/dist/types/programs/node-circle/base/drawHover.d.ts +1 -1
  43. package/dist/types/programs/node-circle/base/drawLabel.d.ts +1 -1
  44. package/dist/types/programs/node-circle/index.d.ts +1 -1
  45. package/dist/types/programs/node-rect/base/drawHover.d.ts +1 -1
  46. package/dist/types/programs/node-rect/base/drawLabel.d.ts +1 -1
  47. package/dist/types/programs/node-rect/index.d.ts +1 -1
  48. package/dist/types/types/index.d.ts +7 -7
  49. package/package.json +4 -4
  50. package/src/components/Context.tsx +18 -10
  51. package/src/components/ContextMenu.tsx +32 -14
  52. package/src/components/Tools.tsx +15 -16
  53. package/src/components/Viewer.tsx +2 -1
  54. package/src/graph/index.ts +68 -63
  55. package/src/graph/layout.worker.ts +1 -1
  56. package/src/hooks/sigmaHilighter.ts +2 -2
  57. package/src/hooks/sigmaMouseActions.ts +1 -1
  58. package/src/hooks/useGraphology.ts +1 -1
  59. package/src/hooks/useSigma.ts +8 -8
  60. package/src/programs/arrow-head/frag.glsl.ts +1 -1
  61. package/src/programs/arrow-head/index.ts +17 -8
  62. package/src/programs/arrow-head/vert.glsl.ts +1 -1
  63. package/src/programs/edge-curve/index.ts +2 -2
  64. package/src/programs/edge-line/index.ts +2 -2
  65. package/src/programs/node-badge/factory.ts +3 -3
  66. package/src/programs/node-badge/vert.glsl.ts +4 -4
  67. package/src/programs/node-circle/base/drawHover.ts +2 -2
  68. package/src/programs/node-circle/base/drawLabel.ts +6 -6
  69. package/src/programs/node-circle/index.ts +1 -1
  70. package/src/programs/node-rect/base/drawHover.ts +2 -2
  71. package/src/programs/node-rect/base/drawLabel.ts +6 -6
  72. package/src/programs/node-rect/index.ts +1 -1
  73. package/src/types/index.ts +6 -6
  74. package/dist/cjs/_virtual/_commonjs-dynamic-modules.js +0 -7
  75. package/dist/cjs/_virtual/_commonjsHelpers.js +0 -7
  76. package/dist/cjs/_virtual/elk.bundled.js +0 -5
  77. package/dist/cjs/node_modules/elkjs/lib/elk.bundled.js +0 -6667
  78. package/dist/cjs/packages/graph/src/programs/arrow-head/frag.glsl.js +0 -8
  79. package/dist/cjs/packages/graph/src/programs/arrow-head/vert.glsl.js +0 -8
  80. package/dist/esm/_virtual/_commonjs-dynamic-modules.js +0 -7
  81. package/dist/esm/_virtual/_commonjsHelpers.js +0 -7
  82. package/dist/esm/_virtual/elk.bundled.js +0 -5
  83. package/dist/esm/node_modules/elkjs/lib/elk.bundled.js +0 -6667
  84. package/dist/esm/packages/graph/src/components/Tools.js +0 -127
  85. package/dist/esm/packages/graph/src/programs/arrow-head/frag.glsl.js +0 -8
  86. package/dist/esm/packages/graph/src/programs/arrow-head/vert.glsl.js +0 -8
  87. /package/dist/cjs/{packages/graph/src/constants → constants}/index.js +0 -0
  88. /package/dist/cjs/{packages/graph/src/hooks → hooks}/sigmaDragSelect.js +0 -0
  89. /package/dist/cjs/{packages/graph/src/hooks → hooks}/sigmaHilighter.js +0 -0
  90. /package/dist/cjs/{packages/graph/src/hooks → hooks}/sigmaMouseActions.js +0 -0
  91. /package/dist/cjs/{packages/graph/src/hooks → hooks}/useGraphology.js +0 -0
  92. /package/dist/cjs/{packages/graph/src/index.js → index.js} +0 -0
  93. /package/dist/cjs/{packages/graph/src/programs → programs}/edge-curve/drawLabel.js +0 -0
  94. /package/dist/cjs/{packages/graph/src/programs → programs}/edge-curve/frag.glsl.js +0 -0
  95. /package/dist/cjs/{packages/graph/src/programs → programs}/edge-curve/vert.glsl.js +0 -0
  96. /package/dist/cjs/{packages/graph/src/programs → programs}/edge-line/drawLabel.js +0 -0
  97. /package/dist/cjs/{packages/graph/src/programs → programs}/edge-line/frag.glsl.js +0 -0
  98. /package/dist/cjs/{packages/graph/src/programs → programs}/edge-line/vert.glsl.js +0 -0
  99. /package/dist/cjs/{packages/graph/src/programs → programs}/node-badge/factory.js +0 -0
  100. /package/dist/cjs/{packages/graph/src/programs → programs}/node-badge/frag.glsl.js +0 -0
  101. /package/dist/cjs/{packages/graph/src/programs → programs}/node-badge/index.js +0 -0
  102. /package/dist/cjs/{packages/graph/src/programs → programs}/node-badge/texture.js +0 -0
  103. /package/dist/cjs/{packages/graph/src/programs → programs}/node-circle/base/frag.glsl.js +0 -0
  104. /package/dist/cjs/{packages/graph/src/programs → programs}/node-circle/base/index.js +0 -0
  105. /package/dist/cjs/{packages/graph/src/programs → programs}/node-circle/base/vert.glsl.js +0 -0
  106. /package/dist/cjs/{packages/graph/src/programs → programs}/node-circle/index.js +0 -0
  107. /package/dist/cjs/{packages/graph/src/programs → programs}/node-image/factory.js +0 -0
  108. /package/dist/cjs/{packages/graph/src/programs → programs}/node-image/frag.glsl.js +0 -0
  109. /package/dist/cjs/{packages/graph/src/programs → programs}/node-image/index.js +0 -0
  110. /package/dist/cjs/{packages/graph/src/programs → programs}/node-image/texture.js +0 -0
  111. /package/dist/cjs/{packages/graph/src/programs → programs}/node-image/vert.glsl.js +0 -0
  112. /package/dist/cjs/{packages/graph/src/programs → programs}/node-rect/base/frag.glsl.js +0 -0
  113. /package/dist/cjs/{packages/graph/src/programs → programs}/node-rect/base/index.js +0 -0
  114. /package/dist/cjs/{packages/graph/src/programs → programs}/node-rect/base/vert.glsl.js +0 -0
  115. /package/dist/cjs/{packages/graph/src/programs → programs}/node-rect/index.js +0 -0
  116. /package/dist/esm/{packages/graph/src/constants → constants}/index.js +0 -0
  117. /package/dist/esm/{packages/graph/src/hooks → hooks}/sigmaDragSelect.js +0 -0
  118. /package/dist/esm/{packages/graph/src/hooks → hooks}/sigmaHilighter.js +0 -0
  119. /package/dist/esm/{packages/graph/src/hooks → hooks}/sigmaMouseActions.js +0 -0
  120. /package/dist/esm/{packages/graph/src/hooks → hooks}/useGraphology.js +0 -0
  121. /package/dist/esm/{packages/graph/src/index.js → index.js} +0 -0
  122. /package/dist/esm/{packages/graph/src/programs → programs}/edge-curve/drawLabel.js +0 -0
  123. /package/dist/esm/{packages/graph/src/programs → programs}/edge-curve/frag.glsl.js +0 -0
  124. /package/dist/esm/{packages/graph/src/programs → programs}/edge-curve/vert.glsl.js +0 -0
  125. /package/dist/esm/{packages/graph/src/programs → programs}/edge-line/drawLabel.js +0 -0
  126. /package/dist/esm/{packages/graph/src/programs → programs}/edge-line/frag.glsl.js +0 -0
  127. /package/dist/esm/{packages/graph/src/programs → programs}/edge-line/vert.glsl.js +0 -0
  128. /package/dist/esm/{packages/graph/src/programs → programs}/node-badge/factory.js +0 -0
  129. /package/dist/esm/{packages/graph/src/programs → programs}/node-badge/frag.glsl.js +0 -0
  130. /package/dist/esm/{packages/graph/src/programs → programs}/node-badge/index.js +0 -0
  131. /package/dist/esm/{packages/graph/src/programs → programs}/node-badge/texture.js +0 -0
  132. /package/dist/esm/{packages/graph/src/programs → programs}/node-circle/base/frag.glsl.js +0 -0
  133. /package/dist/esm/{packages/graph/src/programs → programs}/node-circle/base/index.js +0 -0
  134. /package/dist/esm/{packages/graph/src/programs → programs}/node-circle/base/vert.glsl.js +0 -0
  135. /package/dist/esm/{packages/graph/src/programs → programs}/node-circle/index.js +0 -0
  136. /package/dist/esm/{packages/graph/src/programs → programs}/node-image/factory.js +0 -0
  137. /package/dist/esm/{packages/graph/src/programs → programs}/node-image/frag.glsl.js +0 -0
  138. /package/dist/esm/{packages/graph/src/programs → programs}/node-image/index.js +0 -0
  139. /package/dist/esm/{packages/graph/src/programs → programs}/node-image/texture.js +0 -0
  140. /package/dist/esm/{packages/graph/src/programs → programs}/node-image/vert.glsl.js +0 -0
  141. /package/dist/esm/{packages/graph/src/programs → programs}/node-rect/base/frag.glsl.js +0 -0
  142. /package/dist/esm/{packages/graph/src/programs → programs}/node-rect/base/index.js +0 -0
  143. /package/dist/esm/{packages/graph/src/programs → programs}/node-rect/base/vert.glsl.js +0 -0
  144. /package/dist/esm/{packages/graph/src/programs → programs}/node-rect/index.js +0 -0
@@ -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 && utils.fitViewportToNodes(sigma.instance, graph.nodes(), {
36
+ void (sigma.instance && utils.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 || _sigma$instance.getCamera().animatedZoom();
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 || _sigma$instance2.getCamera().animatedUnzoom();
48
+ void ((_sigma$instance2 = sigma.instance) === null || _sigma$instance2 === void 0 ? void 0 : _sigma$instance2.getCamera().animatedUnzoom());
49
49
  };
50
50
  react.useEffect(function () {
51
51
  var resetHandler = function resetHandler() {
52
- sigma.instance && utils.fitViewportToNodes(sigma.instance, graph.nodes(), {
52
+ void (sigma.instance && utils.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
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
5
  var react$1 = require('@floating-ui/react');
6
- var react = require('react');
7
- var Context = require('./Context.js');
8
6
  var core = require('@react-fabric/core');
7
+ var react = require('react');
9
8
  var index = require('../constants/index.js');
9
+ var Context = require('./Context.js');
10
10
  var jsxRuntime = require('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 = react$1.useFloatingNodeId();
21
21
  var _useGraph = Context.useGraph(),
22
22
  sigma = _useGraph.sigma;
23
- _useGraph.graph;
24
23
  var _useState3 = react.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__*/jsxRuntime.jsx(core.MenuItem, {
63
62
  label: "Select neighbors"
64
- }), /*#__PURE__*/jsxRuntime.jsx(core.Divider, {}), /*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
63
+ }, "0.0"), /*#__PURE__*/jsxRuntime.jsx(core.Divider, {}, "0.1"), /*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
65
64
  label: "Delete node(s)",
66
65
  color: "danger",
67
66
  icon: index.ICONS["delete"]
68
- }), /*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
67
+ }, "0.2"), /*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
69
68
  label: "Clear graph",
70
69
  color: "danger",
71
70
  icon: index.ICONS.clear
72
- })]);
71
+ }, "0.3")]);
73
72
  } else if ("edge" in e) {
74
73
  setMenu([/*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
75
74
  label: "Select neighbors"
76
- }), /*#__PURE__*/jsxRuntime.jsx(core.Divider, {}), /*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
75
+ }, "1.0"), /*#__PURE__*/jsxRuntime.jsx(core.Divider, {}, "1.1"), /*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
77
76
  label: "Clear graph",
78
77
  color: "danger",
79
78
  icon: index.ICONS.clear
80
- })]);
79
+ }, "1.2")]);
81
80
  } else {
82
81
  setMenu([/*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
83
82
  label: "Clear graph",
84
83
  color: "danger",
85
84
  icon: index.ICONS.clear
86
- })]);
85
+ }, "2.0")]);
87
86
  }
88
87
  var virtual = {
89
88
  getBoundingClientRect: function getBoundingClientRect() {
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
4
+ var _regeneratorRuntime = require('@babel/runtime/regenerator');
3
5
  var core = require('@react-fabric/core');
4
6
  var index = require('../constants/index.js');
5
7
  var Context = require('./Context.js');
@@ -9,9 +11,8 @@ var Tools = function Tools() {
9
11
  var _useGraph = Context.useGraph(),
10
12
  dragSelector = _useGraph.dragSelector,
11
13
  graph = _useGraph.graph,
12
- selected = _useGraph.selected;
13
- _useGraph.layoutRunning;
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__*/jsxRuntime.jsxs("div", {
@@ -66,39 +67,116 @@ var Tools = function Tools() {
66
67
  className: "text-sm",
67
68
  children: [/*#__PURE__*/jsxRuntime.jsx(core.MenuItem, {
68
69
  label: "box",
69
- onClick: function onClick() {
70
- return graph.elkLayout("box");
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__*/jsxRuntime.jsx(core.MenuItem, {
73
85
  label: "force",
74
- onClick: function onClick() {
75
- return graph.elkLayout("force");
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__*/jsxRuntime.jsx(core.MenuItem, {
78
101
  label: "layered",
79
- onClick: function onClick() {
80
- return graph.elkLayout("layered");
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__*/jsxRuntime.jsx(core.MenuItem, {
83
117
  label: "stress",
84
- onClick: function onClick() {
85
- return graph.elkLayout("stress");
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__*/jsxRuntime.jsx(core.MenuItem, {
88
133
  label: "radial",
89
- onClick: function onClick() {
90
- return graph.elkLayout("radial");
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__*/jsxRuntime.jsx(core.MenuItem, {
93
149
  label: "sporeOverlap",
94
- onClick: function onClick() {
95
- return graph.elkLayout("sporeOverlap");
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__*/jsxRuntime.jsx(core.MenuItem, {
98
165
  label: "sporeCompaction",
99
- onClick: function onClick() {
100
- return graph.elkLayout("sporeCompaction");
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
  })
@@ -35,6 +35,7 @@ var Graph = function Graph() {
35
35
  ref: sigma.containerRef,
36
36
  className: "absolute inset-0"
37
37
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
38
+ role: "none",
38
39
  ref: handlesRef,
39
40
  dir: "ltr",
40
41
  onClick: function onClick(e) {
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
5
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
5
6
  var _typeof = require('@babel/runtime/helpers/typeof');
6
7
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
@@ -12,12 +13,16 @@ var _inherits = require('@babel/runtime/helpers/inherits');
12
13
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
13
14
  var utilities = require('@react-fabric/utilities');
14
15
  var edgeCurve = require('@sigma/edge-curve');
15
- var elk_bundled = require('../../../../node_modules/elkjs/lib/elk.bundled.js');
16
- var elkWorker = require('../../../../_virtual/elk-worker.js');
16
+ var ElkConstructor = require('elkjs/lib/elk.bundled');
17
17
  var Graphology = require('graphology');
18
18
  var graphologyLayout = require('graphology-layout');
19
+ var forceAtlas2 = require('graphology-layout-forceatlas2');
20
+ var ForceAtlas2Worker = require('graphology-layout-forceatlas2/worker');
19
21
  var utils = require('sigma/utils');
22
+ var elkWorker = require('../_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 _this4 = this;
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,72 +244,74 @@ 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
- var positions = graphologyLayout.random(this);
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 = graphologyLayout.circular(this);
243
268
  utils.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
- // circularLayout() {
253
- // if (this.size === 0) return this;
254
- // const positions = circular(this as any);
255
- // animateNodes(
256
- // this as any,
257
- // positions,
258
- // {
259
- // duration: 200,
260
- // },
261
- // () => {
262
- // this.emit("layoutDone");
263
- // },
264
- // );
265
- // return this;
266
- // }
267
-
268
- // private _timer: any;
269
- // private _worker?: forceAtlas2Worker;
270
- // forceLayout(settings: ForceAtlas2Settings = {}) {
271
- // if (this.size === 0) return this;
272
- // const sensibleSettings = forceAtlas2.inferSettings(this as any);
273
- // if (this._worker?.isRunning()) {
274
- // clearTimeout(this._timer);
275
- // }
276
- // this._worker?.kill();
277
- // this._worker = new forceAtlas2Worker(this as any, {
278
- // settings: {
279
- // ...sensibleSettings,
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 _this7 = this;
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:
307
- if (!this.elk) this.elk = new elk_bundled({
314
+ if (!this.elk) this.elk = new ElkConstructor({
308
315
  workerFactory: function workerFactory() {
309
316
  return new elkWorker();
310
317
  }
@@ -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
- utils.animateNodes(_this7, positions, {
354
+ utils.animateNodes(_this8, positions, {
348
355
  duration: 200
349
356
  }, function () {
350
357
  setTimeout(function () {
351
- _this7.emit("layoutDone");
358
+ _this8.emit("layoutDone");
352
359
  }, 100);
353
360
  });
354
361
  })["catch"](console.error)["finally"](function () {
355
- _this7.emit("layoutRunning", false);
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 _this8 = this;
378
+ var _this9 = this;
372
379
  if (!nodes.length) return;
373
380
  nodes.forEach(function (n) {
374
- return _this8.dropNode(n);
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 _this9 = this;
401
+ var _this10 = this;
395
402
  // Use dedicated helper to identify parallel edges:
396
403
  // @ts-expect-error ignore
397
404
  edgeCurve.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
- _this9.mergeEdgeAttributes(edge, {
415
+ _this10.mergeEdgeAttributes(edge, {
409
416
  type: parallelIndex ? "curved" : "line",
410
- curvature: _this9.getCurvature(parallelIndex !== null && parallelIndex !== void 0 ? parallelIndex : 1, parallelMaxIndex !== null && parallelMaxIndex !== void 0 ? parallelMaxIndex : 1)
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
- _this9.mergeEdgeAttributes(edge, {
420
+ _this10.mergeEdgeAttributes(edge, {
414
421
  type: "curved",
415
- curvature: _this9.getCurvature(parallelIndex !== null && parallelIndex !== void 0 ? parallelIndex : 1, parallelMaxIndex !== null && parallelMaxIndex !== void 0 ? parallelMaxIndex : 1)
422
+ curvature: _this10.getCurvature(parallelIndex !== null && parallelIndex !== void 0 ? parallelIndex : 1, parallelMaxIndex !== null && parallelMaxIndex !== void 0 ? parallelMaxIndex : 1)
416
423
  });
417
424
  } else {
418
- _this9.setEdgeAttribute(edge, "type", "line");
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: index$3.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)) || 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)) || 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);
@@ -0,0 +1,8 @@
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;
@@ -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);
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ /* istanbul ignore file */
4
+
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";
7
+
8
+ module.exports = SHADER_SOURCE;
@@ -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 || data.highlight ? 16 : 8);
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 || data.highlight ? 8 : 4);
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;
@@ -14,6 +14,6 @@ var POSITION = {
14
14
  };
15
15
 
16
16
  // language=GLSL
17
- var VERTEX_SHADER_SOURCE = /* glsl */"\nattribute vec4 a_id;\nattribute vec4 a_fill;\nattribute vec4 a_color;\nattribute vec2 a_position;\nattribute float a_circle;\nattribute float a_placement;\nattribute float a_size;\nattribute float a_angle;\nattribute float a_opacity;\nattribute vec4 a_texture;\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\n\nvarying vec4 v_fill;\nvarying vec4 v_color;\nvarying vec2 v_diffVector;\nvarying float v_radius;\nvarying float v_opacity;\nvarying vec4 v_texture;\n\nconst float bias = 255.0 / 254.0;\nconst float marginRatio = 1.1;\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nvoid main() {\n float size = (a_size / 4.0) * u_correctionRatio / u_sizeRatio * 4.0;\n float originalSize = a_size * u_correctionRatio / u_sizeRatio * 4.0;\n vec2 diffVector = size * vec2(cos(a_angle), sin(a_angle));\n vec2 position = a_position + diffVector * marginRatio;\n float divisor = a_circle == 1.0 ? 2.5 : 2.0;\n if(a_placement == ".concat(POSITION["top-left"], ") {\n position.x -= originalSize / divisor;\n position.y += originalSize / divisor;\n }\n if(a_placement == ").concat(POSITION["top-right"], ") {\n position.x += originalSize / divisor;\n position.y += originalSize / divisor;\n }\n if(a_placement == ").concat(POSITION["bottom-left"], ") {\n position.x -= originalSize / divisor;\n position.y -= originalSize / divisor;\n }\n if(a_placement == ").concat(POSITION["bottom-right"], ") {\n position.x += originalSize / divisor;\n position.y -= originalSize / divisor;\n }\n if(a_placement == ").concat(POSITION["top"], ") {\n position.y += originalSize / 2.0;\n }\n if(a_placement == ").concat(POSITION["bottom"], ") {\n position.y -= originalSize / 2.0;\n }\n if(a_placement == ").concat(POSITION["left"], ") {\n position.x -= originalSize / 2.0;\n }\n if(a_placement == ").concat(POSITION["right"], ") {\n position.x += originalSize / 2.0;\n }\n gl_Position = vec4(\n (u_matrix * vec3(position, 1)).xy,\n 0,\n 1\n );\n\n v_diffVector = diffVector;\n v_radius = size / 2.0 / marginRatio;\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_fill = mix(transparent, a_fill, a_opacity * bias);\n v_color = vec4(a_color.rgb, a_opacity * bias);\n v_opacity = a_opacity;\n // Pass the texture coordinates:\n v_texture = a_texture;\n #endif\n}\n");
17
+ var VERTEX_SHADER_SOURCE = /* glsl */"\nattribute vec4 a_id;\nattribute vec4 a_fill;\nattribute vec4 a_color;\nattribute vec2 a_position;\nattribute float a_circle;\nattribute float a_placement;\nattribute float a_size;\nattribute float a_angle;\nattribute float a_opacity;\nattribute vec4 a_texture;\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\n\nvarying vec4 v_fill;\nvarying vec4 v_color;\nvarying vec2 v_diffVector;\nvarying float v_radius;\nvarying float v_opacity;\nvarying vec4 v_texture;\n\nconst float bias = 255.0 / 254.0;\nconst float marginRatio = 1.1;\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nvoid main() {\n float size = (a_size / 4.0) * u_correctionRatio / u_sizeRatio * 4.0;\n float originalSize = a_size * u_correctionRatio / u_sizeRatio * 4.0;\n vec2 diffVector = size * vec2(cos(a_angle), sin(a_angle));\n vec2 position = a_position + diffVector * marginRatio;\n float divisor = a_circle == 1.0 ? 2.5 : 2.0;\n if(a_placement == ".concat(POSITION["top-left"], ") {\n position.x -= originalSize / divisor;\n position.y += originalSize / divisor;\n }\n if(a_placement == ").concat(POSITION["top-right"], ") {\n position.x += originalSize / divisor;\n position.y += originalSize / divisor;\n }\n if(a_placement == ").concat(POSITION["bottom-left"], ") {\n position.x -= originalSize / divisor;\n position.y -= originalSize / divisor;\n }\n if(a_placement == ").concat(POSITION["bottom-right"], ") {\n position.x += originalSize / divisor;\n position.y -= originalSize / divisor;\n }\n if(a_placement == ").concat(POSITION.top, ") {\n position.y += originalSize / 2.0;\n }\n if(a_placement == ").concat(POSITION.bottom, ") {\n position.y -= originalSize / 2.0;\n }\n if(a_placement == ").concat(POSITION.left, ") {\n position.x -= originalSize / 2.0;\n }\n if(a_placement == ").concat(POSITION.right, ") {\n position.x += originalSize / 2.0;\n }\n gl_Position = vec4(\n (u_matrix * vec3(position, 1)).xy,\n 0,\n 1\n );\n\n v_diffVector = diffVector;\n v_radius = size / 2.0 / marginRatio;\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_fill = mix(transparent, a_fill, a_opacity * bias);\n v_color = vec4(a_color.rgb, a_opacity * bias);\n v_opacity = a_opacity;\n // Pass the texture coordinates:\n v_texture = a_texture;\n #endif\n}\n");
18
18
 
19
19
  module.exports = VERTEX_SHADER_SOURCE;
@@ -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 || settings.labelColor.color || "#000";
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