9 lines
722 KiB
JavaScript
9 lines
722 KiB
JavaScript
![]() |
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4f5f604e"],{"0031":function(t,e,n){const r=n("0a4a"),i=n("4651"),a=n("3a21"),o=800;i.registerLayout("fruchtermanGroup",{getDefaultCfg(){return{maxIteration:1e3,center:[0,0],gravity:1,speed:1,groupGravity:1,nodeRepulsiveCoefficient:50,groupRepulsiveCoefficient:10,nodeAttractiveCoefficient:1,groupAttractiveCoefficient:1,preventGroupOverlap:!0,groupCollideStrength:.7}},init(t){const e=this;e.nodes=t.nodes,e.edges=t.edges,e.graph=t.graph,e.groupsData=e.graph.get("groups"),e.customGroup=e.graph.get("customGroup"),e.groupController=e.graph.get("customGroupControll")},execute(){const t=this,e=t.nodes,n=t.center;if(0===e.length)return;if(1===e.length)return e[0].x=n[0],void(e[0].y=n[1]);const r=new Map,i=new Map;e.forEach((t,e)=>{r.set(t.id,t),i.set(t.id,e)}),t.nodeMap=r,t.nodeIndexMap=i,t.run(),t.graph.refreshPositions();const a=t.customGroup,o=a.get("children"),s=t.groupController,u=t.graph.get("groupType");o.forEach(e=>{const n=e.get("id"),r=t.groupMap.get(n);r.item=e;const i=s.getGroupPadding(n),{x:a,y:o,width:c,height:h}=s.calculationGroupPosition(r.nodeIds),f=e.findByClassName("group-title"),l=e.get("children")[0];let d=0,p=0;if("circle"===u){const t=c>h?c/2:h/2,e=(c+2*a)/2,n=(h+2*o)/2;l.attr({x:e,y:n,r:t+i}),r.x=e,r.y=n,r.size=2*(t+i),d=e,p=n-t-i}else if("rect"===u){const{default:t}=s.styles,e=i*t.disCoefficient,n=c+2*e,u=h+2*e,f=a-e,g=o-e;l.attr({x:f,y:g,width:n,height:u}),r.x=f,r.y=g,r.size=[n,u],d=a,p=o}if(f){const t=r.groupData.title;let e=0,n=0;t&&(e=t.offsetox||0,n=t.offsetoy||0,t.offsetX=e,t.offsetY=n,"rect"===u&&(t.offsetX=0,t.offsetY=0));let i=d+e,a=p+n;"rect"===u&&(i=d,a=p),f.attr({x:i,y:a}),r.titlePos=[i,a]}}),t.graph.paint()},run(){const t=this,e=t.nodes,n=t.groupsData,r=t.edges,i=t.maxIteration;let a=t.width;a||"undefined"===typeof window||(a=window.innerWidth);let s=t.height;s||"undefined"===typeof s||(s=window.innerHeight);const u=t.center,c=t.nodeMap,h=t.nodeIndexMap,f=a/10,l=Math.sqrt(a*s/(e.length+1)),d=t.gravity,p=t.speed,g=new Map;t.groupMap=g,e.forEach(t=>{if(void 0===g.get(t.groupId)){let e,r;n.forEach(n=>{n.id===t.groupId&&(e=n.parentId,r=n)});const i={name:t.groupId,cx:0,cy:0,count:0,parentId:e,nodeIds:[],groupData:r};g.set(t.groupId,i)}const e=g.get(t.groupId);e.nodeIds.push(t.id),e.cx+=t.x,e.cy+=t.y,e.count++}),g.forEach(t=>{t.cx/=t.count,t.cy/=t.count}),t.DFSSetGroups();for(let v=0;v<i;v++){const n=[];e.forEach((t,e)=>{n[e]={x:0,y:0}}),t.getDisp(e,r,c,h,n,l);const i=t.groupGravity||d;e.forEach((e,r)=>{const a=g.get(e.groupId),o=Math.sqrt((e.x-a.cx)*(e.x-a.cx)+(e.y-a.cy)*(e.y-a.cy)),s=t.groupAttractiveCoefficient*l*i;n[r].x-=s*(e.x-a.cx)/o,n[r].y-=s*(e.y-a.cy)/o}),g.forEach(t=>{t.cx=0,t.cy=0,t.count=0}),e.forEach(t=>{const e=g.get(t.groupId);e.cx+=t.x,e.cy+=t.y,e.count++}),g.forEach(t=>{t.cx/=t.count,t.cy/=t.count}),e.forEach((t,e)=>{const r=.01*l*d;n[e].x-=r*(t.x-u[0]),n[e].y-=r*(t.y-u[1])}),e.forEach((t,e)=>{n[e].dx*=p/o,n[e].dy*=p/o}),e.forEach((t,e)=>{const r=Math.sqrt(n[e].x*n[e].x+n[e].y*n[e].y);if(r>0){const i=Math.min(f*(p/o),r);t.x+=n[e].x/r*i,t.y+=n[e].y/r*i}})}},getDisp(t,e,n,r,i,a){const o=this;o.calRepulsive(t,i,a),o.calAttractive(e,n,r,i,a),o.calGroupRepulsive(i,a)},calRepulsive(t,e,n){const r=this;t.forEach((i,a)=>{e[a]={x:0,y:0},t.forEach((t,o)=>{if(a===o)return;const s=i.x-t.x,u=i.y-t.y;let c=s*s+u*u;0===c&&(c=1);const h=r.nodeRepulsiveCoefficient*(n*n)/c;e[a].x+=s*h,e[a].y+=u*h})})},calAttractive(t,e,n,r,i){const a=this;t.forEach(t=>{const o=n.get(t.source),s=n.get(t.target);if(o===s)return;const u=e.get(t.source),c=e.get(t.target),h=c.x-u.x,f=c.y-u.y,l=Math.sqrt(h*h+f*f),d=a.nodeAttractiveCoefficient*l*l/i;r[s].x-=h/l*d,r[s].y-=f/l*d,r[o].x+=h/l*d,r[o].y+=f/l*d})},calGroupRepulsive(t,e){const n=this,r=n.groupMap,i=n.nodeIndexMap;r.forEach((a,o)=>{const s={x:0,y:0};r.forEach((t,r)=>{if(o===r)return;const i=a.cx-t.cx,u=a.cy-t.cy;let c=i*i+u*u;0===c&&(c=1);const h=n.groupRepulsiveCoefficient*(e*e)/c;s.x+=i*h,s.y+=u*h});const u=a.nodeIds;u.forEach(e=>{const n=i.get(e);t[n].x+=s.x,t[n].y+=s.y})})},DFSSetGroups(){cons
|
|||
|
/**
|
|||
|
* @license
|
|||
|
* Lodash <https://lodash.com/>
|
|||
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|||
|
* Released under MIT license <https://lodash.com/license>
|
|||
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|||
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|||
|
*/(function(){var a,o="4.17.21",s=200,u="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",h="Invalid `variable` option passed into `_.template`",f="__lodash_hash_undefined__",l=500,d="__lodash_placeholder__",p=1,g=2,v=4,m=1,y=2,x=1,b=2,w=4,_=8,M=16,S=32,k=64,A=128,P=256,C=512,E=30,I="...",O=800,T=16,N=1,j=2,B=3,L=1/0,D=9007199254740991,R=17976931348623157e292,F=NaN,Y=4294967295,q=Y-1,z=Y>>>1,X=[["ary",A],["bind",x],["bindKey",b],["curry",_],["curryRight",M],["flip",C],["partial",S],["partialRight",k],["rearg",P]],G="[object Arguments]",W="[object Array]",U="[object AsyncFunction]",V="[object Boolean]",H="[object Date]",Z="[object DOMException]",$="[object Error]",Q="[object Function]",K="[object GeneratorFunction]",J="[object Map]",tt="[object Number]",et="[object Null]",nt="[object Object]",rt="[object Promise]",it="[object Proxy]",at="[object RegExp]",ot="[object Set]",st="[object String]",ut="[object Symbol]",ct="[object Undefined]",ht="[object WeakMap]",ft="[object WeakSet]",lt="[object ArrayBuffer]",dt="[object DataView]",pt="[object Float32Array]",gt="[object Float64Array]",vt="[object Int8Array]",mt="[object Int16Array]",yt="[object Int32Array]",xt="[object Uint8Array]",bt="[object Uint8ClampedArray]",wt="[object Uint16Array]",_t="[object Uint32Array]",Mt=/\b__p \+= '';/g,St=/\b(__p \+=) '' \+/g,kt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,At=/&(?:amp|lt|gt|quot|#39);/g,Pt=/[&<>"']/g,Ct=RegExp(At.source),Et=RegExp(Pt.source),It=/<%-([\s\S]+?)%>/g,Ot=/<%([\s\S]+?)%>/g,Tt=/<%=([\s\S]+?)%>/g,Nt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jt=/^\w*$/,Bt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Lt=/[\\^$.*+?()[\]{}|]/g,Dt=RegExp(Lt.source),Rt=/^\s+/,Ft=/\s/,Yt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,qt=/\{\n\/\* \[wrapped with (.+)\] \*/,zt=/,? & /,Xt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Gt=/[()=,{}\[\]\/\s]/,Wt=/\\(\\)?/g,Ut=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Vt=/\w*$/,Ht=/^[-+]0x[0-9a-f]+$/i,Zt=/^0b[01]+$/i,$t=/^\[object .+?Constructor\]$/,Qt=/^0o[0-7]+$/i,Kt=/^(?:0|[1-9]\d*)$/,Jt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,te=/($^)/,ee=/['\n\r\u2028\u2029\\]/g,ne="\\ud800-\\udfff",re="\\u0300-\\u036f",ie="\\ufe20-\\ufe2f",ae="\\u20d0-\\u20ff",oe=re+ie+ae,se="\\u2700-\\u27bf",ue="a-z\\xdf-\\xf6\\xf8-\\xff",ce="\\xac\\xb1\\xd7\\xf7",he="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",fe="\\u2000-\\u206f",le=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",de="A-Z\\xc0-\\xd6\\xd8-\\xde",pe="\\ufe0e\\ufe0f",ge=ce+he+fe+le,ve="['’]",me="["+ne+"]",ye="["+ge+"]",xe="["+oe+"]",be="\\d+",we="["+se+"]",_e="["+ue+"]",Me="[^"+ne+ge+be+se+ue+de+"]",Se="\\ud83c[\\udffb-\\udfff]",ke="(?:"+xe+"|"+Se+")",Ae="[^"+ne+"]",Pe="(?:\\ud83c[\\udde6-\\uddff]){2}",Ce="[\\ud800-\\udbff][\\udc00-\\udfff]",Ee="["+de+"]",Ie="\\u200d",Oe="(?:"+_e+"|"+Me+")",Te="(?:"+Ee+"|"+Me+")",Ne="(?:"+ve+"(?:d|ll|m|re|s|t|ve))?",je="(?:"+ve+"(?:D|LL|M|RE|S|T|VE))?",Be=ke+"?",Le="["+pe+"]?",De="(?:"+Ie+"(?:"+[Ae,Pe,Ce].join("|")+")"+Le+Be+")*",Re="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ye=Le+Be+De,qe="(?:"+[we,Pe,Ce].join("|")+")"+Ye,ze="(?:"+[Ae+xe+"?",xe,Pe,Ce,me].join("|")+")",Xe=RegExp(ve,"g"),Ge=RegExp(xe,"g"),We=RegExp(Se+"(?="+Se+")|"+ze+Ye,"g"),Ue=RegExp([Ee+"?"+_e+"+"+Ne+"(?="+[ye,Ee,"$"].join("|")+")",Te+"+"+je+"(?="+[ye,Ee+Oe,"$"].join("|")+")",Ee+"?"+Oe+"+"+Ne,Ee+"+"+je,Fe,Re,be,qe].join("|"),"g"),Ve=RegExp("["+Ie+ne+oe+pe+"]"),He=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ze=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],$e=-1,Qe={};Qe[pt]=Qe[gt]=Qe[vt]=Qe[mt]=Qe[yt]=Qe[
|