@react-fabric/graph 1.0.0-beta.63 → 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 (224) hide show
  1. package/dist/cjs/context/context.js +16 -0
  2. package/dist/cjs/graph/index.js +58 -381
  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 +59 -382
  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/ContextMenu.js +0 -133
  40. package/dist/cjs/components/Provider.js +0 -103
  41. package/dist/cjs/components/Tools.js +0 -205
  42. package/dist/cjs/components/Viewer.js +0 -59
  43. package/dist/cjs/components/context.js +0 -34
  44. package/dist/cjs/constants/index.js +0 -16
  45. package/dist/cjs/hooks/sigmaDragSelect.js +0 -169
  46. package/dist/cjs/hooks/sigmaHilighter.js +0 -83
  47. package/dist/cjs/hooks/sigmaMouseActions.js +0 -145
  48. package/dist/cjs/hooks/useGraphology.js +0 -41
  49. package/dist/cjs/hooks/useSigma.js +0 -112
  50. package/dist/cjs/programs/arrow-head/frag.glsl.js +0 -8
  51. package/dist/cjs/programs/arrow-head/index.js +0 -142
  52. package/dist/cjs/programs/arrow-head/vert.glsl.js +0 -8
  53. package/dist/cjs/programs/edge-curve/drawLabel.js +0 -136
  54. package/dist/cjs/programs/edge-curve/frag.glsl.js +0 -8
  55. package/dist/cjs/programs/edge-curve/index.js +0 -157
  56. package/dist/cjs/programs/edge-curve/vert.glsl.js +0 -8
  57. package/dist/cjs/programs/edge-line/drawLabel.js +0 -70
  58. package/dist/cjs/programs/edge-line/frag.glsl.js +0 -8
  59. package/dist/cjs/programs/edge-line/index.js +0 -166
  60. package/dist/cjs/programs/edge-line/vert.glsl.js +0 -8
  61. package/dist/cjs/programs/node-badge/factory.js +0 -250
  62. package/dist/cjs/programs/node-badge/frag.glsl.js +0 -8
  63. package/dist/cjs/programs/node-badge/index.js +0 -33
  64. package/dist/cjs/programs/node-badge/texture.js +0 -455
  65. package/dist/cjs/programs/node-badge/vert.glsl.js +0 -19
  66. package/dist/cjs/programs/node-circle/base/drawHover.js +0 -71
  67. package/dist/cjs/programs/node-circle/base/drawLabel.js +0 -113
  68. package/dist/cjs/programs/node-circle/base/frag.glsl.js +0 -8
  69. package/dist/cjs/programs/node-circle/base/index.js +0 -136
  70. package/dist/cjs/programs/node-circle/base/vert.glsl.js +0 -8
  71. package/dist/cjs/programs/node-circle/index.js +0 -15
  72. package/dist/cjs/programs/node-image/factory.js +0 -224
  73. package/dist/cjs/programs/node-image/frag.glsl.js +0 -8
  74. package/dist/cjs/programs/node-image/index.js +0 -14
  75. package/dist/cjs/programs/node-image/texture.js +0 -472
  76. package/dist/cjs/programs/node-image/vert.glsl.js +0 -8
  77. package/dist/cjs/programs/node-rect/base/drawHover.js +0 -68
  78. package/dist/cjs/programs/node-rect/base/drawLabel.js +0 -107
  79. package/dist/cjs/programs/node-rect/base/frag.glsl.js +0 -8
  80. package/dist/cjs/programs/node-rect/base/index.js +0 -135
  81. package/dist/cjs/programs/node-rect/base/vert.glsl.js +0 -8
  82. package/dist/cjs/programs/node-rect/index.js +0 -15
  83. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +0 -14
  84. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +0 -9
  85. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -34
  86. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +0 -13
  87. package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +0 -20
  88. package/dist/esm/_virtual/elk-worker.js +0 -8
  89. package/dist/esm/components/ContextMenu.js +0 -133
  90. package/dist/esm/components/Provider.js +0 -103
  91. package/dist/esm/components/Tools.js +0 -205
  92. package/dist/esm/components/Viewer.js +0 -59
  93. package/dist/esm/components/context.js +0 -33
  94. package/dist/esm/constants/index.js +0 -16
  95. package/dist/esm/hooks/sigmaDragSelect.js +0 -169
  96. package/dist/esm/hooks/sigmaHilighter.js +0 -83
  97. package/dist/esm/hooks/sigmaMouseActions.js +0 -145
  98. package/dist/esm/hooks/useGraphology.js +0 -41
  99. package/dist/esm/hooks/useSigma.js +0 -112
  100. package/dist/esm/programs/arrow-head/frag.glsl.js +0 -8
  101. package/dist/esm/programs/arrow-head/index.js +0 -141
  102. package/dist/esm/programs/arrow-head/vert.glsl.js +0 -8
  103. package/dist/esm/programs/edge-curve/drawLabel.js +0 -136
  104. package/dist/esm/programs/edge-curve/frag.glsl.js +0 -8
  105. package/dist/esm/programs/edge-curve/index.js +0 -156
  106. package/dist/esm/programs/edge-curve/vert.glsl.js +0 -8
  107. package/dist/esm/programs/edge-line/drawLabel.js +0 -70
  108. package/dist/esm/programs/edge-line/frag.glsl.js +0 -8
  109. package/dist/esm/programs/edge-line/index.js +0 -166
  110. package/dist/esm/programs/edge-line/vert.glsl.js +0 -8
  111. package/dist/esm/programs/node-badge/factory.js +0 -250
  112. package/dist/esm/programs/node-badge/frag.glsl.js +0 -8
  113. package/dist/esm/programs/node-badge/index.js +0 -32
  114. package/dist/esm/programs/node-badge/texture.js +0 -445
  115. package/dist/esm/programs/node-badge/vert.glsl.js +0 -19
  116. package/dist/esm/programs/node-circle/base/drawHover.js +0 -71
  117. package/dist/esm/programs/node-circle/base/drawLabel.js +0 -113
  118. package/dist/esm/programs/node-circle/base/frag.glsl.js +0 -8
  119. package/dist/esm/programs/node-circle/base/index.js +0 -136
  120. package/dist/esm/programs/node-circle/base/vert.glsl.js +0 -8
  121. package/dist/esm/programs/node-circle/index.js +0 -15
  122. package/dist/esm/programs/node-image/factory.js +0 -224
  123. package/dist/esm/programs/node-image/frag.glsl.js +0 -8
  124. package/dist/esm/programs/node-image/index.js +0 -13
  125. package/dist/esm/programs/node-image/texture.js +0 -462
  126. package/dist/esm/programs/node-image/vert.glsl.js +0 -8
  127. package/dist/esm/programs/node-rect/base/drawHover.js +0 -68
  128. package/dist/esm/programs/node-rect/base/drawLabel.js +0 -107
  129. package/dist/esm/programs/node-rect/base/frag.glsl.js +0 -8
  130. package/dist/esm/programs/node-rect/base/index.js +0 -135
  131. package/dist/esm/programs/node-rect/base/vert.glsl.js +0 -8
  132. package/dist/esm/programs/node-rect/index.js +0 -15
  133. package/dist/types/components/ContextMenu.d.ts +0 -1
  134. package/dist/types/components/Provider.d.ts +0 -3
  135. package/dist/types/components/Tools.d.ts +0 -1
  136. package/dist/types/components/Viewer.d.ts +0 -2
  137. package/dist/types/components/context.d.ts +0 -17
  138. package/dist/types/constants/index.d.ts +0 -12
  139. package/dist/types/graph/layout.worker.d.ts +0 -1
  140. package/dist/types/hooks/sigmaDragSelect.d.ts +0 -8
  141. package/dist/types/hooks/sigmaHilighter.d.ts +0 -3
  142. package/dist/types/hooks/sigmaMouseActions.d.ts +0 -3
  143. package/dist/types/hooks/useGraphology.d.ts +0 -6
  144. package/dist/types/hooks/useSigma.d.ts +0 -8
  145. package/dist/types/i18n/index.d.ts +0 -0
  146. package/dist/types/programs/arrow-head/frag.glsl.d.ts +0 -2
  147. package/dist/types/programs/arrow-head/index.d.ts +0 -9
  148. package/dist/types/programs/arrow-head/vert.glsl.d.ts +0 -2
  149. package/dist/types/programs/edge-curve/drawLabel.d.ts +0 -6
  150. package/dist/types/programs/edge-curve/frag.glsl.d.ts +0 -2
  151. package/dist/types/programs/edge-curve/index.d.ts +0 -43
  152. package/dist/types/programs/edge-curve/vert.glsl.d.ts +0 -2
  153. package/dist/types/programs/edge-line/drawLabel.d.ts +0 -5
  154. package/dist/types/programs/edge-line/frag.glsl.d.ts +0 -2
  155. package/dist/types/programs/edge-line/index.d.ts +0 -11
  156. package/dist/types/programs/edge-line/vert.glsl.d.ts +0 -2
  157. package/dist/types/programs/node-badge/factory.d.ts +0 -27
  158. package/dist/types/programs/node-badge/frag.glsl.d.ts +0 -2
  159. package/dist/types/programs/node-badge/index.d.ts +0 -5
  160. package/dist/types/programs/node-badge/texture.d.ts +0 -102
  161. package/dist/types/programs/node-badge/vert.glsl.d.ts +0 -2
  162. package/dist/types/programs/node-circle/base/drawHover.d.ts +0 -8
  163. package/dist/types/programs/node-circle/base/drawLabel.d.ts +0 -8
  164. package/dist/types/programs/node-circle/base/frag.glsl.d.ts +0 -2
  165. package/dist/types/programs/node-circle/base/index.d.ts +0 -37
  166. package/dist/types/programs/node-circle/base/vert.glsl.d.ts +0 -2
  167. package/dist/types/programs/node-circle/index.d.ts +0 -11
  168. package/dist/types/programs/node-image/factory.d.ts +0 -25
  169. package/dist/types/programs/node-image/frag.glsl.d.ts +0 -2
  170. package/dist/types/programs/node-image/index.d.ts +0 -5
  171. package/dist/types/programs/node-image/texture.d.ts +0 -102
  172. package/dist/types/programs/node-image/vert.glsl.d.ts +0 -2
  173. package/dist/types/programs/node-rect/base/drawHover.d.ts +0 -8
  174. package/dist/types/programs/node-rect/base/drawLabel.d.ts +0 -8
  175. package/dist/types/programs/node-rect/base/frag.glsl.d.ts +0 -2
  176. package/dist/types/programs/node-rect/base/index.d.ts +0 -34
  177. package/dist/types/programs/node-rect/base/vert.glsl.d.ts +0 -2
  178. package/dist/types/programs/node-rect/index.d.ts +0 -11
  179. package/src/components/ContextMenu.tsx +0 -138
  180. package/src/components/Provider.tsx +0 -116
  181. package/src/components/Tools.tsx +0 -68
  182. package/src/components/Viewer.tsx +0 -75
  183. package/src/components/context.ts +0 -43
  184. package/src/constants/index.ts +0 -22
  185. package/src/graph/layout.worker.ts +0 -42
  186. package/src/hooks/sigmaDragSelect.ts +0 -219
  187. package/src/hooks/sigmaHilighter.ts +0 -107
  188. package/src/hooks/sigmaMouseActions.ts +0 -153
  189. package/src/hooks/useGraphology.ts +0 -31
  190. package/src/hooks/useSigma.ts +0 -118
  191. package/src/i18n/index.ts +0 -0
  192. package/src/programs/arrow-head/frag.glsl.ts +0 -18
  193. package/src/programs/arrow-head/index.ts +0 -156
  194. package/src/programs/arrow-head/vert.glsl.ts +0 -75
  195. package/src/programs/edge-curve/drawLabel.ts +0 -166
  196. package/src/programs/edge-curve/frag.glsl.ts +0 -86
  197. package/src/programs/edge-curve/index.ts +0 -156
  198. package/src/programs/edge-curve/vert.glsl.ts +0 -110
  199. package/src/programs/edge-line/drawLabel.ts +0 -113
  200. package/src/programs/edge-line/frag.glsl.ts +0 -34
  201. package/src/programs/edge-line/index.ts +0 -163
  202. package/src/programs/edge-line/vert.glsl.ts +0 -104
  203. package/src/programs/node-badge/factory.ts +0 -325
  204. package/src/programs/node-badge/frag.glsl.ts +0 -79
  205. package/src/programs/node-badge/index.ts +0 -35
  206. package/src/programs/node-badge/texture.ts +0 -425
  207. package/src/programs/node-badge/vert.glsl.ts +0 -99
  208. package/src/programs/node-circle/base/drawHover.ts +0 -80
  209. package/src/programs/node-circle/base/drawLabel.ts +0 -145
  210. package/src/programs/node-circle/base/frag.glsl.ts +0 -72
  211. package/src/programs/node-circle/base/index.ts +0 -100
  212. package/src/programs/node-circle/base/vert.glsl.ts +0 -83
  213. package/src/programs/node-circle/index.ts +0 -19
  214. package/src/programs/node-image/factory.ts +0 -299
  215. package/src/programs/node-image/frag.glsl.ts +0 -97
  216. package/src/programs/node-image/index.ts +0 -7
  217. package/src/programs/node-image/texture.ts +0 -435
  218. package/src/programs/node-image/vert.glsl.ts +0 -60
  219. package/src/programs/node-rect/base/drawHover.ts +0 -77
  220. package/src/programs/node-rect/base/drawLabel.ts +0 -149
  221. package/src/programs/node-rect/base/frag.glsl.ts +0 -67
  222. package/src/programs/node-rect/base/index.ts +0 -107
  223. package/src/programs/node-rect/base/vert.glsl.ts +0 -87
  224. 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,250 +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 _get = require('@babel/runtime/helpers/get');
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 _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
21
- 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; }
22
- 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; }
23
- var ICON_MAP = {
24
- 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",
25
- 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",
26
- 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",
27
- 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"
28
- };
29
- var POSITION = {
30
- "top-left": 0,
31
- "top-right": 1,
32
- "bottom-left": 2,
33
- "bottom-right": 3,
34
- top: 4,
35
- left: 5,
36
- right: 6,
37
- bottom: 7
38
- };
39
-
40
- /* istanbul ignore file */
41
-
42
- var _WebGLRenderingContex = WebGLRenderingContext,
43
- UNSIGNED_BYTE = _WebGLRenderingContex.UNSIGNED_BYTE,
44
- FLOAT = _WebGLRenderingContex.FLOAT;
45
- var DEFAULT_CREATE_NODE_IMAGE_OPTIONS = _objectSpread(_objectSpread({}, texture.DEFAULT_TEXTURE_MANAGER_OPTIONS), {}, {
46
- drawingMode: "background",
47
- keepWithinCircle: true,
48
- drawLabel: undefined,
49
- drawHover: undefined,
50
- padding: 0,
51
- colorAttribute: "color"
52
- });
53
- var UNIFORMS = ["u_sizeRatio", "u_correctionRatio", "u_cameraAngle", "u_percentagePadding", "u_matrix", "u_colorizeImages", "u_keepWithinCircle", "u_atlas"];
54
-
55
- /**
56
- * To share the texture between the program instances of the graph and the
57
- * hovered nodes (to prevent some flickering, mostly), this program must be
58
- * "built" for each sigma instance:
59
- */
60
- function getNodeImageProgram(options) {
61
- var _NodeImageProgram;
62
- var _badgePosition$DEFAUL = _objectSpread(_objectSpread(_objectSpread({
63
- badgePosition: "top-right"
64
- }, DEFAULT_CREATE_NODE_IMAGE_OPTIONS), options !== null && options !== void 0 ? options : {}), {}, {
65
- drawLabel: undefined,
66
- drawHover: undefined
67
- }),
68
- drawHover = _badgePosition$DEFAUL.drawHover,
69
- drawLabel = _badgePosition$DEFAUL.drawLabel;
70
- _badgePosition$DEFAUL.drawingMode;
71
- var keepWithinCircle = _badgePosition$DEFAUL.keepWithinCircle,
72
- padding = _badgePosition$DEFAUL.padding;
73
- _badgePosition$DEFAUL.colorAttribute;
74
- var badgePosition = _badgePosition$DEFAUL.badgePosition,
75
- textureManagerOptions = _objectWithoutProperties(_badgePosition$DEFAUL, _excluded);
76
-
77
- /**
78
- * This texture manager is shared between all instances of this exact class,
79
- * returned by this call to getNodeProgramImage. This means that remounting
80
- * the sigma instance will not reload the images and regenerate the texture.
81
- */
82
- var textureManager = new texture.TextureManager(textureManagerOptions);
83
- return _NodeImageProgram = /*#__PURE__*/function (_NodeProgram) {
84
- function NodeImageProgram(gl, pickingBuffer, renderer) {
85
- var _this;
86
- _classCallCheck(this, NodeImageProgram);
87
- _this = _callSuper(this, NodeImageProgram, [gl, pickingBuffer, renderer]);
88
- _this.textureManagerCallback = function () {
89
- if (!_this) return;
90
- if (_this.bindTexture) {
91
- _this.atlas = textureManager.getAtlas();
92
- _this.textureImage = textureManager.getTexture();
93
- _this.bindTexture();
94
- if (_this.latestRenderParams) _this.render(_this.latestRenderParams);
95
- }
96
- if (renderer !== null && renderer !== void 0 && renderer.refresh) renderer.refresh();
97
- };
98
- textureManager.on(texture.TextureManager.NEW_TEXTURE_EVENT, _this.textureManagerCallback);
99
- _this.atlas = textureManager.getAtlas();
100
- _this.textureImage = textureManager.getTexture();
101
- _this.texture = gl.createTexture();
102
- _this.bindTexture();
103
- return _this;
104
- }
105
- _inherits(NodeImageProgram, _NodeProgram);
106
- return _createClass(NodeImageProgram, [{
107
- key: "getDefinition",
108
- value: function getDefinition() {
109
- return {
110
- VERTICES: 4,
111
- VERTEX_SHADER_SOURCE: vert_glsl,
112
- FRAGMENT_SHADER_SOURCE: frag_glsl,
113
- METHOD: WebGLRenderingContext.TRIANGLE_FAN,
114
- UNIFORMS: UNIFORMS,
115
- ATTRIBUTES: [{
116
- name: "a_position",
117
- size: 2,
118
- type: FLOAT
119
- }, {
120
- name: "a_size",
121
- size: 1,
122
- type: FLOAT
123
- }, {
124
- name: "a_opacity",
125
- size: 1,
126
- type: FLOAT
127
- }, {
128
- name: "a_circle",
129
- size: 1,
130
- type: FLOAT
131
- }, {
132
- name: "a_placement",
133
- size: 1,
134
- type: FLOAT
135
- }, {
136
- name: "a_fill",
137
- size: 4,
138
- type: UNSIGNED_BYTE,
139
- normalized: true
140
- }, {
141
- name: "a_color",
142
- size: 4,
143
- type: UNSIGNED_BYTE,
144
- normalized: true
145
- }, {
146
- name: "a_id",
147
- size: 4,
148
- type: UNSIGNED_BYTE,
149
- normalized: true
150
- }, {
151
- name: "a_texture",
152
- size: 4,
153
- type: FLOAT
154
- }],
155
- CONSTANT_ATTRIBUTES: [{
156
- name: "a_angle",
157
- size: 1,
158
- type: FLOAT
159
- }],
160
- CONSTANT_DATA: [[NodeImageProgram.ANGLE_1], [NodeImageProgram.ANGLE_2], [NodeImageProgram.ANGLE_3], [NodeImageProgram.ANGLE_4]]
161
- };
162
- }
163
- }, {
164
- key: "kill",
165
- value: function kill() {
166
- textureManager.off(texture.TextureManager.NEW_TEXTURE_EVENT, this.textureManagerCallback);
167
- }
168
- }, {
169
- key: "bindTexture",
170
- value: function bindTexture() {
171
- var gl = this.normalProgram.gl;
172
- gl.bindTexture(gl.TEXTURE_2D, this.texture);
173
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this.textureImage);
174
- gl.generateMipmap(gl.TEXTURE_2D);
175
- }
176
- }, {
177
- key: "renderProgram",
178
- value: function renderProgram(params, programInfo) {
179
- if (!programInfo.isPicking) {
180
- // Rebind texture (since it's been just unbound by picking):
181
- var gl = programInfo.gl;
182
- gl.bindTexture(gl.TEXTURE_2D, this.texture);
183
- }
184
- _superPropGet(NodeImageProgram, "renderProgram", this, 3)([params, programInfo]);
185
- }
186
- }, {
187
- key: "processVisibleItem",
188
- value: function processVisibleItem(nodeIndex, startIndex, data) {
189
- var _data$badge, _badge$color, _ref, _badge$iconColor, _ICON_MAP, _data$opacity, _POSITION$badgePositi;
190
- var array = this.array;
191
- var badge = (_data$badge = data.badge) === null || _data$badge === void 0 ? void 0 : _data$badge.find(function (b) {
192
- return b.position === badgePosition;
193
- });
194
- var fill = utils.floatColor((_badge$color = badge === null || badge === void 0 ? void 0 : badge.color) !== null && _badge$color !== void 0 ? _badge$color : "#00000000");
195
- 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");
196
- var imageSource = badge ? (_ICON_MAP = ICON_MAP[badge.type]) !== null && _ICON_MAP !== void 0 ? _ICON_MAP : badge.path : undefined;
197
- var imagePosition = imageSource ? this.atlas[imageSource] : undefined;
198
- if (typeof imageSource === "string" && !imagePosition) void textureManager.registerImage(imageSource);
199
- array[startIndex++] = data.x;
200
- array[startIndex++] = data.y;
201
- array[startIndex++] = data.size;
202
- array[startIndex++] = !imageSource ? 0 : (_data$opacity = data.opacity) !== null && _data$opacity !== void 0 ? _data$opacity : 1;
203
- array[startIndex++] = keepWithinCircle ? 1 : 0;
204
- array[startIndex++] = (_POSITION$badgePositi = POSITION[badgePosition]) !== null && _POSITION$badgePositi !== void 0 ? _POSITION$badgePositi : 0;
205
- array[startIndex++] = fill;
206
- array[startIndex++] = color;
207
- array[startIndex++] = nodeIndex;
208
-
209
- // Reference texture:
210
- if (imagePosition) {
211
- var _this$textureImage = this.textureImage,
212
- width = _this$textureImage.width,
213
- height = _this$textureImage.height;
214
- array[startIndex++] = imagePosition.x / width;
215
- array[startIndex++] = imagePosition.y / height;
216
- array[startIndex++] = imagePosition.size / width;
217
- array[startIndex++] = imagePosition.size / height;
218
- } else {
219
- array[startIndex++] = 0;
220
- array[startIndex++] = 0;
221
- array[startIndex++] = 0;
222
- array[startIndex++] = 0;
223
- }
224
- }
225
- }, {
226
- key: "setUniforms",
227
- value: function setUniforms(params, _ref2) {
228
- var gl = _ref2.gl,
229
- uniformLocations = _ref2.uniformLocations;
230
- var u_sizeRatio = uniformLocations.u_sizeRatio,
231
- u_correctionRatio = uniformLocations.u_correctionRatio,
232
- u_matrix = uniformLocations.u_matrix,
233
- u_atlas = uniformLocations.u_atlas,
234
- u_keepWithinCircle = uniformLocations.u_keepWithinCircle,
235
- u_cameraAngle = uniformLocations.u_cameraAngle,
236
- u_percentagePadding = uniformLocations.u_percentagePadding;
237
- this.latestRenderParams = params;
238
- gl.uniform1f(u_correctionRatio, params.correctionRatio);
239
- gl.uniform1f(u_sizeRatio, params.sizeRatio);
240
- gl.uniform1f(u_cameraAngle, params.cameraAngle);
241
- gl.uniform1f(u_percentagePadding, padding);
242
- gl.uniformMatrix3fv(u_matrix, false, params.matrix);
243
- gl.uniform1i(u_atlas, 0);
244
- gl.uniform1i(u_keepWithinCircle, keepWithinCircle ? 1 : 0);
245
- }
246
- }]);
247
- }(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;
248
- }
249
-
250
- 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;