UNPKG

react-sigma

Version:

Lightweight but powerful library for drawing network graphs built on top of SigmaJS

1 lines 4.16 kB
var Sigma=function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=179)}({179:function(e,n){(function(){(function(){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";function e(e,n){sigma.classes.dispatcher.extend(this);var t=this,r=e,o=document.body,i=n,d=n.container.lastChild,a=n.camera,s=null,u="",l=[],c={},f=!1,g=!1;function p(e){c[e.data.node.id]||(l.push(e.data.node),c[e.data.node.id]=!0,l.length&&!f&&(s=l[l.length-1],d.addEventListener("mousedown",m)))}function v(e){var n=l.map((function(e){return e})).indexOf(e.data.node);l.splice(n,1),delete c[e.data.node.id],l.length&&!f?s=l[l.length-1]:d.removeEventListener("mousedown",m)}function m(e){f=!0;var n=r.graph.nodes().length;if(s&&n>1){var a,u;for(a in d.removeEventListener("mousedown",m),o.addEventListener("mousemove",y),o.addEventListener("mouseup",b),r.cameras)void 0!==(u=r.cameras[a]).edgequadtree&&(u.edgequadtree._enabled=!1);i.settings({mouseEnabled:!1,enableHovering:!1}),r.refresh(),t.dispatchEvent("startdrag",{node:s,captor:e,renderer:i})}}function b(e){var n,a;for(n in f=!1,d.addEventListener("mousedown",m),o.removeEventListener("mousemove",y),o.removeEventListener("mouseup",b),r.cameras)void 0!==(a=r.cameras[n]).edgequadtree&&(a.edgequadtree._enabled=!0);i.settings({mouseEnabled:!0,enableHovering:!0}),r.refresh(),g&&t.dispatchEvent("drop",{node:s,captor:e,renderer:i}),t.dispatchEvent("dragend",{node:s,captor:e,renderer:i}),g=!1,s=null}function y(e){if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){clearTimeout(n);var n=setTimeout(o,0)}else o();function o(){for(var n,o,d,l=(n=i.container,o=window.getComputedStyle(n),d=function(e){return parseInt(o.getPropertyValue(e).replace("px",""))||0},{left:n.getBoundingClientRect().left+d("padding-left"),top:n.getBoundingClientRect().top+d("padding-top")}),c=e.clientX-l.left,f=e.clientY-l.top,p=Math.cos(a.angle),v=Math.sin(a.angle),m=r.graph.nodes(),b=[],y=0;y<2;y++){var h=m[y],x={x:h.x*p+h.y*v,y:h.y*p-h.x*v,renX:h[u+"x"],renY:h[u+"y"]};b.push(x)}if(b[0].x===b[1].x&&b[0].y===b[1].y){var E=0===b[0].renX?1:b[0].renX,w=0===b[0].renY?1:b[0].renY;c=b[0].x/E*(c-b[0].renX)+b[0].x,f=b[0].y/w*(f-b[0].renY)+b[0].y}else{E=(b[1].renX-b[0].renX)/(b[1].x-b[0].x),w=(b[1].renY-b[0].renY)/(b[1].y-b[0].y);b[1].x===b[0].x&&(E=w),b[1].y===b[0].y&&(w=E),c=(c-b[0].renX)/E+b[0].x,f=(f-b[0].renY)/w+b[0].y}s.x=c*p-f*v,s.y=f*p+c*v,r.refresh(),g=!0,t.dispatchEvent("drag",{node:s,captor:e,renderer:i})}}n instanceof sigma.renderers.svg&&(d=n.container.firstChild),u=n instanceof sigma.renderers.webgl?n.options.prefix.substr(5):n.options.prefix,n.bind("overNode",p),n.bind("outNode",v),n.bind("click",(function(e){f=!1,o.removeEventListener("mousemove",y),o.removeEventListener("mouseup",b),l.length||(s=null)})),r.bind("kill",(function(){t.unbindAll()})),this.unbindAll=function(){d.removeEventListener("mousedown",m),o.removeEventListener("mousemove",y),o.removeEventListener("mouseup",b),i.unbind("overNode",p),i.unbind("outNode",v)}}sigma.utils.pkg("sigma.plugins");var n={};sigma.plugins.dragNodes=function(t,r){return n[t.id]||(n[t.id]=new e(t,r)),t.bind("kill",(function(){sigma.plugins.killDragNodes(t)})),n[t.id]},sigma.plugins.killDragNodes=function(t){n[t.id]instanceof e&&(n[t.id].unbindAll(),delete n[t.id])}}).call(window)}).call(window)}});