Created
November 16, 2016 18:52
-
-
Save jacekd/3075ba78a299b581e3a2c9baa4f57473 to your computer and use it in GitHub Desktop.
threats catalogue
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head lang="en"> | |
| <meta charset="UTF-8"> | |
| <title>threat catalogue</title> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.3.1/lodash.min.js"></script> | |
| <style> | |
| .link { | |
| stroke-width: 1px; | |
| stroke: #ddd; | |
| fill: none; | |
| } | |
| .text { | |
| font-family: "Lucida Grande", "Helvetica Nueue", Arial, sans-serif; | |
| font-size: 10px; | |
| } | |
| .hover { | |
| stroke: #2c3e50; | |
| } | |
| .root { | |
| visibility: hidden; | |
| } | |
| .chart { | |
| width: 100%; | |
| height: 100%; | |
| } | |
| div.tooltip { | |
| position: absolute; | |
| text-align: center; | |
| max-width: 160px; | |
| padding: 7px 10px; | |
| font: 12px sans-serif; | |
| color: white; | |
| background: #111; | |
| border: 0px; | |
| border-radius: 2px; | |
| pointer-events: none; | |
| margin-top: 2px; | |
| } | |
| div.tooltip:before { | |
| content: ''; | |
| position: absolute; | |
| top: 0%; | |
| left: 50%; | |
| margin-left: -8px; | |
| margin-top: -8px; | |
| width: 0; height: 0; | |
| border-bottom: 8px solid #111; | |
| border-right: 8px solid transparent; | |
| border-left: 8px solid transparent; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="chart"> | |
| </div> | |
| <script> | |
| var data = { | |
| "id": "root", | |
| "name": "threats", | |
| "children": [ | |
| { | |
| "id": "T1", | |
| "name": "T1", | |
| "children": [ | |
| { | |
| "id": "IA-1", | |
| "name": "IA-1" | |
| }, | |
| { | |
| "id": "IA-2", | |
| "name": "IA-2" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "IA-8", | |
| "name": "IA-8" | |
| }, | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T2", | |
| "name": "T2", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": "PE-2", | |
| "name": "PE-2" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T3", | |
| "name": "T3", | |
| "children": [ | |
| { | |
| "id": "IA-3", | |
| "name": "IA-3" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "PE-2", | |
| "name": "PE-2" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T4", | |
| "name": "T4", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T5", | |
| "name": "T5", | |
| "children": [ | |
| { | |
| "id": "AT-2", | |
| "name": "AT-2" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "CM-7", | |
| "name": "CM-7" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T6", | |
| "name": "T6", | |
| "children": [ | |
| { | |
| "id": "IA-1", | |
| "name": "IA-1" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T7", | |
| "name": "T7", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| }, | |
| { | |
| "id": "SC-23", | |
| "name": "SC-23" | |
| }, | |
| { | |
| "id": "AT-2", | |
| "name": "AT-2" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T8", | |
| "name": "T8", | |
| "children": [ | |
| { | |
| "id": "AC-1", | |
| "name": "AC-1" | |
| }, | |
| { | |
| "id": "AC-6", | |
| "name": "AC-6" | |
| }, | |
| { | |
| "id": "AC-8", | |
| "name": "AC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T9", | |
| "name": "T9", | |
| "children": [ | |
| { | |
| "id": "IA-1", | |
| "name": "IA-1" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T10", | |
| "name": "T10", | |
| "children": [ | |
| { | |
| "id": "IA-1", | |
| "name": "IA-1" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T11", | |
| "name": "T11", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": "AC-23", | |
| "name": "AC-23" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T12", | |
| "name": "T12", | |
| "children": [ | |
| { | |
| "id": "AC-7", | |
| "name": "AC-7" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T13", | |
| "name": "T13", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| }, | |
| { | |
| "id": "IA-11", | |
| "name": "IA-11" | |
| }, | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T14", | |
| "name": "T14", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": "AC-23", | |
| "name": "AC-23" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T15", | |
| "name": "T15", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "IA-9.SC-8", | |
| "name": "IA-9.SC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T16", | |
| "name": "T16", | |
| "children": [ | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T17", | |
| "name": "T17", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| }, | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T18", | |
| "name": "T18", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| }, | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T19", | |
| "name": "T19", | |
| "children": [ | |
| { | |
| "id": "IA-1", | |
| "name": "IA-1" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T20", | |
| "name": "T20", | |
| "children": [ | |
| { | |
| "id": "IA-1", | |
| "name": "IA-1" | |
| }, | |
| { | |
| "id": "AT-2", | |
| "name": "AT-2" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T21", | |
| "name": "T21", | |
| "children": [] | |
| }, | |
| { | |
| "id": "T22", | |
| "name": "T22", | |
| "children": [ | |
| { | |
| "id": "IA-2", | |
| "name": "IA-2" | |
| }, | |
| { | |
| "id": "IA-2(9)", | |
| "name": "IA-2(9)" | |
| }, | |
| { | |
| "id": "IA-2(13)", | |
| "name": "IA-2(13)" | |
| }, | |
| { | |
| "id": "AC-2", | |
| "name": "AC-2" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T23", | |
| "name": "T23", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "AC-10", | |
| "name": "AC-10" | |
| }, | |
| { | |
| "id": "SC-5", | |
| "name": "SC-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T24", | |
| "name": "T24", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| }, | |
| { | |
| "id": "AC-10", | |
| "name": "AC-10" | |
| }, | |
| { | |
| "id": "SC-5", | |
| "name": "SC-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T25", | |
| "name": "T25", | |
| "children": [ | |
| { | |
| "id": "IA-8", | |
| "name": "IA-8" | |
| }, | |
| { | |
| "id": "IA-8(4)", | |
| "name": "IA-8(4)" | |
| }, | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T26", | |
| "name": "T26", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T27", | |
| "name": "T27", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T28", | |
| "name": "T28", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T29", | |
| "name": "T29", | |
| "children": [ | |
| { | |
| "id": "AT-2", | |
| "name": "AT-2" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T30", | |
| "name": "T30", | |
| "children": [ | |
| { | |
| "id": "IA-8", | |
| "name": "IA-8" | |
| }, | |
| { | |
| "id": "IA-8(4)", | |
| "name": "IA-8(4)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T31", | |
| "name": "T31", | |
| "children": [ | |
| { | |
| "id": "AC-2", | |
| "name": "AC-2" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T32", | |
| "name": "T32", | |
| "children": [ | |
| { | |
| "id": "AC-2", | |
| "name": "AC-2" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T33", | |
| "name": "T33", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T34", | |
| "name": "T34", | |
| "children": [ | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": "AC-23", | |
| "name": "AC-23" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T35", | |
| "name": "T35", | |
| "children": [ | |
| { | |
| "id": "IA-2", | |
| "name": "IA-2" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "IA-8", | |
| "name": "IA-8" | |
| }, | |
| { | |
| "id": "AC-11", | |
| "name": "AC-11" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T36", | |
| "name": "T36", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T37", | |
| "name": "T37", | |
| "children": [ | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": "AC-23", | |
| "name": "AC-23" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T38", | |
| "name": "T38", | |
| "children": [ | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T39", | |
| "name": "T39", | |
| "children": [ | |
| { | |
| "id": "IA-9", | |
| "name": "IA-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T40", | |
| "name": "T40", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T41", | |
| "name": "T41", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T42", | |
| "name": "T42", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T43", | |
| "name": "T43", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T44", | |
| "name": "T44", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T45", | |
| "name": "T45", | |
| "children": [ | |
| { | |
| "id": "IA-1", | |
| "name": "IA-1" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T46", | |
| "name": "T46", | |
| "children": [ | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": "AC-23", | |
| "name": "AC-23" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T47", | |
| "name": "T47", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T48", | |
| "name": "T48", | |
| "children": [ | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": " AC-23", | |
| "name": " AC-23" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T49", | |
| "name": "T49", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T50", | |
| "name": "T50", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "IA-6", | |
| "name": "IA-6" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T51", | |
| "name": "T51", | |
| "children": [ | |
| { | |
| "id": "AC-7", | |
| "name": "AC-7" | |
| }, | |
| { | |
| "id": "AC-9", | |
| "name": "AC-9" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T52", | |
| "name": "T52", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T53", | |
| "name": "T53", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T54", | |
| "name": "T54", | |
| "children": [ | |
| { | |
| "id": "AC-2", | |
| "name": "AC-2" | |
| }, | |
| { | |
| "id": " AC-2(12)", | |
| "name": " AC-2(12)" | |
| }, | |
| { | |
| "id": "AC-3", | |
| "name": "AC-3" | |
| }, | |
| { | |
| "id": "AC-7", | |
| "name": "AC-7" | |
| }, | |
| { | |
| "id": "AC-9", | |
| "name": "AC-9" | |
| }, | |
| { | |
| "id": "AC-17", | |
| "name": "AC-17" | |
| }, | |
| { | |
| "id": "AC-23", | |
| "name": "AC-23" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T55", | |
| "name": "T55", | |
| "children": [ | |
| { | |
| "id": "CA-7", | |
| "name": "CA-7" | |
| }, | |
| { | |
| "id": "CA-8", | |
| "name": "CA-8" | |
| }, | |
| { | |
| "id": "RA-5", | |
| "name": "RA-5" | |
| }, | |
| { | |
| "id": "SA-12(5)", | |
| "name": "SA-12(5)" | |
| }, | |
| { | |
| "id": "SC-30(3)", | |
| "name": "SC-30(3)" | |
| }, | |
| { | |
| "id": "SI-14", | |
| "name": "SI-14" | |
| }, | |
| { | |
| "id": "AC-6(9)", | |
| "name": "AC-6(9)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T56", | |
| "name": "T56", | |
| "children": [ | |
| { | |
| "id": "IA-1", | |
| "name": "IA-1" | |
| }, | |
| { | |
| "id": "AC-1", | |
| "name": "AC-1" | |
| }, | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": "AC-23", | |
| "name": "AC-23" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T57", | |
| "name": "T57", | |
| "children": [ | |
| { | |
| "id": "SI-4", | |
| "name": "SI-4" | |
| }, | |
| { | |
| "id": "SI-10", | |
| "name": "SI-10" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T58", | |
| "name": "T58", | |
| "children": [ | |
| { | |
| "id": "SI-10", | |
| "name": "SI-10" | |
| }, | |
| { | |
| "id": "RA-5", | |
| "name": "RA-5" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T59", | |
| "name": "T59", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| }, | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| }, | |
| { | |
| "id": "IR-1", | |
| "name": "IR-1" | |
| }, | |
| { | |
| "id": "IR-4", | |
| "name": "IR-4" | |
| }, | |
| { | |
| "id": "IR-5", | |
| "name": "IR-5" | |
| }, | |
| { | |
| "id": "IR-6", | |
| "name": "IR-6" | |
| }, | |
| { | |
| "id": "IR-9", | |
| "name": "IR-9" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T60", | |
| "name": "T60", | |
| "children": [ | |
| { | |
| "id": "SC-5", | |
| "name": "SC-5" | |
| }, | |
| { | |
| "id": "SC-5(3)", | |
| "name": "SC-5(3)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T61", | |
| "name": "T61", | |
| "children": [ | |
| { | |
| "id": "SI-10", | |
| "name": "SI-10" | |
| }, | |
| { | |
| "id": "SI-15", | |
| "name": "SI-15" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T62", | |
| "name": "T62", | |
| "children": [ | |
| { | |
| "id": "AC-1", | |
| "name": "AC-1" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T63", | |
| "name": "T63", | |
| "children": [ | |
| { | |
| "id": "SC-23", | |
| "name": "SC-23" | |
| }, | |
| { | |
| "id": "IA-2(13)", | |
| "name": "IA-2(13)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T64", | |
| "name": "T64", | |
| "children": [ | |
| { | |
| "id": "AC-6", | |
| "name": "AC-6" | |
| }, | |
| { | |
| "id": "AC-6(1)", | |
| "name": "AC-6(1)" | |
| }, | |
| { | |
| "id": "AC-3", | |
| "name": "AC-3" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T65", | |
| "name": "T65", | |
| "children": [ | |
| { | |
| "id": "AC-6", | |
| "name": "AC-6" | |
| }, | |
| { | |
| "id": " AC-6(1)", | |
| "name": " AC-6(1)" | |
| }, | |
| { | |
| "id": "AC-3", | |
| "name": "AC-3" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T66", | |
| "name": "T66", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| }, | |
| { | |
| "id": "SC-23", | |
| "name": "SC-23" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T67", | |
| "name": "T67", | |
| "children": [ | |
| { | |
| "id": "AC-6", | |
| "name": "AC-6" | |
| }, | |
| { | |
| "id": "AC-6(1)", | |
| "name": "AC-6(1)" | |
| }, | |
| { | |
| "id": "AC-6(3)", | |
| "name": "AC-6(3)" | |
| }, | |
| { | |
| "id": "AC-6(5)", | |
| "name": "AC-6(5)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T68", | |
| "name": "T68", | |
| "children": [ | |
| { | |
| "id": "AC-4", | |
| "name": "AC-4" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T69", | |
| "name": "T69", | |
| "children": [ | |
| { | |
| "id": "IA-5", | |
| "name": "IA-5" | |
| }, | |
| { | |
| "id": " IA-5(1)", | |
| "name": " IA-5(1)" | |
| }, | |
| { | |
| "id": "IA-5(2)", | |
| "name": "IA-5(2)" | |
| }, | |
| { | |
| "id": "IA-5(4)", | |
| "name": "IA-5(4)" | |
| }, | |
| { | |
| "id": "IA-5(6)", | |
| "name": "IA-5(6)" | |
| }, | |
| { | |
| "id": "IA-5(7)", | |
| "name": "IA-5(7)" | |
| }, | |
| { | |
| "id": "IA-5(11)", | |
| "name": "IA-5(11)" | |
| }, | |
| { | |
| "id": "IA-5(12)", | |
| "name": "IA-5(12)" | |
| }, | |
| { | |
| "id": "IA-5(13)", | |
| "name": "IA-5(13)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T70", | |
| "name": "T70", | |
| "children": [ | |
| { | |
| "id": "SC-8", | |
| "name": "SC-8" | |
| }, | |
| { | |
| "id": "SC-28", | |
| "name": "SC-28" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T71", | |
| "name": "T71", | |
| "children": [ | |
| { | |
| "id": "SC-4", | |
| "name": "SC-4" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T72", | |
| "name": "T72", | |
| "children": [ | |
| { | |
| "id": "SC-4", | |
| "name": "SC-4" | |
| }, | |
| { | |
| "id": "MP-6", | |
| "name": "MP-6" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T73", | |
| "name": "T73", | |
| "children": [ | |
| { | |
| "id": "SC-4", | |
| "name": "SC-4" | |
| }, | |
| { | |
| "id": "SI-16", | |
| "name": "SI-16" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T74", | |
| "name": "T74", | |
| "children": [ | |
| { | |
| "id": "AC-4", | |
| "name": "AC-4" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T75", | |
| "name": "T75", | |
| "children": [ | |
| { | |
| "id": "SA-10(1)", | |
| "name": "SA-10(1)" | |
| }, | |
| { | |
| "id": "SA-10(3)", | |
| "name": "SA-10(3)" | |
| }, | |
| { | |
| "id": "SA-10(4)", | |
| "name": "SA-10(4)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T76", | |
| "name": "T76", | |
| "children": [ | |
| { | |
| "id": "SA-10(1)", | |
| "name": "SA-10(1)" | |
| }, | |
| { | |
| "id": "SA-10(3)", | |
| "name": "SA-10(3)" | |
| }, | |
| { | |
| "id": "SA-10(4)", | |
| "name": "SA-10(4)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T77", | |
| "name": "T77", | |
| "children": [ | |
| { | |
| "id": "SC-5", | |
| "name": "SC-5" | |
| }, | |
| { | |
| "id": "SC-5(3)", | |
| "name": "SC-5(3)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T78", | |
| "name": "T78", | |
| "children": [ | |
| { | |
| "id": "SC-5", | |
| "name": "SC-5" | |
| }, | |
| { | |
| "id": "SC-5(3)", | |
| "name": "SC-5(3)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T79", | |
| "name": "T79", | |
| "children": [ | |
| { | |
| "id": "SC-5", | |
| "name": "SC-5" | |
| }, | |
| { | |
| "id": "SC-5(3)", | |
| "name": "SC-5(3)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T80", | |
| "name": "T80", | |
| "children": [ | |
| { | |
| "id": "CP-9", | |
| "name": "CP-9" | |
| }, | |
| { | |
| "id": "CP-9(5)", | |
| "name": "CP-9(5)" | |
| }, | |
| { | |
| "id": "CP-9(6)", | |
| "name": "CP-9(6)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T81", | |
| "name": "T81", | |
| "children": [ | |
| { | |
| "id": "IA-3", | |
| "name": "IA-3" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T82", | |
| "name": "T82", | |
| "children": [ | |
| { | |
| "id": "SC-5", | |
| "name": "SC-5" | |
| }, | |
| { | |
| "id": "SC-5(3)", | |
| "name": "SC-5(3)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T83", | |
| "name": "T83", | |
| "children": [ | |
| { | |
| "id": "PE-9", | |
| "name": "PE-9" | |
| }, | |
| { | |
| "id": " PE-9(1)", | |
| "name": " PE-9(1)" | |
| }, | |
| { | |
| "id": "PE-9(2)", | |
| "name": "PE-9(2)" | |
| }, | |
| { | |
| "id": "PE-11", | |
| "name": "PE-11" | |
| }, | |
| { | |
| "id": "CP-2(6)", | |
| "name": "CP-2(6)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T84", | |
| "name": "T84", | |
| "children": [ | |
| { | |
| "id": "CP-8", | |
| "name": "CP-8" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T85", | |
| "name": "T85", | |
| "children": [ | |
| { | |
| "id": "PE-3", | |
| "name": "PE-3" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T86", | |
| "name": "T86", | |
| "children": [ | |
| { | |
| "id": "MP-6", | |
| "name": "MP-6" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T87", | |
| "name": "T87", | |
| "children": [ | |
| { | |
| "id": "PE-2", | |
| "name": "PE-2" | |
| }, | |
| { | |
| "id": "PE-3", | |
| "name": "PE-3" | |
| }, | |
| { | |
| "id": "CP-6", | |
| "name": "CP-6" | |
| }, | |
| { | |
| "id": "CP-9(6)", | |
| "name": "CP-9(6)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T88", | |
| "name": "T88", | |
| "children": [ | |
| { | |
| "id": "SA-18", | |
| "name": "SA-18" | |
| }, | |
| { | |
| "id": "SA-19", | |
| "name": "SA-19" | |
| }, | |
| { | |
| "id": "SI-3", | |
| "name": "SI-3" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T89", | |
| "name": "T89", | |
| "children": [ | |
| { | |
| "id": "RA-5", | |
| "name": "RA-5" | |
| }, | |
| { | |
| "id": "RA-5(1)", | |
| "name": "RA-5(1)" | |
| }, | |
| { | |
| "id": "RA-5(2)", | |
| "name": "RA-5(2)" | |
| }, | |
| { | |
| "id": "RA-5(3)", | |
| "name": "RA-5(3)" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T90", | |
| "name": "T90", | |
| "children": [ | |
| { | |
| "id": "SA-13", | |
| "name": "SA-13" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T91", | |
| "name": "T91", | |
| "children": [ | |
| { | |
| "id": "SI-16", | |
| "name": "SI-16" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T92", | |
| "name": "T92", | |
| "children": [ | |
| { | |
| "id": "SI-10", | |
| "name": "SI-10" | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "T93", | |
| "name": "T93", | |
| "children": [ | |
| { | |
| "id": "SC-23", | |
| "name": "SC-23" | |
| } | |
| ] | |
| } | |
| ] | |
| }; | |
| var graph = { | |
| width: 1600, | |
| height: 3000 | |
| }; | |
| d3.selection.prototype.moveToFront = function() { | |
| return this.each(function(){ | |
| this.parentNode.appendChild(this); | |
| }); | |
| }; | |
| var svg = d3.select('.chart').append('svg:svg') | |
| .attr("width", graph.width) | |
| .attr("height", graph.height) | |
| .append('svg:g') | |
| .attr('transform', 'translate(-' + graph.width * 0.1 + ', 0)') | |
| function elbow(d, i) { | |
| return "M" + d.source.y + "," + d.source.x + "H" + d.target.y | |
| + "V" + d.target.x + "H" + d.target.y | |
| } | |
| var diagonal = d3.svg.diagonal() | |
| .projection(function(d) | |
| { | |
| return [d.y, d.x]; | |
| }); | |
| var tree = d3.layout.tree() | |
| .size([graph.height,graph.width]); | |
| var nodes = tree.nodes(data); | |
| nodes = _.uniq(nodes, 'id'); | |
| _.each(nodes, function (o , i) { | |
| var itemsOfTheSameDepth = _.where(nodes, {depth: o.depth}); | |
| var indexOfCurrent = _.indexOf(itemsOfTheSameDepth, o); | |
| var interval = graph.height / itemsOfTheSameDepth.length; | |
| nodes[i].x = interval / 2 + (interval * indexOfCurrent); | |
| }); | |
| //tooltip | |
| var tooltip = d3.select("body").append("div") | |
| .attr("class", "tooltip") | |
| .style("opacity", 0); | |
| var links = tree.links(nodes); | |
| _.each(links, function (o, i) { | |
| links[i].target = _.find(nodes, {id: o.target.id}); | |
| }); | |
| var link = svg.selectAll("path") | |
| .data(links) | |
| .enter().append("svg:path") | |
| .attr('class', function (d) { | |
| return (!!d.source) ? d.source.id : "root"; | |
| }) | |
| .classed('link', true) | |
| .attr('d', diagonal); | |
| var node = svg.selectAll('g.node') | |
| .data(nodes) | |
| .enter().append("svg:g") | |
| .attr("transform", function (d) { | |
| return "translate(" + d.y + "," + d.x + ")"; | |
| }) | |
| .on('mouseup', function (d) { | |
| // remove all the colour paths | |
| d3.selectAll('path.link').classed('hover', false); | |
| // draw new colour paths | |
| d3.selectAll("." + d.id) | |
| .classed("hover", true) | |
| .moveToFront(); | |
| _.pluck(d.children, 'id').forEach(function (id) { | |
| d3.selectAll('.' + id) | |
| .classed('hover', true) | |
| .moveToFront(); | |
| }); | |
| }) | |
| .on('mouseover', function (d) { | |
| if (!!d.description) { | |
| tooltip.transition() | |
| .duration(200) | |
| .style('opacity',.9); | |
| tooltip.html(d.description) | |
| .style('left', (d3.event.pageX) + 'px') | |
| .style('top', ((d3.event.pageY) + 8) + "px") | |
| } | |
| }) | |
| .on('mouseout', function (d) { | |
| tooltip.transition() | |
| .duration(500) | |
| .style('opacity', 0); | |
| }); | |
| var colors = d3.scale.category20(); | |
| node.append("svg:circle") | |
| .attr("r", 4) | |
| .attr('fill', function (d, i) { | |
| return colors(d.id.split('-')[0]); | |
| }) | |
| .attr('stroke', "#333333") | |
| .attr('stroke-width', '1.5px'); | |
| node.append("svg:text") | |
| .attr("dx", function (d) { | |
| return d.children ? -8: 8; | |
| }) | |
| .attr("dy", 3) | |
| .classed("text", true) | |
| .attr("text-anchor", function (d) { | |
| return d.children ? "end" : "start"; | |
| }) | |
| .text(function (d) { | |
| return d.name; | |
| }); | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment