vue-d3-network
Version:
Vue component to graph networks using d3-force
2 lines • 48.3 kB
JavaScript
(function(t){function e(e){for(var s,r,a=e[0],l=e[1],c=e[2],u=0,h=[];u<a.length;u++)r=a[u],i[r]&&h.push(i[r][0]),i[r]=0;for(s in l)Object.prototype.hasOwnProperty.call(l,s)&&(t[s]=l[s]);d&&d(e);while(h.length)h.shift()();return o.push.apply(o,c||[]),n()}function n(){for(var t,e=0;e<o.length;e++){for(var n=o[e],s=!0,a=1;a<n.length;a++){var l=n[a];0!==i[l]&&(s=!1)}s&&(o.splice(e--,1),t=r(r.s=n[0]))}return t}var s={},i={0:0},o=[];function r(e){if(s[e])return s[e].exports;var n=s[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=t,r.c=s,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 s in t)r.d(n,s,function(e){return t[e]}.bind(null,s));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="";var a=window["webpackJsonp"]=window["webpackJsonp"]||[],l=a.push.bind(a);a.push=e,a=a.slice();for(var c=0;c<a.length;c++)e(a[c]);var d=l;o.push([0,1]),n()})({"/eWB":function(t,e,n){"use strict";var s=n("HlDa"),i=n.n(s);i.a},0:function(t,e,n){t.exports=n("Vtdi")},"0WtW":function(t,e,n){},"4QDM":function(t,e,n){},HlDa:function(t,e,n){},JAtb:function(t,e,n){},"L+4z":function(t,e){t.exports='<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 33.866666 33.866668">\n <g id="fill" style="opacity:1;" transform="matrix(0.2575943,0,0,0.23849115,-9.1120023,-50.435759)">\n <path id="path8251-2-6-5-9-2" d="m 156.78907,230.06236 a 54.165703,13.707579 0 0 1 -54.1657,13.70758 54.165703,13.707579 0 0 1 -54.165706,-13.70758 54.165703,13.707579 0 0 1 54.165706,-13.70758 54.165703,13.707579 0 0 1 54.1657,13.70758 z M 48.404512,229.55428 v 0.2202 c 0.01214,-0.0734 0.02647,-0.14685 0.04327,-0.2202 z m 108.290078,0 c 0.0147,0.083 0.0269,0.16638 0.0356,0.24943 2.4e-4,7.57053 -24.25098,13.70738 -54.16604,13.70738 -29.849952,-7.9e-4 -54.071017,-6.11278 -54.159668,-13.6668 v 31.89855 a 54.184263,15.828606 0 0 1 -0.183897,-1.1851 v 37.13064 a 54.184263,15.828607 0 0 0 -0.0057,0.0269 54.184263,15.828607 0 0 0 0.0057,0.0388 v 0.45411 h 0.04136 v 36.24689 a 54.184263,15.828607 0 0 0 -0.0057,0.0269 54.184263,15.828607 0 0 0 0.0057,0.0388 v 0.45411 h 0.05536 a 54.184263,15.828607 0 0 0 54.124675,15.33644 54.184263,15.828607 0 0 0 54.09986,-15.33644 h 0.0891 v -37.98873 h -0.0414 a 54.184263,15.828606 0 0 1 0.035,0.28702 54.184263,15.828606 0 0 1 -0.035,0.20408 v -0.4911 -34.41793 c 0.0186,-0.0385 0.0395,-0.0767 0.0573,-0.11517 0.18386,-10.752 0.0891,-21.98037 0.0891,-32.89866 z M 48.220615,260.2188 v 0.25123 a 54.184263,15.828606 0 0 1 0.04327,-0.25123 z"/>\n </g>\n <g transform="matrix(0.31703209,0,0,0.2753999,-15.226615,0.59173245)">\n <path id="bottom" d="m 58.574418,71.818443 v 0.21756 a 44.004366,13.707578 0 0 1 0.03481,-0.21756 z m 87.975532,5.3e-4 a 44.004366,13.707578 0 0 1 0.0281,0.24857 44.004366,13.707578 0 0 1 -44.00433,13.70766 44.004366,13.707578 0 0 1 -43.999312,-13.66323 v 32.155137 a 44.004366,13.707579 0 0 0 -0.0045,0.0233 44.004366,13.707579 0 0 0 0.0045,0.0336 v 0.39325 h 0.04496 a 44.004366,13.707579 0 0 0 43.955642,13.28134 44.004366,13.707579 0 0 0 43.93593,-13.28136 h 0.0726 V 71.818963 Z" style="opacity:0.2;fill:black"/>\n <path id="mid" d="m 58.540832,39.978483 v 0.21756 a 44.004366,13.707578 0 0 1 0.03481,-0.21756 z m 87.975528,5.3e-4 a 44.004366,13.707578 0 0 1 0.0281,0.24857 44.004366,13.707578 0 0 1 -44.00432,13.70769 44.004366,13.707578 0 0 1 -43.99931,-13.66326 v 32.15514 a 44.004366,13.707579 0 0 0 -0.0045,0.0233 44.004366,13.707579 0 0 0 0.0045,0.0336 v 0.39325 h 0.04487 a 44.004366,13.707579 0 0 0 43.95565,13.28136 44.004366,13.707579 0 0 0 43.93592,-13.28136 h 0.0726 v -32.8983 z" style="opacity:0.3;fill:black"/>\n <g transform="matrix(0.81212445,0,0,0.86600028,19.379501,-185.37111)">\n <path id="top" d="m 182.94531,867.60742 v 0.83203 c 0.0459,-0.27745 0.10057,-0.5548 0.16407,-0.83203 z m 409.28711,0 c 0.0555,0.31369 0.0998,0.62751 0.13281,0.94141 9.1e-4,28.61302 -91.65592,51.80858 -204.7207,51.80859 -112.81873,-0.003 -204.36415,-23.10367 -204.69922,-51.6543 v 121.54493 c -0.006,0.0293 -0.0118,0.0586 -0.0176,0.0879 0.006,0.0417 0.0115,0.0833 0.0176,0.125 v 1.48633 h 0.20899 c 9.08883,25.83352 97.38326,56.20372 207.91946,56.22112 110.50057,-0.03 187.36844,-26.7045 200.97702,-56.22112 0.69493,-40.63748 0.33789,-83.07388 0.33789,-124.33986 z" style="opacity:0.4;fill:black" transform="scale(0.26458333)"/>\n <ellipse id="cap" cx="102.62337" cy="230.06236" rx="54.165703" ry="13.707579" style="opacity:0.5;fill:black"/>\n </g>\n </g>\n</svg>\n'},NjoS:function(t,e,n){"use strict";var s=n("JAtb"),i=n.n(s);i.a},PREY:function(t,e,n){"use strict";var s=n("TGXM"),i=n.n(s);i.a},QcLJ:function(t,e,n){"use strict";var s=n("m0EA"),i=n.n(s);i.a},TGXM:function(t,e,n){},Vtdi:function(t,e,n){"use strict";n.r(e);n("yt8O"),n("VRzm");var s,i,o=n("Kw5r"),r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[n("d3-net-example"),n("ul",{staticClass:"links"},[n("li",[n("a",{attrs:{href:t.app.repo}},[n("div",{staticClass:"icon",domProps:{innerHTML:t._s(t.icons.gitHub)}})])])])],1)},a=[],l=n("uI5x"),c=n.n(l),d=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"example"},on:{keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.setTool("pointer")}}},[n("d3-network",{ref:"net",attrs:{"net-nodes":t.nodes,"net-links":t.links,selection:{nodes:t.selected,links:t.linksSelected},options:t.options,linkCb:t.linkCb,"node-sym":t.nodeSym},on:{"node-click":t.nodeClick,"link-click":t.linkClick,"screen-shot":t.screenShotDone}}),t.toaster?n("div",{staticClass:"toaster"},[n("p",[t._v(t._s(t.toaster))])]):t._e(),t.svgChoice?n("div",{staticClass:"dialog-container"},[n("div",{staticClass:"dialog"},[n("h5",[t._v("Export as:")]),n("input",{directives:[{name:"model",rawName:"v-model",value:t.toSvg,expression:"toSvg"}],attrs:{id:"to-svg",type:"radio"},domProps:{value:!0,checked:t._q(t.toSvg,!0)},on:{change:function(e){t.toSvg=!0}}}),n("label",{attrs:{for:"to-svg"}},[t._v("svg")]),n("input",{directives:[{name:"model",rawName:"v-model",value:t.toSvg,expression:"toSvg"}],attrs:{id:"to-png",type:"radio"},domProps:{value:!1,checked:t._q(t.toSvg,!1)},on:{change:function(e){t.toSvg=!1}}}),n("label",{attrs:{for:"to-png"}},[t._v("png")]),n("div",{staticClass:"buttons"},[n("button",{staticClass:"btn",on:{click:t.takeScreenShot}},[t._v("Export")]),n("button",{staticClass:"btn",on:{click:function(e){t.svgChoice=!1}}},[t._v("Cancel")])])])]):t._e(),n("div",{staticClass:"tools"},[n("ul",[t._l(t.tools,function(e,s){return n("li",[n("button",{staticClass:"circle",class:t.buttonClass(s),on:{click:function(e){t.setTool(s)}}},[n("span",{class:e.class})])])}),n("li",[n("button",{staticClass:"circle",on:{click:t.screenShot}},[n("span",{staticClass:"icon-camera"})])])],2),n("div",{staticClass:"tip"},[t._v(t._s(t.tools[t.tool].tip))])]),t.showSelection?n("selection",{attrs:{data:t.selection()},on:{action:t.selectionEvent}}):t._e(),n("div",{staticClass:"over"},[t.showMenu?n("div",{staticClass:"menu-net"},[n("div",{staticClass:"close",on:{click:function(e){t.setShowMenu(!1)}}}),n("d3-net-example-menu",{attrs:{nodes:t.nodes,links:t.links,settings:t.settings,options:t.options},on:{options:t.changeOptions,simulate:t.reset,reset:t.resetOptions}})],1):n("div",{staticClass:"options menu"},[n("button",{staticClass:"menu",class:t.showHint?"anim-button":"",on:{click:function(e){t.setShowMenu(!0)}}},[n("span",{staticClass:"icon-equalizerh"})]),t.showHint?n("h2",{staticClass:"hint"},[n("span",{staticClass:"icon"},[t._v("☜")]),n("span",[t._v("menu")])]):t._e(),n("div",{staticClass:"title"},[n("h1",[t._v(t._s(t.app.name))])]),n("ul",{staticClass:"inline"},[n("li",[n("small",[t._v("nodes: "+t._s(t.nodes.length))])]),n("li",[n("small",[t._v("links: "+t._s(t.links.length))])])])])])],1)},u=[],h=(n("rE2o"),n("ioFf"),n("rGqo"),n("RW0V"),n("91GP"),n("iv4g")),f=(n("a1Th"),n("INYr"),function(t,e,n){var s=e.findIndex(function(e){return e.id===t});s>-1?(e.splice(s,1),n(e)):n(null)}),v=function(t,e){var n=[],s=[],i=!0,o=!1,r=void 0;try{for(var a,l=e[Symbol.iterator]();!(i=(a=l.next()).done);i=!0){var c=a.value;m(c.sid,t)&&m(c.tid,t)?n.push(c):s.push(c)}}catch(t){o=!0,r=t}finally{try{i||null==l.return||l.return()}finally{if(o)throw r}}return{newLinks:n,removed:s}},p=function(t,e){var n=[],s=!0,i=!1,o=void 0;try{for(var r,a=e[Symbol.iterator]();!(s=(r=a.next()).done);s=!0){var l=r.value;g(l.id,t)&&n.push(l)}}catch(t){i=!0,o=t}finally{try{s||null==a.return||a.return()}finally{if(i)throw o}}return n},m=function(t,e){var n=e.findIndex(function(e){return e.id===t});return n>-1},g=function(t,e){var n=e.findIndex(function(e){return e.tid===t||e.sid===t});return n>-1},y=function(t,e,n){return{id:t,sid:e,tid:n}},k=function(t,e){var n=[],s=0,i=!0,o=!1,r=void 0;try{for(var a,l=t[Symbol.iterator]();!(i=(a=l.next()).done);i=!0)for(var c=a.value,d=Math.floor(Math.random()*e),u=0;u<=d;u++){var h=Math.floor(Math.random()*t.length),f=c.id;s++,n.push(y(s,f,h))}}catch(t){o=!0,r=t}finally{try{i||null==l.return||l.return()}finally{if(o)throw r}}return n},S=function(){return Math.random().toString(36).substring(7)},b=function(t){return{id:t,name:S()}},x=function(t){var e=Array.apply(null,{length:t}).map(function(t,e){return b(e)});return e},w=function(t,e,n){var s=t[e];"function"===typeof s?n?s.apply(void 0,Object(h["a"])(n)):s():console.error("Call to undefined method:",e)},_={nodes:[],links:[],showMenu:!1,selected:{},showSelection:!1,linksSelected:{},options:{canvas:!1,size:{w:500,h:500},force:350,offset:{x:0,y:0},nodeSize:20,linkWidth:1,nodeLabels:!1,linkLabels:!1,strLinks:!0}},C=(n("f3/d"),n("gyWD")),L=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("svg",{ref:"svg",staticClass:"net-svg",attrs:{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",width:t.size.w,height:t.size.h},on:{mouseup:function(e){t.emit("dragEnd",[e])},"&touchend":function(e){t.emit("dragEnd",[e])},"&touchstart":function(t){}}},[n("g",{staticClass:"links",attrs:{id:"l-links"}},t._l(t.links,function(e){return n("path",t._b({class:t.linkClass(e.id),style:t.linkStyle(e),attrs:{d:t.linkPath(e),id:e.id,"stroke-width":t.linkWidth},on:{click:function(n){t.emit("linkClick",[n,e])},"&touchstart":function(n){t.emit("linkClick",[n,e])}}},"path",e._svgAttrs,!1))})),t.noNodes?t._e():n("g",{staticClass:"nodes",attrs:{id:"l-nodes"}},[t._l(t.nodes,function(e,s){return[t.svgIcon(e)?n("svg",t._b({key:s,class:t.nodeClass(e,["node-svg"]),style:t.nodeStyle(e),attrs:{viewBox:t.svgIcon(e).attrs.viewBox,width:t.getNodeSize(e,"width"),height:t.getNodeSize(e,"height"),x:e.x-t.getNodeSize(e,"width")/2,y:e.y-t.getNodeSize(e,"height")/2,title:e.name},domProps:{innerHTML:t._s(t.svgIcon(e).data)},on:{click:function(n){t.emit("nodeClick",[n,e])},"&touchend":function(n){t.emit("nodeClick",[n,e])},mousedown:function(e){e.preventDefault(),t.emit("dragStart",[e,s])},touchstart:function(e){e.preventDefault(),t.emit("dragStart",[e,s])}}},"svg",e._svgAttrs,!1)):n("circle",t._b({key:s,class:t.nodeClass(e),style:t.nodeStyle(e),attrs:{r:t.getNodeSize(e)/2,cx:e.x,cy:e.y,title:e.name},on:{click:function(n){t.emit("nodeClick",[n,e])},"&touchend":function(n){t.emit("nodeClick",[n,e])},mousedown:function(e){e.preventDefault(),t.emit("dragStart",[e,s])},touchstart:function(e){e.preventDefault(),t.emit("dragStart",[e,s])}}},"circle",e._svgAttrs,!1))]})],2),t.linkLabels?n("g",{staticClass:"labels",attrs:{id:"link-labels"}},t._l(t.links,function(e){return n("text",{staticClass:"link-label",attrs:{"font-size":t.fontSize}},[n("textPath",{attrs:{"xlink:href":"#"+e.id,startOffset:"50%"}},[t._v(t._s(e.name))])])})):t._e(),t.nodeLabels?n("g",{staticClass:"labels",attrs:{id:"node-labels"}},t._l(t.nodes,function(e){return n("text",{staticClass:"node-label",class:e._labelClass?e._labelClass:"",attrs:{x:e.x+t.getNodeSize(e)/2+t.fontSize/2,y:e.y+t.labelOffset.y,"font-size":t.fontSize,"stroke-width":t.fontSize/8}},[t._v(t._s(e.name))])})):t._e()])},z=[],N=(n("pIFo"),n("KKXr"),n("a94B")),O=(n("hhXQ"),{NS:"http://www.w3.org/2000/svg",export:function(t,e){var n=null;if(this.isSvgData(t)){n=t.cloneNode(!0);var s=t.parentNode.querySelectorAll("*"),i={},o=this.getcssRules(),r=!0,a=!1,l=void 0;try{for(var c,d=function(){var t=c.value,n=o;e||(n=o.filter(function(e){return t.matches(e.selectorText)}));var s=!0,r=!1,a=void 0;try{for(var l,d=n[Symbol.iterator]();!(s=(l=d.next()).done);s=!0){var u=l.value;i[u.selectorText]=u.cssText}}catch(t){r=!0,a=t}finally{try{s||null==d.return||d.return()}finally{if(r)throw a}}},u=s[Symbol.iterator]();!(r=(c=u.next()).done);r=!0)d()}catch(t){a=!0,l=t}finally{try{r||null==u.return||u.return()}finally{if(a)throw l}}var h=Object.values(i).join("\n");if(h){var f=document.createElementNS(this.NS,"style");f.type="text/css",n.insertBefore(f,n.childNodes[0]),f.innerHTML=h,n.appendChild(f)}}return n},makeCanvas:function(t,e,n){var s=document.createElement("canvas");s.width=t,s.height=e;var i=s.getContext("2d");return i.fillStyle=n||"white",i.fillRect(0,0,s.width,s.height),s},serialize:function(t){return(new XMLSerializer).serializeToString(t)},svgToImg:function(t,e,n){var s=this.serialize(t),i=new Image,o=e.getContext("2d");i.onload=function(){o.drawImage(this,0,0);var t=e.toDataURL("image/png");n(null,t,o)},i.onerror=function(t){n(t)},i.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(s)))},save:function(t){return"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(this.serialize(t))},getcssRules:function(){var t=[],e=!0,n=!1,s=void 0;try{for(var i,o=document.styleSheets[Symbol.iterator]();!(e=(i=o.next()).done);e=!0){var r=i.value,a=this.readRules(r),l=!0,c=!1,d=void 0;try{for(var u,h=a[Symbol.iterator]();!(l=(u=h.next()).done);l=!0){var f=u.value;f&&f.cssText&&t.push(f)}}catch(t){c=!0,d=t}finally{try{l||null==h.return||h.return()}finally{if(c)throw d}}}}catch(t){n=!0,s=t}finally{try{e||null==o.return||o.return()}finally{if(n)throw s}}return t},readRules:function(t){try{if(!t.cssRules)return t.rules||[]}catch(t){if("SecurityError"!==t.name)throw t;return[]}return t.cssRules},toDom:function(t){var e=document.createElement("div");return e.innerHTML=t,e.firstChild||null},toObject:function(t){if(t){var e={};if(t.attributes)for(var n=t.attributes.length;n>=0;n--){var s=t.attributes[n];s&&(e[s.name]=s.value)}var i=t.innerHTML;if(i)return{attrs:e,data:i}}return null},svgElFromString:function(t){var e=this.toDom(t);if(this.isSvgData(e))return e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e},svgDataToUrl:function(t,e){if("object"===Object(N["a"])(e))for(var n in e){var s=e[n]?e[n]:"";t.setAttribute(n,s)}var i=this.export(t);return i?this.svgToUrl(this.serialize(i)):null},isSvgData:function(t){return!!t.firstChild&&"svg"===t.firstChild.parentNode.nodeName},svgToUrl:function(t){var e=new Blob([t],{type:"image/svg+xml"}),n=URL.createObjectURL(e);return n}}),$={name:"svg-renderer",props:["size","nodes","noNodes","selected","linksSelected","links","nodeSize","padding","fontSize","strLinks","linkWidth","nodeLabels","linkLabels","labelOffset","nodeSym"],computed:{nodeSvg:function(){return this.nodeSym?O.toObject(this.nodeSym):null}},methods:{getNodeSize:function(t,e){var n=t._size||this.nodeSize;return e&&(n=t["_"+e]||n),n},svgIcon:function(t){return t.svgObj||this.nodeSvg},emit:function(t,e){this.$emit("action",t,e)},svgScreenShot:function(t,e,n,s){var i=O.export(this.$refs.svg,s);if(e)t(null,O.save(i));else{n||(n=this.searchBackground());var o=O.makeCanvas(this.size.w,this.size.h,n);O.svgToImg(i,o,function(e,n){e?t(e):t(null,n)})}},linkClass:function(t){var e=["link"];return this.linksSelected.hasOwnProperty(t)&&e.push("selected"),this.strLinks||e.push("curve"),e},linkPath:function(t){var e={M:[0|t.source.x,0|t.source.y],X:[0|t.target.x,0|t.target.y]};return this.strLinks?"M "+e.M.join(" ")+" L"+e.X.join(" "):(e.Q=[t.source.x,t.target.y],"M "+e.M+" Q "+e.Q.join(" ")+" "+e.X)},nodeStyle:function(t){return t._color?"fill: "+t._color:""},linkStyle:function(t){return t._color?"stroke: "+t._color:""},nodeClass:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=t._cssClass?[t._cssClass]:[];return n.push("node"),e.forEach(function(t){return n.push(t)}),this.selected[t.id]&&n.push("selected"),(t.fx||t.fy)&&n.push("pinned"),n},searchBackground:function(){var t=this;while(t.$parent){var e=window.getComputedStyle(t.$el),n=e.getPropertyValue("background-color"),s=n.replace(/[^\d,]/g,"").split(","),i=s.reduce(function(t,e){return parseInt(t)+parseInt(e)},0);if(i>0)return n;t=t.$parent}return"white"},spriteSymbol:function(){var t=this.nodeSym;if(t)return O.toSymbol(t)}}},I=$,j=n("KHd+"),P=Object(j["a"])(I,L,z,!1,null,null,null),M=P.exports,E=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("canvas",{directives:[{name:"render-canvas",rawName:"v-render-canvas",value:{links:t.links,nodes:t.nodes},expression:"{links, nodes}"}],ref:"canvas",style:t.canvasStyle,attrs:{id:"canvas",width:t.size.w,height:t.size.h},on:{mouseup:function(e){return e.preventDefault(),t.canvasClick(e)},mousedown:function(e){return e.preventDefault(),t.canvasClick(e)},touchstart:function(e){return e.preventDefault(),t.canvasClick(e)},"&touchend":function(e){return t.canvasClick(e)}}})},T=[],A=(n("tUrg"),n("bHtr"),{background:{_cssClass:"net-svg",fillStyle:"white"},node:{_cssClass:"node",fillStyle:"green",strokeStyle:"orange",lineWidth:2},link:{_cssClass:"link",strokeStyle:"blue",lineWidth:1},labels:{_cssClass:"node-label",_svgElement:"text",fillStyle:"black",fontFamily:"Arial"},nodeSelected:{_cssClass:"node selected",fillStyle:"red",strokeStyle:"orange",lineWidth:2},linkSelected:{_cssClass:"link selected",strokeStyle:"green",lineWidth:2},nodePinned:{_cssClass:"node pinned",fillStyle:"green",strokeStyle:"red"},nodeSelectedPinned:{_cssClass:"node selected pinned",fillStyle:"green",strokeStyle:"red"}}),R={randomId:function(){return Math.random().toString(36).substring(7)},fillStyle:function(t,e){var n=null,s="picker-"+this.randomId(),i=this.canvasPicker(t,s);e.appendChild(i);var o={fillStyle:"fill",strokeStyle:"stroke",lineWidth:"stroke-width",fontFamily:"font-family"};return t=this.mapStyle(s,o,t,n),e.removeChild(i),t},mapStyle:function(t,e,n,s,i){var o=window.getComputedStyle(document.getElementById(t),s);for(var r in i=i||["lineWidth"],e){var a=o.getPropertyValue(e[r]);i.indexOf(r)>-1&&(a=parseInt(a,10)),a&&(n[r]=a)}return n},canvasPicker:function(t,e){var n=t._svgAttrs||{},s=t._svgElement||"circle";if(!t._svgAttrs)switch(s){case"text":n={x:10,y:10,fontSize:20};break;case"circle":n={cx:10,cy:10,r:10};break}return n.class=t._cssClass,n.id=e,this.svgCreate(s,n)},compColor:function(t){var e=document.createElement("div");e.style.backgroundColor=t,document.body.appendChild(e);var n=window.getComputedStyle(e,null).getPropertyValue("background-color");return document.body.removeChild(e),n},svgCreate:function(t,e){var n=document.createElementNS("http://www.w3.org/2000/svg",t);for(var s in e)n.setAttributeNS(null,s,e[s]);return n},create:function(t,e,n){n=n||"body";var s=document.createElement(t),i=e||"";return i+=this.randomId(),s.setAttribute("id",i),document[n].appendChild(s),s}},W={name:"canvas-renderer",props:["size","offset","padding","nodes","selected","linksSelected","links","nodeSize","fontSize","strLinks","linkWidth","nodeLabels","labelOffset","canvasStyles","nodeSym","noNodes"],data:function(){return{hitCanvas:null,shapes:{},drag:null,stylesReady:!1,CssStyles:!0,styles:A,sprites:{}}},computed:{nodeSvg:function(){return this.nodeSym},canvasStyle:function(){var t=this.padding.x+"px",e=this.padding.y+"px";return{left:t,top:e}}},directives:{renderCanvas:function(t,e,n){var s=e.value.nodes,i=e.value.links;n.context.draw(s,i,t)}},created:function(){if(this.canvasStyles)for(var t in this.canvasStyles)this.styles[t]=this.canvasStyles[t]},mounted:function(){var t=this;this.$nextTick(function(){t.hitCanvas.width=t.size.w,t.hitCanvas.height=t.size.h})},watch:{nodeSize:function(){this.resetSprites()},canvasStyles:function(){this.resetSprites()}},methods:{canvasScreenShot:function(t,e){var n=this.$refs.canvas,s=document.createElement("canvas");s.width=n.width,s.height=n.height;var i=this.styles.background;e&&(i=this.getCssColor(e));var o=s.getContext("2d");o=this.setCtx(o,i),o.fillRect(0,0,s.width,s.height),o.drawImage(n,0,0);var r=s.toDataURL("image/png");r?t(null,r):t(new Error("error generating canvas image"))},emit:function(t,e){this.$emit("action",t,e)},canvasInit:function(){var t=document.createElement("canvas");t.width=this.size.w,t.height=this.size.h,t.top=this.offset.y,t.left=this.offset.x,t.id="hit-canvas",this.hitCanvas=t,this.resetSprites()},resetSprites:function(){this.sprites={};for(var t=["node","nodeSelected","nodePinned","nodeSelectedPinned"],e=0;e<t.length;e++){var n=t[e];this.sprites[n]=this.nodeSprite(this.styles[n])}},canvasClick:function(t){var e=this.hitCanvas.getContext("2d"),n=t.touches?t.touches[0]||t.changedTouches[0]:t,s=document.body.scrollTop,i=document.body.scrollLeft,o=n.clientX+i-this.padding.x,r=n.clientY+s-this.padding.y,a=e.getImageData(o,r,1,1).data,l="rgb(".concat(a[0],",").concat(a[1],",").concat(a[2],")"),c=this.shapes[l];if(c){var d=c.type+"s",u=this[d][c.index];u&&("mouseup"===t.type||"touchend"===t.type?(this.drag&&(this.drag=null,this.emit("dragEnd")),this.emit(c.type+"Click",[t,u])):"mousedown"!==t.type&&"touchstart"!==t.type||(this.drag=u,this.emit("dragStart",[t,u.index])))}},drawNode:function(t,e){t.beginPath(),t.arc(e.x,e.y,this.nodeSize/2,0,2*Math.PI,!1);var n=t.fillStyle,s=t.strokeStyle;e._color&&(t.fillStyle=e._color),e._borderColor&&(t.strokeStyle=e._borderColor),t.fill(),t.stroke(),t.closePath(),t.fillStyle=n,t.strokeStyle=s},drawLink:function(t,e){t.beginPath(),t.moveTo(e.source.x,e.source.y),t.lineTo(e.target.x,e.target.y),t.lineWidth=this.linkWidth,t.strokeStyle=e._color?e._color:e.color,t.stroke()},drawText:function(t,e,n,s){e=this.setCtx(e,n),this.fontSize&&(e.font=this.fontSize+"px "+n.fontFamily);var i=s?t[s]:t.name,o=t.x+this.labelOffset.x,r=t.y+this.labelOffset.y;e.fillText(i,o,r)},draw:function(t,e,n){this.hitCanvas||this.canvasInit();var s=n.getContext("2d"),i=this.hitCanvas.getContext("2d");!this.stylesReady&&this.CssStyles&&(this.getCssStyles(),this.resetSprites()),s.clearRect(0,0,this.size.w,this.size.h),s=this.setCtx(s,this.styles.link);var o=!0,r=!1,a=void 0;try{for(var l,c=e[Symbol.iterator]();!(o=(l=c.next()).done);o=!0){var d=l.value;this.linksSelected[d.id]||this.drawLink(s,d),this.mapShape(d,"link",this.drawLink,i)}}catch(t){r=!0,a=t}finally{try{o||null==c.return||c.return()}finally{if(r)throw a}}for(var u in s=this.setCtx(s,this.styles.linkSelected),this.linksSelected){var h=this.linksSelected[u];this.isOnView(h.source)&&this.isOnView(h.target)&&this.drawLink(s,h)}s=this.setCtx(s,this.styles.node);var f=!0,v=!1,p=void 0;try{for(var m,g=t[Symbol.iterator]();!(f=(m=g.next()).done);f=!0){var y=m.value;if(this.isOnView(y)){if(!this.noNodes){var k=this.getNodeSprite(y);s.drawImage(k,y.x-k.width/2,y.y-k.height/2),this.mapShape(y,"node",this.drawNode,i)}this.nodeLabels&&(y.size=this.nodeSize,this.drawText(y,s,this.labelStyle(y)))}}}catch(t){v=!0,p=t}finally{try{f||null==g.return||g.return()}finally{if(v)throw p}}for(var S in s=this.setCtx(s,this.styles.nodeSelected),this.selected){var b=this.selected[S];if(this.isOnView(b)){var x=this.getNodeSprite(b);s.drawImage(x,b.x-x.width/2,b.y-x.height/2)}}},getNodeSprite:function(t){var e=this.nodeSpriteName(t),n=this.sprites[e];if(!n){var s=this.loadNodeStyle(t);n=this.nodeSprite(s),this.sprites[e]=n}return n},nodeSpriteName:function(t){var e="node";return this.selected[t.id]&&(e+="Selected"),t.pinned&&(e+="Pinned"),t._cssClass&&(e+="-"+t._cssClass),t._color&&(e+="-"+R.compColor(t._color)),e},nodeSprite:function(t){var e=this.nodeSize+this.styles.node.lineWidth,n=this.nodeSvg?e:2*e,s=this.spriteCanvas(n),i=s.getContext("2d");if(this.nodeSvg){var o={width:e,height:e,class:t._cssClass||"",style:t._cssStyle||""},r=O.svgDataToUrl(this.nodeSvg,o);if(r){var a=new Image;a.onload=function(){i.drawImage(a,0,0),URL.revokeObjectURL(r)},a.onerror=function(t){console.log("error creating node image",t)},a.src=r}}else i=this.setCtx(i,t),this.drawNode(i,{x:e,y:e});return s},spriteCanvas:function(t){var e=document.createElement("canvas");return e.width=t,e.height=t,e},isOnView:function(t){return t.x>0&&t.y>0&&t.x<this.size.w&&t.y<this.size.h},mapShape:function(t,e,n,s){t.colorIndex||(t.colorIndex=this.newColorIndex());var i=Object.assign({},t);i.color=t.colorIndex.rgb,i.borderColor=t.colorIndex.rgb,i.type=e;var o=this.sprites[e];o?(o=this.cloneCanvas(o),o=this.fillCanvas(o,t.colorIndex),s.drawImage(o,t.x-o.width/2,t.y-o.height/2)):n(s,i),this.shapes[t.colorIndex.rgb]=i},fillCanvas:function(t,e){for(var n=t.getContext("2d"),s=n.getImageData(0,0,t.width,t.height),i=t.width*t.height*4,o=3;o<=i;o+=4)s.data[o]>0&&(s.data[o]=255,s.data[o-3]=e.r,s.data[o-2]=e.g,s.data[o-1]=e.b);return n.putImageData(s,0,0),t},newColorIndex:function(){while(1){var t=this.randomColor();if(!this.shapes[t.rgb])return t}},randomColor:function(){var t=Math.round(255*Math.random()),e=Math.round(255*Math.random()),n=Math.round(255*Math.random());return{r:t,g:e,b:n,rgb:"rgb(".concat(t,",").concat(e,",").concat(n,")")}},setCtx:function(t,e){for(var n in e)t[n]=e[n];return t},cloneCanvas:function(t){var e=document.createElement("canvas"),n=e.getContext("2d");return e.width=t.width,e.height=t.height,n.drawImage(t,0,0),e},Sprite:function(t,e){return this.sprites[t]||(this.sprites[t]=e()),this.sprites[t]},getCssStyles:function(){var t=R.create("svg","css-picker");for(var e in this.styles){var n=this.styles[e]||{};n=R.fillStyle(n,t)}document.body.removeChild(t),this.stylesReady=!0},loadNodeStyle:function(t){var e="node",n=this.selected[t.id];if(n&&(e="nodeSelected"),t.pinned&&(e="nodePinned"),n&&t.pinned&&(e="nodeSelectedPinned"),t._cssClass){var s=e+"-"+t._cssClass;if(!this.styles[s]){var i=Object.assign({},this.styles[e]||{});i._cssClass=i._cssClass||"",i._cssClass+=" "+t._cssClass,this.updateStyle(s,i)}e=s}var o=Object.assign({},this.styles[e]||this.updateStyle(e));return t._color&&(o.fillStyle=t._color,o._cssStyle="fill:"+t._color),t._cssClass&&(o._cssClass+=" "+t._cssClass),o},updateStyle:function(t,e){e=e||this.styles[t]||{};var n=R.create("svg","css-picker");return e=R.fillStyle(e,n),this.styles[t]=e,document.body.removeChild(n),e},getCssColor:function(t){var e=R.create("div","color-picker"),n=e.id;e.setAttribute("style","background-color:"+t);var s=R.mapStyle(n,{fillStyle:"background-color"},[]);return document.body.removeChild(e),s},labelStyle:function(t){var e=this.styles.labels,n=t._labelClass;if(n){var s="labels-"+n,i=this.styles[s];i||(i=Object.assign({},e),i._cssClass+=" "+n,i=this.updateStyle(s,i)),e=i}return e}}},D=W,U=(n("PREY"),Object(j["a"])(D,E,T,!1,null,null,null)),B=U.exports,F=(n("NO8f"),{save:function(t,e){var n=this;t&&(t=this.dataURIToBlob(t,function(t){var s=URL.createObjectURL(t);n.download(s,e)}))},dataURIToBlob:function(t,e){for(var n=atob(t.split(",")[1]),s=n.length,i=new Uint8Array(s),o=0;o<s;o++)i[o]=n.charCodeAt(o);e(new Blob([i]))},download:function(t,e){e=e||"";var n=document.createElement("a");n.setAttribute("href",t),n.setAttribute("download",e);var s=document.body.appendChild(n);n.click(),document.body.removeChild(s)}}),X=Object.assign({},C),H={name:"d3-network",components:{canvasRenderer:B,svgRenderer:M},props:{netNodes:{type:Array},netLinks:{type:Array},options:{type:Object},nodeSym:{type:String},nodeCb:{type:Function},linkCb:{type:Function},simCb:{type:Function},customForces:{type:Object},selection:{type:Object,default:function(){return{nodes:{},links:{}}}}},data:function(){return{canvas:!1,nodes:[],links:[],size:{w:500,h:500},offset:{x:0,y:0},clientOffset:{x:0,y:0},force:500,forces:{Center:!1,X:.5,Y:.5,ManyBody:!0,Link:!0},noNodes:!1,strLinks:!0,fontSize:10,dragging:!1,linkWidth:1,nodeLabels:!1,linkLabels:!1,nodeSize:5,mouseOfst:{x:0,y:0},padding:{x:0,y:0},simulation:null,nodeSvg:null,resizeListener:!0}},render:function(t){for(var e="svg",n={},s="svg-renderer",i=["size","nodes","links","selected","linksSelected","strLinks","linkWidth","nodeLabels","linkLabels","fontSize","labelOffset","offset","padding","nodeSize","noNodes"],o=0;o<i.length;o++){var r=i[o];n[r]=this[r]}return n.nodeSym=this.nodeSvg,this.canvas&&(s="canvas-renderer",e="canvas",n.canvasStyles=this.options.canvasStyles),t("div",{attrs:{class:"net"},on:{mousemove:this.move,"&touchmove":this.move}},[t(s,{props:n,ref:e,on:{action:this.methodCall}})])},created:function(){this.updateOptions(this.options),this.buildNodes(this.netNodes),this.links=this.buildLinks(this.netLinks),this.updateNodeSvg()},mounted:function(){var t=this;this.onResize(),this.$nextTick(function(){t.animate()}),this.resizeListener&&window.addEventListener("resize",this.onResize)},beforeDestroy:function(){this.resizeListener&&window.removeEventListener("resize",this.onResize)},computed:{selected:function(){return this.selection.nodes},linksSelected:function(){return this.selection.links},center:function(){return{x:this.size.w/2+this.size.w/200+this.offset.x,y:this.size.h/2+this.size.h/200+this.offset.y}},labelOffset:function(){return{x:this.nodeSize/2+this.fontSize/2,y:this.fontSize/2}}},watch:{netNodes:function(t){this.buildNodes(t),this.reset()},netLinks:function(t,e){this.links=this.buildLinks(t),this.reset()},nodeSym:function(){this.updateNodeSvg()},options:function(t,e){this.updateOptions(t),e.size&&t.size&&(e.size.w===t.size.w&&e.size.h===t.size.h||this.onResize()),this.animate()}},methods:{updateNodeSvg:function(){var t=null;this.nodeSym&&(t=O.svgElFromString(this.nodeSym)),this.nodeSvg=t},methodCall:function(t,e){var n=this[t];n&&"function"===typeof n&&(e?n.apply(void 0,Object(h["a"])(e)):n())},onResize:function(){var t=this.options.size;t&&t.w||(this.size.w=this.$el.clientWidth),t&&t.h||(this.size.h=this.$el.clientHeight),this.padding.x=0,this.padding.y=0;var e=this;while(e.$parent)this.padding.x+=e.$el.offsetLeft||0,this.padding.y+=e.$el.offsetTop||0,e=e.$parent;this.animate()},updateOptions:function(t){for(var e in t)this.hasOwnProperty(e)&&(this[e]=t[e])},buildNodes:function(t){var e=this,n=this;this.nodes=t.map(function(t,s){return t=e.itemCb(e.nodeCb,t),t.id||0===t.id||n.$set(t,"id",s),t.x||n.$set(t,"x",0),t.y||n.$set(t,"y",0),t.name||"0"===t.name||n.$set(t,"name","node "+t.id),t.svgSym&&(t.svgIcon=O.svgElFromString(t.svgSym),e.canvas||!t.svgIcon||t.svgObj||(t.svgObj=O.toObject(t.svgIcon))),t})},buildLinks:function(t){var e=this,n=this;return t.concat().map(function(t,s){return t=e.itemCb(e.linkCb,t),t.source=t.sid,t.target=t.tid,t.id||n.$set(t,"id","link-"+s),t})},itemCb:function(t,e){return t&&"function"===typeof t&&(e=t(e)),e},simulate:function(t,e){var n=this.forces,s=X.forceSimulation().stop().alpha(.5).nodes(t);return!1!==n.Center&&s.force("center",X.forceCenter(this.center.x,this.center.y)),!1!==n.X&&s.force("X",X.forceX(this.center.x).strength(n.X)),!1!==n.Y&&s.force("Y",X.forceY(this.center.y).strength(n.Y)),!1!==n.ManyBody&&s.force("charge",X.forceManyBody().strength(-this.force)),!1!==n.Link&&s.force("link",X.forceLink(e).id(function(t){return t.id})),s=this.setCustomForces(s),s=this.itemCb(this.simCb,s),s},setCustomForces:function(t){var e=this.customForces;if(e)for(var n in e){var s=this.getD3Func("force"+n);if(s){var i=e[n];t.force("custom"+n,s.apply(void 0,Object(h["a"])(i)))}}return t},getD3Func:function(t){var e=X[t];return e&&"function"===typeof e?e:null},animate:function(){this.simulation&&this.simulation.stop(),!1!==this.forces.Link?this.simulation=this.simulate(this.nodes,this.links):this.simulation=this.simulate(this.nodes),this.simulation.restart()},reset:function(){this.animate(),this.nodes=this.simulation.nodes(),this.forces.links&&(this.links=this.simulation.force("link").links())},move:function(t){var e=this.clientPos(t);!1!==this.dragging&&this.nodes[this.dragging]&&(this.simulation.restart(),this.simulation.alpha(.5),this.nodes[this.dragging].fx=e.x-this.mouseOfst.x,this.nodes[this.dragging].fy=e.y-this.mouseOfst.y)},clientPos:function(t){var e=t.touches?t.touches[0].clientX:t.clientX,n=t.touches?t.touches[0].clientY:t.clientY;return e=e||0,n=n||0,{x:e,y:n}},dragStart:function(t,e){this.dragging=!1!==e&&e,this.setMouseOffset(t,this.nodes[e]),!1===this.dragging&&(this.simulation.alpha(.1),this.simulation.restart(),this.setMouseOffset())},dragEnd:function(){var t=this.nodes[this.dragging];t&&!t.pinned&&(t.fx=null,t.fy=null),this.dragStart(!1)},nodeClick:function(t,e){this.$emit("node-click",t,e)},linkClick:function(t,e){this.$emit("link-click",t,e)},setMouseOffset:function(t,e){var n=0,s=0;if(t&&e){var i=this.clientPos(t);n=i.x?i.x-e.x:e.x,s=i.y?i.y-e.y:e.y}this.mouseOfst={x:n,y:s}},screenShot:function(t,e,n,s){var i,o=this,r=[];this.canvas?(n=!1,i=this.$refs.canvas.canvasScreenShot,r=[e]):(i=this.$refs.svg.svgScreenShot,r=[n,e,s]),n&&(t=t||"export.svg"),i.apply(void 0,[function(e,s){e||(n?F.download(s,t):F.save(s,t)),o.$emit("screen-shot",e)}].concat(Object(h["a"])(r)))}}},V=H,Y=(n("WaBT"),Object(j["a"])(V,s,i,!1,null,null,null)),q=Y.exports,Q=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"menu"}},[t.setts?n("ul",{staticClass:"test-menu"},[n("li",[n("label",[t._v("Nodes:"),n("span",[t._v(t._s(t.setts.maxNodes))])]),n("input",{directives:[{name:"model",rawName:"v-model.number",value:t.setts.maxNodes,expression:"setts.maxNodes",modifiers:{number:!0}}],attrs:{type:"range",min:"1",max:t.opts.canvas?3e3:1010,step:"10"},domProps:{value:t.setts.maxNodes},on:{input:t.change,__r:function(e){t.$set(t.setts,"maxNodes",t._n(e.target.value))},blur:function(e){t.$forceUpdate()}}})]),n("li",[n("label",[t._v("Max Links per Node:"),n("span",[t._v(t._s(t.setts.maxLinks))])]),n("input",{directives:[{name:"model",rawName:"v-model.number",value:t.setts.maxLinks,expression:"setts.maxLinks",modifiers:{number:!0}}],attrs:{type:"range",min:"1",max:"10",step:"1"},domProps:{value:t.setts.maxLinks},on:{input:t.change,__r:function(e){t.$set(t.setts,"maxLinks",t._n(e.target.value))},blur:function(e){t.$forceUpdate()}}})]),t._m(0),n("li",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.opts.canvas,expression:"opts.canvas"}],attrs:{type:"radio",id:"svg-rad"},domProps:{value:!1,checked:t._q(t.opts.canvas,!1)},on:{change:[function(e){t.$set(t.opts,"canvas",!1)},t.change]}}),n("label",{attrs:{for:"svg-rad"}},[t._v("svg")]),n("input",{directives:[{name:"model",rawName:"v-model",value:t.opts.canvas,expression:"opts.canvas"}],attrs:{type:"radio",id:"canvas-rad"},domProps:{value:!0,checked:t._q(t.opts.canvas,!0)},on:{change:[function(e){t.$set(t.opts,"canvas",!0)},t.change]}}),n("label",{attrs:{for:"canvas-rad"}},[t._v("canvas")])]),n("li",[n("button",{staticClass:"btn",on:{click:function(e){t.$emit("simulate")}}},[t._v("Simulate")])])]):t._e(),n("ul",{staticClass:"test-menu"},[n("li",[n("label",[t._v("Force:"),n("span",[t._v(t._s(t.opts.force))])]),n("input",{directives:[{name:"model",rawName:"v-model.number",value:t.opts.force,expression:"opts.force",modifiers:{number:!0}}],attrs:{type:"range",min:"1",max:"5000",step:"1"},domProps:{value:t.opts.force},on:{input:t.change,__r:function(e){t.$set(t.opts,"force",t._n(e.target.value))},blur:function(e){t.$forceUpdate()}}})]),n("li",[n("label",[t._v("Offset X:"),n("span",[t._v(t._s(t.opts.offset.x))])]),n("input",{directives:[{name:"model",rawName:"v-model.number",value:t.opts.offset.x,expression:"opts.offset.x",modifiers:{number:!0}}],attrs:{type:"range",min:"-1000",max:"1000",step:"1"},domProps:{value:t.opts.offset.x},on:{input:t.change,__r:function(e){t.$set(t.opts.offset,"x",t._n(e.target.value))},blur:function(e){t.$forceUpdate()}}})]),n("li",[n("label",[t._v("Offset Y:"),n("span",[t._v(t._s(t.opts.offset.y))])]),n("input",{directives:[{name:"model",rawName:"v-model.number",value:t.opts.offset.y,expression:"opts.offset.y",modifiers:{number:!0}}],attrs:{type:"range",min:"-1000",max:"1000",step:"1"},domProps:{value:t.opts.offset.y},on:{input:t.change,__r:function(e){t.$set(t.opts.offset,"y",t._n(e.target.value))},blur:function(e){t.$forceUpdate()}}})]),n("li",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.opts.icon,expression:"opts.icon"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.opts.icon)?t._i(t.opts.icon,null)>-1:t.opts.icon},on:{change:[function(e){var n=t.opts.icon,s=e.target,i=!!s.checked;if(Array.isArray(n)){var o=null,r=t._i(n,o);s.checked?r<0&&t.$set(t.opts,"icon",n.concat([o])):r>-1&&t.$set(t.opts,"icon",n.slice(0,r).concat(n.slice(r+1)))}else t.$set(t.opts,"icon",i)},t.change]}}),n("label",[t._v("Node Sprite")])])]),n("ul",{staticClass:"test-menu"},[n("li",[n("label",[t._v("Node Size:"),n("span",[t._v(t._s(t.opts.nodeSize))])]),n("input",{directives:[{name:"model",rawName:"v-model.number",value:t.opts.nodeSize,expression:"opts.nodeSize",modifiers:{number:!0}}],attrs:{type:"range",min:"3",max:"100",step:"1"},domProps:{value:t.opts.nodeSize},on:{input:t.change,__r:function(e){t.$set(t.opts,"nodeSize",t._n(e.target.value))},blur:function(e){t.$forceUpdate()}}})]),n("li",[n("label",[t._v("Link Thickness:"),n("span",[t._v(t._s(t.opts.linkWidth))])]),n("input",{directives:[{name:"model",rawName:"v-model.number",value:t.opts.linkWidth,expression:"opts.linkWidth",modifiers:{number:!0}}],attrs:{type:"range",min:"1",max:"15",step:"1"},domProps:{value:t.opts.linkWidth},on:{input:t.change,__r:function(e){t.$set(t.opts,"linkWidth",t._n(e.target.value))},blur:function(e){t.$forceUpdate()}}})]),n("li",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.opts.nodeLabels,expression:"opts.nodeLabels"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.opts.nodeLabels)?t._i(t.opts.nodeLabels,null)>-1:t.opts.nodeLabels},on:{change:[function(e){var n=t.opts.nodeLabels,s=e.target,i=!!s.checked;if(Array.isArray(n)){var o=null,r=t._i(n,o);s.checked?r<0&&t.$set(t.opts,"nodeLabels",n.concat([o])):r>-1&&t.$set(t.opts,"nodeLabels",n.slice(0,r).concat(n.slice(r+1)))}else t.$set(t.opts,"nodeLabels",i)},t.change]}}),n("label",[t._v("Show node names")])]),n("li",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.opts.linkLabels,expression:"opts.linkLabels"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.opts.linkLabels)?t._i(t.opts.linkLabels,null)>-1:t.opts.linkLabels},on:{change:[function(e){var n=t.opts.linkLabels,s=e.target,i=!!s.checked;if(Array.isArray(n)){var o=null,r=t._i(n,o);s.checked?r<0&&t.$set(t.opts,"linkLabels",n.concat([o])):r>-1&&t.$set(t.opts,"linkLabels",n.slice(0,r).concat(n.slice(r+1)))}else t.$set(t.opts,"linkLabels",i)},t.change]}}),n("label",[t._v("Show link names")])]),t.opts.nodeLabels||t.opts.linkLabels?n("li",[n("label",[t._v("Font Size:"),n("span",[t._v(t._s(t.opts.fontSize))])]),n("input",{directives:[{name:"model",rawName:"v-model.number",value:t.opts.fontSize,expression:"opts.fontSize",modifiers:{number:!0}}],attrs:{type:"range",min:"1",max:"30",step:"1"},domProps:{value:t.opts.fontSize},on:{input:t.change,__r:function(e){t.$set(t.opts,"fontSize",t._n(e.target.value))},blur:function(e){t.$forceUpdate()}}})]):t._e(),n("li",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.opts.strLinks,expression:"opts.strLinks"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.opts.strLinks)?t._i(t.opts.strLinks,null)>-1:t.opts.strLinks},on:{change:[function(e){var n=t.opts.strLinks,s=e.target,i=!!s.checked;if(Array.isArray(n)){var o=null,r=t._i(n,o);s.checked?r<0&&t.$set(t.opts,"strLinks",n.concat([o])):r>-1&&t.$set(t.opts,"strLinks",n.slice(0,r).concat(n.slice(r+1)))}else t.$set(t.opts,"strLinks",i)},t.change]}}),n("label",[t._v("Straight Links")])]),n("li",[n("button",{staticClass:"btn",attrs:{title:"reset options"},on:{click:t.reset}},[n("span",{staticClass:"icon-reset"}),n("small",[t._v(" Reset")])])])])])},J=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("li",[n("label",[t._v("Render type")])])}],G={name:"d3-net-example-menu",props:["links","nodes","settings","options"],data:function(){var t=Object.assign({},_);return{opts:t.options,showNodeValues:!1,showLinkValues:!1,setts:null}},created:function(){this.opts=this.options,this.setts=this.settings},methods:{change:function(){this.$emit("options",this.opts)},reset:function(){this.opts=Object.assign({},_.options),this.options.width=this.$el.clientWidth,this.options.height=this.$el.clientHeight,this.$emit("reset",this.options)},emit:function(t){this.$emit(t)}}},K=G,Z=(n("/eWB"),n("cLqz"),Object(j["a"])(K,Q,J,!1,null,"73cadff4",null)),tt=Z.exports,et=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"notification",attrs:{id:"selection"}},[n("div",{staticClass:"close",on:{click:function(e){t.emit("clearSelection")}}}),n("h4",[t._v("Selected")]),n("div",{staticClass:"mini-list"},[n("table",{staticClass:"mini"},[t._m(0),t._l(t.nodes,function(e,s){return n("tr",[n("td",[t._v(t._s(e.id))]),n("td",[t._v(t._s(e.name))]),n("td",[n("button",{staticClass:"icon",attrs:{title:"delete"},on:{click:function(n){t.emit("removeNode",[e.id])}}},[n("span",{staticClass:"icon-delete"})])]),n("td",[n("button",{staticClass:"icon",attrs:{title:"unselect"},on:{click:function(n){t.emit("unSelectNode",[e.id])}}},[t._v("❌")])])])})],2)]),n("ul",{staticClass:"list"},[n("li",[t._v("Nodes:"),n("strong",[t._v(t._s(Object.keys(t.nodes).length))])]),n("li",[t._v("Links:"),n("strong",[t._v(t._s(Object.keys(t.links).length))])])])])},nt=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("tr",[n("th",[t._v("id")]),n("th",[t._v("name")]),n("th"),n("th")])}],st={name:"d3-net-selection",props:["data"],methods:{emit:function(t,e){this.$emit("action",t,e)}},computed:{links:function(){return this.data.links},nodes:function(){return this.data.nodes}}},it=st,ot=(n("NjoS"),Object(j["a"])(it,et,nt,!1,null,null,null)),rt=ot.exports,at=n("L+4z"),lt=n.n(at),ct={name:"d3-net-example",components:{D3Network:q,D3NetExampleMenu:tt,Selection:rt},data:function(){var t=Object.assign({},_);return t.tools={pointer:{tip:"Select",class:"icon-pointer"},killer:{tip:"Click on link or node to kill",class:"icon-delete_forever"},parent:{tip:"click on node to create parent",class:"icon-repo-forked"},pin:{tip:"click on node to pin / unpin ",class:"icon-pin"}},t.app=Object({name:"vue-d3-network",des:"Vue component to graph networks using d3-force",version:"0.1.26",repo:"https://github.com/emiliorizzo/vue-d3-network"}),t.tool="pointer",t.lastNodeId=0,t.lastLinkId=0,t.settings={maxLinks:3,maxNodes:150},t.showHint=!0,t.toaster=null,t.svgChoice=!1,t.toSvg=!1,t.options.icon=!1,t.nodeSym=null,t},mounted:function(){this.options.size.w=this.$el.clientWidth,this.options.size.h=this.$el.clientHeight},created:function(){this.reset()},computed:{showSel:function(){return!0}},methods:{linkCb:function(t){return t.name="Link "+t.id,t},screenShot:function(){this.options.canvas?this.takeScreenShot(!1):this.svgChoice=!0},takeScreenShot:function(){this.svgChoice=!1,this.toaster="Exporting image",this.$refs.net.screenShot(null,null,this.toSvg)},screenShotDone:function(t){this.toaster=t||"Saving Screenshot...";var e=this;window.setTimeout(function(){e.toaster=null},3e3)},resetOptions:function(){this.$set(this.$data,"options",_.options),this.options.offset.x=0,this.options.offset.y=0},selection:function(){return{nodes:this.selected,links:this.linksSelected}},buttonClass:function(t){if(t===this.tool)return"selected"},setTool:function(t){this.tool=t;var e="pointer"===t?"":"cross-cursor";this.$el.className=e},updateSelection:function(){this.showSelection=Object.keys(this.selected).length|Object.keys(this.linksSelected).length},reset:function(){this.selected={},this.linksSelected={},this.nodes=x(this.settings.maxNodes),this.lastNodeId=this.nodes.length+1,this.links=k(this.nodes,this.settings.maxLinks),this.lastLinkId=this.links.length+1},changeOptions:function(t){this.options=Object.assign({},t),t.icon?this.nodeSym=lt.a:this.nodeSym=null},removeLink:function(t){this.unSelectLink(t.id),this.links.splice(t.index,1)},rebuildLinks:function(t){t||(t=this.nodes);var e=v(t,this.links),n=!0,s=!1,i=void 0;try{for(var o,r=e.removed[Symbol.iterator]();!(n=(o=r.next()).done);n=!0){var a=o.value;this.linksSelected[a.id]&&delete this.linksSelected[a.id]}}catch(t){s=!0,i=t}finally{try{n||null==r.return||r.return()}finally{if(s)throw i}}return e.newLinks},removeNode:function(t){var e=this;f(t,this.nodes,function(n){n&&(e.links=e.rebuildLinks(n),e.unSelectNode(t),e.nodes=p(e.links,n))})},pinNode:function(t){t.pinned?(t.pinned=!1,t.fx=null,t.fy=null):(t.pinned=!0,t.fx=t.x,t.fy=t.y),this.nodes[t.index]=t},selectNode:function(t){this.selected[t.id]=t},selectNodesLinks:function(){var t=!0,e=!1,n=void 0;try{for(var s,i=this.links[Symbol.iterator]();!(t=(s=i.next()).done);t=!0){var o=s.value;this.selected[o.sid]||this.selected[o.tid]?this.selectLink(o):this.unSelectLink(o.id)}}catch(t){e=!0,n=t}finally{try{t||null==i.return||i.return()}finally{if(e)throw n}}},nodeClick:function(t,e){switch(this.tool){case"killer":this.removeNode(e.id);break;case"parent":this.createParent(e);break;case"pin":this.pinNode(e);break;default:this.selected[e.id]?this.unSelectNode(e.id):this.selectNode(e),this.selectNodesLinks();break}this.updateSelection()},linkClick:function(t,e){"killer"===this.tool?this.removeLink(e):this.linksSelected[e.id]?this.unSelectLink(e.id):this.selectLink(e),this.updateSelection()},createParent:function(t){var e=this.lastNodeId+1,n=this.lastLinkId+1,s=b(e);s.x=t.x+50,s.y=t.y+50,this.nodes=this.nodes.concat(s),this.lastNodeId++,this.links=this.links.concat(y(n,t.id,e)),this.lastLinkId++},selectLink:function(t){this.$set(this.linksSelected,t.id,t)},selectionEvent:function(t,e){w(this,t,e),this.updateSelection()},clearSelection:function(){this.selected={},this.linksSelected={}},unSelectNode:function(t){this.selected[t]&&delete this.selected[t],this.selectNodesLinks()},unSelectLink:function(t){this.linksSelected[t]&&delete this.linksSelected[t]},setShowMenu:function(t){this.showMenu=t,this.showHint=!1}}},dt=ct,ut=(n("yrhU"),Object(j["a"])(dt,d,u,!1,null,null,null)),ht=ut.exports,ft={name:"example",components:{d3NetExample:ht},data:function(){return{icons:{gitHub:c.a},app:Object({name:"vue-d3-network",des:"Vue component to graph networks using d3-force",version:"0.1.26",repo:"https://github.com/emiliorizzo/vue-d3-network"})}}},vt=ft,pt=(n("QcLJ"),Object(j["a"])(vt,r,a,!1,null,null,null)),mt=pt.exports;o["a"].config.productionTip=!1,new o["a"]({render:function(t){return t(mt)}}).$mount("#app")},WaBT:function(t,e,n){"use strict";var s=n("0WtW"),i=n.n(s);i.a},cLqz:function(t,e,n){"use strict";var s=n("4QDM"),i=n.n(s);i.a},m0EA:function(t,e,n){},oTCX:function(t,e,n){},uI5x:function(t,e){t.exports='<svg height="128" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="128" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>'},yrhU:function(t,e,n){"use strict";var s=n("oTCX"),i=n.n(s);i.a}});
//# sourceMappingURL=app.ee4eef8e.js.map