cc-viewer 1.6.263 → 1.6.265
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/README.md +13 -0
- package/cli.js +4 -0
- package/dist/assets/App-Dn8sM_4p.js +1 -0
- package/dist/assets/{MdxEditorPanel--reKHew0.js → MdxEditorPanel-CVaK7mOf.js} +1 -1
- package/dist/assets/Mobile-HEclS2va.js +1 -0
- package/dist/assets/{_baseUniq-DiLy7vi3.js → _baseUniq-Dgkw4IXM.js} +1 -1
- package/dist/assets/{arc-CAB2oIHx.js → arc-AiHQLijx.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-Cijl_JpW.js → architectureDiagram-Q4EWVU46-CPRvAIHK.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-Bk4yWCPQ.js → blockDiagram-DXYQGD6D-CK2cwrfX.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-Vz4JKuzi.js → c4Diagram-AHTNJAMY-BP-UBbgv.js} +1 -1
- package/dist/assets/{channel-BnYKz_zI.js → channel-Ny3Nm_-t.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-DM3ZjqKX.js → chunk-4BX2VUAB-DdsULqPZ.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-BTiJOoNa.js → chunk-4TB4RGXK-BDSjQHh0.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-B4fMQcTE.js → chunk-55IACEB6-DrKr3wBa.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-B_WylnyS.js → chunk-EDXVE4YY-o_0SUbAB.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Cx2lqZi9.js → chunk-FMBD7UC4-Ca_AgqWi.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-CPZm7o6V.js → chunk-OYMX7WX6-CyWWbq5o.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-DuYVzv7E.js → chunk-QZHKN3VN-5rXHErSL.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-Bk3OysLK.js → chunk-YZCP3GAM-DznXBadU.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-CLYcbnwx.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-CLYcbnwx.js +1 -0
- package/dist/assets/clone-5GFhU8Pv.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-CQuaqKHt.js → cose-bilkent-S5V4N54A-BhGyix0v.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-BFdoRcuo.js → dagre-KV5264BT-CzzHxIvc.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-ByFdSFIu.js → diagram-5BDNPKRD-tu3BXl0c.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-C1TcKWp0.js → diagram-G4DWMVQ6-C6WkK7sj.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-B5N1Sn5F.js → diagram-MMDJMWI5-DBeD_WW-.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-B-payI0e.js → diagram-TYMM5635-BXUyHHJ4.js} +1 -1
- package/dist/assets/{erDiagram-SMLLAGMA-zziefklH.js → erDiagram-SMLLAGMA-Bye5tnW2.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-BOSomu1b.js → flowDiagram-DWJPFMVM-C3pYOs38.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-DILUsv0T.js → ganttDiagram-T4ZO3ILL-DxXkI_FW.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-BKp2DE69.js → gitGraphDiagram-UUTBAWPF-nsxsXsGX.js} +1 -1
- package/dist/assets/{graph-NObGxitU.js → graph-Da-Z9hB7.js} +1 -1
- package/dist/assets/{index-Bq9Sic2n.js → index-4gmR7Eun.js} +1 -1
- package/dist/assets/{index-DHUf_c1w.js → index-BOxeMjZZ.js} +2 -2
- package/dist/assets/{index-BI-0Lyyt.js → index-Brh2V8V0.js} +1 -1
- package/dist/assets/{index-0aPBVZuP.js → index-C0PhJcXG.js} +1 -1
- package/dist/assets/{index-BbXZgnby.js → index-C8w5Sxw3.js} +1 -1
- package/dist/assets/{index-VqFARC4A.js → index-CA8JGh5J.js} +1 -1
- package/dist/assets/{index-PsZiLKrC.js → index-CsuhosSl.js} +1 -1
- package/dist/assets/{index-C88BDuL0.js → index-D7XF7UJ8.js} +1 -1
- package/dist/assets/{infoDiagram-42DDH7IO-D409o-BL.js → infoDiagram-42DDH7IO-Ca9j90t5.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-CMVPOGr3.js → ishikawaDiagram-UXIWVN3A-DhjV0XPD.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-Bl_5WlaZ.js → journeyDiagram-VCZTEJTY-CRSHLZPV.js} +1 -1
- package/dist/assets/{jszip.min-C2654z9i.js → jszip.min-CcCCdMNW.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-BfCyUP29.js → kanban-definition-6JOO6SKY-Bg0CUwgc.js} +1 -1
- package/dist/assets/{layout-CgAMa0xE.js → layout-CWNu13XT.js} +1 -1
- package/dist/assets/{linear-J1N1npGr.js → linear-Dcmw1639.js} +1 -1
- package/dist/assets/{mermaid.core-YnqOkuoS.js → mermaid.core-1heNIJ5f.js} +2 -2
- package/dist/assets/{min-CowkZam8.js → min-CC9CkAxn.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-D7yMfot2.js → mindmap-definition-QFDTVHPH-Gr0ex_Ny.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-DKUHBCwB.js → pieDiagram-DEJITSTG-D7P3sUJY.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-DhRqBNfT.js → quadrantDiagram-34T5L4WZ-Bov3lcpV.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-DVE3wKT7.js → requirementDiagram-MS252O5E-BcLptaOU.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-Rn_9b5V_.js → sankeyDiagram-XADWPNL6-B2qAUsON.js} +1 -1
- package/dist/assets/seqResourceLoaders-BGxPc8Yp.js +2 -0
- package/dist/assets/{seqResourceLoaders-DZvMjXCl.css → seqResourceLoaders-DmvKKyh9.css} +3 -3
- package/dist/assets/{sequenceDiagram-FGHM5R23-CemLRaXC.js → sequenceDiagram-FGHM5R23-Do62Uz-a.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-DNT1gAty.js → stateDiagram-FHFEXIEX-Wu8aqa8C.js} +1 -1
- package/dist/assets/{stateDiagram-v2-QKLJ7IA2-DPlMhu-M.js → stateDiagram-v2-QKLJ7IA2-BfYq7Jgo.js} +1 -1
- package/dist/assets/{timeline-definition-GMOUNBTQ-B-F8vgZN.js → timeline-definition-GMOUNBTQ-DYfz5xD6.js} +1 -1
- package/dist/assets/{vendor-antd-Dq3DHFa-.js → vendor-antd-BG1SvzuN.js} +2 -2
- package/dist/assets/{vendor-codemirror-DjMkT0sn.js → vendor-codemirror-8NDhydlF.js} +1 -1
- package/dist/assets/{vendor-mdxeditor-CrZ9SWce.js → vendor-mdxeditor-BB4hhpxM.js} +2 -2
- package/dist/assets/{vendor-qrcode-C_77dtHg.js → vendor-qrcode-DMsNGQ10.js} +1 -1
- package/dist/assets/{vendor-virtuoso-aMZPf2fi.js → vendor-virtuoso-BUT96ALa.js} +1 -1
- package/dist/assets/{vennDiagram-DHZGUBPP-K67JHnnN.js → vennDiagram-DHZGUBPP-CGr-cc7e.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-CCis01LD.js → wardley-RL74JXVD-BN899vMf.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-BjqRIOpN.js → wardleyDiagram-NUSXRM2D-xUsI1E7h.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-CaXETYTI.js → xychartDiagram-5P7HB3ND-woQrslzB.js} +1 -1
- package/dist/index.html +4 -4
- package/dist/voice-packs/default/askQuestion.wav +0 -0
- package/dist/voice-packs/default/pack.json +34 -0
- package/dist/voice-packs/default/planApproval.wav +0 -0
- package/dist/voice-packs/default/timeoutWarning5min.wav +0 -0
- package/dist/voice-packs/default/timeoutWarning60s.wav +0 -0
- package/dist/voice-packs/default/turnEnd.wav +0 -0
- package/interceptor.js +18 -5
- package/lib/approval-modal-prefs.js +71 -0
- package/lib/ensure-hooks.js +48 -4
- package/lib/git-diff.js +4 -0
- package/lib/sdk-manager.js +12 -1
- package/lib/turn-end-bridge.js +117 -0
- package/lib/voice-pack-events.js +32 -0
- package/lib/voice-pack-manager.js +246 -0
- package/package.json +1 -1
- package/pty-manager.js +8 -1
- package/server.js +304 -2
- package/dist/assets/App-CX6bF6ke.js +0 -1
- package/dist/assets/Mobile-YwIGAQWc.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-CeAAXpgl.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-CeAAXpgl.js +0 -1
- package/dist/assets/clone-BcGHaFBY.js +0 -1
- package/dist/assets/seqResourceLoaders-B9D4RGth.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as __name,l as log,d as select}from"./mermaid.core-YnqOkuoS.js";import{c as cytoscape$1}from"./cytoscape.esm-CT1mZavR.js";import{g as getDefaultExportFromCjs}from"./vendor-antd-Dq3DHFa-.js";import"./vendor-mdxeditor-CrZ9SWce.js";import"./vendor-codemirror-DjMkT0sn.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-1heNIJ5f.js";import{c as cytoscape$1}from"./cytoscape.esm-CT1mZavR.js";import{g as getDefaultExportFromCjs}from"./vendor-antd-BG1SvzuN.js";import"./vendor-mdxeditor-BB4hhpxM.js";import"./vendor-codemirror-8NDhydlF.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};
|