OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
showcase
/
js
/
D3
/
plugins
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
π
..
-
08/14/2022 11:05:22 AM
rwxr-xr-x
π
Radar.js
8.86 KB
08/14/2022 11:05:21 AM
rw-r--r--
π
bar.js
17.59 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
bullet.css
422 bytes
08/14/2022 11:05:19 AM
rw-r--r--
π
bullet.js
10.65 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
calendar.js
16.63 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
calender.css
541 bytes
08/14/2022 11:05:20 AM
rw-r--r--
π
combo.js
16.74 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
combo_2.js
17.91 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
combo_wip.js
16.61 KB
08/14/2022 11:05:18 AM
rw-r--r--
π
commonFunc.js
25.28 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
customChart.js
577 bytes
08/14/2022 11:05:20 AM
rw-r--r--
π
d3Charts.css
2.88 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
donut.js
5.67 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
filledAreaPercent.js
17.95 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
funnel.js
6.03 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
funnel.js_previous_o4aug17
5.86 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
gauged.js
15.3 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
groupbar.js
13.18 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
groupbar_23Aug2019.js
10.85 KB
08/14/2022 11:05:18 AM
rw-r--r--
π
heatmap.js
9.77 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
html2canvas.min.js
161.47 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
makeJson.js
1.64 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
makeJsonmulti.js
3.75 KB
08/14/2022 11:05:18 AM
rw-r--r--
π
multiLine.js
17.24 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
multipleDonut.js
5.29 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
pie.js
4.52 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
radar.js
6.49 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
saveSvgAsPng.js
14.62 KB
08/14/2022 11:05:21 AM
rw-r--r--
π
stackedAreaDate.js
17.56 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
stackedAreaDate_bkup23Nov2020.js
17.56 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
stackedbar.js
10.72 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
stackedbar_bkup21Apr2020.js
10.72 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
stock.js
13.6 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
sun.js
7.59 KB
08/14/2022 11:05:20 AM
rw-r--r--
π
sunburst.js
7.13 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
tableChart.js
11.54 KB
08/14/2022 11:05:21 AM
rw-r--r--
π
tableChart_07Jan2020.js
6.7 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
tree.js
7.34 KB
08/14/2022 11:05:19 AM
rw-r--r--
π
waterfall.js
9.17 KB
08/14/2022 11:05:21 AM
rw-r--r--
π
zoomTree.js
7.59 KB
08/14/2022 11:05:19 AM
rw-r--r--
Editing: tree.js
Close
function drawTreeChart(Data, divId, Title, Width, Height, Ndim, Nmeas, MeasFormats, Dimensions, Measures, dispObj, gid){ var w, h, Width=Width-30, measNum = 1, diagonal = d3.svg.diagonal() .projection(function(d) { return [d.y, d.x]; }); d3.select("#"+divId).html('<div class="myChart"><div class="svgLegend"></div><div class="tipsy"><div class="tipsy-arrow"></div><div class="tipsy-inner"></div></div></div>'); d3.selectAll(".tipsy").style("display", "none"); var json=makeJsonFromArrayNew(Data, Ndim, Nmeas, MeasFormats[0], dispObj); json.x0 = 800; json.y0 = 0; resolveComputeMeasure(json, dispObj.RD.General.Measures); var svg = findSvgArea(Nmeas,dispObj,json, Width, Height, divId), vis = svg[0].attr("transform", "translate(60,0)"); h = svg[2]-20; w = svg[3]-30; var k = new Array(Nmeas); for(var i=0;i<k.length;i++) k[i]=0; k[measNum-1]=1; var curNode = json, cnc = json.children; var tree = d3.layout.tree().size([h, w-w/3]); //if(curNode.children.length> h/20) // curNode.children = curNode.children.slice(0,Math.floor(h/20)); update(divId, json, tree, json, vis, diagonal, measNum, MeasFormats,dispObj); for(var i=0;i<json["children"].length;i++){ d=json["children"][i]; collapse(d); } update(divId, json, tree, json, vis, diagonal, measNum, MeasFormats,dispObj); if(dispObj.getShowLegend()) makeLegend(svg,Nmeas,measNum,clickTreeRect,0,json,0,0, dispObj); function clickTreeRect(measNum){ svg[1].selectAll("rect").attr("fill-opacity",0.3);//others dimmed vis.selectAll("g").remove(); update(divId, curNode, tree, curNode, vis, diagonal, measNum, MeasFormats,dispObj); } } function collapse(d){ if (d.children) { for(var i=0;i<d.children.length;i++){ collapse(d.children[i]); } d._children = d.children; d.children = null; } } function update(divId, source, tree, root, vis, diagonal, n, MeasFormats,dispObj) { var i=0, duration = 500; var nodes = tree.nodes(root).reverse(); var node = vis.selectAll("g.node") .data(nodes, function(d) { return d.id || (d.id = ++i); }); var nodeEnter = node.enter().append("svg:g") .attr("class", "node") .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }); nodeEnter.append("svg:circle") .attr("r", function(d) { return parseFloat(d.percentOfTotal[n-1])<1?1:parseFloat(d.percentOfTotal[n-1])/2; }) .style("fill", function(d) { return (d.children || d._children) ? dispObj.colorArr[n-1] : "#fff"; }) .style("stroke", dispObj.colorArr[n-1]) .style("stop-color", "#005C99" ) .style("stop-opacity", "1" ) .on("click", function(d){ this.nextSibling.style.fill=d._children? "black" : "black"; click(divId, d,tree, root, vis, diagonal, n, MeasFormats,dispObj); var dd=d.children ? d : d.parent ? d.parent : d; updateLegend(divId, dd, dispObj); }) .on("mouseover", function(d,i){ showToolTips(divId, d, n, MeasFormats,dispObj)}) .on("mouseout", function(d,i){hideToolTip(divId, d, i); }) nodeEnter.append("svg:text") .attr("x", function(d) { return d._children ? -8 : 8; }) .attr("y", 2) .attr("x", 15) .on("click", function(d){ this.style.fill=d._children? "black" : "black"; click(divId, d,tree, root, vis, diagonal, n, MeasFormats,dispObj); var dd=d.children ? d : d.parent ? d.parent : d; updateLegend(divId, dd,dispObj); }) .text(function(d) { return d.name.replace("&", "&")+" ("+d.percent[n-1]+")"; }) .append("title").text(function(d) { return d.name;}) // Transition nodes to their new position. nodeEnter.transition() .duration(duration) .attr("transform", function(d) {return "translate(" + d.y + "," + d.x + ")"; }) .select("circle") .style("stroke", dispObj.colorArr[n-1]) .style("stroke-width", "5" ) .style("stroke-opacity", "0.4" ) .style("fill", function(d) { return (d.children || d._children) ? dispObj.colorArr[n-1] : "#fff"; }); node.transition() .duration(duration) .attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; }) .style("opacity", 1); node.exit().transition() .duration(duration) .attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; }) .style("opacity", 1e-6) .remove(); // Update the links⦠var link = vis.selectAll("path.link") .style("stroke", dispObj.colorArr[n-1]) .data(tree.links(nodes), function(d) { return d.target.id; }); // Enter any new links at the parent's previous position. link.enter().insert("svg:path", "g") .attr("class", "link") .style("stroke", dispObj.colorArr[n-1]) .attr("d", function(d) { var o = {x: source.x0, y: source.y0}; return diagonal({source: o, target: o}); }) .transition() .duration(duration) .attr("d", diagonal); // Transition links to their new position. link.transition() .duration(duration) .attr("d", diagonal); // Transition exiting nodes to the parent's new position. link.exit().transition() .duration(duration) .attr("d", function(d) { var o = {x: source.x, y: source.y}; return diagonal({source: o, target: o}); }) .remove(); // Stash the old positions for transition. nodes.forEach(function(d) { d.x0 = d.x; d.y0 = d.y; }); function updateLegend(divId, d, dispObj){ d3.select("#"+divId).select(".myChart").select(".svgLegend").selectAll("#trail").remove(); var trail = d3.select("#"+divId).select(".myChart").select(".svgLegend").append("svg:svg") .attr("id", "trail"); var b = { w: 0, h: 17, s: 3, t: 10, wd:0 }; var w = new Array(); w[-1]=0; var t=0; function breadcrumbPoints(d,i) { var points = []; w[i] = d.name.length*6+15; t = t+w[i]; b.w = b.w + d.name.length+15; points.push(t-w[i]+b.t*i+",0"); points.push(t+b.t*i + ",0"); points.push(b.t*(i+1)+t + "," + (b.h / 2)); points.push(t+b.t*i + "," + b.h); points.push(b.t*i + (i ? t-w[i] : 0) +"," + b.h); if (i > 0) { // Leftmost breadcrumb; dont include 6th vertex. points.push(b.t +b.t*i + (i ? t-w[i] : 0)+ "," + (b.h / 2)); } return points.join(" "); } var i =0,g; dispIfParent(d); function dispIfParent (d){ if(d.parent) { dispIfParent(d.parent); } g = trail.append("svg:g") g.append("svg:polygon") .on("click",function(){ trail.selectAll("g").remove(); click(divId, d,tree, root, vis, diagonal, n, MeasFormats, dispObj); updateLegend(divId, d, dispObj); }) .attr("points", function(){return breadcrumbPoints(d,i);}) .style("fill",dispObj.colorArr[i]); g.append("svg:text") .text(d.name) .attr("x",t-w[i]/2+b.t*i ) .attr("y",b.h/2) .style("text-anchor","middle") .attr("dy","0.4em") .attr("dx","0.7em") .style("fill","white") .attr("class", "leg-text") .on("click",function(){ trail.selectAll("g").remove(); click(divId, d,tree, root, vis, diagonal, n, MeasFormats, dispObj); updateLegend(divId, d, dispObj); }); i++; } if(d==root) trail.selectAll("g").remove(); } } // Toggle children on click. function click(divId, d, tree, root, vis, diagonal, n, MeasFormats,dispObj) { if (d.children) { d._children = d.children; d.children = null; } else { d.children = d._children; d._children = null; } update(divId, d, tree, root, vis, diagonal, n, MeasFormats,dispObj); }