cc-viewer 1.6.259 → 1.6.261
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.
- package/dist/assets/App-Co-5BI9q.js +1 -0
- package/dist/assets/{MdxEditorPanel-CWT3SFgC.js → MdxEditorPanel-DFNyQW6b.js} +1 -1
- package/dist/assets/Mobile-DwYIskc6.js +1 -0
- package/dist/assets/{_baseUniq-DXjKWfhk.js → _baseUniq-DGKwdzTD.js} +1 -1
- package/dist/assets/{arc-DsQxkW5T.js → arc-nTLBi2ib.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-D24v83bq.js → architectureDiagram-Q4EWVU46-pWWvthzV.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-D5ezdfnY.js → blockDiagram-DXYQGD6D-CpU6v2gv.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-g5VhpI4X.js → c4Diagram-AHTNJAMY-zdTsx1jJ.js} +1 -1
- package/dist/assets/{channel-Bohj9Wcp.js → channel-Cq1UANGu.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-5LFKrDPS.js → chunk-4BX2VUAB-D6w9m5kB.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-B7I8vecx.js → chunk-4TB4RGXK-DjZZc11c.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-BBIiUctL.js → chunk-55IACEB6-Cw2U09Tu.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-BYpcDSKa.js → chunk-EDXVE4YY-Cv-G70H7.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Dpw6TUJP.js → chunk-FMBD7UC4-Dykxux6b.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-1R1GcGjy.js → chunk-OYMX7WX6-Cn9oAaEC.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-B43hQ2vS.js → chunk-QZHKN3VN-CA1IccbG.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-1IZth8n2.js → chunk-YZCP3GAM-CbReBNg5.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-PgwmelQQ.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-PgwmelQQ.js +1 -0
- package/dist/assets/clone-Dnu1HdEX.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-D05nug0R.js → cose-bilkent-S5V4N54A-TwxpCIwM.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-DZ9d_ZUE.js → dagre-KV5264BT-CxuHKd9a.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-DdyX_gXl.js → diagram-5BDNPKRD-BzR9Peib.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-cjq8tNSZ.js → diagram-G4DWMVQ6-PWFXrQqF.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-NiKFms6e.js → diagram-MMDJMWI5-CqnrwtNB.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-Dpig5X9-.js → diagram-TYMM5635-Do2MhBCf.js} +1 -1
- package/dist/assets/{erDiagram-SMLLAGMA-D2sWo3Zv.js → erDiagram-SMLLAGMA-CklZI6kO.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-D85Dj_yq.js → flowDiagram-DWJPFMVM-C_SKJN0d.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-DxAjpfgn.js → ganttDiagram-T4ZO3ILL-ChhhqFiR.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-BO9g8cL0.js → gitGraphDiagram-UUTBAWPF-HarEJVSI.js} +1 -1
- package/dist/assets/{graph-BfcDIvNk.js → graph-BTcI3kpi.js} +1 -1
- package/dist/assets/{index-PkTBRWSU.js → index-B0NtFDg2.js} +1 -1
- package/dist/assets/{index-Bxmjxqf5.js → index-B7-pqPyp.js} +1 -1
- package/dist/assets/{index-CGqcaIdp.js → index-BG6Hzhck.js} +1 -1
- package/dist/assets/{index-BEpSzlsR.js → index-Bzp41aRh.js} +1 -1
- package/dist/assets/index-C6MrFmhs.js +2 -0
- package/dist/assets/{index-BJjKgolB.js → index-CF0YP7s8.js} +1 -1
- package/dist/assets/{index-9sv7BDJr.js → index-CQ579eP2.js} +1 -1
- package/dist/assets/{index-sVTuiL15.css → index-Dzkxj8m_.css} +1 -1
- package/dist/assets/{index-7d_JTozZ.js → index-NNx0667m.js} +1 -1
- package/dist/assets/{infoDiagram-42DDH7IO-BnOW3PpN.js → infoDiagram-42DDH7IO-DOcCtSEj.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-BdRWHTx5.js → ishikawaDiagram-UXIWVN3A-Crb_pmG4.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-6-pOxb-c.js → journeyDiagram-VCZTEJTY-BUv2Exj_.js} +1 -1
- package/dist/assets/{jszip.min-DKP-m-LG.js → jszip.min-BuZCDHia.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-BBX4NlcN.js → kanban-definition-6JOO6SKY-DwSHz9oV.js} +1 -1
- package/dist/assets/{layout-DtQNOuH0.js → layout-Dp3N3WRT.js} +1 -1
- package/dist/assets/{linear-6Y3OZ7u2.js → linear-JU5ltHCp.js} +1 -1
- package/dist/assets/{mermaid.core-CAsnLdlL.js → mermaid.core-f1mZHh7u.js} +2 -2
- package/dist/assets/{min-BRPZJLHh.js → min-CDzial6q.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-BkmfcnFE.js → mindmap-definition-QFDTVHPH-DnhPHplB.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-D4a_1EvH.js → pieDiagram-DEJITSTG-dMhPj5wG.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-kKniISLU.js → quadrantDiagram-34T5L4WZ-GCi1_zHo.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-DPikXO53.js → requirementDiagram-MS252O5E-WeErs64x.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6--rY8uDK7.js → sankeyDiagram-XADWPNL6-BKpP6-8Q.js} +1 -1
- package/dist/assets/seqResourceLoaders-80G7f5Kr.js +2 -0
- package/dist/assets/seqResourceLoaders-B8CyM6Ul.css +41 -0
- package/dist/assets/{sequenceDiagram-FGHM5R23-C57z6bd_.js → sequenceDiagram-FGHM5R23-CAC5BKbx.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-D7q_cBTL.js → stateDiagram-FHFEXIEX-Cxrg604Z.js} +1 -1
- package/dist/assets/{stateDiagram-v2-QKLJ7IA2-Co3EU6Nf.js → stateDiagram-v2-QKLJ7IA2-DaUpf340.js} +1 -1
- package/dist/assets/{timeline-definition-GMOUNBTQ-DBV-lv69.js → timeline-definition-GMOUNBTQ-DbvXGDTU.js} +1 -1
- package/dist/assets/{vendor-antd-BeN8xqGk.js → vendor-antd-jGWxgt_-.js} +1 -1
- package/dist/assets/{vendor-codemirror-2nbmPewy.js → vendor-codemirror-9gysGjWj.js} +1 -1
- package/dist/assets/{vendor-mdxeditor-C7DYEBoH.js → vendor-mdxeditor-BFiCaYAL.js} +2 -2
- package/dist/assets/{vendor-qrcode-BFV_3WPO.js → vendor-qrcode-DjZ-VpGR.js} +1 -1
- package/dist/assets/{vendor-virtuoso-COKXGpsa.js → vendor-virtuoso-DB1J9xKG.js} +1 -1
- package/dist/assets/{vennDiagram-DHZGUBPP-ngWDn_ip.js → vennDiagram-DHZGUBPP-BoIw-nWl.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-BhMXVlU_.js → wardley-RL74JXVD-4PjirsHP.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-lpdygHK-.js → wardleyDiagram-NUSXRM2D-C8RzJmfU.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-DVafENtB.js → xychartDiagram-5P7HB3ND-Ct6fDXwq.js} +1 -1
- package/dist/index.html +5 -5
- package/package.json +1 -1
- package/dist/assets/App-eBSb5fy2.js +0 -1
- package/dist/assets/Mobile-DdB1mwp_.js +0 -1
- package/dist/assets/ProxyModal-DGzTxXqd.js +0 -2
- package/dist/assets/ProxyModal-DzTu4uGE.css +0 -41
- package/dist/assets/classDiagram-6PBFFD2Q-BBoAxatM.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-BBoAxatM.js +0 -1
- package/dist/assets/clone-Cc7ofJ6W.js +0 -1
- package/dist/assets/index-BGEXf37A.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as __name,l as log,d as select}from"./mermaid.core-CAsnLdlL.js";import{c as cytoscape$1}from"./cytoscape.esm-CT1mZavR.js";import{g as getDefaultExportFromCjs}from"./vendor-antd-BeN8xqGk.js";import"./vendor-mdxeditor-C7DYEBoH.js";import"./vendor-codemirror-2nbmPewy.js";import"./vendor-markdown-BFrYfpb0.js";var hasRequiredLayoutBase,cytoscapeCoseBilkent$1={exports:{}},coseBase$1={exports:{}},layoutBase$1={exports:{}};function requireLayoutBase(){return hasRequiredLayoutBase?layoutBase$1.exports:(hasRequiredLayoutBase=1,factory=function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module2=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module2.exports,module2,module2.exports,__webpack_require__),module2.l=!0,module2.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports$12,name,getter){__webpack_require__.o(exports$12,name)||Object.defineProperty(exports$12,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module2){var getter=module2&&module2.__esModule?function(){return module2.default}:function(){return module2};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=26)}([function(module2,exports$12,__webpack_require__){function LayoutConstants(){}LayoutConstants.QUALITY=1,LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,LayoutConstants.DEFAULT_INCREMENTAL=!1,LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT=!0,LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT=!1,LayoutConstants.DEFAULT_ANIMATION_PERIOD=50,LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,LayoutConstants.DEFAULT_GRAPH_MARGIN=15,LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS=!1,LayoutConstants.SIMPLE_NODE_SIZE=40,LayoutConstants.SIMPLE_NODE_HALF_SIZE=LayoutConstants.SIMPLE_NODE_SIZE/2,LayoutConstants.EMPTY_COMPOUND_NODE_SIZE=40,LayoutConstants.MIN_EDGE_LENGTH=1,LayoutConstants.WORLD_BOUNDARY=1e6,LayoutConstants.INITIAL_WORLD_BOUNDARY=LayoutConstants.WORLD_BOUNDARY/1e3,LayoutConstants.WORLD_CENTER_X=1200,LayoutConstants.WORLD_CENTER_Y=900,module2.exports=LayoutConstants},function(module2,exports$12,__webpack_require__){var LGraphObject=__webpack_require__(2),IGeometry=__webpack_require__(8),IMath=__webpack_require__(9);function LEdge(source,target,vEdge){LGraphObject.call(this,vEdge),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=vEdge,this.bendpoints=[],this.source=source,this.target=target}for(var prop in LEdge.prototype=Object.create(LGraphObject.prototype),LGraphObject)LEdge[prop]=LGraphObject[prop];LEdge.prototype.getSource=function(){return this.source},LEdge.prototype.getTarget=function(){return this.target},LEdge.prototype.isInterGraph=function(){return this.isInterGraph},LEdge.prototype.getLength=function(){return this.length},LEdge.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},LEdge.prototype.getBendpoints=function(){return this.bendpoints},LEdge.prototype.getLca=function(){return this.lca},LEdge.prototype.getSourceInLca=function(){return this.sourceInLca},LEdge.prototype.getTargetInLca=function(){return this.targetInLca},LEdge.prototype.getOtherEnd=function(node){if(this.source===node)return this.target;if(this.target===node)return this.source;throw"Node is not incident with this edge"},LEdge.prototype.getOtherEndInGraph=function(node,graph){for(var otherEnd=this.getOtherEnd(node),root=graph.getGraphManager().getRoot();;){if(otherEnd.getOwner()==graph)return otherEnd;if(otherEnd.getOwner()==root)break;otherEnd=otherEnd.getOwner().getParent()}return null},LEdge.prototype.updateLength=function(){var clipPointCoordinates=new Array(4);this.isOverlapingSourceAndTarget=IGeometry.getIntersection(this.target.getRect(),this.source.getRect(),clipPointCoordinates),this.isOverlapingSourceAndTarget||(this.lengthX=clipPointCoordinates[0]-clipPointCoordinates[2],this.lengthY=clipPointCoordinates[1]-clipPointCoordinates[3],Math.abs(this.lengthX)<1&&(this.lengthX=IMath.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=IMath.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},LEdge.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=IMath.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=IMath.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},module2.exports=LEdge},function(module2,exports$12,__webpack_require__){module2.exports=function(vGraphObject){this.vGraphObject=vGraphObject}},function(module2,exports$12,__webpack_require__){var LGraphObject=__webpack_require__(2),Integer=__webpack_require__(10),RectangleD=__webpack_require__(13),LayoutConstants=__webpack_require__(0),RandomSeed=__webpack_require__(16),PointD=__webpack_require__(4);function LNode(gm,loc,size,vNode){null==size&&null==vNode&&(vNode=loc),LGraphObject.call(this,vNode),null!=gm.graphManager&&(gm=gm.graphManager),this.estimatedSize=Integer.MIN_VALUE,this.inclusionTreeDepth=Integer.MAX_VALUE,this.vGraphObject=vNode,this.edges=[],this.graphManager=gm,this.rect=null!=size&&null!=loc?new RectangleD(loc.x,loc.y,size.width,size.height):new RectangleD}for(var prop in LNode.prototype=Object.create(LGraphObject.prototype),LGraphObject)LNode[prop]=LGraphObject[prop];LNode.prototype.getEdges=function(){return this.edges},LNode.prototype.getChild=function(){return this.child},LNode.prototype.getOwner=function(){return this.owner},LNode.prototype.getWidth=function(){return this.rect.width},LNode.prototype.setWidth=function(width){this.rect.width=width},LNode.prototype.getHeight=function(){return this.rect.height},LNode.prototype.setHeight=function(height){this.rect.height=height},LNode.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},LNode.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},LNode.prototype.getCenter=function(){return new PointD(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},LNode.prototype.getLocation=function(){return new PointD(this.rect.x,this.rect.y)},LNode.prototype.getRect=function(){return this.rect},LNode.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},LNode.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},LNode.prototype.setRect=function(upperLeft,dimension){this.rect.x=upperLeft.x,this.rect.y=upperLeft.y,this.rect.width=dimension.width,this.rect.height=dimension.height},LNode.prototype.setCenter=function(cx,cy){this.rect.x=cx-this.rect.width/2,this.rect.y=cy-this.rect.height/2},LNode.prototype.setLocation=function(x,y){this.rect.x=x,this.rect.y=y},LNode.prototype.moveBy=function(dx,dy){this.rect.x+=dx,this.rect.y+=dy},LNode.prototype.getEdgeListToNode=function(to){var edgeList=[],self=this;return self.edges.forEach(function(edge){if(edge.target==to){if(edge.source!=self)throw"Incorrect edge source!";edgeList.push(edge)}}),edgeList},LNode.prototype.getEdgesBetween=function(other){var edgeList=[],self=this;return self.edges.forEach(function(edge){if(edge.source!=self&&edge.target!=self)throw"Incorrect edge source and/or target";edge.target!=other&&edge.source!=other||edgeList.push(edge)}),edgeList},LNode.prototype.getNeighborsList=function(){var neighbors=new Set,self=this;return self.edges.forEach(function(edge){if(edge.source==self)neighbors.add(edge.target);else{if(edge.target!=self)throw"Incorrect incidency!";neighbors.add(edge.source)}}),neighbors},LNode.prototype.withChildren=function(){var withNeighborsList=new Set;if(withNeighborsList.add(this),null!=this.child)for(var nodes=this.child.getNodes(),i=0;i<nodes.length;i++)nodes[i].withChildren().forEach(function(node){withNeighborsList.add(node)});return withNeighborsList},LNode.prototype.getNoOfChildren=function(){var noOfChildren=0;if(null==this.child)noOfChildren=1;else for(var nodes=this.child.getNodes(),i=0;i<nodes.length;i++)noOfChildren+=nodes[i].getNoOfChildren();return 0==noOfChildren&&(noOfChildren=1),noOfChildren},LNode.prototype.getEstimatedSize=function(){if(this.estimatedSize==Integer.MIN_VALUE)throw"assert failed";return this.estimatedSize},LNode.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},LNode.prototype.scatter=function(){var randomCenterX,randomCenterY,minX=-LayoutConstants.INITIAL_WORLD_BOUNDARY,maxX=LayoutConstants.INITIAL_WORLD_BOUNDARY;randomCenterX=LayoutConstants.WORLD_CENTER_X+RandomSeed.nextDouble()*(maxX-minX)+minX;var minY=-LayoutConstants.INITIAL_WORLD_BOUNDARY,maxY=LayoutConstants.INITIAL_WORLD_BOUNDARY;randomCenterY=LayoutConstants.WORLD_CENTER_Y+RandomSeed.nextDouble()*(maxY-minY)+minY,this.rect.x=randomCenterX,this.rect.y=randomCenterY},LNode.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var childGraph=this.getChild();if(childGraph.updateBounds(!0),this.rect.x=childGraph.getLeft(),this.rect.y=childGraph.getTop(),this.setWidth(childGraph.getRight()-childGraph.getLeft()),this.setHeight(childGraph.getBottom()-childGraph.getTop()),LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS){var width=childGraph.getRight()-childGraph.getLeft(),height=childGraph.getBottom()-childGraph.getTop();this.labelWidth>width&&(this.rect.x-=(this.labelWidth-width)/2,this.setWidth(this.labelWidth)),this.labelHeight>height&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-height)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-height),this.setHeight(this.labelHeight))}}},LNode.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==Integer.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},LNode.prototype.transform=function(trans){var left=this.rect.x;left>LayoutConstants.WORLD_BOUNDARY?left=LayoutConstants.WORLD_BOUNDARY:left<-LayoutConstants.WORLD_BOUNDARY&&(left=-LayoutConstants.WORLD_BOUNDARY);var top=this.rect.y;top>LayoutConstants.WORLD_BOUNDARY?top=LayoutConstants.WORLD_BOUNDARY:top<-LayoutConstants.WORLD_BOUNDARY&&(top=-LayoutConstants.WORLD_BOUNDARY);var leftTop=new PointD(left,top),vLeftTop=trans.inverseTransformPoint(leftTop);this.setLocation(vLeftTop.x,vLeftTop.y)},LNode.prototype.getLeft=function(){return this.rect.x},LNode.prototype.getRight=function(){return this.rect.x+this.rect.width},LNode.prototype.getTop=function(){return this.rect.y},LNode.prototype.getBottom=function(){return this.rect.y+this.rect.height},LNode.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},module2.exports=LNode},function(module2,exports$12,__webpack_require__){function PointD(x,y){null==x&&null==y?(this.x=0,this.y=0):(this.x=x,this.y=y)}PointD.prototype.getX=function(){return this.x},PointD.prototype.getY=function(){return this.y},PointD.prototype.setX=function(x){this.x=x},PointD.prototype.setY=function(y){this.y=y},PointD.prototype.getDifference=function(pt){return new DimensionD(this.x-pt.x,this.y-pt.y)},PointD.prototype.getCopy=function(){return new PointD(this.x,this.y)},PointD.prototype.translate=function(dim){return this.x+=dim.width,this.y+=dim.height,this},module2.exports=PointD},function(module2,exports$12,__webpack_require__){var LGraphObject=__webpack_require__(2),Integer=__webpack_require__(10),LayoutConstants=__webpack_require__(0),LGraphManager=__webpack_require__(6),LNode=__webpack_require__(3),LEdge=__webpack_require__(1),RectangleD=__webpack_require__(13),Point2=__webpack_require__(12),LinkedList=__webpack_require__(11);function LGraph(parent,obj2,vGraph){LGraphObject.call(this,vGraph),this.estimatedSize=Integer.MIN_VALUE,this.margin=LayoutConstants.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=parent,null!=obj2&&obj2 instanceof LGraphManager?this.graphManager=obj2:null!=obj2&&obj2 instanceof Layout&&(this.graphManager=obj2.graphManager)}for(var prop in LGraph.prototype=Object.create(LGraphObject.prototype),LGraphObject)LGraph[prop]=LGraphObject[prop];LGraph.prototype.getNodes=function(){return this.nodes},LGraph.prototype.getEdges=function(){return this.edges},LGraph.prototype.getGraphManager=function(){return this.graphManager},LGraph.prototype.getParent=function(){return this.parent},LGraph.prototype.getLeft=function(){return this.left},LGraph.prototype.getRight=function(){return this.right},LGraph.prototype.getTop=function(){return this.top},LGraph.prototype.getBottom=function(){return this.bottom},LGraph.prototype.isConnected=function(){return this.isConnected},LGraph.prototype.add=function(obj1,sourceNode,targetNode){if(null==sourceNode&&null==targetNode){var newNode=obj1;if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(newNode)>-1)throw"Node already in graph!";return newNode.owner=this,this.getNodes().push(newNode),newNode}var newEdge=obj1;if(!(this.getNodes().indexOf(sourceNode)>-1&&this.getNodes().indexOf(targetNode)>-1))throw"Source or target not in graph!";if(sourceNode.owner!=targetNode.owner||sourceNode.owner!=this)throw"Both owners must be this graph!";return sourceNode.owner!=targetNode.owner?null:(newEdge.source=sourceNode,newEdge.target=targetNode,newEdge.isInterGraph=!1,this.getEdges().push(newEdge),sourceNode.edges.push(newEdge),targetNode!=sourceNode&&targetNode.edges.push(newEdge),newEdge)},LGraph.prototype.remove=function(obj){var node=obj;if(obj instanceof LNode){if(null==node)throw"Node is null!";if(null==node.owner||node.owner!=this)throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var edgesToBeRemoved=node.edges.slice(),s=edgesToBeRemoved.length,i=0;i<s;i++)(edge=edgesToBeRemoved[i]).isInterGraph?this.graphManager.remove(edge):edge.source.owner.remove(edge);if(-1==(index=this.nodes.indexOf(node)))throw"Node not in owner node list!";this.nodes.splice(index,1)}else if(obj instanceof LEdge){var edge;if(null==(edge=obj))throw"Edge is null!";if(null==edge.source||null==edge.target)throw"Source and/or target is null!";if(null==edge.source.owner||null==edge.target.owner||edge.source.owner!=this||edge.target.owner!=this)throw"Source and/or target owner is invalid!";var index,sourceIndex=edge.source.edges.indexOf(edge),targetIndex=edge.target.edges.indexOf(edge);if(!(sourceIndex>-1&&targetIndex>-1))throw"Source and/or target doesn't know this edge!";if(edge.source.edges.splice(sourceIndex,1),edge.target!=edge.source&&edge.target.edges.splice(targetIndex,1),-1==(index=edge.source.owner.getEdges().indexOf(edge)))throw"Not in owner's edge list!";edge.source.owner.getEdges().splice(index,1)}},LGraph.prototype.updateLeftTop=function(){for(var nodeTop,nodeLeft,margin,top=Integer.MAX_VALUE,left=Integer.MAX_VALUE,nodes=this.getNodes(),s=nodes.length,i=0;i<s;i++){var lNode=nodes[i];top>(nodeTop=lNode.getTop())&&(top=nodeTop),left>(nodeLeft=lNode.getLeft())&&(left=nodeLeft)}return top==Integer.MAX_VALUE?null:(margin=null!=nodes[0].getParent().paddingLeft?nodes[0].getParent().paddingLeft:this.margin,this.left=left-margin,this.top=top-margin,new Point2(this.left,this.top))},LGraph.prototype.updateBounds=function(recursive){for(var nodeLeft,nodeRight,nodeTop,nodeBottom,margin,left=Integer.MAX_VALUE,right=-Integer.MAX_VALUE,top=Integer.MAX_VALUE,bottom=-Integer.MAX_VALUE,nodes=this.nodes,s=nodes.length,i=0;i<s;i++){var lNode=nodes[i];recursive&&null!=lNode.child&&lNode.updateBounds(),left>(nodeLeft=lNode.getLeft())&&(left=nodeLeft),right<(nodeRight=lNode.getRight())&&(right=nodeRight),top>(nodeTop=lNode.getTop())&&(top=nodeTop),bottom<(nodeBottom=lNode.getBottom())&&(bottom=nodeBottom)}var boundingRect=new RectangleD(left,top,right-left,bottom-top);left==Integer.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),margin=null!=nodes[0].getParent().paddingLeft?nodes[0].getParent().paddingLeft:this.margin,this.left=boundingRect.x-margin,this.right=boundingRect.x+boundingRect.width+margin,this.top=boundingRect.y-margin,this.bottom=boundingRect.y+boundingRect.height+margin},LGraph.calculateBounds=function(nodes){for(var nodeLeft,nodeRight,nodeTop,nodeBottom,left=Integer.MAX_VALUE,right=-Integer.MAX_VALUE,top=Integer.MAX_VALUE,bottom=-Integer.MAX_VALUE,s=nodes.length,i=0;i<s;i++){var lNode=nodes[i];left>(nodeLeft=lNode.getLeft())&&(left=nodeLeft),right<(nodeRight=lNode.getRight())&&(right=nodeRight),top>(nodeTop=lNode.getTop())&&(top=nodeTop),bottom<(nodeBottom=lNode.getBottom())&&(bottom=nodeBottom)}return new RectangleD(left,top,right-left,bottom-top)},LGraph.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},LGraph.prototype.getEstimatedSize=function(){if(this.estimatedSize==Integer.MIN_VALUE)throw"assert failed";return this.estimatedSize},LGraph.prototype.calcEstimatedSize=function(){for(var size=0,nodes=this.nodes,s=nodes.length,i=0;i<s;i++)size+=nodes[i].calcEstimatedSize();return this.estimatedSize=0==size?LayoutConstants.EMPTY_COMPOUND_NODE_SIZE:size/Math.sqrt(this.nodes.length),this.estimatedSize},LGraph.prototype.updateConnected=function(){var self=this;if(0!=this.nodes.length){var neighborEdges,currentNeighbor,queue=new LinkedList,visited=new Set,currentNode=this.nodes[0];for(currentNode.withChildren().forEach(function(node){queue.push(node),visited.add(node)});0!==queue.length;)for(var size=(neighborEdges=(currentNode=queue.shift()).getEdges()).length,i=0;i<size;i++)null==(currentNeighbor=neighborEdges[i].getOtherEndInGraph(currentNode,this))||visited.has(currentNeighbor)||currentNeighbor.withChildren().forEach(function(node){queue.push(node),visited.add(node)});if(this.isConnected=!1,visited.size>=this.nodes.length){var noOfVisitedInThisGraph=0;visited.forEach(function(visitedNode){visitedNode.owner==self&&noOfVisitedInThisGraph++}),noOfVisitedInThisGraph==this.nodes.length&&(this.isConnected=!0)}}else this.isConnected=!0},module2.exports=LGraph},function(module2,exports$12,__webpack_require__){var LGraph,LEdge=__webpack_require__(1);function LGraphManager(layout){LGraph=__webpack_require__(5),this.layout=layout,this.graphs=[],this.edges=[]}LGraphManager.prototype.addRoot=function(){var ngraph=this.layout.newGraph(),nnode=this.layout.newNode(null),root=this.add(ngraph,nnode);return this.setRootGraph(root),this.rootGraph},LGraphManager.prototype.add=function(newGraph,parentNode,newEdge,sourceNode,targetNode){if(null==newEdge&&null==sourceNode&&null==targetNode){if(null==newGraph)throw"Graph is null!";if(null==parentNode)throw"Parent node is null!";if(this.graphs.indexOf(newGraph)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(newGraph),null!=newGraph.parent)throw"Already has a parent!";if(null!=parentNode.child)throw"Already has a child!";return newGraph.parent=parentNode,parentNode.child=newGraph,newGraph}targetNode=newEdge,newEdge=newGraph;var sourceGraph=(sourceNode=parentNode).getOwner(),targetGraph=targetNode.getOwner();if(null==sourceGraph||sourceGraph.getGraphManager()!=this)throw"Source not in this graph mgr!";if(null==targetGraph||targetGraph.getGraphManager()!=this)throw"Target not in this graph mgr!";if(sourceGraph==targetGraph)return newEdge.isInterGraph=!1,sourceGraph.add(newEdge,sourceNode,targetNode);if(newEdge.isInterGraph=!0,newEdge.source=sourceNode,newEdge.target=targetNode,this.edges.indexOf(newEdge)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(newEdge),null==newEdge.source||null==newEdge.target)throw"Edge source and/or target is null!";if(-1!=newEdge.source.edges.indexOf(newEdge)||-1!=newEdge.target.edges.indexOf(newEdge))throw"Edge already in source and/or target incidency list!";return newEdge.source.edges.push(newEdge),newEdge.target.edges.push(newEdge),newEdge},LGraphManager.prototype.remove=function(lObj){if(lObj instanceof LGraph){var graph=lObj;if(graph.getGraphManager()!=this)throw"Graph not in this graph mgr";if(graph!=this.rootGraph&&(null==graph.parent||graph.parent.graphManager!=this))throw"Invalid parent node!";for(var edge,edgesToBeRemoved=[],s=(edgesToBeRemoved=edgesToBeRemoved.concat(graph.getEdges())).length,i=0;i<s;i++)edge=edgesToBeRemoved[i],graph.remove(edge);var node,nodesToBeRemoved=[];for(s=(nodesToBeRemoved=nodesToBeRemoved.concat(graph.getNodes())).length,i=0;i<s;i++)node=nodesToBeRemoved[i],graph.remove(node);graph==this.rootGraph&&this.setRootGraph(null);var index=this.graphs.indexOf(graph);this.graphs.splice(index,1),graph.parent=null}else if(lObj instanceof LEdge){if(null==(edge=lObj))throw"Edge is null!";if(!edge.isInterGraph)throw"Not an inter-graph edge!";if(null==edge.source||null==edge.target)throw"Source and/or target is null!";if(-1==edge.source.edges.indexOf(edge)||-1==edge.target.edges.indexOf(edge))throw"Source and/or target doesn't know this edge!";if(index=edge.source.edges.indexOf(edge),edge.source.edges.splice(index,1),index=edge.target.edges.indexOf(edge),edge.target.edges.splice(index,1),null==edge.source.owner||null==edge.source.owner.getGraphManager())throw"Edge owner graph or owner graph manager is null!";if(-1==edge.source.owner.getGraphManager().edges.indexOf(edge))throw"Not in owner graph manager's edge list!";index=edge.source.owner.getGraphManager().edges.indexOf(edge),edge.source.owner.getGraphManager().edges.splice(index,1)}},LGraphManager.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},LGraphManager.prototype.getGraphs=function(){return this.graphs},LGraphManager.prototype.getAllNodes=function(){if(null==this.allNodes){for(var nodeList=[],graphs=this.getGraphs(),s=graphs.length,i=0;i<s;i++)nodeList=nodeList.concat(graphs[i].getNodes());this.allNodes=nodeList}return this.allNodes},LGraphManager.prototype.resetAllNodes=function(){this.allNodes=null},LGraphManager.prototype.resetAllEdges=function(){this.allEdges=null},LGraphManager.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},LGraphManager.prototype.getAllEdges=function(){if(null==this.allEdges){var edgeList=[],graphs=this.getGraphs();graphs.length;for(var i=0;i<graphs.length;i++)edgeList=edgeList.concat(graphs[i].getEdges());edgeList=edgeList.concat(this.edges),this.allEdges=edgeList}return this.allEdges},LGraphManager.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},LGraphManager.prototype.setAllNodesToApplyGravitation=function(nodeList){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=nodeList},LGraphManager.prototype.getRoot=function(){return this.rootGraph},LGraphManager.prototype.setRootGraph=function(graph){if(graph.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=graph,null==graph.parent&&(graph.parent=this.layout.newNode("Root node"))},LGraphManager.prototype.getLayout=function(){return this.layout},LGraphManager.prototype.isOneAncestorOfOther=function(firstNode,secondNode){if(null==firstNode||null==secondNode)throw"assert failed";if(firstNode==secondNode)return!0;for(var parentNode,ownerGraph=firstNode.getOwner();null!=(parentNode=ownerGraph.getParent());){if(parentNode==secondNode)return!0;if(null==(ownerGraph=parentNode.getOwner()))break}for(ownerGraph=secondNode.getOwner();null!=(parentNode=ownerGraph.getParent());){if(parentNode==firstNode)return!0;if(null==(ownerGraph=parentNode.getOwner()))break}return!1},LGraphManager.prototype.calcLowestCommonAncestors=function(){for(var edge,sourceNode,targetNode,sourceAncestorGraph,targetAncestorGraph,edges=this.getAllEdges(),s=edges.length,i=0;i<s;i++)if(sourceNode=(edge=edges[i]).source,targetNode=edge.target,edge.lca=null,edge.sourceInLca=sourceNode,edge.targetInLca=targetNode,sourceNode!=targetNode){for(sourceAncestorGraph=sourceNode.getOwner();null==edge.lca;){for(edge.targetInLca=targetNode,targetAncestorGraph=targetNode.getOwner();null==edge.lca;){if(targetAncestorGraph==sourceAncestorGraph){edge.lca=targetAncestorGraph;break}if(targetAncestorGraph==this.rootGraph)break;if(null!=edge.lca)throw"assert failed";edge.targetInLca=targetAncestorGraph.getParent(),targetAncestorGraph=edge.targetInLca.getOwner()}if(sourceAncestorGraph==this.rootGraph)break;null==edge.lca&&(edge.sourceInLca=sourceAncestorGraph.getParent(),sourceAncestorGraph=edge.sourceInLca.getOwner())}if(null==edge.lca)throw"assert failed"}else edge.lca=sourceNode.getOwner()},LGraphManager.prototype.calcLowestCommonAncestor=function(firstNode,secondNode){if(firstNode==secondNode)return firstNode.getOwner();for(var firstOwnerGraph=firstNode.getOwner();null!=firstOwnerGraph;){for(var secondOwnerGraph=secondNode.getOwner();null!=secondOwnerGraph;){if(secondOwnerGraph==firstOwnerGraph)return secondOwnerGraph;secondOwnerGraph=secondOwnerGraph.getParent().getOwner()}firstOwnerGraph=firstOwnerGraph.getParent().getOwner()}return firstOwnerGraph},LGraphManager.prototype.calcInclusionTreeDepths=function(graph,depth){var node;null==graph&&null==depth&&(graph=this.rootGraph,depth=1);for(var nodes=graph.getNodes(),s=nodes.length,i=0;i<s;i++)(node=nodes[i]).inclusionTreeDepth=depth,null!=node.child&&this.calcInclusionTreeDepths(node.child,depth+1)},LGraphManager.prototype.includesInvalidEdge=function(){for(var edge,s=this.edges.length,i=0;i<s;i++)if(edge=this.edges[i],this.isOneAncestorOfOther(edge.source,edge.target))return!0;return!1},module2.exports=LGraphManager},function(module2,exports$12,__webpack_require__){var LayoutConstants=__webpack_require__(0);function FDLayoutConstants(){}for(var prop in LayoutConstants)FDLayoutConstants[prop]=LayoutConstants[prop];FDLayoutConstants.MAX_ITERATIONS=2500,FDLayoutConstants.DEFAULT_EDGE_LENGTH=50,FDLayoutConstants.DEFAULT_SPRING_STRENGTH=.45,FDLayoutConstants.DEFAULT_REPULSION_STRENGTH=4500,FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH=.4,FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,FDLayoutConstants.COOLING_ADAPTATION_FACTOR=.33,FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT=1e3,FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT=5e3,FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,FDLayoutConstants.MAX_NODE_DISPLACEMENT=3*FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL,FDLayoutConstants.MIN_REPULSION_DIST=FDLayoutConstants.DEFAULT_EDGE_LENGTH/10,FDLayoutConstants.CONVERGENCE_CHECK_PERIOD=100,FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,FDLayoutConstants.MIN_EDGE_LENGTH=1,FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD=10,module2.exports=FDLayoutConstants},function(module2,exports$12,__webpack_require__){var Point2=__webpack_require__(12);function IGeometry(){}IGeometry.calcSeparationAmount=function(rectA,rectB,overlapAmount,separationBuffer){if(!rectA.intersects(rectB))throw"assert failed";var directions=new Array(2);this.decideDirectionsForOverlappingNodes(rectA,rectB,directions),overlapAmount[0]=Math.min(rectA.getRight(),rectB.getRight())-Math.max(rectA.x,rectB.x),overlapAmount[1]=Math.min(rectA.getBottom(),rectB.getBottom())-Math.max(rectA.y,rectB.y),rectA.getX()<=rectB.getX()&&rectA.getRight()>=rectB.getRight()?overlapAmount[0]+=Math.min(rectB.getX()-rectA.getX(),rectA.getRight()-rectB.getRight()):rectB.getX()<=rectA.getX()&&rectB.getRight()>=rectA.getRight()&&(overlapAmount[0]+=Math.min(rectA.getX()-rectB.getX(),rectB.getRight()-rectA.getRight())),rectA.getY()<=rectB.getY()&&rectA.getBottom()>=rectB.getBottom()?overlapAmount[1]+=Math.min(rectB.getY()-rectA.getY(),rectA.getBottom()-rectB.getBottom()):rectB.getY()<=rectA.getY()&&rectB.getBottom()>=rectA.getBottom()&&(overlapAmount[1]+=Math.min(rectA.getY()-rectB.getY(),rectB.getBottom()-rectA.getBottom()));var slope=Math.abs((rectB.getCenterY()-rectA.getCenterY())/(rectB.getCenterX()-rectA.getCenterX()));rectB.getCenterY()===rectA.getCenterY()&&rectB.getCenterX()===rectA.getCenterX()&&(slope=1);var moveByY=slope*overlapAmount[0],moveByX=overlapAmount[1]/slope;overlapAmount[0]<moveByX?moveByX=overlapAmount[0]:moveByY=overlapAmount[1],overlapAmount[0]=-1*directions[0]*(moveByX/2+separationBuffer),overlapAmount[1]=-1*directions[1]*(moveByY/2+separationBuffer)},IGeometry.decideDirectionsForOverlappingNodes=function(rectA,rectB,directions){rectA.getCenterX()<rectB.getCenterX()?directions[0]=-1:directions[0]=1,rectA.getCenterY()<rectB.getCenterY()?directions[1]=-1:directions[1]=1},IGeometry.getIntersection2=function(rectA,rectB,result){var p1x=rectA.getCenterX(),p1y=rectA.getCenterY(),p2x=rectB.getCenterX(),p2y=rectB.getCenterY();if(rectA.intersects(rectB))return result[0]=p1x,result[1]=p1y,result[2]=p2x,result[3]=p2y,!0;var topLeftAx=rectA.getX(),topLeftAy=rectA.getY(),topRightAx=rectA.getRight(),bottomLeftAx=rectA.getX(),bottomLeftAy=rectA.getBottom(),bottomRightAx=rectA.getRight(),halfWidthA=rectA.getWidthHalf(),halfHeightA=rectA.getHeightHalf(),topLeftBx=rectB.getX(),topLeftBy=rectB.getY(),topRightBx=rectB.getRight(),bottomLeftBx=rectB.getX(),bottomLeftBy=rectB.getBottom(),bottomRightBx=rectB.getRight(),halfWidthB=rectB.getWidthHalf(),halfHeightB=rectB.getHeightHalf(),clipPointAFound=!1,clipPointBFound=!1;if(p1x===p2x){if(p1y>p2y)return result[0]=p1x,result[1]=topLeftAy,result[2]=p2x,result[3]=bottomLeftBy,!1;if(p1y<p2y)return result[0]=p1x,result[1]=bottomLeftAy,result[2]=p2x,result[3]=topLeftBy,!1}else if(p1y===p2y){if(p1x>p2x)return result[0]=topLeftAx,result[1]=p1y,result[2]=topRightBx,result[3]=p2y,!1;if(p1x<p2x)return result[0]=topRightAx,result[1]=p1y,result[2]=topLeftBx,result[3]=p2y,!1}else{var slopeA=rectA.height/rectA.width,slopeB=rectB.height/rectB.width,slopePrime=(p2y-p1y)/(p2x-p1x),cardinalDirectionA=void 0,cardinalDirectionB=void 0,tempPointAx=void 0,tempPointAy=void 0,tempPointBx=void 0,tempPointBy=void 0;if(-slopeA===slopePrime?p1x>p2x?(result[0]=bottomLeftAx,result[1]=bottomLeftAy,clipPointAFound=!0):(result[0]=topRightAx,result[1]=topLeftAy,clipPointAFound=!0):slopeA===slopePrime&&(p1x>p2x?(result[0]=topLeftAx,result[1]=topLeftAy,clipPointAFound=!0):(result[0]=bottomRightAx,result[1]=bottomLeftAy,clipPointAFound=!0)),-slopeB===slopePrime?p2x>p1x?(result[2]=bottomLeftBx,result[3]=bottomLeftBy,clipPointBFound=!0):(result[2]=topRightBx,result[3]=topLeftBy,clipPointBFound=!0):slopeB===slopePrime&&(p2x>p1x?(result[2]=topLeftBx,result[3]=topLeftBy,clipPointBFound=!0):(result[2]=bottomRightBx,result[3]=bottomLeftBy,clipPointBFound=!0)),clipPointAFound&&clipPointBFound)return!1;if(p1x>p2x?p1y>p2y?(cardinalDirectionA=this.getCardinalDirection(slopeA,slopePrime,4),cardinalDirectionB=this.getCardinalDirection(slopeB,slopePrime,2)):(cardinalDirectionA=this.getCardinalDirection(-slopeA,slopePrime,3),cardinalDirectionB=this.getCardinalDirection(-slopeB,slopePrime,1)):p1y>p2y?(cardinalDirectionA=this.getCardinalDirection(-slopeA,slopePrime,1),cardinalDirectionB=this.getCardinalDirection(-slopeB,slopePrime,3)):(cardinalDirectionA=this.getCardinalDirection(slopeA,slopePrime,2),cardinalDirectionB=this.getCardinalDirection(slopeB,slopePrime,4)),!clipPointAFound)switch(cardinalDirectionA){case 1:tempPointAy=topLeftAy,tempPointAx=p1x+-halfHeightA/slopePrime,result[0]=tempPointAx,result[1]=tempPointAy;break;case 2:tempPointAx=bottomRightAx,tempPointAy=p1y+halfWidthA*slopePrime,result[0]=tempPointAx,result[1]=tempPointAy;break;case 3:tempPointAy=bottomLeftAy,tempPointAx=p1x+halfHeightA/slopePrime,result[0]=tempPointAx,result[1]=tempPointAy;break;case 4:tempPointAx=bottomLeftAx,tempPointAy=p1y+-halfWidthA*slopePrime,result[0]=tempPointAx,result[1]=tempPointAy}if(!clipPointBFound)switch(cardinalDirectionB){case 1:tempPointBy=topLeftBy,tempPointBx=p2x+-halfHeightB/slopePrime,result[2]=tempPointBx,result[3]=tempPointBy;break;case 2:tempPointBx=bottomRightBx,tempPointBy=p2y+halfWidthB*slopePrime,result[2]=tempPointBx,result[3]=tempPointBy;break;case 3:tempPointBy=bottomLeftBy,tempPointBx=p2x+halfHeightB/slopePrime,result[2]=tempPointBx,result[3]=tempPointBy;break;case 4:tempPointBx=bottomLeftBx,tempPointBy=p2y+-halfWidthB*slopePrime,result[2]=tempPointBx,result[3]=tempPointBy}}return!1},IGeometry.getCardinalDirection=function(slope,slopePrime,line){return slope>slopePrime?line:1+line%4},IGeometry.getIntersection=function(s1,s2,f1,f2){if(null==f2)return this.getIntersection2(s1,s2,f1);var a1,a2,b1,b2,c1,c2,denom,x1=s1.x,y1=s1.y,x2=s2.x,y2=s2.y,x3=f1.x,y3=f1.y,x4=f2.x,y4=f2.y;return 0===(denom=(a1=y2-y1)*(b2=x3-x4)-(a2=y4-y3)*(b1=x1-x2))?null:new Point2((b1*(c2=x4*y3-x3*y4)-b2*(c1=x2*y1-x1*y2))/denom,(a2*c1-a1*c2)/denom)},IGeometry.angleOfVector=function(Cx,Cy,Nx,Ny){var C_angle=void 0;return Cx!==Nx?(C_angle=Math.atan((Ny-Cy)/(Nx-Cx)),Nx<Cx?C_angle+=Math.PI:Ny<Cy&&(C_angle+=this.TWO_PI)):C_angle=Ny<Cy?this.ONE_AND_HALF_PI:this.HALF_PI,C_angle},IGeometry.doIntersect=function(p1,p2,p3,p4){var a=p1.x,b=p1.y,c=p2.x,d=p2.y,p=p3.x,q=p3.y,r=p4.x,s=p4.y,det=(c-a)*(s-q)-(r-p)*(d-b);if(0===det)return!1;var lambda=((s-q)*(r-a)+(p-r)*(s-b))/det,gamma=((b-d)*(r-a)+(c-a)*(s-b))/det;return 0<lambda&&lambda<1&&0<gamma&&gamma<1},IGeometry.HALF_PI=.5*Math.PI,IGeometry.ONE_AND_HALF_PI=1.5*Math.PI,IGeometry.TWO_PI=2*Math.PI,IGeometry.THREE_PI=3*Math.PI,module2.exports=IGeometry},function(module2,exports$12,__webpack_require__){function IMath(){}IMath.sign=function(value){return value>0?1:value<0?-1:0},IMath.floor=function(value){return value<0?Math.ceil(value):Math.floor(value)},IMath.ceil=function(value){return value<0?Math.floor(value):Math.ceil(value)},module2.exports=IMath},function(module2,exports$12,__webpack_require__){function Integer(){}Integer.MAX_VALUE=2147483647,Integer.MIN_VALUE=-2147483648,module2.exports=Integer},function(module2,exports$12,__webpack_require__){var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),nodeFrom=function(value){return{value:value,next:null,prev:null}},add=function(prev,node,next2,list){return null!==prev?prev.next=node:list.head=node,null!==next2?next2.prev=node:list.tail=node,node.prev=prev,node.next=next2,list.length++,node},_remove=function(node,list){var prev=node.prev,next2=node.next;return null!==prev?prev.next=next2:list.head=next2,null!==next2?next2.prev=prev:list.tail=prev,node.prev=node.next=null,list.length--,node},LinkedList=function(){function LinkedList2(vals){var _this=this;!function(instance2,Constructor){if(!(instance2 instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,LinkedList2),this.length=0,this.head=null,this.tail=null,null!=vals&&vals.forEach(function(v){return _this.push(v)})}return _createClass(LinkedList2,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(val,otherNode){return add(otherNode.prev,nodeFrom(val),otherNode,this)}},{key:"insertAfter",value:function(val,otherNode){return add(otherNode,nodeFrom(val),otherNode.next,this)}},{key:"insertNodeBefore",value:function(newNode,otherNode){return add(otherNode.prev,newNode,otherNode,this)}},{key:"insertNodeAfter",value:function(newNode,otherNode){return add(otherNode,newNode,otherNode.next,this)}},{key:"push",value:function(val){return add(this.tail,nodeFrom(val),null,this)}},{key:"unshift",value:function(val){return add(null,nodeFrom(val),this.head,this)}},{key:"remove",value:function(node){return _remove(node,this)}},{key:"pop",value:function(){return _remove(this.tail,this).value}},{key:"popNode",value:function(){return _remove(this.tail,this)}},{key:"shift",value:function(){return _remove(this.head,this).value}},{key:"shiftNode",value:function(){return _remove(this.head,this)}},{key:"get_object_at",value:function(index){if(index<=this.length()){for(var i=1,current=this.head;i<index;)current=current.next,i++;return current.value}}},{key:"set_object_at",value:function(index,value){if(index<=this.length()){for(var i=1,current=this.head;i<index;)current=current.next,i++;current.value=value}}}]),LinkedList2}();module2.exports=LinkedList},function(module2,exports$12,__webpack_require__){function Point2(x,y,p){this.x=null,this.y=null,null==x&&null==y&&null==p?(this.x=0,this.y=0):"number"==typeof x&&"number"==typeof y&&null==p?(this.x=x,this.y=y):"Point"==x.constructor.name&&null==y&&null==p&&(p=x,this.x=p.x,this.y=p.y)}Point2.prototype.getX=function(){return this.x},Point2.prototype.getY=function(){return this.y},Point2.prototype.getLocation=function(){return new Point2(this.x,this.y)},Point2.prototype.setLocation=function(x,y,p){"Point"==x.constructor.name&&null==y&&null==p?(p=x,this.setLocation(p.x,p.y)):"number"==typeof x&&"number"==typeof y&&null==p&&(parseInt(x)==x&&parseInt(y)==y?this.move(x,y):(this.x=Math.floor(x+.5),this.y=Math.floor(y+.5)))},Point2.prototype.move=function(x,y){this.x=x,this.y=y},Point2.prototype.translate=function(dx,dy){this.x+=dx,this.y+=dy},Point2.prototype.equals=function(obj){if("Point"==obj.constructor.name){var pt=obj;return this.x==pt.x&&this.y==pt.y}return this==obj},Point2.prototype.toString=function(){return(new Point2).constructor.name+"[x="+this.x+",y="+this.y+"]"},module2.exports=Point2},function(module2,exports$12,__webpack_require__){function RectangleD(x,y,width,height){this.x=0,this.y=0,this.width=0,this.height=0,null!=x&&null!=y&&null!=width&&null!=height&&(this.x=x,this.y=y,this.width=width,this.height=height)}RectangleD.prototype.getX=function(){return this.x},RectangleD.prototype.setX=function(x){this.x=x},RectangleD.prototype.getY=function(){return this.y},RectangleD.prototype.setY=function(y){this.y=y},RectangleD.prototype.getWidth=function(){return this.width},RectangleD.prototype.setWidth=function(width){this.width=width},RectangleD.prototype.getHeight=function(){return this.height},RectangleD.prototype.setHeight=function(height){this.height=height},RectangleD.prototype.getRight=function(){return this.x+this.width},RectangleD.prototype.getBottom=function(){return this.y+this.height},RectangleD.prototype.intersects=function(a){return!(this.getRight()<a.x||this.getBottom()<a.y||a.getRight()<this.x||a.getBottom()<this.y)},RectangleD.prototype.getCenterX=function(){return this.x+this.width/2},RectangleD.prototype.getMinX=function(){return this.getX()},RectangleD.prototype.getMaxX=function(){return this.getX()+this.width},RectangleD.prototype.getCenterY=function(){return this.y+this.height/2},RectangleD.prototype.getMinY=function(){return this.getY()},RectangleD.prototype.getMaxY=function(){return this.getY()+this.height},RectangleD.prototype.getWidthHalf=function(){return this.width/2},RectangleD.prototype.getHeightHalf=function(){return this.height/2},module2.exports=RectangleD},function(module2,exports$12,__webpack_require__){var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};function UniqueIDGeneretor(){}UniqueIDGeneretor.lastID=0,UniqueIDGeneretor.createID=function(obj){return UniqueIDGeneretor.isPrimitive(obj)?obj:(null!=obj.uniqueID||(obj.uniqueID=UniqueIDGeneretor.getString(),UniqueIDGeneretor.lastID++),obj.uniqueID)},UniqueIDGeneretor.getString=function(id){return null==id&&(id=UniqueIDGeneretor.lastID),"Object#"+id},UniqueIDGeneretor.isPrimitive=function(arg){var type=void 0===arg?"undefined":_typeof(arg);return null==arg||"object"!=type&&"function"!=type},module2.exports=UniqueIDGeneretor},function(module2,exports$12,__webpack_require__){function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}var LayoutConstants=__webpack_require__(0),LGraphManager=__webpack_require__(6),LNode=__webpack_require__(3),LEdge=__webpack_require__(1),LGraph=__webpack_require__(5),PointD=__webpack_require__(4),Transform=__webpack_require__(17),Emitter=__webpack_require__(27);function Layout2(isRemoteUse){Emitter.call(this),this.layoutQuality=LayoutConstants.QUALITY,this.createBendsAsNeeded=LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=LayoutConstants.DEFAULT_INCREMENTAL,this.animationOnLayout=LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=LayoutConstants.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new LGraphManager(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=isRemoteUse&&(this.isRemoteUse=isRemoteUse)}Layout2.RANDOM_SEED=1,Layout2.prototype=Object.create(Emitter.prototype),Layout2.prototype.getGraphManager=function(){return this.graphManager},Layout2.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},Layout2.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},Layout2.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},Layout2.prototype.newGraphManager=function(){var gm=new LGraphManager(this);return this.graphManager=gm,gm},Layout2.prototype.newGraph=function(vGraph){return new LGraph(null,this.graphManager,vGraph)},Layout2.prototype.newNode=function(vNode){return new LNode(this.graphManager,vNode)},Layout2.prototype.newEdge=function(vEdge){return new LEdge(null,null,vEdge)},Layout2.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},Layout2.prototype.runLayout=function(){var isLayoutSuccessfull;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),isLayoutSuccessfull=!this.checkLayoutSuccess()&&this.layout(),"during"!==LayoutConstants.ANIMATE&&(isLayoutSuccessfull&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,isLayoutSuccessfull)},Layout2.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},Layout2.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var allEdges=this.graphManager.getAllEdges(),i=0;i<allEdges.length;i++)allEdges[i];var nodes=this.graphManager.getRoot().getNodes();for(i=0;i<nodes.length;i++)nodes[i];this.update(this.graphManager.getRoot())}},Layout2.prototype.update=function(obj){if(null==obj)this.update2();else if(obj instanceof LNode){var node=obj;if(null!=node.getChild())for(var nodes=node.getChild().getNodes(),i=0;i<nodes.length;i++)update(nodes[i]);null!=node.vGraphObject&&node.vGraphObject.update(node)}else if(obj instanceof LEdge){var edge=obj;null!=edge.vGraphObject&&edge.vGraphObject.update(edge)}else if(obj instanceof LGraph){var graph=obj;null!=graph.vGraphObject&&graph.vGraphObject.update(graph)}},Layout2.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=LayoutConstants.QUALITY,this.animationDuringLayout=LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=LayoutConstants.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=LayoutConstants.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},Layout2.prototype.transform=function(newLeftTop){if(null==newLeftTop)this.transform(new PointD(0,0));else{var trans=new Transform,leftTop=this.graphManager.getRoot().updateLeftTop();if(null!=leftTop){trans.setWorldOrgX(newLeftTop.x),trans.setWorldOrgY(newLeftTop.y),trans.setDeviceOrgX(leftTop.x),trans.setDeviceOrgY(leftTop.y);for(var nodes=this.getAllNodes(),i=0;i<nodes.length;i++)nodes[i].transform(trans)}}},Layout2.prototype.positionNodesRandomly=function(graph){if(null==graph)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var lNode,childGraph,nodes=graph.getNodes(),i=0;i<nodes.length;i++)null==(childGraph=(lNode=nodes[i]).getChild())||0==childGraph.getNodes().length?lNode.scatter():(this.positionNodesRandomly(childGraph),lNode.updateBounds())},Layout2.prototype.getFlatForest=function(){for(var flatForest=[],isForest=!0,allNodes=this.graphManager.getRoot().getNodes(),isFlat=!0,i=0;i<allNodes.length;i++)null!=allNodes[i].getChild()&&(isFlat=!1);if(!isFlat)return flatForest;var visited=new Set,toBeVisited=[],parents=new Map,unProcessedNodes=[];for(unProcessedNodes=unProcessedNodes.concat(allNodes);unProcessedNodes.length>0&&isForest;){for(toBeVisited.push(unProcessedNodes[0]);toBeVisited.length>0&&isForest;){var currentNode=toBeVisited[0];toBeVisited.splice(0,1),visited.add(currentNode);var neighborEdges=currentNode.getEdges();for(i=0;i<neighborEdges.length;i++){var currentNeighbor=neighborEdges[i].getOtherEnd(currentNode);if(parents.get(currentNode)!=currentNeighbor){if(visited.has(currentNeighbor)){isForest=!1;break}toBeVisited.push(currentNeighbor),parents.set(currentNeighbor,currentNode)}}}if(isForest){var temp=[].concat(_toConsumableArray(visited));for(flatForest.push(temp),i=0;i<temp.length;i++){var value=temp[i],index=unProcessedNodes.indexOf(value);index>-1&&unProcessedNodes.splice(index,1)}visited=new Set,parents=new Map}else flatForest=[]}return flatForest},Layout2.prototype.createDummyNodesForBendpoints=function(edge){for(var dummyNodes=[],prev=edge.source,graph=this.graphManager.calcLowestCommonAncestor(edge.source,edge.target),i=0;i<edge.bendpoints.length;i++){var dummyNode=this.newNode(null);dummyNode.setRect(new Point(0,0),new Dimension(1,1)),graph.add(dummyNode);var dummyEdge=this.newEdge(null);this.graphManager.add(dummyEdge,prev,dummyNode),dummyNodes.add(dummyNode),prev=dummyNode}return dummyEdge=this.newEdge(null),this.graphManager.add(dummyEdge,prev,edge.target),this.edgeToDummyNodes.set(edge,dummyNodes),edge.isInterGraph()?this.graphManager.remove(edge):graph.remove(edge),dummyNodes},Layout2.prototype.createBendpointsFromDummyNodes=function(){var edges=[];edges=edges.concat(this.graphManager.getAllEdges()),edges=[].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges);for(var k=0;k<edges.length;k++){var lEdge=edges[k];if(lEdge.bendpoints.length>0){for(var path=this.edgeToDummyNodes.get(lEdge),i=0;i<path.length;i++){var dummyNode=path[i],p=new PointD(dummyNode.getCenterX(),dummyNode.getCenterY()),ebp=lEdge.bendpoints.get(i);ebp.x=p.x,ebp.y=p.y,dummyNode.getOwner().remove(dummyNode)}this.graphManager.add(lEdge,lEdge.source,lEdge.target)}}},Layout2.transform=function(sliderValue,defaultValue,minDiv,maxMul){if(null!=minDiv&&null!=maxMul){var value=defaultValue;return sliderValue<=50?value-=(defaultValue-defaultValue/minDiv)/50*(50-sliderValue):value+=(defaultValue*maxMul-defaultValue)/50*(sliderValue-50),value}var a,b;return sliderValue<=50?(a=9*defaultValue/500,b=defaultValue/10):(a=9*defaultValue/50,b=-8*defaultValue),a*sliderValue+b},Layout2.findCenterOfTree=function(nodes){var list=[];list=list.concat(nodes);var removedNodes=[],remainingDegrees=new Map,foundCenter=!1,centerNode=null;1!=list.length&&2!=list.length||(foundCenter=!0,centerNode=list[0]);for(var i=0;i<list.length;i++){var degree=(node=list[i]).getNeighborsList().size;remainingDegrees.set(node,node.getNeighborsList().size),1==degree&&removedNodes.push(node)}var tempList=[];for(tempList=tempList.concat(removedNodes);!foundCenter;){var tempList2=[];for(tempList2=tempList2.concat(tempList),tempList=[],i=0;i<list.length;i++){var node=list[i],index=list.indexOf(node);index>=0&&list.splice(index,1),node.getNeighborsList().forEach(function(neighbour){if(removedNodes.indexOf(neighbour)<0){var newDegree=remainingDegrees.get(neighbour)-1;1==newDegree&&tempList.push(neighbour),remainingDegrees.set(neighbour,newDegree)}})}removedNodes=removedNodes.concat(tempList),1!=list.length&&2!=list.length||(foundCenter=!0,centerNode=list[0])}return centerNode},Layout2.prototype.setGraphManager=function(gm){this.graphManager=gm},module2.exports=Layout2},function(module2,exports$12,__webpack_require__){function RandomSeed(){}RandomSeed.seed=1,RandomSeed.x=0,RandomSeed.nextDouble=function(){return RandomSeed.x=1e4*Math.sin(RandomSeed.seed++),RandomSeed.x-Math.floor(RandomSeed.x)},module2.exports=RandomSeed},function(module2,exports$12,__webpack_require__){var PointD=__webpack_require__(4);function Transform(x,y){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}Transform.prototype.getWorldOrgX=function(){return this.lworldOrgX},Transform.prototype.setWorldOrgX=function(wox){this.lworldOrgX=wox},Transform.prototype.getWorldOrgY=function(){return this.lworldOrgY},Transform.prototype.setWorldOrgY=function(woy){this.lworldOrgY=woy},Transform.prototype.getWorldExtX=function(){return this.lworldExtX},Transform.prototype.setWorldExtX=function(wex){this.lworldExtX=wex},Transform.prototype.getWorldExtY=function(){return this.lworldExtY},Transform.prototype.setWorldExtY=function(wey){this.lworldExtY=wey},Transform.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},Transform.prototype.setDeviceOrgX=function(dox){this.ldeviceOrgX=dox},Transform.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},Transform.prototype.setDeviceOrgY=function(doy){this.ldeviceOrgY=doy},Transform.prototype.getDeviceExtX=function(){return this.ldeviceExtX},Transform.prototype.setDeviceExtX=function(dex){this.ldeviceExtX=dex},Transform.prototype.getDeviceExtY=function(){return this.ldeviceExtY},Transform.prototype.setDeviceExtY=function(dey){this.ldeviceExtY=dey},Transform.prototype.transformX=function(x){var xDevice=0,worldExtX=this.lworldExtX;return 0!=worldExtX&&(xDevice=this.ldeviceOrgX+(x-this.lworldOrgX)*this.ldeviceExtX/worldExtX),xDevice},Transform.prototype.transformY=function(y){var yDevice=0,worldExtY=this.lworldExtY;return 0!=worldExtY&&(yDevice=this.ldeviceOrgY+(y-this.lworldOrgY)*this.ldeviceExtY/worldExtY),yDevice},Transform.prototype.inverseTransformX=function(x){var xWorld=0,deviceExtX=this.ldeviceExtX;return 0!=deviceExtX&&(xWorld=this.lworldOrgX+(x-this.ldeviceOrgX)*this.lworldExtX/deviceExtX),xWorld},Transform.prototype.inverseTransformY=function(y){var yWorld=0,deviceExtY=this.ldeviceExtY;return 0!=deviceExtY&&(yWorld=this.lworldOrgY+(y-this.ldeviceOrgY)*this.lworldExtY/deviceExtY),yWorld},Transform.prototype.inverseTransformPoint=function(inPoint){return new PointD(this.inverseTransformX(inPoint.x),this.inverseTransformY(inPoint.y))},module2.exports=Transform},function(module2,exports$12,__webpack_require__){var Layout2=__webpack_require__(15),FDLayoutConstants=__webpack_require__(7),LayoutConstants=__webpack_require__(0),IGeometry=__webpack_require__(8),IMath=__webpack_require__(9);function FDLayout(){Layout2.call(this),this.useSmartIdealEdgeLengthCalculation=FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=FDLayoutConstants.DEFAULT_EDGE_LENGTH,this.springConstant=FDLayoutConstants.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=FDLayoutConstants.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*FDLayoutConstants.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=FDLayoutConstants.MAX_ITERATIONS}for(var prop in FDLayout.prototype=Object.create(Layout2.prototype),Layout2)FDLayout[prop]=Layout2[prop];FDLayout.prototype.initParameters=function(){Layout2.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},FDLayout.prototype.calcIdealEdgeLengths=function(){for(var edge,lcaDepth,source,target,sizeOfSourceInLca,sizeOfTargetInLca,allEdges=this.getGraphManager().getAllEdges(),i=0;i<allEdges.length;i++)(edge=allEdges[i]).idealLength=this.idealEdgeLength,edge.isInterGraph&&(source=edge.getSource(),target=edge.getTarget(),sizeOfSourceInLca=edge.getSourceInLca().getEstimatedSize(),sizeOfTargetInLca=edge.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(edge.idealLength+=sizeOfSourceInLca+sizeOfTargetInLca-2*LayoutConstants.SIMPLE_NODE_SIZE),lcaDepth=edge.getLca().getInclusionTreeDepth(),edge.idealLength+=FDLayoutConstants.DEFAULT_EDGE_LENGTH*FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(source.getInclusionTreeDepth()+target.getInclusionTreeDepth()-2*lcaDepth))},FDLayout.prototype.initSpringEmbedder=function(){var s=this.getAllNodes().length;this.incremental?(s>FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*FDLayoutConstants.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(s-FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT)/(FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT-FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-FDLayoutConstants.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL):(s>FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR,1-(s-FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT)/(FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT-FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT)*(1-FDLayoutConstants.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=FDLayoutConstants.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},FDLayout.prototype.calcSpringForces=function(){for(var edge,lEdges=this.getAllEdges(),i=0;i<lEdges.length;i++)edge=lEdges[i],this.calcSpringForce(edge,edge.idealLength)},FDLayout.prototype.calcRepulsionForces=function(){var i,j,nodeA,nodeB,processedNodeSet,gridUpdateAllowed=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],forceToNodeSurroundingUpdate=arguments.length>1&&void 0!==arguments[1]&&arguments[1],lNodes=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD==1&&gridUpdateAllowed&&this.updateGrid(),processedNodeSet=new Set,i=0;i<lNodes.length;i++)nodeA=lNodes[i],this.calculateRepulsionForceOfANode(nodeA,processedNodeSet,gridUpdateAllowed,forceToNodeSurroundingUpdate),processedNodeSet.add(nodeA);else for(i=0;i<lNodes.length;i++)for(nodeA=lNodes[i],j=i+1;j<lNodes.length;j++)nodeB=lNodes[j],nodeA.getOwner()==nodeB.getOwner()&&this.calcRepulsionForce(nodeA,nodeB)},FDLayout.prototype.calcGravitationalForces=function(){for(var node,lNodes=this.getAllNodesToApplyGravitation(),i=0;i<lNodes.length;i++)node=lNodes[i],this.calcGravitationalForce(node)},FDLayout.prototype.moveNodes=function(){for(var lNodes=this.getAllNodes(),i=0;i<lNodes.length;i++)lNodes[i].move()},FDLayout.prototype.calcSpringForce=function(edge,idealLength){var length,springForce,springForceX,springForceY,sourceNode=edge.getSource(),targetNode=edge.getTarget();if(this.uniformLeafNodeSizes&&null==sourceNode.getChild()&&null==targetNode.getChild())edge.updateLengthSimple();else if(edge.updateLength(),edge.isOverlapingSourceAndTarget)return;0!=(length=edge.getLength())&&(springForceX=(springForce=this.springConstant*(length-idealLength))*(edge.lengthX/length),springForceY=springForce*(edge.lengthY/length),sourceNode.springForceX+=springForceX,sourceNode.springForceY+=springForceY,targetNode.springForceX-=springForceX,targetNode.springForceY-=springForceY)},FDLayout.prototype.calcRepulsionForce=function(nodeA,nodeB){var distanceX,distanceY,distanceSquared,distance,repulsionForce,repulsionForceX,repulsionForceY,rectA=nodeA.getRect(),rectB=nodeB.getRect(),overlapAmount=new Array(2),clipPoints=new Array(4);if(rectA.intersects(rectB)){IGeometry.calcSeparationAmount(rectA,rectB,overlapAmount,FDLayoutConstants.DEFAULT_EDGE_LENGTH/2),repulsionForceX=2*overlapAmount[0],repulsionForceY=2*overlapAmount[1];var childrenConstant=nodeA.noOfChildren*nodeB.noOfChildren/(nodeA.noOfChildren+nodeB.noOfChildren);nodeA.repulsionForceX-=childrenConstant*repulsionForceX,nodeA.repulsionForceY-=childrenConstant*repulsionForceY,nodeB.repulsionForceX+=childrenConstant*repulsionForceX,nodeB.repulsionForceY+=childrenConstant*repulsionForceY}else this.uniformLeafNodeSizes&&null==nodeA.getChild()&&null==nodeB.getChild()?(distanceX=rectB.getCenterX()-rectA.getCenterX(),distanceY=rectB.getCenterY()-rectA.getCenterY()):(IGeometry.getIntersection(rectA,rectB,clipPoints),distanceX=clipPoints[2]-clipPoints[0],distanceY=clipPoints[3]-clipPoints[1]),Math.abs(distanceX)<FDLayoutConstants.MIN_REPULSION_DIST&&(distanceX=IMath.sign(distanceX)*FDLayoutConstants.MIN_REPULSION_DIST),Math.abs(distanceY)<FDLayoutConstants.MIN_REPULSION_DIST&&(distanceY=IMath.sign(distanceY)*FDLayoutConstants.MIN_REPULSION_DIST),distanceSquared=distanceX*distanceX+distanceY*distanceY,distance=Math.sqrt(distanceSquared),repulsionForceX=(repulsionForce=this.repulsionConstant*nodeA.noOfChildren*nodeB.noOfChildren/distanceSquared)*distanceX/distance,repulsionForceY=repulsionForce*distanceY/distance,nodeA.repulsionForceX-=repulsionForceX,nodeA.repulsionForceY-=repulsionForceY,nodeB.repulsionForceX+=repulsionForceX,nodeB.repulsionForceY+=repulsionForceY},FDLayout.prototype.calcGravitationalForce=function(node){var ownerGraph,ownerCenterX,ownerCenterY,distanceX,distanceY,absDistanceX,absDistanceY,estimatedSize;ownerCenterX=((ownerGraph=node.getOwner()).getRight()+ownerGraph.getLeft())/2,ownerCenterY=(ownerGraph.getTop()+ownerGraph.getBottom())/2,distanceX=node.getCenterX()-ownerCenterX,distanceY=node.getCenterY()-ownerCenterY,absDistanceX=Math.abs(distanceX)+node.getWidth()/2,absDistanceY=Math.abs(distanceY)+node.getHeight()/2,node.getOwner()==this.graphManager.getRoot()?(absDistanceX>(estimatedSize=ownerGraph.getEstimatedSize()*this.gravityRangeFactor)||absDistanceY>estimatedSize)&&(node.gravitationForceX=-this.gravityConstant*distanceX,node.gravitationForceY=-this.gravityConstant*distanceY):(absDistanceX>(estimatedSize=ownerGraph.getEstimatedSize()*this.compoundGravityRangeFactor)||absDistanceY>estimatedSize)&&(node.gravitationForceX=-this.gravityConstant*distanceX*this.compoundGravityConstant,node.gravitationForceY=-this.gravityConstant*distanceY*this.compoundGravityConstant)},FDLayout.prototype.isConverged=function(){var converged,oscilating=!1;return this.totalIterations>this.maxIterations/3&&(oscilating=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),converged=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,converged||oscilating},FDLayout.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},FDLayout.prototype.calcNoOfChildrenForAllNodes=function(){for(var node,allNodes=this.graphManager.getAllNodes(),i=0;i<allNodes.length;i++)(node=allNodes[i]).noOfChildren=node.getNoOfChildren()},FDLayout.prototype.calcGrid=function(graph){var sizeX,sizeY;sizeX=parseInt(Math.ceil((graph.getRight()-graph.getLeft())/this.repulsionRange)),sizeY=parseInt(Math.ceil((graph.getBottom()-graph.getTop())/this.repulsionRange));for(var grid=new Array(sizeX),i=0;i<sizeX;i++)grid[i]=new Array(sizeY);for(i=0;i<sizeX;i++)for(var j=0;j<sizeY;j++)grid[i][j]=new Array;return grid},FDLayout.prototype.addNodeToGrid=function(v,left,top){var startX,finishX,startY,finishY;startX=parseInt(Math.floor((v.getRect().x-left)/this.repulsionRange)),finishX=parseInt(Math.floor((v.getRect().width+v.getRect().x-left)/this.repulsionRange)),startY=parseInt(Math.floor((v.getRect().y-top)/this.repulsionRange)),finishY=parseInt(Math.floor((v.getRect().height+v.getRect().y-top)/this.repulsionRange));for(var i=startX;i<=finishX;i++)for(var j=startY;j<=finishY;j++)this.grid[i][j].push(v),v.setGridCoordinates(startX,finishX,startY,finishY)},FDLayout.prototype.updateGrid=function(){var i,nodeA,lNodes=this.getAllNodes();for(this.grid=this.calcGrid(this.graphManager.getRoot()),i=0;i<lNodes.length;i++)nodeA=lNodes[i],this.addNodeToGrid(nodeA,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},FDLayout.prototype.calculateRepulsionForceOfANode=function(nodeA,processedNodeSet,gridUpdateAllowed,forceToNodeSurroundingUpdate){if(this.totalIterations%FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD==1&&gridUpdateAllowed||forceToNodeSurroundingUpdate){var nodeB,surrounding=new Set;nodeA.surrounding=new Array;for(var grid=this.grid,i=nodeA.startX-1;i<nodeA.finishX+2;i++)for(var j=nodeA.startY-1;j<nodeA.finishY+2;j++)if(!(i<0||j<0||i>=grid.length||j>=grid[0].length))for(var k=0;k<grid[i][j].length;k++)if(nodeB=grid[i][j][k],nodeA.getOwner()==nodeB.getOwner()&&nodeA!=nodeB&&!processedNodeSet.has(nodeB)&&!surrounding.has(nodeB)){var distanceX=Math.abs(nodeA.getCenterX()-nodeB.getCenterX())-(nodeA.getWidth()/2+nodeB.getWidth()/2),distanceY=Math.abs(nodeA.getCenterY()-nodeB.getCenterY())-(nodeA.getHeight()/2+nodeB.getHeight()/2);distanceX<=this.repulsionRange&&distanceY<=this.repulsionRange&&surrounding.add(nodeB)}nodeA.surrounding=[].concat(function(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}(surrounding))}for(i=0;i<nodeA.surrounding.length;i++)this.calcRepulsionForce(nodeA,nodeA.surrounding[i])},FDLayout.prototype.calcRepulsionRange=function(){return 0},module2.exports=FDLayout},function(module2,exports$12,__webpack_require__){var LEdge=__webpack_require__(1),FDLayoutConstants=__webpack_require__(7);function FDLayoutEdge(source,target,vEdge){LEdge.call(this,source,target,vEdge),this.idealLength=FDLayoutConstants.DEFAULT_EDGE_LENGTH}for(var prop in FDLayoutEdge.prototype=Object.create(LEdge.prototype),LEdge)FDLayoutEdge[prop]=LEdge[prop];module2.exports=FDLayoutEdge},function(module2,exports$12,__webpack_require__){var LNode=__webpack_require__(3);function FDLayoutNode(gm,loc,size,vNode){LNode.call(this,gm,loc,size,vNode),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var prop in FDLayoutNode.prototype=Object.create(LNode.prototype),LNode)FDLayoutNode[prop]=LNode[prop];FDLayoutNode.prototype.setGridCoordinates=function(_startX,_finishX,_startY,_finishY){this.startX=_startX,this.finishX=_finishX,this.startY=_startY,this.finishY=_finishY},module2.exports=FDLayoutNode},function(module2,exports$12,__webpack_require__){function DimensionD2(width,height){this.width=0,this.height=0,null!==width&&null!==height&&(this.height=height,this.width=width)}DimensionD2.prototype.getWidth=function(){return this.width},DimensionD2.prototype.setWidth=function(width){this.width=width},DimensionD2.prototype.getHeight=function(){return this.height},DimensionD2.prototype.setHeight=function(height){this.height=height},module2.exports=DimensionD2},function(module2,exports$12,__webpack_require__){var UniqueIDGeneretor=__webpack_require__(14);function HashMap(){this.map={},this.keys=[]}HashMap.prototype.put=function(key,value){var theId=UniqueIDGeneretor.createID(key);this.contains(theId)||(this.map[theId]=value,this.keys.push(key))},HashMap.prototype.contains=function(key){return UniqueIDGeneretor.createID(key),null!=this.map[key]},HashMap.prototype.get=function(key){var theId=UniqueIDGeneretor.createID(key);return this.map[theId]},HashMap.prototype.keySet=function(){return this.keys},module2.exports=HashMap},function(module2,exports$12,__webpack_require__){var UniqueIDGeneretor=__webpack_require__(14);function HashSet(){this.set={}}HashSet.prototype.add=function(obj){var theId=UniqueIDGeneretor.createID(obj);this.contains(theId)||(this.set[theId]=obj)},HashSet.prototype.remove=function(obj){delete this.set[UniqueIDGeneretor.createID(obj)]},HashSet.prototype.clear=function(){this.set={}},HashSet.prototype.contains=function(obj){return this.set[UniqueIDGeneretor.createID(obj)]==obj},HashSet.prototype.isEmpty=function(){return 0===this.size()},HashSet.prototype.size=function(){return Object.keys(this.set).length},HashSet.prototype.addAllTo=function(list){for(var keys=Object.keys(this.set),length=keys.length,i=0;i<length;i++)list.push(this.set[keys[i]])},HashSet.prototype.size=function(){return Object.keys(this.set).length},HashSet.prototype.addAll=function(list){for(var s=list.length,i=0;i<s;i++){var v=list[i];this.add(v)}},module2.exports=HashSet},function(module2,exports$12,__webpack_require__){var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),LinkedList=__webpack_require__(11),Quicksort=function(){function Quicksort2(A,compareFunction){!function(instance2,Constructor){if(!(instance2 instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,Quicksort2),null===compareFunction&&void 0===compareFunction||(this.compareFunction=this._defaultCompareFunction);var length=void 0;length=A instanceof LinkedList?A.size():A.length,this._quicksort(A,0,length-1)}return _createClass(Quicksort2,[{key:"_quicksort",value:function(A,p,r){if(p<r){var q=this._partition(A,p,r);this._quicksort(A,p,q),this._quicksort(A,q+1,r)}}},{key:"_partition",value:function(A,p,r){for(var x=this._get(A,p),i=p,j=r;;){for(;this.compareFunction(x,this._get(A,j));)j--;for(;this.compareFunction(this._get(A,i),x);)i++;if(!(i<j))return j;this._swap(A,i,j),i++,j--}}},{key:"_get",value:function(object,index){return object instanceof LinkedList?object.get_object_at(index):object[index]}},{key:"_set",value:function(object,index,value){object instanceof LinkedList?object.set_object_at(index,value):object[index]=value}},{key:"_swap",value:function(A,i,j){var temp=this._get(A,i);this._set(A,i,this._get(A,j)),this._set(A,j,temp)}},{key:"_defaultCompareFunction",value:function(a,b){return b>a}}]),Quicksort2}();module2.exports=Quicksort},function(module2,exports$12,__webpack_require__){var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),NeedlemanWunsch=function(){function NeedlemanWunsch2(sequence1,sequence2){var match_score=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,mismatch_penalty=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,gap_penalty=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;!function(instance2,Constructor){if(!(instance2 instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,NeedlemanWunsch2),this.sequence1=sequence1,this.sequence2=sequence2,this.match_score=match_score,this.mismatch_penalty=mismatch_penalty,this.gap_penalty=gap_penalty,this.iMax=sequence1.length+1,this.jMax=sequence2.length+1,this.grid=new Array(this.iMax);for(var i=0;i<this.iMax;i++){this.grid[i]=new Array(this.jMax);for(var j=0;j<this.jMax;j++)this.grid[i][j]=0}this.tracebackGrid=new Array(this.iMax);for(var _i=0;_i<this.iMax;_i++){this.tracebackGrid[_i]=new Array(this.jMax);for(var _j=0;_j<this.jMax;_j++)this.tracebackGrid[_i][_j]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return _createClass(NeedlemanWunsch2,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var j=1;j<this.jMax;j++)this.grid[0][j]=this.grid[0][j-1]+this.gap_penalty,this.tracebackGrid[0][j]=[!1,!1,!0];for(var i=1;i<this.iMax;i++)this.grid[i][0]=this.grid[i-1][0]+this.gap_penalty,this.tracebackGrid[i][0]=[!1,!0,!1];for(var _i2=1;_i2<this.iMax;_i2++)for(var _j2=1;_j2<this.jMax;_j2++){var maxOf=[this.sequence1[_i2-1]===this.sequence2[_j2-1]?this.grid[_i2-1][_j2-1]+this.match_score:this.grid[_i2-1][_j2-1]+this.mismatch_penalty,this.grid[_i2-1][_j2]+this.gap_penalty,this.grid[_i2][_j2-1]+this.gap_penalty],indices=this.arrayAllMaxIndexes(maxOf);this.grid[_i2][_j2]=maxOf[indices[0]],this.tracebackGrid[_i2][_j2]=[indices.includes(0),indices.includes(1),indices.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var inProcessAlignments=[];for(inProcessAlignments.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});inProcessAlignments[0];){var current=inProcessAlignments[0],directions=this.tracebackGrid[current.pos[0]][current.pos[1]];directions[0]&&inProcessAlignments.push({pos:[current.pos[0]-1,current.pos[1]-1],seq1:this.sequence1[current.pos[0]-1]+current.seq1,seq2:this.sequence2[current.pos[1]-1]+current.seq2}),directions[1]&&inProcessAlignments.push({pos:[current.pos[0]-1,current.pos[1]],seq1:this.sequence1[current.pos[0]-1]+current.seq1,seq2:"-"+current.seq2}),directions[2]&&inProcessAlignments.push({pos:[current.pos[0],current.pos[1]-1],seq1:"-"+current.seq1,seq2:this.sequence2[current.pos[1]-1]+current.seq2}),0===current.pos[0]&&0===current.pos[1]&&this.alignments.push({sequence1:current.seq1,sequence2:current.seq2}),inProcessAlignments.shift()}return this.alignments}},{key:"getAllIndexes",value:function(arr,val){for(var indexes=[],i=-1;-1!==(i=arr.indexOf(val,i+1));)indexes.push(i);return indexes}},{key:"arrayAllMaxIndexes",value:function(array){return this.getAllIndexes(array,Math.max.apply(null,array))}}]),NeedlemanWunsch2}();module2.exports=NeedlemanWunsch},function(module2,exports$12,__webpack_require__){var layoutBase2=function(){};layoutBase2.FDLayout=__webpack_require__(18),layoutBase2.FDLayoutConstants=__webpack_require__(7),layoutBase2.FDLayoutEdge=__webpack_require__(19),layoutBase2.FDLayoutNode=__webpack_require__(20),layoutBase2.DimensionD=__webpack_require__(21),layoutBase2.HashMap=__webpack_require__(22),layoutBase2.HashSet=__webpack_require__(23),layoutBase2.IGeometry=__webpack_require__(8),layoutBase2.IMath=__webpack_require__(9),layoutBase2.Integer=__webpack_require__(10),layoutBase2.Point=__webpack_require__(12),layoutBase2.PointD=__webpack_require__(4),layoutBase2.RandomSeed=__webpack_require__(16),layoutBase2.RectangleD=__webpack_require__(13),layoutBase2.Transform=__webpack_require__(17),layoutBase2.UniqueIDGeneretor=__webpack_require__(14),layoutBase2.Quicksort=__webpack_require__(24),layoutBase2.LinkedList=__webpack_require__(11),layoutBase2.LGraphObject=__webpack_require__(2),layoutBase2.LGraph=__webpack_require__(5),layoutBase2.LEdge=__webpack_require__(1),layoutBase2.LGraphManager=__webpack_require__(6),layoutBase2.LNode=__webpack_require__(3),layoutBase2.Layout=__webpack_require__(15),layoutBase2.LayoutConstants=__webpack_require__(0),layoutBase2.NeedlemanWunsch=__webpack_require__(25),module2.exports=layoutBase2},function(module2,exports$12,__webpack_require__){function Emitter(){this.listeners=[]}var p=Emitter.prototype;p.addListener=function(event,callback){this.listeners.push({event:event,callback:callback})},p.removeListener=function(event,callback){for(var i=this.listeners.length;i>=0;i--){var l=this.listeners[i];l.event===event&&l.callback===callback&&this.listeners.splice(i,1)}},p.emit=function(event,data){for(var i=0;i<this.listeners.length;i++){var l=this.listeners[i];event===l.event&&l.callback(data)}},module2.exports=Emitter}])},layoutBase$1.exports=factory());var factory}var hasRequiredCoseBase;var hasRequiredCytoscapeCoseBilkent,__WEBPACK_EXTERNAL_MODULE_0__;const coseBilkent=getDefaultExportFromCjs((hasRequiredCytoscapeCoseBilkent||(hasRequiredCytoscapeCoseBilkent=1,cytoscapeCoseBilkent$1.exports=(__WEBPACK_EXTERNAL_MODULE_0__=hasRequiredCoseBase?coseBase$1.exports:(hasRequiredCoseBase=1,coseBase$1.exports=function(__WEBPACK_EXTERNAL_MODULE_0__){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module2=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module2.exports,module2,module2.exports,__webpack_require__),module2.l=!0,module2.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports$12,name,getter){__webpack_require__.o(exports$12,name)||Object.defineProperty(exports$12,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module2){var getter=module2&&module2.__esModule?function(){return module2.default}:function(){return module2};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=7)}([function(module2,exports$12){module2.exports=__WEBPACK_EXTERNAL_MODULE_0__},function(module2,exports$12,__webpack_require__){var FDLayoutConstants=__webpack_require__(0).FDLayoutConstants;function CoSEConstants(){}for(var prop in FDLayoutConstants)CoSEConstants[prop]=FDLayoutConstants[prop];CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,CoSEConstants.DEFAULT_RADIAL_SEPARATION=FDLayoutConstants.DEFAULT_EDGE_LENGTH,CoSEConstants.DEFAULT_COMPONENT_SEPERATION=60,CoSEConstants.TILE=!0,CoSEConstants.TILING_PADDING_VERTICAL=10,CoSEConstants.TILING_PADDING_HORIZONTAL=10,CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL=!1,module2.exports=CoSEConstants},function(module2,exports$12,__webpack_require__){var FDLayoutEdge=__webpack_require__(0).FDLayoutEdge;function CoSEEdge(source,target,vEdge){FDLayoutEdge.call(this,source,target,vEdge)}for(var prop in CoSEEdge.prototype=Object.create(FDLayoutEdge.prototype),FDLayoutEdge)CoSEEdge[prop]=FDLayoutEdge[prop];module2.exports=CoSEEdge},function(module2,exports$12,__webpack_require__){var LGraph=__webpack_require__(0).LGraph;function CoSEGraph(parent,graphMgr,vGraph){LGraph.call(this,parent,graphMgr,vGraph)}for(var prop in CoSEGraph.prototype=Object.create(LGraph.prototype),LGraph)CoSEGraph[prop]=LGraph[prop];module2.exports=CoSEGraph},function(module2,exports$12,__webpack_require__){var LGraphManager=__webpack_require__(0).LGraphManager;function CoSEGraphManager(layout){LGraphManager.call(this,layout)}for(var prop in CoSEGraphManager.prototype=Object.create(LGraphManager.prototype),LGraphManager)CoSEGraphManager[prop]=LGraphManager[prop];module2.exports=CoSEGraphManager},function(module2,exports$12,__webpack_require__){var FDLayoutNode=__webpack_require__(0).FDLayoutNode,IMath=__webpack_require__(0).IMath;function CoSENode(gm,loc,size,vNode){FDLayoutNode.call(this,gm,loc,size,vNode)}for(var prop in CoSENode.prototype=Object.create(FDLayoutNode.prototype),FDLayoutNode)CoSENode[prop]=FDLayoutNode[prop];CoSENode.prototype.move=function(){var layout=this.graphManager.getLayout();this.displacementX=layout.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=layout.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>layout.coolingFactor*layout.maxNodeDisplacement&&(this.displacementX=layout.coolingFactor*layout.maxNodeDisplacement*IMath.sign(this.displacementX)),Math.abs(this.displacementY)>layout.coolingFactor*layout.maxNodeDisplacement&&(this.displacementY=layout.coolingFactor*layout.maxNodeDisplacement*IMath.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),layout.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},CoSENode.prototype.propogateDisplacementToChildren=function(dX,dY){for(var node,nodes=this.getChild().getNodes(),i=0;i<nodes.length;i++)null==(node=nodes[i]).getChild()?(node.moveBy(dX,dY),node.displacementX+=dX,node.displacementY+=dY):node.propogateDisplacementToChildren(dX,dY)},CoSENode.prototype.setPred1=function(pred12){this.pred1=pred12},CoSENode.prototype.getPred1=function(){return pred1},CoSENode.prototype.getPred2=function(){return pred2},CoSENode.prototype.setNext=function(next2){this.next=next2},CoSENode.prototype.getNext=function(){return next},CoSENode.prototype.setProcessed=function(processed2){this.processed=processed2},CoSENode.prototype.isProcessed=function(){return processed},module2.exports=CoSENode},function(module2,exports$12,__webpack_require__){var FDLayout=__webpack_require__(0).FDLayout,CoSEGraphManager=__webpack_require__(4),CoSEGraph=__webpack_require__(3),CoSENode=__webpack_require__(5),CoSEEdge=__webpack_require__(2),CoSEConstants=__webpack_require__(1),FDLayoutConstants=__webpack_require__(0).FDLayoutConstants,LayoutConstants=__webpack_require__(0).LayoutConstants,Point2=__webpack_require__(0).Point,PointD=__webpack_require__(0).PointD,Layout2=__webpack_require__(0).Layout,Integer=__webpack_require__(0).Integer,IGeometry=__webpack_require__(0).IGeometry,LGraph=__webpack_require__(0).LGraph,Transform=__webpack_require__(0).Transform;function CoSELayout(){FDLayout.call(this),this.toBeTiled={}}for(var prop in CoSELayout.prototype=Object.create(FDLayout.prototype),FDLayout)CoSELayout[prop]=FDLayout[prop];CoSELayout.prototype.newGraphManager=function(){var gm=new CoSEGraphManager(this);return this.graphManager=gm,gm},CoSELayout.prototype.newGraph=function(vGraph){return new CoSEGraph(null,this.graphManager,vGraph)},CoSELayout.prototype.newNode=function(vNode){return new CoSENode(this.graphManager,vNode)},CoSELayout.prototype.newEdge=function(vEdge){return new CoSEEdge(null,null,vEdge)},CoSELayout.prototype.initParameters=function(){FDLayout.prototype.initParameters.call(this,arguments),this.isSubLayout||(CoSEConstants.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=CoSEConstants.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=FDLayoutConstants.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=FDLayoutConstants.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/FDLayoutConstants.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=FDLayoutConstants.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},CoSELayout.prototype.layout=function(){return LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},CoSELayout.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental)CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),allNodes=new Set(this.getAllNodes()),intersection=this.nodesWithGravity.filter(function(x){return allNodes.has(x)}),this.graphManager.setAllNodesToApplyGravitation(intersection));else{var forest=this.getFlatForest();if(forest.length>0)this.positionNodesRadially(forest);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var allNodes=new Set(this.getAllNodes()),intersection=this.nodesWithGravity.filter(function(x){return allNodes.has(x)});this.graphManager.setAllNodesToApplyGravitation(intersection),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},CoSELayout.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%FDLayoutConstants.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var allNodes=new Set(this.getAllNodes()),intersection=this.nodesWithGravity.filter(function(x){return allNodes.has(x)});this.graphManager.setAllNodesToApplyGravitation(intersection),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var gridUpdateAllowed=!this.isTreeGrowing&&!this.isGrowthFinished,forceToNodeSurroundingUpdate=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(gridUpdateAllowed,forceToNodeSurroundingUpdate),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},CoSELayout.prototype.getPositionsData=function(){for(var allNodes=this.graphManager.getAllNodes(),pData={},i=0;i<allNodes.length;i++){var rect=allNodes[i].rect,id=allNodes[i].id;pData[id]={id:id,x:rect.getCenterX(),y:rect.getCenterY(),w:rect.width,h:rect.height}}return pData},CoSELayout.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var layoutEnded=!1;if("during"===FDLayoutConstants.ANIMATE)this.emit("layoutstarted");else{for(;!layoutEnded;)layoutEnded=this.tick();this.graphManager.updateBounds()}},CoSELayout.prototype.calculateNodesToApplyGravitationTo=function(){var graph,i,nodeList=[],graphs=this.graphManager.getGraphs(),size=graphs.length;for(i=0;i<size;i++)(graph=graphs[i]).updateConnected(),graph.isConnected||(nodeList=nodeList.concat(graph.getNodes()));return nodeList},CoSELayout.prototype.createBendpoints=function(){var edges=[];edges=edges.concat(this.graphManager.getAllEdges());var i,visited=new Set;for(i=0;i<edges.length;i++){var edge=edges[i];if(!visited.has(edge)){var source=edge.getSource(),target=edge.getTarget();if(source==target)edge.getBendpoints().push(new PointD),edge.getBendpoints().push(new PointD),this.createDummyNodesForBendpoints(edge),visited.add(edge);else{var edgeList=[];if(edgeList=(edgeList=edgeList.concat(source.getEdgeListToNode(target))).concat(target.getEdgeListToNode(source)),!visited.has(edgeList[0])){var k;if(edgeList.length>1)for(k=0;k<edgeList.length;k++){var multiEdge=edgeList[k];multiEdge.getBendpoints().push(new PointD),this.createDummyNodesForBendpoints(multiEdge)}edgeList.forEach(function(edge2){visited.add(edge2)})}}}if(visited.size==edges.length)break}},CoSELayout.prototype.positionNodesRadially=function(forest){for(var currentStartingPoint=new Point2(0,0),numberOfColumns=Math.ceil(Math.sqrt(forest.length)),height=0,currentY=0,currentX=0,point=new PointD(0,0),i=0;i<forest.length;i++){i%numberOfColumns==0&&(currentX=0,currentY=height,0!=i&&(currentY+=CoSEConstants.DEFAULT_COMPONENT_SEPERATION),height=0);var tree=forest[i],centerNode=Layout2.findCenterOfTree(tree);currentStartingPoint.x=currentX,currentStartingPoint.y=currentY,(point=CoSELayout.radialLayout(tree,centerNode,currentStartingPoint)).y>height&&(height=Math.floor(point.y)),currentX=Math.floor(point.x+CoSEConstants.DEFAULT_COMPONENT_SEPERATION)}this.transform(new PointD(LayoutConstants.WORLD_CENTER_X-point.x/2,LayoutConstants.WORLD_CENTER_Y-point.y/2))},CoSELayout.radialLayout=function(tree,centerNode,startingPoint){var radialSep=Math.max(this.maxDiagonalInTree(tree),CoSEConstants.DEFAULT_RADIAL_SEPARATION);CoSELayout.branchRadialLayout(centerNode,null,0,359,0,radialSep);var bounds=LGraph.calculateBounds(tree),transform=new Transform;transform.setDeviceOrgX(bounds.getMinX()),transform.setDeviceOrgY(bounds.getMinY()),transform.setWorldOrgX(startingPoint.x),transform.setWorldOrgY(startingPoint.y);for(var i=0;i<tree.length;i++)tree[i].transform(transform);var bottomRight=new PointD(bounds.getMaxX(),bounds.getMaxY());return transform.inverseTransformPoint(bottomRight)},CoSELayout.branchRadialLayout=function(node,parentOfNode,startAngle,endAngle,distance,radialSeparation){var halfInterval=(endAngle-startAngle+1)/2;halfInterval<0&&(halfInterval+=180);var teta=(halfInterval+startAngle)%360*IGeometry.TWO_PI/360,x_=distance*Math.cos(teta),y_=distance*Math.sin(teta);node.setCenter(x_,y_);var neighborEdges=[],childCount=(neighborEdges=neighborEdges.concat(node.getEdges())).length;null!=parentOfNode&&childCount--;for(var startIndex,branchCount=0,incEdgesCount=neighborEdges.length,edges=node.getEdgesBetween(parentOfNode);edges.length>1;){var temp=edges[0];edges.splice(0,1);var index=neighborEdges.indexOf(temp);index>=0&&neighborEdges.splice(index,1),incEdgesCount--,childCount--}startIndex=null!=parentOfNode?(neighborEdges.indexOf(edges[0])+1)%incEdgesCount:0;for(var stepAngle=Math.abs(endAngle-startAngle)/childCount,i=startIndex;branchCount!=childCount;i=++i%incEdgesCount){var currentNeighbor=neighborEdges[i].getOtherEnd(node);if(currentNeighbor!=parentOfNode){var childStartAngle=(startAngle+branchCount*stepAngle)%360,childEndAngle=(childStartAngle+stepAngle)%360;CoSELayout.branchRadialLayout(currentNeighbor,node,childStartAngle,childEndAngle,distance+radialSeparation,radialSeparation),branchCount++}}},CoSELayout.maxDiagonalInTree=function(tree){for(var maxDiagonal=Integer.MIN_VALUE,i=0;i<tree.length;i++){var diagonal=tree[i].getDiagonal();diagonal>maxDiagonal&&(maxDiagonal=diagonal)}return maxDiagonal},CoSELayout.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},CoSELayout.prototype.groupZeroDegreeMembers=function(){var self=this,tempMemberGroups={};this.memberGroups={},this.idToDummyNode={};for(var zeroDegree=[],allNodes=this.graphManager.getAllNodes(),i=0;i<allNodes.length;i++){var parent=(node=allNodes[i]).getParent();0!==this.getNodeDegreeWithChildren(node)||null!=parent.id&&this.getToBeTiled(parent)||zeroDegree.push(node)}for(i=0;i<zeroDegree.length;i++){var node,p_id=(node=zeroDegree[i]).getParent().id;void 0===tempMemberGroups[p_id]&&(tempMemberGroups[p_id]=[]),tempMemberGroups[p_id]=tempMemberGroups[p_id].concat(node)}Object.keys(tempMemberGroups).forEach(function(p_id2){if(tempMemberGroups[p_id2].length>1){var dummyCompoundId="DummyCompound_"+p_id2;self.memberGroups[dummyCompoundId]=tempMemberGroups[p_id2];var parent2=tempMemberGroups[p_id2][0].getParent(),dummyCompound=new CoSENode(self.graphManager);dummyCompound.id=dummyCompoundId,dummyCompound.paddingLeft=parent2.paddingLeft||0,dummyCompound.paddingRight=parent2.paddingRight||0,dummyCompound.paddingBottom=parent2.paddingBottom||0,dummyCompound.paddingTop=parent2.paddingTop||0,self.idToDummyNode[dummyCompoundId]=dummyCompound;var dummyParentGraph=self.getGraphManager().add(self.newGraph(),dummyCompound),parentGraph=parent2.getChild();parentGraph.add(dummyCompound);for(var i2=0;i2<tempMemberGroups[p_id2].length;i2++){var node2=tempMemberGroups[p_id2][i2];parentGraph.remove(node2),dummyParentGraph.add(node2)}}})},CoSELayout.prototype.clearCompounds=function(){var childGraphMap={},idToNode={};this.performDFSOnCompounds();for(var i=0;i<this.compoundOrder.length;i++)idToNode[this.compoundOrder[i].id]=this.compoundOrder[i],childGraphMap[this.compoundOrder[i].id]=[].concat(this.compoundOrder[i].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[i].getChild()),this.compoundOrder[i].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(childGraphMap,idToNode)},CoSELayout.prototype.clearZeroDegreeMembers=function(){var self=this,tiledZeroDegreePack=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach(function(id){var compoundNode=self.idToDummyNode[id];tiledZeroDegreePack[id]=self.tileNodes(self.memberGroups[id],compoundNode.paddingLeft+compoundNode.paddingRight),compoundNode.rect.width=tiledZeroDegreePack[id].width,compoundNode.rect.height=tiledZeroDegreePack[id].height})},CoSELayout.prototype.repopulateCompounds=function(){for(var i=this.compoundOrder.length-1;i>=0;i--){var lCompoundNode=this.compoundOrder[i],id=lCompoundNode.id,horizontalMargin=lCompoundNode.paddingLeft,verticalMargin=lCompoundNode.paddingTop;this.adjustLocations(this.tiledMemberPack[id],lCompoundNode.rect.x,lCompoundNode.rect.y,horizontalMargin,verticalMargin)}},CoSELayout.prototype.repopulateZeroDegreeMembers=function(){var self=this,tiledPack=this.tiledZeroDegreePack;Object.keys(tiledPack).forEach(function(id){var compoundNode=self.idToDummyNode[id],horizontalMargin=compoundNode.paddingLeft,verticalMargin=compoundNode.paddingTop;self.adjustLocations(tiledPack[id],compoundNode.rect.x,compoundNode.rect.y,horizontalMargin,verticalMargin)})},CoSELayout.prototype.getToBeTiled=function(node){var id=node.id;if(null!=this.toBeTiled[id])return this.toBeTiled[id];var childGraph=node.getChild();if(null==childGraph)return this.toBeTiled[id]=!1,!1;for(var children=childGraph.getNodes(),i=0;i<children.length;i++){var theChild=children[i];if(this.getNodeDegree(theChild)>0)return this.toBeTiled[id]=!1,!1;if(null!=theChild.getChild()){if(!this.getToBeTiled(theChild))return this.toBeTiled[id]=!1,!1}else this.toBeTiled[theChild.id]=!1}return this.toBeTiled[id]=!0,!0},CoSELayout.prototype.getNodeDegree=function(node){node.id;for(var edges=node.getEdges(),degree=0,i=0;i<edges.length;i++){var edge=edges[i];edge.getSource().id!==edge.getTarget().id&&(degree+=1)}return degree},CoSELayout.prototype.getNodeDegreeWithChildren=function(node){var degree=this.getNodeDegree(node);if(null==node.getChild())return degree;for(var children=node.getChild().getNodes(),i=0;i<children.length;i++){var child=children[i];degree+=this.getNodeDegreeWithChildren(child)}return degree},CoSELayout.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},CoSELayout.prototype.fillCompexOrderByDFS=function(children){for(var i=0;i<children.length;i++){var child=children[i];null!=child.getChild()&&this.fillCompexOrderByDFS(child.getChild().getNodes()),this.getToBeTiled(child)&&this.compoundOrder.push(child)}},CoSELayout.prototype.adjustLocations=function(organization,x,y,compoundHorizontalMargin,compoundVerticalMargin){y+=compoundVerticalMargin;for(var left=x+=compoundHorizontalMargin,i=0;i<organization.rows.length;i++){var row=organization.rows[i];x=left;for(var maxHeight=0,j=0;j<row.length;j++){var lnode=row[j];lnode.rect.x=x,lnode.rect.y=y,x+=lnode.rect.width+organization.horizontalPadding,lnode.rect.height>maxHeight&&(maxHeight=lnode.rect.height)}y+=maxHeight+organization.verticalPadding}},CoSELayout.prototype.tileCompoundMembers=function(childGraphMap,idToNode){var self=this;this.tiledMemberPack=[],Object.keys(childGraphMap).forEach(function(id){var compoundNode=idToNode[id];self.tiledMemberPack[id]=self.tileNodes(childGraphMap[id],compoundNode.paddingLeft+compoundNode.paddingRight),compoundNode.rect.width=self.tiledMemberPack[id].width,compoundNode.rect.height=self.tiledMemberPack[id].height})},CoSELayout.prototype.tileNodes=function(nodes,minWidth){var organization={rows:[],rowWidth:[],rowHeight:[],width:0,height:minWidth,verticalPadding:CoSEConstants.TILING_PADDING_VERTICAL,horizontalPadding:CoSEConstants.TILING_PADDING_HORIZONTAL};nodes.sort(function(n1,n2){return n1.rect.width*n1.rect.height>n2.rect.width*n2.rect.height?-1:n1.rect.width*n1.rect.height<n2.rect.width*n2.rect.height?1:0});for(var i=0;i<nodes.length;i++){var lNode=nodes[i];0==organization.rows.length?this.insertNodeToRow(organization,lNode,0,minWidth):this.canAddHorizontal(organization,lNode.rect.width,lNode.rect.height)?this.insertNodeToRow(organization,lNode,this.getShortestRowIndex(organization),minWidth):this.insertNodeToRow(organization,lNode,organization.rows.length,minWidth),this.shiftToLastRow(organization)}return organization},CoSELayout.prototype.insertNodeToRow=function(organization,node,rowIndex,minWidth){var minCompoundSize=minWidth;rowIndex==organization.rows.length&&(organization.rows.push([]),organization.rowWidth.push(minCompoundSize),organization.rowHeight.push(0));var w=organization.rowWidth[rowIndex]+node.rect.width;organization.rows[rowIndex].length>0&&(w+=organization.horizontalPadding),organization.rowWidth[rowIndex]=w,organization.width<w&&(organization.width=w);var h=node.rect.height;rowIndex>0&&(h+=organization.verticalPadding);var extraHeight=0;h>organization.rowHeight[rowIndex]&&(extraHeight=organization.rowHeight[rowIndex],organization.rowHeight[rowIndex]=h,extraHeight=organization.rowHeight[rowIndex]-extraHeight),organization.height+=extraHeight,organization.rows[rowIndex].push(node)},CoSELayout.prototype.getShortestRowIndex=function(organization){for(var r=-1,min=Number.MAX_VALUE,i=0;i<organization.rows.length;i++)organization.rowWidth[i]<min&&(r=i,min=organization.rowWidth[i]);return r},CoSELayout.prototype.getLongestRowIndex=function(organization){for(var r=-1,max=Number.MIN_VALUE,i=0;i<organization.rows.length;i++)organization.rowWidth[i]>max&&(r=i,max=organization.rowWidth[i]);return r},CoSELayout.prototype.canAddHorizontal=function(organization,extraWidth,extraHeight){var sri=this.getShortestRowIndex(organization);if(sri<0)return!0;var min=organization.rowWidth[sri];if(min+organization.horizontalPadding+extraWidth<=organization.width)return!0;var add_to_row_ratio,add_new_row_ratio,hDiff=0;return organization.rowHeight[sri]<extraHeight&&sri>0&&(hDiff=extraHeight+organization.verticalPadding-organization.rowHeight[sri]),add_to_row_ratio=organization.width-min>=extraWidth+organization.horizontalPadding?(organization.height+hDiff)/(min+extraWidth+organization.horizontalPadding):(organization.height+hDiff)/organization.width,hDiff=extraHeight+organization.verticalPadding,(add_new_row_ratio=organization.width<extraWidth?(organization.height+hDiff)/extraWidth:(organization.height+hDiff)/organization.width)<1&&(add_new_row_ratio=1/add_new_row_ratio),add_to_row_ratio<1&&(add_to_row_ratio=1/add_to_row_ratio),add_to_row_ratio<add_new_row_ratio},CoSELayout.prototype.shiftToLastRow=function(organization){var longest=this.getLongestRowIndex(organization),last=organization.rowWidth.length-1,row=organization.rows[longest],node=row[row.length-1],diff=node.width+organization.horizontalPadding;if(organization.width-organization.rowWidth[last]>diff&&longest!=last){row.splice(-1,1),organization.rows[last].push(node),organization.rowWidth[longest]=organization.rowWidth[longest]-diff,organization.rowWidth[last]=organization.rowWidth[last]+diff,organization.width=organization.rowWidth[instance.getLongestRowIndex(organization)];for(var maxHeight=Number.MIN_VALUE,i=0;i<row.length;i++)row[i].height>maxHeight&&(maxHeight=row[i].height);longest>0&&(maxHeight+=organization.verticalPadding);var prevTotal=organization.rowHeight[longest]+organization.rowHeight[last];organization.rowHeight[longest]=maxHeight,organization.rowHeight[last]<node.height+organization.verticalPadding&&(organization.rowHeight[last]=node.height+organization.verticalPadding);var finalTotal=organization.rowHeight[longest]+organization.rowHeight[last];organization.height+=finalTotal-prevTotal,this.shiftToLastRow(organization)}},CoSELayout.prototype.tilingPreLayout=function(){CoSEConstants.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},CoSELayout.prototype.tilingPostLayout=function(){CoSEConstants.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},CoSELayout.prototype.reduceTrees=function(){for(var node,prunedNodesAll=[],containsLeaf=!0;containsLeaf;){var allNodes=this.graphManager.getAllNodes(),prunedNodesInStepTemp=[];containsLeaf=!1;for(var i=0;i<allNodes.length;i++)1!=(node=allNodes[i]).getEdges().length||node.getEdges()[0].isInterGraph||null!=node.getChild()||(prunedNodesInStepTemp.push([node,node.getEdges()[0],node.getOwner()]),containsLeaf=!0);if(1==containsLeaf){for(var prunedNodesInStep=[],j=0;j<prunedNodesInStepTemp.length;j++)1==prunedNodesInStepTemp[j][0].getEdges().length&&(prunedNodesInStep.push(prunedNodesInStepTemp[j]),prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]));prunedNodesAll.push(prunedNodesInStep),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=prunedNodesAll},CoSELayout.prototype.growTree=function(prunedNodesAll){for(var nodeData,prunedNodesInStep=prunedNodesAll[prunedNodesAll.length-1],i=0;i<prunedNodesInStep.length;i++)nodeData=prunedNodesInStep[i],this.findPlaceforPrunedNode(nodeData),nodeData[2].add(nodeData[0]),nodeData[2].add(nodeData[1],nodeData[1].source,nodeData[1].target);prunedNodesAll.splice(prunedNodesAll.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},CoSELayout.prototype.findPlaceforPrunedNode=function(nodeData){var gridForPrunedNode,nodeToConnect,prunedNode=nodeData[0],startGridX=(nodeToConnect=prunedNode==nodeData[1].source?nodeData[1].target:nodeData[1].source).startX,finishGridX=nodeToConnect.finishX,startGridY=nodeToConnect.startY,finishGridY=nodeToConnect.finishY,controlRegions=[0,0,0,0];if(startGridY>0)for(var i=startGridX;i<=finishGridX;i++)controlRegions[0]+=this.grid[i][startGridY-1].length+this.grid[i][startGridY].length-1;if(finishGridX<this.grid.length-1)for(i=startGridY;i<=finishGridY;i++)controlRegions[1]+=this.grid[finishGridX+1][i].length+this.grid[finishGridX][i].length-1;if(finishGridY<this.grid[0].length-1)for(i=startGridX;i<=finishGridX;i++)controlRegions[2]+=this.grid[i][finishGridY+1].length+this.grid[i][finishGridY].length-1;if(startGridX>0)for(i=startGridY;i<=finishGridY;i++)controlRegions[3]+=this.grid[startGridX-1][i].length+this.grid[startGridX][i].length-1;for(var minCount,minIndex,min=Integer.MAX_VALUE,j=0;j<controlRegions.length;j++)controlRegions[j]<min?(min=controlRegions[j],minCount=1,minIndex=j):controlRegions[j]==min&&minCount++;if(3==minCount&&0==min)0==controlRegions[0]&&0==controlRegions[1]&&0==controlRegions[2]?gridForPrunedNode=1:0==controlRegions[0]&&0==controlRegions[1]&&0==controlRegions[3]?gridForPrunedNode=0:0==controlRegions[0]&&0==controlRegions[2]&&0==controlRegions[3]?gridForPrunedNode=3:0==controlRegions[1]&&0==controlRegions[2]&&0==controlRegions[3]&&(gridForPrunedNode=2);else if(2==minCount&&0==min){var random=Math.floor(2*Math.random());gridForPrunedNode=0==controlRegions[0]&&0==controlRegions[1]?0==random?0:1:0==controlRegions[0]&&0==controlRegions[2]?0==random?0:2:0==controlRegions[0]&&0==controlRegions[3]?0==random?0:3:0==controlRegions[1]&&0==controlRegions[2]?0==random?1:2:0==controlRegions[1]&&0==controlRegions[3]?0==random?1:3:0==random?2:3}else gridForPrunedNode=4==minCount&&0==min?random=Math.floor(4*Math.random()):minIndex;0==gridForPrunedNode?prunedNode.setCenter(nodeToConnect.getCenterX(),nodeToConnect.getCenterY()-nodeToConnect.getHeight()/2-FDLayoutConstants.DEFAULT_EDGE_LENGTH-prunedNode.getHeight()/2):1==gridForPrunedNode?prunedNode.setCenter(nodeToConnect.getCenterX()+nodeToConnect.getWidth()/2+FDLayoutConstants.DEFAULT_EDGE_LENGTH+prunedNode.getWidth()/2,nodeToConnect.getCenterY()):2==gridForPrunedNode?prunedNode.setCenter(nodeToConnect.getCenterX(),nodeToConnect.getCenterY()+nodeToConnect.getHeight()/2+FDLayoutConstants.DEFAULT_EDGE_LENGTH+prunedNode.getHeight()/2):prunedNode.setCenter(nodeToConnect.getCenterX()-nodeToConnect.getWidth()/2-FDLayoutConstants.DEFAULT_EDGE_LENGTH-prunedNode.getWidth()/2,nodeToConnect.getCenterY())},module2.exports=CoSELayout},function(module2,exports$12,__webpack_require__){var coseBase2={};coseBase2.layoutBase=__webpack_require__(0),coseBase2.CoSEConstants=__webpack_require__(1),coseBase2.CoSEEdge=__webpack_require__(2),coseBase2.CoSEGraph=__webpack_require__(3),coseBase2.CoSEGraphManager=__webpack_require__(4),coseBase2.CoSELayout=__webpack_require__(6),coseBase2.CoSENode=__webpack_require__(5),module2.exports=coseBase2}])}(requireLayoutBase())),function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module2=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module2.exports,module2,module2.exports,__webpack_require__),module2.l=!0,module2.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports$12,name,getter){__webpack_require__.o(exports$12,name)||Object.defineProperty(exports$12,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module2){var getter=module2&&module2.__esModule?function(){return module2.default}:function(){return module2};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=1)}([function(module2,exports$12){module2.exports=__WEBPACK_EXTERNAL_MODULE_0__},function(module2,exports$12,__webpack_require__){var LayoutConstants=__webpack_require__(0).layoutBase.LayoutConstants,FDLayoutConstants=__webpack_require__(0).layoutBase.FDLayoutConstants,CoSEConstants=__webpack_require__(0).CoSEConstants,CoSELayout=__webpack_require__(0).CoSELayout,CoSENode=__webpack_require__(0).CoSENode,PointD=__webpack_require__(0).layoutBase.PointD,DimensionD2=__webpack_require__(0).layoutBase.DimensionD,defaults={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function _CoSELayout(_options){this.options=function(defaults2,options){var obj={};for(var i in defaults2)obj[i]=defaults2[i];for(var i in options)obj[i]=options[i];return obj}(defaults,_options),getUserOptions(this.options)}var getUserOptions=function(options){null!=options.nodeRepulsion&&(CoSEConstants.DEFAULT_REPULSION_STRENGTH=FDLayoutConstants.DEFAULT_REPULSION_STRENGTH=options.nodeRepulsion),null!=options.idealEdgeLength&&(CoSEConstants.DEFAULT_EDGE_LENGTH=FDLayoutConstants.DEFAULT_EDGE_LENGTH=options.idealEdgeLength),null!=options.edgeElasticity&&(CoSEConstants.DEFAULT_SPRING_STRENGTH=FDLayoutConstants.DEFAULT_SPRING_STRENGTH=options.edgeElasticity),null!=options.nestingFactor&&(CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=options.nestingFactor),null!=options.gravity&&(CoSEConstants.DEFAULT_GRAVITY_STRENGTH=FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH=options.gravity),null!=options.numIter&&(CoSEConstants.MAX_ITERATIONS=FDLayoutConstants.MAX_ITERATIONS=options.numIter),null!=options.gravityRange&&(CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR=FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR=options.gravityRange),null!=options.gravityCompound&&(CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH=options.gravityCompound),null!=options.gravityRangeCompound&&(CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=options.gravityRangeCompound),null!=options.initialEnergyOnIncremental&&(CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL=options.initialEnergyOnIncremental),"draft"==options.quality?LayoutConstants.QUALITY=0:"proof"==options.quality?LayoutConstants.QUALITY=2:LayoutConstants.QUALITY=1,CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS=FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS=LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS=options.nodeDimensionsIncludeLabels,CoSEConstants.DEFAULT_INCREMENTAL=FDLayoutConstants.DEFAULT_INCREMENTAL=LayoutConstants.DEFAULT_INCREMENTAL=!options.randomize,CoSEConstants.ANIMATE=FDLayoutConstants.ANIMATE=LayoutConstants.ANIMATE=options.animate,CoSEConstants.TILE=options.tile,CoSEConstants.TILING_PADDING_VERTICAL="function"==typeof options.tilingPaddingVertical?options.tilingPaddingVertical.call():options.tilingPaddingVertical,CoSEConstants.TILING_PADDING_HORIZONTAL="function"==typeof options.tilingPaddingHorizontal?options.tilingPaddingHorizontal.call():options.tilingPaddingHorizontal};_CoSELayout.prototype.run=function(){var ready,frameId,options=this.options;this.idToLNode={};var layout=this.layout=new CoSELayout,self=this;self.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var gm=layout.newGraphManager();this.gm=gm;var nodes=this.options.eles.nodes(),edges=this.options.eles.edges();this.root=gm.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(nodes),layout);for(var i=0;i<edges.length;i++){var edge=edges[i],sourceNode=this.idToLNode[edge.data("source")],targetNode=this.idToLNode[edge.data("target")];sourceNode!==targetNode&&0==sourceNode.getEdgesBetween(targetNode).length&&(gm.add(layout.newEdge(),sourceNode,targetNode).id=edge.id())}var getPositions=function(ele,i2){"number"==typeof ele&&(ele=i2);var theId=ele.data("id"),lNode=self.idToLNode[theId];return{x:lNode.getRect().getCenterX(),y:lNode.getRect().getCenterY()}},iterateAnimated=function iterateAnimated2(){for(var isDone,afterReposition=function(){options.fit&&options.cy.fit(options.eles,options.padding),ready||(ready=!0,self.cy.one("layoutready",options.ready),self.cy.trigger({type:"layoutready",layout:self}))},ticksPerFrame=self.options.refresh,i2=0;i2<ticksPerFrame&&!isDone;i2++)isDone=self.stopped||self.layout.tick();if(isDone)return layout.checkLayoutSuccess()&&!layout.isSubLayout&&layout.doPostLayout(),layout.tilingPostLayout&&layout.tilingPostLayout(),layout.isLayoutFinished=!0,self.options.eles.nodes().positions(getPositions),afterReposition(),self.cy.one("layoutstop",self.options.stop),self.cy.trigger({type:"layoutstop",layout:self}),frameId&&cancelAnimationFrame(frameId),void(ready=!1);var animationData=self.layout.getPositionsData();options.eles.nodes().positions(function(ele,i3){if("number"==typeof ele&&(ele=i3),!ele.isParent()){for(var theId=ele.id(),pNode=animationData[theId],temp=ele;null==pNode&&(pNode=animationData[temp.data("parent")]||animationData["DummyCompound_"+temp.data("parent")],animationData[theId]=pNode,null!=(temp=temp.parent()[0])););return null!=pNode?{x:pNode.x,y:pNode.y}:{x:ele.position("x"),y:ele.position("y")}}}),afterReposition(),frameId=requestAnimationFrame(iterateAnimated2)};return layout.addListener("layoutstarted",function(){"during"===self.options.animate&&(frameId=requestAnimationFrame(iterateAnimated))}),layout.runLayout(),"during"!==this.options.animate&&(self.options.eles.nodes().not(":parent").layoutPositions(self,self.options,getPositions),ready=!1),this},_CoSELayout.prototype.getTopMostNodes=function(nodes){for(var nodesMap={},i=0;i<nodes.length;i++)nodesMap[nodes[i].id()]=!0;return nodes.filter(function(ele,i2){"number"==typeof ele&&(ele=i2);for(var parent=ele.parent()[0];null!=parent;){if(nodesMap[parent.id()])return!1;parent=parent.parent()[0]}return!0})},_CoSELayout.prototype.processChildrenList=function(parent,children,layout){for(var size=children.length,i=0;i<size;i++){var theNode,theNewGraph,theChild=children[i],children_of_children=theChild.children(),dimensions=theChild.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if((theNode=null!=theChild.outerWidth()&&null!=theChild.outerHeight()?parent.add(new CoSENode(layout.graphManager,new PointD(theChild.position("x")-dimensions.w/2,theChild.position("y")-dimensions.h/2),new DimensionD2(parseFloat(dimensions.w),parseFloat(dimensions.h)))):parent.add(new CoSENode(this.graphManager))).id=theChild.data("id"),theNode.paddingLeft=parseInt(theChild.css("padding")),theNode.paddingTop=parseInt(theChild.css("padding")),theNode.paddingRight=parseInt(theChild.css("padding")),theNode.paddingBottom=parseInt(theChild.css("padding")),this.options.nodeDimensionsIncludeLabels&&theChild.isParent()){var labelWidth=theChild.boundingBox({includeLabels:!0,includeNodes:!1}).w,labelHeight=theChild.boundingBox({includeLabels:!0,includeNodes:!1}).h,labelPos=theChild.css("text-halign");theNode.labelWidth=labelWidth,theNode.labelHeight=labelHeight,theNode.labelPos=labelPos}this.idToLNode[theChild.data("id")]=theNode,isNaN(theNode.rect.x)&&(theNode.rect.x=0),isNaN(theNode.rect.y)&&(theNode.rect.y=0),null!=children_of_children&&children_of_children.length>0&&(theNewGraph=layout.getGraphManager().add(layout.newGraph(),theNode),this.processChildrenList(theNewGraph,children_of_children,layout))}},_CoSELayout.prototype.stop=function(){return this.stopped=!0,this};var register=function(cytoscape2){cytoscape2("layout","cose-bilkent",_CoSELayout)};"undefined"!=typeof cytoscape&®ister(cytoscape),module2.exports=register}]))),cytoscapeCoseBilkent$1.exports));function addNodes(nodes,cy){nodes.forEach(node=>{const nodeData={id:node.id,labelText:node.label,height:node.height,width:node.width,padding:node.padding??0};Object.keys(node).forEach(key=>{["id","label","height","width","padding","x","y"].includes(key)||(nodeData[key]=node[key])}),cy.add({group:"nodes",data:nodeData,position:{x:node.x??0,y:node.y??0}})})}function addEdges(edges,cy){edges.forEach(edge=>{const edgeData={id:edge.id,source:edge.start,target:edge.end};Object.keys(edge).forEach(key=>{["id","start","end"].includes(key)||(edgeData[key]=edge[key])}),cy.add({group:"edges",data:edgeData})})}function createCytoscapeInstance(data){return new Promise(resolve=>{const renderEl=select("body").append("div").attr("id","cy").attr("style","display:none"),cy=cytoscape$1({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});renderEl.remove(),addNodes(data.nodes,cy),addEdges(data.edges,cy),cy.nodes().forEach(function(n){n.layoutDimensions=()=>{const nodeData=n.data();return{w:nodeData.width,h:nodeData.height}}});cy.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),cy.ready(e=>{log.info("Cytoscape ready",e),resolve(cy)})})}function extractPositionedNodes(cy){return cy.nodes().map(node=>{const data=node.data(),position=node.position(),positionedNode={id:data.id,x:position.x,y:position.y};return Object.keys(data).forEach(key=>{"id"!==key&&(positionedNode[key]=data[key])}),positionedNode})}function extractPositionedEdges(cy){return cy.edges().map(edge=>{const data=edge.data(),rscratch=edge._private.rscratch,positionedEdge={id:data.id,source:data.source,target:data.target,startX:rscratch.startX,startY:rscratch.startY,midX:rscratch.midX,midY:rscratch.midY,endX:rscratch.endX,endY:rscratch.endY};return Object.keys(data).forEach(key=>{["id","source","target"].includes(key)||(positionedEdge[key]=data[key])}),positionedEdge})}async function executeCoseBilkentLayout(data,_config){log.debug("Starting cose-bilkent layout algorithm");try{validateLayoutData(data);const cy=await createCytoscapeInstance(data),positionedNodes=extractPositionedNodes(cy),positionedEdges=extractPositionedEdges(cy);return log.debug(`Layout completed: ${positionedNodes.length} nodes, ${positionedEdges.length} edges`),{nodes:positionedNodes,edges:positionedEdges}}catch(error){throw log.error("Error in cose-bilkent layout algorithm:",error),error}}function validateLayoutData(data){if(!data)throw new Error("Layout data is required");if(!data.config)throw new Error("Configuration is required in layout data");if(!data.rootNode)throw new Error("Root node is required");if(!data.nodes||!Array.isArray(data.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(data.edges))throw new Error("Edges array is required in layout data");return!0}cytoscape$1.use(coseBilkent),__name(addNodes,"addNodes"),__name(addEdges,"addEdges"),__name(createCytoscapeInstance,"createCytoscapeInstance"),__name(extractPositionedNodes,"extractPositionedNodes"),__name(extractPositionedEdges,"extractPositionedEdges"),__name(executeCoseBilkentLayout,"executeCoseBilkentLayout"),__name(validateLayoutData,"validateLayoutData");var render2=__name(async(data4Layout,svg,{insertCluster:insertCluster,insertEdge:insertEdge,insertEdgeLabel:insertEdgeLabel,insertMarkers:insertMarkers,insertNode:insertNode,log:log2,positionEdgeLabel:positionEdgeLabel},{algorithm:_algorithm})=>{const nodeDb={},clusterDb={},element=svg.select("g");insertMarkers(element,data4Layout.markers,data4Layout.type,data4Layout.diagramId);const subGraphsEl=element.insert("g").attr("class","subgraphs"),edgePaths=element.insert("g").attr("class","edgePaths"),edgeLabels=element.insert("g").attr("class","edgeLabels"),nodes=element.insert("g").attr("class","nodes");log2.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(data4Layout.nodes.map(async node=>{if(node.isGroup){const clusterNode={...node};clusterDb[node.id]=clusterNode,nodeDb[node.id]=clusterNode,await insertCluster(subGraphsEl,node)}else{const nodeWithPosition={...node};nodeDb[node.id]=nodeWithPosition;const nodeEl=await insertNode(nodes,node,{config:data4Layout.config,dir:data4Layout.direction||"TB"}),boundingBox=nodeEl.node().getBBox();nodeWithPosition.width=boundingBox.width,nodeWithPosition.height=boundingBox.height,nodeWithPosition.domId=nodeEl,log2.debug(`Node ${node.id} dimensions: ${boundingBox.width}x${boundingBox.height}`)}})),log2.debug("Running cose-bilkent layout algorithm");const updatedLayoutData={...data4Layout,nodes:data4Layout.nodes.map(node=>{const nodeWithDimensions=nodeDb[node.id];return{...node,width:nodeWithDimensions.width,height:nodeWithDimensions.height}})},layoutResult=await executeCoseBilkentLayout(updatedLayoutData,data4Layout.config);log2.debug("Positioning nodes based on layout results"),layoutResult.nodes.forEach(positionedNode=>{const node=nodeDb[positionedNode.id];(null==node?void 0:node.domId)&&(node.domId.attr("transform",`translate(${positionedNode.x}, ${positionedNode.y})`),node.x=positionedNode.x,node.y=positionedNode.y,log2.debug(`Positioned node ${node.id} at center (${positionedNode.x}, ${positionedNode.y})`))}),layoutResult.edges.forEach(positionedEdge=>{const edge=data4Layout.edges.find(e=>e.id===positionedEdge.id);edge&&(edge.points=[{x:positionedEdge.startX,y:positionedEdge.startY},{x:positionedEdge.midX,y:positionedEdge.midY},{x:positionedEdge.endX,y:positionedEdge.endY}])}),log2.debug("Inserting and positioning edges"),await Promise.all(data4Layout.edges.map(async edge=>{await insertEdgeLabel(edgeLabels,edge);const startNode=nodeDb[edge.start??""],endNode=nodeDb[edge.end??""];if(startNode&&endNode){const positionedEdge=layoutResult.edges.find(e=>e.id===edge.id);if(positionedEdge){log2.debug("APA01 positionedEdge",positionedEdge);const edgeWithPath={...edge},paths=insertEdge(edgePaths,edgeWithPath,clusterDb,data4Layout.type,startNode,endNode,data4Layout.diagramId);positionEdgeLabel(edgeWithPath,paths)}else{const edgeWithPath={...edge,points:[{x:startNode.x||0,y:startNode.y||0},{x:endNode.x||0,y:endNode.y||0}]},paths=insertEdge(edgePaths,edgeWithPath,clusterDb,data4Layout.type,startNode,endNode,data4Layout.diagramId);positionEdgeLabel(edgeWithPath,paths)}}})),log2.debug("Cose-bilkent rendering completed")},"render");export{render2 as render};
|
|
1
|
+
import{_ as __name,l as log,d as select}from"./mermaid.core-f1mZHh7u.js";import{c as cytoscape$1}from"./cytoscape.esm-CT1mZavR.js";import{g as getDefaultExportFromCjs}from"./vendor-antd-jGWxgt_-.js";import"./vendor-mdxeditor-BFiCaYAL.js";import"./vendor-codemirror-9gysGjWj.js";import"./vendor-markdown-BFrYfpb0.js";var hasRequiredLayoutBase,cytoscapeCoseBilkent$1={exports:{}},coseBase$1={exports:{}},layoutBase$1={exports:{}};function requireLayoutBase(){return hasRequiredLayoutBase?layoutBase$1.exports:(hasRequiredLayoutBase=1,factory=function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module2=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module2.exports,module2,module2.exports,__webpack_require__),module2.l=!0,module2.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports$12,name,getter){__webpack_require__.o(exports$12,name)||Object.defineProperty(exports$12,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module2){var getter=module2&&module2.__esModule?function(){return module2.default}:function(){return module2};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=26)}([function(module2,exports$12,__webpack_require__){function LayoutConstants(){}LayoutConstants.QUALITY=1,LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,LayoutConstants.DEFAULT_INCREMENTAL=!1,LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT=!0,LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT=!1,LayoutConstants.DEFAULT_ANIMATION_PERIOD=50,LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,LayoutConstants.DEFAULT_GRAPH_MARGIN=15,LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS=!1,LayoutConstants.SIMPLE_NODE_SIZE=40,LayoutConstants.SIMPLE_NODE_HALF_SIZE=LayoutConstants.SIMPLE_NODE_SIZE/2,LayoutConstants.EMPTY_COMPOUND_NODE_SIZE=40,LayoutConstants.MIN_EDGE_LENGTH=1,LayoutConstants.WORLD_BOUNDARY=1e6,LayoutConstants.INITIAL_WORLD_BOUNDARY=LayoutConstants.WORLD_BOUNDARY/1e3,LayoutConstants.WORLD_CENTER_X=1200,LayoutConstants.WORLD_CENTER_Y=900,module2.exports=LayoutConstants},function(module2,exports$12,__webpack_require__){var LGraphObject=__webpack_require__(2),IGeometry=__webpack_require__(8),IMath=__webpack_require__(9);function LEdge(source,target,vEdge){LGraphObject.call(this,vEdge),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=vEdge,this.bendpoints=[],this.source=source,this.target=target}for(var prop in LEdge.prototype=Object.create(LGraphObject.prototype),LGraphObject)LEdge[prop]=LGraphObject[prop];LEdge.prototype.getSource=function(){return this.source},LEdge.prototype.getTarget=function(){return this.target},LEdge.prototype.isInterGraph=function(){return this.isInterGraph},LEdge.prototype.getLength=function(){return this.length},LEdge.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},LEdge.prototype.getBendpoints=function(){return this.bendpoints},LEdge.prototype.getLca=function(){return this.lca},LEdge.prototype.getSourceInLca=function(){return this.sourceInLca},LEdge.prototype.getTargetInLca=function(){return this.targetInLca},LEdge.prototype.getOtherEnd=function(node){if(this.source===node)return this.target;if(this.target===node)return this.source;throw"Node is not incident with this edge"},LEdge.prototype.getOtherEndInGraph=function(node,graph){for(var otherEnd=this.getOtherEnd(node),root=graph.getGraphManager().getRoot();;){if(otherEnd.getOwner()==graph)return otherEnd;if(otherEnd.getOwner()==root)break;otherEnd=otherEnd.getOwner().getParent()}return null},LEdge.prototype.updateLength=function(){var clipPointCoordinates=new Array(4);this.isOverlapingSourceAndTarget=IGeometry.getIntersection(this.target.getRect(),this.source.getRect(),clipPointCoordinates),this.isOverlapingSourceAndTarget||(this.lengthX=clipPointCoordinates[0]-clipPointCoordinates[2],this.lengthY=clipPointCoordinates[1]-clipPointCoordinates[3],Math.abs(this.lengthX)<1&&(this.lengthX=IMath.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=IMath.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},LEdge.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=IMath.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=IMath.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},module2.exports=LEdge},function(module2,exports$12,__webpack_require__){module2.exports=function(vGraphObject){this.vGraphObject=vGraphObject}},function(module2,exports$12,__webpack_require__){var LGraphObject=__webpack_require__(2),Integer=__webpack_require__(10),RectangleD=__webpack_require__(13),LayoutConstants=__webpack_require__(0),RandomSeed=__webpack_require__(16),PointD=__webpack_require__(4);function LNode(gm,loc,size,vNode){null==size&&null==vNode&&(vNode=loc),LGraphObject.call(this,vNode),null!=gm.graphManager&&(gm=gm.graphManager),this.estimatedSize=Integer.MIN_VALUE,this.inclusionTreeDepth=Integer.MAX_VALUE,this.vGraphObject=vNode,this.edges=[],this.graphManager=gm,this.rect=null!=size&&null!=loc?new RectangleD(loc.x,loc.y,size.width,size.height):new RectangleD}for(var prop in LNode.prototype=Object.create(LGraphObject.prototype),LGraphObject)LNode[prop]=LGraphObject[prop];LNode.prototype.getEdges=function(){return this.edges},LNode.prototype.getChild=function(){return this.child},LNode.prototype.getOwner=function(){return this.owner},LNode.prototype.getWidth=function(){return this.rect.width},LNode.prototype.setWidth=function(width){this.rect.width=width},LNode.prototype.getHeight=function(){return this.rect.height},LNode.prototype.setHeight=function(height){this.rect.height=height},LNode.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},LNode.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},LNode.prototype.getCenter=function(){return new PointD(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},LNode.prototype.getLocation=function(){return new PointD(this.rect.x,this.rect.y)},LNode.prototype.getRect=function(){return this.rect},LNode.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},LNode.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},LNode.prototype.setRect=function(upperLeft,dimension){this.rect.x=upperLeft.x,this.rect.y=upperLeft.y,this.rect.width=dimension.width,this.rect.height=dimension.height},LNode.prototype.setCenter=function(cx,cy){this.rect.x=cx-this.rect.width/2,this.rect.y=cy-this.rect.height/2},LNode.prototype.setLocation=function(x,y){this.rect.x=x,this.rect.y=y},LNode.prototype.moveBy=function(dx,dy){this.rect.x+=dx,this.rect.y+=dy},LNode.prototype.getEdgeListToNode=function(to){var edgeList=[],self=this;return self.edges.forEach(function(edge){if(edge.target==to){if(edge.source!=self)throw"Incorrect edge source!";edgeList.push(edge)}}),edgeList},LNode.prototype.getEdgesBetween=function(other){var edgeList=[],self=this;return self.edges.forEach(function(edge){if(edge.source!=self&&edge.target!=self)throw"Incorrect edge source and/or target";edge.target!=other&&edge.source!=other||edgeList.push(edge)}),edgeList},LNode.prototype.getNeighborsList=function(){var neighbors=new Set,self=this;return self.edges.forEach(function(edge){if(edge.source==self)neighbors.add(edge.target);else{if(edge.target!=self)throw"Incorrect incidency!";neighbors.add(edge.source)}}),neighbors},LNode.prototype.withChildren=function(){var withNeighborsList=new Set;if(withNeighborsList.add(this),null!=this.child)for(var nodes=this.child.getNodes(),i=0;i<nodes.length;i++)nodes[i].withChildren().forEach(function(node){withNeighborsList.add(node)});return withNeighborsList},LNode.prototype.getNoOfChildren=function(){var noOfChildren=0;if(null==this.child)noOfChildren=1;else for(var nodes=this.child.getNodes(),i=0;i<nodes.length;i++)noOfChildren+=nodes[i].getNoOfChildren();return 0==noOfChildren&&(noOfChildren=1),noOfChildren},LNode.prototype.getEstimatedSize=function(){if(this.estimatedSize==Integer.MIN_VALUE)throw"assert failed";return this.estimatedSize},LNode.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},LNode.prototype.scatter=function(){var randomCenterX,randomCenterY,minX=-LayoutConstants.INITIAL_WORLD_BOUNDARY,maxX=LayoutConstants.INITIAL_WORLD_BOUNDARY;randomCenterX=LayoutConstants.WORLD_CENTER_X+RandomSeed.nextDouble()*(maxX-minX)+minX;var minY=-LayoutConstants.INITIAL_WORLD_BOUNDARY,maxY=LayoutConstants.INITIAL_WORLD_BOUNDARY;randomCenterY=LayoutConstants.WORLD_CENTER_Y+RandomSeed.nextDouble()*(maxY-minY)+minY,this.rect.x=randomCenterX,this.rect.y=randomCenterY},LNode.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var childGraph=this.getChild();if(childGraph.updateBounds(!0),this.rect.x=childGraph.getLeft(),this.rect.y=childGraph.getTop(),this.setWidth(childGraph.getRight()-childGraph.getLeft()),this.setHeight(childGraph.getBottom()-childGraph.getTop()),LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS){var width=childGraph.getRight()-childGraph.getLeft(),height=childGraph.getBottom()-childGraph.getTop();this.labelWidth>width&&(this.rect.x-=(this.labelWidth-width)/2,this.setWidth(this.labelWidth)),this.labelHeight>height&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-height)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-height),this.setHeight(this.labelHeight))}}},LNode.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==Integer.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},LNode.prototype.transform=function(trans){var left=this.rect.x;left>LayoutConstants.WORLD_BOUNDARY?left=LayoutConstants.WORLD_BOUNDARY:left<-LayoutConstants.WORLD_BOUNDARY&&(left=-LayoutConstants.WORLD_BOUNDARY);var top=this.rect.y;top>LayoutConstants.WORLD_BOUNDARY?top=LayoutConstants.WORLD_BOUNDARY:top<-LayoutConstants.WORLD_BOUNDARY&&(top=-LayoutConstants.WORLD_BOUNDARY);var leftTop=new PointD(left,top),vLeftTop=trans.inverseTransformPoint(leftTop);this.setLocation(vLeftTop.x,vLeftTop.y)},LNode.prototype.getLeft=function(){return this.rect.x},LNode.prototype.getRight=function(){return this.rect.x+this.rect.width},LNode.prototype.getTop=function(){return this.rect.y},LNode.prototype.getBottom=function(){return this.rect.y+this.rect.height},LNode.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},module2.exports=LNode},function(module2,exports$12,__webpack_require__){function PointD(x,y){null==x&&null==y?(this.x=0,this.y=0):(this.x=x,this.y=y)}PointD.prototype.getX=function(){return this.x},PointD.prototype.getY=function(){return this.y},PointD.prototype.setX=function(x){this.x=x},PointD.prototype.setY=function(y){this.y=y},PointD.prototype.getDifference=function(pt){return new DimensionD(this.x-pt.x,this.y-pt.y)},PointD.prototype.getCopy=function(){return new PointD(this.x,this.y)},PointD.prototype.translate=function(dim){return this.x+=dim.width,this.y+=dim.height,this},module2.exports=PointD},function(module2,exports$12,__webpack_require__){var LGraphObject=__webpack_require__(2),Integer=__webpack_require__(10),LayoutConstants=__webpack_require__(0),LGraphManager=__webpack_require__(6),LNode=__webpack_require__(3),LEdge=__webpack_require__(1),RectangleD=__webpack_require__(13),Point2=__webpack_require__(12),LinkedList=__webpack_require__(11);function LGraph(parent,obj2,vGraph){LGraphObject.call(this,vGraph),this.estimatedSize=Integer.MIN_VALUE,this.margin=LayoutConstants.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=parent,null!=obj2&&obj2 instanceof LGraphManager?this.graphManager=obj2:null!=obj2&&obj2 instanceof Layout&&(this.graphManager=obj2.graphManager)}for(var prop in LGraph.prototype=Object.create(LGraphObject.prototype),LGraphObject)LGraph[prop]=LGraphObject[prop];LGraph.prototype.getNodes=function(){return this.nodes},LGraph.prototype.getEdges=function(){return this.edges},LGraph.prototype.getGraphManager=function(){return this.graphManager},LGraph.prototype.getParent=function(){return this.parent},LGraph.prototype.getLeft=function(){return this.left},LGraph.prototype.getRight=function(){return this.right},LGraph.prototype.getTop=function(){return this.top},LGraph.prototype.getBottom=function(){return this.bottom},LGraph.prototype.isConnected=function(){return this.isConnected},LGraph.prototype.add=function(obj1,sourceNode,targetNode){if(null==sourceNode&&null==targetNode){var newNode=obj1;if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(newNode)>-1)throw"Node already in graph!";return newNode.owner=this,this.getNodes().push(newNode),newNode}var newEdge=obj1;if(!(this.getNodes().indexOf(sourceNode)>-1&&this.getNodes().indexOf(targetNode)>-1))throw"Source or target not in graph!";if(sourceNode.owner!=targetNode.owner||sourceNode.owner!=this)throw"Both owners must be this graph!";return sourceNode.owner!=targetNode.owner?null:(newEdge.source=sourceNode,newEdge.target=targetNode,newEdge.isInterGraph=!1,this.getEdges().push(newEdge),sourceNode.edges.push(newEdge),targetNode!=sourceNode&&targetNode.edges.push(newEdge),newEdge)},LGraph.prototype.remove=function(obj){var node=obj;if(obj instanceof LNode){if(null==node)throw"Node is null!";if(null==node.owner||node.owner!=this)throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var edgesToBeRemoved=node.edges.slice(),s=edgesToBeRemoved.length,i=0;i<s;i++)(edge=edgesToBeRemoved[i]).isInterGraph?this.graphManager.remove(edge):edge.source.owner.remove(edge);if(-1==(index=this.nodes.indexOf(node)))throw"Node not in owner node list!";this.nodes.splice(index,1)}else if(obj instanceof LEdge){var edge;if(null==(edge=obj))throw"Edge is null!";if(null==edge.source||null==edge.target)throw"Source and/or target is null!";if(null==edge.source.owner||null==edge.target.owner||edge.source.owner!=this||edge.target.owner!=this)throw"Source and/or target owner is invalid!";var index,sourceIndex=edge.source.edges.indexOf(edge),targetIndex=edge.target.edges.indexOf(edge);if(!(sourceIndex>-1&&targetIndex>-1))throw"Source and/or target doesn't know this edge!";if(edge.source.edges.splice(sourceIndex,1),edge.target!=edge.source&&edge.target.edges.splice(targetIndex,1),-1==(index=edge.source.owner.getEdges().indexOf(edge)))throw"Not in owner's edge list!";edge.source.owner.getEdges().splice(index,1)}},LGraph.prototype.updateLeftTop=function(){for(var nodeTop,nodeLeft,margin,top=Integer.MAX_VALUE,left=Integer.MAX_VALUE,nodes=this.getNodes(),s=nodes.length,i=0;i<s;i++){var lNode=nodes[i];top>(nodeTop=lNode.getTop())&&(top=nodeTop),left>(nodeLeft=lNode.getLeft())&&(left=nodeLeft)}return top==Integer.MAX_VALUE?null:(margin=null!=nodes[0].getParent().paddingLeft?nodes[0].getParent().paddingLeft:this.margin,this.left=left-margin,this.top=top-margin,new Point2(this.left,this.top))},LGraph.prototype.updateBounds=function(recursive){for(var nodeLeft,nodeRight,nodeTop,nodeBottom,margin,left=Integer.MAX_VALUE,right=-Integer.MAX_VALUE,top=Integer.MAX_VALUE,bottom=-Integer.MAX_VALUE,nodes=this.nodes,s=nodes.length,i=0;i<s;i++){var lNode=nodes[i];recursive&&null!=lNode.child&&lNode.updateBounds(),left>(nodeLeft=lNode.getLeft())&&(left=nodeLeft),right<(nodeRight=lNode.getRight())&&(right=nodeRight),top>(nodeTop=lNode.getTop())&&(top=nodeTop),bottom<(nodeBottom=lNode.getBottom())&&(bottom=nodeBottom)}var boundingRect=new RectangleD(left,top,right-left,bottom-top);left==Integer.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),margin=null!=nodes[0].getParent().paddingLeft?nodes[0].getParent().paddingLeft:this.margin,this.left=boundingRect.x-margin,this.right=boundingRect.x+boundingRect.width+margin,this.top=boundingRect.y-margin,this.bottom=boundingRect.y+boundingRect.height+margin},LGraph.calculateBounds=function(nodes){for(var nodeLeft,nodeRight,nodeTop,nodeBottom,left=Integer.MAX_VALUE,right=-Integer.MAX_VALUE,top=Integer.MAX_VALUE,bottom=-Integer.MAX_VALUE,s=nodes.length,i=0;i<s;i++){var lNode=nodes[i];left>(nodeLeft=lNode.getLeft())&&(left=nodeLeft),right<(nodeRight=lNode.getRight())&&(right=nodeRight),top>(nodeTop=lNode.getTop())&&(top=nodeTop),bottom<(nodeBottom=lNode.getBottom())&&(bottom=nodeBottom)}return new RectangleD(left,top,right-left,bottom-top)},LGraph.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},LGraph.prototype.getEstimatedSize=function(){if(this.estimatedSize==Integer.MIN_VALUE)throw"assert failed";return this.estimatedSize},LGraph.prototype.calcEstimatedSize=function(){for(var size=0,nodes=this.nodes,s=nodes.length,i=0;i<s;i++)size+=nodes[i].calcEstimatedSize();return this.estimatedSize=0==size?LayoutConstants.EMPTY_COMPOUND_NODE_SIZE:size/Math.sqrt(this.nodes.length),this.estimatedSize},LGraph.prototype.updateConnected=function(){var self=this;if(0!=this.nodes.length){var neighborEdges,currentNeighbor,queue=new LinkedList,visited=new Set,currentNode=this.nodes[0];for(currentNode.withChildren().forEach(function(node){queue.push(node),visited.add(node)});0!==queue.length;)for(var size=(neighborEdges=(currentNode=queue.shift()).getEdges()).length,i=0;i<size;i++)null==(currentNeighbor=neighborEdges[i].getOtherEndInGraph(currentNode,this))||visited.has(currentNeighbor)||currentNeighbor.withChildren().forEach(function(node){queue.push(node),visited.add(node)});if(this.isConnected=!1,visited.size>=this.nodes.length){var noOfVisitedInThisGraph=0;visited.forEach(function(visitedNode){visitedNode.owner==self&&noOfVisitedInThisGraph++}),noOfVisitedInThisGraph==this.nodes.length&&(this.isConnected=!0)}}else this.isConnected=!0},module2.exports=LGraph},function(module2,exports$12,__webpack_require__){var LGraph,LEdge=__webpack_require__(1);function LGraphManager(layout){LGraph=__webpack_require__(5),this.layout=layout,this.graphs=[],this.edges=[]}LGraphManager.prototype.addRoot=function(){var ngraph=this.layout.newGraph(),nnode=this.layout.newNode(null),root=this.add(ngraph,nnode);return this.setRootGraph(root),this.rootGraph},LGraphManager.prototype.add=function(newGraph,parentNode,newEdge,sourceNode,targetNode){if(null==newEdge&&null==sourceNode&&null==targetNode){if(null==newGraph)throw"Graph is null!";if(null==parentNode)throw"Parent node is null!";if(this.graphs.indexOf(newGraph)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(newGraph),null!=newGraph.parent)throw"Already has a parent!";if(null!=parentNode.child)throw"Already has a child!";return newGraph.parent=parentNode,parentNode.child=newGraph,newGraph}targetNode=newEdge,newEdge=newGraph;var sourceGraph=(sourceNode=parentNode).getOwner(),targetGraph=targetNode.getOwner();if(null==sourceGraph||sourceGraph.getGraphManager()!=this)throw"Source not in this graph mgr!";if(null==targetGraph||targetGraph.getGraphManager()!=this)throw"Target not in this graph mgr!";if(sourceGraph==targetGraph)return newEdge.isInterGraph=!1,sourceGraph.add(newEdge,sourceNode,targetNode);if(newEdge.isInterGraph=!0,newEdge.source=sourceNode,newEdge.target=targetNode,this.edges.indexOf(newEdge)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(newEdge),null==newEdge.source||null==newEdge.target)throw"Edge source and/or target is null!";if(-1!=newEdge.source.edges.indexOf(newEdge)||-1!=newEdge.target.edges.indexOf(newEdge))throw"Edge already in source and/or target incidency list!";return newEdge.source.edges.push(newEdge),newEdge.target.edges.push(newEdge),newEdge},LGraphManager.prototype.remove=function(lObj){if(lObj instanceof LGraph){var graph=lObj;if(graph.getGraphManager()!=this)throw"Graph not in this graph mgr";if(graph!=this.rootGraph&&(null==graph.parent||graph.parent.graphManager!=this))throw"Invalid parent node!";for(var edge,edgesToBeRemoved=[],s=(edgesToBeRemoved=edgesToBeRemoved.concat(graph.getEdges())).length,i=0;i<s;i++)edge=edgesToBeRemoved[i],graph.remove(edge);var node,nodesToBeRemoved=[];for(s=(nodesToBeRemoved=nodesToBeRemoved.concat(graph.getNodes())).length,i=0;i<s;i++)node=nodesToBeRemoved[i],graph.remove(node);graph==this.rootGraph&&this.setRootGraph(null);var index=this.graphs.indexOf(graph);this.graphs.splice(index,1),graph.parent=null}else if(lObj instanceof LEdge){if(null==(edge=lObj))throw"Edge is null!";if(!edge.isInterGraph)throw"Not an inter-graph edge!";if(null==edge.source||null==edge.target)throw"Source and/or target is null!";if(-1==edge.source.edges.indexOf(edge)||-1==edge.target.edges.indexOf(edge))throw"Source and/or target doesn't know this edge!";if(index=edge.source.edges.indexOf(edge),edge.source.edges.splice(index,1),index=edge.target.edges.indexOf(edge),edge.target.edges.splice(index,1),null==edge.source.owner||null==edge.source.owner.getGraphManager())throw"Edge owner graph or owner graph manager is null!";if(-1==edge.source.owner.getGraphManager().edges.indexOf(edge))throw"Not in owner graph manager's edge list!";index=edge.source.owner.getGraphManager().edges.indexOf(edge),edge.source.owner.getGraphManager().edges.splice(index,1)}},LGraphManager.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},LGraphManager.prototype.getGraphs=function(){return this.graphs},LGraphManager.prototype.getAllNodes=function(){if(null==this.allNodes){for(var nodeList=[],graphs=this.getGraphs(),s=graphs.length,i=0;i<s;i++)nodeList=nodeList.concat(graphs[i].getNodes());this.allNodes=nodeList}return this.allNodes},LGraphManager.prototype.resetAllNodes=function(){this.allNodes=null},LGraphManager.prototype.resetAllEdges=function(){this.allEdges=null},LGraphManager.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},LGraphManager.prototype.getAllEdges=function(){if(null==this.allEdges){var edgeList=[],graphs=this.getGraphs();graphs.length;for(var i=0;i<graphs.length;i++)edgeList=edgeList.concat(graphs[i].getEdges());edgeList=edgeList.concat(this.edges),this.allEdges=edgeList}return this.allEdges},LGraphManager.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},LGraphManager.prototype.setAllNodesToApplyGravitation=function(nodeList){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=nodeList},LGraphManager.prototype.getRoot=function(){return this.rootGraph},LGraphManager.prototype.setRootGraph=function(graph){if(graph.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=graph,null==graph.parent&&(graph.parent=this.layout.newNode("Root node"))},LGraphManager.prototype.getLayout=function(){return this.layout},LGraphManager.prototype.isOneAncestorOfOther=function(firstNode,secondNode){if(null==firstNode||null==secondNode)throw"assert failed";if(firstNode==secondNode)return!0;for(var parentNode,ownerGraph=firstNode.getOwner();null!=(parentNode=ownerGraph.getParent());){if(parentNode==secondNode)return!0;if(null==(ownerGraph=parentNode.getOwner()))break}for(ownerGraph=secondNode.getOwner();null!=(parentNode=ownerGraph.getParent());){if(parentNode==firstNode)return!0;if(null==(ownerGraph=parentNode.getOwner()))break}return!1},LGraphManager.prototype.calcLowestCommonAncestors=function(){for(var edge,sourceNode,targetNode,sourceAncestorGraph,targetAncestorGraph,edges=this.getAllEdges(),s=edges.length,i=0;i<s;i++)if(sourceNode=(edge=edges[i]).source,targetNode=edge.target,edge.lca=null,edge.sourceInLca=sourceNode,edge.targetInLca=targetNode,sourceNode!=targetNode){for(sourceAncestorGraph=sourceNode.getOwner();null==edge.lca;){for(edge.targetInLca=targetNode,targetAncestorGraph=targetNode.getOwner();null==edge.lca;){if(targetAncestorGraph==sourceAncestorGraph){edge.lca=targetAncestorGraph;break}if(targetAncestorGraph==this.rootGraph)break;if(null!=edge.lca)throw"assert failed";edge.targetInLca=targetAncestorGraph.getParent(),targetAncestorGraph=edge.targetInLca.getOwner()}if(sourceAncestorGraph==this.rootGraph)break;null==edge.lca&&(edge.sourceInLca=sourceAncestorGraph.getParent(),sourceAncestorGraph=edge.sourceInLca.getOwner())}if(null==edge.lca)throw"assert failed"}else edge.lca=sourceNode.getOwner()},LGraphManager.prototype.calcLowestCommonAncestor=function(firstNode,secondNode){if(firstNode==secondNode)return firstNode.getOwner();for(var firstOwnerGraph=firstNode.getOwner();null!=firstOwnerGraph;){for(var secondOwnerGraph=secondNode.getOwner();null!=secondOwnerGraph;){if(secondOwnerGraph==firstOwnerGraph)return secondOwnerGraph;secondOwnerGraph=secondOwnerGraph.getParent().getOwner()}firstOwnerGraph=firstOwnerGraph.getParent().getOwner()}return firstOwnerGraph},LGraphManager.prototype.calcInclusionTreeDepths=function(graph,depth){var node;null==graph&&null==depth&&(graph=this.rootGraph,depth=1);for(var nodes=graph.getNodes(),s=nodes.length,i=0;i<s;i++)(node=nodes[i]).inclusionTreeDepth=depth,null!=node.child&&this.calcInclusionTreeDepths(node.child,depth+1)},LGraphManager.prototype.includesInvalidEdge=function(){for(var edge,s=this.edges.length,i=0;i<s;i++)if(edge=this.edges[i],this.isOneAncestorOfOther(edge.source,edge.target))return!0;return!1},module2.exports=LGraphManager},function(module2,exports$12,__webpack_require__){var LayoutConstants=__webpack_require__(0);function FDLayoutConstants(){}for(var prop in LayoutConstants)FDLayoutConstants[prop]=LayoutConstants[prop];FDLayoutConstants.MAX_ITERATIONS=2500,FDLayoutConstants.DEFAULT_EDGE_LENGTH=50,FDLayoutConstants.DEFAULT_SPRING_STRENGTH=.45,FDLayoutConstants.DEFAULT_REPULSION_STRENGTH=4500,FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH=.4,FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,FDLayoutConstants.COOLING_ADAPTATION_FACTOR=.33,FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT=1e3,FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT=5e3,FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,FDLayoutConstants.MAX_NODE_DISPLACEMENT=3*FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL,FDLayoutConstants.MIN_REPULSION_DIST=FDLayoutConstants.DEFAULT_EDGE_LENGTH/10,FDLayoutConstants.CONVERGENCE_CHECK_PERIOD=100,FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,FDLayoutConstants.MIN_EDGE_LENGTH=1,FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD=10,module2.exports=FDLayoutConstants},function(module2,exports$12,__webpack_require__){var Point2=__webpack_require__(12);function IGeometry(){}IGeometry.calcSeparationAmount=function(rectA,rectB,overlapAmount,separationBuffer){if(!rectA.intersects(rectB))throw"assert failed";var directions=new Array(2);this.decideDirectionsForOverlappingNodes(rectA,rectB,directions),overlapAmount[0]=Math.min(rectA.getRight(),rectB.getRight())-Math.max(rectA.x,rectB.x),overlapAmount[1]=Math.min(rectA.getBottom(),rectB.getBottom())-Math.max(rectA.y,rectB.y),rectA.getX()<=rectB.getX()&&rectA.getRight()>=rectB.getRight()?overlapAmount[0]+=Math.min(rectB.getX()-rectA.getX(),rectA.getRight()-rectB.getRight()):rectB.getX()<=rectA.getX()&&rectB.getRight()>=rectA.getRight()&&(overlapAmount[0]+=Math.min(rectA.getX()-rectB.getX(),rectB.getRight()-rectA.getRight())),rectA.getY()<=rectB.getY()&&rectA.getBottom()>=rectB.getBottom()?overlapAmount[1]+=Math.min(rectB.getY()-rectA.getY(),rectA.getBottom()-rectB.getBottom()):rectB.getY()<=rectA.getY()&&rectB.getBottom()>=rectA.getBottom()&&(overlapAmount[1]+=Math.min(rectA.getY()-rectB.getY(),rectB.getBottom()-rectA.getBottom()));var slope=Math.abs((rectB.getCenterY()-rectA.getCenterY())/(rectB.getCenterX()-rectA.getCenterX()));rectB.getCenterY()===rectA.getCenterY()&&rectB.getCenterX()===rectA.getCenterX()&&(slope=1);var moveByY=slope*overlapAmount[0],moveByX=overlapAmount[1]/slope;overlapAmount[0]<moveByX?moveByX=overlapAmount[0]:moveByY=overlapAmount[1],overlapAmount[0]=-1*directions[0]*(moveByX/2+separationBuffer),overlapAmount[1]=-1*directions[1]*(moveByY/2+separationBuffer)},IGeometry.decideDirectionsForOverlappingNodes=function(rectA,rectB,directions){rectA.getCenterX()<rectB.getCenterX()?directions[0]=-1:directions[0]=1,rectA.getCenterY()<rectB.getCenterY()?directions[1]=-1:directions[1]=1},IGeometry.getIntersection2=function(rectA,rectB,result){var p1x=rectA.getCenterX(),p1y=rectA.getCenterY(),p2x=rectB.getCenterX(),p2y=rectB.getCenterY();if(rectA.intersects(rectB))return result[0]=p1x,result[1]=p1y,result[2]=p2x,result[3]=p2y,!0;var topLeftAx=rectA.getX(),topLeftAy=rectA.getY(),topRightAx=rectA.getRight(),bottomLeftAx=rectA.getX(),bottomLeftAy=rectA.getBottom(),bottomRightAx=rectA.getRight(),halfWidthA=rectA.getWidthHalf(),halfHeightA=rectA.getHeightHalf(),topLeftBx=rectB.getX(),topLeftBy=rectB.getY(),topRightBx=rectB.getRight(),bottomLeftBx=rectB.getX(),bottomLeftBy=rectB.getBottom(),bottomRightBx=rectB.getRight(),halfWidthB=rectB.getWidthHalf(),halfHeightB=rectB.getHeightHalf(),clipPointAFound=!1,clipPointBFound=!1;if(p1x===p2x){if(p1y>p2y)return result[0]=p1x,result[1]=topLeftAy,result[2]=p2x,result[3]=bottomLeftBy,!1;if(p1y<p2y)return result[0]=p1x,result[1]=bottomLeftAy,result[2]=p2x,result[3]=topLeftBy,!1}else if(p1y===p2y){if(p1x>p2x)return result[0]=topLeftAx,result[1]=p1y,result[2]=topRightBx,result[3]=p2y,!1;if(p1x<p2x)return result[0]=topRightAx,result[1]=p1y,result[2]=topLeftBx,result[3]=p2y,!1}else{var slopeA=rectA.height/rectA.width,slopeB=rectB.height/rectB.width,slopePrime=(p2y-p1y)/(p2x-p1x),cardinalDirectionA=void 0,cardinalDirectionB=void 0,tempPointAx=void 0,tempPointAy=void 0,tempPointBx=void 0,tempPointBy=void 0;if(-slopeA===slopePrime?p1x>p2x?(result[0]=bottomLeftAx,result[1]=bottomLeftAy,clipPointAFound=!0):(result[0]=topRightAx,result[1]=topLeftAy,clipPointAFound=!0):slopeA===slopePrime&&(p1x>p2x?(result[0]=topLeftAx,result[1]=topLeftAy,clipPointAFound=!0):(result[0]=bottomRightAx,result[1]=bottomLeftAy,clipPointAFound=!0)),-slopeB===slopePrime?p2x>p1x?(result[2]=bottomLeftBx,result[3]=bottomLeftBy,clipPointBFound=!0):(result[2]=topRightBx,result[3]=topLeftBy,clipPointBFound=!0):slopeB===slopePrime&&(p2x>p1x?(result[2]=topLeftBx,result[3]=topLeftBy,clipPointBFound=!0):(result[2]=bottomRightBx,result[3]=bottomLeftBy,clipPointBFound=!0)),clipPointAFound&&clipPointBFound)return!1;if(p1x>p2x?p1y>p2y?(cardinalDirectionA=this.getCardinalDirection(slopeA,slopePrime,4),cardinalDirectionB=this.getCardinalDirection(slopeB,slopePrime,2)):(cardinalDirectionA=this.getCardinalDirection(-slopeA,slopePrime,3),cardinalDirectionB=this.getCardinalDirection(-slopeB,slopePrime,1)):p1y>p2y?(cardinalDirectionA=this.getCardinalDirection(-slopeA,slopePrime,1),cardinalDirectionB=this.getCardinalDirection(-slopeB,slopePrime,3)):(cardinalDirectionA=this.getCardinalDirection(slopeA,slopePrime,2),cardinalDirectionB=this.getCardinalDirection(slopeB,slopePrime,4)),!clipPointAFound)switch(cardinalDirectionA){case 1:tempPointAy=topLeftAy,tempPointAx=p1x+-halfHeightA/slopePrime,result[0]=tempPointAx,result[1]=tempPointAy;break;case 2:tempPointAx=bottomRightAx,tempPointAy=p1y+halfWidthA*slopePrime,result[0]=tempPointAx,result[1]=tempPointAy;break;case 3:tempPointAy=bottomLeftAy,tempPointAx=p1x+halfHeightA/slopePrime,result[0]=tempPointAx,result[1]=tempPointAy;break;case 4:tempPointAx=bottomLeftAx,tempPointAy=p1y+-halfWidthA*slopePrime,result[0]=tempPointAx,result[1]=tempPointAy}if(!clipPointBFound)switch(cardinalDirectionB){case 1:tempPointBy=topLeftBy,tempPointBx=p2x+-halfHeightB/slopePrime,result[2]=tempPointBx,result[3]=tempPointBy;break;case 2:tempPointBx=bottomRightBx,tempPointBy=p2y+halfWidthB*slopePrime,result[2]=tempPointBx,result[3]=tempPointBy;break;case 3:tempPointBy=bottomLeftBy,tempPointBx=p2x+halfHeightB/slopePrime,result[2]=tempPointBx,result[3]=tempPointBy;break;case 4:tempPointBx=bottomLeftBx,tempPointBy=p2y+-halfWidthB*slopePrime,result[2]=tempPointBx,result[3]=tempPointBy}}return!1},IGeometry.getCardinalDirection=function(slope,slopePrime,line){return slope>slopePrime?line:1+line%4},IGeometry.getIntersection=function(s1,s2,f1,f2){if(null==f2)return this.getIntersection2(s1,s2,f1);var a1,a2,b1,b2,c1,c2,denom,x1=s1.x,y1=s1.y,x2=s2.x,y2=s2.y,x3=f1.x,y3=f1.y,x4=f2.x,y4=f2.y;return 0===(denom=(a1=y2-y1)*(b2=x3-x4)-(a2=y4-y3)*(b1=x1-x2))?null:new Point2((b1*(c2=x4*y3-x3*y4)-b2*(c1=x2*y1-x1*y2))/denom,(a2*c1-a1*c2)/denom)},IGeometry.angleOfVector=function(Cx,Cy,Nx,Ny){var C_angle=void 0;return Cx!==Nx?(C_angle=Math.atan((Ny-Cy)/(Nx-Cx)),Nx<Cx?C_angle+=Math.PI:Ny<Cy&&(C_angle+=this.TWO_PI)):C_angle=Ny<Cy?this.ONE_AND_HALF_PI:this.HALF_PI,C_angle},IGeometry.doIntersect=function(p1,p2,p3,p4){var a=p1.x,b=p1.y,c=p2.x,d=p2.y,p=p3.x,q=p3.y,r=p4.x,s=p4.y,det=(c-a)*(s-q)-(r-p)*(d-b);if(0===det)return!1;var lambda=((s-q)*(r-a)+(p-r)*(s-b))/det,gamma=((b-d)*(r-a)+(c-a)*(s-b))/det;return 0<lambda&&lambda<1&&0<gamma&&gamma<1},IGeometry.HALF_PI=.5*Math.PI,IGeometry.ONE_AND_HALF_PI=1.5*Math.PI,IGeometry.TWO_PI=2*Math.PI,IGeometry.THREE_PI=3*Math.PI,module2.exports=IGeometry},function(module2,exports$12,__webpack_require__){function IMath(){}IMath.sign=function(value){return value>0?1:value<0?-1:0},IMath.floor=function(value){return value<0?Math.ceil(value):Math.floor(value)},IMath.ceil=function(value){return value<0?Math.floor(value):Math.ceil(value)},module2.exports=IMath},function(module2,exports$12,__webpack_require__){function Integer(){}Integer.MAX_VALUE=2147483647,Integer.MIN_VALUE=-2147483648,module2.exports=Integer},function(module2,exports$12,__webpack_require__){var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),nodeFrom=function(value){return{value:value,next:null,prev:null}},add=function(prev,node,next2,list){return null!==prev?prev.next=node:list.head=node,null!==next2?next2.prev=node:list.tail=node,node.prev=prev,node.next=next2,list.length++,node},_remove=function(node,list){var prev=node.prev,next2=node.next;return null!==prev?prev.next=next2:list.head=next2,null!==next2?next2.prev=prev:list.tail=prev,node.prev=node.next=null,list.length--,node},LinkedList=function(){function LinkedList2(vals){var _this=this;!function(instance2,Constructor){if(!(instance2 instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,LinkedList2),this.length=0,this.head=null,this.tail=null,null!=vals&&vals.forEach(function(v){return _this.push(v)})}return _createClass(LinkedList2,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(val,otherNode){return add(otherNode.prev,nodeFrom(val),otherNode,this)}},{key:"insertAfter",value:function(val,otherNode){return add(otherNode,nodeFrom(val),otherNode.next,this)}},{key:"insertNodeBefore",value:function(newNode,otherNode){return add(otherNode.prev,newNode,otherNode,this)}},{key:"insertNodeAfter",value:function(newNode,otherNode){return add(otherNode,newNode,otherNode.next,this)}},{key:"push",value:function(val){return add(this.tail,nodeFrom(val),null,this)}},{key:"unshift",value:function(val){return add(null,nodeFrom(val),this.head,this)}},{key:"remove",value:function(node){return _remove(node,this)}},{key:"pop",value:function(){return _remove(this.tail,this).value}},{key:"popNode",value:function(){return _remove(this.tail,this)}},{key:"shift",value:function(){return _remove(this.head,this).value}},{key:"shiftNode",value:function(){return _remove(this.head,this)}},{key:"get_object_at",value:function(index){if(index<=this.length()){for(var i=1,current=this.head;i<index;)current=current.next,i++;return current.value}}},{key:"set_object_at",value:function(index,value){if(index<=this.length()){for(var i=1,current=this.head;i<index;)current=current.next,i++;current.value=value}}}]),LinkedList2}();module2.exports=LinkedList},function(module2,exports$12,__webpack_require__){function Point2(x,y,p){this.x=null,this.y=null,null==x&&null==y&&null==p?(this.x=0,this.y=0):"number"==typeof x&&"number"==typeof y&&null==p?(this.x=x,this.y=y):"Point"==x.constructor.name&&null==y&&null==p&&(p=x,this.x=p.x,this.y=p.y)}Point2.prototype.getX=function(){return this.x},Point2.prototype.getY=function(){return this.y},Point2.prototype.getLocation=function(){return new Point2(this.x,this.y)},Point2.prototype.setLocation=function(x,y,p){"Point"==x.constructor.name&&null==y&&null==p?(p=x,this.setLocation(p.x,p.y)):"number"==typeof x&&"number"==typeof y&&null==p&&(parseInt(x)==x&&parseInt(y)==y?this.move(x,y):(this.x=Math.floor(x+.5),this.y=Math.floor(y+.5)))},Point2.prototype.move=function(x,y){this.x=x,this.y=y},Point2.prototype.translate=function(dx,dy){this.x+=dx,this.y+=dy},Point2.prototype.equals=function(obj){if("Point"==obj.constructor.name){var pt=obj;return this.x==pt.x&&this.y==pt.y}return this==obj},Point2.prototype.toString=function(){return(new Point2).constructor.name+"[x="+this.x+",y="+this.y+"]"},module2.exports=Point2},function(module2,exports$12,__webpack_require__){function RectangleD(x,y,width,height){this.x=0,this.y=0,this.width=0,this.height=0,null!=x&&null!=y&&null!=width&&null!=height&&(this.x=x,this.y=y,this.width=width,this.height=height)}RectangleD.prototype.getX=function(){return this.x},RectangleD.prototype.setX=function(x){this.x=x},RectangleD.prototype.getY=function(){return this.y},RectangleD.prototype.setY=function(y){this.y=y},RectangleD.prototype.getWidth=function(){return this.width},RectangleD.prototype.setWidth=function(width){this.width=width},RectangleD.prototype.getHeight=function(){return this.height},RectangleD.prototype.setHeight=function(height){this.height=height},RectangleD.prototype.getRight=function(){return this.x+this.width},RectangleD.prototype.getBottom=function(){return this.y+this.height},RectangleD.prototype.intersects=function(a){return!(this.getRight()<a.x||this.getBottom()<a.y||a.getRight()<this.x||a.getBottom()<this.y)},RectangleD.prototype.getCenterX=function(){return this.x+this.width/2},RectangleD.prototype.getMinX=function(){return this.getX()},RectangleD.prototype.getMaxX=function(){return this.getX()+this.width},RectangleD.prototype.getCenterY=function(){return this.y+this.height/2},RectangleD.prototype.getMinY=function(){return this.getY()},RectangleD.prototype.getMaxY=function(){return this.getY()+this.height},RectangleD.prototype.getWidthHalf=function(){return this.width/2},RectangleD.prototype.getHeightHalf=function(){return this.height/2},module2.exports=RectangleD},function(module2,exports$12,__webpack_require__){var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};function UniqueIDGeneretor(){}UniqueIDGeneretor.lastID=0,UniqueIDGeneretor.createID=function(obj){return UniqueIDGeneretor.isPrimitive(obj)?obj:(null!=obj.uniqueID||(obj.uniqueID=UniqueIDGeneretor.getString(),UniqueIDGeneretor.lastID++),obj.uniqueID)},UniqueIDGeneretor.getString=function(id){return null==id&&(id=UniqueIDGeneretor.lastID),"Object#"+id},UniqueIDGeneretor.isPrimitive=function(arg){var type=void 0===arg?"undefined":_typeof(arg);return null==arg||"object"!=type&&"function"!=type},module2.exports=UniqueIDGeneretor},function(module2,exports$12,__webpack_require__){function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}var LayoutConstants=__webpack_require__(0),LGraphManager=__webpack_require__(6),LNode=__webpack_require__(3),LEdge=__webpack_require__(1),LGraph=__webpack_require__(5),PointD=__webpack_require__(4),Transform=__webpack_require__(17),Emitter=__webpack_require__(27);function Layout2(isRemoteUse){Emitter.call(this),this.layoutQuality=LayoutConstants.QUALITY,this.createBendsAsNeeded=LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=LayoutConstants.DEFAULT_INCREMENTAL,this.animationOnLayout=LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=LayoutConstants.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new LGraphManager(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=isRemoteUse&&(this.isRemoteUse=isRemoteUse)}Layout2.RANDOM_SEED=1,Layout2.prototype=Object.create(Emitter.prototype),Layout2.prototype.getGraphManager=function(){return this.graphManager},Layout2.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},Layout2.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},Layout2.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},Layout2.prototype.newGraphManager=function(){var gm=new LGraphManager(this);return this.graphManager=gm,gm},Layout2.prototype.newGraph=function(vGraph){return new LGraph(null,this.graphManager,vGraph)},Layout2.prototype.newNode=function(vNode){return new LNode(this.graphManager,vNode)},Layout2.prototype.newEdge=function(vEdge){return new LEdge(null,null,vEdge)},Layout2.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},Layout2.prototype.runLayout=function(){var isLayoutSuccessfull;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),isLayoutSuccessfull=!this.checkLayoutSuccess()&&this.layout(),"during"!==LayoutConstants.ANIMATE&&(isLayoutSuccessfull&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,isLayoutSuccessfull)},Layout2.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},Layout2.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var allEdges=this.graphManager.getAllEdges(),i=0;i<allEdges.length;i++)allEdges[i];var nodes=this.graphManager.getRoot().getNodes();for(i=0;i<nodes.length;i++)nodes[i];this.update(this.graphManager.getRoot())}},Layout2.prototype.update=function(obj){if(null==obj)this.update2();else if(obj instanceof LNode){var node=obj;if(null!=node.getChild())for(var nodes=node.getChild().getNodes(),i=0;i<nodes.length;i++)update(nodes[i]);null!=node.vGraphObject&&node.vGraphObject.update(node)}else if(obj instanceof LEdge){var edge=obj;null!=edge.vGraphObject&&edge.vGraphObject.update(edge)}else if(obj instanceof LGraph){var graph=obj;null!=graph.vGraphObject&&graph.vGraphObject.update(graph)}},Layout2.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=LayoutConstants.QUALITY,this.animationDuringLayout=LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=LayoutConstants.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=LayoutConstants.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},Layout2.prototype.transform=function(newLeftTop){if(null==newLeftTop)this.transform(new PointD(0,0));else{var trans=new Transform,leftTop=this.graphManager.getRoot().updateLeftTop();if(null!=leftTop){trans.setWorldOrgX(newLeftTop.x),trans.setWorldOrgY(newLeftTop.y),trans.setDeviceOrgX(leftTop.x),trans.setDeviceOrgY(leftTop.y);for(var nodes=this.getAllNodes(),i=0;i<nodes.length;i++)nodes[i].transform(trans)}}},Layout2.prototype.positionNodesRandomly=function(graph){if(null==graph)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var lNode,childGraph,nodes=graph.getNodes(),i=0;i<nodes.length;i++)null==(childGraph=(lNode=nodes[i]).getChild())||0==childGraph.getNodes().length?lNode.scatter():(this.positionNodesRandomly(childGraph),lNode.updateBounds())},Layout2.prototype.getFlatForest=function(){for(var flatForest=[],isForest=!0,allNodes=this.graphManager.getRoot().getNodes(),isFlat=!0,i=0;i<allNodes.length;i++)null!=allNodes[i].getChild()&&(isFlat=!1);if(!isFlat)return flatForest;var visited=new Set,toBeVisited=[],parents=new Map,unProcessedNodes=[];for(unProcessedNodes=unProcessedNodes.concat(allNodes);unProcessedNodes.length>0&&isForest;){for(toBeVisited.push(unProcessedNodes[0]);toBeVisited.length>0&&isForest;){var currentNode=toBeVisited[0];toBeVisited.splice(0,1),visited.add(currentNode);var neighborEdges=currentNode.getEdges();for(i=0;i<neighborEdges.length;i++){var currentNeighbor=neighborEdges[i].getOtherEnd(currentNode);if(parents.get(currentNode)!=currentNeighbor){if(visited.has(currentNeighbor)){isForest=!1;break}toBeVisited.push(currentNeighbor),parents.set(currentNeighbor,currentNode)}}}if(isForest){var temp=[].concat(_toConsumableArray(visited));for(flatForest.push(temp),i=0;i<temp.length;i++){var value=temp[i],index=unProcessedNodes.indexOf(value);index>-1&&unProcessedNodes.splice(index,1)}visited=new Set,parents=new Map}else flatForest=[]}return flatForest},Layout2.prototype.createDummyNodesForBendpoints=function(edge){for(var dummyNodes=[],prev=edge.source,graph=this.graphManager.calcLowestCommonAncestor(edge.source,edge.target),i=0;i<edge.bendpoints.length;i++){var dummyNode=this.newNode(null);dummyNode.setRect(new Point(0,0),new Dimension(1,1)),graph.add(dummyNode);var dummyEdge=this.newEdge(null);this.graphManager.add(dummyEdge,prev,dummyNode),dummyNodes.add(dummyNode),prev=dummyNode}return dummyEdge=this.newEdge(null),this.graphManager.add(dummyEdge,prev,edge.target),this.edgeToDummyNodes.set(edge,dummyNodes),edge.isInterGraph()?this.graphManager.remove(edge):graph.remove(edge),dummyNodes},Layout2.prototype.createBendpointsFromDummyNodes=function(){var edges=[];edges=edges.concat(this.graphManager.getAllEdges()),edges=[].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges);for(var k=0;k<edges.length;k++){var lEdge=edges[k];if(lEdge.bendpoints.length>0){for(var path=this.edgeToDummyNodes.get(lEdge),i=0;i<path.length;i++){var dummyNode=path[i],p=new PointD(dummyNode.getCenterX(),dummyNode.getCenterY()),ebp=lEdge.bendpoints.get(i);ebp.x=p.x,ebp.y=p.y,dummyNode.getOwner().remove(dummyNode)}this.graphManager.add(lEdge,lEdge.source,lEdge.target)}}},Layout2.transform=function(sliderValue,defaultValue,minDiv,maxMul){if(null!=minDiv&&null!=maxMul){var value=defaultValue;return sliderValue<=50?value-=(defaultValue-defaultValue/minDiv)/50*(50-sliderValue):value+=(defaultValue*maxMul-defaultValue)/50*(sliderValue-50),value}var a,b;return sliderValue<=50?(a=9*defaultValue/500,b=defaultValue/10):(a=9*defaultValue/50,b=-8*defaultValue),a*sliderValue+b},Layout2.findCenterOfTree=function(nodes){var list=[];list=list.concat(nodes);var removedNodes=[],remainingDegrees=new Map,foundCenter=!1,centerNode=null;1!=list.length&&2!=list.length||(foundCenter=!0,centerNode=list[0]);for(var i=0;i<list.length;i++){var degree=(node=list[i]).getNeighborsList().size;remainingDegrees.set(node,node.getNeighborsList().size),1==degree&&removedNodes.push(node)}var tempList=[];for(tempList=tempList.concat(removedNodes);!foundCenter;){var tempList2=[];for(tempList2=tempList2.concat(tempList),tempList=[],i=0;i<list.length;i++){var node=list[i],index=list.indexOf(node);index>=0&&list.splice(index,1),node.getNeighborsList().forEach(function(neighbour){if(removedNodes.indexOf(neighbour)<0){var newDegree=remainingDegrees.get(neighbour)-1;1==newDegree&&tempList.push(neighbour),remainingDegrees.set(neighbour,newDegree)}})}removedNodes=removedNodes.concat(tempList),1!=list.length&&2!=list.length||(foundCenter=!0,centerNode=list[0])}return centerNode},Layout2.prototype.setGraphManager=function(gm){this.graphManager=gm},module2.exports=Layout2},function(module2,exports$12,__webpack_require__){function RandomSeed(){}RandomSeed.seed=1,RandomSeed.x=0,RandomSeed.nextDouble=function(){return RandomSeed.x=1e4*Math.sin(RandomSeed.seed++),RandomSeed.x-Math.floor(RandomSeed.x)},module2.exports=RandomSeed},function(module2,exports$12,__webpack_require__){var PointD=__webpack_require__(4);function Transform(x,y){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}Transform.prototype.getWorldOrgX=function(){return this.lworldOrgX},Transform.prototype.setWorldOrgX=function(wox){this.lworldOrgX=wox},Transform.prototype.getWorldOrgY=function(){return this.lworldOrgY},Transform.prototype.setWorldOrgY=function(woy){this.lworldOrgY=woy},Transform.prototype.getWorldExtX=function(){return this.lworldExtX},Transform.prototype.setWorldExtX=function(wex){this.lworldExtX=wex},Transform.prototype.getWorldExtY=function(){return this.lworldExtY},Transform.prototype.setWorldExtY=function(wey){this.lworldExtY=wey},Transform.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},Transform.prototype.setDeviceOrgX=function(dox){this.ldeviceOrgX=dox},Transform.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},Transform.prototype.setDeviceOrgY=function(doy){this.ldeviceOrgY=doy},Transform.prototype.getDeviceExtX=function(){return this.ldeviceExtX},Transform.prototype.setDeviceExtX=function(dex){this.ldeviceExtX=dex},Transform.prototype.getDeviceExtY=function(){return this.ldeviceExtY},Transform.prototype.setDeviceExtY=function(dey){this.ldeviceExtY=dey},Transform.prototype.transformX=function(x){var xDevice=0,worldExtX=this.lworldExtX;return 0!=worldExtX&&(xDevice=this.ldeviceOrgX+(x-this.lworldOrgX)*this.ldeviceExtX/worldExtX),xDevice},Transform.prototype.transformY=function(y){var yDevice=0,worldExtY=this.lworldExtY;return 0!=worldExtY&&(yDevice=this.ldeviceOrgY+(y-this.lworldOrgY)*this.ldeviceExtY/worldExtY),yDevice},Transform.prototype.inverseTransformX=function(x){var xWorld=0,deviceExtX=this.ldeviceExtX;return 0!=deviceExtX&&(xWorld=this.lworldOrgX+(x-this.ldeviceOrgX)*this.lworldExtX/deviceExtX),xWorld},Transform.prototype.inverseTransformY=function(y){var yWorld=0,deviceExtY=this.ldeviceExtY;return 0!=deviceExtY&&(yWorld=this.lworldOrgY+(y-this.ldeviceOrgY)*this.lworldExtY/deviceExtY),yWorld},Transform.prototype.inverseTransformPoint=function(inPoint){return new PointD(this.inverseTransformX(inPoint.x),this.inverseTransformY(inPoint.y))},module2.exports=Transform},function(module2,exports$12,__webpack_require__){var Layout2=__webpack_require__(15),FDLayoutConstants=__webpack_require__(7),LayoutConstants=__webpack_require__(0),IGeometry=__webpack_require__(8),IMath=__webpack_require__(9);function FDLayout(){Layout2.call(this),this.useSmartIdealEdgeLengthCalculation=FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=FDLayoutConstants.DEFAULT_EDGE_LENGTH,this.springConstant=FDLayoutConstants.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=FDLayoutConstants.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*FDLayoutConstants.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=FDLayoutConstants.MAX_ITERATIONS}for(var prop in FDLayout.prototype=Object.create(Layout2.prototype),Layout2)FDLayout[prop]=Layout2[prop];FDLayout.prototype.initParameters=function(){Layout2.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},FDLayout.prototype.calcIdealEdgeLengths=function(){for(var edge,lcaDepth,source,target,sizeOfSourceInLca,sizeOfTargetInLca,allEdges=this.getGraphManager().getAllEdges(),i=0;i<allEdges.length;i++)(edge=allEdges[i]).idealLength=this.idealEdgeLength,edge.isInterGraph&&(source=edge.getSource(),target=edge.getTarget(),sizeOfSourceInLca=edge.getSourceInLca().getEstimatedSize(),sizeOfTargetInLca=edge.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(edge.idealLength+=sizeOfSourceInLca+sizeOfTargetInLca-2*LayoutConstants.SIMPLE_NODE_SIZE),lcaDepth=edge.getLca().getInclusionTreeDepth(),edge.idealLength+=FDLayoutConstants.DEFAULT_EDGE_LENGTH*FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(source.getInclusionTreeDepth()+target.getInclusionTreeDepth()-2*lcaDepth))},FDLayout.prototype.initSpringEmbedder=function(){var s=this.getAllNodes().length;this.incremental?(s>FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*FDLayoutConstants.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(s-FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT)/(FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT-FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-FDLayoutConstants.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL):(s>FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR,1-(s-FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT)/(FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT-FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT)*(1-FDLayoutConstants.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=FDLayoutConstants.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},FDLayout.prototype.calcSpringForces=function(){for(var edge,lEdges=this.getAllEdges(),i=0;i<lEdges.length;i++)edge=lEdges[i],this.calcSpringForce(edge,edge.idealLength)},FDLayout.prototype.calcRepulsionForces=function(){var i,j,nodeA,nodeB,processedNodeSet,gridUpdateAllowed=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],forceToNodeSurroundingUpdate=arguments.length>1&&void 0!==arguments[1]&&arguments[1],lNodes=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD==1&&gridUpdateAllowed&&this.updateGrid(),processedNodeSet=new Set,i=0;i<lNodes.length;i++)nodeA=lNodes[i],this.calculateRepulsionForceOfANode(nodeA,processedNodeSet,gridUpdateAllowed,forceToNodeSurroundingUpdate),processedNodeSet.add(nodeA);else for(i=0;i<lNodes.length;i++)for(nodeA=lNodes[i],j=i+1;j<lNodes.length;j++)nodeB=lNodes[j],nodeA.getOwner()==nodeB.getOwner()&&this.calcRepulsionForce(nodeA,nodeB)},FDLayout.prototype.calcGravitationalForces=function(){for(var node,lNodes=this.getAllNodesToApplyGravitation(),i=0;i<lNodes.length;i++)node=lNodes[i],this.calcGravitationalForce(node)},FDLayout.prototype.moveNodes=function(){for(var lNodes=this.getAllNodes(),i=0;i<lNodes.length;i++)lNodes[i].move()},FDLayout.prototype.calcSpringForce=function(edge,idealLength){var length,springForce,springForceX,springForceY,sourceNode=edge.getSource(),targetNode=edge.getTarget();if(this.uniformLeafNodeSizes&&null==sourceNode.getChild()&&null==targetNode.getChild())edge.updateLengthSimple();else if(edge.updateLength(),edge.isOverlapingSourceAndTarget)return;0!=(length=edge.getLength())&&(springForceX=(springForce=this.springConstant*(length-idealLength))*(edge.lengthX/length),springForceY=springForce*(edge.lengthY/length),sourceNode.springForceX+=springForceX,sourceNode.springForceY+=springForceY,targetNode.springForceX-=springForceX,targetNode.springForceY-=springForceY)},FDLayout.prototype.calcRepulsionForce=function(nodeA,nodeB){var distanceX,distanceY,distanceSquared,distance,repulsionForce,repulsionForceX,repulsionForceY,rectA=nodeA.getRect(),rectB=nodeB.getRect(),overlapAmount=new Array(2),clipPoints=new Array(4);if(rectA.intersects(rectB)){IGeometry.calcSeparationAmount(rectA,rectB,overlapAmount,FDLayoutConstants.DEFAULT_EDGE_LENGTH/2),repulsionForceX=2*overlapAmount[0],repulsionForceY=2*overlapAmount[1];var childrenConstant=nodeA.noOfChildren*nodeB.noOfChildren/(nodeA.noOfChildren+nodeB.noOfChildren);nodeA.repulsionForceX-=childrenConstant*repulsionForceX,nodeA.repulsionForceY-=childrenConstant*repulsionForceY,nodeB.repulsionForceX+=childrenConstant*repulsionForceX,nodeB.repulsionForceY+=childrenConstant*repulsionForceY}else this.uniformLeafNodeSizes&&null==nodeA.getChild()&&null==nodeB.getChild()?(distanceX=rectB.getCenterX()-rectA.getCenterX(),distanceY=rectB.getCenterY()-rectA.getCenterY()):(IGeometry.getIntersection(rectA,rectB,clipPoints),distanceX=clipPoints[2]-clipPoints[0],distanceY=clipPoints[3]-clipPoints[1]),Math.abs(distanceX)<FDLayoutConstants.MIN_REPULSION_DIST&&(distanceX=IMath.sign(distanceX)*FDLayoutConstants.MIN_REPULSION_DIST),Math.abs(distanceY)<FDLayoutConstants.MIN_REPULSION_DIST&&(distanceY=IMath.sign(distanceY)*FDLayoutConstants.MIN_REPULSION_DIST),distanceSquared=distanceX*distanceX+distanceY*distanceY,distance=Math.sqrt(distanceSquared),repulsionForceX=(repulsionForce=this.repulsionConstant*nodeA.noOfChildren*nodeB.noOfChildren/distanceSquared)*distanceX/distance,repulsionForceY=repulsionForce*distanceY/distance,nodeA.repulsionForceX-=repulsionForceX,nodeA.repulsionForceY-=repulsionForceY,nodeB.repulsionForceX+=repulsionForceX,nodeB.repulsionForceY+=repulsionForceY},FDLayout.prototype.calcGravitationalForce=function(node){var ownerGraph,ownerCenterX,ownerCenterY,distanceX,distanceY,absDistanceX,absDistanceY,estimatedSize;ownerCenterX=((ownerGraph=node.getOwner()).getRight()+ownerGraph.getLeft())/2,ownerCenterY=(ownerGraph.getTop()+ownerGraph.getBottom())/2,distanceX=node.getCenterX()-ownerCenterX,distanceY=node.getCenterY()-ownerCenterY,absDistanceX=Math.abs(distanceX)+node.getWidth()/2,absDistanceY=Math.abs(distanceY)+node.getHeight()/2,node.getOwner()==this.graphManager.getRoot()?(absDistanceX>(estimatedSize=ownerGraph.getEstimatedSize()*this.gravityRangeFactor)||absDistanceY>estimatedSize)&&(node.gravitationForceX=-this.gravityConstant*distanceX,node.gravitationForceY=-this.gravityConstant*distanceY):(absDistanceX>(estimatedSize=ownerGraph.getEstimatedSize()*this.compoundGravityRangeFactor)||absDistanceY>estimatedSize)&&(node.gravitationForceX=-this.gravityConstant*distanceX*this.compoundGravityConstant,node.gravitationForceY=-this.gravityConstant*distanceY*this.compoundGravityConstant)},FDLayout.prototype.isConverged=function(){var converged,oscilating=!1;return this.totalIterations>this.maxIterations/3&&(oscilating=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),converged=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,converged||oscilating},FDLayout.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},FDLayout.prototype.calcNoOfChildrenForAllNodes=function(){for(var node,allNodes=this.graphManager.getAllNodes(),i=0;i<allNodes.length;i++)(node=allNodes[i]).noOfChildren=node.getNoOfChildren()},FDLayout.prototype.calcGrid=function(graph){var sizeX,sizeY;sizeX=parseInt(Math.ceil((graph.getRight()-graph.getLeft())/this.repulsionRange)),sizeY=parseInt(Math.ceil((graph.getBottom()-graph.getTop())/this.repulsionRange));for(var grid=new Array(sizeX),i=0;i<sizeX;i++)grid[i]=new Array(sizeY);for(i=0;i<sizeX;i++)for(var j=0;j<sizeY;j++)grid[i][j]=new Array;return grid},FDLayout.prototype.addNodeToGrid=function(v,left,top){var startX,finishX,startY,finishY;startX=parseInt(Math.floor((v.getRect().x-left)/this.repulsionRange)),finishX=parseInt(Math.floor((v.getRect().width+v.getRect().x-left)/this.repulsionRange)),startY=parseInt(Math.floor((v.getRect().y-top)/this.repulsionRange)),finishY=parseInt(Math.floor((v.getRect().height+v.getRect().y-top)/this.repulsionRange));for(var i=startX;i<=finishX;i++)for(var j=startY;j<=finishY;j++)this.grid[i][j].push(v),v.setGridCoordinates(startX,finishX,startY,finishY)},FDLayout.prototype.updateGrid=function(){var i,nodeA,lNodes=this.getAllNodes();for(this.grid=this.calcGrid(this.graphManager.getRoot()),i=0;i<lNodes.length;i++)nodeA=lNodes[i],this.addNodeToGrid(nodeA,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},FDLayout.prototype.calculateRepulsionForceOfANode=function(nodeA,processedNodeSet,gridUpdateAllowed,forceToNodeSurroundingUpdate){if(this.totalIterations%FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD==1&&gridUpdateAllowed||forceToNodeSurroundingUpdate){var nodeB,surrounding=new Set;nodeA.surrounding=new Array;for(var grid=this.grid,i=nodeA.startX-1;i<nodeA.finishX+2;i++)for(var j=nodeA.startY-1;j<nodeA.finishY+2;j++)if(!(i<0||j<0||i>=grid.length||j>=grid[0].length))for(var k=0;k<grid[i][j].length;k++)if(nodeB=grid[i][j][k],nodeA.getOwner()==nodeB.getOwner()&&nodeA!=nodeB&&!processedNodeSet.has(nodeB)&&!surrounding.has(nodeB)){var distanceX=Math.abs(nodeA.getCenterX()-nodeB.getCenterX())-(nodeA.getWidth()/2+nodeB.getWidth()/2),distanceY=Math.abs(nodeA.getCenterY()-nodeB.getCenterY())-(nodeA.getHeight()/2+nodeB.getHeight()/2);distanceX<=this.repulsionRange&&distanceY<=this.repulsionRange&&surrounding.add(nodeB)}nodeA.surrounding=[].concat(function(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}(surrounding))}for(i=0;i<nodeA.surrounding.length;i++)this.calcRepulsionForce(nodeA,nodeA.surrounding[i])},FDLayout.prototype.calcRepulsionRange=function(){return 0},module2.exports=FDLayout},function(module2,exports$12,__webpack_require__){var LEdge=__webpack_require__(1),FDLayoutConstants=__webpack_require__(7);function FDLayoutEdge(source,target,vEdge){LEdge.call(this,source,target,vEdge),this.idealLength=FDLayoutConstants.DEFAULT_EDGE_LENGTH}for(var prop in FDLayoutEdge.prototype=Object.create(LEdge.prototype),LEdge)FDLayoutEdge[prop]=LEdge[prop];module2.exports=FDLayoutEdge},function(module2,exports$12,__webpack_require__){var LNode=__webpack_require__(3);function FDLayoutNode(gm,loc,size,vNode){LNode.call(this,gm,loc,size,vNode),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var prop in FDLayoutNode.prototype=Object.create(LNode.prototype),LNode)FDLayoutNode[prop]=LNode[prop];FDLayoutNode.prototype.setGridCoordinates=function(_startX,_finishX,_startY,_finishY){this.startX=_startX,this.finishX=_finishX,this.startY=_startY,this.finishY=_finishY},module2.exports=FDLayoutNode},function(module2,exports$12,__webpack_require__){function DimensionD2(width,height){this.width=0,this.height=0,null!==width&&null!==height&&(this.height=height,this.width=width)}DimensionD2.prototype.getWidth=function(){return this.width},DimensionD2.prototype.setWidth=function(width){this.width=width},DimensionD2.prototype.getHeight=function(){return this.height},DimensionD2.prototype.setHeight=function(height){this.height=height},module2.exports=DimensionD2},function(module2,exports$12,__webpack_require__){var UniqueIDGeneretor=__webpack_require__(14);function HashMap(){this.map={},this.keys=[]}HashMap.prototype.put=function(key,value){var theId=UniqueIDGeneretor.createID(key);this.contains(theId)||(this.map[theId]=value,this.keys.push(key))},HashMap.prototype.contains=function(key){return UniqueIDGeneretor.createID(key),null!=this.map[key]},HashMap.prototype.get=function(key){var theId=UniqueIDGeneretor.createID(key);return this.map[theId]},HashMap.prototype.keySet=function(){return this.keys},module2.exports=HashMap},function(module2,exports$12,__webpack_require__){var UniqueIDGeneretor=__webpack_require__(14);function HashSet(){this.set={}}HashSet.prototype.add=function(obj){var theId=UniqueIDGeneretor.createID(obj);this.contains(theId)||(this.set[theId]=obj)},HashSet.prototype.remove=function(obj){delete this.set[UniqueIDGeneretor.createID(obj)]},HashSet.prototype.clear=function(){this.set={}},HashSet.prototype.contains=function(obj){return this.set[UniqueIDGeneretor.createID(obj)]==obj},HashSet.prototype.isEmpty=function(){return 0===this.size()},HashSet.prototype.size=function(){return Object.keys(this.set).length},HashSet.prototype.addAllTo=function(list){for(var keys=Object.keys(this.set),length=keys.length,i=0;i<length;i++)list.push(this.set[keys[i]])},HashSet.prototype.size=function(){return Object.keys(this.set).length},HashSet.prototype.addAll=function(list){for(var s=list.length,i=0;i<s;i++){var v=list[i];this.add(v)}},module2.exports=HashSet},function(module2,exports$12,__webpack_require__){var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),LinkedList=__webpack_require__(11),Quicksort=function(){function Quicksort2(A,compareFunction){!function(instance2,Constructor){if(!(instance2 instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,Quicksort2),null===compareFunction&&void 0===compareFunction||(this.compareFunction=this._defaultCompareFunction);var length=void 0;length=A instanceof LinkedList?A.size():A.length,this._quicksort(A,0,length-1)}return _createClass(Quicksort2,[{key:"_quicksort",value:function(A,p,r){if(p<r){var q=this._partition(A,p,r);this._quicksort(A,p,q),this._quicksort(A,q+1,r)}}},{key:"_partition",value:function(A,p,r){for(var x=this._get(A,p),i=p,j=r;;){for(;this.compareFunction(x,this._get(A,j));)j--;for(;this.compareFunction(this._get(A,i),x);)i++;if(!(i<j))return j;this._swap(A,i,j),i++,j--}}},{key:"_get",value:function(object,index){return object instanceof LinkedList?object.get_object_at(index):object[index]}},{key:"_set",value:function(object,index,value){object instanceof LinkedList?object.set_object_at(index,value):object[index]=value}},{key:"_swap",value:function(A,i,j){var temp=this._get(A,i);this._set(A,i,this._get(A,j)),this._set(A,j,temp)}},{key:"_defaultCompareFunction",value:function(a,b){return b>a}}]),Quicksort2}();module2.exports=Quicksort},function(module2,exports$12,__webpack_require__){var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),NeedlemanWunsch=function(){function NeedlemanWunsch2(sequence1,sequence2){var match_score=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,mismatch_penalty=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,gap_penalty=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;!function(instance2,Constructor){if(!(instance2 instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,NeedlemanWunsch2),this.sequence1=sequence1,this.sequence2=sequence2,this.match_score=match_score,this.mismatch_penalty=mismatch_penalty,this.gap_penalty=gap_penalty,this.iMax=sequence1.length+1,this.jMax=sequence2.length+1,this.grid=new Array(this.iMax);for(var i=0;i<this.iMax;i++){this.grid[i]=new Array(this.jMax);for(var j=0;j<this.jMax;j++)this.grid[i][j]=0}this.tracebackGrid=new Array(this.iMax);for(var _i=0;_i<this.iMax;_i++){this.tracebackGrid[_i]=new Array(this.jMax);for(var _j=0;_j<this.jMax;_j++)this.tracebackGrid[_i][_j]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return _createClass(NeedlemanWunsch2,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var j=1;j<this.jMax;j++)this.grid[0][j]=this.grid[0][j-1]+this.gap_penalty,this.tracebackGrid[0][j]=[!1,!1,!0];for(var i=1;i<this.iMax;i++)this.grid[i][0]=this.grid[i-1][0]+this.gap_penalty,this.tracebackGrid[i][0]=[!1,!0,!1];for(var _i2=1;_i2<this.iMax;_i2++)for(var _j2=1;_j2<this.jMax;_j2++){var maxOf=[this.sequence1[_i2-1]===this.sequence2[_j2-1]?this.grid[_i2-1][_j2-1]+this.match_score:this.grid[_i2-1][_j2-1]+this.mismatch_penalty,this.grid[_i2-1][_j2]+this.gap_penalty,this.grid[_i2][_j2-1]+this.gap_penalty],indices=this.arrayAllMaxIndexes(maxOf);this.grid[_i2][_j2]=maxOf[indices[0]],this.tracebackGrid[_i2][_j2]=[indices.includes(0),indices.includes(1),indices.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var inProcessAlignments=[];for(inProcessAlignments.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});inProcessAlignments[0];){var current=inProcessAlignments[0],directions=this.tracebackGrid[current.pos[0]][current.pos[1]];directions[0]&&inProcessAlignments.push({pos:[current.pos[0]-1,current.pos[1]-1],seq1:this.sequence1[current.pos[0]-1]+current.seq1,seq2:this.sequence2[current.pos[1]-1]+current.seq2}),directions[1]&&inProcessAlignments.push({pos:[current.pos[0]-1,current.pos[1]],seq1:this.sequence1[current.pos[0]-1]+current.seq1,seq2:"-"+current.seq2}),directions[2]&&inProcessAlignments.push({pos:[current.pos[0],current.pos[1]-1],seq1:"-"+current.seq1,seq2:this.sequence2[current.pos[1]-1]+current.seq2}),0===current.pos[0]&&0===current.pos[1]&&this.alignments.push({sequence1:current.seq1,sequence2:current.seq2}),inProcessAlignments.shift()}return this.alignments}},{key:"getAllIndexes",value:function(arr,val){for(var indexes=[],i=-1;-1!==(i=arr.indexOf(val,i+1));)indexes.push(i);return indexes}},{key:"arrayAllMaxIndexes",value:function(array){return this.getAllIndexes(array,Math.max.apply(null,array))}}]),NeedlemanWunsch2}();module2.exports=NeedlemanWunsch},function(module2,exports$12,__webpack_require__){var layoutBase2=function(){};layoutBase2.FDLayout=__webpack_require__(18),layoutBase2.FDLayoutConstants=__webpack_require__(7),layoutBase2.FDLayoutEdge=__webpack_require__(19),layoutBase2.FDLayoutNode=__webpack_require__(20),layoutBase2.DimensionD=__webpack_require__(21),layoutBase2.HashMap=__webpack_require__(22),layoutBase2.HashSet=__webpack_require__(23),layoutBase2.IGeometry=__webpack_require__(8),layoutBase2.IMath=__webpack_require__(9),layoutBase2.Integer=__webpack_require__(10),layoutBase2.Point=__webpack_require__(12),layoutBase2.PointD=__webpack_require__(4),layoutBase2.RandomSeed=__webpack_require__(16),layoutBase2.RectangleD=__webpack_require__(13),layoutBase2.Transform=__webpack_require__(17),layoutBase2.UniqueIDGeneretor=__webpack_require__(14),layoutBase2.Quicksort=__webpack_require__(24),layoutBase2.LinkedList=__webpack_require__(11),layoutBase2.LGraphObject=__webpack_require__(2),layoutBase2.LGraph=__webpack_require__(5),layoutBase2.LEdge=__webpack_require__(1),layoutBase2.LGraphManager=__webpack_require__(6),layoutBase2.LNode=__webpack_require__(3),layoutBase2.Layout=__webpack_require__(15),layoutBase2.LayoutConstants=__webpack_require__(0),layoutBase2.NeedlemanWunsch=__webpack_require__(25),module2.exports=layoutBase2},function(module2,exports$12,__webpack_require__){function Emitter(){this.listeners=[]}var p=Emitter.prototype;p.addListener=function(event,callback){this.listeners.push({event:event,callback:callback})},p.removeListener=function(event,callback){for(var i=this.listeners.length;i>=0;i--){var l=this.listeners[i];l.event===event&&l.callback===callback&&this.listeners.splice(i,1)}},p.emit=function(event,data){for(var i=0;i<this.listeners.length;i++){var l=this.listeners[i];event===l.event&&l.callback(data)}},module2.exports=Emitter}])},layoutBase$1.exports=factory());var factory}var hasRequiredCoseBase;var hasRequiredCytoscapeCoseBilkent,__WEBPACK_EXTERNAL_MODULE_0__;const coseBilkent=getDefaultExportFromCjs((hasRequiredCytoscapeCoseBilkent||(hasRequiredCytoscapeCoseBilkent=1,cytoscapeCoseBilkent$1.exports=(__WEBPACK_EXTERNAL_MODULE_0__=hasRequiredCoseBase?coseBase$1.exports:(hasRequiredCoseBase=1,coseBase$1.exports=function(__WEBPACK_EXTERNAL_MODULE_0__){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module2=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module2.exports,module2,module2.exports,__webpack_require__),module2.l=!0,module2.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports$12,name,getter){__webpack_require__.o(exports$12,name)||Object.defineProperty(exports$12,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module2){var getter=module2&&module2.__esModule?function(){return module2.default}:function(){return module2};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=7)}([function(module2,exports$12){module2.exports=__WEBPACK_EXTERNAL_MODULE_0__},function(module2,exports$12,__webpack_require__){var FDLayoutConstants=__webpack_require__(0).FDLayoutConstants;function CoSEConstants(){}for(var prop in FDLayoutConstants)CoSEConstants[prop]=FDLayoutConstants[prop];CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,CoSEConstants.DEFAULT_RADIAL_SEPARATION=FDLayoutConstants.DEFAULT_EDGE_LENGTH,CoSEConstants.DEFAULT_COMPONENT_SEPERATION=60,CoSEConstants.TILE=!0,CoSEConstants.TILING_PADDING_VERTICAL=10,CoSEConstants.TILING_PADDING_HORIZONTAL=10,CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL=!1,module2.exports=CoSEConstants},function(module2,exports$12,__webpack_require__){var FDLayoutEdge=__webpack_require__(0).FDLayoutEdge;function CoSEEdge(source,target,vEdge){FDLayoutEdge.call(this,source,target,vEdge)}for(var prop in CoSEEdge.prototype=Object.create(FDLayoutEdge.prototype),FDLayoutEdge)CoSEEdge[prop]=FDLayoutEdge[prop];module2.exports=CoSEEdge},function(module2,exports$12,__webpack_require__){var LGraph=__webpack_require__(0).LGraph;function CoSEGraph(parent,graphMgr,vGraph){LGraph.call(this,parent,graphMgr,vGraph)}for(var prop in CoSEGraph.prototype=Object.create(LGraph.prototype),LGraph)CoSEGraph[prop]=LGraph[prop];module2.exports=CoSEGraph},function(module2,exports$12,__webpack_require__){var LGraphManager=__webpack_require__(0).LGraphManager;function CoSEGraphManager(layout){LGraphManager.call(this,layout)}for(var prop in CoSEGraphManager.prototype=Object.create(LGraphManager.prototype),LGraphManager)CoSEGraphManager[prop]=LGraphManager[prop];module2.exports=CoSEGraphManager},function(module2,exports$12,__webpack_require__){var FDLayoutNode=__webpack_require__(0).FDLayoutNode,IMath=__webpack_require__(0).IMath;function CoSENode(gm,loc,size,vNode){FDLayoutNode.call(this,gm,loc,size,vNode)}for(var prop in CoSENode.prototype=Object.create(FDLayoutNode.prototype),FDLayoutNode)CoSENode[prop]=FDLayoutNode[prop];CoSENode.prototype.move=function(){var layout=this.graphManager.getLayout();this.displacementX=layout.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=layout.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>layout.coolingFactor*layout.maxNodeDisplacement&&(this.displacementX=layout.coolingFactor*layout.maxNodeDisplacement*IMath.sign(this.displacementX)),Math.abs(this.displacementY)>layout.coolingFactor*layout.maxNodeDisplacement&&(this.displacementY=layout.coolingFactor*layout.maxNodeDisplacement*IMath.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),layout.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},CoSENode.prototype.propogateDisplacementToChildren=function(dX,dY){for(var node,nodes=this.getChild().getNodes(),i=0;i<nodes.length;i++)null==(node=nodes[i]).getChild()?(node.moveBy(dX,dY),node.displacementX+=dX,node.displacementY+=dY):node.propogateDisplacementToChildren(dX,dY)},CoSENode.prototype.setPred1=function(pred12){this.pred1=pred12},CoSENode.prototype.getPred1=function(){return pred1},CoSENode.prototype.getPred2=function(){return pred2},CoSENode.prototype.setNext=function(next2){this.next=next2},CoSENode.prototype.getNext=function(){return next},CoSENode.prototype.setProcessed=function(processed2){this.processed=processed2},CoSENode.prototype.isProcessed=function(){return processed},module2.exports=CoSENode},function(module2,exports$12,__webpack_require__){var FDLayout=__webpack_require__(0).FDLayout,CoSEGraphManager=__webpack_require__(4),CoSEGraph=__webpack_require__(3),CoSENode=__webpack_require__(5),CoSEEdge=__webpack_require__(2),CoSEConstants=__webpack_require__(1),FDLayoutConstants=__webpack_require__(0).FDLayoutConstants,LayoutConstants=__webpack_require__(0).LayoutConstants,Point2=__webpack_require__(0).Point,PointD=__webpack_require__(0).PointD,Layout2=__webpack_require__(0).Layout,Integer=__webpack_require__(0).Integer,IGeometry=__webpack_require__(0).IGeometry,LGraph=__webpack_require__(0).LGraph,Transform=__webpack_require__(0).Transform;function CoSELayout(){FDLayout.call(this),this.toBeTiled={}}for(var prop in CoSELayout.prototype=Object.create(FDLayout.prototype),FDLayout)CoSELayout[prop]=FDLayout[prop];CoSELayout.prototype.newGraphManager=function(){var gm=new CoSEGraphManager(this);return this.graphManager=gm,gm},CoSELayout.prototype.newGraph=function(vGraph){return new CoSEGraph(null,this.graphManager,vGraph)},CoSELayout.prototype.newNode=function(vNode){return new CoSENode(this.graphManager,vNode)},CoSELayout.prototype.newEdge=function(vEdge){return new CoSEEdge(null,null,vEdge)},CoSELayout.prototype.initParameters=function(){FDLayout.prototype.initParameters.call(this,arguments),this.isSubLayout||(CoSEConstants.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=CoSEConstants.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=FDLayoutConstants.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=FDLayoutConstants.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/FDLayoutConstants.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=FDLayoutConstants.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},CoSELayout.prototype.layout=function(){return LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},CoSELayout.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental)CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),allNodes=new Set(this.getAllNodes()),intersection=this.nodesWithGravity.filter(function(x){return allNodes.has(x)}),this.graphManager.setAllNodesToApplyGravitation(intersection));else{var forest=this.getFlatForest();if(forest.length>0)this.positionNodesRadially(forest);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var allNodes=new Set(this.getAllNodes()),intersection=this.nodesWithGravity.filter(function(x){return allNodes.has(x)});this.graphManager.setAllNodesToApplyGravitation(intersection),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},CoSELayout.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%FDLayoutConstants.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var allNodes=new Set(this.getAllNodes()),intersection=this.nodesWithGravity.filter(function(x){return allNodes.has(x)});this.graphManager.setAllNodesToApplyGravitation(intersection),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var gridUpdateAllowed=!this.isTreeGrowing&&!this.isGrowthFinished,forceToNodeSurroundingUpdate=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(gridUpdateAllowed,forceToNodeSurroundingUpdate),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},CoSELayout.prototype.getPositionsData=function(){for(var allNodes=this.graphManager.getAllNodes(),pData={},i=0;i<allNodes.length;i++){var rect=allNodes[i].rect,id=allNodes[i].id;pData[id]={id:id,x:rect.getCenterX(),y:rect.getCenterY(),w:rect.width,h:rect.height}}return pData},CoSELayout.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var layoutEnded=!1;if("during"===FDLayoutConstants.ANIMATE)this.emit("layoutstarted");else{for(;!layoutEnded;)layoutEnded=this.tick();this.graphManager.updateBounds()}},CoSELayout.prototype.calculateNodesToApplyGravitationTo=function(){var graph,i,nodeList=[],graphs=this.graphManager.getGraphs(),size=graphs.length;for(i=0;i<size;i++)(graph=graphs[i]).updateConnected(),graph.isConnected||(nodeList=nodeList.concat(graph.getNodes()));return nodeList},CoSELayout.prototype.createBendpoints=function(){var edges=[];edges=edges.concat(this.graphManager.getAllEdges());var i,visited=new Set;for(i=0;i<edges.length;i++){var edge=edges[i];if(!visited.has(edge)){var source=edge.getSource(),target=edge.getTarget();if(source==target)edge.getBendpoints().push(new PointD),edge.getBendpoints().push(new PointD),this.createDummyNodesForBendpoints(edge),visited.add(edge);else{var edgeList=[];if(edgeList=(edgeList=edgeList.concat(source.getEdgeListToNode(target))).concat(target.getEdgeListToNode(source)),!visited.has(edgeList[0])){var k;if(edgeList.length>1)for(k=0;k<edgeList.length;k++){var multiEdge=edgeList[k];multiEdge.getBendpoints().push(new PointD),this.createDummyNodesForBendpoints(multiEdge)}edgeList.forEach(function(edge2){visited.add(edge2)})}}}if(visited.size==edges.length)break}},CoSELayout.prototype.positionNodesRadially=function(forest){for(var currentStartingPoint=new Point2(0,0),numberOfColumns=Math.ceil(Math.sqrt(forest.length)),height=0,currentY=0,currentX=0,point=new PointD(0,0),i=0;i<forest.length;i++){i%numberOfColumns==0&&(currentX=0,currentY=height,0!=i&&(currentY+=CoSEConstants.DEFAULT_COMPONENT_SEPERATION),height=0);var tree=forest[i],centerNode=Layout2.findCenterOfTree(tree);currentStartingPoint.x=currentX,currentStartingPoint.y=currentY,(point=CoSELayout.radialLayout(tree,centerNode,currentStartingPoint)).y>height&&(height=Math.floor(point.y)),currentX=Math.floor(point.x+CoSEConstants.DEFAULT_COMPONENT_SEPERATION)}this.transform(new PointD(LayoutConstants.WORLD_CENTER_X-point.x/2,LayoutConstants.WORLD_CENTER_Y-point.y/2))},CoSELayout.radialLayout=function(tree,centerNode,startingPoint){var radialSep=Math.max(this.maxDiagonalInTree(tree),CoSEConstants.DEFAULT_RADIAL_SEPARATION);CoSELayout.branchRadialLayout(centerNode,null,0,359,0,radialSep);var bounds=LGraph.calculateBounds(tree),transform=new Transform;transform.setDeviceOrgX(bounds.getMinX()),transform.setDeviceOrgY(bounds.getMinY()),transform.setWorldOrgX(startingPoint.x),transform.setWorldOrgY(startingPoint.y);for(var i=0;i<tree.length;i++)tree[i].transform(transform);var bottomRight=new PointD(bounds.getMaxX(),bounds.getMaxY());return transform.inverseTransformPoint(bottomRight)},CoSELayout.branchRadialLayout=function(node,parentOfNode,startAngle,endAngle,distance,radialSeparation){var halfInterval=(endAngle-startAngle+1)/2;halfInterval<0&&(halfInterval+=180);var teta=(halfInterval+startAngle)%360*IGeometry.TWO_PI/360,x_=distance*Math.cos(teta),y_=distance*Math.sin(teta);node.setCenter(x_,y_);var neighborEdges=[],childCount=(neighborEdges=neighborEdges.concat(node.getEdges())).length;null!=parentOfNode&&childCount--;for(var startIndex,branchCount=0,incEdgesCount=neighborEdges.length,edges=node.getEdgesBetween(parentOfNode);edges.length>1;){var temp=edges[0];edges.splice(0,1);var index=neighborEdges.indexOf(temp);index>=0&&neighborEdges.splice(index,1),incEdgesCount--,childCount--}startIndex=null!=parentOfNode?(neighborEdges.indexOf(edges[0])+1)%incEdgesCount:0;for(var stepAngle=Math.abs(endAngle-startAngle)/childCount,i=startIndex;branchCount!=childCount;i=++i%incEdgesCount){var currentNeighbor=neighborEdges[i].getOtherEnd(node);if(currentNeighbor!=parentOfNode){var childStartAngle=(startAngle+branchCount*stepAngle)%360,childEndAngle=(childStartAngle+stepAngle)%360;CoSELayout.branchRadialLayout(currentNeighbor,node,childStartAngle,childEndAngle,distance+radialSeparation,radialSeparation),branchCount++}}},CoSELayout.maxDiagonalInTree=function(tree){for(var maxDiagonal=Integer.MIN_VALUE,i=0;i<tree.length;i++){var diagonal=tree[i].getDiagonal();diagonal>maxDiagonal&&(maxDiagonal=diagonal)}return maxDiagonal},CoSELayout.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},CoSELayout.prototype.groupZeroDegreeMembers=function(){var self=this,tempMemberGroups={};this.memberGroups={},this.idToDummyNode={};for(var zeroDegree=[],allNodes=this.graphManager.getAllNodes(),i=0;i<allNodes.length;i++){var parent=(node=allNodes[i]).getParent();0!==this.getNodeDegreeWithChildren(node)||null!=parent.id&&this.getToBeTiled(parent)||zeroDegree.push(node)}for(i=0;i<zeroDegree.length;i++){var node,p_id=(node=zeroDegree[i]).getParent().id;void 0===tempMemberGroups[p_id]&&(tempMemberGroups[p_id]=[]),tempMemberGroups[p_id]=tempMemberGroups[p_id].concat(node)}Object.keys(tempMemberGroups).forEach(function(p_id2){if(tempMemberGroups[p_id2].length>1){var dummyCompoundId="DummyCompound_"+p_id2;self.memberGroups[dummyCompoundId]=tempMemberGroups[p_id2];var parent2=tempMemberGroups[p_id2][0].getParent(),dummyCompound=new CoSENode(self.graphManager);dummyCompound.id=dummyCompoundId,dummyCompound.paddingLeft=parent2.paddingLeft||0,dummyCompound.paddingRight=parent2.paddingRight||0,dummyCompound.paddingBottom=parent2.paddingBottom||0,dummyCompound.paddingTop=parent2.paddingTop||0,self.idToDummyNode[dummyCompoundId]=dummyCompound;var dummyParentGraph=self.getGraphManager().add(self.newGraph(),dummyCompound),parentGraph=parent2.getChild();parentGraph.add(dummyCompound);for(var i2=0;i2<tempMemberGroups[p_id2].length;i2++){var node2=tempMemberGroups[p_id2][i2];parentGraph.remove(node2),dummyParentGraph.add(node2)}}})},CoSELayout.prototype.clearCompounds=function(){var childGraphMap={},idToNode={};this.performDFSOnCompounds();for(var i=0;i<this.compoundOrder.length;i++)idToNode[this.compoundOrder[i].id]=this.compoundOrder[i],childGraphMap[this.compoundOrder[i].id]=[].concat(this.compoundOrder[i].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[i].getChild()),this.compoundOrder[i].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(childGraphMap,idToNode)},CoSELayout.prototype.clearZeroDegreeMembers=function(){var self=this,tiledZeroDegreePack=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach(function(id){var compoundNode=self.idToDummyNode[id];tiledZeroDegreePack[id]=self.tileNodes(self.memberGroups[id],compoundNode.paddingLeft+compoundNode.paddingRight),compoundNode.rect.width=tiledZeroDegreePack[id].width,compoundNode.rect.height=tiledZeroDegreePack[id].height})},CoSELayout.prototype.repopulateCompounds=function(){for(var i=this.compoundOrder.length-1;i>=0;i--){var lCompoundNode=this.compoundOrder[i],id=lCompoundNode.id,horizontalMargin=lCompoundNode.paddingLeft,verticalMargin=lCompoundNode.paddingTop;this.adjustLocations(this.tiledMemberPack[id],lCompoundNode.rect.x,lCompoundNode.rect.y,horizontalMargin,verticalMargin)}},CoSELayout.prototype.repopulateZeroDegreeMembers=function(){var self=this,tiledPack=this.tiledZeroDegreePack;Object.keys(tiledPack).forEach(function(id){var compoundNode=self.idToDummyNode[id],horizontalMargin=compoundNode.paddingLeft,verticalMargin=compoundNode.paddingTop;self.adjustLocations(tiledPack[id],compoundNode.rect.x,compoundNode.rect.y,horizontalMargin,verticalMargin)})},CoSELayout.prototype.getToBeTiled=function(node){var id=node.id;if(null!=this.toBeTiled[id])return this.toBeTiled[id];var childGraph=node.getChild();if(null==childGraph)return this.toBeTiled[id]=!1,!1;for(var children=childGraph.getNodes(),i=0;i<children.length;i++){var theChild=children[i];if(this.getNodeDegree(theChild)>0)return this.toBeTiled[id]=!1,!1;if(null!=theChild.getChild()){if(!this.getToBeTiled(theChild))return this.toBeTiled[id]=!1,!1}else this.toBeTiled[theChild.id]=!1}return this.toBeTiled[id]=!0,!0},CoSELayout.prototype.getNodeDegree=function(node){node.id;for(var edges=node.getEdges(),degree=0,i=0;i<edges.length;i++){var edge=edges[i];edge.getSource().id!==edge.getTarget().id&&(degree+=1)}return degree},CoSELayout.prototype.getNodeDegreeWithChildren=function(node){var degree=this.getNodeDegree(node);if(null==node.getChild())return degree;for(var children=node.getChild().getNodes(),i=0;i<children.length;i++){var child=children[i];degree+=this.getNodeDegreeWithChildren(child)}return degree},CoSELayout.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},CoSELayout.prototype.fillCompexOrderByDFS=function(children){for(var i=0;i<children.length;i++){var child=children[i];null!=child.getChild()&&this.fillCompexOrderByDFS(child.getChild().getNodes()),this.getToBeTiled(child)&&this.compoundOrder.push(child)}},CoSELayout.prototype.adjustLocations=function(organization,x,y,compoundHorizontalMargin,compoundVerticalMargin){y+=compoundVerticalMargin;for(var left=x+=compoundHorizontalMargin,i=0;i<organization.rows.length;i++){var row=organization.rows[i];x=left;for(var maxHeight=0,j=0;j<row.length;j++){var lnode=row[j];lnode.rect.x=x,lnode.rect.y=y,x+=lnode.rect.width+organization.horizontalPadding,lnode.rect.height>maxHeight&&(maxHeight=lnode.rect.height)}y+=maxHeight+organization.verticalPadding}},CoSELayout.prototype.tileCompoundMembers=function(childGraphMap,idToNode){var self=this;this.tiledMemberPack=[],Object.keys(childGraphMap).forEach(function(id){var compoundNode=idToNode[id];self.tiledMemberPack[id]=self.tileNodes(childGraphMap[id],compoundNode.paddingLeft+compoundNode.paddingRight),compoundNode.rect.width=self.tiledMemberPack[id].width,compoundNode.rect.height=self.tiledMemberPack[id].height})},CoSELayout.prototype.tileNodes=function(nodes,minWidth){var organization={rows:[],rowWidth:[],rowHeight:[],width:0,height:minWidth,verticalPadding:CoSEConstants.TILING_PADDING_VERTICAL,horizontalPadding:CoSEConstants.TILING_PADDING_HORIZONTAL};nodes.sort(function(n1,n2){return n1.rect.width*n1.rect.height>n2.rect.width*n2.rect.height?-1:n1.rect.width*n1.rect.height<n2.rect.width*n2.rect.height?1:0});for(var i=0;i<nodes.length;i++){var lNode=nodes[i];0==organization.rows.length?this.insertNodeToRow(organization,lNode,0,minWidth):this.canAddHorizontal(organization,lNode.rect.width,lNode.rect.height)?this.insertNodeToRow(organization,lNode,this.getShortestRowIndex(organization),minWidth):this.insertNodeToRow(organization,lNode,organization.rows.length,minWidth),this.shiftToLastRow(organization)}return organization},CoSELayout.prototype.insertNodeToRow=function(organization,node,rowIndex,minWidth){var minCompoundSize=minWidth;rowIndex==organization.rows.length&&(organization.rows.push([]),organization.rowWidth.push(minCompoundSize),organization.rowHeight.push(0));var w=organization.rowWidth[rowIndex]+node.rect.width;organization.rows[rowIndex].length>0&&(w+=organization.horizontalPadding),organization.rowWidth[rowIndex]=w,organization.width<w&&(organization.width=w);var h=node.rect.height;rowIndex>0&&(h+=organization.verticalPadding);var extraHeight=0;h>organization.rowHeight[rowIndex]&&(extraHeight=organization.rowHeight[rowIndex],organization.rowHeight[rowIndex]=h,extraHeight=organization.rowHeight[rowIndex]-extraHeight),organization.height+=extraHeight,organization.rows[rowIndex].push(node)},CoSELayout.prototype.getShortestRowIndex=function(organization){for(var r=-1,min=Number.MAX_VALUE,i=0;i<organization.rows.length;i++)organization.rowWidth[i]<min&&(r=i,min=organization.rowWidth[i]);return r},CoSELayout.prototype.getLongestRowIndex=function(organization){for(var r=-1,max=Number.MIN_VALUE,i=0;i<organization.rows.length;i++)organization.rowWidth[i]>max&&(r=i,max=organization.rowWidth[i]);return r},CoSELayout.prototype.canAddHorizontal=function(organization,extraWidth,extraHeight){var sri=this.getShortestRowIndex(organization);if(sri<0)return!0;var min=organization.rowWidth[sri];if(min+organization.horizontalPadding+extraWidth<=organization.width)return!0;var add_to_row_ratio,add_new_row_ratio,hDiff=0;return organization.rowHeight[sri]<extraHeight&&sri>0&&(hDiff=extraHeight+organization.verticalPadding-organization.rowHeight[sri]),add_to_row_ratio=organization.width-min>=extraWidth+organization.horizontalPadding?(organization.height+hDiff)/(min+extraWidth+organization.horizontalPadding):(organization.height+hDiff)/organization.width,hDiff=extraHeight+organization.verticalPadding,(add_new_row_ratio=organization.width<extraWidth?(organization.height+hDiff)/extraWidth:(organization.height+hDiff)/organization.width)<1&&(add_new_row_ratio=1/add_new_row_ratio),add_to_row_ratio<1&&(add_to_row_ratio=1/add_to_row_ratio),add_to_row_ratio<add_new_row_ratio},CoSELayout.prototype.shiftToLastRow=function(organization){var longest=this.getLongestRowIndex(organization),last=organization.rowWidth.length-1,row=organization.rows[longest],node=row[row.length-1],diff=node.width+organization.horizontalPadding;if(organization.width-organization.rowWidth[last]>diff&&longest!=last){row.splice(-1,1),organization.rows[last].push(node),organization.rowWidth[longest]=organization.rowWidth[longest]-diff,organization.rowWidth[last]=organization.rowWidth[last]+diff,organization.width=organization.rowWidth[instance.getLongestRowIndex(organization)];for(var maxHeight=Number.MIN_VALUE,i=0;i<row.length;i++)row[i].height>maxHeight&&(maxHeight=row[i].height);longest>0&&(maxHeight+=organization.verticalPadding);var prevTotal=organization.rowHeight[longest]+organization.rowHeight[last];organization.rowHeight[longest]=maxHeight,organization.rowHeight[last]<node.height+organization.verticalPadding&&(organization.rowHeight[last]=node.height+organization.verticalPadding);var finalTotal=organization.rowHeight[longest]+organization.rowHeight[last];organization.height+=finalTotal-prevTotal,this.shiftToLastRow(organization)}},CoSELayout.prototype.tilingPreLayout=function(){CoSEConstants.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},CoSELayout.prototype.tilingPostLayout=function(){CoSEConstants.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},CoSELayout.prototype.reduceTrees=function(){for(var node,prunedNodesAll=[],containsLeaf=!0;containsLeaf;){var allNodes=this.graphManager.getAllNodes(),prunedNodesInStepTemp=[];containsLeaf=!1;for(var i=0;i<allNodes.length;i++)1!=(node=allNodes[i]).getEdges().length||node.getEdges()[0].isInterGraph||null!=node.getChild()||(prunedNodesInStepTemp.push([node,node.getEdges()[0],node.getOwner()]),containsLeaf=!0);if(1==containsLeaf){for(var prunedNodesInStep=[],j=0;j<prunedNodesInStepTemp.length;j++)1==prunedNodesInStepTemp[j][0].getEdges().length&&(prunedNodesInStep.push(prunedNodesInStepTemp[j]),prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]));prunedNodesAll.push(prunedNodesInStep),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=prunedNodesAll},CoSELayout.prototype.growTree=function(prunedNodesAll){for(var nodeData,prunedNodesInStep=prunedNodesAll[prunedNodesAll.length-1],i=0;i<prunedNodesInStep.length;i++)nodeData=prunedNodesInStep[i],this.findPlaceforPrunedNode(nodeData),nodeData[2].add(nodeData[0]),nodeData[2].add(nodeData[1],nodeData[1].source,nodeData[1].target);prunedNodesAll.splice(prunedNodesAll.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},CoSELayout.prototype.findPlaceforPrunedNode=function(nodeData){var gridForPrunedNode,nodeToConnect,prunedNode=nodeData[0],startGridX=(nodeToConnect=prunedNode==nodeData[1].source?nodeData[1].target:nodeData[1].source).startX,finishGridX=nodeToConnect.finishX,startGridY=nodeToConnect.startY,finishGridY=nodeToConnect.finishY,controlRegions=[0,0,0,0];if(startGridY>0)for(var i=startGridX;i<=finishGridX;i++)controlRegions[0]+=this.grid[i][startGridY-1].length+this.grid[i][startGridY].length-1;if(finishGridX<this.grid.length-1)for(i=startGridY;i<=finishGridY;i++)controlRegions[1]+=this.grid[finishGridX+1][i].length+this.grid[finishGridX][i].length-1;if(finishGridY<this.grid[0].length-1)for(i=startGridX;i<=finishGridX;i++)controlRegions[2]+=this.grid[i][finishGridY+1].length+this.grid[i][finishGridY].length-1;if(startGridX>0)for(i=startGridY;i<=finishGridY;i++)controlRegions[3]+=this.grid[startGridX-1][i].length+this.grid[startGridX][i].length-1;for(var minCount,minIndex,min=Integer.MAX_VALUE,j=0;j<controlRegions.length;j++)controlRegions[j]<min?(min=controlRegions[j],minCount=1,minIndex=j):controlRegions[j]==min&&minCount++;if(3==minCount&&0==min)0==controlRegions[0]&&0==controlRegions[1]&&0==controlRegions[2]?gridForPrunedNode=1:0==controlRegions[0]&&0==controlRegions[1]&&0==controlRegions[3]?gridForPrunedNode=0:0==controlRegions[0]&&0==controlRegions[2]&&0==controlRegions[3]?gridForPrunedNode=3:0==controlRegions[1]&&0==controlRegions[2]&&0==controlRegions[3]&&(gridForPrunedNode=2);else if(2==minCount&&0==min){var random=Math.floor(2*Math.random());gridForPrunedNode=0==controlRegions[0]&&0==controlRegions[1]?0==random?0:1:0==controlRegions[0]&&0==controlRegions[2]?0==random?0:2:0==controlRegions[0]&&0==controlRegions[3]?0==random?0:3:0==controlRegions[1]&&0==controlRegions[2]?0==random?1:2:0==controlRegions[1]&&0==controlRegions[3]?0==random?1:3:0==random?2:3}else gridForPrunedNode=4==minCount&&0==min?random=Math.floor(4*Math.random()):minIndex;0==gridForPrunedNode?prunedNode.setCenter(nodeToConnect.getCenterX(),nodeToConnect.getCenterY()-nodeToConnect.getHeight()/2-FDLayoutConstants.DEFAULT_EDGE_LENGTH-prunedNode.getHeight()/2):1==gridForPrunedNode?prunedNode.setCenter(nodeToConnect.getCenterX()+nodeToConnect.getWidth()/2+FDLayoutConstants.DEFAULT_EDGE_LENGTH+prunedNode.getWidth()/2,nodeToConnect.getCenterY()):2==gridForPrunedNode?prunedNode.setCenter(nodeToConnect.getCenterX(),nodeToConnect.getCenterY()+nodeToConnect.getHeight()/2+FDLayoutConstants.DEFAULT_EDGE_LENGTH+prunedNode.getHeight()/2):prunedNode.setCenter(nodeToConnect.getCenterX()-nodeToConnect.getWidth()/2-FDLayoutConstants.DEFAULT_EDGE_LENGTH-prunedNode.getWidth()/2,nodeToConnect.getCenterY())},module2.exports=CoSELayout},function(module2,exports$12,__webpack_require__){var coseBase2={};coseBase2.layoutBase=__webpack_require__(0),coseBase2.CoSEConstants=__webpack_require__(1),coseBase2.CoSEEdge=__webpack_require__(2),coseBase2.CoSEGraph=__webpack_require__(3),coseBase2.CoSEGraphManager=__webpack_require__(4),coseBase2.CoSELayout=__webpack_require__(6),coseBase2.CoSENode=__webpack_require__(5),module2.exports=coseBase2}])}(requireLayoutBase())),function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module2=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module2.exports,module2,module2.exports,__webpack_require__),module2.l=!0,module2.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports$12,name,getter){__webpack_require__.o(exports$12,name)||Object.defineProperty(exports$12,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module2){var getter=module2&&module2.__esModule?function(){return module2.default}:function(){return module2};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=1)}([function(module2,exports$12){module2.exports=__WEBPACK_EXTERNAL_MODULE_0__},function(module2,exports$12,__webpack_require__){var LayoutConstants=__webpack_require__(0).layoutBase.LayoutConstants,FDLayoutConstants=__webpack_require__(0).layoutBase.FDLayoutConstants,CoSEConstants=__webpack_require__(0).CoSEConstants,CoSELayout=__webpack_require__(0).CoSELayout,CoSENode=__webpack_require__(0).CoSENode,PointD=__webpack_require__(0).layoutBase.PointD,DimensionD2=__webpack_require__(0).layoutBase.DimensionD,defaults={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function _CoSELayout(_options){this.options=function(defaults2,options){var obj={};for(var i in defaults2)obj[i]=defaults2[i];for(var i in options)obj[i]=options[i];return obj}(defaults,_options),getUserOptions(this.options)}var getUserOptions=function(options){null!=options.nodeRepulsion&&(CoSEConstants.DEFAULT_REPULSION_STRENGTH=FDLayoutConstants.DEFAULT_REPULSION_STRENGTH=options.nodeRepulsion),null!=options.idealEdgeLength&&(CoSEConstants.DEFAULT_EDGE_LENGTH=FDLayoutConstants.DEFAULT_EDGE_LENGTH=options.idealEdgeLength),null!=options.edgeElasticity&&(CoSEConstants.DEFAULT_SPRING_STRENGTH=FDLayoutConstants.DEFAULT_SPRING_STRENGTH=options.edgeElasticity),null!=options.nestingFactor&&(CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=options.nestingFactor),null!=options.gravity&&(CoSEConstants.DEFAULT_GRAVITY_STRENGTH=FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH=options.gravity),null!=options.numIter&&(CoSEConstants.MAX_ITERATIONS=FDLayoutConstants.MAX_ITERATIONS=options.numIter),null!=options.gravityRange&&(CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR=FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR=options.gravityRange),null!=options.gravityCompound&&(CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH=options.gravityCompound),null!=options.gravityRangeCompound&&(CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=options.gravityRangeCompound),null!=options.initialEnergyOnIncremental&&(CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL=FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL=options.initialEnergyOnIncremental),"draft"==options.quality?LayoutConstants.QUALITY=0:"proof"==options.quality?LayoutConstants.QUALITY=2:LayoutConstants.QUALITY=1,CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS=FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS=LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS=options.nodeDimensionsIncludeLabels,CoSEConstants.DEFAULT_INCREMENTAL=FDLayoutConstants.DEFAULT_INCREMENTAL=LayoutConstants.DEFAULT_INCREMENTAL=!options.randomize,CoSEConstants.ANIMATE=FDLayoutConstants.ANIMATE=LayoutConstants.ANIMATE=options.animate,CoSEConstants.TILE=options.tile,CoSEConstants.TILING_PADDING_VERTICAL="function"==typeof options.tilingPaddingVertical?options.tilingPaddingVertical.call():options.tilingPaddingVertical,CoSEConstants.TILING_PADDING_HORIZONTAL="function"==typeof options.tilingPaddingHorizontal?options.tilingPaddingHorizontal.call():options.tilingPaddingHorizontal};_CoSELayout.prototype.run=function(){var ready,frameId,options=this.options;this.idToLNode={};var layout=this.layout=new CoSELayout,self=this;self.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var gm=layout.newGraphManager();this.gm=gm;var nodes=this.options.eles.nodes(),edges=this.options.eles.edges();this.root=gm.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(nodes),layout);for(var i=0;i<edges.length;i++){var edge=edges[i],sourceNode=this.idToLNode[edge.data("source")],targetNode=this.idToLNode[edge.data("target")];sourceNode!==targetNode&&0==sourceNode.getEdgesBetween(targetNode).length&&(gm.add(layout.newEdge(),sourceNode,targetNode).id=edge.id())}var getPositions=function(ele,i2){"number"==typeof ele&&(ele=i2);var theId=ele.data("id"),lNode=self.idToLNode[theId];return{x:lNode.getRect().getCenterX(),y:lNode.getRect().getCenterY()}},iterateAnimated=function iterateAnimated2(){for(var isDone,afterReposition=function(){options.fit&&options.cy.fit(options.eles,options.padding),ready||(ready=!0,self.cy.one("layoutready",options.ready),self.cy.trigger({type:"layoutready",layout:self}))},ticksPerFrame=self.options.refresh,i2=0;i2<ticksPerFrame&&!isDone;i2++)isDone=self.stopped||self.layout.tick();if(isDone)return layout.checkLayoutSuccess()&&!layout.isSubLayout&&layout.doPostLayout(),layout.tilingPostLayout&&layout.tilingPostLayout(),layout.isLayoutFinished=!0,self.options.eles.nodes().positions(getPositions),afterReposition(),self.cy.one("layoutstop",self.options.stop),self.cy.trigger({type:"layoutstop",layout:self}),frameId&&cancelAnimationFrame(frameId),void(ready=!1);var animationData=self.layout.getPositionsData();options.eles.nodes().positions(function(ele,i3){if("number"==typeof ele&&(ele=i3),!ele.isParent()){for(var theId=ele.id(),pNode=animationData[theId],temp=ele;null==pNode&&(pNode=animationData[temp.data("parent")]||animationData["DummyCompound_"+temp.data("parent")],animationData[theId]=pNode,null!=(temp=temp.parent()[0])););return null!=pNode?{x:pNode.x,y:pNode.y}:{x:ele.position("x"),y:ele.position("y")}}}),afterReposition(),frameId=requestAnimationFrame(iterateAnimated2)};return layout.addListener("layoutstarted",function(){"during"===self.options.animate&&(frameId=requestAnimationFrame(iterateAnimated))}),layout.runLayout(),"during"!==this.options.animate&&(self.options.eles.nodes().not(":parent").layoutPositions(self,self.options,getPositions),ready=!1),this},_CoSELayout.prototype.getTopMostNodes=function(nodes){for(var nodesMap={},i=0;i<nodes.length;i++)nodesMap[nodes[i].id()]=!0;return nodes.filter(function(ele,i2){"number"==typeof ele&&(ele=i2);for(var parent=ele.parent()[0];null!=parent;){if(nodesMap[parent.id()])return!1;parent=parent.parent()[0]}return!0})},_CoSELayout.prototype.processChildrenList=function(parent,children,layout){for(var size=children.length,i=0;i<size;i++){var theNode,theNewGraph,theChild=children[i],children_of_children=theChild.children(),dimensions=theChild.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if((theNode=null!=theChild.outerWidth()&&null!=theChild.outerHeight()?parent.add(new CoSENode(layout.graphManager,new PointD(theChild.position("x")-dimensions.w/2,theChild.position("y")-dimensions.h/2),new DimensionD2(parseFloat(dimensions.w),parseFloat(dimensions.h)))):parent.add(new CoSENode(this.graphManager))).id=theChild.data("id"),theNode.paddingLeft=parseInt(theChild.css("padding")),theNode.paddingTop=parseInt(theChild.css("padding")),theNode.paddingRight=parseInt(theChild.css("padding")),theNode.paddingBottom=parseInt(theChild.css("padding")),this.options.nodeDimensionsIncludeLabels&&theChild.isParent()){var labelWidth=theChild.boundingBox({includeLabels:!0,includeNodes:!1}).w,labelHeight=theChild.boundingBox({includeLabels:!0,includeNodes:!1}).h,labelPos=theChild.css("text-halign");theNode.labelWidth=labelWidth,theNode.labelHeight=labelHeight,theNode.labelPos=labelPos}this.idToLNode[theChild.data("id")]=theNode,isNaN(theNode.rect.x)&&(theNode.rect.x=0),isNaN(theNode.rect.y)&&(theNode.rect.y=0),null!=children_of_children&&children_of_children.length>0&&(theNewGraph=layout.getGraphManager().add(layout.newGraph(),theNode),this.processChildrenList(theNewGraph,children_of_children,layout))}},_CoSELayout.prototype.stop=function(){return this.stopped=!0,this};var register=function(cytoscape2){cytoscape2("layout","cose-bilkent",_CoSELayout)};"undefined"!=typeof cytoscape&®ister(cytoscape),module2.exports=register}]))),cytoscapeCoseBilkent$1.exports));function addNodes(nodes,cy){nodes.forEach(node=>{const nodeData={id:node.id,labelText:node.label,height:node.height,width:node.width,padding:node.padding??0};Object.keys(node).forEach(key=>{["id","label","height","width","padding","x","y"].includes(key)||(nodeData[key]=node[key])}),cy.add({group:"nodes",data:nodeData,position:{x:node.x??0,y:node.y??0}})})}function addEdges(edges,cy){edges.forEach(edge=>{const edgeData={id:edge.id,source:edge.start,target:edge.end};Object.keys(edge).forEach(key=>{["id","start","end"].includes(key)||(edgeData[key]=edge[key])}),cy.add({group:"edges",data:edgeData})})}function createCytoscapeInstance(data){return new Promise(resolve=>{const renderEl=select("body").append("div").attr("id","cy").attr("style","display:none"),cy=cytoscape$1({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});renderEl.remove(),addNodes(data.nodes,cy),addEdges(data.edges,cy),cy.nodes().forEach(function(n){n.layoutDimensions=()=>{const nodeData=n.data();return{w:nodeData.width,h:nodeData.height}}});cy.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),cy.ready(e=>{log.info("Cytoscape ready",e),resolve(cy)})})}function extractPositionedNodes(cy){return cy.nodes().map(node=>{const data=node.data(),position=node.position(),positionedNode={id:data.id,x:position.x,y:position.y};return Object.keys(data).forEach(key=>{"id"!==key&&(positionedNode[key]=data[key])}),positionedNode})}function extractPositionedEdges(cy){return cy.edges().map(edge=>{const data=edge.data(),rscratch=edge._private.rscratch,positionedEdge={id:data.id,source:data.source,target:data.target,startX:rscratch.startX,startY:rscratch.startY,midX:rscratch.midX,midY:rscratch.midY,endX:rscratch.endX,endY:rscratch.endY};return Object.keys(data).forEach(key=>{["id","source","target"].includes(key)||(positionedEdge[key]=data[key])}),positionedEdge})}async function executeCoseBilkentLayout(data,_config){log.debug("Starting cose-bilkent layout algorithm");try{validateLayoutData(data);const cy=await createCytoscapeInstance(data),positionedNodes=extractPositionedNodes(cy),positionedEdges=extractPositionedEdges(cy);return log.debug(`Layout completed: ${positionedNodes.length} nodes, ${positionedEdges.length} edges`),{nodes:positionedNodes,edges:positionedEdges}}catch(error){throw log.error("Error in cose-bilkent layout algorithm:",error),error}}function validateLayoutData(data){if(!data)throw new Error("Layout data is required");if(!data.config)throw new Error("Configuration is required in layout data");if(!data.rootNode)throw new Error("Root node is required");if(!data.nodes||!Array.isArray(data.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(data.edges))throw new Error("Edges array is required in layout data");return!0}cytoscape$1.use(coseBilkent),__name(addNodes,"addNodes"),__name(addEdges,"addEdges"),__name(createCytoscapeInstance,"createCytoscapeInstance"),__name(extractPositionedNodes,"extractPositionedNodes"),__name(extractPositionedEdges,"extractPositionedEdges"),__name(executeCoseBilkentLayout,"executeCoseBilkentLayout"),__name(validateLayoutData,"validateLayoutData");var render2=__name(async(data4Layout,svg,{insertCluster:insertCluster,insertEdge:insertEdge,insertEdgeLabel:insertEdgeLabel,insertMarkers:insertMarkers,insertNode:insertNode,log:log2,positionEdgeLabel:positionEdgeLabel},{algorithm:_algorithm})=>{const nodeDb={},clusterDb={},element=svg.select("g");insertMarkers(element,data4Layout.markers,data4Layout.type,data4Layout.diagramId);const subGraphsEl=element.insert("g").attr("class","subgraphs"),edgePaths=element.insert("g").attr("class","edgePaths"),edgeLabels=element.insert("g").attr("class","edgeLabels"),nodes=element.insert("g").attr("class","nodes");log2.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(data4Layout.nodes.map(async node=>{if(node.isGroup){const clusterNode={...node};clusterDb[node.id]=clusterNode,nodeDb[node.id]=clusterNode,await insertCluster(subGraphsEl,node)}else{const nodeWithPosition={...node};nodeDb[node.id]=nodeWithPosition;const nodeEl=await insertNode(nodes,node,{config:data4Layout.config,dir:data4Layout.direction||"TB"}),boundingBox=nodeEl.node().getBBox();nodeWithPosition.width=boundingBox.width,nodeWithPosition.height=boundingBox.height,nodeWithPosition.domId=nodeEl,log2.debug(`Node ${node.id} dimensions: ${boundingBox.width}x${boundingBox.height}`)}})),log2.debug("Running cose-bilkent layout algorithm");const updatedLayoutData={...data4Layout,nodes:data4Layout.nodes.map(node=>{const nodeWithDimensions=nodeDb[node.id];return{...node,width:nodeWithDimensions.width,height:nodeWithDimensions.height}})},layoutResult=await executeCoseBilkentLayout(updatedLayoutData,data4Layout.config);log2.debug("Positioning nodes based on layout results"),layoutResult.nodes.forEach(positionedNode=>{const node=nodeDb[positionedNode.id];(null==node?void 0:node.domId)&&(node.domId.attr("transform",`translate(${positionedNode.x}, ${positionedNode.y})`),node.x=positionedNode.x,node.y=positionedNode.y,log2.debug(`Positioned node ${node.id} at center (${positionedNode.x}, ${positionedNode.y})`))}),layoutResult.edges.forEach(positionedEdge=>{const edge=data4Layout.edges.find(e=>e.id===positionedEdge.id);edge&&(edge.points=[{x:positionedEdge.startX,y:positionedEdge.startY},{x:positionedEdge.midX,y:positionedEdge.midY},{x:positionedEdge.endX,y:positionedEdge.endY}])}),log2.debug("Inserting and positioning edges"),await Promise.all(data4Layout.edges.map(async edge=>{await insertEdgeLabel(edgeLabels,edge);const startNode=nodeDb[edge.start??""],endNode=nodeDb[edge.end??""];if(startNode&&endNode){const positionedEdge=layoutResult.edges.find(e=>e.id===edge.id);if(positionedEdge){log2.debug("APA01 positionedEdge",positionedEdge);const edgeWithPath={...edge},paths=insertEdge(edgePaths,edgeWithPath,clusterDb,data4Layout.type,startNode,endNode,data4Layout.diagramId);positionEdgeLabel(edgeWithPath,paths)}else{const edgeWithPath={...edge,points:[{x:startNode.x||0,y:startNode.y||0},{x:endNode.x||0,y:endNode.y||0}]},paths=insertEdge(edgePaths,edgeWithPath,clusterDb,data4Layout.type,startNode,endNode,data4Layout.diagramId);positionEdgeLabel(edgeWithPath,paths)}}})),log2.debug("Cose-bilkent rendering completed")},"render");export{render2 as render};
|