cytoscape.js-expand-collapse
cytoscape.js-expand-collapse copied to clipboard
Collapsing a compound with label-sized nodes and parallel bezier edges crashes cytoscape
Reproducible at CodePen: https://codepen.io/zii-hrs/pen/NWBmYBv Collapse the compound node to trigger this error:
Uncaught TypeError: e._private.map.get(...) is undefined
poolIndex cytoscape.min.js:29
y cytoscape.min.js:32
updateStyleHints cytoscape.min.js:32
apply cytoscape.min.js:32
cleanStyle cytoscape.min.js:29
parsedStyle cytoscape.min.js:29
Ao cytoscape.min.js:29
_o cytoscape.min.js:29
Mo cytoscape.min.js:29
Io cytoscape.min.js:29
n cytoscape.min.js:29
_o cytoscape.min.js:29
Bo cytoscape.min.js:29
isBundledBezier cytoscape.min.js:29
n cytoscape.min.js:29
_o cytoscape.min.js:29
Bo cytoscape.min.js:29
remove cytoscape.min.js:29
removeChildren expandCollapseUtilities.js:569
collapseNode expandCollapseUtilities.js:329
collapseBottomUp expandCollapseUtilities.js:190
simpleCollapseGivenNodes expandCollapseUtilities.js:61
collapseGivenNodes expandCollapseUtilities.js:167
collapse index.js:107
eTap cueUtilities.js:269
o cytoscape.min.js:29
trigger cytoscape.min.js:29
bo cytoscape.min.js:29
trigger cytoscape.min.js:29
emit cytoscape.min.js:32
trigger cytoscape.min.js:29
bo cytoscape.min.js:29
trigger cytoscape.min.js:29
emit cytoscape.min.js:29
n cytoscape.min.js:32
load cytoscape.min.js:32
o cytoscape.min.js:32
registerBinding cytoscape.min.js:32
load cytoscape.min.js:32
notify cytoscape.min.js:32
notify cytoscape.min.js:32
initRenderer cytoscape.min.js:32
Ns cytoscape.min.js:32
Gu cytoscape.min.js:32
main pen.js:52
EventListener.handleEvent* pen.js:115
It looks like the call to isBundledBezier
ends up calling some method in cytoscape that depends on the source/target node existing, but the node has been removed before the call is made.