UNPKG

gojs

Version:

Interactive diagrams, charts, and graphs, such as trees, flowcharts, orgcharts, UML, BPMN, or business diagrams

145 lines (143 loc) 42.5 kB
<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ArrangingLayout | GoJS API</title><meta name="description" content="Documentation for GoJS API"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../../assets/css/style.css"/><link rel="stylesheet" href="../assets/style-tsd.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><nav id="navTop" class="w-full z-30 top-0 text-white bg-nwoods-primary"><div class="w-full container max-w-screen-lg mx-auto flex flex-wrap sm:flex-nowrap items-center justify-between mt-0 py-2"><div class="md:pl-4"><a class="text-white hover:text-white no-underline hover:no-underline\n font-bold text-2xl lg:text-4xl rounded-lg hover:bg-nwoods-secondary" href="../../index.html"><h1 class="my-0 p-1 leading-none">GoJS</h1></a></div><button id="topnavButton" class="rounded-lg sm:hidden focus:outline-none focus:ring" aria-label="Navigation"><svg fill="currentColor" viewBox="0 0 20 20" class="w-6 h-6"><path id="topnavOpen" fill-rule="evenodd" d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM9 15a1 1 0 011-1h6a1 1 0 110 2h-6a1 1 0 01-1-1z" clip-rule="evenodd"></path><path id="topnavClosed" class="hidden" fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg></button><div id="topnavList" class="hidden sm:block items-center w-auto mt-0 text-white p-0 z-20"><ul class="list-reset list-none font-semibold flex justify-end flex-wrap sm:flex-nowrap items-center px-0 pb-0"><li class="p-1 sm:p-0"><a class="topnav-link" href="../../learn/index.html">Learn</a></li><li class="p-1 sm:p-0"><a class="topnav-link" href="../../samples/index.html">Samples</a></li><li class="p-1 sm:p-0"><a class="topnav-link" href="../../intro/index.html">Intro</a></li><li class="p-1 sm:p-0"><a class="topnav-link" href="../../api/index.html">API</a></li><li class="p-1 sm:p-0"><a class="topnav-link" href="https://www.nwoods.com/products/register.html">Register</a></li><li class="p-1 sm:p-0"><a class="topnav-link" href="../../download.html">Download</a></li><li class="p-1 sm:p-0"><a class="topnav-link" href="https://forum.nwoods.com/c/gojs/11">Forum</a></li><li class="p-1 sm:p-0"><a class="topnav-link" href="https://www.nwoods.com/contact.html" target="_blank" rel="noopener" id="contactBtn">Contact</a></li><li class="p-1 sm:p-0"><a class="topnav-link" href="https://www.nwoods.com/sales/index.html" target="_blank" rel="noopener" id="buyBtn">Buy</a></li></ul></div></div><hr class="border-b border-gray-600 opacity-50 my-0 py-0"/></nav><div class="tsd-page-header"><div class="tsd-page-toolbar"><div class="w-full max-w-screen-xl mx-auto px-2"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></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> <input type="checkbox" id="tsd-filter-inherited"/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div></div><div class="tsd-page-title"><div class="w-full max-w-screen-xl mx-auto px-2"><div class="top-copyright"><b>GoJS</b>&reg; Diagramming Components<br/>version 2.3.8<br/>by <a href="https://www.nwoods.com/">Northwoods Software®</a></div><div><h1>Class ArrangingLayout <span class="tsd-flag ts-flagExtension">Extension</span> </h1></div></div></div></header><div class="tsd w-full max-w-screen-xl mx-auto pb-4"><div class="row px-2 w-full"><div class="col-8 col-content"><section class="tsd-panel tsd-extension"><p>This is an extension and not part of the main GoJS library. Note that the API for this class may change at any time. If you intend to use an extension in production, you should copy the code to your own source directory. Extensions can be found in the GoJS kit under the <code>extensions</code> (for loading via script tags),<code>extensionsTS</code> (UMD modules), or <code>extensionsJSM</code> (ES6 modules) folders. See the <a href="../../intro/extensions.html">Extensions intro page</a> for more information.</p></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><a href="Layout.html" class="tsd-signature-type" data-tsd-kind="Class">Layout</a><ul class="tsd-hierarchy"><li><span class="target">ArrangingLayout</span></li></ul></li></ul></section><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"> <p>A custom Layout that provides one way to have a layout of layouts. It partitions nodes and links into separate subnetworks, applies a primary layout to each subnetwork, and then arranges those results by an arranging layout. Any disconnected nodes are laid out later by a side layout, by default in a grid underneath the main body of subnetworks.</p> <div><p>If you want to experiment with this extension, try the <a href="../../extensionsJSM/Arranging.html">Arranging Layout</a> sample.</p> <p>This layout uses three separate Layouts.</p> <p>One is used for laying out nodes and links that are connected together: <a href="ArrangingLayout.html#primaryLayout">primaryLayout</a>. This defaults to null and must be set to an instance of a <a href="Layout.html">Layout</a>, such as a <a href="TreeLayout.html">TreeLayout</a> or a <a href="ForceDirectedLayout.html">ForceDirectedLayout</a> or a custom Layout.</p> <p>One is used to arrange separate subnetworks of the main graph: <a href="ArrangingLayout.html#arrangingLayout">arrangingLayout</a>. This defaults to an instance of <a href="GridLayout.html">GridLayout</a>.</p> <p>One is used for laying out the additional nodes along one of the sides of the main graph: <a href="ArrangingLayout.html#sideLayout">sideLayout</a>. This also defaults to an instance of <a href="GridLayout.html">GridLayout</a>. A filter predicate, <a href="ArrangingLayout.html#filter">filter</a>, splits up the collection of nodes and links into two subsets, one for the main layout and one for the side layout. By default, when there is no filter, it puts all nodes that have no link connections into the subset to be processed by the side layout.</p> <p>If all pairs of nodes in the main graph can be reached by some path of undirected links, there are no separate subnetworks, so the <a href="ArrangingLayout.html#arrangingLayout">arrangingLayout</a> need not be used and the <a href="ArrangingLayout.html#primaryLayout">primaryLayout</a> would apply to all of those nodes and links.</p> <p>But if there are disconnected subnetworks, the <a href="ArrangingLayout.html#primaryLayout">primaryLayout</a> is applied to each subnetwork, and then all of those results are arranged by the <a href="ArrangingLayout.html#arrangingLayout">arrangingLayout</a>. If you don&#39;t want to use an <a href="ArrangingLayout.html#arrangingLayout">arrangingLayout</a> and you want to force the <a href="ArrangingLayout.html#primaryLayout">primaryLayout</a> to operate on all of the subnetworks, set <a href="ArrangingLayout.html#arrangingLayout">arrangingLayout</a> to null.</p> <p>In either case if there are any nodes in the side graph, those are arranged by the <a href="ArrangingLayout.html#sideLayout">sideLayout</a> to be on the side of the arrangement of the main graph of nodes and links. The <a href="ArrangingLayout.html#side">side</a> property controls which side they will be placed -- the default is BottomSide.</p> <p>Note: if you do not want to have singleton nodes be arranged by <a href="ArrangingLayout.html#sideLayout">sideLayout</a>, set <a href="ArrangingLayout.html#filter">filter</a> to <code>part => true</code>. That will cause all singleton nodes to be arranged by <a href="ArrangingLayout.html#arrangingLayout">arrangingLayout</a> as if they were each their own subnetwork.</p> <p>If you both don&#39;t want to use <a href="ArrangingLayout.html#sideLayout">sideLayout</a> and you don&#39;t want to use <a href="ArrangingLayout.html#arrangingLayout">arrangingLayout</a> to lay out connected subnetworks, don&#39;t use this ArrangingLayout at all -- just use whatever Layout you would have assigned to <a href="ArrangingLayout.html#primaryLayout">primaryLayout</a>.</p> </div></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 tsd-is-overwrite"><a href="ArrangingLayout.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="ArrangingLayout.html#arrangingLayout" class="tsd-kind-icon">arranging<wbr/>Layout</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#filter" class="tsd-kind-icon">filter</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#primaryLayout" class="tsd-kind-icon">primary<wbr/>Layout</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#side" class="tsd-kind-icon">side</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#sideLayout" class="tsd-kind-icon">side<wbr/>Layout</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#spacing" class="tsd-kind-icon">spacing</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="ArrangingLayout.html#moveSideCollection" class="tsd-kind-icon">move<wbr/>Side<wbr/>Collection</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#moveSubgraph" class="tsd-kind-icon">move<wbr/>Subgraph</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#preparePrimaryLayout" class="tsd-kind-icon">prepare<wbr/>Primary<wbr/>Layout</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#prepareSideLayout" class="tsd-kind-icon">prepare<wbr/>Side<wbr/>Layout</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#splitParts" class="tsd-kind-icon">split<wbr/>Parts</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-index-group tsd-is-inherited"><h2>Inherited Members</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section undefined"><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#arrangementOrigin" class="tsd-kind-icon">Layout.arrangement<wbr/>Origin</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#boundsComputation" class="tsd-kind-icon">Layout.bounds<wbr/>Computation</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#diagram" class="tsd-kind-icon">Layout.diagram</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#group" class="tsd-kind-icon">Layout.group</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#isInitial" class="tsd-kind-icon">Layout.is<wbr/>Initial</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#isOngoing" class="tsd-kind-icon">Layout.is<wbr/>Ongoing</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#isRealtime" class="tsd-kind-icon">Layout.is<wbr/>Realtime</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#isRouting" class="tsd-kind-icon">Layout.is<wbr/>Routing</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#isValidLayout" class="tsd-kind-icon">Layout.is<wbr/>Valid<wbr/>Layout</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#isViewportSized" class="tsd-kind-icon">Layout.is<wbr/>Viewport<wbr/>Sized</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="Layout.html#network" class="tsd-kind-icon">Layout.network</a></li></ul></section><section class="tsd-index-section undefined"><h3>Methods</h3><ul class="tsd-index-list"><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="Layout.html#collectParts" class="tsd-kind-icon">Layout.collect<wbr/>Parts</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="Layout.html#commitLayout" class="tsd-kind-icon">Layout.commit<wbr/>Layout</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="Layout.html#copy" class="tsd-kind-icon">Layout.copy</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="Layout.html#createNetwork" class="tsd-kind-icon">Layout.create<wbr/>Network</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="Layout.html#getLayoutBounds" class="tsd-kind-icon">Layout.get<wbr/>Layout<wbr/>Bounds</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="Layout.html#initialOrigin" class="tsd-kind-icon">Layout.initial<wbr/>Origin</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="Layout.html#invalidateLayout" class="tsd-kind-icon">Layout.invalidate<wbr/>Layout</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="Layout.html#makeNetwork" class="tsd-kind-icon">Layout.make<wbr/>Network</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="Layout.html#updateParts" class="tsd-kind-icon">Layout.update<wbr/>Parts</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 tsd-is-overwrite"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> constructor<a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><li class="tsd-signature tsd-kind-icon">new <wbr/>Arranging<wbr/>Layout<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="ArrangingLayout.html" class="tsd-signature-type" data-tsd-kind="Class">ArrangingLayout</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><div class="tsd-comment tsd-typography"> <p>Create a minimal layout that only positions <a href="Node.html">Node</a>s that do not have a location.</p> </div><h4 class="tsd-returns-title">Returns <a href="ArrangingLayout.html" class="tsd-signature-type" data-tsd-kind="Class">ArrangingLayout</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 id="arrangingLayout" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> arranging<wbr/>Layout<span class="tsd-signature-symbol">: </span><a href="Layout.html" class="tsd-signature-type" data-tsd-kind="Class">Layout</a><a href="#arrangingLayout" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-descriptions"><li class="tsd-description"><div class="tsd-comment tsd-typography"> <p>Gets or sets the Layout used to arrange multiple separate connected subnetworks of the main graph. The default value is an instance of GridLayout. Set this property to null in order to get the @{link #primaryLayout} to operate on all connected graphs as a whole.</p> </div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="filter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> filter<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>part<span class="tsd-signature-symbol">: </span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span><a href="#filter" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-descriptions"><li class="tsd-description"><div class="tsd-comment tsd-typography"> <p>Gets or sets the predicate function to call on each non-Link. If the predicate returns true, the part will be laid out by the main layouts, the primaryLayouts and the arrangingLayout, otherwise by the sideLayout. The default value is a function that is true when there are any links connecting with the node. Such default behavior will have the sideLayout position all of the singleton nodes.</p> </div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="primaryLayout" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> primary<wbr/>Layout<span class="tsd-signature-symbol">: </span><a href="Layout.html" class="tsd-signature-type" data-tsd-kind="Class">Layout</a><a href="#primaryLayout" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-descriptions"><li class="tsd-description"><div class="tsd-comment tsd-typography"> <p>Gets or sets the Layout used for the main part of the diagram. The default value is an instance of GridLayout. Any new value must not be null.</p> </div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="side" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> side<span class="tsd-signature-symbol">: </span><a href="Spot.html" class="tsd-signature-type" data-tsd-kind="Class">Spot</a><a href="#side" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-descriptions"><li class="tsd-description"><div class="tsd-comment tsd-typography"> <p>Gets or sets the side <a href="Spot.html">Spot</a> where the side nodes and links should be laid out, relative to the results of the main Layout. The default value is Spot.BottomSide.</p> <div><p>If the value is Spot.Bottom, Spot.Top, Spot.Right, or Spot.Left, the side nodes will be centered along that side.</p> <p>Currently only handles a single side.</p> </div></div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="sideLayout" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> side<wbr/>Layout<span class="tsd-signature-symbol">: </span><a href="Layout.html" class="tsd-signature-type" data-tsd-kind="Class">Layout</a><a href="#sideLayout" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-descriptions"><li class="tsd-description"><div class="tsd-comment tsd-typography"> <p>Gets or sets the Layout used to arrange the &quot;side&quot; nodes and links -- those outside of the main layout. The default value is an instance of GridLayout. Any new value must not be null.</p> </div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="spacing" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> spacing<span class="tsd-signature-symbol">: </span><a href="Size.html" class="tsd-signature-type" data-tsd-kind="Class">Size</a><a href="#spacing" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-descriptions"><li class="tsd-description"><div class="tsd-comment tsd-typography"> <p>Gets or sets the space between the main layout and the side layout. The default value is Size(20, 20).</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 id="moveSideCollection" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> move<wbr/>Side<wbr/>Collection<a href="#moveSideCollection" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">move<wbr/>Side<wbr/>Collection<span class="tsd-signature-symbol">(</span>sidecoll<span class="tsd-signature-symbol">: </span><a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span>, mainbounds<span class="tsd-signature-symbol">: </span><a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</a>, sidebounds<span class="tsd-signature-symbol">: </span><a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</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 just after the sideLayout has been performed in order to move its parts to the desired area relative to the results of the main layouts. By default this calls <a href="Diagram.html#moveParts">Diagram.moveParts</a> on the sidecoll collection to the <a href="ArrangingLayout.html#side">side</a> of the mainbounds. This won&#39;t get called if there are no Parts in the sidecoll collection.</p> </div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>sidecoll: <a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span></h5><div class="tsd-comment tsd-typography"> <p>a collection of Parts that were laid out by the sideLayout</p> </div></li><li><h5>mainbounds: <a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</a></h5><div class="tsd-comment tsd-typography"> <p>the area occupied by the results of the main layouts</p> </div></li><li><h5>sidebounds: <a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</a></h5><div class="tsd-comment tsd-typography"> <p>the area occupied by the results of the sideLayout</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 id="moveSubgraph" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> move<wbr/>Subgraph<a href="#moveSubgraph" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">move<wbr/>Subgraph<span class="tsd-signature-symbol">(</span>subColl<span class="tsd-signature-symbol">: </span><a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span>, subbounds<span class="tsd-signature-symbol">: </span><a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</a>, bounds<span class="tsd-signature-symbol">: </span><a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</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>Move a Set of Nodes and Links to the given area.</p> </div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>subColl: <a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span></h5><div class="tsd-comment tsd-typography"> <p>the Set of Nodes and Links that form a separate connected subnetwork</p> </div></li><li><h5>subbounds: <a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</a></h5><div class="tsd-comment tsd-typography"> <p>the area occupied by the subColl</p> </div></li><li><h5>bounds: <a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</a></h5><div class="tsd-comment tsd-typography"> <p>the area where they should be moved according to the arrangingLayout</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 id="preparePrimaryLayout" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> prepare<wbr/>Primary<wbr/>Layout<a href="#preparePrimaryLayout" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">prepare<wbr/>Primary<wbr/>Layout<span class="tsd-signature-symbol">(</span>primaryLayout<span class="tsd-signature-symbol">: </span><a href="Layout.html" class="tsd-signature-type" data-tsd-kind="Class">Layout</a>, mainColl<span class="tsd-signature-symbol">: </span><a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</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>This method is called just before the primaryLayout is performed so that there can be adjustments made to the primaryLayout, if desired. By default this method makes no adjustments to the primaryLayout.</p> </div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>primaryLayout: <a href="Layout.html" class="tsd-signature-type" data-tsd-kind="Class">Layout</a></h5><div class="tsd-comment tsd-typography"> <p>the sideLayout that may be modified for the results of the primaryLayout</p> </div></li><li><h5>mainColl: <a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span></h5><div class="tsd-comment tsd-typography"> <p>the Nodes and Links to be laid out by primaryLayout after being separated into subnetworks</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 id="prepareSideLayout" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> prepare<wbr/>Side<wbr/>Layout<a href="#prepareSideLayout" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">prepare<wbr/>Side<wbr/>Layout<span class="tsd-signature-symbol">(</span>sideLayout<span class="tsd-signature-symbol">: </span><a href="Layout.html" class="tsd-signature-type" data-tsd-kind="Class">Layout</a>, sideColl<span class="tsd-signature-symbol">: </span><a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span>, mainBounds<span class="tsd-signature-symbol">: </span><a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</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 just after the main layouts (the primaryLayouts and arrangingLayout) have been performed and just before the sideLayout is performed so that there can be adjustments made to the sideLayout, if desired. By default this method makes no adjustments to the sideLayout.</p> </div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>sideLayout: <a href="Layout.html" class="tsd-signature-type" data-tsd-kind="Class">Layout</a></h5><div class="tsd-comment tsd-typography"> <p>the sideLayout that may be modified for the results of the main layouts</p> </div></li><li><h5>sideColl: <a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span></h5><div class="tsd-comment tsd-typography"> <p>the Nodes and Links filtered out to be laid out by sideLayout</p> </div></li><li><h5>mainBounds: <a href="Rect.html" class="tsd-signature-type" data-tsd-kind="Class">Rect</a></h5><div class="tsd-comment tsd-typography"> <p>the area occupied by the nodes and links of the main layout, after it was performed</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 id="splitParts" class="tsd-anchor"></a><h3 class="tsd-anchor-link"> split<wbr/>Parts<a href="#splitParts" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">split<wbr/>Parts<span class="tsd-signature-symbol">(</span>coll<span class="tsd-signature-symbol">: </span><a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span>, maincoll<span class="tsd-signature-symbol">: </span><a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span>, sidecoll<span class="tsd-signature-symbol">: </span><a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</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>Assign all of the Parts in the given collection into either the set of Nodes and Links for the main graph or the set of Nodes and Links for the side graph.</p> <div><p>By default this just calls the <a href="ArrangingLayout.html#filter">filter</a> on each non-Link to decide, and then looks at each Link&#39;s connected Nodes to decide.</p> <p>A null filter assigns all Nodes that have connected Links to the main graph, and all Links will be assigned to the main graph, and the side graph will only contain Parts with no connected Links.</p> </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>coll: <a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span></h5></li><li><h5>maincoll: <a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span></h5></li><li><h5>sidecoll: <a href="Set.html" class="tsd-signature-type" data-tsd-kind="Class">Set</a><span class="tsd-signature-symbol">&lt;</span><a href="Part.html" class="tsd-signature-type" data-tsd-kind="Class">Part</a><span class="tsd-signature-symbol">&gt;</span></h5><div class="tsd-comment tsd-typography"> </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=""><a href="../index.html">GoJS Class Index</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class tsd-is-extension"><a href="ArrangingLayout.html" class="tsd-kind-icon">Arranging<wbr/>Layout</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><a href="ArrangingLayout.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#arrangingLayout" class="tsd-kind-icon">arranging<wbr/>Layout</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#filter" class="tsd-kind-icon">filter</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#primaryLayout" class="tsd-kind-icon">primary<wbr/>Layout</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#side" class="tsd-kind-icon">side</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#sideLayout" class="tsd-kind-icon">side<wbr/>Layout</a></li><li class="tsd-kind-accessor tsd-parent-kind-class"><a href="ArrangingLayout.html#spacing" class="tsd-kind-icon">spacing</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#moveSideCollection" class="tsd-kind-icon">move<wbr/>Side<wbr/>Collection</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#moveSubgraph" class="tsd-kind-icon">move<wbr/>Subgraph</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#preparePrimaryLayout" class="tsd-kind-icon">prepare<wbr/>Primary<wbr/>Layout</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#prepareSideLayout" class="tsd-kind-icon">prepare<wbr/>Side<wbr/>Layout</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="ArrangingLayout.html#splitParts" class="tsd-kind-icon">split<wbr/>Parts</a></li></ul></li></ul></nav></div></div></div><div class="tsd w-full max-w-screen-xl mx-auto px-2"><div class="bottom-copyright">Copyright © 1998-2022 by Northwoods Software Corporation.</div></div><footer class=""><div class="tsd w-full max-w-screen-xl mx-auto px-2"><h2>Settings</h2><p class="mb-4">Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="overlay"></div><script src="../assets/main.js"></script><script async src="https://www.googletagmanager.com/gtag/js?id=UA-1506307-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-1506307-5'); var getOutboundLink = function(url, label) { gtag('event', 'click', { 'event_category': 'outbound', 'event_label': label, 'transport_type': 'beacon' }); } // topnav var topButton = document.getElementById("topnavButton"); var topnavList = document.getElementById("topnavList"); topButton.addEventListener("click", function() { this.classList.toggle("active"); topnavList.classList.toggle("hidden"); document.getElementById("topnavOpen").classList.toggle("hidden"); document.getElementById("topnavClosed").classList.toggle("hidden"); }); document.getElementById("contactBtn").addEventListener("click", function() { getOutboundLink('https://www.nwoods.com/contact.html', 'contact'); }); document.getElementById("buyBtn").addEventListener("click", function() { getOutboundLink('https://www.nwoods.com/sales/index.html', 'buy'); }); </script></body></html>