From 991519babdaaf0a15cf773373f6b311fbe87877e Mon Sep 17 00:00:00 2001 From: Katja <bax5612@studium.uni-hamburg.de> Date: Fri, 3 Dec 2021 14:20:00 +0100 Subject: [PATCH] save, self-cit, legend --- Output/bob/files.html | 216 ----- Output/bob/index.html | 210 ----- Output/bob/symbols/_global_.html | 1283 ----------------------------- Output/bob/symbols/src/cn.js.html | 297 ------- Output/cn_26_11_1.js | 479 +++++++++++ Output/index.html | 14 +- Output/json_text.json | 28 +- README.md | 3 - data.json | 23 - json_text.json | 123 --- 10 files changed, 503 insertions(+), 2173 deletions(-) delete mode 100644 Output/bob/files.html delete mode 100644 Output/bob/index.html delete mode 100644 Output/bob/symbols/_global_.html delete mode 100644 Output/bob/symbols/src/cn.js.html create mode 100644 Output/cn_26_11_1.js delete mode 100644 README.md delete mode 100644 data.json delete mode 100644 json_text.json diff --git a/Output/bob/files.html b/Output/bob/files.html deleted file mode 100644 index 4be3f10..0000000 --- a/Output/bob/files.html +++ /dev/null @@ -1,216 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> - <head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - - <title>JsDoc Reference - File Index</title> - <meta name="generator" content="JsDoc Toolkit" /> - - <style type="text/css"> - /* default.css */ -body -{ - font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif; - width: 800px; -} - -.header -{ - clear: both; - background-color: #ccc; - padding: 8px; -} - -h1 -{ - font-size: 150%; - font-weight: bold; - padding: 0; - margin: 1em 0 0 .3em; -} - -hr -{ - border: none 0; - border-top: 1px solid #7F8FB1; - height: 1px; -} - -pre.code -{ - display: block; - padding: 8px; - border: 1px dashed #ccc; -} - -#index -{ - margin-top: 24px; - float: left; - width: 160px; - position: absolute; - left: 8px; - background-color: #F3F3F3; - padding: 8px; -} - -#content -{ - margin-left: 190px; - width: 600px; -} - -.classList -{ - list-style-type: none; - padding: 0; - margin: 0 0 0 8px; - font-family: arial, sans-serif; - font-size: 1em; - overflow: auto; -} - -.classList li -{ - padding: 0; - margin: 0 0 8px 0; -} - -.summaryTable { width: 100%; } - -h1.classTitle -{ - font-size:170%; - line-height:130%; -} - -h2 { font-size: 110%; } -caption, div.sectionTitle -{ - background-color: #7F8FB1; - color: #fff; - font-size:130%; - text-align: left; - padding: 2px 6px 2px 6px; - border: 1px #7F8FB1 solid; -} - -div.sectionTitle { margin-bottom: 8px; } -.summaryTable thead { display: none; } - -.summaryTable td -{ - vertical-align: top; - padding: 4px; - border-bottom: 1px #7F8FB1 solid; - border-right: 1px #7F8FB1 solid; -} - -/*col#summaryAttributes {}*/ -.summaryTable td.attributes -{ - border-left: 1px #7F8FB1 solid; - width: 140px; - text-align: right; -} - -td.attributes, .fixedFont -{ - line-height: 15px; - color: #002EBE; - font-family: "Courier New",Courier,monospace; - font-size: 13px; -} - -.summaryTable td.nameDescription -{ - text-align: left; - font-size: 13px; - line-height: 15px; -} - -.summaryTable td.nameDescription, .description -{ - line-height: 15px; - padding: 4px; - padding-left: 4px; -} - -.summaryTable { margin-bottom: 8px; } - -ul.inheritsList -{ - list-style: square; - margin-left: 20px; - padding-left: 0; -} - -.detailList { - margin-left: 20px; - line-height: 15px; -} -.detailList dt { margin-left: 20px; } - -.detailList .heading -{ - font-weight: bold; - padding-bottom: 6px; - margin-left: 0; -} - -.light, td.attributes, .light a:link, .light a:visited -{ - color: #777; - font-style: italic; -} - -.fineprint -{ - text-align: right; - font-size: 10px; -} - </style> - </head> - - <body> - <div id="header"> -</div> - - <div id="index"> - <div align="center"><a href="index.html">Class Index</a> -| <a href="files.html">File Index</a></div> -<hr /> -<h2>Classes</h2> -<ul class="classList"> - - <li><i><a href="symbols/_global_.html">_global_</a></i></li> - -</ul> -<hr /> - </div> - - <div id="content"> - <h1 class="classTitle">File Index</h1> - - - <div> - <h2><a href="symbols/src/cn.js.html">cn.js</a></h2> - - <dl> - - - - - </dl> - </div> - <hr /> - - - </div> - <div class="fineprint" style="clear:both"> - - Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Tue Nov 23 2021 23:46:32 GMT+0100 (MEZ) - </div> - </body> -</html> \ No newline at end of file diff --git a/Output/bob/index.html b/Output/bob/index.html deleted file mode 100644 index 1dcd212..0000000 --- a/Output/bob/index.html +++ /dev/null @@ -1,210 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> - <head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - - <title>JsDoc Reference - Index</title> - <meta name="generator" content="JsDoc Toolkit" /> - - <style type="text/css"> - /* default.css */ -body -{ - font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif; - width: 800px; -} - -.header -{ - clear: both; - background-color: #ccc; - padding: 8px; -} - -h1 -{ - font-size: 150%; - font-weight: bold; - padding: 0; - margin: 1em 0 0 .3em; -} - -hr -{ - border: none 0; - border-top: 1px solid #7F8FB1; - height: 1px; -} - -pre.code -{ - display: block; - padding: 8px; - border: 1px dashed #ccc; -} - -#index -{ - margin-top: 24px; - float: left; - width: 160px; - position: absolute; - left: 8px; - background-color: #F3F3F3; - padding: 8px; -} - -#content -{ - margin-left: 190px; - width: 600px; -} - -.classList -{ - list-style-type: none; - padding: 0; - margin: 0 0 0 8px; - font-family: arial, sans-serif; - font-size: 1em; - overflow: auto; -} - -.classList li -{ - padding: 0; - margin: 0 0 8px 0; -} - -.summaryTable { width: 100%; } - -h1.classTitle -{ - font-size:170%; - line-height:130%; -} - -h2 { font-size: 110%; } -caption, div.sectionTitle -{ - background-color: #7F8FB1; - color: #fff; - font-size:130%; - text-align: left; - padding: 2px 6px 2px 6px; - border: 1px #7F8FB1 solid; -} - -div.sectionTitle { margin-bottom: 8px; } -.summaryTable thead { display: none; } - -.summaryTable td -{ - vertical-align: top; - padding: 4px; - border-bottom: 1px #7F8FB1 solid; - border-right: 1px #7F8FB1 solid; -} - -/*col#summaryAttributes {}*/ -.summaryTable td.attributes -{ - border-left: 1px #7F8FB1 solid; - width: 140px; - text-align: right; -} - -td.attributes, .fixedFont -{ - line-height: 15px; - color: #002EBE; - font-family: "Courier New",Courier,monospace; - font-size: 13px; -} - -.summaryTable td.nameDescription -{ - text-align: left; - font-size: 13px; - line-height: 15px; -} - -.summaryTable td.nameDescription, .description -{ - line-height: 15px; - padding: 4px; - padding-left: 4px; -} - -.summaryTable { margin-bottom: 8px; } - -ul.inheritsList -{ - list-style: square; - margin-left: 20px; - padding-left: 0; -} - -.detailList { - margin-left: 20px; - line-height: 15px; -} -.detailList dt { margin-left: 20px; } - -.detailList .heading -{ - font-weight: bold; - padding-bottom: 6px; - margin-left: 0; -} - -.light, td.attributes, .light a:link, .light a:visited -{ - color: #777; - font-style: italic; -} - -.fineprint -{ - text-align: right; - font-size: 10px; -} - </style> - </head> - - <body> - <div id="header"> -</div> - - <div id="index"> - <div align="center"><a href="index.html">Class Index</a> -| <a href="files.html">File Index</a></div> -<hr /> -<h2>Classes</h2> -<ul class="classList"> - - <li><i><a href="symbols/_global_.html">_global_</a></i></li> - -</ul> -<hr /> - </div> - - <div id="content"> - <h1 class="classTitle">Class Index</h1> - - - <div> - <h2><a href="symbols/_global_.html">_global_</a></h2> - - </div> - <hr /> - - - </div> - <div class="fineprint" style="clear:both"> - - Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Tue Nov 23 2021 23:46:32 GMT+0100 (MEZ) - </div> - </body> -</html> \ No newline at end of file diff --git a/Output/bob/symbols/_global_.html b/Output/bob/symbols/_global_.html deleted file mode 100644 index 987500e..0000000 --- a/Output/bob/symbols/_global_.html +++ /dev/null @@ -1,1283 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> - <head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <meta name="generator" content="JsDoc Toolkit" /> - - <title>JsDoc Reference - _global_</title> - - <style type="text/css"> - /* default.css */ -body -{ - font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif; - width: 800px; -} - -.header -{ - clear: both; - background-color: #ccc; - padding: 8px; -} - -h1 -{ - font-size: 150%; - font-weight: bold; - padding: 0; - margin: 1em 0 0 .3em; -} - -hr -{ - border: none 0; - border-top: 1px solid #7F8FB1; - height: 1px; -} - -pre.code -{ - display: block; - padding: 8px; - border: 1px dashed #ccc; -} - -#index -{ - margin-top: 24px; - float: left; - width: 160px; - position: absolute; - left: 8px; - background-color: #F3F3F3; - padding: 8px; -} - -#content -{ - margin-left: 190px; - width: 600px; -} - -.classList -{ - list-style-type: none; - padding: 0; - margin: 0 0 0 8px; - font-family: arial, sans-serif; - font-size: 1em; - overflow: auto; -} - -.classList li -{ - padding: 0; - margin: 0 0 8px 0; -} - -.summaryTable { width: 100%; } - -h1.classTitle -{ - font-size:170%; - line-height:130%; -} - -h2 { font-size: 110%; } -caption, div.sectionTitle -{ - background-color: #7F8FB1; - color: #fff; - font-size:130%; - text-align: left; - padding: 2px 6px 2px 6px; - border: 1px #7F8FB1 solid; -} - -div.sectionTitle { margin-bottom: 8px; } -.summaryTable thead { display: none; } - -.summaryTable td -{ - vertical-align: top; - padding: 4px; - border-bottom: 1px #7F8FB1 solid; - border-right: 1px #7F8FB1 solid; -} - -/*col#summaryAttributes {}*/ -.summaryTable td.attributes -{ - border-left: 1px #7F8FB1 solid; - width: 140px; - text-align: right; -} - -td.attributes, .fixedFont -{ - line-height: 15px; - color: #002EBE; - font-family: "Courier New",Courier,monospace; - font-size: 13px; -} - -.summaryTable td.nameDescription -{ - text-align: left; - font-size: 13px; - line-height: 15px; -} - -.summaryTable td.nameDescription, .description -{ - line-height: 15px; - padding: 4px; - padding-left: 4px; -} - -.summaryTable { margin-bottom: 8px; } - -ul.inheritsList -{ - list-style: square; - margin-left: 20px; - padding-left: 0; -} - -.detailList { - margin-left: 20px; - line-height: 15px; -} -.detailList dt { margin-left: 20px; } - -.detailList .heading -{ - font-weight: bold; - padding-bottom: 6px; - margin-left: 0; -} - -.light, td.attributes, .light a:link, .light a:visited -{ - color: #777; - font-style: italic; -} - -.fineprint -{ - text-align: right; - font-size: 10px; -} - </style> - </head> - - <body> -<!-- ============================== header ================================= --> - <!-- begin static/header.html --> - <div id="header"> -</div> - <!-- end static/header.html --> - -<!-- ============================== classes index ============================ --> - <div id="index"> - <!-- begin publish.classesIndex --> - <div align="center"><a href="../index.html">Class Index</a> -| <a href="../files.html">File Index</a></div> -<hr /> -<h2>Classes</h2> -<ul class="classList"> - - <li><i><a href="../symbols/_global_.html">_global_</a></i></li> - -</ul> -<hr /> - <!-- end publish.classesIndex --> - </div> - - <div id="content"> -<!-- ============================== class title ============================ --> - <h1 class="classTitle"> - - Built-In Namespace _global_ - </h1> - -<!-- ============================== class summary ========================== --> - <p class="description"> - - - - - - - </p> - -<!-- ============================== constructor summary ==================== --> - - -<!-- ============================== properties summary ===================== --> - - - - <table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class _global_."> - <caption>Field Summary</caption> - <thead> - <tr> - <th scope="col">Field Attributes</th> - <th scope="col">Field Name and Description</th> - </tr> - </thead> - <tbody> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"> - <b><a href="../symbols/_global_.html#g">g</a></b> - </div> - <div class="description">creates group element</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"> - <b><a href="../symbols/_global_.html#link">link</a></b> - </div> - <div class="description">creates link object</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"> - <b><a href="../symbols/_global_.html#rect">rect</a></b> - </div> - <div class="description">creates a background -creates a click functionality of the background</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"> - <b><a href="../symbols/_global_.html#simulation">simulation</a></b> - </div> - <div class="description">creates a new simulation -updates the positions of the links and nodes when the - state of the layout has changed (simulation has advanced by a tick)</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"> - <b><a href="../symbols/_global_.html#svg">svg</a></b> - </div> - <div class="description">creates svg object and associated attributes -applies the zoom behavior to svg</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"> - <b><a href="../symbols/_global_.html#zoom">zoom</a></b> - </div> - <div class="description">creates a new zoom behavior</div> - </td> - </tr> - - </tbody> - </table> - - - - - -<!-- ============================== methods summary ======================== --> - - - - <table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class _global_."> - <caption>Method Summary</caption> - <thead> - <tr> - <th scope="col">Method Attributes</th> - <th scope="col">Method Name and Description</th> - </tr> - </thead> - <tbody> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#center">center</a></b>() - </div> - <div class="description">transforms svg so that it is centered</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#clickNode">clickNode</a></b>(node) - </div> - <div class="description">colors the circle and its links black and removes the previous markings</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#clickRect">clickRect</a></b>() - </div> - <div class="description">removes the markings of the circles and their links</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#dragged">dragged</a></b>(node) - </div> - <div class="description">applies the dragging to the node</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#dragstarted">dragstarted</a></b>(node) - </div> - <div class="description">initializes the dragging of the node</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#firstauthor">firstauthor</a></b>(authors) - </div> - <div class="description">returns last name of first author</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#isLinkForNode">isLinkForNode</a></b>(node, link) - </div> - <div class="description">returns true if link is directly connected to node and false if it is not</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#marker">marker</a></b>(color) - </div> - <div class="description">creates arrowhead and returns its url</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#marklink">marklink</a></b>(node) - </div> - <div class="description">sets color of link (line and arrowhead) to black if it is directly connected to node -and to grey otherwise</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#resetGraph">resetGraph</a></b>() - </div> - <div class="description">resets the positions of the nodes</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#resetZoom">resetZoom</a></b>() - </div> - <div class="description">transforms svg so that that the zoom is reset</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#textfunc">textfunc</a></b>(node) - </div> - <div class="description">outputs node info to textbox</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#tickHandler">tickHandler</a></b>() - </div> - <div class="description">updates the positions of the links and nodes</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#update">update</a></b>(nodes, links) - </div> - <div class="description">calls update functions for links and nodes -adds the nodes and links to the simulation</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#updateLinks">updateLinks</a></b>(links) - </div> - <div class="description">initializes and shows links</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#updateNodes">updateNodes</a></b>(nodes) - </div> - <div class="description">initializes and shows nodes with circles and texts -creates a new drag behavior and applies it to the circles -creates a click functionality of the circles and texts</div> - </td> - </tr> - - <tr> - <td class="attributes"> </td> - <td class="nameDescription"> - <div class="fixedFont"><b><a href="../symbols/_global_.html#zoomHandler">zoomHandler</a></b>() - </div> - <div class="description">applies the transformation (zooming or dragging) to the g element</div> - </td> - </tr> - - </tbody> - </table> - - - - -<!-- ============================== events summary ======================== --> - - -<!-- ============================== constructor details ==================== --> - - -<!-- ============================== field details ========================== --> - - <div class="sectionTitle"> - Field Detail - </div> - - <a name="g"> </a> - <div class="fixedFont"> - - - <b>g</b> - - </div> - <div class="description"> - creates group element - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - <hr /> - - <a name="link"> </a> - <div class="fixedFont"> - - - <b>link</b> - - </div> - <div class="description"> - creates link object - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - <hr /> - - <a name="rect"> </a> - <div class="fixedFont"> - - - <b>rect</b> - - </div> - <div class="description"> - creates a background -creates a click functionality of the background - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - <hr /> - - <a name="simulation"> </a> - <div class="fixedFont"> - - - <b>simulation</b> - - </div> - <div class="description"> - creates a new simulation -updates the positions of the links and nodes when the - state of the layout has changed (simulation has advanced by a tick) - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - <hr /> - - <a name="svg"> </a> - <div class="fixedFont"> - - - <b>svg</b> - - </div> - <div class="description"> - creates svg object and associated attributes -applies the zoom behavior to svg - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - <hr /> - - <a name="zoom"> </a> - <div class="fixedFont"> - - - <b>zoom</b> - - </div> - <div class="description"> - creates a new zoom behavior - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - - - - -<!-- ============================== method details ========================= --> - - <div class="sectionTitle"> - Method Detail - </div> - - <a name="center"> </a> - <div class="fixedFont"> - - - <b>center</b>() - - </div> - <div class="description"> - transforms svg so that it is centered - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - - - - <hr /> - - <a name="clickNode"> </a> - <div class="fixedFont"> - - - <b>clickNode</b>(node) - - </div> - <div class="description"> - colors the circle and its links black and removes the previous markings - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>node</b> - - </dt> - <dd>- node</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="clickRect"> </a> - <div class="fixedFont"> - - - <b>clickRect</b>() - - </div> - <div class="description"> - removes the markings of the circles and their links - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - - - - <hr /> - - <a name="dragged"> </a> - <div class="fixedFont"> - - - <b>dragged</b>(node) - - </div> - <div class="description"> - applies the dragging to the node - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>node</b> - - </dt> - <dd>- data of current node</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="dragstarted"> </a> - <div class="fixedFont"> - - - <b>dragstarted</b>(node) - - </div> - <div class="description"> - initializes the dragging of the node - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>node</b> - - </dt> - <dd>- data of current node</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="firstauthor"> </a> - <div class="fixedFont"> - - - <b>firstauthor</b>(authors) - - </div> - <div class="description"> - returns last name of first author - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{string}</span> <b>authors</b> - - </dt> - <dd>- the comma-separated string of authors</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="isLinkForNode"> </a> - <div class="fixedFont"> - - - <b>isLinkForNode</b>(node, link) - - </div> - <div class="description"> - returns true if link is directly connected to node and false if it is not - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>node</b> - - </dt> - <dd>- node</dd> - - <dt> - <span class="light fixedFont">{object}</span> <b>link</b> - - </dt> - <dd>- link</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="marker"> </a> - <div class="fixedFont"> - - - <b>marker</b>(color) - - </div> - <div class="description"> - creates arrowhead and returns its url - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{string}</span> <b>color</b> - - </dt> - <dd>- color of arrowhead</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="marklink"> </a> - <div class="fixedFont"> - - - <b>marklink</b>(node) - - </div> - <div class="description"> - sets color of link (line and arrowhead) to black if it is directly connected to node -and to grey otherwise - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>node</b> - - </dt> - <dd>- node</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="resetGraph"> </a> - <div class="fixedFont"> - - - <b>resetGraph</b>() - - </div> - <div class="description"> - resets the positions of the nodes - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - - - - <hr /> - - <a name="resetZoom"> </a> - <div class="fixedFont"> - - - <b>resetZoom</b>() - - </div> - <div class="description"> - transforms svg so that that the zoom is reset - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - - - - <hr /> - - <a name="textfunc"> </a> - <div class="fixedFont"> - - - <b>textfunc</b>(node) - - </div> - <div class="description"> - outputs node info to textbox - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>node</b> - - </dt> - <dd>- data of current node</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="tickHandler"> </a> - <div class="fixedFont"> - - - <b>tickHandler</b>() - - </div> - <div class="description"> - updates the positions of the links and nodes - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - - - - <hr /> - - <a name="update"> </a> - <div class="fixedFont"> - - - <b>update</b>(nodes, links) - - </div> - <div class="description"> - calls update functions for links and nodes -adds the nodes and links to the simulation - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>nodes</b> - - </dt> - <dd>- nodes</dd> - - <dt> - <span class="light fixedFont">{object}</span> <b>links</b> - - </dt> - <dd>- links</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="updateLinks"> </a> - <div class="fixedFont"> - - - <b>updateLinks</b>(links) - - </div> - <div class="description"> - initializes and shows links - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>links</b> - - </dt> - <dd>- links</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="updateNodes"> </a> - <div class="fixedFont"> - - - <b>updateNodes</b>(nodes) - - </div> - <div class="description"> - initializes and shows nodes with circles and texts -creates a new drag behavior and applies it to the circles -creates a click functionality of the circles and texts - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - <dl class="detailList"> - <dt class="heading">Parameters:</dt> - - <dt> - <span class="light fixedFont">{object}</span> <b>nodes</b> - - </dt> - <dd>- nodes</dd> - - </dl> - - - - - - - - - <hr /> - - <a name="zoomHandler"> </a> - <div class="fixedFont"> - - - <b>zoomHandler</b>() - - </div> - <div class="description"> - applies the transformation (zooming or dragging) to the g element - - <br /> - <i>Defined in: </i> <a href="../symbols/src/cn.js.html">cn.js</a>. - - - </div> - - - - - - - - - - - - - - - -<!-- ============================== event details ========================= --> - - - <hr /> - </div> - - -<!-- ============================== footer ================================= --> - <div class="fineprint" style="clear:both"> - - Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 on Tue Nov 23 2021 23:46:32 GMT+0100 (MEZ) - </div> - </body> -</html> diff --git a/Output/bob/symbols/src/cn.js.html b/Output/bob/symbols/src/cn.js.html deleted file mode 100644 index afaf24c..0000000 --- a/Output/bob/symbols/src/cn.js.html +++ /dev/null @@ -1,297 +0,0 @@ -<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style> - .KEYW {color: #933;} - .COMM {color: #bbb; font-style: italic;} - .NUMB {color: #393;} - .STRN {color: #393;} - .REGX {color: #339;} - .line {border-right: 1px dotted #666; color: #666; font-style: normal;} - </style></head><body><pre><span class='line'> 1</span> <span class="COMM">/** -<span class='line'> 2</span> * creates a new zoom behavior -<span class='line'> 3</span> */</span><span class="WHIT"> -<span class='line'> 4</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">zoom</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d3.zoom</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">on</span><span class="PUNC">(</span><span class="STRN">"zoom"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">zoomHandler</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 5</span> -<span class='line'> 6</span> </span><span class="COMM">/** -<span class='line'> 7</span> * creates svg object and associated attributes -<span class='line'> 8</span> * applies the zoom behavior to svg -<span class='line'> 9</span> */</span><span class="WHIT"> -<span class='line'> 10</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">svg</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d3.select</span><span class="PUNC">(</span><span class="STRN">"svg"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 11</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">call</span><span class="PUNC">(</span><span class="NAME">zoom</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> -<span class='line'> 12</span> </span><span class="NAME">width</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">svg.attr</span><span class="PUNC">(</span><span class="STRN">"width"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> -<span class='line'> 13</span> </span><span class="NAME">height</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">svg.attr</span><span class="PUNC">(</span><span class="STRN">"height"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 14</span> -<span class='line'> 15</span> </span><span class="COMM">/** -<span class='line'> 16</span> * creates node object and associated attributes -<span class='line'> 17</span> */</span><span class="WHIT"> -<span class='line'> 18</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> -<span class='line'> 19</span> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="NUMB">12</span><span class="PUNC">,</span><span class="WHIT"> -<span class='line'> 20</span> </span><span class="NAME">color</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d3.scaleOrdinal</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 21</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">domain</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="STRN">"citing"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"input"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"cited"</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 22</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">range</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="STRN">' #01d7c0'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' #8b90fe '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">' #a15eb2 '</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> -<span class='line'> 23</span> </span><span class="NAME">yscale</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d3.scaleOrdinal</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 24</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">domain</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="STRN">"citing"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"input"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"cited"</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 25</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">range</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">400</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> -<span class='line'> 26</span> </span><span class="NAME">toRemove</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 27</span> -<span class='line'> 28</span> </span><span class="COMM">/** -<span class='line'> 29</span> * creates link object -<span class='line'> 30</span> */</span><span class="WHIT"> -<span class='line'> 31</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">link</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 32</span> -<span class='line'> 33</span> </span><span class="COMM">/** -<span class='line'> 34</span> * creates a background -<span class='line'> 35</span> * creates a click functionality of the background -<span class='line'> 36</span> */</span><span class="WHIT"> -<span class='line'> 37</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">rect</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">svg.append</span><span class="PUNC">(</span><span class="STRN">"rect"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 38</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"x"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 39</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"y"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 40</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"height"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">height</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 41</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"width"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 42</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"fill"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'white'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 43</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">on</span><span class="PUNC">(</span><span class="STRN">'click'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">clickRect</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 44</span> -<span class='line'> 45</span> </span><span class="COMM">/** -<span class='line'> 46</span> * creates a new simulation -<span class='line'> 47</span> * updates the positions of the links and nodes when the -<span class='line'> 48</span> state of the layout has changed (simulation has advanced by a tick) -<span class='line'> 49</span> */</span><span class="WHIT"> -<span class='line'> 50</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">simulation</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d3.forceSimulation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 51</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">force</span><span class="PUNC">(</span><span class="STRN">"link"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d3.forceLink</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">id</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d.doi</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">distance</span><span class="PUNC">(</span><span class="NUMB">100</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">strength</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 52</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">force</span><span class="PUNC">(</span><span class="STRN">"collide"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d3.forceCollide</span><span class="PUNC">(</span><span class="NUMB">50</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 53</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">force</span><span class="PUNC">(</span><span class="STRN">"charge"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d3.forceManyBody</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">strength</span><span class="PUNC">(</span><span class="PUNC">-</span><span class="NUMB">30</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 54</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">force</span><span class="PUNC">(</span><span class="STRN">"center"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d3.forceCenter</span><span class="PUNC">(</span><span class="NAME">width</span><span class="PUNC">/</span><span class="NUMB">2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">height</span><span class="PUNC">/</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 55</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">force</span><span class="PUNC">(</span><span class="STRN">"yscale"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d3.forceY</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">strength</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">y</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">yscale</span><span class="PUNC">(</span><span class="NAME">d.group</span><span class="PUNC">)</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 56</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">on</span><span class="PUNC">(</span><span class="STRN">"tick"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tickHandler</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 57</span> -<span class='line'> 58</span> </span><span class="COMM">/** -<span class='line'> 59</span> * creates group element -<span class='line'> 60</span> */</span><span class="WHIT"> -<span class='line'> 61</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">g</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">svg.append</span><span class="PUNC">(</span><span class="STRN">"g"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 62</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"class"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"everything"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 63</span> -<span class='line'> 64</span> </span><span class="COMM">/** -<span class='line'> 65</span> * loads JSON data and calls the update function -<span class='line'> 66</span> */</span><span class="WHIT"> -<span class='line'> 67</span> </span><span class="NAME">d3.json</span><span class="PUNC">(</span><span class="STRN">"json_text.json"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">then</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">graph</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'> 68</span> </span><span class="WHIT"> </span><span class="NAME">update</span><span class="PUNC">(</span><span class="NAME">graph.links</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">graph.nodes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 69</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 70</span> -<span class='line'> 71</span> </span><span class="COMM">/** -<span class='line'> 72</span> * calls update functions for links and nodes -<span class='line'> 73</span> * adds the nodes and links to the simulation -<span class='line'> 74</span> * @param {object} nodes - nodes -<span class='line'> 75</span> * @param {object} links - links -<span class='line'> 76</span> */</span><span class="WHIT"> -<span class='line'> 77</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">update</span><span class="PUNC">(</span><span class="NAME">links</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'> 78</span> </span><span class="WHIT"> </span><span class="NAME">updateLinks</span><span class="PUNC">(</span><span class="NAME">links</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 79</span> </span><span class="WHIT"> </span><span class="NAME">updateNodes</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 80</span> -<span class='line'> 81</span> </span><span class="WHIT"> </span><span class="NAME">simulation</span><span class="WHIT"> -<span class='line'> 82</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">nodes</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 83</span> </span><span class="WHIT"> </span><span class="NAME">simulation.force</span><span class="PUNC">(</span><span class="STRN">"link"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 84</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">links</span><span class="PUNC">(</span><span class="NAME">links</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'> 85</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'> 86</span> -<span class='line'> 87</span> </span><span class="COMM">/** -<span class='line'> 88</span> * initializes and shows links -<span class='line'> 89</span> * @param {object} links - links -<span class='line'> 90</span> */</span><span class="WHIT"> -<span class='line'> 91</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">updateLinks</span><span class="PUNC">(</span><span class="NAME">links</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'> 92</span> </span><span class="WHIT"> </span><span class="NAME">link</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">g.append</span><span class="PUNC">(</span><span class="STRN">"g"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 93</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">selectAll</span><span class="PUNC">(</span><span class="STRN">".link"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 94</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">data</span><span class="PUNC">(</span><span class="NAME">links</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 95</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">enter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">append</span><span class="PUNC">(</span><span class="STRN">"line"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 97</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"stroke-width"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"1px"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 98</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"stroke"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"#999"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'> 99</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'marker-end'</span><span class="PUNC">,</span><span class="NAME">marker</span><span class="PUNC">(</span><span class="STRN">"#999"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>100</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"class"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"link"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>101</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>102</span> -<span class='line'>103</span> </span><span class="COMM">/** -<span class='line'>104</span> * initializes and shows nodes with circles and texts -<span class='line'>105</span> * creates a new drag behavior and applies it to the circles -<span class='line'>106</span> * creates a click functionality of the circles and texts -<span class='line'>107</span> * @param {object} nodes - nodes -<span class='line'>108</span> */</span><span class="WHIT"> -<span class='line'>109</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">updateNodes</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>110</span> </span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">g.selectAll</span><span class="PUNC">(</span><span class="STRN">".node"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>111</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">data</span><span class="PUNC">(</span><span class="NAME">nodes</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>112</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">enter</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>113</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">append</span><span class="PUNC">(</span><span class="STRN">"g"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>114</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"class"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"node"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>115</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"initial_x"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d.dx</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>116</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"initial_y"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d.dy</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>117</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">call</span><span class="PUNC">(</span><span class="NAME">d3.drag</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>118</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">on</span><span class="PUNC">(</span><span class="STRN">"start"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dragstarted</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>119</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">on</span><span class="PUNC">(</span><span class="STRN">"drag"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dragged</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>120</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>121</span> -<span class='line'>122</span> </span><span class="WHIT"> </span><span class="NAME">node.append</span><span class="PUNC">(</span><span class="STRN">"circle"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>123</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"class"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"circle"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>124</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"r"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>125</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"fill"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">color</span><span class="PUNC">(</span><span class="NAME">d.group</span><span class="PUNC">)</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>126</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">on</span><span class="PUNC">(</span><span class="STRN">'click'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">clickNode</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>127</span> -<span class='line'>128</span> </span><span class="WHIT"> </span><span class="NAME">node.append</span><span class="PUNC">(</span><span class="STRN">"text"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>129</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"class"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"text"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>130</span> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"font-size"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"15px"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>131</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">'pointer-events'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'auto'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>132</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">text</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">firstauthor</span><span class="PUNC">(</span><span class="NAME">d.author</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>133</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">on</span><span class="PUNC">(</span><span class="STRN">'click'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">clickNode</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>134</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>135</span> -<span class='line'>136</span> </span><span class="COMM">/** -<span class='line'>137</span> * colors the circle and its links black and removes the previous markings -<span class='line'>138</span> * @param {object} node - node -<span class='line'>139</span> */</span><span class="WHIT"> -<span class='line'>140</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">clickNode</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>141</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">toRemove</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>142</span> </span><span class="WHIT"> </span><span class="NAME">d3.select</span><span class="PUNC">(</span><span class="NAME">toRemove</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">selectAll</span><span class="PUNC">(</span><span class="STRN">".circle"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"stroke"</span><span class="PUNC">,</span><span class="STRN">"none"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>143</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>144</span> </span><span class="WHIT"> </span><span class="NAME">toRemove</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.parentNode</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>145</span> </span><span class="WHIT"> </span><span class="NAME">d3.select</span><span class="PUNC">(</span><span class="NAME">this.parentNode</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">selectAll</span><span class="PUNC">(</span><span class="STRN">".circle"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"stroke"</span><span class="PUNC">,</span><span class="STRN">"black"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>146</span> </span><span class="WHIT"> </span><span class="NAME">marklink</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>147</span> </span><span class="WHIT"> </span><span class="NAME">textfunc</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>148</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>149</span> -<span class='line'>150</span> </span><span class="COMM">/** -<span class='line'>151</span> * removes the markings of the circles and their links -<span class='line'>152</span> */</span><span class="WHIT"> -<span class='line'>153</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">clickRect</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>154</span> </span><span class="WHIT"> </span><span class="NAME">d3.selectAll</span><span class="PUNC">(</span><span class="STRN">".circle"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"stroke"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"none"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>155</span> </span><span class="WHIT"> </span><span class="NAME">d3.selectAll</span><span class="PUNC">(</span><span class="STRN">".link"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>156</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"stroke"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"#999"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>157</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'marker-end'</span><span class="PUNC">,</span><span class="NAME">marker</span><span class="PUNC">(</span><span class="STRN">'#999'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>158</span> </span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="STRN">'textbox'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"Click node"</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>159</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>160</span> -<span class='line'>161</span> </span><span class="COMM">/** -<span class='line'>162</span> * sets color of link (line and arrowhead) to black if it is directly connected to node -<span class='line'>163</span> * and to grey otherwise -<span class='line'>164</span> * @param {object} node - node -<span class='line'>165</span> */</span><span class="WHIT"> -<span class='line'>166</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">marklink</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>167</span> </span><span class="WHIT"> </span><span class="NAME">d3.selectAll</span><span class="PUNC">(</span><span class="STRN">".link"</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>168</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">"stroke"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>169</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">isLinkForNode</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">"black"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"#999"</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>170</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'marker-end'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>171</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">isLinkForNode</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">marker</span><span class="PUNC">(</span><span class="STRN">'#000000'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">marker</span><span class="PUNC">(</span><span class="STRN">'#999'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>172</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>173</span> -<span class='line'>174</span> </span><span class="COMM">/** -<span class='line'>175</span> * returns true if link is directly connected to node and false if it is not -<span class='line'>176</span> * @param {object} node - node -<span class='line'>177</span> * @param {object} link - link -<span class='line'>178</span> */</span><span class="WHIT"> -<span class='line'>179</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">isLinkForNode</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">link</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>180</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">link.source.index</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">node.index</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">link.target.index</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">node.index</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>181</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>182</span> -<span class='line'>183</span> </span><span class="COMM">/** -<span class='line'>184</span> * creates arrowhead and returns its url -<span class='line'>185</span> * @param {string} color - color of arrowhead -<span class='line'>186</span> */</span><span class="WHIT"> -<span class='line'>187</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">marker</span><span class="PUNC">(</span><span class="NAME">color</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>188</span> </span><span class="WHIT"> </span><span class="NAME">svg.append</span><span class="PUNC">(</span><span class="STRN">'defs'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">append</span><span class="PUNC">(</span><span class="STRN">'marker'</span><span class="PUNC">)</span><span class="COMM">//arrowhead</span><span class="WHIT"> -<span class='line'>189</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'id'</span><span class="PUNC">,</span><span class="NAME">color.replace</span><span class="PUNC">(</span><span class="STRN">"#"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>190</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'viewBox'</span><span class="PUNC">,</span><span class="STRN">'-0 -5 10 10'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>191</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'refX'</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">+</span><span class="NUMB">10</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>192</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'refY'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>193</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'orient'</span><span class="PUNC">,</span><span class="STRN">'auto'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>194</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'markerWidth'</span><span class="PUNC">,</span><span class="NUMB">10</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>195</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'markerHeight'</span><span class="PUNC">,</span><span class="NUMB">15</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>196</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'xoverflow'</span><span class="PUNC">,</span><span class="STRN">'visible'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>197</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">append</span><span class="PUNC">(</span><span class="STRN">'svg:path'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>198</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'M 0,-5 L 10 ,0 L 0,5'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>199</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">'fill'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">color</span><span class="PUNC">)</span><span class="COMM">//arrowhead color</span><span class="WHIT"> -<span class='line'>200</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">style</span><span class="PUNC">(</span><span class="STRN">'stroke'</span><span class="PUNC">,</span><span class="STRN">'none'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>201</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"url("</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">color</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">")"</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>202</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>203</span> -<span class='line'>204</span> </span><span class="COMM">/** -<span class='line'>205</span> * returns last name of first author -<span class='line'>206</span> * @param {string} authors - the comma-separated string of authors -<span class='line'>207</span> */</span><span class="WHIT"> -<span class='line'>208</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">firstauthor</span><span class="PUNC">(</span><span class="NAME">authors</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>209</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="REGX">/,/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">authors</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>210</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">firstauthor</span><span class="PUNC">=</span><span class="REGX">/^.*\s+([\w\-]+)[\.\s]*$/</span><span class="PUNC">.</span><span class="NAME">exec</span><span class="PUNC">(</span><span class="NAME">authors</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>211</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>212</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>213</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">firstauthor</span><span class="PUNC">=</span><span class="REGX">/^[\s\w\.\-]*\s([\w\-]+)[\.\s]*,.*$/</span><span class="PUNC">.</span><span class="NAME">exec</span><span class="PUNC">(</span><span class="NAME">authors</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>214</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>215</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">firstauthor</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> -<span class='line'>216</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>217</span> -<span class='line'>218</span> </span><span class="COMM">/** -<span class='line'>219</span> * outputs node info to textbox -<span class='line'>220</span> * @param {object} node - data of current node -<span class='line'>221</span> */</span><span class="WHIT"> -<span class='line'>222</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">textfunc</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>223</span> </span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="STRN">'textbox'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">innerHTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"Title:"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'</br>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">node.name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> -<span class='line'>224</span> </span><span class="WHIT"> </span><span class="STRN">'</br>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">'</br>'</span><span class="PUNC">+</span><span class="STRN">"Author:"</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'</br>'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="NAME">node.author</span><span class="PUNC">+</span><span class="STRN">'</br>'</span><span class="PUNC">+</span><span class="STRN">'</br>'</span><span class="PUNC">+</span><span class="STRN">"Year:"</span><span class="PUNC">+</span><span class="STRN">'</br>'</span><span class="WHIT"> -<span class='line'>225</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="NAME">node.year</span><span class="PUNC">+</span><span class="STRN">'</br>'</span><span class="PUNC">+</span><span class="STRN">'</br>'</span><span class="PUNC">+</span><span class="STRN">"doi:"</span><span class="PUNC">+</span><span class="STRN">'</br>'</span><span class="PUNC">+</span><span class="NAME">node.doi</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>226</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>227</span> -<span class='line'>228</span> </span><span class="COMM">/** -<span class='line'>229</span> * updates the positions of the links and nodes -<span class='line'>230</span> */</span><span class="WHIT"> -<span class='line'>231</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">tickHandler</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>232</span> </span><span class="WHIT"> </span><span class="NAME">link.attr</span><span class="PUNC">(</span><span class="STRN">"x1"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d.source.x</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>233</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"y1"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d.source.y</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>234</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"x2"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d.target.x</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>235</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"y2"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d.target.y</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>236</span> </span><span class="WHIT"> </span><span class="NAME">node.attr</span><span class="PUNC">(</span><span class="STRN">"transform"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"translate("</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">d.x</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">", "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">d.y</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">")"</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>237</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>238</span> -<span class='line'>239</span> </span><span class="COMM">/** -<span class='line'>240</span> * initializes the dragging of the node -<span class='line'>241</span> * @param {object} node - data of current node -<span class='line'>242</span> */</span><span class="WHIT"> -<span class='line'>243</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">dragstarted</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>244</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">d3.event.active</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>245</span> </span><span class="NAME">simulation.alphaTarget</span><span class="PUNC">(</span><span class="NUMB">0.3</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">restart</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>246</span> </span><span class="WHIT"> </span><span class="NAME">node.fx</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.x</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>247</span> </span><span class="WHIT"> </span><span class="NAME">node.fy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">node.y</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>248</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>249</span> -<span class='line'>250</span> </span><span class="COMM">/** -<span class='line'>251</span> * applies the dragging to the node -<span class='line'>252</span> * @param {object} node - data of current node -<span class='line'>253</span> */</span><span class="WHIT"> -<span class='line'>254</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">dragged</span><span class="PUNC">(</span><span class="NAME">node</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>255</span> </span><span class="WHIT"> </span><span class="NAME">node.fx</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d3.event.x</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>256</span> </span><span class="WHIT"> </span><span class="NAME">node.fy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d3.event.y</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>257</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>258</span> -<span class='line'>259</span> </span><span class="COMM">/** -<span class='line'>260</span> * resets the positions of the nodes -<span class='line'>261</span> */</span><span class="WHIT"> -<span class='line'>262</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">resetGraph</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>263</span> </span><span class="WHIT"> </span><span class="NAME">d3.selectAll</span><span class="PUNC">(</span><span class="STRN">".node"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>264</span> </span><span class="WHIT"> </span><span class="NAME">d.fx</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d.initial_x</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>265</span> </span><span class="WHIT"> </span><span class="NAME">d.fy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d.initial_y</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>266</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>267</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>268</span> -<span class='line'>269</span> </span><span class="COMM">/** -<span class='line'>270</span> * applies the transformation (zooming or dragging) to the g element -<span class='line'>271</span> */</span><span class="WHIT"> -<span class='line'>272</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">zoomHandler</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>273</span> </span><span class="WHIT"> </span><span class="NAME">d3.select</span><span class="PUNC">(</span><span class="STRN">'g'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">attr</span><span class="PUNC">(</span><span class="STRN">"transform"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d3.event.transform</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>274</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>275</span> -<span class='line'>276</span> </span><span class="COMM">/** -<span class='line'>277</span> * transforms svg so that that the zoom is reset -<span class='line'>278</span> */</span><span class="WHIT"> -<span class='line'>279</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">resetZoom</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>280</span> </span><span class="WHIT"> </span><span class="NAME">d3.select</span><span class="PUNC">(</span><span class="STRN">'svg'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>281</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">call</span><span class="PUNC">(</span><span class="NAME">zoom.scaleTo</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>282</span> </span><span class="PUNC">}</span><span class="WHIT"> -<span class='line'>283</span> -<span class='line'>284</span> </span><span class="COMM">/** -<span class='line'>285</span> * transforms svg so that it is centered -<span class='line'>286</span> */</span><span class="WHIT"> -<span class='line'>287</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">center</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> -<span class='line'>288</span> </span><span class="WHIT"> </span><span class="NAME">d3.select</span><span class="PUNC">(</span><span class="STRN">'svg'</span><span class="PUNC">)</span><span class="WHIT"> -<span class='line'>289</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">call</span><span class="PUNC">(</span><span class="NAME">zoom.translateTo</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">width</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0.5</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">height</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> -<span class='line'>290</span> </span><span class="PUNC">}</span></pre></body></html> \ No newline at end of file diff --git a/Output/cn_26_11_1.js b/Output/cn_26_11_1.js new file mode 100644 index 0000000..99973d4 --- /dev/null +++ b/Output/cn_26_11_1.js @@ -0,0 +1,479 @@ +/** +* creates a new zoom behavior +*/ +var zoom = d3.zoom().on("zoom", zoomHandler); + +/** +* creates svg object and associated attributes +* applies the zoom behavior to svg +*/ +var svg = d3.select("svg") + .call(zoom), +width = svg.attr("width"), +height = svg.attr("height"); + +/** +* creates node object and associated attributes +*/ +var node, +r=10, +color = d3.scaleOrdinal() + .domain(["citing", "input", "cited"]) + .range([' #01d7c0', ' #8b90fe ', ' #a15eb2 ']), +yscale = d3.scaleOrdinal() + .domain(["citing", "input", "cited"]) + .range([0, 200, 400]), +toRemove; + +/** +* creates link object +*/ + + +/** +* creates a background +* creates a click functionality of the background +*/ +var rect = svg.append("rect") + .attr("x", 0) + .attr("y", 0) + .attr("height", height) + .attr("width", width) + .style("fill", 'white') + .on('click', clickRect); + +/** +* creates a new simulation +* updates the positions of the links and nodes when the + state of the layout has changed (simulation has advanced by a tick) +*/ +var simulation = d3.forceSimulation() + .force("link", d3.forceLink().id(function(d) {return d.doi;}).distance(100).strength(1)) + .force("collide", d3.forceCollide(50)) + .force("charge", d3.forceManyBody().strength(-30)) + .force("center", d3.forceCenter(width/2, height/2)) + .force("yscale", d3.forceY().strength(1).y(function(d) {return yscale(d.group)})); + +/** +* creates group element +*/ +var g = svg.append("g") + .attr("class", "everything") + + + + + +/** +* loads JSON data and calls the update function +*/ +d3.json("json_text.json").then(function(graph) { + update(graph.links, graph.nodes); +}) + +/** +* calls update functions for links and nodes +* adds the nodes and links to the simulation +* @param {object} nodes - nodes +* @param {object} links - links +*/ +function update(links, nodes) { + updateLinks(links); + updateNodes(nodes); + + simulation + .nodes(nodes) + .on("tick", tickHandler); + simulation.force("link") + .links(links); + + link.attr('marker-end', function(d) {return updateMarker("#999", d.target);}) + .style("stroke-dasharray",function(d){return self_cit(d.source,d.target)? ("8,8"): ("1,0")}); +} + + +var rect2 = svg.append("rect") + .attr("x", 0) + .attr("y", 0) + .attr("height", 180) + .attr("width", 210) + .style("fill", 'white'); + +legendposition=[70,110,150] +groupnames=["citing","input","cited"] + +var legend = svg.selectAll(".legend") + .data(legendposition) + .enter() + .append("g") + .attr("class","legend") + .attr("transform", function(d) { return "translate(0," + d + ")"; }); + + +legend.append("text") + .attr("x", 100) + .attr("y", 0) + .attr("dy", ".35em") + .style("text-anchor", "start") + .text(function(d){return groupnames[legendposition.indexOf(d)]}); + +legend.append("circle") + .attr("r", r) + .attr("cx",50-r) + .style("fill", color); + + +var legendarrow = svg.append("g") +.attr("class","legend") +.attr("transform","translate(20,20)"); +legendarrow.append("line") + .attr("x1", 10) + .attr("x2", 50) + .attr("y1", 10) + .attr("y2", 10) + .style("stroke-dasharray","8,8") + .style("stroke", '#999') + .style("stroke-width", "1px") + .style('pointer-events', 'none') + .attr('marker-end',updateMarker('#999',this)); +legendarrow.append("text") + .attr("x", 80) + .attr("y", 10) + .attr("dy", ".35em") + .style("text-anchor", "start") + .text("self-citation"); + + +/** +* initializes and shows links +* @param {object} links - links +*/ +function updateLinks(links) { + link = g.append("g") + .selectAll(".link") + .data(links) + .enter() + .append("line") + .style("stroke-width", "1px") + .style("stroke", "#999") + .attr("class", "link"); +} + +/** +* initializes and shows nodes with circles and texts +* creates a new drag behavior and applies it to the circles +* creates a click functionality of the circles and texts +* @param {object} nodes - nodes +*/ +function updateNodes(nodes) { + node = g.selectAll(".node") + .data(nodes) + .enter() + .append("g") + .attr("class", "node") + .attr("initial_x", function(d) {return d.dx;}) + .attr("initial_y", function(d) {return d.dy;}) + .call(d3.drag() + .on("start", dragstarted) + .on("drag", dragged) + ); + + node.append("circle") + .attr("class", "circle") + .attr("r", function(d) {return r+d.citations*0.1}) + .style("fill", function(d){ return color(d.group)}) + .on('click', clickNode); + + node.append("text") + .attr("class", "text") + .style("font-size", "15px") + .style('pointer-events', 'auto') + .text(function (d) {return firstauthor(d.author);}) + .on('click', clickNode); +} + +/** +* creates arrowhead and returns its url +* @param {string} color - color of arrowhead +* @param {string} target - target-node +*/ +function updateMarker(color, target) { + var radius = r+target.citations*0.1; + svg.append('defs').append('marker')//arrowhead + .attr('id',color.replace("#", "")+radius) + .attr('viewBox','-0 -5 10 10') + .attr('refX',radius+10) + .attr('refY',0) + .attr('orient','auto') + .attr('markerWidth',10) + .attr('markerHeight',15) + .attr('xoverflow','visible') + .append('svg:path') + .attr('d', 'M 0,-5 L 10 ,0 L 0,5') + .attr('fill', color)//arrowhead color + .style('stroke','none'); + return "url(" + color + radius + ")"; +}; + +/** +* colors the circle and its links black and removes the previous markings +* @param {object} node - node +*/ +function clickNode(node) { + if(toRemove){ + d3.select(toRemove).selectAll(".circle").style("stroke","none") + } + toRemove = this.parentNode; + d3.select(this.parentNode).selectAll(".circle").style("stroke","black") + marklink(node) + textfunc(node) +} + +/** +* removes the markings of the circles and their links +*/ +function clickRect() { + d3.selectAll(".circle").style("stroke", "none") + d3.selectAll(".link") + .style("stroke", "#999") + .attr('marker-end', function(d) {return updateMarker('#999', d.target);}) + document.getElementById('textbox').innerHTML = "Click node"; +} + +function create_author_array(authors){ + authorarray=authors.split(",") + authorarray=authorarray.map(elem =>{return elem.trim();}) + + return authorarray +} +function self_cit(source,target){ + sourceauthors=create_author_array(source.author) + targetauthors=create_author_array(target.author) + return sourceauthors.some(item=>targetauthors.includes(item)) +} + +/** +* sets color of link (line and arrowhead) to black if it is directly connected to node +* and to grey otherwise +* @param {object} node - node +*/ +function marklink(node){ + d3.selectAll(".link") + .style("stroke", function(o) { + return isLinkForNode(node, o) ? "black" : "#999";}) + .attr('marker-end', function(o) { + return isLinkForNode(node, o) ? updateMarker('#000000', o.target) : updateMarker('#999', o.target);}) +} + +/** +* returns true if link is directly connected to node and false if it is not +* @param {object} node - node +* @param {object} link - link +*/ +function isLinkForNode(node, link){ + return link.source.index == node.index || link.target.index == node.index; +} + + + + + +/** +* returns last name of first author +* @param {string} authors - the comma-separated string of authors +*/ +function firstauthor(authors){ + if (/,/.test(authors)==false){ + var firstauthor=/^.*\s+([\w\-]+)[\.\s]*$/.exec(authors) + } + else { + var firstauthor=/^[\s\w\.\-]*\s([\w\-]+)[\.\s]*,.*$/.exec(authors) + } + return firstauthor[1] +} + +/** +* outputs node info to textbox +* @param {object} node - data of current node +*/ +function textfunc(node){ + document.getElementById('textbox').innerHTML = "Title:" + '</br>' + node.name + + '</br>' +'</br>'+"Author:"+ '</br>' +node.author+'</br>'+'</br>'+"Year:"+'</br>' + +node.year+'</br>'+'</br>'+"doi:"+'</br>'+node.doi; +} + +/** +* updates the positions of the links and nodes +*/ +function tickHandler() { + link.attr("x1", function (d) {return d.source.x;}) + .attr("y1", function (d) {return d.source.y;}) + .attr("x2", function (d) {return d.target.x;}) + .attr("y2", function (d) {return d.target.y;}); + node.attr("transform", function (d) {return "translate(" + d.x + ", " + d.y + ")";}); +} + +/** +* initializes the dragging of the node +* @param {object} node - data of current node +*/ +function dragstarted(node) { + if (!d3.event.active) + simulation.alphaTarget(0.3).restart() + node.fx = node.x; + node.fy = node.y; +} + +/** +* applies the dragging to the node +* @param {object} node - data of current node +*/ +function dragged(node) { + node.fx = d3.event.x; + node.fy = d3.event.y; +} + +/** +* resets the positions of the nodes +*/ +function resetGraph() { + d3.selectAll(".node").each(function(d) { + d.fx = d.initial_x; + d.fy = d.initial_y; + }) +} + +/** +* applies the transformation (zooming or dragging) to the g element +*/ +function zoomHandler() { + d3.select('g').attr("transform", d3.event.transform); +} + +/** +* transforms svg so that that the zoom is reset +*/ +function resetZoom() { + d3.select('svg') + .call(zoom.scaleTo, 1); +} + +/** +* transforms svg so that it is centered +*/ +function center() { + d3.select('svg') + .call(zoom.translateTo, 0.5 * width, 0.5 * height); +} + + + +function savesvg(){ + var svgString = getSVGString(svg.node()); + svgString2Image( svgString, 2*width, 2*height, 'png', save ); // passes Blob and filesize String to the callback + + function save( dataBlob, filesize ){ + saveAs( dataBlob, 'D3 vis exported to PNG.png' ); // FileSaver.js function + } +}; + +// Below are the functions that handle actual exporting: +// getSVGString ( svgNode ) and svgString2Image( svgString, width, height, format, callback ) +function getSVGString( svgNode ) { + svgNode.setAttribute('xlink', 'http://www.w3.org/1999/xlink'); + var cssStyleText = getCSSStyles( svgNode ); + appendCSS( cssStyleText, svgNode ); + + var serializer = new XMLSerializer(); + var svgString = serializer.serializeToString(svgNode); + svgString = svgString.replace(/(\w+)?:?xlink=/g, 'xmlns:xlink='); // Fix root xlink without namespace + svgString = svgString.replace(/NS\d+:href/g, 'xlink:href'); // Safari NS namespace fix + + return svgString; + + function getCSSStyles( parentElement ) { + var selectorTextArr = []; + + // Add Parent element Id and Classes to the list + selectorTextArr.push( '#'+parentElement.id ); + for (var c = 0; c < parentElement.classList.length; c++) + if ( !contains('.'+parentElement.classList[c], selectorTextArr) ) + selectorTextArr.push( '.'+parentElement.classList[c] ); + + // Add Children element Ids and Classes to the list + var nodes = parentElement.getElementsByTagName("*"); + for (var i = 0; i < nodes.length; i++) { + var id = nodes[i].id; + if ( !contains('#'+id, selectorTextArr) ) + selectorTextArr.push( '#'+id ); + + var classes = nodes[i].classList; + for (var c = 0; c < classes.length; c++) + if ( !contains('.'+classes[c], selectorTextArr) ) + selectorTextArr.push( '.'+classes[c] ); + } + + // Extract CSS Rules + var extractedCSSText = ""; + for (var i = 0; i < document.styleSheets.length; i++) { + var s = document.styleSheets[i]; + + try { + if(!s.cssRules) continue; + } catch( e ) { + if(e.name !== 'SecurityError') throw e; // for Firefox + continue; + } + + var cssRules = s.cssRules; + for (var r = 0; r < cssRules.length; r++) { + if ( contains( cssRules[r].selectorText, selectorTextArr ) ) + extractedCSSText += cssRules[r].cssText; + } + } + + + return extractedCSSText; + + function contains(str,arr) { + return arr.indexOf( str ) === -1 ? false : true; + } + + } + + function appendCSS( cssText, element ) { + var styleElement = document.createElement("style"); + styleElement.setAttribute("type","text/css"); + styleElement.innerHTML = cssText; + var refNode = element.hasChildNodes() ? element.children[0] : null; + element.insertBefore( styleElement, refNode ); + } +} + + +function svgString2Image( svgString, width, height, format, callback ) { + var format = format ? format : 'png'; + + var imgsrc = 'data:image/svg+xml;base64,'+ btoa( unescape( encodeURIComponent( svgString ) ) ); // Convert SVG string to data URL + + var canvas = document.createElement("canvas"); + var context = canvas.getContext("2d"); + + canvas.width = width; + canvas.height = height; + + var image = new Image(); + image.onload = function() { + context.clearRect ( 0, 0, width, height ); + context.drawImage(image, 0, 0, width, height); + + canvas.toBlob( function(blob) { + var filesize = Math.round( blob.length/1024 ) + ' KB'; + if ( callback ) callback( blob, filesize ); + }); + + + }; + + image.src = imgsrc; +} \ No newline at end of file diff --git a/Output/index.html b/Output/index.html index 2fa48c3..a51548e 100644 --- a/Output/index.html +++ b/Output/index.html @@ -18,6 +18,7 @@ right: 550px; } */ + /* textbox */ div { width:270px; @@ -26,7 +27,7 @@ padding: 10px; border: 1px solid #999; position: absolute; - top: 20px; + top: 100px; left: 980px; display: inline-block; overflow-y: scroll; @@ -40,20 +41,25 @@ <p id="id"></p> <!--for commenting with document.getElementById("id").innerHTML = "text"; --> <!-- graph --> - <svg width="960" height="600"></svg> + <svg width="960" height="500" ></svg> <!-- textbox --> - <div id = "textbox" style="border:1px solid">Click node</div> + <div id = "textbox" style="border:1px solid" >Click node</div> + <!-- reset-buttons --> <button onclick="javascript:location.reload();">Reload</button> <button onclick="resetGraph()">Reset graph</button> <button onclick="resetZoom()">Reset zoom</button> <button onclick="center()">Center</button> + <button onclick="savesvg()">Save</button> <!-- link D3 (version 5) --> <script src="https://d3js.org/d3.v5.min.js"></script> - <script type="text/javascript" src="cn.js"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/d3-legend/2.13.0/d3-legend.js"></script> + <script src="https://cdn.rawgit.com/eligrey/canvas-toBlob.js/f1a01896135ab378aa5c0118eadd81da55e698d8/canvas-toBlob.js"></script> + <script src="https://cdn.rawgit.com/eligrey/FileSaver.js/e9d941381475b5df8b7d7691013401e171014e89/FileSaver.min.js"></script> + <script type="text/javascript" src="cn_26_11_1.js"></script> </body> </html> \ No newline at end of file diff --git a/Output/json_text.json b/Output/json_text.json index 1a080a0..546be19 100644 --- a/Output/json_text.json +++ b/Output/json_text.json @@ -2,23 +2,23 @@ "nodes": [ { "name": "Comparing Molecular Patterns Using the Example of SMARTS: Applications and Filter Collection Analysis", - "author":"Emanuel S. R. Ehmki,Robert Schmidt, Farina Ohm, Matthias Rarey", - "year":"2001", + "author":"Emanuel S. R. Ehmki,Robert Schmidt, Farina Ohm, Matthias Rarey", + "year":"1997", "doi": "https://doi.org/10.1021/acs.jcim.9b00249", "group": "input", "citations": 0 }, { "name": "Combining Machine Learning and Computational Chemistry for Predictive Insights Into Chemical Systems ", - "author": "John A. Keith, Valentin Vassilev-Galindo, Bingqing Cheng, Stefan Chmiela, Michael Gastegger, Klaus-Robert M\u00fcller, Alexandre Tkatchenko. ", - "year":"1967", + "author": "John A. Keith, Valentin Vassilev-Galindo, Bingqing Cheng, Stefan Chmiela, Michael Gastegger, Klaus-Robert M\u00fcller, Alexandre Tkatchenko ", + "year":"1937", "doi": "https://doi.org/10.1021/acs.chemrev.1c00107", "group": "citing", "citations": 140 }, { "name": "Disconnected Maximum Common Substructures under Constraints ", - "author": "Robert Schmidt, Florian Krull, Anna Lina Heinzke, Matthias Rarey. ", + "author": "Robert Schmidt, Florian Krull, Anna Lina Heinzke,Emanuel S. R. Ehmki, Matthias Rarey ", "year":"1991", "doi": "https://doi.org/10.1021/acs.jcim.0c00741", "group": "citing", @@ -26,15 +26,15 @@ }, { "name": "Evolution of Novartis\u2019 Small Molecule Screening Deck Design ", - "author": "Ansgar Schuffenhauer, Nadine Schneider, Samuel Hintermann, Douglas Auld, Jutta Blank, Simona Cotesta, Caroline Engeloch, Nikolas Fechner, Christoph Gaul, Jerome Giovannoni, Johanna Jansen, John Joslin, Philipp Krastel, Eugen Lounkine, John Manchester, Lauren G. Monovich, Anna Paola Pelliccioli, Manuel Schwarze, Michael D. Shultz, Nikolaus Stiefl, Daniel K. Baeschlin. ", - "year":"1990", + "author": "Ansgar Schuffenhauer, Nadine Schneider, Samuel Hintermann, Douglas Auld, Jutta Blank, Simona Cotesta, Caroline Engeloch, Nikolas Fechner, Christoph Gaul, Jerome Giovannoni, Johanna Jansen, John Joslin, Philipp Krastel, Eugen Lounkine, John Manchester, Lauren G. Monovich, Anna Paola Pelliccioli, Manuel Schwarze, Michael D. Shultz, Nikolaus Stiefl, Daniel K. Baeschlin ", + "year":"2001", "doi": "https://doi.org/10.1021/acs.jmedchem.0c01332", "group": "input", "citations": 250 }, { "name": "Comparing Molecular Patterns Using the Example of SMARTS: Theory and Algorithms ", - "author": "Robert Schmidt, Emanuel S. R. Ehmki, Farina Ohm, Hans-Christian Ehrlich, Andriy Mashychev, Matthias Rarey. ", + "author": "Robert Schmidt, Emanuel S. R. Ehmki, Farina Ohm, Hans-Christian Ehrlich, Andriy Mashychev, Matthias Rarey ", "year":"2021", "doi": "https://doi.org/10.1021/acs.jcim.9b00250", "group": "cited", @@ -42,7 +42,7 @@ }, { "name": "Machine learning accelerates quantum mechanics predictions of molecular crystals ", - "author": "Yanqiang Han, Imran Ali, Zhilong Wang, Junfei Cai, Sicheng Wu, Jiequn Tang, Lin Zhang, Jiahao Ren, Rui Xiao, Qianqian Lu, Lei Hang, Hongyuan Luo, Jinjin Li. ", + "author": "Yanqiang Han, Imran Ali, Zhilong Wang, Junfei Cai, Sicheng Wu, Jiequn Tang, Lin Zhang, Jiahao Ren, Rui Xiao, Qianqian Lu, Lei Hang, Hongyuan Luo, Jinjin Li ", "year":"2011", "doi": "https://doi.org/10.1016/j.physrep.2021.08.002", "group": "cited", @@ -50,7 +50,7 @@ }, { "name": "The Growing Importance of Chirality in 3D Chemical Space Exploration and Modern Drug Discovery Approaches for Hit-ID ", - "author": "Ilaria Proietti Silvestri, Paul J. J. Colbon. ", + "author": "Ilaria Proietti Silvestri, Robert Schmidt,Nadine Schneider ,Paul J. J. Colbon ", "year":"2001", "doi": "https://doi.org/10.1021/acsmedchemlett.1c00251", "group": "cited", @@ -58,7 +58,7 @@ }, { "name": "Target-Based Evaluation of \u201cDrug-Like\u201d Properties and Ligand Efficiencies ", - "author": "Paul D. Leeson, A. Patricia Bento, Anna Gaulton, Anne Hersey, Emma J. Manners, Chris J. Radoux, Andrew R. Leach. ", + "author": "Paul D. Leeson,Ansgar Schuffenhauer, A. Patricia Bento, Anna Gaulton, Anne Hersey, Emma J. Manners, Chris J. Radoux, Andrew R. Leach ", "year":"2003", "doi": "https://doi.org/10.1021/acs.jmedchem.1c00416", "group": "cited", @@ -66,7 +66,7 @@ }, { "name": "BonMOLi\u00e8re: Small-Sized Libraries of Readily Purchasable Compounds, Optimized to Produce Genuine Hits in Biological Screens across the Protein Space ", - "author": "Neann Mathai, Conrad Stork, Johannes Kirchmair. ", + "author": "Neann Mathai, Conrad Stork, Johannes Kirchmair ", "year":"2003", "doi": "https://doi.org/10.3390/ijms22157773", "group": "cited", @@ -74,7 +74,7 @@ }, { "name": "Accelerating high-throughput virtual screening through molecular pool-based active learning ", - "author": "David E. Graff, Eugene I. Shakhnovich, Connor W. Coley. ", + "author": "David E. Graff, Eugene I. Shakhnovich, Connor W. Coley ", "year":"2013", "doi": "https://doi.org/10.1039/D0SC06805E", "group": "cited", @@ -82,7 +82,7 @@ }, { "name": "Compound Screening ", - "author": "Shin Numao.", + "author": "Shin Numao", "year":"2009", "doi": "https://doi.org/10.1016/B978-0-12-820472-6.00078-5", "group": "citing", diff --git a/README.md b/README.md deleted file mode 100644 index 9635f91..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Projekt CiS-Biochemie 2021-22 - -Automated citation loop finder for ACS articles. \ No newline at end of file diff --git a/data.json b/data.json deleted file mode 100644 index 419abd7..0000000 --- a/data.json +++ /dev/null @@ -1,23 +0,0 @@ -{"nodes":[{"name":"StudieA","author":"MenschA","year":"JahrA","doi":"doiA","group":"input"}, - {"name":"StudieB","author":"MenschB","year":"JahrB","doi":"doiB","group":"cited"}, - {"name":"StudieC","author":"MenschC","year":"JahrC","doi":"doiC","group":"input"}, - {"name":"StudieD","author":"MenschD","year":"JahrD","doi":"doiD","group":"cited"}, - {"name":"StudieE","author":"MenschE","year":"JahrE","doi":"doiE","group":"cited"}, - {"name":"StudieF","author":"MenschF","year":"JahrF","doi":"doiF","group":"cited"}, - {"name":"StudieG","author":"MenschG","year":"JahrG","doi":"doiG","group":"citing"}, - {"name":"StudieH","author":"MenschH","year":"JahrH","doi":"doiH","group":"cited"}, - {"name":"StudieI","author":"MenschI","year":"JahrI","doi":"doiI","group":"citing"}], -"links":[{"source":"doiA","target":"doiB"}, - {"source":"doiA","target":"doiC"}, - {"source":"doiC","target":"doiE"}, - {"source":"doiD","target":"doiB"}, - {"source":"doiC","target":"doiB"}, - {"source":"doiA","target":"doiH"}, - {"source":"doiA","target":"doiI"}, - {"source":"doiI","target":"doiC"}, - {"source":"doiH","target":"doiC"}, - {"source":"doiG","target":"doiA"}, - {"source":"doiH","target":"doiI"}, - {"source":"doiE","target":"doiF"} - - ]} diff --git a/json_text.json b/json_text.json deleted file mode 100644 index 42f0e4b..0000000 --- a/json_text.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "nodes": [ - { - "name": "Comparing Molecular Patterns Using the Example of SMARTS: Applications and Filter Collection Analysis", - "author":"Emanuel S. R. Ehmki,Robert Schmidt, Farina Ohm, Matthias Rarey", - "year":"7", - "doi": "https://doi.org/10.1021/acs.jcim.9b00249", - "group": "input" - }, - { - "name": "Combining Machine Learning and Computational Chemistry for Predictive Insights Into Chemical Systems ", - "author": "John A. Keith, Valentin Vassilev-Galindo, Bingqing Cheng, Stefan Chmiela, Michael Gastegger, Klaus-Robert M\u00fcller, Alexandre Tkatchenko. ", - "year":"1937", - "doi": "https://doi.org/10.1021/acs.chemrev.1c00107", - "group": "citing" - }, - { - "name": "Disconnected Maximum Common Substructures under Constraints ", - "author": "Robert Schmidt, Florian Krull, Anna Lina Heinzke, Matthias Rarey. ", - "year":"1991", - "doi": "https://doi.org/10.1021/acs.jcim.0c00741", - "group": "citing" - }, - { - "name": "Evolution of Novartis\u2019 Small Molecule Screening Deck Design ", - "author": "Ansgar Schuffenhauer, Nadine Schneider, Samuel Hintermann, Douglas Auld, Jutta Blank, Simona Cotesta, Caroline Engeloch, Nikolas Fechner, Christoph Gaul, Jerome Giovannoni, Johanna Jansen, John Joslin, Philipp Krastel, Eugen Lounkine, John Manchester, Lauren G. Monovich, Anna Paola Pelliccioli, Manuel Schwarze, Michael D. Shultz, Nikolaus Stiefl, Daniel K. Baeschlin. ", - "year":"2001", - "doi": "https://doi.org/10.1021/acs.jmedchem.0c01332", - "group": "input" - }, - { - "name": "Comparing Molecular Patterns Using the Example of SMARTS: Theory and Algorithms ", - "author": "Robert Schmidt, Emanuel S. R. Ehmki, Farina Ohm, Hans-Christian Ehrlich, Andriy Mashychev, Matthias Rarey. ", - "year":"2021", - "doi": "https://doi.org/10.1021/acs.jcim.9b00250", - "group": "cited" - }, - { - "name": "Machine learning accelerates quantum mechanics predictions of molecular crystals ", - "author": "Yanqiang Han, Imran Ali, Zhilong Wang, Junfei Cai, Sicheng Wu, Jiequn Tang, Lin Zhang, Jiahao Ren, Rui Xiao, Qianqian Lu, Lei Hang, Hongyuan Luo, Jinjin Li. ", - "year":"2011", - "doi": "https://doi.org/10.1016/j.physrep.2021.08.002", - "group": "cited" - }, - { - "name": "The Growing Importance of Chirality in 3D Chemical Space Exploration and Modern Drug Discovery Approaches for Hit-ID ", - "author": "Ilaria Proietti Silvestri, Paul J. J. Colbon. ", - "year":"2001", - "doi": "https://doi.org/10.1021/acsmedchemlett.1c00251", - "group": "cited" - }, - { - "name": "Target-Based Evaluation of \u201cDrug-Like\u201d Properties and Ligand Efficiencies ", - "author": "Paul D. Leeson, A. Patricia Bento, Anna Gaulton, Anne Hersey, Emma J. Manners, Chris J. Radoux, Andrew R. Leach. ", - "year":"2003", - "doi": "https://doi.org/10.1021/acs.jmedchem.1c00416", - "group": "cited" - }, - { - "name": "BonMOLi\u00e8re: Small-Sized Libraries of Readily Purchasable Compounds, Optimized to Produce Genuine Hits in Biological Screens across the Protein Space ", - "author": "Neann Mathai, Conrad Stork, Johannes Kirchmair. ", - "year":"2003", - "doi": "https://doi.org/10.3390/ijms22157773", - "group": "cited" - }, - { - "name": "Accelerating high-throughput virtual screening through molecular pool-based active learning ", - "author": "David E. Graff, Eugene I. Shakhnovich, Connor W. Coley. ", - "year":"2013", - "doi": "https://doi.org/10.1039/D0SC06805E", - "group": "cited" - }, - { - "name": "Compound Screening ", - "author": "Shin Numao, Gianluca Etienne. ", - "year":"2009", - "doi": "https://doi.org/10.1016/B978-0-12-820472-6.00078-5", - "group": "citing" - } - ], - "links": [ - { - "source": "https://doi.org/10.1021/acs.jcim.9b00249", - "target": "https://doi.org/10.1021/acs.chemrev.1c00107" - }, - { - "source": "https://doi.org/10.1021/acs.jcim.9b00249", - "target": "https://doi.org/10.1021/acs.jcim.0c00741" - }, - { - "source": "https://doi.org/10.1021/acs.jcim.9b00249", - "target": "https://doi.org/10.1021/acs.jmedchem.0c01332" - }, - { - "source": "https://doi.org/10.1021/acs.jcim.9b00249", - "target": "https://doi.org/10.1021/acs.jcim.9b00250" - }, - { - "source": "https://doi.org/10.1021/acs.jcim.9b00249", - "target": "https://doi.org/10.1016/j.physrep.2021.08.002" - }, - { - "source": "https://doi.org/10.1021/acs.jmedchem.0c01332", - "target": "https://doi.org/10.1021/acsmedchemlett.1c00251" - }, - { - "source": "https://doi.org/10.1021/acs.jmedchem.0c01332", - "target": "https://doi.org/10.1021/acs.jmedchem.1c00416" - }, - { - "source": "https://doi.org/10.1021/acs.jmedchem.0c01332", - "target": "https://doi.org/10.3390/ijms22157773" - }, - { - "source": "https://doi.org/10.1021/acs.jmedchem.0c01332", - "target": "https://doi.org/10.1039/D0SC06805E" - }, - { - "source": "https://doi.org/10.1021/acs.jmedchem.0c01332", - "target": "https://doi.org/10.1016/B978-0-12-820472-6.00078-5" - } - ] -} \ No newline at end of file -- GitLab