forked from sgratzl/cytoscape.js-layers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathedge.ts
45 lines (41 loc) · 1.07 KB
/
edge.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* eslint-disable @typescript-eslint/no-namespace */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
namespace AnimatedEdges {
declare const cytoscape: typeof import('cytoscape');
declare const CytoscapeLayers: typeof import('../build');
const cy = cytoscape({
container: document.getElementById('app'),
elements: fetch('./grid-data.json').then((r) => r.json()),
// elements: Promise.resolve([
// { data: { id: 'a' } },
// { data: { id: 'b' } },
// {
// data: {
// id: 'ab',
// source: 'a',
// target: 'b',
// },
// },
// ]),
layout: {
name: 'grid',
},
style: [
{
selector: 'edge',
style: {
'line-color': 'white',
opacity: 0.01,
},
},
],
});
const layers = CytoscapeLayers.layers(cy);
const layer = layers.nodeLayer.insertBefore('canvas');
layers.renderPerEdge(layer, (ctx, _, path) => {
ctx.strokeStyle = 'red';
ctx.lineWidth = 5;
ctx.lineCap = 'round';
ctx.stroke(path);
});
}