UNPKG

whitesource

Version:
2 lines 3.09 kB
/** UI-Router Extras v.0.0.14 Module: statevis http://christopherthielen.github.io/ui-router-extras/ - MIT License */ !function(t,e){"use strict";!function(){function e(e,n,r){return{scope:{width:"@",height:"@"},restrict:"AE",template:"<svg></svg>",link:function(n,a,i){function c(e){e=e.map(function(e){return""===e.name?f:t.copy(e)}),t.extend(o,e.reduce(function(t,e){return t[e.name]=e,t},{})),e.forEach(function(t){var e=t.name.split(/\./).slice(0,-1).join("."),n=t.name!=e&&o[e];n&&((n.children||(n.children=[])).push(t),t.px=n.px,t.py=n.py,d.push(t))})}function u(){function t(t){var e=t.name.split(".").pop();return t.sticky&&(e+=" (STICKY)"),t.deepStateRedirect&&(e+=" (DSR)"),e}h=h.data(p.nodes(f),function(t){return t.name}),m=m.data(p.links(d),function(t){return t.target.name}),g=g.data(x),d.forEach(function(t){t.y=70*t.depth});var e=h.enter();g.enter().append("circle").attr("class","active").attr("r",13).attr("cx",function(t){return t.parent.px||100}).attr("cy",function(t){return t.parent.py||100}),e.append("circle").attr("class","node").attr("r",9).attr("cx",function(t){return t.parent.px}).attr("cy",function(t){return t.parent.py}),e.append("text").attr("class","label").attr("x",function(t){return t.parent.px}).attr("y",function(t){return t.parent.py}).attr("text-anchor",function(t){return"middle"}).text(t).style("fill-opacity",1),m.enter().insert("path",".node").attr("class","link").attr("d",function(t){var e={x:t.source.px,y:t.source.py};return y({source:e,target:e})});var n=v.transition().duration(k);n.selectAll(".link").attr("d",y);var r={entered:"#AF0",exited:"#777",active:"#0f0",inactive:"#55F",future:"#009"};n.selectAll(".node").attr("cx",function(t){return t.px=t.x}).attr("cy",function(t){return t.py=t.y}).attr("r",function(t){return"active"===t.status?15:10}).style("fill",function(t){return r[t.status]||"#FFF"}),n.selectAll(".label").attr("x",function(t){return t.px=t.x}).attr("y",function(t){return t.py=t.y-15}).attr("transform",function(t){return"rotate(-25 "+t.x+" "+t.y+")"}),n.selectAll(".active").attr("x",function(t){return t.px=t.x}).attr("y",function(t){return t.py=t.y-15})}var o={},s=n.width||400,l=n.height||400,p=d3.layout.tree().size([s-20,l-20]).separation(function(t,e){return t.parent==e.parent?10:25}),f=e.get().filter(function(t){return""===t.name})[0],d=p(f);f.parent=f,f.px=f.x=s/2,f.py=f.y=l/2;var x={};x.px=x.x=f.px,x.py=x.y=f.py;{var y=d3.svg.diagonal(),v=d3.select(a.find("svg")[0]).attr("width",s).attr("height",l).append("g").attr("transform","translate(10, 10)"),h=v.selectAll(".node"),m=v.selectAll(".link"),g=v.selectAll(".active"),A=200,k=200;setInterval(u,A)}r(function(){n.states=e.get(),t.forEach(d,function(t){var n=e.get(t.name);n&&(t.status=n.status||"exited")})},250),n.$watchCollection("states",function(t,e){var n=(e||[]).map(function(t){return t.name});c((t||[]).filter(function(t){return-1==n.indexOf(t.name)}))}),u(A)}}}var n=t.module("ct.ui.router.extras.statevis",["ct.ui.router.extras.core","ct.ui.router.extras.sticky"]);n.directive("stateVis",["$state","$timeout","$interval",e])}()}(angular);