You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1917 lines
129 KiB

<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>GraphLinksModel | GoJS API</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../assets/css/bootstrap.min.css">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<!-- non-fixed navbar -->
<nav id="non-fixed-nav" class="navbar navbar-inverse navbar-top">
<div class="container-fluid">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#navbar">
<a id="toplogo" class="navbar-brand" href="../../index.html">GoJS</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
</div>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="../../index.html">Home</a></li>
<li><a href="../../learn/index.html">Learn</a></li>
<li><a href="../../samples/index.html">Samples</a></li>
<li><a href="../../intro/index.html">Intro</a></li>
<li><a href="../../api/index.html" target="api">API</a></li>
<li><a href="https://www.nwoods.com/components/evalform.htm">Register</a></li>
<li><a href="../../download.html">Download</a></li>
<li><a href="https://forum.nwoods.com/c/gojs">Forum</a></li>
<li><a href="https://www.nwoods.com/contact.html" onclick="ga('send','event','Outbound Link','click','contact');">Contact</a></li>
<li class="buy"><a href="https://www.nwoods.com/sales/index.html" onclick="ga('send','event','Outbound Link','click','buy');">Buy</a></li>
<li class="activate"><a href="https://www.nwoods.com/app/activate.aspx?sku=gojs">Activate</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="tsd-page-header">
<div class="tsd-page-toolbar">
<div class="container-fluid plr15">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.js" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">GoJS API</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container-fluid plr15">
<div class="top-copyright">
<!--<b>GoJS</b>&reg; Diagramming Components<br/>version &lt;br/&gt;version 2.0.17 for TypeScript/HTML<br/>by <a href="https://www.nwoods.com/">Northwoods Software&reg;</a>-->
<b>GoJS</b>&reg; Diagramming Components<br/>version 2.0.17<br/>by <a href="https://www.nwoods.com/">Northwoods Software&reg;</a>
</div>
<div>
<h1>Class GraphLinksModel</h1>
</div>
</div>
</div>
</div>
</header>
<div class="container-fluid container-main plr15">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<a href="Model.html" class="tsd-signature-type">Model</a>
<ul class="tsd-hierarchy">
<li>
<span class="target">GraphLinksModel</span>
</li>
</ul>
</li>
</ul>
</section>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<p>GraphLinksModels support links between nodes and grouping nodes and links into subgraphs.
GraphLinksModels hold node data and link data in separate arrays.
Node data is normally represented in a <a href="Diagram.html">Diagram</a> by instances of <a href="Node.html">Node</a>,
but they could be represented by simple <a href="Part.html">Part</a>s or by <a href="Group.html">Group</a>s.
Link data should be represented by instances of <a href="Link.html">Link</a>.</p>
<p>Each link data object is assumed to have two values, one referring to the node that the
link is coming from and one that the link is going to.
The <a href="GraphLinksModel.html#linkFromKeyProperty">linkFromKeyProperty</a> property names the property on the link data whose value
is the key of the &quot;from&quot; node.
The <a href="GraphLinksModel.html#linkToKeyProperty">linkToKeyProperty</a> property names the property on the link data whose value
is the key of the &quot;to&quot; node.
The default values for these properties are &quot;from&quot; and &quot;to&quot; respectively.</p>
<p>For example, one can define a graph consisting of two nodes with one link connecting them:</p>
<pre><code class="hljs js"> model.nodeDataArray = [
{ <span class="hljs-attr">key</span>: <span class="hljs-string">"Alpha"</span> },
{ <span class="hljs-attr">key</span>: <span class="hljs-string">"Beta"</span> }
];
model.linkDataArray = [
{ <span class="hljs-attr">from</span>: <span class="hljs-string">"Alpha"</span>, <span class="hljs-attr">to</span>: <span class="hljs-string">"Beta"</span> }
];</code></pre>
<p>If you want to have subgraphs in your diagram, where a group node contains some number of nodes and links,
you need to declare that some node data actually represent groups,
and you need to provide a reference from a member node data to its containing group node data.
The <a href="GraphLinksModel.html#nodeIsGroupProperty">nodeIsGroupProperty</a> property names the property on a node data that is true
if that node data represents a group.
The <a href="GraphLinksModel.html#nodeGroupKeyProperty">nodeGroupKeyProperty</a> property names the property on a node data whose value
is the key of the containing group&#39;s node data.
The default values for these properties are &quot;isGroup&quot; and &quot;group&quot; respectively.</p>
<p>For example, one can define a graph consisting of one group containing a subgraph of
two nodes connected by a link, with a second link from that group to a third node
that is not a member of that group:</p>
<pre><code class="hljs js"> model.nodeDataArray = [
{ <span class="hljs-attr">key</span>: <span class="hljs-string">"Group1"</span>, <span class="hljs-attr">isGroup</span>: <span class="hljs-literal">true</span>},
{ <span class="hljs-attr">key</span>: <span class="hljs-string">"Alpha"</span>, <span class="hljs-attr">group</span>: <span class="hljs-string">"Group1"</span> },
{ <span class="hljs-attr">key</span>: <span class="hljs-string">"Beta"</span>, <span class="hljs-attr">group</span>: <span class="hljs-string">"Group1"</span> },
{ <span class="hljs-attr">key</span>: <span class="hljs-string">"Gamma"</span> }
];
model.linkDataArray = [
{ <span class="hljs-attr">from</span>: <span class="hljs-string">"Alpha"</span>, <span class="hljs-attr">to</span>: <span class="hljs-string">"Beta"</span> },
{ <span class="hljs-attr">from</span>: <span class="hljs-string">"Group1"</span>, <span class="hljs-attr">to</span>: <span class="hljs-string">"Gamma"</span> }
];</code></pre>
<p>GraphLinksModels also support distinguishing the &quot;port&quot; element of a node to which
a link can connect, at either end of the link.
This identification is a string that names the &quot;port&quot; element in the node.
However, you need to set the <a href="GraphLinksModel.html#linkFromPortIdProperty">linkFromPortIdProperty</a> and/or
<a href="GraphLinksModel.html#linkToPortIdProperty">linkToPortIdProperty</a> properties before the model is able to
get the &quot;port id&quot; information from the link data.</p>
<p>For example, one can define a graph consisting of a &quot;subtraction&quot; node and two inputs and one output.
The &quot;subtraction&quot; node has two distinct inputs called &quot;subtrahend&quot; and &quot;minuend&quot;;
the output is called &quot;difference&quot;.</p>
<pre><code class="hljs js"> model.linkFromPortIdProperty = <span class="hljs-string">"fromPort"</span>; <span class="hljs-comment">// necessary to remember portIds</span>
model.linkToPortIdProperty = <span class="hljs-string">"toPort"</span>;
model.nodeDataArray = [
{ <span class="hljs-attr">key</span>: <span class="hljs-number">1</span>, <span class="hljs-attr">constant</span>: <span class="hljs-number">5</span> }, <span class="hljs-comment">// a constant input node</span>
{ <span class="hljs-attr">key</span>: <span class="hljs-number">2</span>, <span class="hljs-attr">constant</span>: <span class="hljs-number">2</span> }, <span class="hljs-comment">// another constant node</span>
{ <span class="hljs-attr">key</span>: <span class="hljs-number">3</span>, <span class="hljs-attr">operation</span>: <span class="hljs-string">"subtract"</span> },
{ <span class="hljs-attr">key</span>: <span class="hljs-number">4</span>, <span class="hljs-attr">value</span>: <span class="hljs-number">3</span> } <span class="hljs-comment">// the output node</span>
];
model.linkDataArray = [
{ <span class="hljs-attr">from</span>: <span class="hljs-number">1</span>, <span class="hljs-attr">to</span>: <span class="hljs-number">3</span>, <span class="hljs-attr">toPort</span>: <span class="hljs-string">"subtrahend"</span> },
{ <span class="hljs-attr">from</span>: <span class="hljs-number">2</span>, <span class="hljs-attr">to</span>: <span class="hljs-number">3</span>, <span class="hljs-attr">toPort</span>: <span class="hljs-string">"minuend"</span> },
{ <span class="hljs-attr">from</span>: <span class="hljs-number">3</span>, <span class="hljs-attr">to</span>: <span class="hljs-number">4</span>, <span class="hljs-attr">fromPort</span>: <span class="hljs-string">"difference"</span> }
];</code></pre>
<p>In this case links connected to node 3 (which is the subtraction operation)
are distinguished by port id.
The connections to the other nodes do not have any port identification,
presumably because there is only one port on those nodes, representing the node value.</p>
<p>Note that there is no requirement that the link data objects have any kind of unique identifier, unlike for node data.
There is no expectation that there be references to link data in the model, so there is no need for such an identifier.
When there are multiple links connecting two ports, the only way to distinguish the links in the model
is by reference to the particular link data object.
This is why there are two methods on the Diagram class for Nodes, <a href="Diagram.html#findNodeForKey">Diagram.findNodeForKey</a> and <a href="Diagram.html#findNodeForData">Diagram.findNodeForData</a>,
but there is only the one method for Links, <a href="Diagram.html#findLinkForData">Diagram.findLinkForData</a>.</p>
<p>However you may wish to have the model maintain string or number identifiers on the link data just as all models do for node data.
To get that behavior, so that you can call <a href="GraphLinksModel.html#findLinkDataForKey">findLinkDataForKey</a>, you need to set <a href="GraphLinksModel.html#linkKeyProperty">linkKeyProperty</a> to be a non-empty string.
Just as with the assignment of node keys, you can customize the assignment of link keys by setting
<a href="GraphLinksModel.html#makeUniqueLinkKeyFunction">makeUniqueLinkKeyFunction</a> to a function that returns a unique identifier.</p>
<p>This model does not support the modification of whether a node data object is a group.</p>
<p>This model cannot detect the modification of the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a> array
or the modification of any link data object.
If you want to add or remove link data from the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a>,
call the <a href="GraphLinksModel.html#addLinkData">addLinkData</a> or <a href="GraphLinksModel.html#removeLinkData">removeLinkData</a> methods.
If you want to modify the node a link connects to, call the
<a href="GraphLinksModel.html#setFromKeyForLinkData">setFromKeyForLinkData</a> and/or <a href="GraphLinksModel.html#setToKeyForLinkData">setToKeyForLinkData</a> methods.
If you want to change the membership of a node data in a group,
call the <a href="GraphLinksModel.html#setGroupKeyForNodeData">setGroupKeyForNodeData</a> method.</p>
</div>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Constructors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-constructor tsd-parent-kind-class"><a href="GraphLinksModel.html#constructor" class="tsd-kind-icon">constructor</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#archetypeNodeData" class="tsd-kind-icon">archetype<wbr>Node<wbr>Data</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#copyLinkDataFunction" class="tsd-kind-icon">copy<wbr>Link<wbr>Data<wbr>Function</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#linkCategoryProperty" class="tsd-kind-icon">link<wbr>Category<wbr>Property</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#linkDataArray" class="tsd-kind-icon">link<wbr>Data<wbr>Array</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#linkFromKeyProperty" class="tsd-kind-icon">link<wbr>From<wbr>Key<wbr>Property</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#linkFromPortIdProperty" class="tsd-kind-icon">link<wbr>From<wbr>Port<wbr>IdProperty</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#linkKeyProperty" class="tsd-kind-icon">link<wbr>Key<wbr>Property</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#linkLabelKeysProperty" class="tsd-kind-icon">link<wbr>Label<wbr>Keys<wbr>Property</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#linkToKeyProperty" class="tsd-kind-icon">link<wbr>ToKey<wbr>Property</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#linkToPortIdProperty" class="tsd-kind-icon">link<wbr>ToPort<wbr>IdProperty</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#makeUniqueLinkKeyFunction" class="tsd-kind-icon">make<wbr>Unique<wbr>Link<wbr>Key<wbr>Function</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#nodeGroupKeyProperty" class="tsd-kind-icon">node<wbr>Group<wbr>Key<wbr>Property</a></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><a href="GraphLinksModel.html#nodeIsGroupProperty" class="tsd-kind-icon">node<wbr>IsGroup<wbr>Property</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#addLabelKeyForLinkData" class="tsd-kind-icon">add<wbr>Label<wbr>Key<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#addLinkData" class="tsd-kind-icon">add<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#addLinkDataCollection" class="tsd-kind-icon">add<wbr>Link<wbr>Data<wbr>Collection</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#containsLinkData" class="tsd-kind-icon">contains<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#copyLinkData" class="tsd-kind-icon">copy<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#copyNodeData" class="tsd-kind-icon">copy<wbr>Node<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#findLinkDataForKey" class="tsd-kind-icon">find<wbr>Link<wbr>Data<wbr>For<wbr>Key</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#getCategoryForLinkData" class="tsd-kind-icon">get<wbr>Category<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#getFromKeyForLinkData" class="tsd-kind-icon">get<wbr>From<wbr>Key<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#getFromPortIdForLinkData" class="tsd-kind-icon">get<wbr>From<wbr>Port<wbr>IdFor<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#getGroupKeyForNodeData" class="tsd-kind-icon">get<wbr>Group<wbr>Key<wbr>For<wbr>Node<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#getKeyForLinkData" class="tsd-kind-icon">get<wbr>Key<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#getLabelKeysForLinkData" class="tsd-kind-icon">get<wbr>Label<wbr>Keys<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#getToKeyForLinkData" class="tsd-kind-icon">get<wbr>ToKey<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#getToPortIdForLinkData" class="tsd-kind-icon">get<wbr>ToPort<wbr>IdFor<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#isGroupForNodeData" class="tsd-kind-icon">is<wbr>Group<wbr>For<wbr>Node<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#makeLinkDataKeyUnique" class="tsd-kind-icon">make<wbr>Link<wbr>Data<wbr>Key<wbr>Unique</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#removeLabelKeyForLinkData" class="tsd-kind-icon">remove<wbr>Label<wbr>Key<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#removeLinkData" class="tsd-kind-icon">remove<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#removeLinkDataCollection" class="tsd-kind-icon">remove<wbr>Link<wbr>Data<wbr>Collection</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setCategoryForLinkData" class="tsd-kind-icon">set<wbr>Category<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setDataProperty" class="tsd-kind-icon">set<wbr>Data<wbr>Property</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setFromKeyForLinkData" class="tsd-kind-icon">set<wbr>From<wbr>Key<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setFromPortIdForLinkData" class="tsd-kind-icon">set<wbr>From<wbr>Port<wbr>IdFor<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setGroupKeyForNodeData" class="tsd-kind-icon">set<wbr>Group<wbr>Key<wbr>For<wbr>Node<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setKeyForLinkData" class="tsd-kind-icon">set<wbr>Key<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setLabelKeysForLinkData" class="tsd-kind-icon">set<wbr>Label<wbr>Keys<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setToKeyForLinkData" class="tsd-kind-icon">set<wbr>ToKey<wbr>For<wbr>Link<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="GraphLinksModel.html#setToPortIdForLinkData" class="tsd-kind-icon">set<wbr>ToPort<wbr>IdFor<wbr>Link<wbr>Data</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Constructors</h2>
<section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class">
<a name="constructor" class="tsd-anchor"></a>
<h3>
constructor
</h3>
<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">new <wbr>Graph<wbr>Links<wbr>Model<span class="tsd-signature-symbol">(</span>nodedataarray<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span>, linkdataarray<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="GraphLinksModel.html" class="tsd-signature-type">GraphLinksModel</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>This constructs an empty GraphLinksModel unless one provides arguments as the initial data array values
for the <a href="Model.html#nodeDataArray">Model.nodeDataArray</a> and <a href="GraphLinksModel.html#linkDataArray">GraphLinksModel.linkDataArray</a> properties.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> nodedataarray: <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span></h5>
<div class="tsd-comment tsd-typography">
<p>an optional Array containing JavaScript objects to be represented by Nodes.</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> linkdataarray: <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span></h5>
<div class="tsd-comment tsd-typography">
<p>an optional Array containing JavaScript objects to be represented by Links.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="GraphLinksModel.html" class="tsd-signature-type">GraphLinksModel</a></h4>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="archetypeNodeData" class="tsd-anchor"></a>
<h3>
archetype<wbr>Node<wbr>Data
<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets a data object that will be copied and added to the model as a new node data each time there
is a link reference (either the &quot;to&quot; or the &quot;from&quot; of a link data) to a node key that does not yet exist in the model.</p>
<p>The default value is null -- node data is not automatically copied and added to the model
when there is an unresolved reference in a link data.
When adding or modifying a link data if there is a &quot;from&quot; or &quot;to&quot; key value for which <a href="Model.html#findNodeDataForKey">Model.findNodeDataForKey</a> returns null,
it will call <a href="Model.html#copyNodeData">Model.copyNodeData</a> on this property value and <a href="Model.html#addNodeData">Model.addNodeData</a> on the result.</p>
<dl class="tsd-comment-tags">
<dt>since</dt>
<dd><p>1.1</p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="copyLinkDataFunction" class="tsd-anchor"></a>
<h3>
copy<wbr>Link<wbr>Data<wbr>Function
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">: </span><a href="GraphLinksModel.html" class="tsd-signature-type">GraphLinksModel</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets a function that makes a copy of a link data object.</p>
<p>You may need to set this property in order to ensure that a copied <a href="Link.html">Link</a> is bound
to data that does not share certain data structures between the original link data and the copied link data.
This property value may be null in order to cause <a href="GraphLinksModel.html#copyLinkData">copyLinkData</a> to make a shallow copy of a JavaScript Object.
The default value is null.</p>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="linkCategoryProperty" class="tsd-anchor"></a>
<h3>
link<wbr>Category<wbr>Property
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the data property that returns a string naming that data&#39;s category,
The value may also be a function taking two arguments, where the first argument will be a link data object.
If the second argument is not supplied, the function should return the category name;
if the second argument is supplied, the function should modify the link data object so that it has that new category name.
The default value is the name &#39;category&#39;, meaning that it expects the data to have a property named &#39;category&#39; if it cares to name the category for the Link.
This is used by the diagram to distinguish between different kinds of links.
The name must not be null.
If the value is an empty string,
<a href="GraphLinksModel.html#getCategoryForLinkData">getCategoryForLinkData</a> will return an empty string for all link data objects.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#getCategoryForLinkData">getCategoryForLinkData</a>, <a href="GraphLinksModel.html#setCategoryForLinkData">setCategoryForLinkData</a></p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="linkDataArray" class="tsd-anchor"></a>
<h3>
link<wbr>Data<wbr>Array
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the array of link data objects that correspond to <a href="Link.html">Link</a>s in the <a href="Diagram.html">Diagram</a>.
The initial value is an empty Array.</p>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="linkFromKeyProperty" class="tsd-anchor"></a>
<h3>
link<wbr>From<wbr>Key<wbr>Property
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the data property that returns
the key of the node data that the link data is coming from.
The value may also be a function taking two arguments, where the first argument will be a link data object.
If the second argument is not supplied, the function should return the key of the link&#39;s source node;
if the second argument is supplied, the function should modify the link data object so that it has that new key
(which may be undefined to refer to no node) as the identifier to the &quot;from&quot; node.
The default value is the name &#39;from&#39;, meaning that it expects the data to have a property named &#39;from&#39; to refer to the link&#39;s source node.
The name must not be null.
If the value is an empty string,
<a href="GraphLinksModel.html#getFromKeyForLinkData">getFromKeyForLinkData</a> will return undefined for all link data objects.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#getFromKeyForLinkData">getFromKeyForLinkData</a>, <a href="GraphLinksModel.html#setFromKeyForLinkData">setFromKeyForLinkData</a></p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="linkFromPortIdProperty" class="tsd-anchor"></a>
<h3>
link<wbr>From<wbr>Port<wbr>IdProperty
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the data property that returns
the optional parameter naming a &quot;port&quot; element on the node that the link data is connected from.
The value may also be a function taking two arguments, where the first argument will be a link data object.
If the second argument is not supplied, the function should return the string identifier of the link&#39;s source port;
if the second argument is supplied, the function should modify the link data object so that it has that string as the identifier to the &quot;from&quot; port.
The default value is the empty string indicating that one cannot distinguish
different logical connection points for any links.
The name must not be null nor the value of <a href="GraphLinksModel.html#linkFromKeyProperty">linkFromKeyProperty</a> or <a href="GraphLinksModel.html#linkToKeyProperty">linkToKeyProperty</a>.
If the value is an empty string,
<a href="GraphLinksModel.html#getFromPortIdForLinkData">getFromPortIdForLinkData</a> will return an empty string for all link data objects.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#getFromPortIdForLinkData">getFromPortIdForLinkData</a>, <a href="GraphLinksModel.html#setFromPortIdForLinkData">setFromPortIdForLinkData</a></p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="linkKeyProperty" class="tsd-anchor"></a>
<h3>
link<wbr>Key<wbr>Property
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the data property that returns a unique id number or string for each link data object.
The value may also be a function taking two arguments, where the first argument will be a link data object.
If the second argument is not supplied, the function should return the unique string or number key for that link data object;
if the second argument is supplied, the function should modify the link data object so that it has that string or number as the unique key for that link.
The default value is the empty string, which means the model will not maintain a key property value on link data objects.
The name must not be null.</p>
<p>When this property has a value of an empty string (the default value),
<a href="GraphLinksModel.html#getKeyForLinkData">getKeyForLinkData</a> will return undefined, and <a href="GraphLinksModel.html#findLinkDataForKey">findLinkDataForKey</a> will always return null.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#getKeyForLinkData">getKeyForLinkData</a></p>
</dd>
<dt>since</dt>
<dd><p>1.6</p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="linkLabelKeysProperty" class="tsd-anchor"></a>
<h3>
link<wbr>Label<wbr>Keys<wbr>Property
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">&gt;</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the data property that returns
an array of keys of node data that are labels on that link data.
The value may also be a function taking two arguments, where the first argument will be a link data object.
If the second argument is not supplied, the function should return the array of label node keys for the link;
if the second argument is supplied, the function should modify the link data object so that it holds that Array of node keys as references to label nodes.
The default value is the empty string: &#39;&#39;, meaning that the model does not support links owning label nodes.</p>
<p>The name must not be null.
If the value is an empty string,
<a href="GraphLinksModel.html#getLabelKeysForLinkData">getLabelKeysForLinkData</a> will return an empty array for all link data objects.
You will need to set this property in order to support nodes as link labels.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#getLabelKeysForLinkData">getLabelKeysForLinkData</a>, <a href="GraphLinksModel.html#setLabelKeysForLinkData">setLabelKeysForLinkData</a></p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="linkToKeyProperty" class="tsd-anchor"></a>
<h3>
link<wbr>ToKey<wbr>Property
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the data property that returns
the key of the node data that the link data is going to,
The value may also be a function taking two arguments, where the first argument will be a link data object.
If the second argument is not supplied, the function should return the key of the link&#39;s destination node;
if the second argument is supplied, the function should modify the link data object so that it has that new key
(which may be undefined to refer to no node) as the identifier to the &quot;to&quot; node.
The default value is the name &#39;to&#39;, meaning that it expects the data to have a property named &#39;to&#39; to refer to the link&#39;s destination node.
The name must not be null.
If the value is an empty string,
<a href="GraphLinksModel.html#getToKeyForLinkData">getToKeyForLinkData</a> will return undefined for all link data objects.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#getToKeyForLinkData">getToKeyForLinkData</a>, <a href="GraphLinksModel.html#setToKeyForLinkData">setToKeyForLinkData</a></p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="linkToPortIdProperty" class="tsd-anchor"></a>
<h3>
link<wbr>ToPort<wbr>IdProperty
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the data property that returns
the optional parameter naming a &quot;port&quot; element on the node that the link data is connected to.
The value may also be a function taking two arguments, where the first argument will be a link data object.
If the second argument is not supplied, the function should return the string identifier of the link&#39;s destination port;
if the second argument is supplied, the function should modify the link data object so that it has that string as the identifier to the &quot;to&quot; port.
The default value is the empty string indicating that one cannot distinguish
different logical connection points for any links.
The name must not be null nor the value of <a href="GraphLinksModel.html#linkFromKeyProperty">linkFromKeyProperty</a> or <a href="GraphLinksModel.html#linkToKeyProperty">linkToKeyProperty</a>.
If the value is an empty string,
<a href="GraphLinksModel.html#getToPortIdForLinkData">getToPortIdForLinkData</a> will return an empty string for all link data objects.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#getToPortIdForLinkData">getToPortIdForLinkData</a>, <a href="GraphLinksModel.html#setToPortIdForLinkData">setToPortIdForLinkData</a></p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="makeUniqueLinkKeyFunction" class="tsd-anchor"></a>
<h3>
make<wbr>Unique<wbr>Link<wbr>Key<wbr>Function
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="GraphLinksModel.html" class="tsd-signature-type">GraphLinksModel</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets a function that returns a unique id number or string for a link data object.
This function is called by <a href="GraphLinksModel.html#makeLinkDataKeyUnique">makeLinkDataKeyUnique</a>
when a link data object is added to the model, either as part of a new
<a href="GraphLinksModel.html#linkDataArray">linkDataArray</a> or by a call to <a href="GraphLinksModel.html#addLinkData">addLinkData</a>, to make sure the value of
<a href="GraphLinksModel.html#getKeyForLinkData">getKeyForLinkData</a> is unique within the model.
However it will not be called when <a href="GraphLinksModel.html#linkKeyProperty">linkKeyProperty</a> is the default value, an empty string.</p>
<p>The value may be null in order to cause <a href="GraphLinksModel.html#makeLinkDataKeyUnique">makeLinkDataKeyUnique</a> behave in the standard manner.
(The default value is null.)
You may want to supply a function here in order to make sure all of the automatically generated keys
are in a particular format.
Setting this property after setting <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a> has no real effect until there is a call
to <a href="GraphLinksModel.html#addLinkData">addLinkData</a>.</p>
<p>If a link data object is already in the model and you want to change its key value,
call <a href="GraphLinksModel.html#setKeyForLinkData">setKeyForLinkData</a> with a new and unique key.</p>
<dl class="tsd-comment-tags">
<dt>since</dt>
<dd><p>1.6</p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="nodeGroupKeyProperty" class="tsd-anchor"></a>
<h3>
node<wbr>Group<wbr>Key<wbr>Property
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the property on node data that specifies
the string or number key of the group data that &quot;owns&quot; that node data.
The value may also be a function taking two arguments, where the first argument will be a node data object.
If the second argument is not supplied, the function should return the string or number key for the group data object of which the given data object is a member;
if the second argument is supplied, the function should modify the node data object so that it has that new key
(which may be undefined to refer to no node) as the containing group key for that node.
The default value is the name &#39;group&#39;, meaning that it expects the data to have a property named &#39;group&#39; to refer to any containing group.</p>
<p>The value must not be null.
If the value is an empty string,
<a href="GraphLinksModel.html#getGroupKeyForNodeData">getGroupKeyForNodeData</a> will return undefined for all node data objects.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#getGroupKeyForNodeData">getGroupKeyForNodeData</a>, <a href="GraphLinksModel.html#setGroupKeyForNodeData">setGroupKeyForNodeData</a></p>
</dd>
</dl>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class">
<a name="nodeIsGroupProperty" class="tsd-anchor"></a>
<h3>
node<wbr>IsGroup<wbr>Property
<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">function</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">a</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">b</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span> </h3>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets or sets the name of the boolean property on node data that indicates
whether the data should be represented as a group of nodes and links or as a simple node.
The value may also be a function taking two arguments, where the first argument will be a node data object.
If the second argument is not supplied, the function should return true if the node data object should be represented by a Group and false otherwise.
At the current time the function will not be called to change whether the node is a group or not.
The default value is the name &#39;isGroup&#39;, meaning that it expects the data to have a property named &#39;isGroup&#39; on those node data objects that should be represented by Groups.</p>
<p>The value must not be null.
If the value is an empty string,
<a href="GraphLinksModel.html#isGroupForNodeData">isGroupForNodeData</a> will return false for all node data objects.</p>
<p>If you want to set this property you must do so before using the model, and especially before you assign <a href="Diagram.html#model">Diagram.model</a>.
Note that functions cannot be serialized into JSON-formatted text, so if you are using <a href="Model.html#toJson">toJson</a> and <a href="Model.html#static-fromJson">Model.fromJson</a>,
and if you want this property to be a function, you will need to assign this property to your desired function
immediately after creating the model, including when it is created by <a href="Model.html#static-fromJson">Model.fromJson</a>.</p>
</div>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="addLabelKeyForLinkData" class="tsd-anchor"></a>
<h3>
add<wbr>Label<wbr>Key<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">add<wbr>Label<wbr>Key<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, key<span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Adds a node key value that identifies a node data acting as a new label node on the given link data.</p>
<p>This method only works if <a href="GraphLinksModel.html#linkLabelKeysProperty">linkLabelKeysProperty</a> has been set to something other than an empty string.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#removeLabelKeyForLinkData">removeLabelKeyForLinkData</a>, <a href="GraphLinksModel.html#setLabelKeysForLinkData">setLabelKeysForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
<li>
<h5>key: <a href="../index.html#Key" class="tsd-signature-type">Key</a></h5>
<div class="tsd-comment tsd-typography">
<p>a number or string that is the key of the new label node.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="addLinkData" class="tsd-anchor"></a>
<h3>
add<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">add<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>When you want to add a link to the diagram, call this method with a new data object.
This will add that data to the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a> and
notify all listeners that a new link data object has been inserted into the collection.</p>
<p>Presumably the link data object will already have its &quot;from&quot; and &quot;to&quot; node key references set,
but it is also possible to set them after the link data is in the model
by calling <a href="GraphLinksModel.html#setFromKeyForLinkData">setFromKeyForLinkData</a> and <a href="GraphLinksModel.html#setToKeyForLinkData">setToKeyForLinkData</a>.</p>
<p>This operation does nothing if the link data is already part of this model&#39;s <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#removeLinkData">removeLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="addLinkDataCollection" class="tsd-anchor"></a>
<h3>
add<wbr>Link<wbr>Data<wbr>Collection
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">add<wbr>Link<wbr>Data<wbr>Collection<span class="tsd-signature-symbol">(</span>coll<span class="tsd-signature-symbol">: </span><a href="Iterable.html" class="tsd-signature-type">Iterable</a><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Add to this model all of the link data held in an Array or in an <a href="Iterable.html">Iterable</a> of link data objects.</p>
<dl class="tsd-comment-tags">
<dt>since</dt>
<dd><p>1.3</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>coll: <a href="Iterable.html" class="tsd-signature-type">Iterable</a><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span></h5>
<div class="tsd-comment tsd-typography">
<p>a collection of link data objects to add to the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a></p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="containsLinkData" class="tsd-anchor"></a>
<h3>
contains<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">contains<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Decide if a given link data object is in this model, using reference equality.</p>
<p>If you do not have a reference to the particular data object that is in the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a>,
you may need to search for it by iterating through that Array, or (more likely),
by finding the desired <a href="Link.html">Link</a> in a <a href="Diagram.html">Diagram</a> and getting that link&#39;s <a href="Panel.html#data">Panel.data</a>.</p>
<p>Note that because link data are not assumed to be have a unique key property
they cannot be found using an index that this model would maintain.
However you may choose to provide such a property on the link data objects
and maintain your own index.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#addLinkData">addLinkData</a>, <a href="GraphLinksModel.html#removeLinkData">removeLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="copyLinkData" class="tsd-anchor"></a>
<h3>
copy<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">copy<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Make a copy of a link data object.
This uses the value of <a href="GraphLinksModel.html#copyLinkDataFunction">copyLinkDataFunction</a> to actually perform the copy,
unless it is null, in which case this method just makes a shallow copy of the JavaScript Object.</p>
<p>This does not modify the model -- the returned data object is not added to this model.
This assumes that the data&#39;s constructor can be called with no arguments.
This also makes sure there is no reference to either the &quot;from&quot; or the &quot;to&quot; node of the original data.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#addLinkData">addLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="copyNodeData" class="tsd-anchor"></a>
<h3>
<span class="tsd-flag ts-flagVirtual">Virtual</span> <span class="tsd-flag ts-flagOverride">Override</span>
copy<wbr>Node<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">copy<wbr>Node<wbr>Data<span class="tsd-signature-symbol">(</span>nodedata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>This override also makes sure any copied node data does not have a reference to the containing group.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="Model.html#copyNodeData">Model.copyNodeData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>nodedata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a node, group, or non-link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns
<a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>
<span class="tsd-signature-symbol"> | </span>
<span class="tsd-signature-type">null</span>
</h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="findLinkDataForKey" class="tsd-anchor"></a>
<h3>
find<wbr>Link<wbr>Data<wbr>For<wbr>Key
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">find<wbr>Link<wbr>Data<wbr>For<wbr>Key<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Given a number or string, find the link data object in this model
that uses the given value as its unique key.</p>
<p>Unless <a href="GraphLinksModel.html#linkKeyProperty">linkKeyProperty</a> is set to a non-empty string, this model
will not automatically assign unique key values for link data objects,
and thus this method will always return null.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#containsLinkData">containsLinkData</a>, <a href="GraphLinksModel.html#getKeyForLinkData">getKeyForLinkData</a></p>
</dd>
<dt>since</dt>
<dd><p>1.6</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>key: <a href="../index.html#Key" class="tsd-signature-type">Key</a></h5>
<div class="tsd-comment tsd-typography">
<p>a string or a number.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns
<a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>
<span class="tsd-signature-symbol"> | </span>
<span class="tsd-signature-type">null</span>
</h4>
<p>null if the key is not present in the model,
or if the key is null or undefined or not a string or number.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getCategoryForLinkData" class="tsd-anchor"></a>
<h3>
get<wbr>Category<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>Category<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Find the category of a given link data, a string naming the link template
that the <a href="Diagram.html">Diagram</a> should use to represent the link data.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkCategoryProperty">linkCategoryProperty</a>, <a href="GraphLinksModel.html#setCategoryForLinkData">setCategoryForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getFromKeyForLinkData" class="tsd-anchor"></a>
<h3>
get<wbr>From<wbr>Key<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>From<wbr>Key<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>From a link data retrieve a value uniquely identifying the node data
from which this link is connected.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkFromKeyProperty">linkFromKeyProperty</a>, <a href="GraphLinksModel.html#setFromKeyForLinkData">setFromKeyForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../index.html#Key" class="tsd-signature-type">Key</a></h4>
<p>This may return undefined if
the link is not coming from any node.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getFromPortIdForLinkData" class="tsd-anchor"></a>
<h3>
get<wbr>From<wbr>Port<wbr>IdFor<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>From<wbr>Port<wbr>IdFor<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>From a link data retrieve a value identifying the port object of the node
from which this link is connected.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkFromPortIdProperty">linkFromPortIdProperty</a>, <a href="GraphLinksModel.html#setFromPortIdForLinkData">setFromPortIdForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
<p>This may return the empty string if
there is no particular port parameter information.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getGroupKeyForNodeData" class="tsd-anchor"></a>
<h3>
get<wbr>Group<wbr>Key<wbr>For<wbr>Node<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>Group<wbr>Key<wbr>For<wbr>Node<wbr>Data<span class="tsd-signature-symbol">(</span>nodedata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>If there is a container group for the given node data, return the group&#39;s key.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#nodeGroupKeyProperty">nodeGroupKeyProperty</a>, <a href="GraphLinksModel.html#setGroupKeyForNodeData">setGroupKeyForNodeData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>nodedata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a node, group, or non-link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../index.html#Key" class="tsd-signature-type">Key</a></h4>
<p>This returns undefined if there is no containing group data.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getKeyForLinkData" class="tsd-anchor"></a>
<h3>
get<wbr>Key<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>Key<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Given a link data object return its unique key: a number or a string.
This returns undefined if there is no key value.
Unless <a href="GraphLinksModel.html#linkKeyProperty">linkKeyProperty</a> is set to a non-empty string, this model
will not automatically assign unique key values for link data objects.</p>
<p>It is possible to change the key for a link data object by calling <a href="GraphLinksModel.html#setKeyForLinkData">setKeyForLinkData</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkKeyProperty">linkKeyProperty</a>, <a href="GraphLinksModel.html#setKeyForLinkData">setKeyForLinkData</a>, <a href="GraphLinksModel.html#findLinkDataForKey">findLinkDataForKey</a></p>
</dd>
<dt>since</dt>
<dd><p>1.6</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../index.html#Key" class="tsd-signature-type">Key</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getLabelKeysForLinkData" class="tsd-anchor"></a>
<h3>
get<wbr>Label<wbr>Keys<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>Label<wbr>Keys<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Gets an Array of node key values that identify node data acting as labels on the given link data.</p>
<p>This method only works if <a href="GraphLinksModel.html#linkLabelKeysProperty">linkLabelKeysProperty</a> has been set to something other than an empty string.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkLabelKeysProperty">linkLabelKeysProperty</a>, <a href="GraphLinksModel.html#setLabelKeysForLinkData">setLabelKeysForLinkData</a>, <a href="GraphLinksModel.html#addLabelKeyForLinkData">addLabelKeyForLinkData</a>, <a href="GraphLinksModel.html#removeLabelKeyForLinkData">removeLabelKeyForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">&gt;</span></h4>
<p>an Array of node keys; an empty Array if the property was not present.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getToKeyForLinkData" class="tsd-anchor"></a>
<h3>
get<wbr>ToKey<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>ToKey<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>From a link data retrieve a value uniquely identifying the node data
to which this link is connected.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkToKeyProperty">linkToKeyProperty</a>, <a href="GraphLinksModel.html#setToKeyForLinkData">setToKeyForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../index.html#Key" class="tsd-signature-type">Key</a></h4>
<p>This may return undefined if
the link is not going to any node.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getToPortIdForLinkData" class="tsd-anchor"></a>
<h3>
get<wbr>ToPort<wbr>IdFor<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>ToPort<wbr>IdFor<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>From a link data retrieve a value identifying the port object of the node
to which this link is connected.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkToPortIdProperty">linkToPortIdProperty</a>, <a href="GraphLinksModel.html#setToPortIdForLinkData">setToPortIdForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
<p>This may return the empty string if
there is no particular port parameter information.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="isGroupForNodeData" class="tsd-anchor"></a>
<h3>
is<wbr>Group<wbr>For<wbr>Node<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">is<wbr>Group<wbr>For<wbr>Node<wbr>Data<span class="tsd-signature-symbol">(</span>nodedata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>See if the given node data should be represented as a group or as a simple node.</p>
<p>This value must not change as long as the node data is part of the model.
At the current time there is no <code>setIsGroupForNodeData</code> method.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#nodeIsGroupProperty">nodeIsGroupProperty</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>nodedata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a node, group, or non-link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="makeLinkDataKeyUnique" class="tsd-anchor"></a>
<h3>
make<wbr>Link<wbr>Data<wbr>Key<wbr>Unique
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">make<wbr>Link<wbr>Data<wbr>Key<wbr>Unique<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>This method is called when a link data object is added to the model to make sure that
<a href="GraphLinksModel.html#getKeyForLinkData">getKeyForLinkData</a> returns a unique key value.</p>
<p>The key value should be unique within the set of data managed by this model:
<a href="GraphLinksModel.html#linkDataArray">linkDataArray</a>.
If the key is already in use, this will assign an unused number to the
<a href="GraphLinksModel.html#linkKeyProperty">linkKeyProperty</a> property on the data.</p>
<p>If you want to customize the way in which link data gets a unique key,
you can set the <a href="Model.html#makeUniqueKeyFunction">makeUniqueKeyFunction</a> functional property.</p>
<p>If the link data object is already in the model and you want to change its key value,
call <a href="GraphLinksModel.html#setKeyForLinkData">setKeyForLinkData</a> and give it a new unique key value.</p>
<dl class="tsd-comment-tags">
<dt>since</dt>
<dd><p>1.6</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="removeLabelKeyForLinkData" class="tsd-anchor"></a>
<h3>
remove<wbr>Label<wbr>Key<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">remove<wbr>Label<wbr>Key<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, key<span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Removes a node key value that identifies a node data acting as a former label node on the given link data.</p>
<p>Removing a reference to a node data from the collection of link label keys
does not automatically remove any node data from the model.</p>
<p>This method only works if <a href="GraphLinksModel.html#linkLabelKeysProperty">linkLabelKeysProperty</a> has been set to something other than an empty string.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#addLabelKeyForLinkData">addLabelKeyForLinkData</a>, <a href="GraphLinksModel.html#setLabelKeysForLinkData">setLabelKeysForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
<li>
<h5>key: <a href="../index.html#Key" class="tsd-signature-type">Key</a></h5>
<div class="tsd-comment tsd-typography">
<p>a number or string that is the key of the label node being removed from the link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="removeLinkData" class="tsd-anchor"></a>
<h3>
remove<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">remove<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>When you want to remove a link from the diagram, call this method with an existing link data object.
This will remove that data object from the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a> and
notify all listeners that a link data object has been removed from the collection.</p>
<p>If you do not have a reference to the particular data object that is in the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a>,
you may need to search for it by iterating through that Array, or (more likely),
by finding the desired <a href="Link.html">Link</a> in a <a href="Diagram.html">Diagram</a> and getting that link&#39;s <a href="Panel.html#data">Panel.data</a>.</p>
<p>Removing a link data from a model does not automatically remove
any associated label node data from the model.</p>
<p>This operation does nothing if the link data is not present in the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a>.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#addLinkData">addLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="removeLinkDataCollection" class="tsd-anchor"></a>
<h3>
remove<wbr>Link<wbr>Data<wbr>Collection
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">remove<wbr>Link<wbr>Data<wbr>Collection<span class="tsd-signature-symbol">(</span>coll<span class="tsd-signature-symbol">: </span><a href="Iterable.html" class="tsd-signature-type">Iterable</a><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Remove from this model all of the link data held in an Array or in an <a href="Iterable.html">Iterable</a> of link data objects.</p>
<dl class="tsd-comment-tags">
<dt>since</dt>
<dd><p>1.3</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>coll: <a href="Iterable.html" class="tsd-signature-type">Iterable</a><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a><span class="tsd-signature-symbol">&gt;</span></h5>
<div class="tsd-comment tsd-typography">
<p>a collection of link data objects to remove from the <a href="GraphLinksModel.html#linkDataArray">linkDataArray</a></p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setCategoryForLinkData" class="tsd-anchor"></a>
<h3>
set<wbr>Category<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Category<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, cat<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Change the category of a given link data, a string naming the link template
that the <a href="Diagram.html">Diagram</a> should use to represent the link data.</p>
<p>Changing the link template for a link data will cause the existing <a href="Link.html">Link</a>
to be removed from the <a href="Diagram.html">Diagram</a> and be replaced with a new <a href="Link.html">Link</a>
created by copying the new link template and applying any data-bindings.
Note that the new template must be an instance of the same class as the original link.
Thus one cannot change the category of a link from an instance of <a href="Link.html">Link</a>
to an instance of a subclass of Link, nor vice-versa.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkCategoryProperty">linkCategoryProperty</a>, <a href="GraphLinksModel.html#getCategoryForLinkData">getCategoryForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
<li>
<h5>cat: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>Must not be null.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setDataProperty" class="tsd-anchor"></a>
<h3>
<span class="tsd-flag ts-flagVirtual">Virtual</span> <span class="tsd-flag ts-flagOverride">Override</span>
set<wbr>Data<wbr>Property
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Data<wbr>Property<span class="tsd-signature-symbol">(</span>data<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, propname<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, val<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>This override changes the value of some property of a node data, a link data, or an item data, given a string naming the property
and the new value, in a manner that can be undone/redone and that automatically updates any bindings.
This override handles link data as well as node data.</p>
<p>This gets the old value of the property; if the value is the same as the new value, no side-effects occur.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="Model.html#setDataProperty">Model.setDataProperty</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>data: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object typically the value of a <a href="Panel.html#data">Panel.data</a> and represented by a Node, Link, Group, simple Part,
or item in a <a href="Panel.html#itemArray">Panel.itemArray</a>; or this model&#39;s <a href="Model.html#modelData">modelData</a>.</p>
</div>
</li>
<li>
<h5>propname: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>a string that is not null or the empty string.</p>
</div>
</li>
<li>
<h5>val: <span class="tsd-signature-type">any</span></h5>
<div class="tsd-comment tsd-typography">
<p>the new value for the property.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setFromKeyForLinkData" class="tsd-anchor"></a>
<h3>
set<wbr>From<wbr>Key<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>From<wbr>Key<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, key<span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Change the node key that the given link data references as the
source of the link.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkFromKeyProperty">linkFromKeyProperty</a>, <a href="GraphLinksModel.html#getFromKeyForLinkData">getFromKeyForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
<li>
<h5>key: <a href="../index.html#Key" class="tsd-signature-type">Key</a></h5>
<div class="tsd-comment tsd-typography">
<p>This may be undefined if
the link should no longer come from any node.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setFromPortIdForLinkData" class="tsd-anchor"></a>
<h3>
set<wbr>From<wbr>Port<wbr>IdFor<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>From<wbr>Port<wbr>IdFor<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, portname<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Change the information that the given link data uses to identify the
particular &quot;port&quot; that the link is coming from.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkFromPortIdProperty">linkFromPortIdProperty</a>, <a href="GraphLinksModel.html#getFromPortIdForLinkData">getFromPortIdForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
<li>
<h5>portname: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>This may be the empty string if
the link should no longer be associated with any particular &quot;port&quot;.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setGroupKeyForNodeData" class="tsd-anchor"></a>
<h3>
set<wbr>Group<wbr>Key<wbr>For<wbr>Node<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Group<wbr>Key<wbr>For<wbr>Node<wbr>Data<span class="tsd-signature-symbol">(</span>nodedata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, key<span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Change the container group for the given node data, given a key for the new group.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#nodeGroupKeyProperty">nodeGroupKeyProperty</a>, <a href="GraphLinksModel.html#getGroupKeyForNodeData">getGroupKeyForNodeData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>nodedata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a node, group, or non-link.</p>
</div>
</li>
<li>
<h5>key: <a href="../index.html#Key" class="tsd-signature-type">Key</a></h5>
<div class="tsd-comment tsd-typography">
<p>This may be undefined if there should be no containing group data.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setKeyForLinkData" class="tsd-anchor"></a>
<h3>
set<wbr>Key<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Key<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, key<span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Change the unique key of a given link data that is already in this model.
The new key value must be unique -- i.e. not in use by another link data object.
You can call <a href="GraphLinksModel.html#findLinkDataForKey">findLinkDataForKey</a> to check if a proposed new key is already in use.</p>
<p>If this is called when <a href="GraphLinksModel.html#linkKeyProperty">linkKeyProperty</a> is the empty string (i.e. its default value),
this method has no effect.
If this is called on a link data object that is not (yet) in this model,
this unconditionally modifies the property to the new key value.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkKeyProperty">linkKeyProperty</a>, <a href="GraphLinksModel.html#getKeyForLinkData">getKeyForLinkData</a></p>
</dd>
<dt>since</dt>
<dd><p>1.6</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link</p>
</div>
</li>
<li>
<h5>key: <a href="../index.html#Key" class="tsd-signature-type">Key</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setLabelKeysForLinkData" class="tsd-anchor"></a>
<h3>
set<wbr>Label<wbr>Keys<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Label<wbr>Keys<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, arr<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Replaces an Array of node key values that identify node data acting as labels on the given link data.</p>
<p>This method only works if <a href="GraphLinksModel.html#linkLabelKeysProperty">linkLabelKeysProperty</a> has been set to something other than an empty string.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkLabelKeysProperty">linkLabelKeysProperty</a>, <a href="GraphLinksModel.html#getLabelKeysForLinkData">getLabelKeysForLinkData</a>, <a href="GraphLinksModel.html#addLabelKeyForLinkData">addLabelKeyForLinkData</a>, <a href="GraphLinksModel.html#removeLabelKeyForLinkData">removeLabelKeyForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
<li>
<h5>arr: <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">&gt;</span></h5>
<div class="tsd-comment tsd-typography">
<p>an Array of node keys; an empty Array if the property was not present.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setToKeyForLinkData" class="tsd-anchor"></a>
<h3>
set<wbr>ToKey<wbr>For<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>ToKey<wbr>For<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, key<span class="tsd-signature-symbol">: </span><a href="../index.html#Key" class="tsd-signature-type">Key</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Change the node key that the given link data references as the
destination of the link.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkToKeyProperty">linkToKeyProperty</a>, <a href="GraphLinksModel.html#getToKeyForLinkData">getToKeyForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
<li>
<h5>key: <a href="../index.html#Key" class="tsd-signature-type">Key</a></h5>
<div class="tsd-comment tsd-typography">
<p>This may be undefined if
the link should no longer go to any node.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setToPortIdForLinkData" class="tsd-anchor"></a>
<h3>
set<wbr>ToPort<wbr>IdFor<wbr>Link<wbr>Data
</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>ToPort<wbr>IdFor<wbr>Link<wbr>Data<span class="tsd-signature-symbol">(</span>linkdata<span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type">ObjectData</a>, portname<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<div class="tsd-comment tsd-typography">
<p>Change the information that the given link data uses to identify the
particular &quot;port&quot; that the link is going to.</p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="GraphLinksModel.html#linkToPortIdProperty">linkToPortIdProperty</a>, <a href="GraphLinksModel.html#getToPortIdForLinkData">getToPortIdForLinkData</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>linkdata: <a href="ObjectData.html" class="tsd-signature-type">ObjectData</a></h5>
<div class="tsd-comment tsd-typography">
<p>a JavaScript object represented by a link.</p>
</div>
</li>
<li>
<h5>portname: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>This may be the empty string if
the link should no longer be associated with any particular &quot;port&quot;.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../index.html"><em>GoJS <wbr>Class <wbr>Index</em></a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="GraphLinksModel.html" class="tsd-kind-icon">Graph<wbr>Links<wbr>Model</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="GraphLinksModel.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#archetypeNodeData" class="tsd-kind-icon">archetype<wbr>Node<wbr>Data</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#copyLinkDataFunction" class="tsd-kind-icon">copy<wbr>Link<wbr>Data<wbr>Function</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#linkCategoryProperty" class="tsd-kind-icon">link<wbr>Category<wbr>Property</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#linkDataArray" class="tsd-kind-icon">link<wbr>Data<wbr>Array</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#linkFromKeyProperty" class="tsd-kind-icon">link<wbr>From<wbr>Key<wbr>Property</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#linkFromPortIdProperty" class="tsd-kind-icon">link<wbr>From<wbr>Port<wbr>IdProperty</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#linkKeyProperty" class="tsd-kind-icon">link<wbr>Key<wbr>Property</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#linkLabelKeysProperty" class="tsd-kind-icon">link<wbr>Label<wbr>Keys<wbr>Property</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#linkToKeyProperty" class="tsd-kind-icon">link<wbr>ToKey<wbr>Property</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#linkToPortIdProperty" class="tsd-kind-icon">link<wbr>ToPort<wbr>IdProperty</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#makeUniqueLinkKeyFunction" class="tsd-kind-icon">make<wbr>Unique<wbr>Link<wbr>Key<wbr>Function</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#nodeGroupKeyProperty" class="tsd-kind-icon">node<wbr>Group<wbr>Key<wbr>Property</a>
</li>
<li class=" tsd-kind-accessor tsd-parent-kind-class">
<a href="GraphLinksModel.html#nodeIsGroupProperty" class="tsd-kind-icon">node<wbr>IsGroup<wbr>Property</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#addLabelKeyForLinkData" class="tsd-kind-icon">add<wbr>Label<wbr>Key<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#addLinkData" class="tsd-kind-icon">add<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#addLinkDataCollection" class="tsd-kind-icon">add<wbr>Link<wbr>Data<wbr>Collection</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#containsLinkData" class="tsd-kind-icon">contains<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#copyLinkData" class="tsd-kind-icon">copy<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#copyNodeData" class="tsd-kind-icon">copy<wbr>Node<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#findLinkDataForKey" class="tsd-kind-icon">find<wbr>Link<wbr>Data<wbr>For<wbr>Key</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#getCategoryForLinkData" class="tsd-kind-icon">get<wbr>Category<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#getFromKeyForLinkData" class="tsd-kind-icon">get<wbr>From<wbr>Key<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#getFromPortIdForLinkData" class="tsd-kind-icon">get<wbr>From<wbr>Port<wbr>IdFor<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#getGroupKeyForNodeData" class="tsd-kind-icon">get<wbr>Group<wbr>Key<wbr>For<wbr>Node<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#getKeyForLinkData" class="tsd-kind-icon">get<wbr>Key<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#getLabelKeysForLinkData" class="tsd-kind-icon">get<wbr>Label<wbr>Keys<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#getToKeyForLinkData" class="tsd-kind-icon">get<wbr>ToKey<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#getToPortIdForLinkData" class="tsd-kind-icon">get<wbr>ToPort<wbr>IdFor<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#isGroupForNodeData" class="tsd-kind-icon">is<wbr>Group<wbr>For<wbr>Node<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#makeLinkDataKeyUnique" class="tsd-kind-icon">make<wbr>Link<wbr>Data<wbr>Key<wbr>Unique</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#removeLabelKeyForLinkData" class="tsd-kind-icon">remove<wbr>Label<wbr>Key<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#removeLinkData" class="tsd-kind-icon">remove<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#removeLinkDataCollection" class="tsd-kind-icon">remove<wbr>Link<wbr>Data<wbr>Collection</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setCategoryForLinkData" class="tsd-kind-icon">set<wbr>Category<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setDataProperty" class="tsd-kind-icon">set<wbr>Data<wbr>Property</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setFromKeyForLinkData" class="tsd-kind-icon">set<wbr>From<wbr>Key<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setFromPortIdForLinkData" class="tsd-kind-icon">set<wbr>From<wbr>Port<wbr>IdFor<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setGroupKeyForNodeData" class="tsd-kind-icon">set<wbr>Group<wbr>Key<wbr>For<wbr>Node<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setKeyForLinkData" class="tsd-kind-icon">set<wbr>Key<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setLabelKeysForLinkData" class="tsd-kind-icon">set<wbr>Label<wbr>Keys<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setToKeyForLinkData" class="tsd-kind-icon">set<wbr>ToKey<wbr>For<wbr>Link<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="GraphLinksModel.html#setToPortIdForLinkData" class="tsd-kind-icon">set<wbr>ToPort<wbr>IdFor<wbr>Link<wbr>Data</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<div class="container-fluid bottom-copyright plr15">
Copyright &copy; 1998-2019 by Northwoods Software Corporation.
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
<script src="../../assets/js/api.js"></script>
<script src="../../assets/js/bootstrap.min.js"></script>
<script>if (location.protocol == 'file:') document.write('<script src="../assets/js/search.js"><' + '/script>');</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-1506307-5', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>