zingchart
Version:
Our JavaScript charting library is a commercial product. But the full branded version is free to try, forever.
8 lines (7 loc) • 42.9 kB
JavaScript
/*
All of the code within the ZingChart software is developed and copyrighted by ZingChart, Inc., and may not be copied,
replicated, or used in any other software or application without prior permission from ZingChart. All usage must coincide with the
ZingChart End User License Agreement which can be requested by email at support@zingchart.com.
Build 2.9.16-hf1_ES6
*/
zingchart.setModule("tree"),function(){if(!ZC.ZCVector){ZC.ZCVector=function(e,t){this.fMagnitude=e,this.fDirection=t,this.fMagnitude<0&&(this.fMagnitude=-this.fMagnitude,this.fDirection=(180+this.fDirection)%360),this.fDirection<0&&(this.fDirection=360+this.fDirection)},ZC.ZCVector.add=function(e,t){var i=e.fMagnitude*Math.cos(Math.PI/180*e.fDirection),n=e.fMagnitude*Math.sin(Math.PI/180*e.fDirection);i+=t.fMagnitude*Math.cos(Math.PI/180*t.fDirection),n+=t.fMagnitude*Math.sin(Math.PI/180*t.fDirection);var r,a=Math.sqrt(Math.pow(i,2)+Math.pow(n,2));return r=0===a?0:180/Math.PI*Math.atan2(n,i),new ZC.ZCVector(a,r)},ZC.ZCVector.sub=function(e,t){var i=e.fMagnitude*Math.cos(Math.PI/180*e.fDirection),n=e.fMagnitude*Math.sin(Math.PI/180*e.fDirection);i-=t.fMagnitude*Math.cos(Math.PI/180*t.fDirection),n-=t.fMagnitude*Math.sin(Math.PI/180*t.fDirection);var r,a=Math.sqrt(Math.pow(i,2)+Math.pow(n,2));return r=0===a?0:180/Math.PI*Math.atan2(n,i),new ZC.ZCVector(a,r)},ZC.ZCVector.multiply=function(e,t){return new ZC.ZCVector(e.fMagnitude*t,e.fDirection)},ZC.ZCVector.prototype.toXY=function(){return[this.fMagnitude*Math.cos(Math.PI/180*this.fDirection),this.fMagnitude*Math.sin(Math.PI/180*this.fDirection)]};var e=function(e,t){var i=e.x-t.x,n=e.y-t.y;return Math.sqrt(Math.pow(i,2)+Math.pow(n,2))},t=function(e,t){var i=e.x+(t.x-e.x)/2,n=e.y+(t.y-e.y)/2,r=i-e.x,a=n-e.y;return 0===r&&0===a?0:0===r?a>=0?90:270:0===a?r>=0?0:180:Math.atan2(a,r)*(180/Math.PI)},i=function(i,n,r,a,l){var c=Math.max(e(n,r),1),o=Math.min(.99,i*(l||1))*(c-a);o=Math.max(o,-a),o=Math.min(o,a);var d=t(n,r);return new ZC.ZCVector(o,d)},n=function(i,n,r,a,l,c,o,d){var h=Math.max(e(n,r),1),s=n.size||1,g=r.size||1;if(o||(s=g=1),d&&(c=1),h>c*a)return new ZC.ZCVector(0,0);var p=-i*s*g/(h*h*l);p=Math.max(p,-a),p=Math.min(p,a);var _=t(n,r);return new ZC.ZCVector(p,_)},r=function(e){for(var t=zingchart.plugins.tree[e].data,i=Number.MAX_VALUE,n=-Number.MAX_VALUE,r=Number.MAX_VALUE,a=-Number.MAX_VALUE,l=0;l<t.length;l++)"link"===t[l].type?(r=Math.min(r,t[l][ZC._[9]]),a=Math.max(a,t[l][ZC._[9]])):(i=Math.min(i,t[l][ZC._[9]]),n=Math.max(n,t[l][ZC._[9]]));zingchart.plugins.tree[e].minValue=i,zingchart.plugins.tree[e].maxValue=n,zingchart.plugins.tree[e].minLinkValue=r,zingchart.plugins.tree[e].maxLinkValue=a};zingchart.plugins.tree=zingchart.plugins.tree||{},zingchart.plugins.tree.graph_defaults={plotarea:{margin:5},container:{padding:5},node:{type:"circle","border-width":1,"border-color":"#fff",tooltip:{text:"%text"},label:{"font-size":10,padding:1,color:"#000",text:"%text"}},link:{flat:!0,"line-color":"#999",alpha:.5,type:"line"}},zingchart.plugins.tree.orgchart_defaults={plotarea:{margin:10},container:{"tree-right":{padding:"20 60 20 60"},"tree-left":{padding:"20 60 20 60"},"tree-down":{padding:"20 60 20 60"},"tree-up":{padding:"20 60 20 60"}},node:{type:"rectangle",width:80,height:30,"border-width":1,"border-color":"#333","background-color":"#fff",label:{color:"#000",width:80,"font-size":10,align:"center",anchor:"c",text:"%text"}},link:{aspect:"split","line-color":"#999","line-width":1}},zingchart.plugins.tree.tree_defaults={plotarea:{margin:10},container:{"tree-radial":{padding:"120 120 120 120"},"tree-right":{padding:"20 120 20 40"},"tree-left":{padding:"20 40 20 120"},"tree-down":{padding:"40 20 120 20"},"tree-up":{padding:"120 20 40 20"}},link:{aspect:"arc","line-color":"#999","line-width":1},"node[collapsed]":{"border-width":1,"border-color":"#666"},node:{type:"circle",tooltip:{text:"%text:%value"},label:{"font-size":10,padding:1,width:100,color:"#000","clip-text":!0,text:"%text"},label_jsRule:function(e,t,i){var n={},r=ZC._i_(t.label.width)/2,a=null!==ZC._n_(t.width)?ZC._i_(t.width)/2:t.size,l=null!==ZC._n_(t.height)?ZC._i_(t.height)/2:t.size,c=Math.max(a,l);switch(i){case"tree-right":0===e.level?n["offset-y"]=-t.size-l:(n.anchor=e.children&&e.children.length?"r":"l",n["offset-x"]=e.children&&e.children.length?-5-a:5+a,n.align=e.children&&e.children.length?"right":"left");break;case"tree-left":0===e.level?n["offset-y"]=-t.size-l:(n.anchor=e.children&&e.children.length?"l":"r",n["offset-x"]=e.children&&e.children.length?5+a:-5-a,n.align=e.children&&e.children.length?"left":"right");break;case"tree-down":n.anchor="c",0===e.level?n["offset-y"]=-t.size-l:(n["offset-y"]=e.children&&e.children.length?-5-r-l:5+r+l,n.angle=91,n.align=e.children&&e.children.length?"right":"left",n["offset-x"]=e.children&&e.children.length?1:0);break;case"tree-up":n.anchor="c",0===e.level?n["offset-y"]=t.size+l:(n["offset-y"]=e.children&&e.children.length?5+r+l:-5-r-l,n.angle=271,n.align=e.children&&e.children.length?"right":"left",n["offset-x"]=e.children&&e.children.length?-1:0);break;case"tree-radial":var o,d;if(0===e.level)n["offset-y"]=-t.size-l;else{for(var h=e.angle;h>360;)h-=360;for(;h<0;)h+=360;e.children&&e.children.length?(h>90&&h<270?(n.angle=h+180,n.align="left"):(n.angle=h,n.align="right"),o=ZC.AR.BN(e.cx,e.cy,e.radius,h),d=ZC.AR.BN(e.cx,e.cy,e.radius-(5+r+c),h)):(h>90&&h<270?(n.angle=h+180,n.align="right"):(n.angle=h,n.align="left"),o=ZC.AR.BN(e.cx,e.cy,e.radius,h),d=ZC.AR.BN(e.cx,e.cy,e.radius+(5+r+c),h)),n["offset-x"]=d[0]-o[0],n["offset-y"]=d[1]-o[1]}}for(var s in n)null!==ZC._n_(t.label[s])&&delete n[s];return n}}},zingchart.bind(null,"dataparse",function(e,t){for(var i,n,r,a,l=0,c=t[ZC._[16]].length;l<c;l++)if(t[ZC._[16]][l].type&&"tree"===t[ZC._[16]][l].type){var o=t[ZC._[16]][l].type;t[ZC._[16]][l]["plugin-type"]=o;var d=t[ZC._[16]][l];zingchart.normalize(d),d.type="null";var h={};d.options&&(h=d.options[o]||d.options),ZC._todash_(h),d[ZC._[11]]=d[ZC._[11]]||[];var s=h["text-attr"]||"text",g=h["value-attr"]||ZC._[9],p=h["source-attr"]||"source",_=h["target-attr"]||"target",u=h.aspect||"tree-right",f=ZC._b_(ZC._c_(h["org-chart"],0));if(d.plotarea=d.plotarea||{},f?ZC._inj_(d.plotarea,zingchart.plugins.tree.orgchart_defaults.plotarea||{}):"graph"===u?ZC._inj_(d.plotarea,zingchart.plugins.tree.graph_defaults.plotarea||{}):ZC._inj_(d.plotarea,zingchart.plugins.tree.tree_defaults.plotarea||{}),!(d[ZC._[11]]instanceof Array)){var Z=[],C={},v=function(e,t){var i=(e.text||e.name||e[s]).toLowerCase().replace(/[^a-z0-9_]+/gi,"");C[i]?i+=C[i]++:C[i]=1;var n={id:i,text:e.text||e.name||e[s]||i,value:e[ZC._[9]]||e[ZC._[21]]||e[g],parent:t||""};if(Z.push(n),e.children)for(var r=0;r<e.children.length;r++)v(e.children[r],i)};v(d[ZC._[11]]),d[ZC._[11]]=Z}for(i=0;i<d[ZC._[11]].length;i++)d[ZC._[11]][i].text=d[ZC._[11]][i].text||d[ZC._[11]][i].name||d[ZC._[11]][i][s]||"Node "+i,d[ZC._[11]][i][ZC._[9]]=d[ZC._[11]][i][ZC._[9]]||d[ZC._[11]][i][ZC._[21]]||d[ZC._[11]][i][g],d[ZC._[11]][i]["node-value"]=d[ZC._[11]][i][ZC._[9]],d[ZC._[11]][i].id||(d[ZC._[11]][i].text?d[ZC._[11]][i].id=d[ZC._[11]][i].text.toLowerCase().replace(/[^a-z0-9_]+/gi,""):d[ZC._[11]][i].id="node"+i),d[ZC._[11]][i].group=d[ZC._[11]][i].group||-1,"graph"!==u?(d[ZC._[11]][i].collapsed=!1,d[ZC._[11]][i].visible=!0):(d[ZC._[11]][i].text=d[ZC._[11]][i].text||d[ZC._[11]][i].name||d[ZC._[11]][i][s]||"Node "+i,(d[ZC._[11]][i].source||d[ZC._[11]][i].from||d[ZC._[11]][i][p])&&(d[ZC._[11]][i].target||d[ZC._[11]][i].to||d[ZC._[11]][i][_])?(d[ZC._[11]][i].source=d[ZC._[11]][i].source||d[ZC._[11]][i].from||d[ZC._[11]][i][p],d[ZC._[11]][i].target=d[ZC._[11]][i].target||d[ZC._[11]][i].to||d[ZC._[11]][i][_],d[ZC._[11]][i].type="link"):d[ZC._[11]][i].type="node"),"graph"===u&&d[ZC._[11]][i].parent&&""!==d[ZC._[11]][i].parent&&d[ZC._[11]].push({type:"link",source:d[ZC._[11]][i].id,target:d[ZC._[11]][i].parent,value:1});for(zingchart.plugins.tree[e.id]=zingchart.plugins.tree[e.id]||{},zingchart.plugins.tree[e.id].size=d[ZC._[11]].length,i=0;i<d[ZC._[11]].length;i++)if(d[ZC._[11]][i].idx=i,null!==ZC._n_(d[ZC._[11]][i].parent))for(n=0;n<d[ZC._[11]].length;n++)d[ZC._[11]][n].id===d[ZC._[11]][i].parent&&(d[ZC._[11]][i].pidx=n,d[ZC._[11]][n].children=d[ZC._[11]][n].children||[],d[ZC._[11]][n].children.push(i));else d[ZC._[11]][i].parent="";for(var x=!0,z=[];x;)for(x=!1,i=0;i<d[ZC._[11]].length;i++)if(null!==ZC._n_(d[ZC._[11]][i].parent)&&(r=d[ZC._[11]][i].parent,-1===ZC.AV(z,r))){var m=0,b=!0;for(a=-1,n=0;n<d[ZC._[11]].length;n++)d[ZC._[11]][n].id===r&&(a=n,d[ZC._[11]][i].pidx=n),null!==ZC._n_(d[ZC._[11]][n].parent)&&d[ZC._[11]][n].parent===r&&(null!==ZC._n_(d[ZC._[11]][n][ZC._[9]])&&ZC._f_(d[ZC._[11]][n][ZC._[9]])+""==d[ZC._[11]][n][ZC._[9]]+""?m+=ZC._f_(d[ZC._[11]][n][ZC._[9]]):b=!1);if(b&&-1!==a){null!==ZC._n_(d[ZC._[11]][a][ZC._[9]])&&(d[ZC._[11]][a]["node-value"]=d[ZC._[11]][a][ZC._[9]]),d[ZC._[11]][a][ZC._[9]]=m,z.push(r),x=!0;continue}}for(i=0;i<d[ZC._[11]].length;i++)d[ZC._[11]][i][ZC._[9]]=d[ZC._[11]][i][ZC._[9]]||1,"graph"===u&&(d[ZC._[11]][i].container=d[ZC._[11]][i].container||0);for(var y=!0,M=Number.MAX_VALUE,w=-Number.MAX_VALUE,k=0;y;)for(y=!1,i=0;i<d[ZC._[11]].length;i++)"graph"===u&&"node"!==d[ZC._[11]][i].type||(M=Math.min(M,d[ZC._[11]][i][ZC._[9]]),w=Math.max(w,d[ZC._[11]][i][ZC._[9]])),null===ZC._n_(d[ZC._[11]][i].level)?d[ZC._[11]][i].sibling||null!==ZC._n_(d[ZC._[11]][i].parent)&&""!==d[ZC._[11]][i].parent?(a=d[ZC._[11]][i].pidx,null!==ZC._n_(a)?null===ZC._n_(d[ZC._[11]][a].level)?y=!0:(d[ZC._[11]][i].level=ZC._i_(d[ZC._[11]][a].level)+1,"graph"!==u&&(d[ZC._[11]][i].container=d[ZC._[11]][a].container)):d[ZC._[11]][i].container=d[ZC._[11]][i].level=0):(d[ZC._[11]][i].level=0,"graph"!==u&&(d[ZC._[11]][i].container=k),k++):(a=d[ZC._[11]][i].pidx,null!==ZC._n_(a)?d[ZC._[11]][i].container=d[ZC._[11]][a].container||0:d[ZC._[11]][i].container=0);if(zingchart.plugins.tree[e.id].minValue=M,zingchart.plugins.tree[e.id].maxValue=w,"graph"===u){var V=Number.MAX_VALUE,A=-Number.MAX_VALUE;for(i=0;i<d[ZC._[11]].length;i++)"link"===d[ZC._[11]][i].type&&(V=Math.min(V,d[ZC._[11]][i][ZC._[9]]),A=Math.max(A,d[ZC._[11]][i][ZC._[9]]));zingchart.plugins.tree[e.id].minLinkValue=V,zingchart.plugins.tree[e.id].maxLinkValue=A}d.plotarea=d.plotarea||{},ZC._inj_(d.plotarea,{margin:"10 10 10 10","mask-tolerance":[0,0]})}return t});var a=function(r){var a=zingchart.getLoader(r.loader.id),c=zingchart.getGraph(a,r.graphid),o=c.o;if("tree"===o["plugin-type"]){var d,g,p,_=zingchart.getGraphInfo(a,o,c.L).plotarea,u={};o.options&&(u=o.options.tree||o.options),ZC._todash_(u);var f=u.palette||["#a7da47","#00b0e1","#ef4810","#f9c332","#84680a","#4d62b1","#00BAF2","#E80C60","#E2D51A","#9B26AF","#FB301E","#00AE4D","#20398B"],Z=u.aspect||"tree-right",C=ZC._b_(ZC._c_(u["org-chart"],0)),v=u.layout||"x",x=ZC._i_(ZC._c_(u.progression,"0")),z=ZC._i_(ZC._c_(u.aperture,"360")),m=ZC._i_(ZC._c_(u["ref-angle"],"0")),b=ZC._i_(ZC._c_(u["min-size"],4)),y=ZC._i_(ZC._c_(u["max-size"],4)),M=ZC._i_(ZC._c_(u["min-link-width"],1)),w=ZC._i_(ZC._c_(u["max-link-width"],5)),k=ZC._f_(ZC._c_(u["attraction-constant"],.99)),V=ZC._i_(ZC._c_(u["repulsion-constant"],1e3)),A=ZC._i_(ZC._c_(u["repulsion-distance-factor"],20)),N=ZC._f_(ZC._c_(u["spring-length"],40)),L=ZC._i_(ZC._c_(u["max-iterations"],1e3)),X=ZC._f_(ZC._c_(u["damping-step"],.005)),R=ZC._b_(ZC._c_(u["weighted-nodes"],0)),E=ZC._b_(ZC._c_(u["weighted-links"],0)),I=Math.max(1,ZC._i_(ZC._c_(u["packing-factor"],1))),j=Math.max(.1,ZC._f_(ZC._c_(u["depth-ratio"],2))),D=ZC._b_(ZC._c_(u["weighted-links"],0));C&&(D=!0),zingchart.plugins.tree[r.id].data=[].concat(o[ZC._[11]]||[]),zingchart.plugins.tree[r.id].attractionConstant=k,zingchart.plugins.tree[r.id].repulsionConstant=V,zingchart.plugins.tree[r.id].springLength=N;var P,Y,S=function(e,t){var i=zingchart.plugins.tree[r.id].data;if(i[e].children)for(var n=0;n<i[e].children.length;n++)i[i[e].children[n]].coord+=t,S(i[e].children[n],t)},U=function(e){var t=zingchart.plugins.tree[r.id].data,i=!1,n=-1,a=-1;if(null===ZC._n_(t[e].pidx))i=!0;else{var l=ZC.AV(t[t[e].pidx].children,e);0===l?i=!0:(i=!1,n=l-1,a=t[t[e].pidx].children[n])}return{first:i,prevSiblingIndex:n,prevIndex:a}},F=function(e,t){var i=zingchart.plugins.tree[r.id].data,n=[];if(n.push(e),i[e].children&&i[e].children.length&&(t||!i[e].collapsed))for(var a=0;a<i[e].children.length;a++)n=n.concat(F(i[e].children[a]));return n},B=function(e){for(var t=zingchart.plugins.tree[r.id].data,i=Number.MAX_VALUE,n=0;n<e.length;n++)i=Math.min(i,t[e[n]].coord);return i},T=function(e){for(var t=zingchart.plugins.tree[r.id].data,i=-Number.MAX_VALUE,n=0;n<e.length;n++)i=Math.max(i,t[e[n]].coord);return i},q=null,O=function(){var e,t=zingchart.plugins.tree[r.id].data;if(!q)for(q={},e=0;e<t.length;e++)q[t[e].id]=t[e].idx;var i={};for(e=0;e<t.length;e++){if(t[e].reference){var n=t[q[t[e].reference]];i[t[e].reference]=i[t[e].reference]||1,t[e].coord=n.coord,t[e].level=n.level+i[t[e].reference],i[t[e].reference]+=1}if(t[e].sibling&&0===t[e].level){var a=t[q[t[e].sibling]];t[e].idx<a.idx?t[e].coord=a.coord-I:t[e].coord=a.coord+I}}G()},W=0,G=function(){for(var e=zingchart.plugins.tree[r.id].data,t=0;t<e.length;t++)e[t].visible&&(W=Math.max(W,o[ZC._[11]][t].level))},K=function(e,t){var i=zingchart.plugins.tree[r.id].data;if(i[e].visible&&(i[e].reference?i[e].coord=0:i[e].coord=t*I,i[e].children))for(var n=0;n<i[e].children.length;n++)K(i[e].children[n],n*I)},Q=function(e){var t=zingchart.plugins.tree[r.id].data;if(t[e].visible&&!t[e].reference&&t[e].children&&!t[e].collapsed){var i=t[e].children.length,n=t[e].children[0],a=t[e].children[i-1],l=(t[n].coord+t[a].coord)/2,c=U(e),o=c.first,d=c.prevSiblingIndex;if(o)t[e].coord=l;else{var h=t[t[e].pidx].children[d];t[e].coord=t[h].coord+I;var s=t[e].coord-l;0!==s&&S(e,s)}}},J=function(e){var t=zingchart.plugins.tree[r.id].data;if(t[e].visible&&!t[e].reference){var i=U(e),n=i.first,a=i.prevIndex;if(!n){var l=function(e,t,i){var n=zingchart.plugins.tree[r.id].data,a=[];if(t){for(;n[e].children&&n[e].children.length&&!n[e].collapsed&&!n[e].fake;)e=n[e].children[n[e].children.length-1];for(;null!==ZC._n_(n[e].pidx);)(-1===i||n[e].level<=i)&&a.push(e),e=n[e].pidx}if(a.push(e),!t)for(;n[e].children&&n[e].children.length&&!n[e].collapsed&&!n[e].fake;)e=n[e].children[n[e].children.length-1],(-1===i||n[e].level<=i)&&a.push(e);return a}(a,!1,-1),c=function(e,t,i){var n=zingchart.plugins.tree[r.id].data,a=[];if(t){for(;n[e].children&&n[e].children.length&&!n[e].collapsed&&!n[e].fake;)e=n[e].children[0];for(;null!==ZC._n_(n[e].pidx);)(-1===i||n[e].level<=i)&&a.push(e),e=n[e].pidx}if(a.push(e),!t)for(;n[e].children&&n[e].children.length&&!n[e].collapsed&&!n[e].fake;)e=n[e].children[0],(-1===i||n[e].level<=i)&&a.push(e);return a}(e,!1,-1),o=T(l),d=B(c),h=0;d<=o&&(h=o-d+I,t[e].coord+=h,S(e,h))}if(t[e].children&&t[e].children.length&&!t[e].collapsed)for(var s=0;s<t[e].children.length;s++)J(t[e].children[s])}},H=function(e){var t=zingchart.plugins.tree[r.id].data;if(t[e].visible&&t[e].children&&!t[e].collapsed){for(var i=t[e].children.length,n=t[e].children[0],a=t[e].children[i-1],l=(t[n].coord+t[a].coord)/2,c=t[e].coord-l,o=0;o<t.length;o++)t[o].sibling===t[e].id&&(t[o].coord-=c);t[e].coord=l}},$=function(e){var t=zingchart.plugins.tree[r.id].data,i=0;if(!t[e].visible)return i;if(t[e].children&&t[e].children.length>1&&!t[e].collapsed)for(var n=1;n<t[e].children.length;n++){var a=t[t[e].children[n]],l=t[t[e].children[n-1]];i+=ee(l,a)}return i},ee=function(e,t){var i=0,n="r";return e.children&&e.children.length?t.children&&t.children.length||(n="l",t.coord-e.coord>I&&(t.coord=e.coord+I,i++)):t.children&&t.children.length?(n="r",t.coord-e.coord>I&&(e.coord=t.coord-I,i++)):t.coord-e.coord>I&&("r"===n?(e.coord=t.coord-I,i++):(t.coord=e.coord+I,i++)),i},te=function(e){var t=zingchart.plugins.tree[r.id].data,i=U(e),n=i.first,a=i.prevIndex;if(!n){var l=F(a),c=F(e),o=T(l),d=B(c),h=0;d>o+I&&(h=d-o-I,t[e].coord+=-h,S(e,-h))}},ie=[],ne=[],re=[],ae=[],le=[],ce=[],oe={},de={},he={},se=1,ge=0,pe="",_e=[0,0],ue=!1,fe={},Ze=!0,Ce=!0,ve=zingchart.getInstance(c,"textbox");C?ve.append(zingchart.plugins.tree.orgchart_defaults.container[Z]):"graph"===Z?ve.append(zingchart.plugins.tree.graph_defaults.container):ve.append(zingchart.plugins.tree.tree_defaults.container[Z]),ve.append(u.container),ve.parse();var xe=ve.FK,ze=ve.FO,me=ve.FT,be=ve.EN,ye=function(e){if(ie=[],e>1){var t=-1,i=-1;if("h"===v)t=1,i=e;else if("v"===v)t=e,i=1;else if(-1!==v.indexOf("x")){var n=v.split("x");""!==n[0]&&(t=ZC._i_(n[0])),""!==n[1]&&(i=ZC._i_(n[1])),-1===t&&-1===i?t=i=Math.ceil(Math.sqrt(e)):-1===t&&-1!==i?t=Math.ceil(e/i):-1!==t&&-1===i&&(i=Math.ceil(e/t))}for(var r=_.width/i,a=_.height/t,l=0;l<t;l++)for(var c=0;c<i;c++)ie[l*i+c]={x:_.x+c*r,y:_.y+l*a,width:r,height:a}}else ie[0]={x:_.x,y:_.y,width:_.width,height:_.height}};zingchart.plugins.tree[r.id].bFirstRender=!0;var Me={},we=function(c){if(a.T9=[],k=zingchart.plugins.tree[r.id].attractionConstant,V=zingchart.plugins.tree[r.id].repulsionConstant,N=zingchart.plugins.tree[r.id].springLength,!c||(se=1,ge=0,!ue)){ue=!0;var o,h,g=zingchart.plugins.tree[r.id].data,p=le.length,_=ce.length,f=0,Z=0,C=[];""!==pe&&(g[oe[pe]].x=_e[0],g[oe[pe]].y=_e[1]);var v,x=[];for(d=0;d<p;d++)if((o=g[le[d]])&&(v=ie[o.container],x[o.container]||(x[o.container]={minX:Number.MAX_VALUE,minY:Number.MAX_VALUE,maxX:-Number.MAX_VALUE,maxY:-Number.MAX_VALUE}),o.id!==pe)){var z,m={x:v.x+v.width/2,y:v.y+v.height/2},b={x:v.x+v.width/2,y:v.y+v.height/2},y=N,I=1,j="";null!==ZC._n_(o.level)&&o.level>0&&y>20&&(y=Math.round(Math.max(20,y-5*o.level)));var D=new ZC.ZCVector(e(m,o),t(m,o)),P=new ZC.ZCVector(0,0),Y=new ZC.ZCVector(0,0);for(h=0;h<p;h++)if(d!==h&&o.container===g[le[h]].container){I=1,z=y,j=o.id+"-"+g[le[h]].id,ke[j]&&(z=ke[j]),E&&g[he[j]]&&zingchart.plugins.tree[r.id].maxLinkValue!==zingchart.plugins.tree[r.id].minLinkValue&&(I+=Math.round((w-M)*(g[he[j]].value-zingchart.plugins.tree[r.id].minLinkValue)/(zingchart.plugins.tree[r.id].maxLinkValue-zingchart.plugins.tree[r.id].minLinkValue)));var S=n(V,o,g[le[h]],z,I,A,R,g[he[j]]?1:0);Y=ZC.ZCVector.add(Y,S)}if(o.level){var U=n(V,o,b,y,I,10*A,R,0);Y=ZC.ZCVector.add(Y,U)}P=ZC.ZCVector.add(P,Y);var F=!1,B=new ZC.ZCVector(0,0);if(de[o.id])for(h=0;h<de[o.id].length;h++){I=1,z=y,j=o.id+"-"+g[oe[de[o.id][h]]].id,ke[j]&&(z=ke[j]),E&&(I=M,zingchart.plugins.tree[r.id].maxLinkValue!==zingchart.plugins.tree[r.id].minLinkValue&&(I+=Math.round((w-M)*(g[he[j]].value-zingchart.plugins.tree[r.id].minLinkValue)/(zingchart.plugins.tree[r.id].maxLinkValue-zingchart.plugins.tree[r.id].minLinkValue))));var T=i(k,o,g[oe[de[o.id][h]]],z,I);T.fMagnitude/=2,B=ZC.ZCVector.add(B,T),g[oe[de[o.id][h]]].id===pe&&(F=!0)}else{var q=i(k,o,b,y,1);B=ZC.ZCVector.add(B,q)}if(de[o.id]?(B.fMagnitude>y/10||de[o.id].length>1)&&(B=ZC.ZCVector.multiply(B,Math.min(1,(F?2.5:1)/de[o.id].length))):B.fMagnitude=Math.min(5*(F?2.5:1),B.fMagnitude),o.cg){var O=i(999*k,o,o.cg,5,1);B=ZC.ZCVector.add(B,O)}P=ZC.ZCVector.add(P,B),P=ZC.ZCVector.multiply(P,se);var W=(D=ZC.ZCVector.add(D,P)).toXY(),G=e(o,{x:v.x+v.width/2+W[0],y:v.y+v.height/2+W[1]});f+=G,Z=Math.max(Z,G),o.__x=v.x+v.width/2+W[0],o.__y=v.y+v.height/2+W[1]}for(d=0;d<p;d++)(o=g[le[d]]).id!==pe&&(o.x=o.__x,o.y=o.__y),x[o.container].minX=Math.min(x[o.container].minX,o.x),x[o.container].maxX=Math.max(x[o.container].maxX,o.x),x[o.container].minY=Math.min(x[o.container].minY,o.y),x[o.container].maxY=Math.max(x[o.container].maxY,o.y);var K=0,Q=[];for(d=0;d<x.length;d++)Q[d]=1,x[d].maxX-x[d].minX>ie[d].width&&(Q[d]=Math.min(Q[d],ie[d].width/(x[d].maxX-x[d].minX))),x[d].maxY-x[d].minY>ie[d].height&&(Q[d]=Math.min(Q[d],ie[d].height/(x[d].maxY-x[d].minY))),x[d].diffX=ie[d].x+ie[d].width/2-(x[d].maxX+x[d].minX)/2,x[d].diffY=ie[d].y+ie[d].height/2-(x[d].maxY+x[d].minY)/2,K+=e({x:ie[d].x+ie[d].width/2,y:ie[d].y+ie[d].height/2},{x:(x[d].maxX+x[d].minX)/2,y:(x[d].maxY+x[d].minY)/2});var J={};for(d=0;d<p;d++)(o=g[le[d]]).cg||(""===pe?(o.x+=x[o.container].diffX/N,o.y+=x[o.container].diffY/N):g[oe[pe]].container!==o.container&&(o.x+=x[o.container].diffX/N,o.y+=x[o.container].diffY/N)),Me[o.id]&&(o.x=Me[o.id][0]||o.x,o.y=Me[o.id][1]||o.y),1!==Q[o.container]?(o._x_=ie[o.container].x+ie[o.container].width/2+(o.x-ie[o.container].x-ie[o.container].width/2)*Q[o.container],o._y_=ie[o.container].y+ie[o.container].height/2+(o.y-ie[o.container].y-ie[o.container].height/2)*Q[o.container]):(o._x_=o.x,o._y_=o.y),o._x_=Math.max(ie[o.container].x,Math.min(ie[o.container].x+ie[o.container].width,o._x_)),o._y_=Math.max(ie[o.container].y,Math.min(ie[o.container].y+ie[o.container].height,o._y_)),o._x_>0&&o._x_<1&&(o._x_=1.1),o._y_>0&&o._y_<1&&(o._y_=1.1),fe[o.id]=[o._x_,o._y_],J={id:"node_"+o.id,x:o._x_,y:o._y_},ge>=15&&(J.visible=Ze),C.push(J);for(d=0;d<_;d++)if(o=g[ce[d]]){var H=g[oe[o.source]],$=g[oe[o.target]];J={id:"link_"+H.id+"_"+$.id,points:[[H._x_,H._y_],[$._x_,$._y_]]},ge>=15&&(J.visible=Ce),u.link["start-point"]&&(J["start-point"]=u.link["start-point"]),u.link["end-point"]&&(J["end-point"]=u.link["end-point"]),s(J,H.cls?u["node[cls-"+H.cls+"]"]:u.node,$.cls?u["node[cls-"+$.cls+"]"]:u.node),C.push(J)}zingchart.exec(r.id,"updateobject",{type:"shape",data:C.concat(l(C))}),++ge<15||ge<L&&(f>1&&Z>.1||K>2)?(se=Math.max(.001,se-X),window.setTimeout(we,1)):ue=!1}},ke={},Ve=zingchart.plugins.tree[r.id]._render_graph_=function(){zingchart.exec(r.id,"removeobject",{type:"shape",cls:"zctreeshape"}),re=[],ae=[],le=[],ce=[],oe={},de={},he={};var e,t=zingchart.plugins.tree[r.id].data,i=!1,n=[],a=0;for(d=0;d<t.length;d++)((e=t[d]).parent||e.children)&&(i=!0),"node"===e.type?(le.push(d),oe[e.id]=d,n[e.container]||(n[e.container]=[],a++),n[e.container].push(d)):(ce.push(d),de[e.source]=de[e.source]||[],de[e.source].push(e.target),de[e.target]=de[e.target]||[],de[e.target].push(e.source),he[e.source+"-"+e.target]=d,he[e.target+"-"+e.source]=d);ye(a);for(var c={},o=0;o<ie.length;o++){var h=ie[o];if(n[o]=n[o]||[],n[o].length){var g=[h.x+h.width/2,h.y+h.height/2];if(i)for(var p={},_=0;_<n[o].length;_++)if((e=t[n[o][_]]).parent){var Z=t[oe[e.parent]];if(Z){var C=c[Z.id],v=ZC.AR.BN(C[0],C[1],Math.max(25,60-5*Z.level),p[e.parent]);c[e.id]=[v[0],v[1]];var x=15;e.level<=1&&(x=360/Math.max(1,(Z.children||[]).length)),p[e.id]||(p[e.id]=p[Z.id],e.children&&Z.children.length>1&&(p[e.id]-=15*(e.children.length-1)/2)),p[Z.id]+=x}}else c[e.id]=[g[0],g[1]],p[e.id]=1;else for(var z=Math.ceil(Math.sqrt(n[o].length)),m=Math.min(10,Math.round(h.width/z)),k=m*z,V=Math.min(10,Math.round(h.height/z)),A=V*z,N=0;N<z;N++)for(var L=0;L<z;L++){var X=N*z+L;X<n[o].length&&(c[t[n[o][X]].id]=[g[0]-k/2+L*m,g[1]-A/2+N*V])}}}for(d=0;d<le.length;d++){e=t[le[d]],fe[e.id]?(e.x=fe[e.id][0],e.y=fe[e.id][1]):(e.x=c[e.id][0],e.y=c[e.id][1]);var R=b;zingchart.plugins.tree[r.id].maxValue!==zingchart.plugins.tree[r.id].minValue&&(R+=Math.round((y-b)*(e.value-zingchart.plugins.tree[r.id].minValue)/(zingchart.plugins.tree[r.id].maxValue-zingchart.plugins.tree[r.id].minValue))),e.size=1+.5*R/y;var E,I=ZC._i_(-1!==e.group?e.group:e.level||"0"),j={};if(ZC._cp_(zingchart.plugins.tree.graph_defaults.node,j),ZC._cp_({id:"node_"+e.id,cls:"zctreeshape","background-color":f[I%f.length],size:R},j),ZC._cp_(u.node||{},j),ZC._cp_(u["node[group-"+e.group+"]"],j),ZC._cp_(u["node[container-"+e.container+"]"],j),e.cls)for(var D=e.cls.split(/\s/),P=0;P<D.length;P++)ZC._cp_(u["node[cls-"+D[P]+"]"],j);if(u.nodes&&u.nodes[e.id]&&ZC._cp_(u.nodes[e.id],j),j["js-rule"])try{var Y=ZC.execFn(j["js-rule"].replace("javascript:","").replace("()",""),window,r.id,e,j);Y&&ZC._cp_(Y,j)}catch(O){}e.style&&ZC._cp_(e.style,j);var S={decimals:null,short:!1,"thousands-separator":",","decimals-separator":"."};if(ZC._cp_(j,S),j.label&&j.label.text){for(E in j.label.text=j.label.text.replace(/%text/gi,e.text).replace(/%node-value/gi,zingchart.formatNumber(e["node-value"],S)).replace(/%value/gi,zingchart.formatNumber(e.value,S)),e)"data-"===E.substring(0,5)&&(j.label.text=j.label.text.replace(new RegExp("%"+E,"g"),e[E]));j.label.text=j.label.text.replace(new RegExp("%data-([a-zA-Z0-9]+)","g"),"")}if(j.tooltip&&j.tooltip.text){for(E in ZC._cp_(j.tooltip,S),j.tooltip.text=j.tooltip.text.replace(/%text/gi,e.text).replace(/%node-value/gi,zingchart.formatNumber(e["node-value"],S)).replace(/%value/gi,zingchart.formatNumber(e.value,S)),e)"data-"===E.substring(0,5)&&(j.tooltip.text=j.tooltip.text.replace(new RegExp("%"+E,"g"),e[E]));j.tooltip.text=j.tooltip.text.replace(new RegExp("%data-([a-zA-Z0-9]+)","g"),"")}zingchart.plugins.tree[r.id].bFirstRender&&(null===ZC._n_(j.visible)||j.visible||(Ze=!1),j.visible=!1),null!==ZC._n_(j.x)||null!==ZC._n_(j.y)?(Me[e.id]=[0,0],null!==ZC._n_(j.x)?(j.x=ZC._i_(j.x),Me[e.id][0]=j.x):j.x=e.x,null!==ZC._n_(j.y)?(j.y=ZC._i_(j.y),Me[e.id][1]=j.y):j.y=e.y):(j.x=e.x,j.y=e.y),re.push(j)}for(d=0;d<ce.length;d++){e=t[ce[d]];var U=t[oe[e.source]],F=t[oe[e.target]],B=M;zingchart.plugins.tree[r.id].maxLinkValue!==zingchart.plugins.tree[r.id].minLinkValue&&(B+=Math.round((w-M)*(e.value-zingchart.plugins.tree[r.id].minLinkValue)/(zingchart.plugins.tree[r.id].maxLinkValue-zingchart.plugins.tree[r.id].minLinkValue)));var T={};if(ZC._cp_(zingchart.plugins.tree.graph_defaults.link,T),ZC._cp_({id:"link_"+U.id+"_"+F.id,cls:"zctreeshape","fast-vector-path":!0,"line-width":B,points:[[U.x,U.y],[F.x,F.y]]},T),ZC._cp_(u.link||{},T),ZC._cp_(u["link[group-"+U.group+"]"],T),ZC._cp_(u["link[container-"+U.container+"]"],T),ZC._cp_(u["link[source-"+U.id+"]"],T),ZC._cp_(u["link[target-"+F.id+"]"],T),e.cls&&ZC._cp_(u["link[cls-"+e.cls+"]"],T),T["js-rule"])try{var q=ZC.execFn(T["js-rule"].replace("javascript:","").replace("()",""),window,r.id,e,U,F,T);q&&ZC._cp_(q,T)}catch(O){}u.links&&u.links[U.id+"-"+F.id]&&ZC._cp_(u.links[U.id+"_"+F.id],T),zingchart.plugins.tree[r.id].bFirstRender&&(null===ZC._n_(T.visible)||T.visible||(Ce=!1),T.visible=!1),T.length&&(ke[U.id+"-"+F.id]=ke[F.id+"-"+U.id]=T.length),s(T,U.cls?u["node[cls-"+U.cls+"]"]:u.node,F.cls?u["node[cls-"+F.cls+"]"]:u.node),ae.push(T)}zingchart.exec(r.id,"addobject",{type:"shape",data:ae.concat(l(ae)).concat(re)}),zingchart.plugins.tree[r.id].bFirstRender=!1,window.setTimeout(function(){we(!0)},1)},Ae=function(){a.T9=[],ie=[],ne=[],re=[],ae=[];var e=zingchart.plugins.tree[r.id].data,t=[],i=[];for(d=0;d<e.length;d++)0!==e[d].level||e[d].sibling||(t.push(e[d]),i.push(d));G();var n,c,o,s={};for(d=0;d<e.length;d++)s[e[d].container+"-"+e[d].level]=s[e[d].container+"-"+e[d].level]||[],s[e[d].container+"-"+e[d].level].push(e[d].idx);ye(t.length);for(var _=0;_<ie.length;_++)if(t[_]){for(d=0;d<i.length;d++)d===_&&K(i[d],d);for(O(),g=W;g>=0;g--)if(s[_+"-"+g])for(d=0;d<s[_+"-"+g].length;d++)Q(s[_+"-"+g][d]);for(O(),d=0;d<i.length;d++)J(i[d]);for(O(),g=W-1;g>=0;g--)if(s[_+"-"+g])for(d=0;d<s[_+"-"+g].length;d++)H(s[_+"-"+g][d]);if(O(),C){for(g=W-1;g>=0;g--)if(s[_+"-"+g])for(var v=1,M=0;v>0&&M<128;){for(v=0,d=0;d<s[_+"-"+g].length;d++)v+=$(s[_+"-"+g][d]);M++}O()}for(d=0;d<e.length;d++)if(e[d].container===_&&e[d].children)for(p=1;p<e[d].children.length;p++)te(e[d].children[p]);for(O(),g=W-1;g>=0;g--)if(s[_+"-"+g])for(d=0;d<s[_+"-"+g].length;d++)H(s[_+"-"+g][d]);O();var w=Number.MAX_VALUE,k=-Number.MAX_VALUE;for(d=0;d<e.length;d++)e[d].container===_&&(""!==e[d].parent?e[d].visible&&e[e[d].pidx].visible&&ne.push([e[d].pidx,e[d].idx]):e[d].sibling&&null===ZC._n_(e[d].pidx)&&null!==ZC._n_(q[e[d].sibling])&&ne.push([q[e[d].sibling],e[d].idx]),e[d].visible&&(w=Math.min(w,e[d].coord),k=Math.max(k,e[d].coord)));w===k&&(k=w+I);var V,A=ie[_],N=function(e){for(var t=0,i=e;i>=0;i--)t+=Math.pow(2,i);return t};switch(Z){case"tree-radial":n=Math.min(A.width-ze-be,A.height-xe-me)/(2*Math.max(W,1)),0!==x&&(n=Math.pow(2,W-1)*Math.min(A.width-ze-be,A.height-xe-me)/N(W-1));break;case"tree-down":case"tree-up":n=(A.height-xe-me)/Math.max(W,1),0!==x&&(n=Math.pow(2,W-1)*(A.height-xe-me)/N(W-1));break;case"tree-left":case"tree-right":n=(A.width-ze-be)/Math.max(W,1),0!==x&&(n=Math.pow(2,W-1)*(A.width-be-ze)/N(W-1))}for(d=0;d<e.length;d++)if(e[d].visible&&e[d].container===_)switch(Z){case"tree-right":if(V=(A.height-xe-me)/(k-w),e[d].y=A.y+xe+(e[d].coord-w)*V,0===W&&(e[d].y+=A.height/2),e[d].x=A.x+be,0===x)e[d].x+=e[d].level*n;else if(-1===x)for(g=0;g<e[d].level;g++)e[d].x+=n*Math.pow(2,-g);else if(1===x)for(g=0;g<e[d].level;g++)e[d].x+=n*Math.pow(2,-W+g+1);break;case"tree-left":if(V=(A.height-xe-me)/(k-w),e[d].y=A.y+xe+(e[d].coord-w)*V,0===W&&(e[d].y+=A.height/2),e[d].x=A.x+A.width-ze,0===x)e[d].x-=e[d].level*n;else if(-1===x)for(g=0;g<e[d].level;g++)e[d].x-=n*Math.pow(2,-g);else if(1===x)for(g=0;g<e[d].level;g++)e[d].x-=n*Math.pow(2,-W+g+1);break;case"tree-down":if(V=(A.width-ze-be)/(k-w),e[d].x=A.x+be+(e[d].coord-w)*V,0===W&&(e[d].x+=A.width/2),e[d].y=A.y+xe,0===x)e[d].y+=e[d].level*n;else if(-1===x)for(g=0;g<e[d].level;g++)e[d].y+=n*Math.pow(2,-g);else if(1===x)for(g=0;g<e[d].level;g++)e[d].y+=n*Math.pow(2,-W+g+1);break;case"tree-up":if(V=(A.width-ze-be)/(k-w),e[d].x=A.x+be+(e[d].coord-w)*V,0===W&&(e[d].x+=A.width/2),e[d].y=A.y+A.height-me,0===x)e[d].y-=e[d].level*n;else if(-1===x)for(g=0;g<e[d].level;g++)e[d].y-=n*Math.pow(2,-g);else if(1===x)for(g=0;g<e[d].level;g++)e[d].y-=n*Math.pow(2,-W+g+1);break;case"tree-radial":if(V=z/(k-w+1),e[d].angle=m+(e[d].coord-w)*V,e[d].radius=0,0===x)e[d].radius+=e[d].level*n;else if(-1===x)for(g=0;g<e[d].level;g++)e[d].radius+=n*Math.pow(2,-g-1);else if(1===x)for(g=0;g<e[d].level;g++)e[d].radius+=n*Math.pow(2,-W+g);e[d].cx=A.x+be+(A.width-be-ze)/2,e[d].cy=A.y+xe+(A.height-xe-me)/2,P=ZC.AR.BN(e[d].cx,e[d].cy,e[d].radius,e[d].angle),e[d].x=P[0],e[d].y=P[1]}}var L={},X={},R=C?zingchart.plugins.tree.orgchart_defaults:zingchart.plugins.tree.tree_defaults;for(d=0;d<e.length;d++)if(e[d].visible&&!e[d].fake){c=e[d];var E,D=Math.round(b+(y-b)*(c.value-zingchart.plugins.tree[r.id].minValue)/(zingchart.plugins.tree[r.id].maxValue-zingchart.plugins.tree[r.id].minValue)),S={};if(ZC._cp_(R.node,S),ZC._cp_({id:"node_"+c.id,cls:"zctreeshape","background-color":f[c.level%f.length],"hover-state":{"background-color":ZC.AP.JW(f[c.level%f.length],20)},x:c.x,y:c.y,size:D,dataTreeIndex:c.idx},S),c.children&&c.children.length?ZC._cp_(R["node[parent]"],S):ZC._cp_(R["node[leaf]"],S),c.collapsed&&ZC._cp_(R["node[collapsed]"],S),ZC._cp_(u.node||{},S),c.children&&c.children.length?ZC._cp_(u["node[parent]"],S):ZC._cp_(u["node[leaf]"],S),c.collapsed&&ZC._cp_(u["node[collapsed]"],S),ZC._cp_(u["node[container-"+c.container+"]"],S),ZC._cp_(u["node[level-"+c.level+"]"],S),c.parent&&ZC._cp_(u["node[parent-"+e[c.pidx].id+"]"],S),c.cls)for(var U=c.cls.split(/\s/),F=0;F<U.length;F++)ZC._cp_(u["node[cls-"+U[F]+"]"],S);if(u.nodes&&u.nodes[c.id]&&ZC._cp_(u.nodes[c.id],S),u.nodes&&u.nodes[ZC.VD(c.id)]&&ZC._cp_(u.nodes[ZC.VD(c.id)],S),S.label&&(S.label.x=c.x,S.label.y=c.y,R.node.label_jsRule&&ZC._cp_(R.node.label_jsRule(c,S,Z),S.label)),S["js-rule"])try{var B=ZC.execFn(S["js-rule"].replace("javascript:","").replace("()",""),window,r.id,c,S);B&&ZC._cp_(B,S)}catch(Ce){}c.style&&ZC._cp_(c.style,S);var T={decimals:null,short:!1,"thousands-separator":",","decimals-separator":"."};if(ZC._cp_(S,T),S.label&&S.label.text){for(E in S.label.text=S.label.text.replace(/%text/gi,c.text).replace(/%node-value/gi,zingchart.formatNumber(c["node-value"],T)).replace(/%value/gi,zingchart.formatNumber(c.value,T)),c)"data-"===E.substring(0,5)&&(S.label.text=S.label.text.replace(new RegExp("%"+E,"g"),c[E]));S.label.text=S.label.text.replace(new RegExp("%data-([a-zA-Z0-9]+)","g"),"")}if(S.tooltip&&S.tooltip.text){for(E in ZC._cp_(S.tooltip,T),S.tooltip.text=S.tooltip.text.replace(/%text/gi,c.text).replace(/%node-value/gi,zingchart.formatNumber(c["node-value"],T)).replace(/%value/gi,zingchart.formatNumber(c.value,T)),c)"data-"===E.substring(0,5)&&(S.tooltip.text=S.tooltip.text.replace(new RegExp("%"+E,"g"),c[E]));S.tooltip.text=S.tooltip.text.replace(new RegExp("%data-([a-zA-Z0-9]+)","g"),"")}re.push(S),L[c.id]=[],L[c.id][0]=ZC._i_(S.width||S.size||"0"),L[c.id][1]=ZC._i_(S.height||S.size2||S.size||"0"),L[c.id][2]=ZC._i_(S["offset-x"]||"0"),L[c.id][3]=ZC._i_(S["offset-y"]||"0"),X[c.id]={size:ZC._i_(S[ZC._[21]]),type:S.type}}for(d=0;d<ne.length;d++){o=e[ne[d][0]],c=e[ne[d][1]];var ee={};if(ZC._cp_(R.link,ee),ZC._cp_({id:"link_"+c.idx+"_"+o.idx,cls:"zctreeshape",type:"line",flat:!0},ee),ZC._cp_(u.link||{},ee),ZC._cp_(u["link[level-"+o.level+"]"],ee),ZC._cp_(u["link[container-"+o.container+"]"],ee),ZC._cp_(u["link[parent-"+o.id+"]"],ee),!(c.sibling&&(o=e[q[c.sibling]],ee.aspect="sibling",ZC._cp_(u["link[sibling]"],ee),o.fake&&c.fake||c.fake&&!c.children))){if(ee["js-rule"])try{var le=ZC.execFn(ee["js-rule"].replace("javascript:","").replace("()",""),window,r.id,c,o,ee);le&&ZC._cp_(le,ee)}catch(Ce){}u.links&&u.links[o.id+"_"+c.id]&&ZC._cp_(u.links[o.id+"_"+c.id],ee);var ce,oe,de=[],he=c.x,se=c.y;L[c.id]&&(he+=L[c.id][2],se+=L[c.id][3]);var ge=o.x,pe=o.y;L[o.id]&&(ge+=L[o.id][2],pe+=L[o.id][3]);var _e=!0,ue=n;switch(ee.aspect){case"sibling":de=[[he,se],[ge,pe]],_e=!0;break;case"side-before":case"side-after":"tree-down"===Z||"tree-up"===Z?(C||(ue=ZC._a_(pe-se)),de=[[he,se],[ge+("side-after"===ee.aspect?1:-1)*L[o.id][0]/3,se],[ge+("side-after"===ee.aspect?1:-1)*L[o.id][0]/3,pe+("tree-down"===Z?1:-1)*ue/j],[ge+("side-after"===ee.aspect?1:-1)*L[o.id][0]/3,pe+("tree-down"===Z?1:-1)*ue/j],[ge+("side-after"===ee.aspect?1:-1)*L[o.id][0]/3,pe]]):(C||(ue=ZC._a_(ge-he)),de=[[he,se],[he,pe+("side-after"===ee.aspect?-1:1)*L[o.id][1]/3],[ge+("tree-right"===Z?1:-1)*ue/j,pe+("side-after"===ee.aspect?-1:1)*L[o.id][1]/3],[ge+("tree-right"===Z?1:-1)*ue/j,pe+("side-after"===ee.aspect?-1:1)*L[o.id][1]/3],[ge,pe+("side-after"===ee.aspect?-1:1)*L[o.id][1]/3]]),_e=!0;break;case"side-between":de=[[he,se],[ge,se],[ge,pe]],_e=!0;break;case"arc":if(Y=ZC.AR.K8(ge,pe,he,se),de.push([ge,pe]),"tree-up"===Z||"tree-down"===Z)oe=pe-Y[1],de.push([ge,Y[1]+oe/j,Y[0],Y[1]]),de.push([he,Y[1]-oe/j,he,se]);else if("tree-left"===Z||"tree-right"===Z)ce=ge-Y[0],de.push([Y[0]+ce/j,pe,Y[0],Y[1]]),de.push([Y[0]-ce/j,se,he,se]);else if("tree-radial"===Z&&o.level>0){var fe=ZC.AR.BN(ie[c.container].x+ie[c.container].width/2,ie[c.container].y+ie[c.container].height/2,o.radius+(c.radius-o.radius)/5,o.angle),Ze=ZC.AR.BN(ie[c.container].x+ie[c.container].width/2,ie[c.container].y+ie[c.container].height/2,o.radius+4*(c.radius-o.radius)/5,c.angle);de.push([fe[0],fe[1],Y[0],Y[1]]),de.push([Ze[0],Ze[1],he,se])}de.push([he,se]),_e=!1;break;case"split":de.push([ge,pe]),"tree-up"===Z||"tree-down"===Z?(C||(ue=ZC._a_(pe-se)),de.push([ge,pe+ue/j*("tree-down"===Z?1:-1)]),de.push([he,pe+ue/j*("tree-down"===Z?1:-1)])):"tree-left"===Z||"tree-right"===Z?(C||(ue=ZC._a_(ge-he)),de.push([ge+ue/j*("tree-right"===Z?1:-1),pe]),de.push([ge+ue/j*("tree-right"===Z?1:-1),se])):"tree-radial"===Z&&(P=ZC.AR.BN(ie[c.container].x+ie[c.container].width/2,ie[c.container].y+ie[c.container].height/2,o.radius+(c.radius-o.radius)/2,o.angle),de.push([P[0],P[1]]),de.push([ie[c.container].x+ie[c.container].width/2,ie[c.container].y+ie[c.container].height/2,o.radius+(c.radius-o.radius)/2,o.angle,c.angle,o.angle>c.angle?1:0])),de.push([he,se]),_e=!1;break;case"line":de=[[he,se],[ge,pe]],_e=!0}ee.points=de,ee.visible=!0,_e?h(ee,L[c.id],X[c.id],L[o.id],X[o.id]):h(ee,L[o.id],X[o.id],L[c.id],X[c.id]),ae.push(ee)}}zingchart.exec(r.id,"removeobject",{type:"shape",cls:"zctreeshape"}),zingchart.exec(r.id,"addobject",{type:"shape",data:ae.concat(l(ae)).concat(re)})};if("graph"===Z){if(Ve(),!zingchart.plugins.tree[r.id].navSetup){var Ne=function(){pe=""};zingchart.bind(r.id,"shape_mousedown",function(e){if((ZC.mobile||0===e.ev.button)&&0===e.shape.id.indexOf("node_")){var t=ZC.Q.MT(e.ev),i=ZC.A4("#"+r.id+"-top").offset();_e=[t[0]-i.left,t[1]-i.top],zingchart.bind(r.id,ZC._[49],Ne),pe=e.shape.id.replace("node_","")}}),zingchart.bind(r.id,"shape_mouseup",Ne),zingchart.bind(r.id,ZC._[48],function(e){""!==pe?(ZC.mobile||e.ev.preventDefault(),_e=[e.x,e.y],we(!0),(_e[0]<10||_e[0]>a.I-10||_e[1]<10||_e[1]>a.F-10)&&Ne(e)):"none"===e.target&&(c.L9(),c.A7&&c.A.A7&&c.A7.AQ&&a.A7.onmouseout(e.ev))}),zingchart.bind(r.id,"beforedestroy",function(e){zingchart.plugins.tree[e.id]._render_graph_=null,zingchart.plugins.tree[e.id].navSetup=!1}),zingchart.plugins.tree[r.id].navSetup=!0}}else Ae(),D||zingchart.plugins.tree[r.id].navSetup||(zingchart.bind(r.id,"shape_click",function(e){0===e.shape.id.indexOf("node_")&&window.setTimeout(function(){!function(e){for(var t=zingchart.plugins.tree[r.id].data,i=F(e,!0),n=0;n<i.length;n++)0===n?t[i[n]].collapsed=!t[i[n]].collapsed:t[i[n]].visible=!t[i[n]].visible}(e["data-tree-index"]),Ae()},33)}),zingchart.plugins.tree[r.id].navSetup=!0)}};zingchart.bind(null,"gcomplete",function(e){a(e)}),zingchart.extendAPI("tree.addnode",function(e,t){if(zingchart.plugins.tree[e]&&t.data){var i=!0;null!==ZC._n_(t.update)&&(i=ZC._b_(t.update));var n=t.data;n.id=n.id||"N"+ZC._r_(1e4,99999),n.text=n.text||n.id,n.type="node",n[ZC._[9]]=n[ZC._[9]]||1,n.container=n.container||0,n.group=n.group||0,zingchart.plugins.tree[e].data.push(n),i&&(r(e),zingchart.plugins.tree[e]._render_graph_())}}),zingchart.extendAPI("tree.removenode",function(e,t){if(zingchart.plugins.tree[e]&&t.id){var i=!0;if(null!==ZC._n_(t.update)&&(i=ZC._b_(t.update)),!t.id)return;for(var n=zingchart.plugins.tree[e].data.length-1;n>=0;n--)"node"===zingchart.plugins.tree[e].data[n].type&&zingchart.plugins.tree[e].data[n].id===t.id?zingchart.plugins.tree[e].data.splice(n,1):("link"===zingchart.plugins.tree[e].data[n].type&&zingchart.plugins.tree[e].data[n].source===t.id||zingchart.plugins.tree[e].data[n].target===t.id)&&zingchart.plugins.tree[e].data.splice(n,1);i&&(r(e),zingchart.plugins.tree[e]._render_graph_())}}),zingchart.extendAPI("tree.getdata",function(e){return zingchart.plugins.tree[e]?zingchart.plugins.tree[e].data:null}),zingchart.extendAPI("tree.set",function(e,t){if(zingchart.plugins.tree[e]&&t.data){var i=!0;null!==ZC._n_(t.update)&&(i=ZC._b_(t.update));var n=t.data;null!==ZC._n_(n["attraction-constant"])&&(zingchart.plugins.tree[e].attractionConstant=ZC._f_(n["attraction-constant"])),null!==ZC._n_(n["repulsion-constant"])&&(zingchart.plugins.tree[e].repulsionConstant=ZC._i_(n["repulsion-constant"])),null!==ZC._n_(n["spring-length"])&&(zingchart.plugins.tree[e].springLength=ZC._f_(n["spring-length"])),i&&(r(e),zingchart.plugins.tree[e]._render_graph_())}return null}),zingchart.extendAPI("tree.addlink",function(e,t){if(zingchart.plugins.tree[e]&&t.data){var i=!0;null!==ZC._n_(t.update)&&(i=ZC._b_(t.update));var n=t.data;if(!n.source||!n.target)return;for(var a=0,l=0;l<zingchart.plugins.tree[e].data.length;l++)"node"===zingchart.plugins.tree[e].data[l].type&&(zingchart.plugins.tree[e].data[l].id!==n.source&&zingchart.plugins.tree[e].data[l].id!==n.target||a++);if(2!==a)return;n.type="link",n[ZC._[9]]=n[ZC._[9]]||1,zingchart.plugins.tree[e].data.push(n),i&&(r(e),zingchart.plugins.tree[e]._render_graph_())}}),zingchart.extendAPI("tree.removelink",function(e,t){if(zingchart.plugins.tree[e]&&t.data){var i=!0;null!==ZC._n_(t.update)&&(i=ZC._b_(t.update));var n=t.data;if(!n.source||!n.target)return;for(var a=zingchart.plugins.tree[e].data.length-1;a>=0;a--)(zingchart.plugins.tree[e].data[a].source===n.source&&zingchart.plugins.tree[e].data[a].target===n.target||zingchart.plugins.tree[e].data[a].source===n.target&&zingchart.plugins.tree[e].data[a].target===n.source)&&zingchart.plugins.tree[e].data.splice(a,1);i&&(r(e),zingchart.plugins.tree[e]._render_graph_())}})}function l(e){for(var t=[],i={},n=0;n<e.length;n++){var r=e[n],a=!0===r.visible;if(r["start-point"]||r["end-point"]){var l=d(r.points),h=l[0],s=l[1],g=l[2],p=l[3],_={specs:r["start-point"],id:r.id+"_startpoint",color:r["line-color"],lineWidth:r[ZC._[4]],tip:h,tail:s},u={specs:r["end-point"],id:r.id+"_endpoint",color:r["line-color"],lineWidth:r[ZC._[4]],tip:g,tail:p};r["start-point"]&&(!1===r.startSizeZero||r["start-point"]["allow-zero-nodes"])&&c(i,_),r["end-point"]&&(!1===r.endSizeZero||r["end-point"]["allow-zero-nodes"])&&c(i,u)}}for(var f in i)t.push(o(i[f],a));return t}function c(e,t){var i=t.tip[0].toString()+"_"+t.tip[1].toString()+"_"+t.tail[0].toString()+"_"+t.tail[1].toString();e[i]===undefined&&(e[i]=t)}function o(e,t){var i,n,r=[],a=(e.specs[ZC._[19]]||10)/2,l=e.specs.length||15;e.specs["allow-zero-nodes"];switch(e.specs.type){case"linearrow":n=!1,i=0;break;case"diamond":n=!0,l=(i=l)/2;break;case"triangle":n=!0,i=l;break;case"arrow":default:n=!0,i=.8*l}r.push([l,a]),r.push([0,0]),r.push([l,-a]),n&&(r.push([i,0]),r.push([l,a]));for(var c=Math.atan2(e.tail[1]-e.tip[1],e.tail[0]-e.tip[0]),o=Math.cos(-1*c),d=Math.sin(-1*c),h=0;h<r.length;h++){var s=r[h],g=o*s[0]+d*s[1],p=o*s[1]-d*s[0];s[0]=g+e.tip[0],s[1]=p+e.tip[1]}var _=e.specs[ZC._[61]]||e.color,u=e.specs[ZC._[0]]||e.color,f=e.specs[ZC._[62]]||e.lineWidth,Z={id:e.id,cls:"zctreeshape",flat:!0,points:r,visible:t};return n?(Z.type="poly",Z[ZC._[0]]=u,Z[ZC._[61]]=_,Z[ZC._[62]]=f):(Z.type="line",Z["line-color"]=_,Z[ZC._[4]]=f),Z}function d(e){var t=e.length;return[e[0],e[1],e[t-1],e[t-2]]}function h(e,t,i,n,r){var a=d(e.points);e.startSizeZero=!t||!_(a[0],a[1],p(t,i),i.type),e.endSizeZero=!n||!_(a[2],a[3],p(n,r),r.type)}function s(e,t,i){var n=d(e.points),r=g(t),a=g(i);e.startSizeZero=!_(n[0],n[1],[r.horzRadius,r.vertRadius],r.type),e.endSizeZero=!_(n[2],n[3],[a.horzRadius,a.vertRadius],a.type)}function g(e){var t,i;if(!e)return{horzRadius:10,vertRadius:10,type:"circle"};var n=e.type||"circle";switch(n){case"circle":case"square":t=ZC._i_(e.size),i=ZC._i_(e.size);break;case"rectangle":t=ZC._i_(e.width)/2,i=ZC._i_(e.height)/2;break;default:e[ZC._[21]]?(t=ZC._i_(e.size),i=ZC._i_(e.size)):(t=(ZC._i_(e[ZC._[19]])||0)/2,i=(ZC._i_(e[ZC._[20]])||0)/2)}return{horzRadius:t,vertRadius:i,type:n}}function p(e,t){var i,n;switch(t.type){case"circle":case"square":i=t.size,n=t.size;break;case"rectangle":i=e[0]/2,n=e[1]/2;break;default:t[ZC._[21]]?(i=t.size,n=t.size):(i=e[0]/2,n=e[1]/2)}return[i,n,e[2],e[3]]}function _(e,t,i,n){var r=i[0],a=i[1];i[2],i[3];if(e[1]==t[1]&&e[0]<=t[0])e[0]+=r;else if(e[1]==t[1]&&e[0]>t[0])e[0]-=r;else if(e[0]==t[0]&&e[1]<=t[1])e[1]+=a;else if(e[0]==t[0]&&e[1]>t[1])e[1]-=a;else switch(n){case"circle":var l=Math.atan2(t[1]-e[1],t[0]-e[0]);e[0]+=Math.cos(-1*l)*r,e[1]-=Math.sin(-1*l)*r;break;case"rectangle":default:var c,o=[e[0]-r,e[1]-a],d=[e[0]+r,e[1]-a],h=[e[0]-r,e[1]+a],s=[e[0]+r,e[1]+a];function g(e){return!isNaN(e[0])&&!isNaN(e[1])}g(c=u(o,d,e,t))?(e[0]=c[0],e[1]=c[1]):g(c=u(d,s,e,t))?(e[0]=c[0],e[1]=c[1]):g(c=u(s,h,e,t))?(e[0]=c[0],e[1]=c[1]):g(c=u(h,o,e,t))&&(e[0]=c[0],e[1]=c[1])}return 0!=r}function u(e,t,i,n){var r=ZC.AR.A67(e,t,i,n),a=[NaN,NaN];return isNaN(r[0])||isNaN(r[1])?a:r[0]>Math.max(e[0],t[0])||r[0]<Math.min(e[0],t[0])?a:r[1]>Math.max(e[1],t[1])||r[1]<Math.min(e[1],t[1])?a:n[0]>i[0]&&r[0]<i[0]?a:n[0]<i[0]&&r[0]>i[0]?a:n[1]>i[1]&&r[1]<i[1]?a:n[1]<i[1]&&r[1]>i[1]?a:r}}();