From e9e4c686d3df449c813b8eea447fad2dae68752b Mon Sep 17 00:00:00 2001 From: maxkfranz Date: Thu, 18 Jul 2024 13:29:40 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20cytoscap?= =?UTF-8?q?e/cytoscape.js@93d2b9e8df1355a433259ae904fa23585a020dac=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- img/preview-feature.png | Bin 0 -> 64788 bytes img/preview-patch.png | Bin 0 -> 69444 bytes index.html | 7 +++++-- js/{build => }/cytoscape.min.js | 2 +- md/getting-started.md | 4 ++-- versions.json | 3 ++- 6 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 img/preview-feature.png create mode 100644 img/preview-patch.png rename js/{build => }/cytoscape.min.js (99%) diff --git a/img/preview-feature.png b/img/preview-feature.png new file mode 100644 index 0000000000000000000000000000000000000000..f27f2710e2ab16bbf6d36f267376c49b57f391e5 GIT binary patch literal 64788 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

W@uAs8FLoq@pe0U+dcY;-aaL<8H|sL1W) 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 literal 0 HcmV?d00001 diff --git a/img/preview-patch.png b/img/preview-patch.png new file mode 100644 index 0000000000000000000000000000000000000000..99c85a15eceddc2215f1723909aef940df59c752 GIT binary patch literal 69444 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

4BPf$ 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

;51WEqsXnMjq3{&`pOi3GJ|%_Q8VNr) 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index cf2d5e0c67..4c28e8dde3 100644 --- a/index.html +++ b/index.html @@ -827,6 +827,9 @@

Releases 3.30
    +
  • + 3.30.1 +
  • 3.30.0
  • @@ -2070,7 +2073,7 @@

    Including Cytoscape.js ESM (ECMAScript, uses import / export) For use with modern import/export, i.e. import cytoscape from 'cytoscape'. @@ -2082,7 +2085,7 @@

    Including Cytoscape.js Node.js or a bundler like Webpack via require('cytoscape'). -cytoscape.esm.js +cytoscape.esm.mjs no ESM Intended to be consumed automatically by Node.js or a bundler like Webpack via import cytoscape from 'cytoscape'. This file may alternatively be used for manually debugging ESM builds or pages that use ESM. diff --git a/js/build/cytoscape.min.js b/js/cytoscape.min.js similarity index 99% rename from js/build/cytoscape.min.js rename to js/cytoscape.min.js index 45e574893d..163d766813 100644 --- a/js/build/cytoscape.min.js +++ b/js/cytoscape.min.js @@ -29,4 +29,4 @@ var cr=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};cr.prototype={fulfill:function(e){return dr(this,1,"fulfillValue",e)},reject:function(e){return dr(this,2,"rejectReason",e)},then:function(e,t){var n=new cr;return this.onFulfilled.push(fr(e,n,"fulfill")),this.onRejected.push(fr(t,n,"reject")),hr(this),n.proxy}};var dr=function(e,t,n,r){return 0===e.state&&(e.state=t,e[n]=r,hr(e)),e},hr=function(e){1===e.state?pr(e,"onFulfilled",e.fulfillValue):2===e.state&&pr(e,"onRejected",e.rejectReason)},pr=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e0:void 0}},clearQueue:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;for(var t=0;t-1};var ri=function(e,t){var n=this.__data__,r=Qr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function ii(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e0&&this.spawn(n).updateStyle().emit("class"),this},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){m(e)||(e=e.match(/\S+/g)||[]);for(var n=void 0===t,r=[],i=0,a=this.length;i0&&this.spawn(r).updateStyle().emit("class"),this},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout((function(){n.removeClass(e)}),t),n}};qi.className=qi.classNames=qi.classes;var Yi={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:I,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Yi.variable="(?:[\\w-.]|(?:\\\\"+Yi.metaChar+"))+",Yi.className="(?:[\\w-]|(?:\\\\"+Yi.metaChar+"))+",Yi.value=Yi.string+"|"+Yi.number,Yi.id=Yi.variable,function(){var e,t,n;for(e=Yi.comparatorOp.split("|"),n=0;n=0||"="!==t&&(Yi.comparatorOp+="|\\!"+t)}();var Xi=0,Wi=1,Hi=2,Ki=3,Gi=4,Ui=5,Zi=6,$i=7,Qi=8,Ji=9,ea=10,ta=11,na=12,ra=13,ia=14,aa=15,oa=16,sa=17,la=18,ua=19,ca=20,da=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort((function(e,t){return function(e,t){return-1*A(e,t)}(e.selector,t.selector)})),ha=function(){for(var e,t={},n=0;n0&&l.edgeCount>0)return je("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return je("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&je("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return v(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case Xi:var l=e(s);return l.substring(0,l.length-1);case Ki:var u=r.field,c=r.operator;return"["+u+n(e(c))+t(s)+"]";case Ui:var d=r.operator,h=r.field;return"["+e(d)+h+"]";case Gi:return"["+r.field+"]";case Zi:var p=r.operator;return"[["+r.field+n(e(p))+t(s)+"]]";case $i:return s;case Qi:return"#"+s;case Ji:return"."+s;case sa:case aa:return i(r.parent,a)+n(">")+i(r.child,a);case la:case oa:return i(r.ancestor,a)+" "+i(r.descendant,a);case ua:var f=i(r.left,a),g=i(r.subject,a),v=i(r.right,a);return f+(f.length>0?" ":"")+g+v;case ca:return""}},i=function(e,t){return e.checks.reduce((function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)}),"")},a="",o=0;o1&&o=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":d=!0,r=e>n;break;case">=":d=!0,r=e>=n;break;case"<":d=!0,r=e0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function Ba(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,Ba)},_a.forEachUp=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,Na)},_a.forEachUpAndDown=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,za)},_a.ancestors=_a.parents,(Pa=Da={data:Fi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Fi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Fi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Fi.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Fi.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=Pa.data,Pa.removeAttr=Pa.removeData;var Ia,Aa,La=Da,Oa={};function Ra(e){return function(t){if(void 0===t&&(t=!0),0!==this.length&&this.isNode()&&!this.removed()){for(var n=0,r=this[0],i=r._private.edges,a=0;at})),minIndegree:Va("indegree",(function(e,t){return et})),minOutdegree:Va("outdegree",(function(e,t){return et}))}),L(Oa,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r0,c=u;u&&(l=l[0]);var d=c?l.position():{x:0,y:0};return i={x:s.x-d.x,y:s.y-d.y},void 0===e?i:i[e]}for(var h=0;h0,y=g;g&&(f=f[0]);var m=y?f.position():{x:0,y:0};void 0!==t?p.position(e,t+m[e]):void 0!==i&&p.position({x:i.x+m.x,y:i.y+m.y})}}else if(!a)return;return this}}).modelPosition=Ia.point=Ia.position,Ia.modelPositions=Ia.points=Ia.positions,Ia.renderedPoint=Ia.renderedPosition,Ia.relativePoint=Ia.relativePosition;var qa,Ya,Xa=Aa;qa=Ya={},Ya.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},Ya.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()?(this.forEachUp((function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}})),this):this},Ya.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function n(e){if(e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,i={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;0!==a.w&&0!==a.h||((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var s=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var d=y(i.width.val-a.w,s,l),h=d.biasDiff,p=d.biasComplementDiff,f=y(i.height.val-a.h,u,c),g=f.biasDiff,v=f.biasComplementDiff;t.autoPadding=function(e,t,n,r){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}}(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-h+a.x1+a.x2+p)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-g+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}}for(var r=0;re.x2?r:e.x2,e.y1=ne.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},Ka=function(e,t){return null==t?e:Ha(e,t.x1,t.y1,t.x2,t.y2)},Ga=function(e,t,n){return Ue(e,t,n)},Ua=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,Nt(u,1),Ha(e,u.x1,u.y1,u.x2,u.y2)}}},Za=function(e,t,n){if(!t.cy().headless()){var r;r=n?n+"-":"";var i=t._private,a=i.rstyle;if(t.pstyle(r+"label").strValue){var o,s,l,u,c=t.pstyle("text-halign"),d=t.pstyle("text-valign"),h=Ga(a,"labelWidth",n),p=Ga(a,"labelHeight",n),f=Ga(a,"labelX",n),g=Ga(a,"labelY",n),v=t.pstyle(r+"text-margin-x").pfValue,y=t.pstyle(r+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle(r+"text-rotation"),x=t.pstyle("text-outline-width").pfValue,w=t.pstyle("text-border-width").pfValue/2,E=t.pstyle("text-background-padding").pfValue,k=p,C=h,S=C/2,P=k/2;if(m)o=f-S,s=f+S,l=g-P,u=g+P;else{switch(c.value){case"left":o=f-C,s=f;break;case"center":o=f-S,s=f+S;break;case"right":o=f,s=f+C}switch(d.value){case"top":l=g-k,u=g;break;case"center":l=g-P,u=g+P;break;case"bottom":l=g,u=g+k}}o+=v-Math.max(x,w)-E-2,s+=v+Math.max(x,w)+E+2,l+=y-Math.max(x,w)-E-2,u+=y+Math.max(x,w)+E+2;var D=n||"main",T=i.labelBounds,_=T[D]=T[D]||{};_.x1=o,_.y1=l,_.x2=s,_.y2=u,_.w=s-o,_.h=u-l;var M=m&&"autorotate"===b.strValue,B=null!=b.pfValue&&0!==b.pfValue;if(M||B){var N=M?Ga(i.rstyle,"labelAngle",n):b.pfValue,z=Math.cos(N),I=Math.sin(N),A=(o+s)/2,L=(l+u)/2;if(!m){switch(c.value){case"left":A=s;break;case"right":A=o}switch(d.value){case"top":L=u;break;case"bottom":L=l}}var O=function(e,t){return{x:(e-=A)*z-(t-=L)*I+A,y:e*I+t*z+L}},R=O(o,l),V=O(o,u),F=O(s,l),j=O(s,u);o=Math.min(R.x,V.x,F.x,j.x),s=Math.max(R.x,V.x,F.x,j.x),l=Math.min(R.y,V.y,F.y,j.y),u=Math.max(R.y,V.y,F.y,j.y)}var q=D+"Rot",Y=T[q]=T[q]||{};Y.x1=o,Y.y1=l,Y.x2=s,Y.y2=u,Y.w=s-o,Y.h=u-l,Ha(e,o,l,s,u),Ha(i.labelBounds.all,o,l,s,u)}return e}},$a=function(e,t){var n,r,i,a,o,s,l,u=e._private.cy,c=u.styleEnabled(),d=u.headless(),h=_t(),p=e._private,f=e.isNode(),g=e.isEdge(),v=p.rstyle,y=f&&c?e.pstyle("bounds-expansion").pfValue:[0],m=function(e){return"none"!==e.pstyle("display").value},b=!c||m(e)&&(!g||m(e.source())&&m(e.target()));if(b){var x=0;c&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(x=e.pstyle("overlay-padding").value);var w=0;c&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(w=e.pstyle("underlay-padding").value);var E=Math.max(x,w),k=0;if(c&&(k=e.pstyle("width").pfValue/2),f&&t.includeNodes){var C=e.position();o=C.x,s=C.y;var S=e.outerWidth()/2,P=e.outerHeight()/2;Ha(h,n=o-S,i=s-P,r=o+S,a=s+P),c&&t.includeOutlines&&function(e,t){if(!t.cy().headless()){var n,r,i,a=t.pstyle("outline-opacity").value,o=t.pstyle("outline-width").value;if(a>0&&o>0){var s=t.pstyle("outline-offset").value,l=t.pstyle("shape").value,u=o+s,c=(e.w+2*u)/e.w,d=(e.h+2*u)/e.h,h=0;["diamond","pentagon","round-triangle"].includes(l)?(c=(e.w+2.4*u)/e.w,h=-u/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(l)?c=(e.w+2.4*u)/e.w:"star"===l?(c=(e.w+2.8*u)/e.w,d=(e.h+2.6*u)/e.h,h=-u/3.8):"triangle"===l?(c=(e.w+2.8*u)/e.w,d=(e.h+2.4*u)/e.h,h=-u/1.4):"vee"===l&&(c=(e.w+4.4*u)/e.w,d=(e.h+3.8*u)/e.h,h=.5*-u);var p=e.h*d-e.h,f=e.w*c-e.w;if(zt(e,[Math.ceil(p/2),Math.ceil(f/2)]),0!==h){var g=(r=0,i=h,{x1:(n=e).x1+r,x2:n.x2+r,y1:n.y1+i,y2:n.y2+i,w:n.w,h:n.h});Mt(e,g)}}}}(h,e)}else if(g&&t.includeEdges)if(c&&!d){var D=e.pstyle("curve-style").strValue;if(n=Math.min(v.srcX,v.midX,v.tgtX),r=Math.max(v.srcX,v.midX,v.tgtX),i=Math.min(v.srcY,v.midY,v.tgtY),a=Math.max(v.srcY,v.midY,v.tgtY),Ha(h,n-=k,i-=k,r+=k,a+=k),"haystack"===D){var T=v.haystackPts;if(T&&2===T.length){if(n=T[0].x,i=T[0].y,n>(r=T[1].x)){var _=n;n=r,r=_}if(i>(a=T[1].y)){var M=i;i=a,a=M}Ha(h,n-k,i-k,r+k,a+k)}}else if("bezier"===D||"unbundled-bezier"===D||D.endsWith("segments")||D.endsWith("taxi")){var B;switch(D){case"bezier":case"unbundled-bezier":B=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":B=v.linePts}if(null!=B)for(var N=0;N(r=A.x)){var L=n;n=r,r=L}if((i=I.y)>(a=A.y)){var O=i;i=a,a=O}Ha(h,n-=k,i-=k,r+=k,a+=k)}if(c&&t.includeEdges&&g&&(Ua(h,e,"mid-source"),Ua(h,e,"mid-target"),Ua(h,e,"source"),Ua(h,e,"target")),c)if("yes"===e.pstyle("ghost").value){var R=e.pstyle("ghost-offset-x").pfValue,V=e.pstyle("ghost-offset-y").pfValue;Ha(h,h.x1+R,h.y1+V,h.x2+R,h.y2+V)}var F=p.bodyBounds=p.bodyBounds||{};It(F,h),zt(F,y),Nt(F,1),c&&(n=h.x1,r=h.x2,i=h.y1,a=h.y2,Ha(h,n-E,i-E,r+E,a+E));var j=p.overlayBounds=p.overlayBounds||{};It(j,h),zt(j,y),Nt(j,1);var q=p.labelBounds=p.labelBounds||{};null!=q.all?((l=q.all).x1=1/0,l.y1=1/0,l.x2=-1/0,l.y2=-1/0,l.w=0,l.h=0):q.all=_t(),c&&t.includeLabels&&(t.includeMainLabels&&Za(h,e,null),g&&(t.includeSourceLabels&&Za(h,e,"source"),t.includeTargetLabels&&Za(h,e,"target")))}return h.x1=Wa(h.x1),h.y1=Wa(h.y1),h.x2=Wa(h.x2),h.y2=Wa(h.y2),h.w=Wa(h.x2-h.x1),h.h=Wa(h.y2-h.y1),h.w>0&&h.h>0&&b&&(zt(h,y),Nt(h,1)),h},Qa=function(e){var t=0,n=function(e){return(e?1:0)<0&&void 0!==arguments[0]?arguments[0]:bo,t=arguments.length>1?arguments[1]:void 0,n=0;n=0;s--)o(s);return this},wo.removeAllListeners=function(){return this.removeListener("*")},wo.emit=wo.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,m(t)||(t=[t]),Co(this,(function(e,a){null!=n&&(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}],i=r.length);for(var o=function(n){var i=r[n];if(i.type===a.type&&(!i.namespace||i.namespace===a.namespace||".*"===i.namespace)&&e.eventMatches(e.context,i,a)){var o=[a];null!=t&&function(e,t){for(var n=0;n1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&v(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r=0;t--){e(this[t])&&this.unmergeAt(t)}return this},map:function(e,t){for(var n=[],r=0;rr&&(r=o,n=a)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=0;i=0&&i1&&void 0!==arguments[1])||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){this.cleanStyle();var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled())return t?t.pstyle(e).units:void 0},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];return n?t.style().getRenderedStyle(n,e):void 0},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=n.style();if(b(e)){var i=e;r.applyBypass(this,i,!1),this.emitAndNotify("style")}else if(v(e)){if(void 0===t){var a=this[0];return a?r.getStylePropertyValue(a,e):void 0}r.applyBypass(this,e,t,!1),this.emitAndNotify("style")}else if(void 0===e){var o=this[0];return o?r.getRawStyle(o):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style();if(void 0===e)for(var r=0;r0&&t.push(c[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)}),"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),Go.neighbourhood=Go.neighborhood,Go.closedNeighbourhood=Go.closedNeighborhood,Go.openNeighbourhood=Go.openNeighborhood,L(Go,{source:Ta((function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t}),"source"),target:Ta((function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:Qo({attr:"source"}),targets:Qo({attr:"target"})}),L(Go,{edgesWith:Ta(Jo(),"edgesWith"),edgesTo:Ta(Jo({thisIsSrc:!0}),"edgesTo")}),L(Go,{connectedEdges:Ta((function(e){for(var t=[],n=0;n0);return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),Go.componentsOf=Go.components;var ts=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==e){var i=new $e,a=!1;if(t){if(t.length>0&&b(t[0])&&!k(t[0])){a=!0;for(var o=[],s=new Je,l=0,u=t.length;l0&&void 0!==arguments[0])||arguments[0],r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this,a=i.cy(),o=a._private,s=[],l=[],u=0,c=i.length;u0){for(var R=e.length===i.length?i:new ts(a,e),V=0;V0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,r=[],i={},a=n._private.cy;function o(e){for(var t=e._private.edges,n=0;n0&&(e?D.emitAndNotify("remove"):t&&D.emit("remove"));for(var T=0;T1e-4&&Math.abs(s.v)>1e-4;);return a?function(e){return u[e*(u.length-1)|0]}:c}}(),as=function(e,t,n,r){var i=function(e,t,n,r){var i=4,a=.001,o=1e-7,s=10,l=11,u=1/(l-1),c="undefined"!=typeof Float32Array;if(4!==arguments.length)return!1;for(var d=0;d<4;++d)if("number"!=typeof arguments[d]||isNaN(arguments[d])||!isFinite(arguments[d]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var h=c?new Float32Array(l):new Array(l);function p(e,t){return 1-3*t+3*e}function f(e,t){return 3*t-6*e}function g(e){return 3*e}function v(e,t,n){return((p(t,n)*e+f(t,n))*e+g(t))*e}function y(e,t,n){return 3*p(t,n)*e*e+2*f(t,n)*e+g(t)}function m(t,r){for(var a=0;a0?i=l:r=l}while(Math.abs(a)>o&&++u=a?m(t,s):0===c?s:x(t,r,r+u)}var E=!1;function k(){E=!0,e===t&&n===r||b()}var C=function(i){return E||k(),e===t&&n===r?i:0===i?0:1===i?1:v(w(i),t,r)};C.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var S="generateBezier("+[e,t,n,r]+")";return C.toString=function(){return S},C}(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},os={linear:function(e,t,n){return e+(t-e)*n},ease:as(.25,.1,.25,1),"ease-in":as(.42,0,1,1),"ease-out":as(0,0,.58,1),"ease-in-out":as(.42,0,.58,1),"ease-in-sine":as(.47,0,.745,.715),"ease-out-sine":as(.39,.575,.565,1),"ease-in-out-sine":as(.445,.05,.55,.95),"ease-in-quad":as(.55,.085,.68,.53),"ease-out-quad":as(.25,.46,.45,.94),"ease-in-out-quad":as(.455,.03,.515,.955),"ease-in-cubic":as(.55,.055,.675,.19),"ease-out-cubic":as(.215,.61,.355,1),"ease-in-out-cubic":as(.645,.045,.355,1),"ease-in-quart":as(.895,.03,.685,.22),"ease-out-quart":as(.165,.84,.44,1),"ease-in-out-quart":as(.77,0,.175,1),"ease-in-quint":as(.755,.05,.855,.06),"ease-out-quint":as(.23,1,.32,1),"ease-in-out-quint":as(.86,0,.07,1),"ease-in-expo":as(.95,.05,.795,.035),"ease-out-expo":as(.19,1,.22,1),"ease-in-out-expo":as(1,0,0,1),"ease-in-circ":as(.6,.04,.98,.335),"ease-out-circ":as(.075,.82,.165,1),"ease-in-out-circ":as(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return os.linear;var r=is(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":as};function ss(e,t,n,r,i){if(1===r)return n;if(t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function ls(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function us(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=ls(e,i),s=ls(t,i);if(x(o)&&x(s))return ss(a,o,s,n,r);if(m(o)&&m(s)){for(var l=[],u=0;u0?("spring"===d&&h.push(o.duration),o.easingImpl=os[d].apply(null,h)):o.easingImpl=os[d]}var p,f=o.easingImpl;if(p=0===o.duration?1:(n-l)/o.duration,o.applying&&(p=o.progress),p<0?p=0:p>1&&(p=1),null==o.delay){var g=o.startPosition,y=o.position;if(y&&i&&!e.locked()){var m={};ds(g.x,y.x)&&(m.x=us(g.x,y.x,p,f)),ds(g.y,y.y)&&(m.y=us(g.y,y.y,p,f)),e.position(m)}var b=o.startPan,x=o.pan,w=a.pan,E=null!=x&&r;E&&(ds(b.x,x.x)&&(w.x=us(b.x,x.x,p,f)),ds(b.y,x.y)&&(w.y=us(b.y,x.y,p,f)),e.emit("pan"));var k=o.startZoom,C=o.zoom,S=null!=C&&r;S&&(ds(k,C)&&(a.zoom=Tt(a.minZoom,us(k,C,p,f),a.maxZoom)),e.emit("zoom")),(E||S)&&e.emit("viewport");var P=o.style;if(P&&P.length>0&&i){for(var D=0;D=0;t--){(0,e[t])()}e.splice(0,e.length)},c=a.length-1;c>=0;c--){var d=a[c],h=d._private;h.stopped?(a.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.frames)):(h.playing||h.applying)&&(h.playing&&h.applying&&(h.applying=!1),h.started||hs(0,d,e),cs(t,d,e,n),h.applying&&(h.applying=!1),u(h.frames),null!=h.step&&h.step(e),d.completed()&&(a.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.completes)),s=!0)}return n||0!==a.length||0!==o.length||r.push(t),s}for(var a=!1,o=0;o0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var fs={animate:Fi.animate(),animation:Fi.animation(),animated:Fi.animated(),clearQueue:Fi.clearQueue(),delay:Fi.delay(),delayAnimation:Fi.delayAnimation(),stop:Fi.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,n){ps(n,e)}),t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&xe((function(n){ps(n,e),t()}))}()}}},gs={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&k(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},vs=function(e){return v(e)?new ka(e):e},ys={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new xo(gs,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,vs(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,vs(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,vs(t),n),this},once:function(e,t,n){return this.emitter().one(e,vs(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Fi.eventAliasesOn(ys);var ms={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};ms.jpeg=ms.jpg;var bs={layout:function(e){if(null!=e)if(null!=e.name){var t=e.name,n=this.extension("layout",t);if(null!=n){var r;r=v(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$();var i=new n(L({},e,{cy:this,eles:r}));return i}Ve("No such layout `"+t+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Ve("A `name` must be specified to make a layout");else Ve("Layout options must be specified to make a layout")}};bs.createLayout=bs.makeLayout=bs.layout;var xs={notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t)}else if(n.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach((function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)}))}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r0;)e.removeChild(e.childNodes[0]);this._private.renderer=null,this.mutableElements().forEach((function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]}))},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Es.invalidateDimensions=Es.resize;var ks={collection:function(e,t){return v(e)?this.$(e):E(e)?e.collection():m(e)?(t||(t={}),new ts(this,e,t.unique,t.removed)):new ts(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};ks.elements=ks.filter=ks.$;var Cs={};Cs.apply=function(e){for(var t=this._private.cy.collection(),n=0;n0;if(d||c&&h){var p=void 0;d&&h||d?p=l.properties:h&&(p=l.mappedProperties);for(var f=0;f1&&(g=1),s.color){var w=i.valueMin[0],E=i.valueMax[0],k=i.valueMin[1],C=i.valueMax[1],S=i.valueMin[2],P=i.valueMax[2],D=null==i.valueMin[3]?1:i.valueMin[3],T=null==i.valueMax[3]?1:i.valueMax[3],_=[Math.round(w+(E-w)*g),Math.round(k+(C-k)*g),Math.round(S+(P-S)*g),Math.round(D+(T-D)*g)];n={bypass:i.bypass,name:i.name,value:_,strValue:"rgb("+_[0]+", "+_[1]+", "+_[2]+")"}}else{if(!s.number)return!1;var M=i.valueMin+(i.valueMax-i.valueMin)*g;n=this.parse(i.name,M,i.bypass,"mapping")}if(!n)return f(),!1;n.mapping=i,i=n;break;case o.data:for(var B=i.field.split("."),N=d.data,z=0;z0&&a>0){for(var s={},l=!1,u=0;u0?e.delayAnimation(o).play().promise().then(t):t()})).then((function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1}))}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},Cs.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},Cs.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,(function(e){return e.triggersZOrder}),(function(){i._private.cy.notify("zorder",e)}))},Cs.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,(function(e){return e.triggersBounds}),(function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),!i.triggersBoundsOfParallelBeziers||"curve-style"!==t||"bezier"!==n&&"bezier"!==r||e.parallelEdges().forEach((function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()})),!i.triggersBoundsOfConnectedEdges||"display"!==t||"none"!==n&&"none"!==r||e.connectedEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))},Cs.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Ss={applyBypass:function(e,t,n,r){var i=[];if("*"===t||"**"===t){if(void 0!==n)for(var a=0;at.length?i.substr(t.length):""}function o(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");;){if(i.match(/^\s*$/))break;var s=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){je("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=s[0];var l=s[1];if("core"!==l)if(new ka(l).invalid){je("Skipping parsing of block: Invalid selector found in string stylesheet: "+l),a();continue}var u=s[2],c=!1;n=u;for(var d=[];;){if(n.match(/^\s*$/))break;var h=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!h){je("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+u),c=!0;break}r=h[0];var p=h[1],f=h[2];if(this.properties[p])this.parse(p,f)?(d.push({name:p,val:f}),o()):(je("Skipping property: Invalid property definition in: "+r),o());else je("Skipping property: Invalid property name in: "+r),o()}if(c){a();break}this.selector(l);for(var g=0;g=7&&"d"===t[0]&&(l=new RegExp(o.data.regex).exec(t))){if(n)return!1;var d=o.data;return{name:e,value:l,strValue:""+t,mapped:d,field:l[1],bypass:n}}if(t.length>=10&&"m"===t[0]&&(u=new RegExp(o.mapData.regex).exec(t))){if(n)return!1;if(c.multiple)return!1;var h=o.mapData;if(!c.color&&!c.number)return!1;var p=this.parse(e,u[4]);if(!p||p.mapped)return!1;var f=this.parse(e,u[5]);if(!f||f.mapped)return!1;if(p.pfValue===f.pfValue||p.strValue===f.strValue)return je("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+p.strValue+"`"),this.parse(e,p.strValue);if(c.color){var g=p.value,b=f.value;if(!(g[0]!==b[0]||g[1]!==b[1]||g[2]!==b[2]||g[3]!==b[3]&&(null!=g[3]&&1!==g[3]||null!=b[3]&&1!==b[3])))return!1}return{name:e,value:u,strValue:""+t,mapped:h,field:u[1],fieldMin:parseFloat(u[2]),fieldMax:parseFloat(u[3]),valueMin:p.value,valueMax:f.value,bypass:n}}}if(c.multiple&&"multiple"!==r){var w;if(w=s?t.split(/\s+/):m(t)?t:[t],c.evenMultiple&&w.length%2!=0)return null;for(var E=[],k=[],C=[],S="",P=!1,D=0;D0?" ":"")+T.strValue}return c.validate&&!c.validate(E,k)?null:c.singleEnum&&P?1===E.length&&v(E[0])?{name:e,value:E[0],strValue:E[0],bypass:n}:null:{name:e,value:E,pfValue:C,strValue:S,bypass:n,units:k}}var _,B,N=function(){for(var r=0;rc.max||c.strictMax&&t===c.max))return null;var V={name:e,value:t,strValue:""+t+(z||""),units:z,bypass:n};return c.unitless||"px"!==z&&"em"!==z?V.pfValue=t:V.pfValue="px"!==z&&z?this.getEmSizeInPixels()*t:t,"ms"!==z&&"s"!==z||(V.pfValue="ms"===z?t:1e3*t),"deg"!==z&&"rad"!==z||(V.pfValue="rad"===z?t:(_=t,Math.PI*_/180)),"%"===z&&(V.pfValue=t/100),V}if(c.propList){var F=[],j=""+t;if("none"===j);else{for(var q=j.split(/\s*,\s*|\s+/),Y=0;Y0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:o=(o=(o=Math.min((s-2*t)/n.w,(l-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:o)=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),x(e)?n=e:b(e)&&(n=e.level,null!=e.position?t=yt(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;x(l.x)&&(t.pan.x=l.x,o=!1),x(l.y)&&(t.pan.y=l.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(v(e)){var n=e;e=this.mutableElements().filter(n)}else E(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container,i=this;return n.sizeCache=n.sizeCache||(r?(e=i.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};As.centre=As.center,As.autolockNodes=As.autolock,As.autoungrabifyNodes=As.autoungrabify;var Ls={data:Fi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Fi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Fi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Ls.attr=Ls.data,Ls.removeAttr=Ls.removeData;var Os=function(e){var t=this,n=(e=L({},e)).container;n&&!w(n)&&w(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{})&&r.cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==u&&void 0!==n&&!e.headless,o=e;o.layout=L({name:a?"grid":"null"},o.layout),o.renderer=L({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new ts(this),listeners:[],aniEles:new ts(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:x(o.zoom)?o.zoom:1,pan:{x:b(o.pan)&&x(o.pan.x)?o.pan.x:0,y:b(o.pan)&&x(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});l.styleEnabled&&t.setStyle([]);var c=L({},o,o.renderer);t.initRenderer(c);!function(e,t){if(e.some(T))return vr.all(e).then(t);t(e)}([o.style,o.elements],(function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(b(e)||m(e))&&t.add(e),t.one("layoutready",(function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")})).one("layoutstop",(function(){t.one("done",r),t.emit("done")}));var a=L({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()}(a,(function(){t.startAnimationLoop(),l.ready=!0,y(o.ready)&&t.on("ready",o.ready);for(var e=0;e0,u=_t(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(E(n.roots))e=n.roots;else if(m(n.roots)){for(var c=[],d=0;d0;){var N=_.shift(),z=T(N,M);if(z)N.outgoers().filter((function(e){return e.isNode()&&i.has(e)})).forEach(B);else if(null===z){je("Detected double maximal shift for node `"+N.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}D();var I=0;if(n.avoidOverlap)for(var L=0;L0&&b[0].length<=3?l/2:0),d=2*Math.PI/b[r].length*i;return 0===r&&1===b[0].length&&(c=1),{x:G+c*Math.cos(d),y:U+c*Math.sin(d)}}return{x:G+(i+1-(a+1)/2)*o,y:(r+1)*s}})),this};var Xs={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Ws(e){this.options=L({},Xs,e)}Ws.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o,s=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l=s.x1+s.w/2,u=s.y1+s.h/2,c=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),d=0,h=0;h1&&t.avoidOverlap){d*=1.75;var v=Math.cos(c)-Math.cos(0),y=Math.sin(c)-Math.sin(0),m=Math.sqrt(d*d/(v*v+y*y));o=Math.max(m,o)}return r.nodes().layoutPositions(this,t,(function(e,n){var r=t.startAngle+n*c*(i?1:-1),a=o*Math.cos(r),s=o*Math.sin(r);return{x:l+a,y:u+s}})),this};var Hs,Ks={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Gs(e){this.options=L({},Ks,e)}Gs.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,i=t.eles,a=i.nodes().not(":parent"),o=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s=o.x1+o.w/2,l=o.y1+o.h/2,u=[],c=0,d=0;d0)Math.abs(m[0].value-x.value)>=v&&(m=[],y.push(m));m.push(x)}var w=c+t.minNodeSpacing;if(!t.avoidOverlap){var E=y.length>0&&y[0].length>1,k=(Math.min(o.w,o.h)/2-w)/(y.length+E?1:0);w=Math.min(w,k)}for(var C=0,S=0;S1&&t.avoidOverlap){var _=Math.cos(T)-Math.cos(0),M=Math.sin(T)-Math.sin(0),B=Math.sqrt(w*w/(_*_+M*M));C=Math.max(B,C)}P.r=C,C+=w}if(t.equidistant){for(var N=0,z=0,I=0;I=e.numIter)&&(rl(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature=e.animationThreshold&&a(),xe(t)):(gl(r,e),s())}()}else{for(;u;)u=o(l),l++;gl(r,e),s()}return this},Zs.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},Zs.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var $s=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=_t(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u0){o.graphSet.push(E);for(u=0;ur.count?0:r.graph},Js=function e(t,n,r,i){var a=i.graphSet[r];if(-10)var s=(u=r.nodeOverlap*o)*i/(g=Math.sqrt(i*i+a*a)),l=u*a/g;else{var u,c=ll(e,i,a),d=ll(t,-1*i,-1*a),h=d.x-c.x,p=d.y-c.y,f=h*h+p*p,g=Math.sqrt(f);s=(u=(e.nodeRepulsion+t.nodeRepulsion)/f)*h/g,l=u*p/g}e.isLocked||(e.offsetX-=s,e.offsetY-=l),t.isLocked||(t.offsetX+=s,t.offsetY+=l)}},sl=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},ll=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0n?(u.x=r,u.y=i+a/2,u):0t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t,u):0=l)?(u.x=r+a*t/2/n,u.y=i+a/2,u):0>n&&(s<=-1*l||s>=l)?(u.x=r-a*t/2/n,u.y=i-a/2,u):u},ul=function(e,t){for(var n=0;n1){var f=t.gravity*d/p,g=t.gravity*h/p;c.offsetX+=f,c.offsetY+=g}}}}},dl=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0n)var i={x:n*e/r,y:n*t/r};else i={x:e,y:t};return i},fl=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;return(null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLefti.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTopf&&(d+=p+t.componentSpacing,c=0,h=0,p=0)}}},vl={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function yl(e){this.options=L({},vl,e)}yl.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=r.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));var a=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===a.h||0===a.w)r.nodes().layoutPositions(this,t,(function(e){return{x:a.x1,y:a.y1}}));else{var o=i.size(),s=Math.sqrt(o*a.h/a.w),l=Math.round(s),u=Math.round(a.w/a.h*s),c=function(e){if(null==e)return Math.min(l,u);Math.min(l,u)==l?l=e:u=e},d=function(e){if(null==e)return Math.max(l,u);Math.max(l,u)==l?l=e:u=e},h=t.rows,p=null!=t.cols?t.cols:t.columns;if(null!=h&&null!=p)l=h,u=p;else if(null!=h&&null==p)l=h,u=Math.ceil(o/l);else if(null==h&&null!=p)u=p,l=Math.ceil(o/u);else if(u*l>o){var f=c(),g=d();(f-1)*g>=o?c(f-1):(g-1)*f>=o&&d(g-1)}else for(;u*l=o?d(y+1):c(v+1)}var m=a.w/u,b=a.h/l;if(t.condense&&(m=0,b=0),t.avoidOverlap)for(var x=0;x=u&&(B=0,M++)},z={},I=0;I(r=qt(e,t,x[w],x[w+1],x[w+2],x[w+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(x=a.allpts,w=0;w+5(r=jt(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5])))return v(n,r),!0;m=m||i.source,b=b||i.target;var E=o.getArrowWidth(l,c),k=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(w=0;w0&&(y(m),y(b))}function b(e,t,n){return Ue(e,t,n)}function x(n,r){var i,a=n._private,o=f;i=r?r+"-":"",n.boundingBox();var s=a.labelBounds[r||"main"],l=n.pstyle(i+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var u=b(a.rscratch,"labelX",r),c=b(a.rscratch,"labelY",r),d=b(a.rscratch,"labelAngle",r),h=n.pstyle(i+"text-margin-x").pfValue,p=n.pstyle(i+"text-margin-y").pfValue,g=s.x1-o-h,y=s.x2+o-h,m=s.y1-o-p,x=s.y2+o-p;if(d){var w=Math.cos(d),E=Math.sin(d),k=function(e,t){return{x:(e-=u)*w-(t-=c)*E+u,y:e*E+t*w+c}},C=k(g,m),S=k(g,x),P=k(y,m),D=k(y,x),T=[C.x+h,C.y+p,P.x+h,P.y+p,D.x+h,D.y+p,S.x+h,S.y+p];if(Yt(e,t,T))return v(n),!0}else if(Lt(s,e,t))return v(n),!0}}n&&(l=l.interactive);for(var w=l.length-1;w>=0;w--){var E=l[w];E.isNode()?y(E)||x(E):m(E)||x(E)||x(E,"source")||x(E,"target")}return u},getAllInBox:function(e,t,n,r){for(var i,a,o=this.getCachedZSortedEles().interactive,s=[],l=Math.min(e,n),u=Math.max(e,n),c=Math.min(t,r),d=Math.max(t,r),h=_t({x1:e=l,y1:t=c,x2:n=u,y2:r=d}),p=0;p0?-(Math.PI-a.ang):Math.PI+a.ang),Zl(t,n,Ul),zl=Gl.nx*Ul.ny-Gl.ny*Ul.nx,Il=Gl.nx*Ul.nx-Gl.ny*-Ul.ny,Ol=Math.asin(Math.max(-1,Math.min(1,zl))),Math.abs(Ol)<1e-6)return Bl=t.x,Nl=t.y,void(Vl=jl=0);Al=1,Ll=!1,Il<0?Ol<0?Ol=Math.PI+Ol:(Ol=Math.PI-Ol,Al=-1,Ll=!0):Ol>0&&(Al=-1,Ll=!0),jl=void 0!==t.radius?t.radius:r,Rl=Ol/2,ql=Math.min(Gl.len/2,Ul.len/2),i?(Fl=Math.abs(Math.cos(Rl)*jl/Math.sin(Rl)))>ql?(Fl=ql,Vl=Math.abs(Fl*Math.sin(Rl)/Math.cos(Rl))):Vl=jl:(Fl=Math.min(ql,jl),Vl=Math.abs(Fl*Math.sin(Rl)/Math.cos(Rl))),Wl=t.x+Ul.nx*Fl,Hl=t.y+Ul.ny*Fl,Bl=Wl-Ul.ny*Vl*Al,Nl=Hl+Ul.nx*Vl*Al,Yl=t.x+Gl.nx*Fl,Xl=t.y+Gl.ny*Fl,Kl=t};function Ql(e,t){0===t.radius?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function Jl(e,t,n,r){var i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return 0===r||0===t.radius?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:($l(e,t,n,r,i),{cx:Bl,cy:Nl,radius:Vl,startX:Yl,startY:Xl,stopX:Wl,stopY:Hl,startAngle:Gl.ang+Math.PI/2*Al,endAngle:Ul.ang-Math.PI/2*Al,counterClockwise:Ll})}var eu={};function tu(e){var t=[];if(null!=e){for(var n=0;n0?Math.max(e-t,0):Math.min(e+t,0)},w=x(m,v),E=x(b,y),k=!1;"auto"===c?u=Math.abs(w)>Math.abs(E)?"horizontal":"vertical":"upward"===c||"downward"===c?(u="vertical",k=!0):"leftward"!==c&&"rightward"!==c||(u="horizontal",k=!0);var C,S="vertical"===u,P=S?E:w,D=S?b:m,T=Et(D),_=!1;(k&&(h||f)||!("downward"===c&&D<0||"upward"===c&&D>0||"leftward"===c&&D>0||"rightward"===c&&D<0)||(P=(T*=-1)*Math.abs(P),_=!0),h)?C=(p<0?1+p:p)*P:C=(p<0?P:0)+p*T;var M=function(e){return Math.abs(e)=Math.abs(P)},B=M(C),N=M(Math.abs(P)-Math.abs(C));if((B||N)&&!_)if(S){var z=Math.abs(D)<=a/2,I=Math.abs(m)<=o/2;if(z){var A=(r.x1+r.x2)/2,L=r.y1,O=r.y2;n.segpts=[A,L,A,O]}else if(I){var R=(r.y1+r.y2)/2,V=r.x1,F=r.x2;n.segpts=[V,R,F,R]}else n.segpts=[r.x1,r.y2]}else{var j=Math.abs(D)<=i/2,q=Math.abs(b)<=s/2;if(j){var Y=(r.y1+r.y2)/2,X=r.x1,W=r.x2;n.segpts=[X,Y,W,Y]}else if(q){var H=(r.x1+r.x2)/2,K=r.y1,G=r.y2;n.segpts=[H,K,H,G]}else n.segpts=[r.x2,r.y1]}else if(S){var U=r.y1+C+(l?a/2*T:0),Z=r.x1,$=r.x2;n.segpts=[Z,U,$,U]}else{var Q=r.x1+C+(l?i/2*T:0),J=r.y1,ee=r.y2;n.segpts=[Q,J,Q,ee]}if(n.isRound){var te=e.pstyle("taxi-radius").value,ne="arc-radius"===e.pstyle("radius-type").value[0];n.radii=new Array(n.segpts.length/2).fill(te),n.isArcRadius=new Array(n.segpts.length/2).fill(ne)}},eu.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,d=t.srcCornerRadius,h=t.tgtCornerRadius,p=t.srcRs,f=t.tgtRs,g=!x(n.startX)||!x(n.startY),v=!x(n.arrowStartX)||!x(n.arrowStartY),y=!x(n.endX)||!x(n.endY),m=!x(n.arrowEndX)||!x(n.arrowEndY),b=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),w=kt({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=wh.poolIndex()){var p=d;d=h,h=p}var f=s.srcPos=d.position(),g=s.tgtPos=h.position(),v=s.srcW=d.outerWidth(),y=s.srcH=d.outerHeight(),m=s.tgtW=h.outerWidth(),b=s.tgtH=h.outerHeight(),w=s.srcShape=n.nodeShapes[t.getNodeShape(d)],E=s.tgtShape=n.nodeShapes[t.getNodeShape(h)],k=s.srcCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,C=s.tgtCornerRadius="auto"===h.pstyle("corner-radius").value?"auto":h.pstyle("corner-radius").pfValue,S=s.tgtRs=h._private.rscratch,P=s.srcRs=d._private.rscratch;s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var D=0;D0){var H=u,K=Ct(H,bt(t)),G=Ct(H,bt(W)),U=K;if(G2)Ct(H,{x:W[2],y:W[3]})0){var le=c,ue=Ct(le,bt(t)),ce=Ct(le,bt(se)),de=ue;if(ce2)Ct(le,{x:se[2],y:se[3]})=c||b){d={cp:v,segment:m};break}}if(d)break}var x=d.cp,w=d.segment,E=(c-p)/w.length,k=w.t1-w.t0,C=u?w.t0+k*E:w.t1-k*E;C=Tt(0,C,1),t=Dt(x.p0,x.p1,x.p2,C),l=function(e,t,n,r){var i=Tt(0,r-.001,1),a=Tt(0,r+.001,1),o=Dt(e,t,n,i),s=Dt(e,t,n,a);return su(o,s)}(x.p0,x.p1,x.p2,C);break;case"straight":case"segments":case"haystack":for(var S,P,D,T,_=0,M=r.allpts.length,B=0;B+3=c));B+=2);var N=(c-P)/S;N=Tt(0,N,1),t=function(e,t,n,r){var i=t.x-e.x,a=t.y-e.y,o=kt(e,t),s=i/o,l=a/o;return n=null==n?0:n,r=null!=r?r:n*o,{x:e.x+s*r,y:e.y+l*r}}(D,T,N),l=su(D,T)}o("labelX",s,t.x),o("labelY",s,t.y),o("labelAutoAngle",s,l)}};l("source"),l("target"),this.applyLabelDimensions(e)}},au.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},au.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=Ue(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,c=u*a,d=i.width,h=i.height+(l-1)*(a-1)*u;Ze(n.rstyle,"labelWidth",t,d),Ze(n.rscratch,"labelWidth",t,d),Ze(n.rstyle,"labelHeight",t,h),Ze(n.rscratch,"labelHeight",t,h),Ze(n.rscratch,"labelLineHeight",t,c)},au.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(Ze(n.rscratch,e,t,r),r):Ue(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var u=o("labelKey");if(null!=u&&o("labelWrapKey")===u)return o("labelWrapCachedText");for(var c=i.split("\n"),d=e.pstyle("text-max-width").pfValue,h="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],f=/[\s\u200b]+|$/g,g=0;gd){var b,x="",w=0,E=l(v.matchAll(f));try{for(E.s();!(b=E.n()).done;){var k=b.value,C=k[0],S=v.substring(w,k.index);w=k.index+C.length;var P=0===x.length?S:x+S+C;this.calculateLabelDimensions(e,P).width<=d?x+=S+C:(x&&p.push(x),x=S+C)}}catch(e){E.e(e)}finally{E.f()}x.match(/^[\s\u200b]+$/)||p.push(x)}else p.push(v)}o("labelWrapCachedLines",p),i=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",u)}else if("ellipsis"===s){var D=e.pstyle("text-max-width").pfValue,T="",_=!1;if(this.calculateLabelDimensions(e,i).widthD)break;T+=i[M],M===i.length-1&&(_=!0)}return _||(T+="…"),T}return i},au.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},au.calculateLabelDimensions=function(e,t){var n=this,r=n.cy.window().document,i=Te(t,e._private.labelDimsKey),a=n.labelDimCache||(n.labelDimCache=[]),o=a[i];if(null!=o)return o;var s=e.pstyle("font-style").strValue,l=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,c=e.pstyle("font-weight").strValue,d=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=r.createElement("canvas"),h=this.labelCalcCanvasContext=d.getContext("2d");var p=d.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}h.font="".concat(s," ").concat(c," ").concat(l,"px ").concat(u);for(var f=0,g=0,v=t.split("\n"),y=0;y1&&void 0!==arguments[1])||arguments[1];if(t.merge(e),n)for(var r=0;r=e.desktopTapThreshold2}var D=i(t);v&&(e.hoverData.tapholdCancelled=!0);n=!0,r(g,["mousemove","vmousemove","tapdrag"],t,{x:c[0],y:c[1]});var T=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:c[0],y:c[1]}}),f[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(v){var _={originalEvent:t,type:"cxtdrag",position:{x:c[0],y:c[1]}};m?m.emit(_):o.emit(_),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&g===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:c[0],y:c[1]}}),e.hoverData.cxtOver=g,g&&g.emit({originalEvent:t,type:"cxtdragover",position:{x:c[0],y:c[1]}}))}}else if(e.hoverData.dragging){if(n=!0,o.panningEnabled()&&o.userPanningEnabled()){var M;if(e.hoverData.justStartedPan){var B=e.hoverData.mdownPos;M={x:(c[0]-B[0])*s,y:(c[1]-B[1])*s},e.hoverData.justStartedPan=!1}else M={x:b[0]*s,y:b[1]*s};o.panBy(M),o.emit("dragpan"),e.hoverData.dragged=!0}c=e.projectIntoViewport(t.clientX,t.clientY)}else if(1!=f[4]||null!=m&&!m.pannable()){if(m&&m.pannable()&&m.active()&&m.unactivate(),m&&m.grabbed()||g==y||(y&&r(y,["mouseout","tapdragout"],t,{x:c[0],y:c[1]}),g&&r(g,["mouseover","tapdragover"],t,{x:c[0],y:c[1]}),e.hoverData.last=g),m)if(v){if(o.boxSelectionEnabled()&&D)m&&m.grabbed()&&(d(w),m.emit("freeon"),w.emit("free"),e.dragData.didDrag&&(m.emit("dragfreeon"),w.emit("dragfree"))),T();else if(m&&m.grabbed()&&e.nodeIsDraggable(m)){var N=!e.dragData.didDrag;N&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||u(w,{inDragLayer:!0});var z={x:0,y:0};if(x(b[0])&&x(b[1])&&(z.x+=b[0],z.y+=b[1],N)){var I=e.hoverData.dragDelta;I&&x(I[0])&&x(I[1])&&(z.x+=I[0],z.y+=I[1])}e.hoverData.draggingEles=!0,w.silentShift(z).emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else!function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];0===t.length?(t.push(b[0]),t.push(b[1])):(t[0]+=b[0],t[1]+=b[1])}();n=!0}else if(v){if(e.hoverData.dragging||!o.boxSelectionEnabled()||!D&&o.panningEnabled()&&o.userPanningEnabled()){if(!e.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()){a(m,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,f[4]=0,e.data.bgActivePosistion=bt(h),e.redrawHint("select",!0),e.redraw())}}else T();m&&m.pannable()&&m.active()&&m.unactivate()}return f[2]=c[0],f[3]=c[1],n?(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1):void 0}}),!1),e.registerBinding(t,"mouseup",(function(t){if((1!==e.hoverData.which||1===t.which||!e.hoverData.capture)&&e.hoverData.capture){e.hoverData.capture=!1;var a=e.cy,o=e.projectIntoViewport(t.clientX,t.clientY),s=e.selection,l=e.findNearestElement(o[0],o[1],!0,!1),u=e.dragData.possibleDragElements,c=e.hoverData.down,h=i(t);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var p={originalEvent:t,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(p):a.emit(p),!e.hoverData.cxtDragged){var f={originalEvent:t,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(f):a.emit(f)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(r(l,["mouseup","tapend","vmouseup"],t,{x:o[0],y:o[1]}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||(r(c,["click","tap","vclick"],t,{x:o[0],y:o[1]}),b=!1,t.timeStamp-w<=a.multiClickDebounceTime()?(m&&clearTimeout(m),b=!0,w=null,r(c,["dblclick","dbltap","vdblclick"],t,{x:o[0],y:o[1]})):(m=setTimeout((function(){b||r(c,["oneclick","onetap","voneclick"],t,{x:o[0],y:o[1]})}),a.multiClickDebounceTime()),w=t.timeStamp)),null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||i(t)||(a.$(n).unselect(["tapunselect"]),u.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=u=a.collection()),l!=c||e.dragData.didDrag||e.hoverData.selecting||null!=l&&l._private.selectable&&(e.hoverData.dragging||("additive"===a.selectionType()||h?l.selected()?l.unselect(["tapunselect"]):l.select(["tapselect"]):h||(a.$(n).unmerge(l).unselect(["tapunselect"]),l.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var g=a.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));e.redrawHint("select",!0),g.length>0&&e.redrawHint("eles",!0),a.emit({type:"boxend",originalEvent:t,position:{x:o[0],y:o[1]}});var v=function(e){return e.selectable()&&!e.selected()};"additive"===a.selectionType()||h||a.$(n).unmerge(g).unselect(),g.emit("box").stdFilter(v).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!s[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var y=c&&c.grabbed();d(u),y&&(c.emit("freeon"),u.emit("free"),e.dragData.didDrag&&(c.emit("dragfreeon"),u.emit("dragfree")))}}s[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}),!1);var k,C,S,P,D,T,_,M,B,N,z,I,A,L=function(t){if(!e.scrollingPage){var n=e.cy,r=n.zoom(),i=n.pan(),a=e.projectIntoViewport(t.clientX,t.clientY),o=[a[0]*r+i.x,a[1]*r+i.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||0!==e.selection[4])t.preventDefault();else if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),s=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,s*=e.wheelSensitivity,1===t.deltaMode&&(s*=33);var l=n.zoom()*Math.pow(10,s);"gesturechange"===t.type&&(l=e.gestureStartZoom*t.scale),n.zoom({level:l,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===t.type?"pinchzoom":"scrollzoom")}}};e.registerBinding(e.container,"wheel",L,!0),e.registerBinding(t,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"gesturestart",(function(t){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||t.preventDefault()}),!0),e.registerBinding(e.container,"gesturechange",(function(t){e.hasTouchStarted||L(t)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var O,R,V,F,j,q,Y,X=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},W=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",O=function(t){if(e.hasTouchStarted=!0,E(t)){p(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var n=e.cy,i=e.touchData.now,a=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);i[0]=o[0],i[1]=o[1]}if(t.touches[1]){o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);i[2]=o[0],i[3]=o[1]}if(t.touches[2]){o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);i[4]=o[0],i[5]=o[1]}if(t.touches[1]){e.touchData.singleTouchMoved=!0,d(e.dragData.touchDragEles);var l=e.findContainerClientCoords();B=l[0],N=l[1],z=l[2],I=l[3],k=t.touches[0].clientX-B,C=t.touches[0].clientY-N,S=t.touches[1].clientX-B,P=t.touches[1].clientY-N,A=0<=k&&k<=z&&0<=S&&S<=z&&0<=C&&C<=I&&0<=P&&P<=I;var h=n.pan(),f=n.zoom();D=X(k,C,S,P),T=W(k,C,S,P),M=[((_=[(k+S)/2,(C+P)/2])[0]-h.x)/f,(_[1]-h.y)/f];if(T<4e4&&!t.touches[2]){var g=e.findNearestElement(i[0],i[1],!0,!0),v=e.findNearestElement(i[2],i[3],!0,!0);return g&&g.isNode()?(g.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=g):v&&v.isNode()?(v.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=v):n.emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(t.touches[2])n.boxSelectionEnabled()&&t.preventDefault();else if(t.touches[1]);else if(t.touches[0]){var y=e.findNearestElements(i[0],i[1],!0,!0),m=y[0];if(null!=m&&(m.activate(),e.touchData.start=m,e.touchData.starts=y,e.nodeIsGrabbable(m))){var b=e.dragData.touchDragEles=n.collection(),x=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),m.selected()?(x=n.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),u(x,{addToList:b})):c(m,{addToList:b}),s(m);var w=function(e){return{originalEvent:t,type:e,position:{x:i[0],y:i[1]}}};m.emit(w("grabon")),x?x.forEach((function(e){e.emit(w("grab"))})):m.emit(w("grab"))}r(m,["touchstart","tapstart","vmousedown"],t,{x:i[0],y:i[1]}),null==m&&(e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||r(e.touchData.start,["taphold"],t,{x:i[0],y:i[1]})}),e.tapholdDuration)}if(t.touches.length>=1){for(var L=e.touchData.startPosition=[null,null,null,null,null,null],O=0;O=e.touchTapThreshold2}if(n&&e.touchData.cxt){t.preventDefault();var w=t.touches[0].clientX-B,_=t.touches[0].clientY-N,z=t.touches[1].clientX-B,I=t.touches[1].clientY-N,L=W(w,_,z,I);if(L/T>=2.25||L>=22500){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var O={originalEvent:t,type:"cxttapend",position:{x:s[0],y:s[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(O),e.touchData.start=null):o.emit(O)}}if(n&&e.touchData.cxt){O={originalEvent:t,type:"cxtdrag",position:{x:s[0],y:s[1]}};e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(O):o.emit(O),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var R=e.findNearestElement(s[0],s[1],!0,!0);e.touchData.cxtOver&&R===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:s[0],y:s[1]}}),e.touchData.cxtOver=R,R&&R.emit({originalEvent:t,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(n&&t.touches[2]&&o.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:s[0],y:s[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,i[4]=1,i&&0!==i.length&&void 0!==i[0]?(i[2]=(s[0]+s[2]+s[4])/3,i[3]=(s[1]+s[3]+s[5])/3):(i[0]=(s[0]+s[2]+s[4])/3,i[1]=(s[1]+s[3]+s[5])/3,i[2]=(s[0]+s[2]+s[4])/3+1,i[3]=(s[1]+s[3]+s[5])/3+1),e.redrawHint("select",!0),e.redraw();else if(n&&t.touches[1]&&!e.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ee=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var V=0;V0&&!e.hoverData.draggingEles&&!e.swipePanning&&null!=e.data.bgActivePosistion&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1),e.registerBinding(t,"touchcancel",V=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(t,"touchend",F=function(t){var i=e.touchData.start;if(e.touchData.capture){0===t.touches.length&&(e.touchData.capture=!1),t.preventDefault();var a=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,s=e.cy,l=s.zoom(),u=e.touchData.now,c=e.touchData.earlier;if(t.touches[0]){var h=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);u[0]=h[0],u[1]=h[1]}if(t.touches[1]){h=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);u[2]=h[0],u[3]=h[1]}if(t.touches[2]){h=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);u[4]=h[0],u[5]=h[1]}if(i&&i.unactivate(),e.touchData.cxt){if(o={originalEvent:t,type:"cxttapend",position:{x:u[0],y:u[1]}},i?i.emit(o):s.emit(o),!e.touchData.cxtDragged){var p={originalEvent:t,type:"cxttap",position:{x:u[0],y:u[1]}};i?i.emit(p):s.emit(p)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!t.touches[2]&&s.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var f=s.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));a[0]=void 0,a[1]=void 0,a[2]=void 0,a[3]=void 0,a[4]=0,e.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:t,position:{x:u[0],y:u[1]}});f.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),f.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=i&&i.unactivate(),t.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(t.touches[1]);else if(t.touches[0]);else if(!t.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var g=e.dragData.touchDragEles;if(null!=i){var v=i._private.grabbed;d(g),e.redrawHint("drag",!0),e.redrawHint("eles",!0),v&&(i.emit("freeon"),g.emit("free"),e.dragData.didDrag&&(i.emit("dragfreeon"),g.emit("dragfree"))),r(i,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]}),i.unactivate(),e.touchData.start=null}else{var y=e.findNearestElement(u[0],u[1],!0,!0);r(y,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]})}var m=e.touchData.startPosition[0]-u[0],b=m*m,x=e.touchData.startPosition[1]-u[1],w=(b+x*x)*l*l;e.touchData.singleTouchMoved||(i||s.$(":selected").unselect(["tapunselect"]),r(i,["tap","vclick"],t,{x:u[0],y:u[1]}),j=!1,t.timeStamp-Y<=s.multiClickDebounceTime()?(q&&clearTimeout(q),j=!0,Y=null,r(i,["dbltap","vdblclick"],t,{x:u[0],y:u[1]})):(q=setTimeout((function(){j||r(i,["onetap","voneclick"],t,{x:u[0],y:u[1]})}),s.multiClickDebounceTime()),Y=t.timeStamp)),null!=i&&!e.dragData.didDrag&&i._private.selectable&&w2){for(var p=[c[0],c[1]],f=Math.pow(p[0]-e,2)+Math.pow(p[1]-t,2),g=1;g0)return g[0]}return null},p=Object.keys(d),f=0;f0?u:Rt(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=2*(s="auto"===s?nn(r,i):s);if(Xt(e,t,this.points,a,o,r,i-l,[0,-1],n))return!0;if(Xt(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!Yt(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||(!!Kt(e,t,l,l,a+r/2-s,o+i/2-s,n)||!!Kt(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},gu.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",Jt(3,0)),this.generateRoundPolygon("round-triangle",Jt(3,0)),this.generatePolygon("rectangle",Jt(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",Jt(5,0)),this.generateRoundPolygon("round-pentagon",Jt(5,0)),this.generatePolygon("hexagon",Jt(6,0)),this.generateRoundPolygon("round-hexagon",Jt(6,0)),this.generatePolygon("heptagon",Jt(7,0)),this.generateRoundPolygon("round-heptagon",Jt(7,0)),this.generatePolygon("octagon",Jt(8,0)),this.generateRoundPolygon("round-octagon",Jt(8,0));var r=new Array(20),i=tn(5,0),a=tn(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s=e.deqFastCost*g)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(f>=e.deqNoDrawCost*(1e3/60))break;var v=e.deq(t,d,c);if(!(v.length>0))break;for(var y=0;y0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,d,c)&&r())}),i(t))}}},wu=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Le;t(this,e),this.idsByKey=new $e,this.keyForId=new $e,this.cachesByLvl=new $e,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=r}return r(e,[{key:"getIdsFor",value:function(e){null==e&&Ve("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new Je,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new $e,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach((function(n){return t.deleteCache(e,n)}))}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),Eu={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},ku=He({getKey:null,doesEleInvalidateKey:Le,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Ae,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Cu=function(e,t){this.renderer=e,this.onDequeues=[];var n=ku(t);L(this,n),this.lookup=new wu(n.getKey,n.doesEleInvalidateKey),this.setupDequeueing()},Su=Cu.prototype;Su.reasons=Eu,Su.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},Su.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},Su.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new rt((function(e,t){return t.reqs-e.reqs}))},Su.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},Su.getElement=function(e,t,n,r,i){var a=this,o=this.renderer,s=o.cy.zoom(),l=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed())return null;if(!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(wt(s*n))),r<-4)r=-4;else if(s>=7.99||r>3)return null;var u=Math.pow(2,r),c=t.h*u,d=t.w*u,h=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,h))return null;var p,f=l.get(e,r);if(f&&f.invalidated&&(f.invalidated=!1,f.texture.invalidatedWidth-=f.width),f)return f;if(p=c<=25?25:c<=50?50:50*Math.ceil(c/50),c>1024||d>1024)return null;var g=a.getTextureQueue(p),v=g[g.length-2],y=function(){return a.recycleTexture(p,d)||a.addTexture(p,d)};v||(v=g[g.length-1]),v||(v=y()),v.width-v.usedWidthr;D--)S=a.getElement(e,t,n,D,Eu.downscale);P()}else{var T;if(!x&&!w&&!E)for(var _=r-1;_>=-4;_--){var M=l.get(e,_);if(M){T=M;break}}if(b(T))return a.queueElement(e,r),T;v.context.translate(v.usedWidth,0),v.context.scale(u,u),this.drawElement(v.context,e,t,h,!1),v.context.scale(1/u,1/u),v.context.translate(-v.usedWidth,0)}return f={x:v.usedWidth,texture:v,level:r,scale:u,width:d,height:c,scaledLabelShown:h},v.usedWidth+=Math.ceil(d+8),v.eleCaches.push(f),l.set(e,r,f),a.checkTextureFullness(v),f},Su.invalidateElements=function(e){for(var t=0;t=.2*e.width&&this.retireTexture(e)},Su.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?Ke(t,e):e.fullnessChecks++},Su.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;Ke(n,e),e.retired=!0;for(var i=e.eleCaches,a=0;a=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,Ge(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),Ke(r,a),n.push(a),a}},Su.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),i=this.getKey(e),a=r[i];if(a)a.level=Math.max(a.level,t),a.eles.merge(e),a.reqs++,n.updateItem(a);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:i};n.push(o),r[i]=o}},Su.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=[],i=this.lookup,a=0;a<1&&t.size()>0;a++){var o=t.pop(),s=o.key,l=o.eles[0],u=i.hasCache(l,o.level);if(n[s]=null,!u){r.push(o);var c=this.getBoundingBox(l);this.getElement(l,c,e,o.level,Eu.dequeue)}}return r},Su.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),i=n[r];null!=i&&(1===i.eles.length?(i.reqs=Ie,t.updateItem(i),t.pop(),n[r]=null):i.eles.unmerge(e))},Su.onDequeue=function(e){this.onDequeues.push(e)},Su.offDequeue=function(e){Ke(this.onDequeues,e)},Su.setupDequeueing=xu({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n=3.99||n>2)return null;r.validateLayersElesOrdering(n,e);var o,s,l=r.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[];if(r.levelIsComplete(n,e))return c;!function(){var t=function(t){if(r.validateLayersElesOrdering(t,e),r.levelIsComplete(t,e))return s=l[t],!0},i=function(e){if(!s)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};i(1),i(-1);for(var a=c.length-1;a>=0;a--){var o=c[a];o.invalid&&Ke(c,o)}}();var d=function(t){var i=(t=t||{}).after;if(function(){if(!o){o=_t();for(var t=0;t16e6)return null;var a=r.makeLayer(o,n);if(null!=i){var s=c.indexOf(i)+1;c.splice(s,0,a)}else(void 0===t.insert||t.insert)&&c.unshift(a);return a};if(r.skipping&&!a)return null;for(var h=null,p=e.length/1,f=!a,g=0;g=p||!Ot(h.bb,v.boundingBox()))&&!(h=d({insert:!0,after:h})))return null;s||f?r.queueLayer(h,v):r.drawEleInLayer(h,v,n,t),h.eles.push(v),m[n]=h}}return s||(f?null:c)},Du.getEleLevelForLayerLevel=function(e,t){return e},Du.drawEleInLayer=function(e,t,n,r){var i=this.renderer,a=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(n=this.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(a,!1),i.drawCachedElement(a,t,null,null,n,!0),i.setImgSmoothing(a,!0))},Du.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i0)return!1;if(a.invalid)return!1;r+=a.eles.length}return r===t.length},Du.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){e=!0;break}}return e},Du.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=we(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)})))},Du.invalidateLayer=function(e){if(this.lastInvalidationTime=we(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];Ke(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var i=0;i3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=t._private.rscratch;if((!a||t.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var l;n&&(l=n,e.translate(-l.x1,-l.y1));var u=a?t.pstyle("opacity").value:1,c=a?t.pstyle("line-opacity").value:1,d=t.pstyle("curve-style").value,h=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,f=t.pstyle("line-cap").value,g=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,y=u*c,m=u*c,b=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===d?(o.eleStrokeStyle(e,t,n),o.drawEdgeTrianglePath(t,e,s.allpts)):(e.lineWidth=p,e.lineCap=f,o.eleStrokeStyle(e,t,n),o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")},x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;e.lineWidth=p+g,e.lineCap=f,g>0?(o.colorStrokeStyle(e,v[0],v[1],v[2],n),"straight-triangle"===d?o.drawEdgeTrianglePath(t,e,s.allpts):(o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")):e.lineCap="butt"},w=function(){i&&o.drawEdgeOverlay(e,t)},E=function(){i&&o.drawEdgeUnderlay(e,t)},k=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;o.drawArrowheads(e,t,n)},C=function(){o.drawElementText(e,t,null,r)};e.lineJoin="round";var S="yes"===t.pstyle("ghost").value;if(S){var P=t.pstyle("ghost-offset-x").pfValue,D=t.pstyle("ghost-offset-y").pfValue,T=t.pstyle("ghost-opacity").value,_=y*T;e.translate(P,D),b(_),k(_),e.translate(-P,-D)}else x();E(),b(),k(),w(),C(),n&&e.translate(l.x1,l.y1)}}},Wu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this,a=i.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-color")).value;t.lineWidth=s,"self"!==o.edgeType||a?t.lineCap="round":t.lineCap="butt",i.colorStrokeStyle(t,l[0],l[1],l[2],r),i.drawEdgePath(n,t,o.allpts,"solid")}}}};Xu.drawEdgeOverlay=Wu("overlay"),Xu.drawEdgeUnderlay=Wu("underlay"),Xu.drawEdgePath=function(e,t,n,r){var i,a=e._private.rscratch,o=t,s=!1,u=this.usePaths(),c=e.pstyle("line-dash-pattern").pfValue,d=e.pstyle("line-dash-offset").pfValue;if(u){var h=n.join("$");a.pathCacheKey&&a.pathCacheKey===h?(i=t=a.pathCache,s=!0):(i=t=new Path2D,a.pathCacheKey=h,a.pathCache=i)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(c),o.lineDashOffset=d;break;case"solid":o.setLineDash([])}if(!s&&!a.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var p=2;p+35&&void 0!==arguments[5]?arguments[5]:5,o=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),o?e.stroke():e.fill()}Ku.eleTextBiggerThanMin=function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),i=Math.ceil(wt(n*r));t=Math.pow(2,i)}return!(e.pstyle("font-size").pfValue*t5&&void 0!==arguments[5])||arguments[5],o=this;if(null==r){if(a&&!o.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),d=t.pstyle("source-label"),h=t.pstyle("target-label");if(u||(!c||!c.value)&&(!d||!d.value)&&(!h||!h.value))return;e.textAlign="center",e.textBaseline="bottom"}var p,f=!n;n&&(p=n,e.translate(-p.x1,-p.y1)),null==i?(o.drawText(e,t,null,f,a),t.isEdge()&&(o.drawText(e,t,"source",f,a),o.drawText(e,t,"target",f,a))):o.drawText(e,t,i,f,a),n&&e.translate(p.x1,p.y1)},Ku.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n2&&void 0!==arguments[2])||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},Ku.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",i=e.pstyle(r+"text-rotation"),a=Ue(n,"labelAngle",t);return"autorotate"===i.strValue?e.isEdge()?a:0:"none"===i.strValue?0:i.pfValue},Ku.drawText=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=t._private,o=a.rscratch,s=i?t.effectiveOpacity():1;if(!i||0!==s&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var l,u,c=Ue(o,"labelX",n),d=Ue(o,"labelY",n),h=this.getLabelText(t,n);if(null!=h&&""!==h&&!isNaN(c)&&!isNaN(d)){this.setupTextStyle(e,t,i);var p,f=n?n+"-":"",g=Ue(o,"labelWidth",n),v=Ue(o,"labelHeight",n),y=t.pstyle(f+"text-margin-x").pfValue,m=t.pstyle(f+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;switch(b&&(x="center",w="center"),c+=y,d+=m,0!==(p=r?this.getTextAngle(t,n):0)&&(l=c,u=d,e.translate(l,u),e.rotate(p),c=0,d=0),w){case"top":break;case"center":d+=v/2;break;case"bottom":d+=v}var E=t.pstyle("text-background-opacity").value,k=t.pstyle("text-border-opacity").value,C=t.pstyle("text-border-width").pfValue,S=t.pstyle("text-background-padding").pfValue,P=t.pstyle("text-background-shape").strValue,D=0===P.indexOf("round"),T=2;if(E>0||C>0&&k>0){var _=c-S;switch(x){case"left":_-=g;break;case"center":_-=g/2}var M=d-v-S,B=g+2*S,N=v+2*S;if(E>0){var z=e.fillStyle,I=t.pstyle("text-background-color").value;e.fillStyle="rgba("+I[0]+","+I[1]+","+I[2]+","+E*s+")",D?Gu(e,_,M,B,N,T):e.fillRect(_,M,B,N),e.fillStyle=z}if(C>0&&k>0){var A=e.strokeStyle,L=e.lineWidth,O=t.pstyle("text-border-color").value,R=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+k*s+")",e.lineWidth=C,e.setLineDash)switch(R){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=C/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(D?Gu(e,_,M,B,N,T,"stroke"):e.strokeRect(_,M,B,N),"double"===R){var V=C/2;D?Gu(e,_+V,M+V,B-2*V,N-2*V,T,"stroke"):e.strokeRect(_+V,M+V,B-2*V,N-2*V)}e.setLineDash&&e.setLineDash([]),e.lineWidth=L,e.strokeStyle=A}}var F=2*t.pstyle("text-outline-width").pfValue;if(F>0&&(e.lineWidth=F),"wrap"===t.pstyle("text-wrap").value){var j=Ue(o,"labelWrapCachedLines",n),q=Ue(o,"labelLineHeight",n),Y=g/2,X=this.getLabelJustification(t);switch("auto"===X||("left"===x?"left"===X?c+=-g:"center"===X&&(c+=-Y):"center"===x?"left"===X?c+=-Y:"right"===X&&(c+=Y):"right"===x&&("center"===X?c+=Y:"right"===X&&(c+=g))),w){case"top":d-=(j.length-1)*q;break;case"center":case"bottom":d-=(j.length-1)*q}for(var W=0;W0&&e.strokeText(j[W],c,d),e.fillText(j[W],c,d),d+=q}else F>0&&e.strokeText(h,c,d),e.fillText(h,c,d);0!==p&&(e.rotate(-p),e.translate(-l,-u))}}};var Uu={drawNode:function(e,t,n){var r,i,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this,u=t._private,c=u.rscratch,d=t.position();if(x(d.x)&&x(d.y)&&(!s||t.visible())){var h,p,f=s?t.effectiveOpacity():1,g=l.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(p=n,e.translate(-p.x1,-p.y1));for(var m=t.pstyle("background-image"),b=m.value,w=new Array(b.length),E=new Array(b.length),k=0,C=0;C0&&void 0!==arguments[0]?arguments[0]:M;l.eleFillStyle(e,t,n)},H=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:R;l.colorStrokeStyle(e,B[0],B[1],B[2],t)},K=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:q;l.colorStrokeStyle(e,F[0],F[1],F[2],t)},G=function(e,t,n,r){var i,a=l.nodePathCache=l.nodePathCache||[],o=_e("polygon"===n?n+","+r.join(","):n,""+t,""+e,""+X),s=a[o],u=!1;return null!=s?(i=s,u=!0,c.pathCache=i):(i=new Path2D,a[o]=c.pathCache=i),{path:i,cacheHit:u}},U=t.pstyle("shape").strValue,Z=t.pstyle("shape-polygon-points").pfValue;if(g){e.translate(d.x,d.y);var $=G(r,i,U,Z);h=$.path,v=$.cacheHit}var Q=function(){if(!v){var n=d;g&&(n={x:0,y:0}),l.nodeShapes[l.getNodeShape(t)].draw(h||e,n.x,n.y,r,i,X,c)}g?e.fill(h):e.fill()},J=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=u.backgrounding,a=0,o=0;o0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f;l.hasPie(t)&&(l.drawPie(e,t,a),n&&(g||l.nodeShapes[l.getNodeShape(t)].draw(e,d.x,d.y,r,i,X,c)))},te=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,n=(T>0?T:-T)*t,r=T>0?0:255;0!==T&&(l.colorFillStyle(e,r,r,r,n),g?e.fill(h):e.fill())},ne=function(){if(_>0){if(e.lineWidth=_,e.lineCap=I,e.lineJoin=z,e.setLineDash)switch(N){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(L),e.lineDashOffset=O;break;case"solid":case"double":e.setLineDash([])}if("center"!==A){if(e.save(),e.lineWidth*=2,"inside"===A)g?e.clip(h):e.clip();else{var t=new Path2D;t.rect(-r/2-_,-i/2-_,r+2*_,i+2*_),t.addPath(h),e.clip(t,"evenodd")}g?e.stroke(h):e.stroke(),e.restore()}else g?e.stroke(h):e.stroke();if("double"===N){e.lineWidth=_/3;var n=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(h):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},re=function(){if(V>0){if(e.lineWidth=V,e.lineCap="butt",e.setLineDash)switch(j){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}var n=d;g&&(n={x:0,y:0});var a=l.getNodeShape(t),o=_;"inside"===A&&(o=0),"outside"===A&&(o*=2);var s,u=(r+o+(V+Y))/r,c=(i+o+(V+Y))/i,h=r*u,p=i*c,f=l.nodeShapes[a].points;if(g)s=G(h,p,a,f).path;if("ellipse"===a)l.drawEllipsePath(s||e,n.x,n.y,h,p);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(a)){var v=0,y=0,m=0;"round-diamond"===a?v=1.4*(o+Y+V):"round-heptagon"===a?(v=1.075*(o+Y+V),m=-(o/2+Y+V)/35):"round-hexagon"===a?v=1.12*(o+Y+V):"round-pentagon"===a?(v=1.13*(o+Y+V),m=-(o/2+Y+V)/15):"round-tag"===a?(v=1.12*(o+Y+V),y=.07*(o/2+V+Y)):"round-triangle"===a&&(v=(o+Y+V)*(Math.PI/2),m=-(o+Y/2+V)/Math.PI),0!==v&&(h=r*(u=(r+v)/r),["round-hexagon","round-tag"].includes(a)||(p=i*(c=(i+v)/i)));for(var b=h/2,x=p/2,w=(X="auto"===X?rn(h,p):X)+(o+V+Y)/2,E=new Array(f.length/2),k=new Array(f.length/2),C=0;C0){if(r=r||n.position(),null==i||null==a){var d=n.padding();i=n.width()+2*d,a=n.height()+2*d}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,i+2*o,a+2*o,c),t.fill()}}}};Uu.drawNodeOverlay=Zu("overlay"),Uu.drawNodeUnderlay=Zu("underlay"),Uu.hasPie=function(e){return(e=e[0])._private.hasPie},Uu.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=t.width(),u=t.height(),c=Math.min(l,u)/2,d=0;this.usePaths()&&(o=0,s=0),"%"===a.units?c*=a.pfValue:void 0!==a.pfValue&&(c=a.pfValue/2);for(var h=1;h<=i.pieBackgroundN;h++){var p=t.pstyle("pie-"+h+"-background-size").value,f=t.pstyle("pie-"+h+"-background-color").value,g=t.pstyle("pie-"+h+"-background-opacity").value*n,v=p/100;v+d>1&&(v=1-d);var y=1.5*Math.PI+2*Math.PI*d,m=y+2*Math.PI*v;0===p||d>=1||d+v>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,c,y,m),e.closePath(),this.colorFillStyle(e,f[0],f[1],f[2],g),e.fill(),d+=v)}};var $u={};$u.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n},$u.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;io.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!d&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),x=void 0!==i?i:b,w=l.pan(),E={x:w.x,y:w.y},k={zoom:b,pan:{x:w.x,y:w.y}},C=o.prevViewport;void 0===C||k.zoom!==C.zoom||k.pan.x!==C.pan.x||k.pan.y!==C.pan.y||g&&!f||(o.motionBlurPxRatio=1),a&&(E=a),x*=s,E.x*=s,E.y*=s;var S=o.getCachedZSortedEles();function P(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function D(e,r){var s,l,c,d;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=E,l=x,c=o.canvasWidth,d=o.canvasHeight):(s={x:w.x*p,y:w.y*p},l=b*p,c=o.canvasWidth*p,d=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?P(e,0,0,c,d):t||void 0!==r&&!r||e.clearRect(0,0,c,d),n||(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(d||(o.textureDrawLastFrame=!1),d){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var T=o.data.bufferContexts[o.TEXTURE_BUFFER];T.setTransform(1,0,0,1,0,0),T.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:T,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(k=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-k.pan.x)/k.zoom,y:(0-k.pan.y)/k.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var _=u.contexts[o.NODE],M=o.textureCache.texture;k=o.textureCache.viewport;_.setTransform(1,0,0,1,0,0),h?P(_,0,0,k.width,k.height):_.clearRect(0,0,k.width,k.height);var B=m.core("outside-texture-bg-color").value,N=m.core("outside-texture-bg-opacity").value;o.colorFillStyle(_,B[0],B[1],B[2],N),_.fillRect(0,0,k.width,k.height);b=l.zoom();D(_,!1),_.clearRect(k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s),_.drawImage(M,k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var z=l.extent(),I=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),A=o.hideEdgesOnViewport&&I,L=[];if(L[o.NODE]=!c[o.NODE]&&h&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,L[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),L[o.DRAG]=!c[o.DRAG]&&h&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,L[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||L[o.NODE]){var O=h&&!L[o.NODE]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.nondrag,s,z):o.drawLayeredElements(_,S.nondrag,s,z),o.debug&&o.drawDebugPoints(_,S.nondrag),n||h||(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||L[o.DRAG])){O=h&&!L[o.DRAG]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.drag,s,z):o.drawCachedElements(_,S.drag,s,z),o.debug&&o.drawDebugPoints(_,S.drag),n||h||(c[o.DRAG]=!1)}if(o.showFps||!r&&c[o.SELECT_BOX]&&!n){if(D(_=t||u.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){b=o.cy.zoom();var R=m.core("selection-box-border-width").value/b;_.lineWidth=R,_.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",_.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),R>0&&(_.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",_.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){b=o.cy.zoom();var V=u.bgActivePosistion;_.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",_.beginPath(),_.arc(V.x,V.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),_.fill()}var F=o.lastRedrawTime;if(o.showFps&&F){F=Math.round(F);var j=Math.round(1e3/F);_.setTransform(1,0,0,1,0,0),_.fillStyle="rgba(255, 0, 0, 0.75)",_.strokeStyle="rgba(255, 0, 0, 0.75)",_.lineWidth=1,_.fillText("1 frame = "+F+" ms = "+j+" fps",0,20);_.strokeRect(0,30,250,20),_.fillRect(0,30,250*Math.min(j/60,1),20)}n||(c[o.SELECT_BOX]=!1)}if(h&&1!==p){var q=u.contexts[o.NODE],Y=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],X=u.contexts[o.DRAG],W=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],H=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):P(e,0,0,o.canvasWidth,o.canvasHeight);var r=p;e.drawImage(t,0,0,o.canvasWidth*r,o.canvasHeight*r,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||L[o.NODE])&&(H(q,Y,L[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||L[o.DRAG])&&(H(X,W,L[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=k,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),h&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!d,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()}),100)),t||l.emit("render")};for(var Qu={drawPolygonPath:function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l0&&a>0){h.clearRect(0,0,i,a),h.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)h.translate(-n.x1*l,-n.y1*l),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(n.x1*l,n.y1*l);else{var f=t.pan(),g={x:f.x*l,y:f.y*l};l*=t.zoom(),h.translate(g.x,g.y),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(-g.x,-g.y)}e.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=e.bg,h.rect(0,0,i,a),h.fill())}return d},ac.png=function(e){return sc(e,this.bufferCanvasImage(e),"image/png")},ac.jpg=function(e){return sc(e,this.bufferCanvasImage(e),"image/jpeg")};var lc={nodeShapeImpl:function(e,t,n,r,i,a,o,s){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o,s);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a,s);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a,o,s);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a,s);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}}},uc=dc,cc=dc.prototype;function dc(e){var t=this,n=t.cy.window().document;t.data={canvases:new Array(cc.CANVAS_LAYERS),contexts:new Array(cc.CANVAS_LAYERS),canvasNeedsRedraw:new Array(cc.CANVAS_LAYERS),bufferCanvases:new Array(cc.BUFFER_COUNT),bufferContexts:new Array(cc.CANVAS_LAYERS)};t.data.canvasContainer=n.createElement("div");var r=t.data.canvasContainer.style;t.data.canvasContainer.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",r.position="relative",r.zIndex="0",r.overflow="hidden";var i=e.cy.container();i.appendChild(t.data.canvasContainer),i.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)";var a={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};c&&c.userAgent.match(/msie|trident|edge/i)&&(a["-ms-touch-action"]="none",a["touch-action"]="none");for(var o=0;o1e-4&&Math.abs(s.v)>1e-4;);return a?function(e){return u[e*(u.length-1)|0]}:c}}(),as=function(e,t,n,r){var i=function(e,t,n,r){var i=4,a=.001,o=1e-7,s=10,l=11,u=1/(l-1),c="undefined"!=typeof Float32Array;if(4!==arguments.length)return!1;for(var d=0;d<4;++d)if("number"!=typeof arguments[d]||isNaN(arguments[d])||!isFinite(arguments[d]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var h=c?new Float32Array(l):new Array(l);function p(e,t){return 1-3*t+3*e}function f(e,t){return 3*t-6*e}function g(e){return 3*e}function v(e,t,n){return((p(t,n)*e+f(t,n))*e+g(t))*e}function y(e,t,n){return 3*p(t,n)*e*e+2*f(t,n)*e+g(t)}function m(t,r){for(var a=0;a0?i=l:r=l}while(Math.abs(a)>o&&++u=a?m(t,s):0===c?s:x(t,r,r+u)}var E=!1;function k(){E=!0,e===t&&n===r||b()}var C=function(i){return E||k(),e===t&&n===r?i:0===i?0:1===i?1:v(w(i),t,r)};C.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var S="generateBezier("+[e,t,n,r]+")";return C.toString=function(){return S},C}(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},os={linear:function(e,t,n){return e+(t-e)*n},ease:as(.25,.1,.25,1),"ease-in":as(.42,0,1,1),"ease-out":as(0,0,.58,1),"ease-in-out":as(.42,0,.58,1),"ease-in-sine":as(.47,0,.745,.715),"ease-out-sine":as(.39,.575,.565,1),"ease-in-out-sine":as(.445,.05,.55,.95),"ease-in-quad":as(.55,.085,.68,.53),"ease-out-quad":as(.25,.46,.45,.94),"ease-in-out-quad":as(.455,.03,.515,.955),"ease-in-cubic":as(.55,.055,.675,.19),"ease-out-cubic":as(.215,.61,.355,1),"ease-in-out-cubic":as(.645,.045,.355,1),"ease-in-quart":as(.895,.03,.685,.22),"ease-out-quart":as(.165,.84,.44,1),"ease-in-out-quart":as(.77,0,.175,1),"ease-in-quint":as(.755,.05,.855,.06),"ease-out-quint":as(.23,1,.32,1),"ease-in-out-quint":as(.86,0,.07,1),"ease-in-expo":as(.95,.05,.795,.035),"ease-out-expo":as(.19,1,.22,1),"ease-in-out-expo":as(1,0,0,1),"ease-in-circ":as(.6,.04,.98,.335),"ease-out-circ":as(.075,.82,.165,1),"ease-in-out-circ":as(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return os.linear;var r=is(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":as};function ss(e,t,n,r,i){if(1===r)return n;if(t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function ls(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function us(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=ls(e,i),s=ls(t,i);if(x(o)&&x(s))return ss(a,o,s,n,r);if(m(o)&&m(s)){for(var l=[],u=0;u0?("spring"===d&&h.push(o.duration),o.easingImpl=os[d].apply(null,h)):o.easingImpl=os[d]}var p,f=o.easingImpl;if(p=0===o.duration?1:(n-l)/o.duration,o.applying&&(p=o.progress),p<0?p=0:p>1&&(p=1),null==o.delay){var g=o.startPosition,y=o.position;if(y&&i&&!e.locked()){var m={};ds(g.x,y.x)&&(m.x=us(g.x,y.x,p,f)),ds(g.y,y.y)&&(m.y=us(g.y,y.y,p,f)),e.position(m)}var b=o.startPan,x=o.pan,w=a.pan,E=null!=x&&r;E&&(ds(b.x,x.x)&&(w.x=us(b.x,x.x,p,f)),ds(b.y,x.y)&&(w.y=us(b.y,x.y,p,f)),e.emit("pan"));var k=o.startZoom,C=o.zoom,S=null!=C&&r;S&&(ds(k,C)&&(a.zoom=Tt(a.minZoom,us(k,C,p,f),a.maxZoom)),e.emit("zoom")),(E||S)&&e.emit("viewport");var P=o.style;if(P&&P.length>0&&i){for(var D=0;D=0;t--){(0,e[t])()}e.splice(0,e.length)},c=a.length-1;c>=0;c--){var d=a[c],h=d._private;h.stopped?(a.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.frames)):(h.playing||h.applying)&&(h.playing&&h.applying&&(h.applying=!1),h.started||hs(0,d,e),cs(t,d,e,n),h.applying&&(h.applying=!1),u(h.frames),null!=h.step&&h.step(e),d.completed()&&(a.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.completes)),s=!0)}return n||0!==a.length||0!==o.length||r.push(t),s}for(var a=!1,o=0;o0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var fs={animate:Fi.animate(),animation:Fi.animation(),animated:Fi.animated(),clearQueue:Fi.clearQueue(),delay:Fi.delay(),delayAnimation:Fi.delayAnimation(),stop:Fi.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,n){ps(n,e)}),t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&xe((function(n){ps(n,e),t()}))}()}}},gs={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&k(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},vs=function(e){return v(e)?new ka(e):e},ys={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new xo(gs,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,vs(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,vs(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,vs(t),n),this},once:function(e,t,n){return this.emitter().one(e,vs(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Fi.eventAliasesOn(ys);var ms={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};ms.jpeg=ms.jpg;var bs={layout:function(e){if(null!=e)if(null!=e.name){var t=e.name,n=this.extension("layout",t);if(null!=n){var r;r=v(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$();var i=new n(L({},e,{cy:this,eles:r}));return i}Ve("No such layout `"+t+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Ve("A `name` must be specified to make a layout");else Ve("Layout options must be specified to make a layout")}};bs.createLayout=bs.makeLayout=bs.layout;var xs={notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t)}else if(n.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach((function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)}))}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r0;)e.removeChild(e.childNodes[0]);this._private.renderer=null,this.mutableElements().forEach((function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]}))},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Es.invalidateDimensions=Es.resize;var ks={collection:function(e,t){return v(e)?this.$(e):E(e)?e.collection():m(e)?(t||(t={}),new ts(this,e,t.unique,t.removed)):new ts(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};ks.elements=ks.filter=ks.$;var Cs={};Cs.apply=function(e){for(var t=this._private.cy.collection(),n=0;n0;if(d||c&&h){var p=void 0;d&&h||d?p=l.properties:h&&(p=l.mappedProperties);for(var f=0;f1&&(g=1),s.color){var w=i.valueMin[0],E=i.valueMax[0],k=i.valueMin[1],C=i.valueMax[1],S=i.valueMin[2],P=i.valueMax[2],D=null==i.valueMin[3]?1:i.valueMin[3],T=null==i.valueMax[3]?1:i.valueMax[3],_=[Math.round(w+(E-w)*g),Math.round(k+(C-k)*g),Math.round(S+(P-S)*g),Math.round(D+(T-D)*g)];n={bypass:i.bypass,name:i.name,value:_,strValue:"rgb("+_[0]+", "+_[1]+", "+_[2]+")"}}else{if(!s.number)return!1;var M=i.valueMin+(i.valueMax-i.valueMin)*g;n=this.parse(i.name,M,i.bypass,"mapping")}if(!n)return f(),!1;n.mapping=i,i=n;break;case o.data:for(var B=i.field.split("."),N=d.data,z=0;z0&&a>0){for(var s={},l=!1,u=0;u0?e.delayAnimation(o).play().promise().then(t):t()})).then((function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1}))}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},Cs.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},Cs.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,(function(e){return e.triggersZOrder}),(function(){i._private.cy.notify("zorder",e)}))},Cs.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,(function(e){return e.triggersBounds}),(function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),!i.triggersBoundsOfParallelBeziers||"curve-style"!==t||"bezier"!==n&&"bezier"!==r||e.parallelEdges().forEach((function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()})),!i.triggersBoundsOfConnectedEdges||"display"!==t||"none"!==n&&"none"!==r||e.connectedEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))},Cs.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Ss={applyBypass:function(e,t,n,r){var i=[];if("*"===t||"**"===t){if(void 0!==n)for(var a=0;at.length?i.substr(t.length):""}function o(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");;){if(i.match(/^\s*$/))break;var s=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){je("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=s[0];var l=s[1];if("core"!==l)if(new ka(l).invalid){je("Skipping parsing of block: Invalid selector found in string stylesheet: "+l),a();continue}var u=s[2],c=!1;n=u;for(var d=[];;){if(n.match(/^\s*$/))break;var h=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!h){je("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+u),c=!0;break}r=h[0];var p=h[1],f=h[2];if(this.properties[p])this.parse(p,f)?(d.push({name:p,val:f}),o()):(je("Skipping property: Invalid property definition in: "+r),o());else je("Skipping property: Invalid property name in: "+r),o()}if(c){a();break}this.selector(l);for(var g=0;g=7&&"d"===t[0]&&(l=new RegExp(o.data.regex).exec(t))){if(n)return!1;var d=o.data;return{name:e,value:l,strValue:""+t,mapped:d,field:l[1],bypass:n}}if(t.length>=10&&"m"===t[0]&&(u=new RegExp(o.mapData.regex).exec(t))){if(n)return!1;if(c.multiple)return!1;var h=o.mapData;if(!c.color&&!c.number)return!1;var p=this.parse(e,u[4]);if(!p||p.mapped)return!1;var f=this.parse(e,u[5]);if(!f||f.mapped)return!1;if(p.pfValue===f.pfValue||p.strValue===f.strValue)return je("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+p.strValue+"`"),this.parse(e,p.strValue);if(c.color){var g=p.value,b=f.value;if(!(g[0]!==b[0]||g[1]!==b[1]||g[2]!==b[2]||g[3]!==b[3]&&(null!=g[3]&&1!==g[3]||null!=b[3]&&1!==b[3])))return!1}return{name:e,value:u,strValue:""+t,mapped:h,field:u[1],fieldMin:parseFloat(u[2]),fieldMax:parseFloat(u[3]),valueMin:p.value,valueMax:f.value,bypass:n}}}if(c.multiple&&"multiple"!==r){var w;if(w=s?t.split(/\s+/):m(t)?t:[t],c.evenMultiple&&w.length%2!=0)return null;for(var E=[],k=[],C=[],S="",P=!1,D=0;D0?" ":"")+T.strValue}return c.validate&&!c.validate(E,k)?null:c.singleEnum&&P?1===E.length&&v(E[0])?{name:e,value:E[0],strValue:E[0],bypass:n}:null:{name:e,value:E,pfValue:C,strValue:S,bypass:n,units:k}}var _,B,N=function(){for(var r=0;rc.max||c.strictMax&&t===c.max))return null;var V={name:e,value:t,strValue:""+t+(z||""),units:z,bypass:n};return c.unitless||"px"!==z&&"em"!==z?V.pfValue=t:V.pfValue="px"!==z&&z?this.getEmSizeInPixels()*t:t,"ms"!==z&&"s"!==z||(V.pfValue="ms"===z?t:1e3*t),"deg"!==z&&"rad"!==z||(V.pfValue="rad"===z?t:(_=t,Math.PI*_/180)),"%"===z&&(V.pfValue=t/100),V}if(c.propList){var F=[],j=""+t;if("none"===j);else{for(var q=j.split(/\s*,\s*|\s+/),Y=0;Y0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:o=(o=(o=Math.min((s-2*t)/n.w,(l-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:o)=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),x(e)?n=e:b(e)&&(n=e.level,null!=e.position?t=yt(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;x(l.x)&&(t.pan.x=l.x,o=!1),x(l.y)&&(t.pan.y=l.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(v(e)){var n=e;e=this.mutableElements().filter(n)}else E(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container,i=this;return n.sizeCache=n.sizeCache||(r?(e=i.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};As.centre=As.center,As.autolockNodes=As.autolock,As.autoungrabifyNodes=As.autoungrabify;var Ls={data:Fi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Fi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Fi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Ls.attr=Ls.data,Ls.removeAttr=Ls.removeData;var Os=function(e){var t=this,n=(e=L({},e)).container;n&&!w(n)&&w(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{})&&r.cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==u&&void 0!==n&&!e.headless,o=e;o.layout=L({name:a?"grid":"null"},o.layout),o.renderer=L({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new ts(this),listeners:[],aniEles:new ts(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:x(o.zoom)?o.zoom:1,pan:{x:b(o.pan)&&x(o.pan.x)?o.pan.x:0,y:b(o.pan)&&x(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});l.styleEnabled&&t.setStyle([]);var c=L({},o,o.renderer);t.initRenderer(c);!function(e,t){if(e.some(T))return vr.all(e).then(t);t(e)}([o.style,o.elements],(function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(b(e)||m(e))&&t.add(e),t.one("layoutready",(function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")})).one("layoutstop",(function(){t.one("done",r),t.emit("done")}));var a=L({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()}(a,(function(){t.startAnimationLoop(),l.ready=!0,y(o.ready)&&t.on("ready",o.ready);for(var e=0;e0,u=_t(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(E(n.roots))e=n.roots;else if(m(n.roots)){for(var c=[],d=0;d0;){var N=_.shift(),z=T(N,M);if(z)N.outgoers().filter((function(e){return e.isNode()&&i.has(e)})).forEach(B);else if(null===z){je("Detected double maximal shift for node `"+N.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}D();var I=0;if(n.avoidOverlap)for(var L=0;L0&&b[0].length<=3?l/2:0),d=2*Math.PI/b[r].length*i;return 0===r&&1===b[0].length&&(c=1),{x:G+c*Math.cos(d),y:U+c*Math.sin(d)}}return{x:G+(i+1-(a+1)/2)*o,y:(r+1)*s}})),this};var Xs={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Ws(e){this.options=L({},Xs,e)}Ws.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o,s=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l=s.x1+s.w/2,u=s.y1+s.h/2,c=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),d=0,h=0;h1&&t.avoidOverlap){d*=1.75;var v=Math.cos(c)-Math.cos(0),y=Math.sin(c)-Math.sin(0),m=Math.sqrt(d*d/(v*v+y*y));o=Math.max(m,o)}return r.nodes().layoutPositions(this,t,(function(e,n){var r=t.startAngle+n*c*(i?1:-1),a=o*Math.cos(r),s=o*Math.sin(r);return{x:l+a,y:u+s}})),this};var Hs,Ks={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Gs(e){this.options=L({},Ks,e)}Gs.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,i=t.eles,a=i.nodes().not(":parent"),o=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s=o.x1+o.w/2,l=o.y1+o.h/2,u=[],c=0,d=0;d0)Math.abs(m[0].value-x.value)>=v&&(m=[],y.push(m));m.push(x)}var w=c+t.minNodeSpacing;if(!t.avoidOverlap){var E=y.length>0&&y[0].length>1,k=(Math.min(o.w,o.h)/2-w)/(y.length+E?1:0);w=Math.min(w,k)}for(var C=0,S=0;S1&&t.avoidOverlap){var _=Math.cos(T)-Math.cos(0),M=Math.sin(T)-Math.sin(0),B=Math.sqrt(w*w/(_*_+M*M));C=Math.max(B,C)}P.r=C,C+=w}if(t.equidistant){for(var N=0,z=0,I=0;I=e.numIter)&&(rl(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature=e.animationThreshold&&a(),xe(t)):(gl(r,e),s())}()}else{for(;u;)u=o(l),l++;gl(r,e),s()}return this},Zs.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},Zs.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var $s=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=_t(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u0){o.graphSet.push(E);for(u=0;ur.count?0:r.graph},Js=function e(t,n,r,i){var a=i.graphSet[r];if(-10)var s=(u=r.nodeOverlap*o)*i/(g=Math.sqrt(i*i+a*a)),l=u*a/g;else{var u,c=ll(e,i,a),d=ll(t,-1*i,-1*a),h=d.x-c.x,p=d.y-c.y,f=h*h+p*p,g=Math.sqrt(f);s=(u=(e.nodeRepulsion+t.nodeRepulsion)/f)*h/g,l=u*p/g}e.isLocked||(e.offsetX-=s,e.offsetY-=l),t.isLocked||(t.offsetX+=s,t.offsetY+=l)}},sl=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},ll=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0n?(u.x=r,u.y=i+a/2,u):0t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t,u):0=l)?(u.x=r+a*t/2/n,u.y=i+a/2,u):0>n&&(s<=-1*l||s>=l)?(u.x=r-a*t/2/n,u.y=i-a/2,u):u},ul=function(e,t){for(var n=0;n1){var f=t.gravity*d/p,g=t.gravity*h/p;c.offsetX+=f,c.offsetY+=g}}}}},dl=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0n)var i={x:n*e/r,y:n*t/r};else i={x:e,y:t};return i},fl=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;return(null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLefti.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTopf&&(d+=p+t.componentSpacing,c=0,h=0,p=0)}}},vl={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function yl(e){this.options=L({},vl,e)}yl.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=r.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));var a=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===a.h||0===a.w)r.nodes().layoutPositions(this,t,(function(e){return{x:a.x1,y:a.y1}}));else{var o=i.size(),s=Math.sqrt(o*a.h/a.w),l=Math.round(s),u=Math.round(a.w/a.h*s),c=function(e){if(null==e)return Math.min(l,u);Math.min(l,u)==l?l=e:u=e},d=function(e){if(null==e)return Math.max(l,u);Math.max(l,u)==l?l=e:u=e},h=t.rows,p=null!=t.cols?t.cols:t.columns;if(null!=h&&null!=p)l=h,u=p;else if(null!=h&&null==p)l=h,u=Math.ceil(o/l);else if(null==h&&null!=p)u=p,l=Math.ceil(o/u);else if(u*l>o){var f=c(),g=d();(f-1)*g>=o?c(f-1):(g-1)*f>=o&&d(g-1)}else for(;u*l=o?d(y+1):c(v+1)}var m=a.w/u,b=a.h/l;if(t.condense&&(m=0,b=0),t.avoidOverlap)for(var x=0;x=u&&(B=0,M++)},z={},I=0;I(r=qt(e,t,x[w],x[w+1],x[w+2],x[w+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(x=a.allpts,w=0;w+5(r=jt(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5])))return v(n,r),!0;m=m||i.source,b=b||i.target;var E=o.getArrowWidth(l,c),k=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(w=0;w0&&(y(m),y(b))}function b(e,t,n){return Ue(e,t,n)}function x(n,r){var i,a=n._private,o=f;i=r?r+"-":"",n.boundingBox();var s=a.labelBounds[r||"main"],l=n.pstyle(i+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var u=b(a.rscratch,"labelX",r),c=b(a.rscratch,"labelY",r),d=b(a.rscratch,"labelAngle",r),h=n.pstyle(i+"text-margin-x").pfValue,p=n.pstyle(i+"text-margin-y").pfValue,g=s.x1-o-h,y=s.x2+o-h,m=s.y1-o-p,x=s.y2+o-p;if(d){var w=Math.cos(d),E=Math.sin(d),k=function(e,t){return{x:(e-=u)*w-(t-=c)*E+u,y:e*E+t*w+c}},C=k(g,m),S=k(g,x),P=k(y,m),D=k(y,x),T=[C.x+h,C.y+p,P.x+h,P.y+p,D.x+h,D.y+p,S.x+h,S.y+p];if(Yt(e,t,T))return v(n),!0}else if(Lt(s,e,t))return v(n),!0}}n&&(l=l.interactive);for(var w=l.length-1;w>=0;w--){var E=l[w];E.isNode()?y(E)||x(E):m(E)||x(E)||x(E,"source")||x(E,"target")}return u},getAllInBox:function(e,t,n,r){for(var i,a,o=this.getCachedZSortedEles().interactive,s=[],l=Math.min(e,n),u=Math.max(e,n),c=Math.min(t,r),d=Math.max(t,r),h=_t({x1:e=l,y1:t=c,x2:n=u,y2:r=d}),p=0;p0?-(Math.PI-a.ang):Math.PI+a.ang),Zl(t,n,Ul),zl=Gl.nx*Ul.ny-Gl.ny*Ul.nx,Il=Gl.nx*Ul.nx-Gl.ny*-Ul.ny,Ol=Math.asin(Math.max(-1,Math.min(1,zl))),Math.abs(Ol)<1e-6)return Bl=t.x,Nl=t.y,void(Vl=jl=0);Al=1,Ll=!1,Il<0?Ol<0?Ol=Math.PI+Ol:(Ol=Math.PI-Ol,Al=-1,Ll=!0):Ol>0&&(Al=-1,Ll=!0),jl=void 0!==t.radius?t.radius:r,Rl=Ol/2,ql=Math.min(Gl.len/2,Ul.len/2),i?(Fl=Math.abs(Math.cos(Rl)*jl/Math.sin(Rl)))>ql?(Fl=ql,Vl=Math.abs(Fl*Math.sin(Rl)/Math.cos(Rl))):Vl=jl:(Fl=Math.min(ql,jl),Vl=Math.abs(Fl*Math.sin(Rl)/Math.cos(Rl))),Wl=t.x+Ul.nx*Fl,Hl=t.y+Ul.ny*Fl,Bl=Wl-Ul.ny*Vl*Al,Nl=Hl+Ul.nx*Vl*Al,Yl=t.x+Gl.nx*Fl,Xl=t.y+Gl.ny*Fl,Kl=t};function Ql(e,t){0===t.radius?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function Jl(e,t,n,r){var i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return 0===r||0===t.radius?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:($l(e,t,n,r,i),{cx:Bl,cy:Nl,radius:Vl,startX:Yl,startY:Xl,stopX:Wl,stopY:Hl,startAngle:Gl.ang+Math.PI/2*Al,endAngle:Ul.ang-Math.PI/2*Al,counterClockwise:Ll})}var eu={};function tu(e){var t=[];if(null!=e){for(var n=0;n0?Math.max(e-t,0):Math.min(e+t,0)},w=x(m,v),E=x(b,y),k=!1;"auto"===c?u=Math.abs(w)>Math.abs(E)?"horizontal":"vertical":"upward"===c||"downward"===c?(u="vertical",k=!0):"leftward"!==c&&"rightward"!==c||(u="horizontal",k=!0);var C,S="vertical"===u,P=S?E:w,D=S?b:m,T=Et(D),_=!1;(k&&(h||f)||!("downward"===c&&D<0||"upward"===c&&D>0||"leftward"===c&&D>0||"rightward"===c&&D<0)||(P=(T*=-1)*Math.abs(P),_=!0),h)?C=(p<0?1+p:p)*P:C=(p<0?P:0)+p*T;var M=function(e){return Math.abs(e)=Math.abs(P)},B=M(C),N=M(Math.abs(P)-Math.abs(C));if((B||N)&&!_)if(S){var z=Math.abs(D)<=a/2,I=Math.abs(m)<=o/2;if(z){var A=(r.x1+r.x2)/2,L=r.y1,O=r.y2;n.segpts=[A,L,A,O]}else if(I){var R=(r.y1+r.y2)/2,V=r.x1,F=r.x2;n.segpts=[V,R,F,R]}else n.segpts=[r.x1,r.y2]}else{var j=Math.abs(D)<=i/2,q=Math.abs(b)<=s/2;if(j){var Y=(r.y1+r.y2)/2,X=r.x1,W=r.x2;n.segpts=[X,Y,W,Y]}else if(q){var H=(r.x1+r.x2)/2,K=r.y1,G=r.y2;n.segpts=[H,K,H,G]}else n.segpts=[r.x2,r.y1]}else if(S){var U=r.y1+C+(l?a/2*T:0),Z=r.x1,$=r.x2;n.segpts=[Z,U,$,U]}else{var Q=r.x1+C+(l?i/2*T:0),J=r.y1,ee=r.y2;n.segpts=[Q,J,Q,ee]}if(n.isRound){var te=e.pstyle("taxi-radius").value,ne="arc-radius"===e.pstyle("radius-type").value[0];n.radii=new Array(n.segpts.length/2).fill(te),n.isArcRadius=new Array(n.segpts.length/2).fill(ne)}},eu.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,d=t.srcCornerRadius,h=t.tgtCornerRadius,p=t.srcRs,f=t.tgtRs,g=!x(n.startX)||!x(n.startY),v=!x(n.arrowStartX)||!x(n.arrowStartY),y=!x(n.endX)||!x(n.endY),m=!x(n.arrowEndX)||!x(n.arrowEndY),b=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),w=kt({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=wh.poolIndex()){var p=d;d=h,h=p}var f=s.srcPos=d.position(),g=s.tgtPos=h.position(),v=s.srcW=d.outerWidth(),y=s.srcH=d.outerHeight(),m=s.tgtW=h.outerWidth(),b=s.tgtH=h.outerHeight(),w=s.srcShape=n.nodeShapes[t.getNodeShape(d)],E=s.tgtShape=n.nodeShapes[t.getNodeShape(h)],k=s.srcCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,C=s.tgtCornerRadius="auto"===h.pstyle("corner-radius").value?"auto":h.pstyle("corner-radius").pfValue,S=s.tgtRs=h._private.rscratch,P=s.srcRs=d._private.rscratch;s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var D=0;D0){var H=u,K=Ct(H,bt(t)),G=Ct(H,bt(W)),U=K;if(G2)Ct(H,{x:W[2],y:W[3]})0){var le=c,ue=Ct(le,bt(t)),ce=Ct(le,bt(se)),de=ue;if(ce2)Ct(le,{x:se[2],y:se[3]})=c||b){d={cp:v,segment:m};break}}if(d)break}var x=d.cp,w=d.segment,E=(c-p)/w.length,k=w.t1-w.t0,C=u?w.t0+k*E:w.t1-k*E;C=Tt(0,C,1),t=Dt(x.p0,x.p1,x.p2,C),l=function(e,t,n,r){var i=Tt(0,r-.001,1),a=Tt(0,r+.001,1),o=Dt(e,t,n,i),s=Dt(e,t,n,a);return su(o,s)}(x.p0,x.p1,x.p2,C);break;case"straight":case"segments":case"haystack":for(var S,P,D,T,_=0,M=r.allpts.length,B=0;B+3=c));B+=2);var N=(c-P)/S;N=Tt(0,N,1),t=function(e,t,n,r){var i=t.x-e.x,a=t.y-e.y,o=kt(e,t),s=i/o,l=a/o;return n=null==n?0:n,r=null!=r?r:n*o,{x:e.x+s*r,y:e.y+l*r}}(D,T,N),l=su(D,T)}o("labelX",s,t.x),o("labelY",s,t.y),o("labelAutoAngle",s,l)}};l("source"),l("target"),this.applyLabelDimensions(e)}},au.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},au.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=Ue(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,c=u*a,d=i.width,h=i.height+(l-1)*(a-1)*u;Ze(n.rstyle,"labelWidth",t,d),Ze(n.rscratch,"labelWidth",t,d),Ze(n.rstyle,"labelHeight",t,h),Ze(n.rscratch,"labelHeight",t,h),Ze(n.rscratch,"labelLineHeight",t,c)},au.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(Ze(n.rscratch,e,t,r),r):Ue(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var u=o("labelKey");if(null!=u&&o("labelWrapKey")===u)return o("labelWrapCachedText");for(var c=i.split("\n"),d=e.pstyle("text-max-width").pfValue,h="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],f=/[\s\u200b]+|$/g,g=0;gd){var b,x="",w=0,E=l(v.matchAll(f));try{for(E.s();!(b=E.n()).done;){var k=b.value,C=k[0],S=v.substring(w,k.index);w=k.index+C.length;var P=0===x.length?S:x+S+C;this.calculateLabelDimensions(e,P).width<=d?x+=S+C:(x&&p.push(x),x=S+C)}}catch(e){E.e(e)}finally{E.f()}x.match(/^[\s\u200b]+$/)||p.push(x)}else p.push(v)}o("labelWrapCachedLines",p),i=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",u)}else if("ellipsis"===s){var D=e.pstyle("text-max-width").pfValue,T="",_=!1;if(this.calculateLabelDimensions(e,i).widthD)break;T+=i[M],M===i.length-1&&(_=!0)}return _||(T+="…"),T}return i},au.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},au.calculateLabelDimensions=function(e,t){var n=this,r=n.cy.window().document,i=Te(t,e._private.labelDimsKey),a=n.labelDimCache||(n.labelDimCache=[]),o=a[i];if(null!=o)return o;var s=e.pstyle("font-style").strValue,l=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,c=e.pstyle("font-weight").strValue,d=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=r.createElement("canvas"),h=this.labelCalcCanvasContext=d.getContext("2d");var p=d.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}h.font="".concat(s," ").concat(c," ").concat(l,"px ").concat(u);for(var f=0,g=0,v=t.split("\n"),y=0;y1&&void 0!==arguments[1])||arguments[1];if(t.merge(e),n)for(var r=0;r=e.desktopTapThreshold2}var D=i(t);v&&(e.hoverData.tapholdCancelled=!0);n=!0,r(g,["mousemove","vmousemove","tapdrag"],t,{x:c[0],y:c[1]});var T=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:c[0],y:c[1]}}),f[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(v){var _={originalEvent:t,type:"cxtdrag",position:{x:c[0],y:c[1]}};m?m.emit(_):o.emit(_),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&g===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:c[0],y:c[1]}}),e.hoverData.cxtOver=g,g&&g.emit({originalEvent:t,type:"cxtdragover",position:{x:c[0],y:c[1]}}))}}else if(e.hoverData.dragging){if(n=!0,o.panningEnabled()&&o.userPanningEnabled()){var M;if(e.hoverData.justStartedPan){var B=e.hoverData.mdownPos;M={x:(c[0]-B[0])*s,y:(c[1]-B[1])*s},e.hoverData.justStartedPan=!1}else M={x:b[0]*s,y:b[1]*s};o.panBy(M),o.emit("dragpan"),e.hoverData.dragged=!0}c=e.projectIntoViewport(t.clientX,t.clientY)}else if(1!=f[4]||null!=m&&!m.pannable()){if(m&&m.pannable()&&m.active()&&m.unactivate(),m&&m.grabbed()||g==y||(y&&r(y,["mouseout","tapdragout"],t,{x:c[0],y:c[1]}),g&&r(g,["mouseover","tapdragover"],t,{x:c[0],y:c[1]}),e.hoverData.last=g),m)if(v){if(o.boxSelectionEnabled()&&D)m&&m.grabbed()&&(d(w),m.emit("freeon"),w.emit("free"),e.dragData.didDrag&&(m.emit("dragfreeon"),w.emit("dragfree"))),T();else if(m&&m.grabbed()&&e.nodeIsDraggable(m)){var N=!e.dragData.didDrag;N&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||u(w,{inDragLayer:!0});var z={x:0,y:0};if(x(b[0])&&x(b[1])&&(z.x+=b[0],z.y+=b[1],N)){var I=e.hoverData.dragDelta;I&&x(I[0])&&x(I[1])&&(z.x+=I[0],z.y+=I[1])}e.hoverData.draggingEles=!0,w.silentShift(z).emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else!function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];0===t.length?(t.push(b[0]),t.push(b[1])):(t[0]+=b[0],t[1]+=b[1])}();n=!0}else if(v){if(e.hoverData.dragging||!o.boxSelectionEnabled()||!D&&o.panningEnabled()&&o.userPanningEnabled()){if(!e.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()){a(m,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,f[4]=0,e.data.bgActivePosistion=bt(h),e.redrawHint("select",!0),e.redraw())}}else T();m&&m.pannable()&&m.active()&&m.unactivate()}return f[2]=c[0],f[3]=c[1],n?(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1):void 0}}),!1),e.registerBinding(t,"mouseup",(function(t){if((1!==e.hoverData.which||1===t.which||!e.hoverData.capture)&&e.hoverData.capture){e.hoverData.capture=!1;var a=e.cy,o=e.projectIntoViewport(t.clientX,t.clientY),s=e.selection,l=e.findNearestElement(o[0],o[1],!0,!1),u=e.dragData.possibleDragElements,c=e.hoverData.down,h=i(t);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var p={originalEvent:t,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(p):a.emit(p),!e.hoverData.cxtDragged){var f={originalEvent:t,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(f):a.emit(f)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(r(l,["mouseup","tapend","vmouseup"],t,{x:o[0],y:o[1]}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||(r(c,["click","tap","vclick"],t,{x:o[0],y:o[1]}),b=!1,t.timeStamp-w<=a.multiClickDebounceTime()?(m&&clearTimeout(m),b=!0,w=null,r(c,["dblclick","dbltap","vdblclick"],t,{x:o[0],y:o[1]})):(m=setTimeout((function(){b||r(c,["oneclick","onetap","voneclick"],t,{x:o[0],y:o[1]})}),a.multiClickDebounceTime()),w=t.timeStamp)),null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||i(t)||(a.$(n).unselect(["tapunselect"]),u.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=u=a.collection()),l!=c||e.dragData.didDrag||e.hoverData.selecting||null!=l&&l._private.selectable&&(e.hoverData.dragging||("additive"===a.selectionType()||h?l.selected()?l.unselect(["tapunselect"]):l.select(["tapselect"]):h||(a.$(n).unmerge(l).unselect(["tapunselect"]),l.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var g=a.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));e.redrawHint("select",!0),g.length>0&&e.redrawHint("eles",!0),a.emit({type:"boxend",originalEvent:t,position:{x:o[0],y:o[1]}});var v=function(e){return e.selectable()&&!e.selected()};"additive"===a.selectionType()||h||a.$(n).unmerge(g).unselect(),g.emit("box").stdFilter(v).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!s[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var y=c&&c.grabbed();d(u),y&&(c.emit("freeon"),u.emit("free"),e.dragData.didDrag&&(c.emit("dragfreeon"),u.emit("dragfree")))}}s[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}),!1);var k,C,S,P,D,T,_,M,B,N,z,I,A,L=function(t){if(!e.scrollingPage){var n=e.cy,r=n.zoom(),i=n.pan(),a=e.projectIntoViewport(t.clientX,t.clientY),o=[a[0]*r+i.x,a[1]*r+i.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||0!==e.selection[4])t.preventDefault();else if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),s=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,s*=e.wheelSensitivity,1===t.deltaMode&&(s*=33);var l=n.zoom()*Math.pow(10,s);"gesturechange"===t.type&&(l=e.gestureStartZoom*t.scale),n.zoom({level:l,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===t.type?"pinchzoom":"scrollzoom")}}};e.registerBinding(e.container,"wheel",L,!0),e.registerBinding(t,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"gesturestart",(function(t){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||t.preventDefault()}),!0),e.registerBinding(e.container,"gesturechange",(function(t){e.hasTouchStarted||L(t)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var O,R,V,F,j,q,Y,X=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},W=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",O=function(t){if(e.hasTouchStarted=!0,E(t)){p(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var n=e.cy,i=e.touchData.now,a=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);i[0]=o[0],i[1]=o[1]}if(t.touches[1]){o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);i[2]=o[0],i[3]=o[1]}if(t.touches[2]){o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);i[4]=o[0],i[5]=o[1]}if(t.touches[1]){e.touchData.singleTouchMoved=!0,d(e.dragData.touchDragEles);var l=e.findContainerClientCoords();B=l[0],N=l[1],z=l[2],I=l[3],k=t.touches[0].clientX-B,C=t.touches[0].clientY-N,S=t.touches[1].clientX-B,P=t.touches[1].clientY-N,A=0<=k&&k<=z&&0<=S&&S<=z&&0<=C&&C<=I&&0<=P&&P<=I;var h=n.pan(),f=n.zoom();D=X(k,C,S,P),T=W(k,C,S,P),M=[((_=[(k+S)/2,(C+P)/2])[0]-h.x)/f,(_[1]-h.y)/f];if(T<4e4&&!t.touches[2]){var g=e.findNearestElement(i[0],i[1],!0,!0),v=e.findNearestElement(i[2],i[3],!0,!0);return g&&g.isNode()?(g.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=g):v&&v.isNode()?(v.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=v):n.emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(t.touches[2])n.boxSelectionEnabled()&&t.preventDefault();else if(t.touches[1]);else if(t.touches[0]){var y=e.findNearestElements(i[0],i[1],!0,!0),m=y[0];if(null!=m&&(m.activate(),e.touchData.start=m,e.touchData.starts=y,e.nodeIsGrabbable(m))){var b=e.dragData.touchDragEles=n.collection(),x=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),m.selected()?(x=n.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),u(x,{addToList:b})):c(m,{addToList:b}),s(m);var w=function(e){return{originalEvent:t,type:e,position:{x:i[0],y:i[1]}}};m.emit(w("grabon")),x?x.forEach((function(e){e.emit(w("grab"))})):m.emit(w("grab"))}r(m,["touchstart","tapstart","vmousedown"],t,{x:i[0],y:i[1]}),null==m&&(e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||r(e.touchData.start,["taphold"],t,{x:i[0],y:i[1]})}),e.tapholdDuration)}if(t.touches.length>=1){for(var L=e.touchData.startPosition=[null,null,null,null,null,null],O=0;O=e.touchTapThreshold2}if(n&&e.touchData.cxt){t.preventDefault();var w=t.touches[0].clientX-B,_=t.touches[0].clientY-N,z=t.touches[1].clientX-B,I=t.touches[1].clientY-N,L=W(w,_,z,I);if(L/T>=2.25||L>=22500){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var O={originalEvent:t,type:"cxttapend",position:{x:s[0],y:s[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(O),e.touchData.start=null):o.emit(O)}}if(n&&e.touchData.cxt){O={originalEvent:t,type:"cxtdrag",position:{x:s[0],y:s[1]}};e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(O):o.emit(O),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var R=e.findNearestElement(s[0],s[1],!0,!0);e.touchData.cxtOver&&R===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:s[0],y:s[1]}}),e.touchData.cxtOver=R,R&&R.emit({originalEvent:t,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(n&&t.touches[2]&&o.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:s[0],y:s[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,i[4]=1,i&&0!==i.length&&void 0!==i[0]?(i[2]=(s[0]+s[2]+s[4])/3,i[3]=(s[1]+s[3]+s[5])/3):(i[0]=(s[0]+s[2]+s[4])/3,i[1]=(s[1]+s[3]+s[5])/3,i[2]=(s[0]+s[2]+s[4])/3+1,i[3]=(s[1]+s[3]+s[5])/3+1),e.redrawHint("select",!0),e.redraw();else if(n&&t.touches[1]&&!e.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ee=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var V=0;V0&&!e.hoverData.draggingEles&&!e.swipePanning&&null!=e.data.bgActivePosistion&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1),e.registerBinding(t,"touchcancel",V=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(t,"touchend",F=function(t){var i=e.touchData.start;if(e.touchData.capture){0===t.touches.length&&(e.touchData.capture=!1),t.preventDefault();var a=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,s=e.cy,l=s.zoom(),u=e.touchData.now,c=e.touchData.earlier;if(t.touches[0]){var h=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);u[0]=h[0],u[1]=h[1]}if(t.touches[1]){h=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);u[2]=h[0],u[3]=h[1]}if(t.touches[2]){h=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);u[4]=h[0],u[5]=h[1]}if(i&&i.unactivate(),e.touchData.cxt){if(o={originalEvent:t,type:"cxttapend",position:{x:u[0],y:u[1]}},i?i.emit(o):s.emit(o),!e.touchData.cxtDragged){var p={originalEvent:t,type:"cxttap",position:{x:u[0],y:u[1]}};i?i.emit(p):s.emit(p)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!t.touches[2]&&s.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var f=s.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));a[0]=void 0,a[1]=void 0,a[2]=void 0,a[3]=void 0,a[4]=0,e.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:t,position:{x:u[0],y:u[1]}});f.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),f.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=i&&i.unactivate(),t.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(t.touches[1]);else if(t.touches[0]);else if(!t.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var g=e.dragData.touchDragEles;if(null!=i){var v=i._private.grabbed;d(g),e.redrawHint("drag",!0),e.redrawHint("eles",!0),v&&(i.emit("freeon"),g.emit("free"),e.dragData.didDrag&&(i.emit("dragfreeon"),g.emit("dragfree"))),r(i,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]}),i.unactivate(),e.touchData.start=null}else{var y=e.findNearestElement(u[0],u[1],!0,!0);r(y,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]})}var m=e.touchData.startPosition[0]-u[0],b=m*m,x=e.touchData.startPosition[1]-u[1],w=(b+x*x)*l*l;e.touchData.singleTouchMoved||(i||s.$(":selected").unselect(["tapunselect"]),r(i,["tap","vclick"],t,{x:u[0],y:u[1]}),j=!1,t.timeStamp-Y<=s.multiClickDebounceTime()?(q&&clearTimeout(q),j=!0,Y=null,r(i,["dbltap","vdblclick"],t,{x:u[0],y:u[1]})):(q=setTimeout((function(){j||r(i,["onetap","voneclick"],t,{x:u[0],y:u[1]})}),s.multiClickDebounceTime()),Y=t.timeStamp)),null!=i&&!e.dragData.didDrag&&i._private.selectable&&w2){for(var p=[c[0],c[1]],f=Math.pow(p[0]-e,2)+Math.pow(p[1]-t,2),g=1;g0)return g[0]}return null},p=Object.keys(d),f=0;f0?u:Rt(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=2*(s="auto"===s?nn(r,i):s);if(Xt(e,t,this.points,a,o,r,i-l,[0,-1],n))return!0;if(Xt(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!Yt(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||(!!Kt(e,t,l,l,a+r/2-s,o+i/2-s,n)||!!Kt(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},gu.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",Jt(3,0)),this.generateRoundPolygon("round-triangle",Jt(3,0)),this.generatePolygon("rectangle",Jt(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",Jt(5,0)),this.generateRoundPolygon("round-pentagon",Jt(5,0)),this.generatePolygon("hexagon",Jt(6,0)),this.generateRoundPolygon("round-hexagon",Jt(6,0)),this.generatePolygon("heptagon",Jt(7,0)),this.generateRoundPolygon("round-heptagon",Jt(7,0)),this.generatePolygon("octagon",Jt(8,0)),this.generateRoundPolygon("round-octagon",Jt(8,0));var r=new Array(20),i=tn(5,0),a=tn(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s=e.deqFastCost*g)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(f>=e.deqNoDrawCost*(1e3/60))break;var v=e.deq(t,d,c);if(!(v.length>0))break;for(var y=0;y0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,d,c)&&r())}),i(t))}}},wu=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Le;t(this,e),this.idsByKey=new $e,this.keyForId=new $e,this.cachesByLvl=new $e,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=r}return r(e,[{key:"getIdsFor",value:function(e){null==e&&Ve("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new Je,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new $e,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach((function(n){return t.deleteCache(e,n)}))}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),Eu={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},ku=He({getKey:null,doesEleInvalidateKey:Le,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Ae,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Cu=function(e,t){this.renderer=e,this.onDequeues=[];var n=ku(t);L(this,n),this.lookup=new wu(n.getKey,n.doesEleInvalidateKey),this.setupDequeueing()},Su=Cu.prototype;Su.reasons=Eu,Su.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},Su.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},Su.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new rt((function(e,t){return t.reqs-e.reqs}))},Su.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},Su.getElement=function(e,t,n,r,i){var a=this,o=this.renderer,s=o.cy.zoom(),l=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed())return null;if(!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(wt(s*n))),r<-4)r=-4;else if(s>=7.99||r>3)return null;var u=Math.pow(2,r),c=t.h*u,d=t.w*u,h=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,h))return null;var p,f=l.get(e,r);if(f&&f.invalidated&&(f.invalidated=!1,f.texture.invalidatedWidth-=f.width),f)return f;if(p=c<=25?25:c<=50?50:50*Math.ceil(c/50),c>1024||d>1024)return null;var g=a.getTextureQueue(p),v=g[g.length-2],y=function(){return a.recycleTexture(p,d)||a.addTexture(p,d)};v||(v=g[g.length-1]),v||(v=y()),v.width-v.usedWidthr;D--)S=a.getElement(e,t,n,D,Eu.downscale);P()}else{var T;if(!x&&!w&&!E)for(var _=r-1;_>=-4;_--){var M=l.get(e,_);if(M){T=M;break}}if(b(T))return a.queueElement(e,r),T;v.context.translate(v.usedWidth,0),v.context.scale(u,u),this.drawElement(v.context,e,t,h,!1),v.context.scale(1/u,1/u),v.context.translate(-v.usedWidth,0)}return f={x:v.usedWidth,texture:v,level:r,scale:u,width:d,height:c,scaledLabelShown:h},v.usedWidth+=Math.ceil(d+8),v.eleCaches.push(f),l.set(e,r,f),a.checkTextureFullness(v),f},Su.invalidateElements=function(e){for(var t=0;t=.2*e.width&&this.retireTexture(e)},Su.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?Ke(t,e):e.fullnessChecks++},Su.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;Ke(n,e),e.retired=!0;for(var i=e.eleCaches,a=0;a=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,Ge(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),Ke(r,a),n.push(a),a}},Su.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),i=this.getKey(e),a=r[i];if(a)a.level=Math.max(a.level,t),a.eles.merge(e),a.reqs++,n.updateItem(a);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:i};n.push(o),r[i]=o}},Su.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=[],i=this.lookup,a=0;a<1&&t.size()>0;a++){var o=t.pop(),s=o.key,l=o.eles[0],u=i.hasCache(l,o.level);if(n[s]=null,!u){r.push(o);var c=this.getBoundingBox(l);this.getElement(l,c,e,o.level,Eu.dequeue)}}return r},Su.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),i=n[r];null!=i&&(1===i.eles.length?(i.reqs=Ie,t.updateItem(i),t.pop(),n[r]=null):i.eles.unmerge(e))},Su.onDequeue=function(e){this.onDequeues.push(e)},Su.offDequeue=function(e){Ke(this.onDequeues,e)},Su.setupDequeueing=xu({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n=3.99||n>2)return null;r.validateLayersElesOrdering(n,e);var o,s,l=r.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[];if(r.levelIsComplete(n,e))return c;!function(){var t=function(t){if(r.validateLayersElesOrdering(t,e),r.levelIsComplete(t,e))return s=l[t],!0},i=function(e){if(!s)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};i(1),i(-1);for(var a=c.length-1;a>=0;a--){var o=c[a];o.invalid&&Ke(c,o)}}();var d=function(t){var i=(t=t||{}).after;if(function(){if(!o){o=_t();for(var t=0;t16e6)return null;var a=r.makeLayer(o,n);if(null!=i){var s=c.indexOf(i)+1;c.splice(s,0,a)}else(void 0===t.insert||t.insert)&&c.unshift(a);return a};if(r.skipping&&!a)return null;for(var h=null,p=e.length/1,f=!a,g=0;g=p||!Ot(h.bb,v.boundingBox()))&&!(h=d({insert:!0,after:h})))return null;s||f?r.queueLayer(h,v):r.drawEleInLayer(h,v,n,t),h.eles.push(v),m[n]=h}}return s||(f?null:c)},Du.getEleLevelForLayerLevel=function(e,t){return e},Du.drawEleInLayer=function(e,t,n,r){var i=this.renderer,a=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(n=this.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(a,!1),i.drawCachedElement(a,t,null,null,n,!0),i.setImgSmoothing(a,!0))},Du.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i0)return!1;if(a.invalid)return!1;r+=a.eles.length}return r===t.length},Du.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){e=!0;break}}return e},Du.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=we(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)})))},Du.invalidateLayer=function(e){if(this.lastInvalidationTime=we(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];Ke(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var i=0;i3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=t._private.rscratch;if((!a||t.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var l;n&&(l=n,e.translate(-l.x1,-l.y1));var u=a?t.pstyle("opacity").value:1,c=a?t.pstyle("line-opacity").value:1,d=t.pstyle("curve-style").value,h=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,f=t.pstyle("line-cap").value,g=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,y=u*c,m=u*c,b=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===d?(o.eleStrokeStyle(e,t,n),o.drawEdgeTrianglePath(t,e,s.allpts)):(e.lineWidth=p,e.lineCap=f,o.eleStrokeStyle(e,t,n),o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")},x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;e.lineWidth=p+g,e.lineCap=f,g>0?(o.colorStrokeStyle(e,v[0],v[1],v[2],n),"straight-triangle"===d?o.drawEdgeTrianglePath(t,e,s.allpts):(o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")):e.lineCap="butt"},w=function(){i&&o.drawEdgeOverlay(e,t)},E=function(){i&&o.drawEdgeUnderlay(e,t)},k=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;o.drawArrowheads(e,t,n)},C=function(){o.drawElementText(e,t,null,r)};e.lineJoin="round";var S="yes"===t.pstyle("ghost").value;if(S){var P=t.pstyle("ghost-offset-x").pfValue,D=t.pstyle("ghost-offset-y").pfValue,T=t.pstyle("ghost-opacity").value,_=y*T;e.translate(P,D),b(_),k(_),e.translate(-P,-D)}else x();E(),b(),k(),w(),C(),n&&e.translate(l.x1,l.y1)}}},Wu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this,a=i.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-color")).value;t.lineWidth=s,"self"!==o.edgeType||a?t.lineCap="round":t.lineCap="butt",i.colorStrokeStyle(t,l[0],l[1],l[2],r),i.drawEdgePath(n,t,o.allpts,"solid")}}}};Xu.drawEdgeOverlay=Wu("overlay"),Xu.drawEdgeUnderlay=Wu("underlay"),Xu.drawEdgePath=function(e,t,n,r){var i,a=e._private.rscratch,o=t,s=!1,u=this.usePaths(),c=e.pstyle("line-dash-pattern").pfValue,d=e.pstyle("line-dash-offset").pfValue;if(u){var h=n.join("$");a.pathCacheKey&&a.pathCacheKey===h?(i=t=a.pathCache,s=!0):(i=t=new Path2D,a.pathCacheKey=h,a.pathCache=i)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(c),o.lineDashOffset=d;break;case"solid":o.setLineDash([])}if(!s&&!a.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var p=2;p+35&&void 0!==arguments[5]?arguments[5]:5,o=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),o?e.stroke():e.fill()}Ku.eleTextBiggerThanMin=function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),i=Math.ceil(wt(n*r));t=Math.pow(2,i)}return!(e.pstyle("font-size").pfValue*t5&&void 0!==arguments[5])||arguments[5],o=this;if(null==r){if(a&&!o.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),d=t.pstyle("source-label"),h=t.pstyle("target-label");if(u||(!c||!c.value)&&(!d||!d.value)&&(!h||!h.value))return;e.textAlign="center",e.textBaseline="bottom"}var p,f=!n;n&&(p=n,e.translate(-p.x1,-p.y1)),null==i?(o.drawText(e,t,null,f,a),t.isEdge()&&(o.drawText(e,t,"source",f,a),o.drawText(e,t,"target",f,a))):o.drawText(e,t,i,f,a),n&&e.translate(p.x1,p.y1)},Ku.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n2&&void 0!==arguments[2])||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},Ku.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",i=e.pstyle(r+"text-rotation"),a=Ue(n,"labelAngle",t);return"autorotate"===i.strValue?e.isEdge()?a:0:"none"===i.strValue?0:i.pfValue},Ku.drawText=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=t._private,o=a.rscratch,s=i?t.effectiveOpacity():1;if(!i||0!==s&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var l,u,c=Ue(o,"labelX",n),d=Ue(o,"labelY",n),h=this.getLabelText(t,n);if(null!=h&&""!==h&&!isNaN(c)&&!isNaN(d)){this.setupTextStyle(e,t,i);var p,f=n?n+"-":"",g=Ue(o,"labelWidth",n),v=Ue(o,"labelHeight",n),y=t.pstyle(f+"text-margin-x").pfValue,m=t.pstyle(f+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;switch(b&&(x="center",w="center"),c+=y,d+=m,0!==(p=r?this.getTextAngle(t,n):0)&&(l=c,u=d,e.translate(l,u),e.rotate(p),c=0,d=0),w){case"top":break;case"center":d+=v/2;break;case"bottom":d+=v}var E=t.pstyle("text-background-opacity").value,k=t.pstyle("text-border-opacity").value,C=t.pstyle("text-border-width").pfValue,S=t.pstyle("text-background-padding").pfValue,P=t.pstyle("text-background-shape").strValue,D=0===P.indexOf("round"),T=2;if(E>0||C>0&&k>0){var _=c-S;switch(x){case"left":_-=g;break;case"center":_-=g/2}var M=d-v-S,B=g+2*S,N=v+2*S;if(E>0){var z=e.fillStyle,I=t.pstyle("text-background-color").value;e.fillStyle="rgba("+I[0]+","+I[1]+","+I[2]+","+E*s+")",D?Gu(e,_,M,B,N,T):e.fillRect(_,M,B,N),e.fillStyle=z}if(C>0&&k>0){var A=e.strokeStyle,L=e.lineWidth,O=t.pstyle("text-border-color").value,R=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+k*s+")",e.lineWidth=C,e.setLineDash)switch(R){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=C/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(D?Gu(e,_,M,B,N,T,"stroke"):e.strokeRect(_,M,B,N),"double"===R){var V=C/2;D?Gu(e,_+V,M+V,B-2*V,N-2*V,T,"stroke"):e.strokeRect(_+V,M+V,B-2*V,N-2*V)}e.setLineDash&&e.setLineDash([]),e.lineWidth=L,e.strokeStyle=A}}var F=2*t.pstyle("text-outline-width").pfValue;if(F>0&&(e.lineWidth=F),"wrap"===t.pstyle("text-wrap").value){var j=Ue(o,"labelWrapCachedLines",n),q=Ue(o,"labelLineHeight",n),Y=g/2,X=this.getLabelJustification(t);switch("auto"===X||("left"===x?"left"===X?c+=-g:"center"===X&&(c+=-Y):"center"===x?"left"===X?c+=-Y:"right"===X&&(c+=Y):"right"===x&&("center"===X?c+=Y:"right"===X&&(c+=g))),w){case"top":d-=(j.length-1)*q;break;case"center":case"bottom":d-=(j.length-1)*q}for(var W=0;W0&&e.strokeText(j[W],c,d),e.fillText(j[W],c,d),d+=q}else F>0&&e.strokeText(h,c,d),e.fillText(h,c,d);0!==p&&(e.rotate(-p),e.translate(-l,-u))}}};var Uu={drawNode:function(e,t,n){var r,i,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this,u=t._private,c=u.rscratch,d=t.position();if(x(d.x)&&x(d.y)&&(!s||t.visible())){var h,p,f=s?t.effectiveOpacity():1,g=l.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(p=n,e.translate(-p.x1,-p.y1));for(var m=t.pstyle("background-image"),b=m.value,w=new Array(b.length),E=new Array(b.length),k=0,C=0;C0&&void 0!==arguments[0]?arguments[0]:M;l.eleFillStyle(e,t,n)},H=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:R;l.colorStrokeStyle(e,B[0],B[1],B[2],t)},K=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:q;l.colorStrokeStyle(e,F[0],F[1],F[2],t)},G=function(e,t,n,r){var i,a=l.nodePathCache=l.nodePathCache||[],o=_e("polygon"===n?n+","+r.join(","):n,""+t,""+e,""+X),s=a[o],u=!1;return null!=s?(i=s,u=!0,c.pathCache=i):(i=new Path2D,a[o]=c.pathCache=i),{path:i,cacheHit:u}},U=t.pstyle("shape").strValue,Z=t.pstyle("shape-polygon-points").pfValue;if(g){e.translate(d.x,d.y);var $=G(r,i,U,Z);h=$.path,v=$.cacheHit}var Q=function(){if(!v){var n=d;g&&(n={x:0,y:0}),l.nodeShapes[l.getNodeShape(t)].draw(h||e,n.x,n.y,r,i,X,c)}g?e.fill(h):e.fill()},J=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=u.backgrounding,a=0,o=0;o0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f;l.hasPie(t)&&(l.drawPie(e,t,a),n&&(g||l.nodeShapes[l.getNodeShape(t)].draw(e,d.x,d.y,r,i,X,c)))},te=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,n=(T>0?T:-T)*t,r=T>0?0:255;0!==T&&(l.colorFillStyle(e,r,r,r,n),g?e.fill(h):e.fill())},ne=function(){if(_>0){if(e.lineWidth=_,e.lineCap=I,e.lineJoin=z,e.setLineDash)switch(N){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(L),e.lineDashOffset=O;break;case"solid":case"double":e.setLineDash([])}if("center"!==A){if(e.save(),e.lineWidth*=2,"inside"===A)g?e.clip(h):e.clip();else{var t=new Path2D;t.rect(-r/2-_,-i/2-_,r+2*_,i+2*_),t.addPath(h),e.clip(t,"evenodd")}g?e.stroke(h):e.stroke(),e.restore()}else g?e.stroke(h):e.stroke();if("double"===N){e.lineWidth=_/3;var n=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(h):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},re=function(){if(V>0){if(e.lineWidth=V,e.lineCap="butt",e.setLineDash)switch(j){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}var n=d;g&&(n={x:0,y:0});var a=l.getNodeShape(t),o=_;"inside"===A&&(o=0),"outside"===A&&(o*=2);var s,u=(r+o+(V+Y))/r,c=(i+o+(V+Y))/i,h=r*u,p=i*c,f=l.nodeShapes[a].points;if(g)s=G(h,p,a,f).path;if("ellipse"===a)l.drawEllipsePath(s||e,n.x,n.y,h,p);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(a)){var v=0,y=0,m=0;"round-diamond"===a?v=1.4*(o+Y+V):"round-heptagon"===a?(v=1.075*(o+Y+V),m=-(o/2+Y+V)/35):"round-hexagon"===a?v=1.12*(o+Y+V):"round-pentagon"===a?(v=1.13*(o+Y+V),m=-(o/2+Y+V)/15):"round-tag"===a?(v=1.12*(o+Y+V),y=.07*(o/2+V+Y)):"round-triangle"===a&&(v=(o+Y+V)*(Math.PI/2),m=-(o+Y/2+V)/Math.PI),0!==v&&(h=r*(u=(r+v)/r),["round-hexagon","round-tag"].includes(a)||(p=i*(c=(i+v)/i)));for(var b=h/2,x=p/2,w=(X="auto"===X?rn(h,p):X)+(o+V+Y)/2,E=new Array(f.length/2),k=new Array(f.length/2),C=0;C0){if(r=r||n.position(),null==i||null==a){var d=n.padding();i=n.width()+2*d,a=n.height()+2*d}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,i+2*o,a+2*o,c),t.fill()}}}};Uu.drawNodeOverlay=Zu("overlay"),Uu.drawNodeUnderlay=Zu("underlay"),Uu.hasPie=function(e){return(e=e[0])._private.hasPie},Uu.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=t.width(),u=t.height(),c=Math.min(l,u)/2,d=0;this.usePaths()&&(o=0,s=0),"%"===a.units?c*=a.pfValue:void 0!==a.pfValue&&(c=a.pfValue/2);for(var h=1;h<=i.pieBackgroundN;h++){var p=t.pstyle("pie-"+h+"-background-size").value,f=t.pstyle("pie-"+h+"-background-color").value,g=t.pstyle("pie-"+h+"-background-opacity").value*n,v=p/100;v+d>1&&(v=1-d);var y=1.5*Math.PI+2*Math.PI*d,m=y+2*Math.PI*v;0===p||d>=1||d+v>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,c,y,m),e.closePath(),this.colorFillStyle(e,f[0],f[1],f[2],g),e.fill(),d+=v)}};var $u={};$u.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n},$u.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;io.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!d&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),x=void 0!==i?i:b,w=l.pan(),E={x:w.x,y:w.y},k={zoom:b,pan:{x:w.x,y:w.y}},C=o.prevViewport;void 0===C||k.zoom!==C.zoom||k.pan.x!==C.pan.x||k.pan.y!==C.pan.y||g&&!f||(o.motionBlurPxRatio=1),a&&(E=a),x*=s,E.x*=s,E.y*=s;var S=o.getCachedZSortedEles();function P(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function D(e,r){var s,l,c,d;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=E,l=x,c=o.canvasWidth,d=o.canvasHeight):(s={x:w.x*p,y:w.y*p},l=b*p,c=o.canvasWidth*p,d=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?P(e,0,0,c,d):t||void 0!==r&&!r||e.clearRect(0,0,c,d),n||(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(d||(o.textureDrawLastFrame=!1),d){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var T=o.data.bufferContexts[o.TEXTURE_BUFFER];T.setTransform(1,0,0,1,0,0),T.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:T,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(k=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-k.pan.x)/k.zoom,y:(0-k.pan.y)/k.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var _=u.contexts[o.NODE],M=o.textureCache.texture;k=o.textureCache.viewport;_.setTransform(1,0,0,1,0,0),h?P(_,0,0,k.width,k.height):_.clearRect(0,0,k.width,k.height);var B=m.core("outside-texture-bg-color").value,N=m.core("outside-texture-bg-opacity").value;o.colorFillStyle(_,B[0],B[1],B[2],N),_.fillRect(0,0,k.width,k.height);b=l.zoom();D(_,!1),_.clearRect(k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s),_.drawImage(M,k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var z=l.extent(),I=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),A=o.hideEdgesOnViewport&&I,L=[];if(L[o.NODE]=!c[o.NODE]&&h&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,L[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),L[o.DRAG]=!c[o.DRAG]&&h&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,L[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||L[o.NODE]){var O=h&&!L[o.NODE]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.nondrag,s,z):o.drawLayeredElements(_,S.nondrag,s,z),o.debug&&o.drawDebugPoints(_,S.nondrag),n||h||(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||L[o.DRAG])){O=h&&!L[o.DRAG]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.drag,s,z):o.drawCachedElements(_,S.drag,s,z),o.debug&&o.drawDebugPoints(_,S.drag),n||h||(c[o.DRAG]=!1)}if(o.showFps||!r&&c[o.SELECT_BOX]&&!n){if(D(_=t||u.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){b=o.cy.zoom();var R=m.core("selection-box-border-width").value/b;_.lineWidth=R,_.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",_.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),R>0&&(_.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",_.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){b=o.cy.zoom();var V=u.bgActivePosistion;_.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",_.beginPath(),_.arc(V.x,V.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),_.fill()}var F=o.lastRedrawTime;if(o.showFps&&F){F=Math.round(F);var j=Math.round(1e3/F);_.setTransform(1,0,0,1,0,0),_.fillStyle="rgba(255, 0, 0, 0.75)",_.strokeStyle="rgba(255, 0, 0, 0.75)",_.lineWidth=1,_.fillText("1 frame = "+F+" ms = "+j+" fps",0,20);_.strokeRect(0,30,250,20),_.fillRect(0,30,250*Math.min(j/60,1),20)}n||(c[o.SELECT_BOX]=!1)}if(h&&1!==p){var q=u.contexts[o.NODE],Y=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],X=u.contexts[o.DRAG],W=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],H=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):P(e,0,0,o.canvasWidth,o.canvasHeight);var r=p;e.drawImage(t,0,0,o.canvasWidth*r,o.canvasHeight*r,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||L[o.NODE])&&(H(q,Y,L[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||L[o.DRAG])&&(H(X,W,L[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=k,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),h&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!d,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()}),100)),t||l.emit("render")};for(var Qu={drawPolygonPath:function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l0&&a>0){h.clearRect(0,0,i,a),h.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)h.translate(-n.x1*l,-n.y1*l),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(n.x1*l,n.y1*l);else{var f=t.pan(),g={x:f.x*l,y:f.y*l};l*=t.zoom(),h.translate(g.x,g.y),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(-g.x,-g.y)}e.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=e.bg,h.rect(0,0,i,a),h.fill())}return d},ac.png=function(e){return sc(e,this.bufferCanvasImage(e),"image/png")},ac.jpg=function(e){return sc(e,this.bufferCanvasImage(e),"image/jpeg")};var lc={nodeShapeImpl:function(e,t,n,r,i,a,o,s){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o,s);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a,s);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a,o,s);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a,s);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}}},uc=dc,cc=dc.prototype;function dc(e){var t=this,n=t.cy.window().document;t.data={canvases:new Array(cc.CANVAS_LAYERS),contexts:new Array(cc.CANVAS_LAYERS),canvasNeedsRedraw:new Array(cc.CANVAS_LAYERS),bufferCanvases:new Array(cc.BUFFER_COUNT),bufferContexts:new Array(cc.CANVAS_LAYERS)};t.data.canvasContainer=n.createElement("div");var r=t.data.canvasContainer.style;t.data.canvasContainer.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",r.position="relative",r.zIndex="0",r.overflow="hidden";var i=e.cy.container();i.appendChild(t.data.canvasContainer),i.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)";var a={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};c&&c.userAgent.match(/msie|trident|edge/i)&&(a["-ms-touch-action"]="none",a["touch-action"]="none");for(var o=0;o(Universal Module Definition) | For use with globals or `require()`. | | `cytoscape.umd.js` | no | [UMD] | For debugging with globals or `require()`. | -| `cytoscape.esm.min.js` | yes | [ESM] (ECMAScript, uses `import` / `export`) | For use with modern `import`/`export`, i.e. `import cytoscape from 'cytoscape'`. | +| `cytoscape.esm.min.mjs` | yes | [ESM] (ECMAScript, uses `import` / `export`) | For use with modern `import`/`export`, i.e. `import cytoscape from 'cytoscape'`. | | `cytoscape.cjs.js` | no | [CJS] (CommonJS, used by [Node.js]) | Intended to be consumed automatically by [Node.js] or a bundler like [Webpack] via `require('cytoscape')`. | -| `cytoscape.esm.js` | no | [ESM] | Intended to be consumed automatically by [Node.js] or a bundler like [Webpack] via `import cytoscape from 'cytoscape'`. This file may alternatively be used for manually debugging ESM builds or pages that use ESM. | +| `cytoscape.esm.mjs` | no | [ESM] | Intended to be consumed automatically by [Node.js] or a bundler like [Webpack] via `import cytoscape from 'cytoscape'`. This file may alternatively be used for manually debugging ESM builds or pages that use ESM. | Note that Cytoscape.js uses the dimensions of your HTML DOM element container for layouts and rendering at initialisation. Thus, it is very important to place your CSS stylesheets in the `` before any Cytoscape.js-related code. Otherwise, dimensions may be sporadically reported incorrectly, resulting in undesired behaviour. diff --git a/versions.json b/versions.json index 35bee2a0f7..cc6c68552f 100644 --- a/versions.json +++ b/versions.json @@ -253,6 +253,7 @@ "3.29.1", "3.29.2", "3.29.3", - "3.30.0" + "3.30.0", + "3.30.1" ] }