@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.
Files changed (220) hide show
  1. package/dist/cjs/context/context.js +16 -0
  2. package/dist/cjs/graph/index.js +62 -385
  3. package/dist/cjs/index.js +25 -21
  4. package/dist/cjs/utils/edge.js +76 -0
  5. package/dist/cjs/utils/node.js +93 -0
  6. package/dist/cjs/utils/sdfFolder.js +107 -0
  7. package/dist/cjs/viewer/Graph.js +174 -0
  8. package/dist/esm/context/context.js +15 -0
  9. package/dist/esm/graph/index.js +63 -386
  10. package/dist/esm/index.js +24 -20
  11. package/dist/esm/utils/edge.js +75 -0
  12. package/dist/esm/utils/node.js +92 -0
  13. package/dist/esm/utils/sdfFolder.js +107 -0
  14. package/dist/esm/viewer/Graph.js +174 -0
  15. package/dist/types/context/context.d.ts +35 -0
  16. package/dist/types/graph/index.d.ts +47 -24
  17. package/dist/types/index.d.ts +28 -2
  18. package/dist/types/types/index.d.ts +124 -175
  19. package/dist/types/utils/edge.d.ts +28 -0
  20. package/dist/types/utils/node.d.ts +28 -0
  21. package/dist/types/utils/sdfFolder.d.ts +75 -0
  22. package/dist/types/viewer/Graph.d.ts +31 -0
  23. package/package.json +19 -25
  24. package/src/context/context.tsx +43 -0
  25. package/src/graph/index.ts +76 -399
  26. package/src/index.ts +24 -26
  27. package/src/types/index.ts +139 -185
  28. package/src/utils/edge.ts +65 -0
  29. package/src/utils/node.ts +105 -0
  30. package/src/utils/sdfFolder.ts +141 -0
  31. package/src/viewer/Graph.tsx +159 -0
  32. package/css/styles.css +0 -56
  33. package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +0 -14
  34. package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +0 -9
  35. package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -35
  36. package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +0 -11
  37. package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +0 -20
  38. package/dist/cjs/_virtual/elk-worker.js +0 -8
  39. package/dist/cjs/components/Context.js +0 -107
  40. package/dist/cjs/components/ContextMenu.js +0 -133
  41. package/dist/cjs/components/Tools.js +0 -205
  42. package/dist/cjs/components/Viewer.js +0 -58
  43. package/dist/cjs/constants/index.js +0 -16
  44. package/dist/cjs/hooks/sigmaDragSelect.js +0 -169
  45. package/dist/cjs/hooks/sigmaHilighter.js +0 -83
  46. package/dist/cjs/hooks/sigmaMouseActions.js +0 -145
  47. package/dist/cjs/hooks/useGraphology.js +0 -41
  48. package/dist/cjs/hooks/useSigma.js +0 -112
  49. package/dist/cjs/programs/arrow-head/frag.glsl.js +0 -8
  50. package/dist/cjs/programs/arrow-head/index.js +0 -142
  51. package/dist/cjs/programs/arrow-head/vert.glsl.js +0 -8
  52. package/dist/cjs/programs/edge-curve/drawLabel.js +0 -136
  53. package/dist/cjs/programs/edge-curve/frag.glsl.js +0 -8
  54. package/dist/cjs/programs/edge-curve/index.js +0 -157
  55. package/dist/cjs/programs/edge-curve/vert.glsl.js +0 -8
  56. package/dist/cjs/programs/edge-line/drawLabel.js +0 -70
  57. package/dist/cjs/programs/edge-line/frag.glsl.js +0 -8
  58. package/dist/cjs/programs/edge-line/index.js +0 -166
  59. package/dist/cjs/programs/edge-line/vert.glsl.js +0 -8
  60. package/dist/cjs/programs/node-badge/factory.js +0 -249
  61. package/dist/cjs/programs/node-badge/frag.glsl.js +0 -8
  62. package/dist/cjs/programs/node-badge/index.js +0 -33
  63. package/dist/cjs/programs/node-badge/texture.js +0 -455
  64. package/dist/cjs/programs/node-badge/vert.glsl.js +0 -19
  65. package/dist/cjs/programs/node-circle/base/drawHover.js +0 -71
  66. package/dist/cjs/programs/node-circle/base/drawLabel.js +0 -113
  67. package/dist/cjs/programs/node-circle/base/frag.glsl.js +0 -8
  68. package/dist/cjs/programs/node-circle/base/index.js +0 -136
  69. package/dist/cjs/programs/node-circle/base/vert.glsl.js +0 -8
  70. package/dist/cjs/programs/node-circle/index.js +0 -15
  71. package/dist/cjs/programs/node-image/factory.js +0 -223
  72. package/dist/cjs/programs/node-image/frag.glsl.js +0 -8
  73. package/dist/cjs/programs/node-image/index.js +0 -14
  74. package/dist/cjs/programs/node-image/texture.js +0 -472
  75. package/dist/cjs/programs/node-image/vert.glsl.js +0 -8
  76. package/dist/cjs/programs/node-rect/base/drawHover.js +0 -68
  77. package/dist/cjs/programs/node-rect/base/drawLabel.js +0 -107
  78. package/dist/cjs/programs/node-rect/base/frag.glsl.js +0 -8
  79. package/dist/cjs/programs/node-rect/base/index.js +0 -135
  80. package/dist/cjs/programs/node-rect/base/vert.glsl.js +0 -8
  81. package/dist/cjs/programs/node-rect/index.js +0 -15
  82. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +0 -14
  83. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +0 -9
  84. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -34
  85. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +0 -13
  86. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +0 -20
  87. package/dist/esm/_virtual/elk-worker.js +0 -8
  88. package/dist/esm/components/Context.js +0 -106
  89. package/dist/esm/components/ContextMenu.js +0 -133
  90. package/dist/esm/components/Tools.js +0 -205
  91. package/dist/esm/components/Viewer.js +0 -58
  92. package/dist/esm/constants/index.js +0 -16
  93. package/dist/esm/hooks/sigmaDragSelect.js +0 -169
  94. package/dist/esm/hooks/sigmaHilighter.js +0 -83
  95. package/dist/esm/hooks/sigmaMouseActions.js +0 -145
  96. package/dist/esm/hooks/useGraphology.js +0 -41
  97. package/dist/esm/hooks/useSigma.js +0 -112
  98. package/dist/esm/programs/arrow-head/frag.glsl.js +0 -8
  99. package/dist/esm/programs/arrow-head/index.js +0 -141
  100. package/dist/esm/programs/arrow-head/vert.glsl.js +0 -8
  101. package/dist/esm/programs/edge-curve/drawLabel.js +0 -136
  102. package/dist/esm/programs/edge-curve/frag.glsl.js +0 -8
  103. package/dist/esm/programs/edge-curve/index.js +0 -156
  104. package/dist/esm/programs/edge-curve/vert.glsl.js +0 -8
  105. package/dist/esm/programs/edge-line/drawLabel.js +0 -70
  106. package/dist/esm/programs/edge-line/frag.glsl.js +0 -8
  107. package/dist/esm/programs/edge-line/index.js +0 -166
  108. package/dist/esm/programs/edge-line/vert.glsl.js +0 -8
  109. package/dist/esm/programs/node-badge/factory.js +0 -249
  110. package/dist/esm/programs/node-badge/frag.glsl.js +0 -8
  111. package/dist/esm/programs/node-badge/index.js +0 -32
  112. package/dist/esm/programs/node-badge/texture.js +0 -445
  113. package/dist/esm/programs/node-badge/vert.glsl.js +0 -19
  114. package/dist/esm/programs/node-circle/base/drawHover.js +0 -71
  115. package/dist/esm/programs/node-circle/base/drawLabel.js +0 -113
  116. package/dist/esm/programs/node-circle/base/frag.glsl.js +0 -8
  117. package/dist/esm/programs/node-circle/base/index.js +0 -136
  118. package/dist/esm/programs/node-circle/base/vert.glsl.js +0 -8
  119. package/dist/esm/programs/node-circle/index.js +0 -15
  120. package/dist/esm/programs/node-image/factory.js +0 -223
  121. package/dist/esm/programs/node-image/frag.glsl.js +0 -8
  122. package/dist/esm/programs/node-image/index.js +0 -13
  123. package/dist/esm/programs/node-image/texture.js +0 -462
  124. package/dist/esm/programs/node-image/vert.glsl.js +0 -8
  125. package/dist/esm/programs/node-rect/base/drawHover.js +0 -68
  126. package/dist/esm/programs/node-rect/base/drawLabel.js +0 -107
  127. package/dist/esm/programs/node-rect/base/frag.glsl.js +0 -8
  128. package/dist/esm/programs/node-rect/base/index.js +0 -135
  129. package/dist/esm/programs/node-rect/base/vert.glsl.js +0 -8
  130. package/dist/esm/programs/node-rect/index.js +0 -15
  131. package/dist/types/components/Context.d.ts +0 -18
  132. package/dist/types/components/ContextMenu.d.ts +0 -1
  133. package/dist/types/components/Tools.d.ts +0 -1
  134. package/dist/types/components/Viewer.d.ts +0 -2
  135. package/dist/types/constants/index.d.ts +0 -12
  136. package/dist/types/graph/layout.worker.d.ts +0 -1
  137. package/dist/types/hooks/sigmaDragSelect.d.ts +0 -8
  138. package/dist/types/hooks/sigmaHilighter.d.ts +0 -3
  139. package/dist/types/hooks/sigmaMouseActions.d.ts +0 -3
  140. package/dist/types/hooks/useGraphology.d.ts +0 -6
  141. package/dist/types/hooks/useSigma.d.ts +0 -8
  142. package/dist/types/i18n/index.d.ts +0 -0
  143. package/dist/types/programs/arrow-head/frag.glsl.d.ts +0 -2
  144. package/dist/types/programs/arrow-head/index.d.ts +0 -9
  145. package/dist/types/programs/arrow-head/vert.glsl.d.ts +0 -2
  146. package/dist/types/programs/edge-curve/drawLabel.d.ts +0 -6
  147. package/dist/types/programs/edge-curve/frag.glsl.d.ts +0 -2
  148. package/dist/types/programs/edge-curve/index.d.ts +0 -43
  149. package/dist/types/programs/edge-curve/vert.glsl.d.ts +0 -2
  150. package/dist/types/programs/edge-line/drawLabel.d.ts +0 -5
  151. package/dist/types/programs/edge-line/frag.glsl.d.ts +0 -2
  152. package/dist/types/programs/edge-line/index.d.ts +0 -11
  153. package/dist/types/programs/edge-line/vert.glsl.d.ts +0 -2
  154. package/dist/types/programs/node-badge/factory.d.ts +0 -27
  155. package/dist/types/programs/node-badge/frag.glsl.d.ts +0 -2
  156. package/dist/types/programs/node-badge/index.d.ts +0 -5
  157. package/dist/types/programs/node-badge/texture.d.ts +0 -102
  158. package/dist/types/programs/node-badge/vert.glsl.d.ts +0 -2
  159. package/dist/types/programs/node-circle/base/drawHover.d.ts +0 -8
  160. package/dist/types/programs/node-circle/base/drawLabel.d.ts +0 -8
  161. package/dist/types/programs/node-circle/base/frag.glsl.d.ts +0 -2
  162. package/dist/types/programs/node-circle/base/index.d.ts +0 -37
  163. package/dist/types/programs/node-circle/base/vert.glsl.d.ts +0 -2
  164. package/dist/types/programs/node-circle/index.d.ts +0 -11
  165. package/dist/types/programs/node-image/factory.d.ts +0 -25
  166. package/dist/types/programs/node-image/frag.glsl.d.ts +0 -2
  167. package/dist/types/programs/node-image/index.d.ts +0 -5
  168. package/dist/types/programs/node-image/texture.d.ts +0 -102
  169. package/dist/types/programs/node-image/vert.glsl.d.ts +0 -2
  170. package/dist/types/programs/node-rect/base/drawHover.d.ts +0 -8
  171. package/dist/types/programs/node-rect/base/drawLabel.d.ts +0 -8
  172. package/dist/types/programs/node-rect/base/frag.glsl.d.ts +0 -2
  173. package/dist/types/programs/node-rect/base/index.d.ts +0 -34
  174. package/dist/types/programs/node-rect/base/vert.glsl.d.ts +0 -2
  175. package/dist/types/programs/node-rect/index.d.ts +0 -11
  176. package/src/components/Context.tsx +0 -143
  177. package/src/components/ContextMenu.tsx +0 -174
  178. package/src/components/Tools.tsx +0 -106
  179. package/src/components/Viewer.tsx +0 -76
  180. package/src/constants/index.ts +0 -22
  181. package/src/graph/layout.worker.ts +0 -42
  182. package/src/hooks/sigmaDragSelect.ts +0 -219
  183. package/src/hooks/sigmaHilighter.ts +0 -107
  184. package/src/hooks/sigmaMouseActions.ts +0 -153
  185. package/src/hooks/useGraphology.ts +0 -31
  186. package/src/hooks/useSigma.ts +0 -118
  187. package/src/i18n/index.ts +0 -0
  188. package/src/programs/arrow-head/frag.glsl.ts +0 -18
  189. package/src/programs/arrow-head/index.ts +0 -157
  190. package/src/programs/arrow-head/vert.glsl.ts +0 -75
  191. package/src/programs/edge-curve/drawLabel.ts +0 -166
  192. package/src/programs/edge-curve/frag.glsl.ts +0 -86
  193. package/src/programs/edge-curve/index.ts +0 -158
  194. package/src/programs/edge-curve/vert.glsl.ts +0 -110
  195. package/src/programs/edge-line/drawLabel.ts +0 -113
  196. package/src/programs/edge-line/frag.glsl.ts +0 -34
  197. package/src/programs/edge-line/index.ts +0 -165
  198. package/src/programs/edge-line/vert.glsl.ts +0 -104
  199. package/src/programs/node-badge/factory.ts +0 -327
  200. package/src/programs/node-badge/frag.glsl.ts +0 -79
  201. package/src/programs/node-badge/index.ts +0 -35
  202. package/src/programs/node-badge/texture.ts +0 -425
  203. package/src/programs/node-badge/vert.glsl.ts +0 -99
  204. package/src/programs/node-circle/base/drawHover.ts +0 -80
  205. package/src/programs/node-circle/base/drawLabel.ts +0 -145
  206. package/src/programs/node-circle/base/frag.glsl.ts +0 -72
  207. package/src/programs/node-circle/base/index.ts +0 -102
  208. package/src/programs/node-circle/base/vert.glsl.ts +0 -83
  209. package/src/programs/node-circle/index.ts +0 -19
  210. package/src/programs/node-image/factory.ts +0 -301
  211. package/src/programs/node-image/frag.glsl.ts +0 -97
  212. package/src/programs/node-image/index.ts +0 -7
  213. package/src/programs/node-image/texture.ts +0 -435
  214. package/src/programs/node-image/vert.glsl.ts +0 -60
  215. package/src/programs/node-rect/base/drawHover.ts +0 -77
  216. package/src/programs/node-rect/base/drawLabel.ts +0 -149
  217. package/src/programs/node-rect/base/frag.glsl.ts +0 -67
  218. package/src/programs/node-rect/base/index.ts +0 -109
  219. package/src/programs/node-rect/base/vert.glsl.ts +0 -87
  220. package/src/programs/node-rect/index.ts +0 -19
@@ -1,166 +0,0 @@
1
- 'use strict';
2
-
3
- var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
- var _createClass = require('@babel/runtime/helpers/createClass');
5
- var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
6
- var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
7
- var _inherits = require('@babel/runtime/helpers/inherits');
8
- var rendering = require('sigma/rendering');
9
- var utils = require('sigma/utils');
10
- var index = require('../arrow-head/index.js');
11
- var drawLabel = require('./drawLabel.js');
12
- var frag_glsl = require('./frag.glsl.js');
13
- var vert_glsl = require('./vert.glsl.js');
14
-
15
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
16
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
17
-
18
- /* istanbul ignore file */
19
-
20
- var _WebGLRenderingContex = WebGLRenderingContext,
21
- UNSIGNED_BYTE = _WebGLRenderingContex.UNSIGNED_BYTE,
22
- FLOAT = _WebGLRenderingContex.FLOAT;
23
- var UNIFORMS = ["u_matrix", "u_zoomRatio", "u_sizeRatio", "u_correctionRatio", "u_pixelRatio", "u_feather", "u_minEdgeThickness", "u_lengthToThicknessRatio"];
24
- var EdgeLineProgramBase = /*#__PURE__*/function (_EdgeProgram) {
25
- function EdgeLineProgramBase() {
26
- _classCallCheck(this, EdgeLineProgramBase);
27
- return _callSuper(this, EdgeLineProgramBase, arguments);
28
- }
29
- _inherits(EdgeLineProgramBase, _EdgeProgram);
30
- return _createClass(EdgeLineProgramBase, [{
31
- key: "getDefinition",
32
- value: function getDefinition() {
33
- return {
34
- VERTICES: 6,
35
- VERTEX_SHADER_SOURCE: vert_glsl,
36
- FRAGMENT_SHADER_SOURCE: frag_glsl,
37
- METHOD: WebGLRenderingContext.TRIANGLES,
38
- UNIFORMS: UNIFORMS,
39
- ATTRIBUTES: [{
40
- name: "a_positionStart",
41
- size: 2,
42
- type: FLOAT
43
- }, {
44
- name: "a_positionEnd",
45
- size: 2,
46
- type: FLOAT
47
- }, {
48
- name: "a_normal",
49
- size: 2,
50
- type: FLOAT
51
- }, {
52
- name: "a_color",
53
- size: 4,
54
- type: UNSIGNED_BYTE,
55
- normalized: true
56
- }, {
57
- name: "a_opacity",
58
- size: 1,
59
- type: FLOAT
60
- }, {
61
- name: "a_id",
62
- size: 4,
63
- type: UNSIGNED_BYTE,
64
- normalized: true
65
- }, {
66
- name: "a_sourceRadius",
67
- size: 1,
68
- type: FLOAT
69
- }, {
70
- name: "a_targetRadius",
71
- size: 1,
72
- type: FLOAT
73
- }],
74
- CONSTANT_ATTRIBUTES: [
75
- // If 0, then position will be a_positionStart
76
- // If 2, then position will be a_positionEnd
77
- {
78
- name: "a_positionCoef",
79
- size: 1,
80
- type: FLOAT
81
- }, {
82
- name: "a_normalCoef",
83
- size: 1,
84
- type: FLOAT
85
- }, {
86
- name: "a_sourceRadiusCoef",
87
- size: 1,
88
- type: FLOAT
89
- }, {
90
- name: "a_targetRadiusCoef",
91
- size: 1,
92
- type: FLOAT
93
- }],
94
- CONSTANT_DATA: [[0, 1, -1, 0], [0, -1, 1, 0], [1, 1, 0, 1], [1, 1, 0, 1], [0, -1, 1, 0], [1, -1, 0, -1]]
95
- };
96
- }
97
- }, {
98
- key: "processVisibleItem",
99
- value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {
100
- var _data$color, _data$selected, _data$opacity, _data$arrow, _data$arrow2;
101
- var color = (_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : this.renderer.getSetting("defaultEdgeColor");
102
- if (data.selected) color = "#f00";
103
- if (data.highlight) color = "#F54A4A";
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
- var x1 = sourceData.x;
106
- var y1 = sourceData.y;
107
- var x2 = targetData.x;
108
- var y2 = targetData.y;
109
-
110
- // Computing normals
111
- var dx = x2 - x1;
112
- var dy = y2 - y1;
113
- var sourceRadius = sourceData.size || 1;
114
- var targetRadius = targetData.size || 1;
115
- var len = dx * dx + dy * dy;
116
- var n1 = 0;
117
- var n2 = 0;
118
- if (len) {
119
- len = 1 / Math.sqrt(len);
120
- n1 = -dy * len * thickness;
121
- n2 = dx * len * thickness;
122
- }
123
- var array = this.array;
124
- array[startIndex++] = x1;
125
- array[startIndex++] = y1;
126
- array[startIndex++] = x2;
127
- array[startIndex++] = y2;
128
- array[startIndex++] = n1;
129
- array[startIndex++] = n2;
130
- array[startIndex++] = utils.floatColor(color);
131
- array[startIndex++] = (_data$opacity = data.opacity) !== null && _data$opacity !== void 0 ? _data$opacity : 1;
132
- array[startIndex++] = edgeIndex;
133
- array[startIndex++] = ["both", "source"].includes((_data$arrow = data.arrow) !== null && _data$arrow !== void 0 ? _data$arrow : "") ? sourceRadius : 0;
134
- array[startIndex++] = ["both", "target"].includes((_data$arrow2 = data.arrow) !== null && _data$arrow2 !== void 0 ? _data$arrow2 : "") ? targetRadius : 0;
135
- }
136
- }, {
137
- key: "setUniforms",
138
- value: function setUniforms(params, _ref) {
139
- var gl = _ref.gl,
140
- uniformLocations = _ref.uniformLocations;
141
- var u_matrix = uniformLocations.u_matrix,
142
- u_zoomRatio = uniformLocations.u_zoomRatio,
143
- u_feather = uniformLocations.u_feather,
144
- u_pixelRatio = uniformLocations.u_pixelRatio,
145
- u_correctionRatio = uniformLocations.u_correctionRatio,
146
- u_sizeRatio = uniformLocations.u_sizeRatio,
147
- u_minEdgeThickness = uniformLocations.u_minEdgeThickness,
148
- u_lengthToThicknessRatio = uniformLocations.u_lengthToThicknessRatio;
149
- gl.uniformMatrix3fv(u_matrix, false, params.matrix);
150
- gl.uniform1f(u_zoomRatio, params.zoomRatio);
151
- gl.uniform1f(u_sizeRatio, params.sizeRatio);
152
- gl.uniform1f(u_correctionRatio, params.correctionRatio);
153
- gl.uniform1f(u_pixelRatio, params.pixelRatio);
154
- gl.uniform1f(u_feather, params.antiAliasingFeather);
155
- gl.uniform1f(u_minEdgeThickness, params.minEdgeThickness);
156
- gl.uniform1f(u_lengthToThicknessRatio, 2.5);
157
- }
158
- }]);
159
- }(rendering.EdgeProgram);
160
- var EdgeLineProgram = rendering.createEdgeCompoundProgram([EdgeLineProgramBase, index.createEdgeArrowHeadProgram({
161
- extremity: "source"
162
- }), index.createEdgeArrowHeadProgram({
163
- extremity: "target"
164
- })], drawLabel.drawLineLabel);
165
-
166
- exports.EdgeLineProgram = EdgeLineProgram;
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- /* istanbul ignore file */
4
-
5
- // language=GLSL
6
- var SHADER_SOURCE = /* glsl */"\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_normal;\nattribute float a_opacity;\nattribute float a_normalCoef;\nattribute vec2 a_positionStart;\nattribute vec2 a_positionEnd;\nattribute float a_positionCoef;\nattribute float a_sourceRadius;\nattribute float a_targetRadius;\nattribute float a_sourceRadiusCoef;\nattribute float a_targetRadiusCoef;\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_zoomRatio;\nuniform float u_pixelRatio;\nuniform float u_correctionRatio;\nuniform float u_minEdgeThickness;\nuniform float u_lengthToThicknessRatio;\nuniform float u_feather;\n\nvarying vec4 v_color;\nvarying vec2 v_normal;\nvarying float v_opacity;\nvarying float v_thickness;\nvarying float v_feather;\n\nconst float minThickness = 1.7;\nconst float bias = 255.0 / 254.0;\n\nvoid main() {\n vec2 normal = a_normal * a_normalCoef;\n vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;\n\n float normalLength = length(normal);\n vec2 unitNormal = normal / normalLength;\n\n // We require edges to be at least \"minThickness\" pixels thick *on screen*\n // (so we need to compensate the size ratio):\n float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);\n\n // Then, we need to retrieve the normalized thickness of the edge in the WebGL\n // referential (in a ([0, 1], [0, 1]) space), using our \"magic\" correction\n // ratio:\n float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;\n\n // Here, we move the point to leave space for the arrow heads:\n // Source arrow head\n float sourceRadius = a_sourceRadius * a_sourceRadiusCoef;\n float sourceDirection = sign(sourceRadius);\n float webGLSourceRadius = sourceDirection * sourceRadius * 2.0 * u_correctionRatio / u_sizeRatio;\n float webGLSourceArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\n vec2 sourceCompensationVector =\n vec2(-sourceDirection * unitNormal.y, sourceDirection * unitNormal.x)\n * (webGLSourceRadius + webGLSourceArrowHeadLength);\n \n // Target arrow head\n float targetRadius = a_targetRadius * a_targetRadiusCoef;\n float targetDirection = sign(targetRadius);\n float webGLTargetRadius = targetDirection * targetRadius * 2.0 * u_correctionRatio / u_sizeRatio;\n float webGLTargetArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\n vec2 targetCompensationVector =\n vec2(-targetDirection * unitNormal.y, targetDirection * unitNormal.x)\n * (webGLTargetRadius + webGLTargetArrowHeadLength);\n\n if(a_sourceRadius == 0.0) {\n sourceCompensationVector = vec2(0.0, 0.0);\n }\n if(a_targetRadius == 0.0) {\n targetCompensationVector = vec2(0.0, 0.0);\n }\n\n // Here is the proper position of the vertex\n gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness + sourceCompensationVector + targetCompensationVector, 1)).xy, 0, 1);\n\n // For the fragment shader though, we need a thickness that takes the \"magic\"\n // correction ratio into account (as in webGLThickness), but so that the\n // antialiasing effect does not depend on the zoom level. So here's yet\n // another thickness version:\n v_thickness = webGLThickness / u_zoomRatio;\n\n v_normal = unitNormal;\n\n v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;\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;
@@ -1,249 +0,0 @@
1
- 'use strict';
2
-
3
- var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
- var _createClass = require('@babel/runtime/helpers/createClass');
5
- var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
6
- var _get = require('@babel/runtime/helpers/get');
7
- var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
8
- var _inherits = require('@babel/runtime/helpers/inherits');
9
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
10
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
- var rendering = require('sigma/rendering');
12
- var utils = require('sigma/utils');
13
- var frag_glsl = require('./frag.glsl.js');
14
- var texture = require('./texture.js');
15
- var vert_glsl = require('./vert.glsl.js');
16
-
17
- var _excluded = ["drawHover", "drawLabel", "drawingMode", "keepWithinCircle", "padding", "colorAttribute", "badgePosition"];
18
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
19
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
20
- 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; }
21
- 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; }
22
- var ICON_MAP = {
23
- star: "M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",
24
- exclaim: "M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",
25
- thumbUp: "M23,10C23,8.89 22.1,8 21,8H14.68L15.64,3.43C15.66,3.33 15.67,3.22 15.67,3.11C15.67,2.7 15.5,2.32 15.23,2.05L14.17,1L7.59,7.58C7.22,7.95 7,8.45 7,9V19A2,2 0 0,0 9,21H18C18.83,21 19.54,20.5 19.84,19.78L22.86,12.73C22.95,12.5 23,12.26 23,12V10M1,21H5V9H1V21Z",
26
- thumbDown: "M19,15H23V3H19M15,3H6C5.17,3 4.46,3.5 4.16,4.22L1.14,11.27C1.05,11.5 1,11.74 1,12V14A2,2 0 0,0 3,16H9.31L8.36,20.57C8.34,20.67 8.33,20.77 8.33,20.88C8.33,21.3 8.5,21.67 8.77,21.94L9.83,23L16.41,16.41C16.78,16.05 17,15.55 17,15V5C17,3.89 16.1,3 15,3Z"
27
- };
28
- var POSITION = {
29
- "top-left": 0,
30
- "top-right": 1,
31
- "bottom-left": 2,
32
- "bottom-right": 3,
33
- top: 4,
34
- left: 5,
35
- right: 6,
36
- bottom: 7
37
- };
38
-
39
- /* istanbul ignore file */
40
-
41
- var _WebGLRenderingContex = WebGLRenderingContext,
42
- UNSIGNED_BYTE = _WebGLRenderingContex.UNSIGNED_BYTE,
43
- FLOAT = _WebGLRenderingContex.FLOAT;
44
- var DEFAULT_CREATE_NODE_IMAGE_OPTIONS = _objectSpread(_objectSpread({}, texture.DEFAULT_TEXTURE_MANAGER_OPTIONS), {}, {
45
- drawingMode: "background",
46
- keepWithinCircle: true,
47
- drawLabel: undefined,
48
- drawHover: undefined,
49
- padding: 0,
50
- colorAttribute: "color"
51
- });
52
- var UNIFORMS = ["u_sizeRatio", "u_correctionRatio", "u_cameraAngle", "u_percentagePadding", "u_matrix", "u_colorizeImages", "u_keepWithinCircle", "u_atlas"];
53
-
54
- /**
55
- * To share the texture between the program instances of the graph and the
56
- * hovered nodes (to prevent some flickering, mostly), this program must be
57
- * "built" for each sigma instance:
58
- */
59
- function getNodeImageProgram(options) {
60
- var _NodeImageProgram;
61
- var _badgePosition$DEFAUL = _objectSpread(_objectSpread(_objectSpread({
62
- badgePosition: "top-right"
63
- }, DEFAULT_CREATE_NODE_IMAGE_OPTIONS), options !== null && options !== void 0 ? options : {}), {}, {
64
- drawLabel: undefined,
65
- drawHover: undefined
66
- }),
67
- drawHover = _badgePosition$DEFAUL.drawHover,
68
- drawLabel = _badgePosition$DEFAUL.drawLabel;
69
- _badgePosition$DEFAUL.drawingMode;
70
- var keepWithinCircle = _badgePosition$DEFAUL.keepWithinCircle,
71
- padding = _badgePosition$DEFAUL.padding;
72
- _badgePosition$DEFAUL.colorAttribute;
73
- var badgePosition = _badgePosition$DEFAUL.badgePosition,
74
- textureManagerOptions = _objectWithoutProperties(_badgePosition$DEFAUL, _excluded);
75
-
76
- /**
77
- * This texture manager is shared between all instances of this exact class,
78
- * returned by this call to getNodeProgramImage. This means that remounting
79
- * the sigma instance will not reload the images and regenerate the texture.
80
- */
81
- var textureManager = new texture.TextureManager(textureManagerOptions);
82
- return _NodeImageProgram = /*#__PURE__*/function (_NodeProgram) {
83
- function NodeImageProgram(gl, pickingBuffer, renderer) {
84
- var _this;
85
- _classCallCheck(this, NodeImageProgram);
86
- _this = _callSuper(this, NodeImageProgram, [gl, pickingBuffer, renderer]);
87
- _this.textureManagerCallback = function () {
88
- if (!_this) return;
89
- if (_this.bindTexture) {
90
- _this.atlas = textureManager.getAtlas();
91
- _this.textureImage = textureManager.getTexture();
92
- _this.bindTexture();
93
- if (_this.latestRenderParams) _this.render(_this.latestRenderParams);
94
- }
95
- if (renderer !== null && renderer !== void 0 && renderer.refresh) renderer.refresh();
96
- };
97
- textureManager.on(texture.TextureManager.NEW_TEXTURE_EVENT, _this.textureManagerCallback);
98
- _this.atlas = textureManager.getAtlas();
99
- _this.textureImage = textureManager.getTexture();
100
- _this.texture = gl.createTexture();
101
- _this.bindTexture();
102
- return _this;
103
- }
104
- _inherits(NodeImageProgram, _NodeProgram);
105
- return _createClass(NodeImageProgram, [{
106
- key: "getDefinition",
107
- value: function getDefinition() {
108
- return {
109
- VERTICES: 4,
110
- VERTEX_SHADER_SOURCE: vert_glsl,
111
- FRAGMENT_SHADER_SOURCE: frag_glsl,
112
- METHOD: WebGLRenderingContext.TRIANGLE_FAN,
113
- UNIFORMS: UNIFORMS,
114
- ATTRIBUTES: [{
115
- name: "a_position",
116
- size: 2,
117
- type: FLOAT
118
- }, {
119
- name: "a_size",
120
- size: 1,
121
- type: FLOAT
122
- }, {
123
- name: "a_opacity",
124
- size: 1,
125
- type: FLOAT
126
- }, {
127
- name: "a_circle",
128
- size: 1,
129
- type: FLOAT
130
- }, {
131
- name: "a_placement",
132
- size: 1,
133
- type: FLOAT
134
- }, {
135
- name: "a_fill",
136
- size: 4,
137
- type: UNSIGNED_BYTE,
138
- normalized: true
139
- }, {
140
- name: "a_color",
141
- size: 4,
142
- type: UNSIGNED_BYTE,
143
- normalized: true
144
- }, {
145
- name: "a_id",
146
- size: 4,
147
- type: UNSIGNED_BYTE,
148
- normalized: true
149
- }, {
150
- name: "a_texture",
151
- size: 4,
152
- type: FLOAT
153
- }],
154
- CONSTANT_ATTRIBUTES: [{
155
- name: "a_angle",
156
- size: 1,
157
- type: FLOAT
158
- }],
159
- CONSTANT_DATA: [[NodeImageProgram.ANGLE_1], [NodeImageProgram.ANGLE_2], [NodeImageProgram.ANGLE_3], [NodeImageProgram.ANGLE_4]]
160
- };
161
- }
162
- }, {
163
- key: "kill",
164
- value: function kill() {
165
- textureManager.off(texture.TextureManager.NEW_TEXTURE_EVENT, this.textureManagerCallback);
166
- }
167
- }, {
168
- key: "bindTexture",
169
- value: function bindTexture() {
170
- var gl = this.normalProgram.gl;
171
- gl.bindTexture(gl.TEXTURE_2D, this.texture);
172
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this.textureImage);
173
- gl.generateMipmap(gl.TEXTURE_2D);
174
- }
175
- }, {
176
- key: "renderProgram",
177
- value: function renderProgram(params, programInfo) {
178
- if (!programInfo.isPicking) {
179
- // Rebind texture (since it's been just unbound by picking):
180
- var gl = programInfo.gl;
181
- gl.bindTexture(gl.TEXTURE_2D, this.texture);
182
- }
183
- _get(_getPrototypeOf(NodeImageProgram.prototype), "renderProgram", this).call(this, params, programInfo);
184
- }
185
- }, {
186
- key: "processVisibleItem",
187
- value: function processVisibleItem(nodeIndex, startIndex, data) {
188
- var _data$badge, _badge$color, _ref, _badge$iconColor, _ICON_MAP, _data$opacity, _POSITION$badgePositi;
189
- var array = this.array;
190
- var badge = (_data$badge = data.badge) === null || _data$badge === void 0 ? void 0 : _data$badge.find(function (b) {
191
- return b.position === badgePosition;
192
- });
193
- var fill = utils.floatColor((_badge$color = badge === null || badge === void 0 ? void 0 : badge.color) !== null && _badge$color !== void 0 ? _badge$color : "#00000000");
194
- var color = utils.floatColor((_ref = (_badge$iconColor = badge === null || badge === void 0 ? void 0 : badge.iconColor) !== null && _badge$iconColor !== void 0 ? _badge$iconColor : this.renderer.getSetting("labelColor").color) !== null && _ref !== void 0 ? _ref : "#000");
195
- var imageSource = badge ? (_ICON_MAP = ICON_MAP[badge.type]) !== null && _ICON_MAP !== void 0 ? _ICON_MAP : badge.path : undefined;
196
- var imagePosition = imageSource ? this.atlas[imageSource] : undefined;
197
- if (typeof imageSource === "string" && !imagePosition) void textureManager.registerImage(imageSource);
198
- array[startIndex++] = data.x;
199
- array[startIndex++] = data.y;
200
- array[startIndex++] = data.size;
201
- array[startIndex++] = !imageSource ? 0 : (_data$opacity = data.opacity) !== null && _data$opacity !== void 0 ? _data$opacity : 1;
202
- array[startIndex++] = keepWithinCircle ? 1 : 0;
203
- array[startIndex++] = (_POSITION$badgePositi = POSITION[badgePosition]) !== null && _POSITION$badgePositi !== void 0 ? _POSITION$badgePositi : 0;
204
- array[startIndex++] = fill;
205
- array[startIndex++] = color;
206
- array[startIndex++] = nodeIndex;
207
-
208
- // Reference texture:
209
- if (imagePosition) {
210
- var _this$textureImage = this.textureImage,
211
- width = _this$textureImage.width,
212
- height = _this$textureImage.height;
213
- array[startIndex++] = imagePosition.x / width;
214
- array[startIndex++] = imagePosition.y / height;
215
- array[startIndex++] = imagePosition.size / width;
216
- array[startIndex++] = imagePosition.size / height;
217
- } else {
218
- array[startIndex++] = 0;
219
- array[startIndex++] = 0;
220
- array[startIndex++] = 0;
221
- array[startIndex++] = 0;
222
- }
223
- }
224
- }, {
225
- key: "setUniforms",
226
- value: function setUniforms(params, _ref2) {
227
- var gl = _ref2.gl,
228
- uniformLocations = _ref2.uniformLocations;
229
- var u_sizeRatio = uniformLocations.u_sizeRatio,
230
- u_correctionRatio = uniformLocations.u_correctionRatio,
231
- u_matrix = uniformLocations.u_matrix,
232
- u_atlas = uniformLocations.u_atlas,
233
- u_keepWithinCircle = uniformLocations.u_keepWithinCircle,
234
- u_cameraAngle = uniformLocations.u_cameraAngle,
235
- u_percentagePadding = uniformLocations.u_percentagePadding;
236
- this.latestRenderParams = params;
237
- gl.uniform1f(u_correctionRatio, params.correctionRatio);
238
- gl.uniform1f(u_sizeRatio, params.sizeRatio);
239
- gl.uniform1f(u_cameraAngle, params.cameraAngle);
240
- gl.uniform1f(u_percentagePadding, padding);
241
- gl.uniformMatrix3fv(u_matrix, false, params.matrix);
242
- gl.uniform1i(u_atlas, 0);
243
- gl.uniform1i(u_keepWithinCircle, keepWithinCircle ? 1 : 0);
244
- }
245
- }]);
246
- }(rendering.NodeProgram), _defineProperty(_NodeImageProgram, "ANGLE_1", 1 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_2", 3 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_3", 5 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_4", 7 * Math.PI / 4), _defineProperty(_NodeImageProgram, "drawLabel", drawLabel), _defineProperty(_NodeImageProgram, "drawHover", drawHover), _NodeImageProgram;
247
- }
248
-
249
- module.exports = getNodeImageProgram;
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- /* istanbul ignore file */
4
-
5
- // language=GLSL
6
- var SHADER_SOURCE = /* glsl */"\nprecision highp float;\n\nvarying vec4 v_fill;\nvarying vec4 v_color;\nvarying vec4 v_texture;\nvarying vec2 v_diffVector;\nvarying float v_opacity;\nvarying float v_radius;\n\nuniform sampler2D u_atlas;\nuniform float u_correctionRatio;\nuniform float u_cameraAngle;\nuniform float u_percentagePadding;\nuniform bool u_keepWithinCircle;\nuniform bool u_shape;\n\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nconst float radius = 0.5;\n\nvoid main(void) {\n float border = 2.0 * u_correctionRatio;\n float dist = length(v_diffVector);\n vec4 color = v_fill;\n\n float c = cos(-u_cameraAngle);\n float s = sin(-u_cameraAngle);\n vec2 diffVector = mat2(c, s, -s, c) * (v_diffVector);\n\n // No antialiasing for picking mode:\n #ifdef PICKING_MODE\n border = 0.0;\n gl_FragColor = v_color;\n\n #else\n // First case: No image to display\n if (v_texture.w <= 0.0) {\n color = v_fill;\n }\n\n // Second case: Image loaded into the texture\n else {\n float paddingRatio = 1.0 + 2.0 * u_percentagePadding;\n float coef = 1.0;\n vec2 coordinateInTexture = diffVector * vec2(paddingRatio, -paddingRatio) / v_radius / 2.0 * coef + vec2(0.5, 0.5);\n vec4 texel = texture2D(u_atlas, (v_texture.xy + coordinateInTexture * v_texture.zw), -1.0);\n\n // Colorize all visible image pixels:\n color = mix(v_fill, v_color, texel.a);\n \n // Erase pixels \"in the padding\":\n if (abs(diffVector.x) > v_radius / paddingRatio || abs(diffVector.y) > v_radius / paddingRatio) {\n color = v_fill;\n }\n }\n\n // Crop in a circle when u_keepWithinCircle is truthy:\n if(v_opacity == 0.0) {\n gl_FragColor = transparent;\n }\n else if (dist - v_radius + border > border)\n gl_FragColor = transparent;\n else if (dist - v_radius + border > 0.0) {\n gl_FragColor = mix(v_fill, transparent, (dist - v_radius + border) / border);\n }\n else {\n gl_FragColor = mix(v_fill, color, v_opacity);\n }\n #endif\n \n\n}\n";
7
-
8
- module.exports = SHADER_SOURCE;
@@ -1,33 +0,0 @@
1
- 'use strict';
2
-
3
- var factory = require('./factory.js');
4
-
5
- /* istanbul ignore file */
6
-
7
- var NodeBadgeProgram = function NodeBadgeProgram(isCircle) {
8
- return [factory({
9
- keepWithinCircle: isCircle,
10
- badgePosition: "top-right"
11
- }), factory({
12
- keepWithinCircle: isCircle,
13
- badgePosition: "top-left"
14
- }), factory({
15
- keepWithinCircle: isCircle,
16
- badgePosition: "bottom-right"
17
- }), factory({
18
- keepWithinCircle: isCircle,
19
- badgePosition: "bottom-left"
20
- }), factory({
21
- keepWithinCircle: isCircle,
22
- badgePosition: "top"
23
- }), factory({
24
- keepWithinCircle: isCircle,
25
- badgePosition: "left"
26
- }), factory({
27
- keepWithinCircle: isCircle,
28
- badgePosition: "right"
29
- })];
30
- };
31
-
32
- exports.createNodeImageProgram = factory;
33
- exports.NodeBadgeProgram = NodeBadgeProgram;