Map. dagre and spread algorithm

This commit is contained in:
Cindy Chang
2024-08-15 10:54:04 +08:00
parent ffe97ed63f
commit fb335f996d
5 changed files with 63 additions and 7 deletions

View File

@@ -1,4 +1,5 @@
import cytoscape from 'cytoscape';
import spread from 'cytoscape-spread';
import dagre from 'cytoscape-dagre';
import tippy from 'tippy.js';
import 'tippy.js/dist/tippy.css';
@@ -16,7 +17,9 @@ const composeFreqTypeText = (baseText, dataLayerOption, optionValue) => { //sona
return text;
};
// 註冊布局演算法
cytoscape.use( dagre );
cytoscape.use(spread);
/**
* @param {object} mapData processMapData | bpmnData可選以上任一。
@@ -55,7 +58,7 @@ export default function cytoscapeMap(mapData, dataLayerType, dataLayerOption, cu
// 產生 node 色階
gradientArray = new Gradient()
.setColorGradient("#CCE5FF", "#66b2ff")
.setColorGradient("#FFFFFF", "#FFFFFF")
.setMidpoint(nodeOption.length)
.getColors();
@@ -154,7 +157,7 @@ export default function cytoscapeMap(mapData, dataLayerType, dataLayerOption, cu
function(node) {
return node.data('type') === 'activity' ? '1' : '2';
},
//'border-radius': '5',
'background-image': 'url(capsule.svg)',
'shape':'data(shape)',
'text-wrap': 'wrap',
'text-max-width': 'data(width)', // 在 div 內換行
@@ -220,6 +223,12 @@ export default function cytoscapeMap(mapData, dataLayerType, dataLayerOption, cu
],
});
// 讓節點不要左右重疊的演算法
cy.layout({
name: 'spread',
minDist: 40, // 設置最小節點間距
}).run();
// creat tippy.js
let tip;
cy.on('mouseover', 'node', function(event) {