JSFiddle - React, Tailwind, and code Playground
by YOUNY zhu
CSS
.node {
font: 300 11px "Helvetica Neue", Helvetica, Arial, sans-serif;
fill: #bbb;
}
.node:hover {
fill: #000;
}
.link {
stroke: steelblue;
stroke-opacity: .4;
fill: none;
pointer-events: none;
}
.node:hover,
.node--source,
.node--target,
.node--both {
font-weight: 700;
}
.node--source {
fill: #2ca02c;
}
.node--target {
fill: #d62728;
}
.node--both {
fill: orange;
}
.link--source,
.link--target,
.link--both {
stroke-opacity: 1;
stroke-width: 2px;
}
.link--source {
stroke: #d62728;
}
.link--target {
stroke: #2ca02c;
}
.link--both {
stroke: orange;
}
JavaScript
var classes=[
{
"name":"Operations.Assess",
"imports":["Operations.CRM.Customer QoS Mgmt.Create QoS Degradation Report"]
},
{
"name":"Operations.CRM.Customer QoS Mgmt.Create QoS Degradation Report",
"imports":["Operations.Assess"]
},
{
"name":"Operations.CRM.Customer QoS Mgmt.Manage QoS Violation",
"imports":["Operations.CRM.Customer QoS Mgmt.Create QoS Degradation Report"]
},
{
"name":"Operations.CRM.Customer QoS Mgmt.Manage QoS Resolution",
"imports":["Operations.CRM.Customer QoS Mgmt.Create QoS Degradation Report"]
},
{
"name":"Operations.CRM.Customer QoS Mgmt.Report QoS Performance",
"imports":["Operations.Assess","Operations.CRM.Customer QoS Mgmt.Create QoS Degradation Report","Operations.CRM.Customer QoS Mgmt.Manage QoS Violation","Operations.CRM.Customer QoS Mgmt.Manage QoS Resolution","Operations.CRM.Customer QoS Mgmt.Close Customer Degradation Report"]
},
{
"name":"Operations.CRM.Customer QoS Mgmt.Close Customer Degradation Report",
"imports":["Operations.CRM.Customer QoS Mgmt.Manage QoS Resolution"]
},
{
"name":"Operations.SRM.Trouble Mgmt.Trouble Keeping",
"imports":["Operations.CRM.Customer QoS Mgmt.Manage QoS Resolution"]
}
];
var diameter = 960,
radius = diameter / 2,
innerRadius = radius - 200;
var cluster = d3.layout.cluster()
.size([360, innerRadius])
.sort(null)
.value(function(d) { return d.size; });
var bundle = d3.layout.bundle();
var line = d3.svg.line.radial()
.interpolate("bundle")
.tension(.85)
.radius(function(d) { return d.y; })
.angle(function(d) { return d.x / 180 * Math.PI; });
var svg = d3.select("body").append("svg")
.attr("width", diameter)
.attr("height", diameter)
.append("g")
.attr("transform", "translate(" + radius + "," + radius + ")");
var link = svg.append("g").selectAll(".link"),
node = svg.append("g").selectAll(".node");
//d3.json("hebtesting.json", function(error, classes) {
...