UNPKG

@antv/g6

Version:

graph visualization frame work

2 lines 9.01 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Bundling=e():t.Bundling=e()}(window,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=39)}({12:function(t,e){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports=function(t){var e=void 0===t?"undefined":r(t);return null!==t&&"object"===e||"function"===e}},14:function(t,e){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports=function(t){return"object"===(void 0===t?"undefined":r(t))&&null!==t}},15:function(t,e,r){var n=r(14),o=r(4);t.exports=function(t){if(!n(t)||!o(t,"Object"))return!1;if(null===Object.getPrototypeOf(t))return!0;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}},16:function(t,e){t.exports=function(t,e){if(t["_wrap_"+e])return t["_wrap_"+e];var r=function(r){t[e](r)};return t["_wrap_"+e]=r,r}},2:function(t,e,r){var n=r(15),o=r(3),i=5;function u(t,e,r,c){for(var s in r=r||0,c=c||i,e)if(e.hasOwnProperty(s)){var a=e[s];null!==a&&n(a)?(n(t[s])||(t[s]={}),r<c?u(t[s],a,r+1,c):t[s]=e[s]):o(a)?(t[s]=[],t[s]=t[s].concat(a)):void 0!==a&&(t[s]=a)}}t.exports=function(){for(var t=new Array(arguments.length),e=t.length,r=0;r<e;r++)t[r]=arguments[r];for(var n=t[0],o=1;o<e;o++)u(n,t[o]);return n}},3:function(t,e,r){var n=r(4),o=Array.isArray?Array.isArray:function(t){return n(t,"Array")};t.exports=o},39:function(t,e,r){function n(t,e,r){var n=t.x-e.x,o=t.y-e.y;return!r||Math.abs(n)>r||Math.abs(o)>r?Math.sqrt(n*n+o*o):r}function o(t,e){var r=(e.source.y-e.target.y)/(e.source.x-e.target.x),n=(r*r*e.source.x+r*(t.y-e.source.y)+t.x)/(r*r+1);return{x:n,y:r*(n-e.source.x)+e.source.y}}var i=function(t){function e(){return t.apply(this,arguments)||this}!function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}(e,t);var r=e.prototype;return r.getDefaultCfgs=function(){return{edgeBundles:[],edgePoints:[],K:.1,lambda:.1,divisions:1,divRate:2,cycles:6,iterations:90,iterRate:.6666667,bundleThreshold:.6,eps:1e-6,onLayoutEnd:function(){},onTick:function(){}}},r.init=function(){var t=this.get("graph"),e=this.get("onTick");this.set("tick",function(){e&&e(),t.refreshPositions()})},r.bundling=function(t){var e=this;if(e.set("data",t),!e.isTicking()){var r=t.edges,n=t.nodes,o=new Map,i=!1;if(n.forEach(function(t){null!==t.x&&null!==!t.y&&void 0!==t.x&&void 0!==!t.y||(i=!0),o.set(t.id,t)}),i)throw new Error("please layout the graph or assign x and y for nodes first");e.set("nodeIdMap",o);var u=e.get("divisions"),c=e.get("divRate"),s=e.divideEdges(u);e.set("edgePoints",s);var a=e.getEdgeBundles();e.set("edgeBundles",a);for(var f=e.get("cycles"),g=e.get("iterations"),y=e.get("iterRate"),l=e.get("lambda"),d=0;d<f;d++){for(var h=function(t){var n=[];r.forEach(function(t,r){if(t.source!==t.target){var i=o.get(t.source),c=o.get(t.target);n[r]=e.getEdgeForces({source:i,target:c},r,u,l);for(var a=0;a<u+1;a++)s[r][a].x+=n[r][a].x,s[r][a].y+=n[r][a].y}})},p=0;p<g;p++)h();l/=2,u*=c,g*=y,s=e.divideEdges(u),e.set("edgePoints",s)}r.forEach(function(t,e){t.source!==t.target&&(t.shape="polyline",t.controlPoints=s[e].slice(1,s[e].length-1))}),e.get("graph").refresh()}},r.updateBundling=function(t){var e=this,r=t.data;r&&e.set("data",r),e.get("ticking")&&e.set("ticking",!1),Object.keys(t).forEach(function(r){e.set(r,t[r])}),t.onTick&&e.set("tick",function(){t.onTick(),e.graph.refresh()}),e.bundling(r)},r.divideEdges=function(t){var e=this,r=e.get("data").edges,o=e.get("nodeIdMap"),i=e.get("edgePoints");return i&&void 0!==i||(i=[]),r.forEach(function(r,u){i[u]&&void 0!==i[u]||(i[u]=[]);var c=o.get(r.source),s=o.get(r.target);if(1===t)i[u].push({x:c.x,y:c.y}),i[u].push({x:.5*(c.x+s.x),y:.5*(c.y+s.y)}),i[u].push({x:s.x,y:s.y});else{var a=(i[u]&&i[u]!==[]?e.getEdgeLength(i[u]):n(c,s))/(t+1),f=a,g=[{x:c.x,y:c.y}];i[u].forEach(function(t,e){if(0!==e){for(var r=n(t,i[u][e-1]);r>f;){var o=f/r,c={x:i[u][e-1].x,y:i[u][e-1].y};c.x+=o*(t.x-i[u][e-1].x),c.y+=o*(t.y-i[u][e-1].y),g.push(c),r-=f,f=a}f-=r}}),g.push({x:s.x,y:s.y}),i[u]=g}}),i},r.getEdgeLength=function(t){var e=0;return t.forEach(function(r,o){0!==o&&(e+=n(r,t[o-1]))}),e},r.getEdgeBundles=function(){var t=this,e=t.get("data").edges,r=t.get("bundleThreshold"),n=t.get("nodeIdMap"),o=t.get("edgeBundles");return o||(o=[]),e.forEach(function(t,e){o[e]&&void 0!==o[e]||(o[e]=[])}),e.forEach(function(i,u){var c=n.get(i.source),s=n.get(i.target);e.forEach(function(e,i){if(!(i<=u)){var a=n.get(e.source),f=n.get(e.target);t.getBundleScore({source:c,target:s},{source:a,target:f})>=r&&(o[u].push(i),o[i].push(u))}})}),o},r.getBundleScore=function(t,e){return t.vx=t.target.x-t.source.x,t.vy=t.target.y-t.source.y,e.vx=e.target.x-e.source.x,e.vy=e.target.y-e.source.y,t.length=n({x:t.source.x,y:t.source.y},{x:t.target.x,y:t.target.y}),e.length=n({x:e.source.x,y:e.source.y},{x:e.target.x,y:e.target.y}),this.getAngleScore(t,e)*this.getScaleScore(t,e)*this.getPosisionScore(t,e)*this.getVisibilityScore(t,e)},r.getAngleScore=function(t,e){return function(t,e){return t.x*e.x+t.y*e.y}({x:t.vx,y:t.vy},{x:e.vx,y:e.vy})/(t.length*e.length)},r.getScaleScore=function(t,e){var r=(t.length+e.length)/2;return 2/(r/Math.min(t.length,e.length)+Math.max(t.length,e.length)/r)},r.getPosisionScore=function(t,e){var r=(t.length+e.length)/2;return r/(r+n({x:(t.source.x+t.target.x)/2,y:(t.source.y+t.target.y)/2},{x:(e.source.x+e.target.x)/2,y:(e.source.y+e.target.y)/2}))},r.getVisibilityScore=function(t,e){var r=this.getEdgeVisibility(t,e),n=this.getEdgeVisibility(e,t);return r<n?r:n},r.getEdgeVisibility=function(t,e){var r=o(e.source,t),i=o(e.target,t),u={x:(r.x+i.x)/2,y:(r.y+i.y)/2},c={x:(t.source.x+t.target.x)/2,y:(t.source.y+t.target.y)/2};return Math.max(0,1-2*n(u,c)/n(r,i))},r.getEdgeForces=function(t,e,r,o){for(var i=this.get("edgePoints"),u=this.get("K")/(n(t.source,t.target)*(r+1)),c=[{x:0,y:0}],s=1;s<r;s++){var a={x:0,y:0},f=this.getSpringForce({pre:i[e][s-1],cur:i[e][s],next:i[e][s+1]},u),g=this.getElectrostaticForce(s,e);a.x=o*(f.x+g.x),a.y=o*(f.y+g.y),c.push(a)}return c.push({x:0,y:0}),c},r.getSpringForce=function(t,e){var r=t.pre.x+t.next.x-2*t.cur.x,n=t.pre.y+t.next.y-2*t.cur.y;return{x:r*=e,y:n*=e}},r.getElectrostaticForce=function(t,e){var r=this.get("eps"),o=this.get("edgeBundles"),i=this.get("edgePoints"),u={x:0,y:0};return o[e].forEach(function(o){var c={x:i[o][t].x-i[e][t].x,y:i[o][t].y-i[e][t].y};if(Math.abs(c.x)>r||Math.abs(c.y)>r){var s=1/n(i[o][t],i[e][t]);u.x+=c.x*s,u.y+=c.y*s}}),u},r.isTicking=function(){return this.get("ticking")},r.getSimulation=function(){return this.get("forceSimulation")},r.destroy=function(){this.get("ticking")&&this.getSimulation().stop(),t.prototype.destroy.call(this)},e}(r(8));t.exports=i},4:function(t,e){var r={}.toString;t.exports=function(t,e){return r.call(t)==="[object "+e+"]"}},7:function(t,e,r){var n=r(12),o=r(3);t.exports=function(t,e){if(t)if(o(t))for(var r=0,i=t.length;r<i&&!1!==e(t[r],r);r++);else if(n(t))for(var u in t)if(t.hasOwnProperty(u)&&!1===e(t[u],u))break}},8:function(t,e,r){var n=r(2),o=r(7),i=r(16),u=function(){function t(t){this._cfgs=n(this.getDefaultCfgs(),t)}var e=t.prototype;return e.getDefaultCfgs=function(){return{}},e.initPlugin=function(t){var e=this;e.set("graph",t);var r=e.getEvents(),n={};o(r,function(r,o){var u=i(e,r);n[o]=u,t.on(o,u)}),this._events=n,this.init()},e.init=function(){},e.getEvents=function(){return{}},e.get=function(t){return this._cfgs[t]},e.set=function(t,e){this._cfgs[t]=e},e.destroy=function(){},e.destroyPlugin=function(){this.destroy();var t=this.get("graph"),e=this._events;o(e,function(e,r){t.off(r,e)}),this._events=null,this._cfgs=null,this.destroyed=!0},t}();t.exports=u}})}); //# sourceMappingURL=bundling.js.map