Commit 75a49825 authored by Karen Konou's avatar Karen Konou

[DEPS] update dependencies and fix import paths for Sigma rendering

parent 94083247
Pipeline #7252 passed with stages
in 21 minutes and 10 seconds
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
"debouncing": "^22.7.25", "debouncing": "^22.7.25",
"echarts": "~5.1.2", "echarts": "~5.1.2",
"echarts-for-react": "~3.0.1", "echarts-for-react": "~3.0.1",
"graphology": "~0.25.1", "graphology": "~0.25.4",
"graphology-communities-louvain": "~2.0.1", "graphology-communities-louvain": "~2.0.1",
"graphology-layout-forceatlas2": "~0.9.2", "graphology-layout-forceatlas2": "~0.9.2",
"graphology-layout-noverlap": "~0.4.2", "graphology-layout-noverlap": "~0.4.2",
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
"react-dom": "~18.2.0", "react-dom": "~18.2.0",
"react-tooltip": "~4.2.8", "react-tooltip": "~4.2.8",
"secp256k1": "~4.0.2", "secp256k1": "~4.0.2",
"sigma": "~2.4.0", "sigma": "~3.0.0",
"twgl.js": "~5.0.4", "twgl.js": "~5.0.4",
"use-debounce": "^10.0.0", "use-debounce": "^10.0.0",
"uuid": "8.3.2" "uuid": "8.3.2"
...@@ -3989,10 +3989,6 @@ ...@@ -3989,10 +3989,6 @@
"license": "MIT", "license": "MIT",
"optional": true "optional": true
}, },
"node_modules/@yomguithereal/helpers": {
"version": "1.1.1",
"license": "MIT"
},
"node_modules/@zeit/schemas": { "node_modules/@zeit/schemas": {
"version": "2.36.0", "version": "2.36.0",
"resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz", "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz",
...@@ -11962,12 +11958,12 @@ ...@@ -11962,12 +11958,12 @@
} }
}, },
"node_modules/sigma": { "node_modules/sigma": {
"version": "2.4.0", "version": "3.0.0",
"license": "MIT", "resolved": "https://registry.npmjs.org/sigma/-/sigma-3.0.0.tgz",
"integrity": "sha512-O3w+sfyarnurPuxcBtkQ6wp5E9d0OctwMiXhQ8YUCiUX5G8Yz5XM6Vo6lsAGtMm/XvQR77+0JOzAIEeo4LpdjA==",
"dependencies": { "dependencies": {
"@yomguithereal/helpers": "^1.1.1",
"events": "^3.3.0", "events": "^3.3.0",
"graphology-utils": "^2.5.0" "graphology-utils": "^2.5.2"
} }
}, },
"node_modules/signal-exit": { "node_modules/signal-exit": {
......
(builtins.getFlake ("git+file://" + toString ./.)).devShells.${builtins.currentSystem}.default
\ No newline at end of file
...@@ -242,7 +242,7 @@ drawGraphCpt = here.component "drawGraph" cpt ...@@ -242,7 +242,7 @@ drawGraphCpt = here.component "drawGraph" cpt
-- When we change state, we make it empty though. -- When we change state, we make it empty though.
--pure $ RH.div { ref: elRef, style: {height: "95%"} } [] --pure $ RH.div { ref: elRef, style: {height: "95%"} } []
-- based on https://github.com/jacomyal/sigma.js/blob/v2.4.0/src/settings.ts -- based on https://github.com/jacomyal/sigma.js/blob/v3.0.0/src/settings.ts
-- TODO: check some of the types -- TODO: check some of the types
type SigmaSettings = type SigmaSettings =
( -- Performance ( -- Performance
...@@ -250,9 +250,7 @@ type SigmaSettings = ...@@ -250,9 +250,7 @@ type SigmaSettings =
--, hideLablesOnMove :: Boolean --, hideLablesOnMove :: Boolean
renderLabels :: Boolean renderLabels :: Boolean
--, renderEdgeLabels :: Boolean --, renderEdgeLabels :: Boolean
--, enableEdgeClickEvents :: Boolean , enableEdgeEvents :: Boolean
--, enableEdgeWheelEvents :: Boolean
, enableEdgeHoverEvents :: Boolean
-- Component rendering -- Component rendering
, defaultNodeColor :: String , defaultNodeColor :: String
--, defaultNodeType :: String --, defaultNodeType :: String
...@@ -279,9 +277,9 @@ type SigmaSettings = ...@@ -279,9 +277,9 @@ type SigmaSettings =
--, minCameraRatio :: Number --, minCameraRatio :: Number
--, maxCameraRatio :: Number --, maxCameraRatio :: Number
-- Renderers -- Renderers
--, labelRenderer :: DrawLabel --, defaultDrawNodeLabel :: DrawLabel
--, hoverRenderer :: DrawHover --, defaultDrawNodeHover :: DrawHover
--, edgeLabelRenderer :: DrawEdgeLabel --, defaultDrawEdgeLabel :: DrawEdgeLabel
-- Lifecycle -- Lifecycle
--, allowInvalidContainer :: Boolean --, allowInvalidContainer :: Boolean
...@@ -300,9 +298,7 @@ sigmaSettings _theme = ...@@ -300,9 +298,7 @@ sigmaSettings _theme =
--, hideLablesOnMove : false --, hideLablesOnMove : false
renderLabels: false -- initially false, because of forceatlas renderLabels: false -- initially false, because of forceatlas
--, renderEdgeLabels : true --, renderEdgeLabels : true
--, enableEdgeClickEvents : false , enableEdgeEvents: false
--, enableEdgeWheelEvents : false
, enableEdgeHoverEvents: false
-- Component rendering -- Component rendering
, defaultNodeColor: "#FFF" , defaultNodeColor: "#FFF"
--, defaultNodeType : "circle" --, defaultNodeType : "circle"
...@@ -329,9 +325,9 @@ sigmaSettings _theme = ...@@ -329,9 +325,9 @@ sigmaSettings _theme =
--, minCameraRatio : Nothing --, minCameraRatio : Nothing
--, maxCameraRatio : Nothing --, maxCameraRatio : Nothing
-- Renderers -- Renderers
--, labelRenderer : drawLabel --, defaultDrawNodeLabel : drawLabel
--, hoverRenderer : drawHover --, defaultDrawNodeHover : drawHover
--, edgeLabelRenderer : drawEdgeLabel --, defaultDrawEdgeLabel : drawEdgeLabel
-- Lifecycle -- Lifecycle
--, allowInvalidContainer : false --, allowInvalidContainer : false
......
...@@ -4,7 +4,7 @@ import Graph from 'graphology'; ...@@ -4,7 +4,7 @@ import Graph from 'graphology';
import Sigma from 'sigma'; import Sigma from 'sigma';
//import { takeScreenshot } from '../../src/external-deps/sigmajs-screenshot.js'; //import { takeScreenshot } from '../../src/external-deps/sigmajs-screenshot.js';
import takeScreenshot from '../../src/external-deps/sigmajs-screenshot-with-canvas.js'; import takeScreenshot from '../../src/external-deps/sigmajs-screenshot-with-canvas.js';
import CircleNodeProgram from 'sigma/rendering/webgl/programs/node.fast'; import { NodeCircleProgram } from 'sigma/rendering';
import ContourCircleNodeProgram from '../../src/external-deps/sigmajs-circle-with-contour.js'; import ContourCircleNodeProgram from '../../src/external-deps/sigmajs-circle-with-contour.js';
import TriangleNodeProgram from '../../src/external-deps/sigmajs-triangle.js'; import TriangleNodeProgram from '../../src/external-deps/sigmajs-triangle.js';
import ContourTriangleNodeProgram from '../../src/external-deps/sigmajs-triangle-with-contour.js'; import ContourTriangleNodeProgram from '../../src/external-deps/sigmajs-triangle-with-contour.js';
...@@ -198,7 +198,7 @@ function _sigma(left, right, el, opts) { ...@@ -198,7 +198,7 @@ function _sigma(left, right, el, opts) {
const settings = { const settings = {
labelRenderer: drawLabel, labelRenderer: drawLabel,
nodeProgramClasses: { nodeProgramClasses: {
circle: CircleNodeProgram.default, // TODO why default? It seems that import should be fixed circle: NodeCircleProgram, // TODO why default? It seems that import should be fixed
ccircle: ContourCircleNodeProgram, ccircle: ContourCircleNodeProgram,
triangle: TriangleNodeProgram, triangle: TriangleNodeProgram,
ctriangle: ContourTriangleNodeProgram, ctriangle: ContourTriangleNodeProgram,
...@@ -209,7 +209,7 @@ function _sigma(left, right, el, opts) { ...@@ -209,7 +209,7 @@ function _sigma(left, right, el, opts) {
}, },
...opts.settings ...opts.settings
}; };
let s = new sigma(graph, el, settings); let s = new Sigma(graph, el, settings);
console.log('[_sigma] initializing sigma with el', el, 'opts', opts.settings, 'sigma', s); console.log('[_sigma] initializing sigma with el', el, 'opts', opts.settings, 'sigma', s);
console.log('[_sigma] labelRenderedSizeThreshold', opts.settings.labelRenderedSizeThreshold); console.log('[_sigma] labelRenderedSizeThreshold', opts.settings.labelRenderedSizeThreshold);
sigmaMouseSelector(s); sigmaMouseSelector(s);
......
// Based on sigma.js/src/rendering/webgl/programs/node.fast.ts // Based on sigma.js/src/rendering/webgl/programs/node.fast.ts
import { NodeDisplayData } from "sigma/types";
import { floatColor } from "sigma/utils"; import { floatColor } from "sigma/utils";
import vertexShaderSource from "sigma/rendering/webgl/shaders/node.fast.vert.glsl"; import { NodePointProgram } from 'sigma/rendering';
import fragmentShaderSource from "sigma/rendering/webgl/shaders/node.fast.frag.glsl";
import { AbstractNodeProgram } from "sigma/rendering/webgl/programs/common/node";
import { RenderParams } from "sigma/rendering/webgl/programs/common/program";
import CircleNodeProgram from 'sigma/rendering/webgl/programs/node.fast';
const POINTS = 2; const POINTS = 2;
const ATTRIBUTES = 4;
/* /*
export default class NodeContourFastProgram extends AbstractNodeProgram { export default class NodeContourFastProgram extends AbstractNodeProgram {
...@@ -20,14 +14,13 @@ export default class NodeContourFastProgram extends AbstractNodeProgram { ...@@ -20,14 +14,13 @@ export default class NodeContourFastProgram extends AbstractNodeProgram {
} }
*/ */
export default class NodeContourFastProgram extends CircleNodeProgram { export default class NodeContourFastProgram extends NodePointProgram {
constructor(gl) { constructor(gl) {
super(gl, vertexShaderSource, fragmentShaderSource, POINTS, ATTRIBUTES); super(gl);
// NOTE super method above will set POINTS = 1 from CircleNodeProgram // NOTE super method above will set POINTS = 1 from CircleNodeProgram
// We need to overwrite this // We need to overwrite this
// https://gitlab.iscpif.fr/gargantext/purescript-gargantext/issues/471 // https://gitlab.iscpif.fr/gargantext/purescript-gargantext/issues/471
this.points = POINTS; this.points = POINTS;
this.bind();
} }
//process(data: NodeDisplayData, hidden: boolean, offset: number): void { //process(data: NodeDisplayData, hidden: boolean, offset: number): void {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
import { NodeDisplayData } from "sigma/types"; import { NodeDisplayData } from "sigma/types";
import { floatColor } from "sigma/utils"; import { floatColor } from "sigma/utils";
import { AbstractProgram, RenderParams } from "sigma/rendering/webgl/programs/common/program"; import { AbstractProgram } from "sigma/rendering";
const vertexShaderSource = ` const vertexShaderSource = `
attribute vec2 a_position; attribute vec2 a_position;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
import { NodeDisplayData } from "sigma/types"; import { NodeDisplayData } from "sigma/types";
import { floatColor } from "sigma/utils"; import { floatColor } from "sigma/utils";
import { AbstractProgram, RenderParams } from "sigma/rendering/webgl/programs/common/program"; import { AbstractProgram} from "sigma/rendering";
const vertexShaderSource = ` const vertexShaderSource = `
attribute vec2 a_position; attribute vec2 a_position;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment