create-gojs-kit
Version:
A CLI for downloading GoJS samples, extensions, and docs
195 lines • 51.4 kB
HTML
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><link rel="stylesheet" href="../../assets/css/style.css"/><link rel="preconnect" href="https://rsms.me/"/><link rel="stylesheet" href="https://rsms.me/inter/inter.css"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Animation | 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/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script type="text/javascript">// formerly in api.js
var hash = null;
function changeHash() {
var panels = document.getElementsByClassName("tsd-panel");
for (let i = 0; i < panels.length; i++) {
var p = panels[i];
p.classList.remove("targeted");
}
hash = window.location.hash.slice(1);
if (hash) {
var elt = document.getElementById(hash);
if (elt) elt.parentNode.classList.add("targeted");
}
}
document.addEventListener("DOMContentLoaded", changeHash);
window.addEventListener("hashchange", changeHash);</script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header><nav id="navTop" class="w-full h-[var(--topnav-h)] z-30 bg-[var(--color-background-secondary)] border-b border-b-[var(--color-accent)]"><div class="max-w-screen-xl mx-auto flex flex-wrap items-start justify-between px-4"><a class="!text-white bg-nwoods-primary font-bold !leading-[calc(var(--topnav-h)_-_1px)] my-0 px-2 text-4xl lg:text-5xl logo" href="../../index.html">GoJS</a><div class="relative"><button id="topnavButton" class="h-[calc(var(--topnav-h)_-_1px)] px-2 m-0 text-[var(--color-text)] bg-inherit shadow-none md:hidden hover:!bg-inherit hover:!text-nwoods-accent hover:!shadow-none" aria-label="Navigation"><svg class="h-7 w-7 block" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div id="topnavList" class="hidden md:block"><div class="absolute right-0 z-30 flex flex-col items-end rounded border border-[var(--color-accent)] p-4 pl-12 shadow bg-[var(--color-background-secondary)] text-[var(--color-text)] font-semibold
md:flex-row md:space-x-4 md:items-start md:border-0 md:p-0 md:shadow-none md:!bg-inherit"><a href="../../learn/index.html">Learn</a><a href="../../samples/index.html">Samples</a><a href="../../intro/index.html">Intro</a><a class="active" href="../../api/index.html">API</a><a href="../../download.html">Download</a><a href="https://forum.nwoods.com/c/gojs/11" target="_blank" rel="noopener">Forum</a><a href="https://nwoods.com/contact.html" target="_blank" rel="noopener" id="contactBtn">Contact</a><a href="https://nwoods.com/sales/index.html" target="_blank" rel="noopener" id="buyBtn">Buy</a></div></div></div></div></nav><script>window.addEventListener("DOMContentLoaded", function () {
// topnav
var topButton = document.getElementById("topnavButton");
var topnavList = document.getElementById("topnavList");
if (topButton && topnavList) {
topButton.addEventListener("click", function (e) {
topnavList
.classList
.toggle("hidden");
e.stopPropagation();
});
document.addEventListener("click", function (e) {
// if the clicked element isn't the list, close the list
if (!topnavList.classList.contains("hidden") && !e.target.closest("#topnavList")) {
topButton.click();
}
});
// set active <a> element
// done via active tag below, always API
}
});</script><div class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><div id="tsd-search-help"><code class="!text-lg">/</code> to search</div><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></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"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><div class="flex w-full max-w-screen-xl mx-auto px-2 items-center justify-between"><div><ul class="tsd-breadcrumb"><li><a href="../index.html">GoJS API</a></li><li><a href="Animation.html">Animation</a></li></ul><h1 class="flex items-center">Class Animation</h1></div><div class="text-xs"><b>GoJS</b>® Diagramming Components<br/>version 3.1.0<br/>by <a href="https://nwoods.com/">Northwoods Software®</a></div></div></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Animations are used to animate <a href="GraphObject.html" class="tsd-kind-class">GraphObject</a> and <a href="Diagram.html" class="tsd-kind-class">Diagram</a> properties.</p>
<p>This class is useful for creating manual animations.
If you wish to animate particular properties on a GraphObject every time their value changes,
you may want to use <a href="AnimationTrigger.html" class="tsd-kind-class">AnimationTrigger</a>s instead, which automatically create and start Animations.</p>
<p>The <a href="AnimationManager.html#defaultAnimation" class="tsd-kind-accessor">AnimationManager.defaultAnimation</a> is an instance of this class, and carries out the
default animations in GoJS: Model load, layout, expand and collapse, and so on.
See the <a href="../../intro/animation.html">Introduction Page on Animations</a> for more detail on the different kinds of animations.</p>
<p>Manual animations are set up by creating an instance of this class, and calling <a href="Animation.html#add" class="tsd-kind-method">add</a> at least once, then calling <a href="Animation.html#start" class="tsd-kind-method">start</a>.
The method <a href="Animation.html#add" class="tsd-kind-method">add</a> specifies which objects and which animation effects/properties to animate, plus start and end values for the property.
As objects are added to an Animation, the Animation infers which <a href="Diagram.html" class="tsd-kind-class">Diagram</a> and <a href="AnimationManager.html" class="tsd-kind-class">AnimationManager</a> is relevant.</p>
<p>Animations are started by calling <a href="Animation.html#start" class="tsd-kind-method">start</a>, and stopped when the <a href="Animation.html#duration" class="tsd-kind-accessor">duration</a> is reached, or when <a href="Animation.html#stop" class="tsd-kind-method">stop</a> is called,
or stopped when <a href="AnimationManager.html#stopAnimation" class="tsd-kind-method">AnimationManager.stopAnimation</a> is called with <code>true</code> as its argument.</p>
<p>Animations can continue indefinitely if <a href="Animation.html#runCount" class="tsd-kind-accessor">runCount</a> is set to <code>Infinity</code>.
Animations can act upon temporary copies of an object that will get destroyed by calling <a href="Animation.html#addTemporaryPart" class="tsd-kind-method">addTemporaryPart</a>.
This is useful when crafting cosmetic animations of parts that are about to be deleted:
Since the part will no longer exist, you can instead animate a temporary part disappearing.</p>
<p>A simple example usage is this:</p>
<pre><code class="language-js"><span class="hl-1">const</span><span class="hl-2"> </span><span class="hl-3">node</span><span class="hl-2"> = </span><span class="hl-4">myDiagram</span><span class="hl-2">.</span><span class="hl-4">nodes</span><span class="hl-2">.</span><span class="hl-5">first</span><span class="hl-2">();</span><br/><span class="hl-1">const</span><span class="hl-2"> </span><span class="hl-3">shape</span><span class="hl-2"> = </span><span class="hl-4">part</span><span class="hl-2">.</span><span class="hl-5">findObject</span><span class="hl-2">(</span><span class="hl-6">"SHAPE"</span><span class="hl-2">); </span><span class="hl-0">// assumes this Node contains a go.Shape with .name = "SHAPE"</span><br/><span class="hl-1">const</span><span class="hl-2"> </span><span class="hl-3">animation</span><span class="hl-2"> = </span><span class="hl-1">new</span><span class="hl-2"> </span><span class="hl-4">go</span><span class="hl-2">.</span><span class="hl-5">Animation</span><span class="hl-2">();</span><br/><span class="hl-0">// Animate this Node from its current position to (400, 500)</span><br/><span class="hl-4">animation</span><span class="hl-2">.</span><span class="hl-5">add</span><span class="hl-2">(</span><span class="hl-4">node</span><span class="hl-2">, </span><span class="hl-6">"position"</span><span class="hl-2">, </span><span class="hl-4">node</span><span class="hl-2">.</span><span class="hl-4">position</span><span class="hl-2">, </span><span class="hl-1">new</span><span class="hl-2"> </span><span class="hl-4">go</span><span class="hl-2">.</span><span class="hl-5">Point</span><span class="hl-2">(</span><span class="hl-7">400</span><span class="hl-2">, </span><span class="hl-7">500</span><span class="hl-2">));</span><br/><span class="hl-0">// Animate the fill of the Shape within the Node, from its current color to blue</span><br/><span class="hl-4">animation</span><span class="hl-2">.</span><span class="hl-5">add</span><span class="hl-2">(</span><span class="hl-4">shape</span><span class="hl-2">, </span><span class="hl-6">"fill"</span><span class="hl-2">, </span><span class="hl-4">shape</span><span class="hl-2">.</span><span class="hl-4">fill</span><span class="hl-2">, </span><span class="hl-6">"blue"</span><span class="hl-2">);</span><br/><span class="hl-0">// Both of these effects will animate simultaneously when start() is called:</span><br/><span class="hl-4">animation</span><span class="hl-2">.</span><span class="hl-5">start</span><span class="hl-2">();</span>
</code><button>Copy</button></pre>
<p>See the <a href="../../intro/animation.html">Introduction Page on Animations</a> and the <a href="../../samples/customAnimations.html">Custom Animations sample</a>
for more example usage of the Animation class.</p>
<p>Unlike the <a href="AnimationManager.html#defaultAnimation" class="tsd-kind-accessor">AnimationManager.defaultAnimation</a>, Animations can be started any time,
and do not stop automatically when a new transaction begins.</p>
</div><div class="tsd-comment-tags tsd-typography"><div class="flex items-center"><code class="tsd-tag">since</code><p>2.1</p>
</div></div></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="true" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="Animation.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Animation.html#duration" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>duration</span></a>
<a href="Animation.html#easing" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>easing</span></a>
<a href="Animation.html#finished" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>finished</span></a>
<a href="Animation.html#isAnimating" class="tsd-index-link"><svg class="readonly tsd-subicon" viewBox="0 0 28 28"><g id="subicon-R,#FF4D4D"><rect fill="var(--color-icon-background)" width="28" height="28" rx="14"></rect><path transform="translate(2, 2)" fill="none" stroke-width="1.5" stroke="var(--color-text)" d="M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z" stroke-linecap="round" stroke-linejoin="round"></path></g></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>is<wbr/>Animating</span></a>
<a href="Animation.html#isViewportUnconstrained" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>is<wbr/>Viewport<wbr/>Unconstrained</span></a>
<a href="Animation.html#reversible" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>reversible</span></a>
<a href="Animation.html#runCount" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>run<wbr/>Count</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Animation.html#add" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add</span></a>
<a href="Animation.html#addTemporaryPart" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Temporary<wbr/>Part</span></a>
<a href="Animation.html#getTemporaryState" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Temporary<wbr/>State</span></a>
<a href="Animation.html#start" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a>
<a href="Animation.html#stop" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>stop</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="Animation.html#EaseInExpo" class="tsd-index-link"><svg class="static tsd-subicon" viewBox="0 0 28 28"><g id="subicon-S,#FF984D"><rect fill="var(--color-icon-background)" width="28" height="28" rx="14"></rect><path transform="translate(2, 2)" fill="none" stroke-width="1.5" stroke="var(--color-text)" d="M5.25 8.25h15m-16.5 7.5h15m-1.8-13.5-3.9 19.5m-2.1-19.5-3.9 19.5" stroke-linecap="round" stroke-linejoin="round"></path></g></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>In<wbr/>Expo</span></a>
<a href="Animation.html#EaseInOutQuad" class="tsd-index-link"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>In<wbr/>Out<wbr/>Quad</span></a>
<a href="Animation.html#EaseInQuad" class="tsd-index-link"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>In<wbr/>Quad</span></a>
<a href="Animation.html#EaseLinear" class="tsd-index-link"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>Linear</span></a>
<a href="Animation.html#EaseOutExpo" class="tsd-index-link"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>Out<wbr/>Expo</span></a>
<a href="Animation.html#EaseOutQuad" class="tsd-index-link"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>Out<wbr/>Quad</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Animation" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Animation</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">init</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol"><</span><a href="Animation.html" class="tsd-signature-type tsd-kind-class">Animation</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Animation.html" class="tsd-signature-type tsd-kind-class">Animation</a><a href="#constructor.new_Animation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>The constructor creates an Animation.
A single Animation can animate multiple objects via multiple calls to <a href="Animation.html#add" class="tsd-kind-method">add</a>.
When you are ready to begin the animation, call <a href="Animation.html#start" class="tsd-kind-method">start</a>.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">init</span>: <span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol"><</span><a href="Animation.html" class="tsd-signature-type tsd-kind-class">Animation</a><span class="tsd-signature-symbol">></span></h5><div class="tsd-comment tsd-typography"><p>Optional properties to initialize.</p>
</div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Animation.html" class="tsd-signature-type tsd-kind-class">Animation</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Accessors</h2><section class="tsd-panel tsd-member"><a id="duration" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>duration</span><div class="membertype"><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></div><a href="#duration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets or sets the duration for animations, in milliseconds.</p>
<p>The default value is <code>NaN</code>, which means it inherits the default value from the <a href="AnimationManager.html#duration" class="tsd-kind-accessor">AnimationManager.duration</a>,
which defaults to 600 milliseconds.</p>
<p>The value must be a number greater than or equal to 1, or <code>NaN</code>.
Setting this property does not raise any events.</p>
</div></li></ul></section><section class="tsd-panel tsd-member"><a id="easing" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>easing</span><div class="membertype"><span class="tsd-signature-symbol">: </span><a href="EasingFunction.html" class="tsd-signature-type tsd-kind-type-alias">EasingFunction</a></div><a href="#easing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets or sets the easing function this Animation will use to modify default properties.</p>
<p>Pre-defined animatable values are processed by passing scalars into this easing function.</p>
<p>The default value is <a href="Animation.html#EaseInOutQuad" class="tsd-kind-property">Animation.EaseInOutQuad</a>.</p>
<p>The value can be an arbitrary easing function, or one of the six provided:
<a href="Animation.html#EaseLinear" class="tsd-kind-property">Animation.EaseLinear</a>, <a href="Animation.html#EaseInOutQuad" class="tsd-kind-property">Animation.EaseInOutQuad</a>, <a href="Animation.html#EaseInQuad" class="tsd-kind-property">Animation.EaseInQuad</a>,
<a href="Animation.html#EaseOutQuad" class="tsd-kind-property">Animation.EaseOutQuad</a>, <a href="Animation.html#EaseInExpo" class="tsd-kind-property">Animation.EaseInExpo</a>, <a href="Animation.html#EaseOutExpo" class="tsd-kind-property">Animation.EaseOutExpo</a>.</p>
</div></li></ul></section><section class="tsd-panel tsd-member"><a id="finished" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>finished</span><div class="membertype"><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">animation</span><span class="tsd-signature-symbol">: </span><a href="Animation.html" class="tsd-signature-type tsd-kind-class">Animation</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span></div><a href="#finished" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets or sets the function to execute when the user Animation finishes.</p>
<p>By default this property is null.</p>
</div></li></ul></section><section class="tsd-panel tsd-member"><a id="isAnimating" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagReadOnly">Readonly</code><span>is<wbr/>Animating</span><div class="membertype"><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></div><a href="#isAnimating" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>This read-only property is true when the Animation is currently running.</p>
<p>This value cannot be set, but Animation can be stopped by calling <a href="Animation.html#stop" class="tsd-kind-method">stop</a>.</p>
</div></li></ul></section><section class="tsd-panel tsd-member"><a id="isViewportUnconstrained" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>Viewport<wbr/>Unconstrained</span><div class="membertype"><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></div><a href="#isViewportUnconstrained" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets or sets whether this Animation should allow an unconstrained viewport during the runtime of the animation.
This temporarily sets the <a href="Diagram.html#scrollMode" class="tsd-kind-accessor">Diagram.scrollMode</a> to <a href="ScrollMode.html#Infinite" class="tsd-kind-enum-member">ScrollMode.Infinite</a>, and restores the value at the end of the animation.
This is done so that animating objects can move out of the viewport temporarily during the animation and not trigger scrollbars.</p>
<p>This may be useful to set for animations that have objects or the Diagram bounds animate from outside the viewport into the view.
The default value is true.</p>
</div></li></ul></section><section class="tsd-panel tsd-member"><a id="reversible" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>reversible</span><div class="membertype"><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></div><a href="#reversible" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets or sets whether this Animation will repeat its animation in reverse at the end of the duration. Default false.</p>
<p>A reversible Animation, if stopped early, will end at its original state.
Setting this to true doubles the effective <a href="Animation.html#duration" class="tsd-kind-accessor">duration</a> of the Animation.</p>
<p>This property should not be set on the <a href="AnimationManager.html#defaultAnimation" class="tsd-kind-accessor">AnimationManager.defaultAnimation</a></p>
</div></li></ul></section><section class="tsd-panel tsd-member"><a id="runCount" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>run<wbr/>Count</span><div class="membertype"><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></div><a href="#runCount" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets or sets whether this Animation should be repeat, and how many times. The default is 1, which means the animation does not repeat.</p>
<p>This can be set to any non-zero positive integer, or <code>Infinity</code>. Setting this to <code>Infinity</code> will repeat an animation forever.</p>
<p>This property should not be set on the <a href="AnimationManager.html#defaultAnimation" class="tsd-kind-accessor">AnimationManager.defaultAnimation</a></p>
</div><div class="tsd-comment-tags tsd-typography"><div class="flex items-center"><code class="tsd-tag">see</code><p><a href="Animation.html#reversible" class="tsd-kind-accessor">reversible</a></p>
</div></div></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="add" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>add</span><a href="#add" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="add.add-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">add</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">obj</span><span class="tsd-signature-symbol">: </span><a href="Diagram.html" class="tsd-signature-type tsd-kind-class">Diagram</a><span class="tsd-signature-symbol"> | </span><a href="GraphObject.html" class="tsd-signature-type tsd-kind-class">GraphObject</a>, <span class="tsd-kind-parameter">effectName</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, <span class="tsd-kind-parameter">startValue</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, <span class="tsd-kind-parameter">endValue</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, <span class="tsd-kind-parameter">cosmetic</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">this</span><a href="#add.add-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Add an object (GraphObject or Diagram) and effect name, with specified start and end values, to this Animation.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">obj</span>: <a href="Diagram.html" class="tsd-signature-type tsd-kind-class">Diagram</a><span class="tsd-signature-symbol"> | </span><a href="GraphObject.html" class="tsd-signature-type tsd-kind-class">GraphObject</a></h5><div class="tsd-comment tsd-typography"><p>GraphObject or Diagram to animate.</p>
</div></li><li><h5><span class="tsd-kind-parameter">effectName</span>: <span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><p>Animation effect name, such as <code>"scale"</code> to change GraphObject.scale.
By default the supported properties are, for GraphObjects:</p>
<ul>
<li><code>"position"</code></li>
<li><code>"location"</code> (on Parts)</li>
<li><code>"scale"</code></li>
<li><code>"opacity"</code></li>
<li><code>"angle"</code></li>
<li><code>"desiredSize"</code></li>
<li><code>"width"</code></li>
<li><code>"height"</code></li>
<li><code>"background"</code></li>
<li><code>"fill"</code> (on Shapes)</li>
<li><code>"strokeWidth"</code> (on Shapes)</li>
<li><code>"strokeDashOffset"</code> (on Shapes)</li>
<li><code>"stroke"</code> (on Shapes, TextBlocks)</li>
</ul>
<p>For Diagrams:</p>
<ul>
<li><code>"position"</code></li>
<li><code>"scale"</code></li>
<li><code>"opacity"</code></li>
</ul>
<p>More properties can be supported by defining new effects with <a href="AnimationManager.html#defineAnimationEffect" class="tsd-kind-method">AnimationManager.defineAnimationEffect</a>.</p>
</div></li><li><h5><span class="tsd-kind-parameter">startValue</span>: <span class="tsd-signature-type">any</span></h5><div class="tsd-comment tsd-typography"><p>The starting value for the animated property. Often this is the current value of the property.</p>
</div></li><li><h5><span class="tsd-kind-parameter">endValue</span>: <span class="tsd-signature-type">any</span></h5><div class="tsd-comment tsd-typography"><p>The ending value for the animated property. Even if the animation is just cosmetic, this must be a valid value for the property.
For instance, for <a href="GraphObject.html#scale" class="tsd-kind-accessor">GraphObject.scale</a>, you cannot animate to 0, as this is an invalid scale value.
Instead you would animate to a very small (but still valid) value, such as 0.001.</p>
</div></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">cosmetic</span>: <span class="tsd-signature-type">boolean</span></h5><div class="tsd-comment tsd-typography"><p>Determines if the animation should revert the property value to the start value at the end of animation.
Default false. This is commonly used when animating opacity or scale of "disappearing" nodes during collapse.
Even though the node may appear to go to scale 0.001, the programmer usually wants the scale to reflect its prior value, once hidden.</p>
</div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4><p>this Animation</p>
</li></ul></section><section class="tsd-panel tsd-member"><a id="addTemporaryPart" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>add<wbr/>Temporary<wbr/>Part</span><a href="#addTemporaryPart" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="addTemporaryPart.addTemporaryPart-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">add<wbr/>Temporary<wbr/>Part</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">part</span><span class="tsd-signature-symbol">: </span><a href="Part.html" class="tsd-signature-type tsd-kind-class">Part</a>, <span class="tsd-kind-parameter">diagram</span><span class="tsd-signature-symbol">: </span><a href="Diagram.html" class="tsd-signature-type tsd-kind-class">Diagram</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span><a href="#addTemporaryPart.addTemporaryPart-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Add a temporary Part to this animation.
This part will be added to the Diagram when the animation is started,
and removed from the Diagram when the animation completes.
This is intended to be used with <a href="Animation.html#add" class="tsd-kind-method">add</a>, to animate properties of this Part or its elements.</p>
<p>The temporary part added is typically either a <a href="GraphObject.html#copy" class="tsd-kind-method">GraphObject.copy</a> of an existing Part,
which is to be deleted and requires a copy for animated effects, or else a wholly new temporary Part,
constructed in memory for the purpose of creating some effect.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">part</span>: <a href="Part.html" class="tsd-signature-type tsd-kind-class">Part</a></h5><div class="tsd-comment tsd-typography"><p>A part to add to the Diagram at the start of the animation and remove at the end.
This is typically either a copied Part already in the Diagram, to animate its deletion,
or a Part created programmatically to be used for some effect.</p>
</div></li><li><h5><span class="tsd-kind-parameter">diagram</span>: <a href="Diagram.html" class="tsd-signature-type tsd-kind-class">Diagram</a></h5><div class="tsd-comment tsd-typography"><p>The Diagram to add the temporary part to, and remove it from, at the start and end of animation, respectively.</p>
</div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4><p>this Animation</p>
</li></ul></section><section class="tsd-panel tsd-member"><a id="getTemporaryState" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>Temporary<wbr/>State</span><a href="#getTemporaryState" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getTemporaryState.getTemporaryState-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Temporary<wbr/>State</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">obj</span><span class="tsd-signature-symbol">: </span><a href="Diagram.html" class="tsd-signature-type tsd-kind-class">Diagram</a><span class="tsd-signature-symbol"> | </span><a href="GraphObject.html" class="tsd-signature-type tsd-kind-class">GraphObject</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="ObjectData.html" class="tsd-signature-type tsd-kind-interface">ObjectData</a><a href="#getTemporaryState.getTemporaryState-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets the <a href="ObjectData.html" class="tsd-kind-interface">ObjectData</a> associated with this GraphObject or Diagram.
If no state exists, this creates and returns a new <a href="ObjectData.html" class="tsd-kind-interface">ObjectData</a>.</p>
<p>This can be used to store temporary information per animated object during the course of an animation.
This state is cleared at the end of an animation.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">obj</span>: <a href="Diagram.html" class="tsd-signature-type tsd-kind-class">Diagram</a><span class="tsd-signature-symbol"> | </span><a href="GraphObject.html" class="tsd-signature-type tsd-kind-class">GraphObject</a></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="ObjectData.html" class="tsd-signature-type tsd-kind-interface">ObjectData</a></h4></li></ul></section><section class="tsd-panel tsd-member"><a id="start" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>start</span><a href="#start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="start.start-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">start</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span><a href="#start.start-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Start this animation.</p>
<p>This adds the Animation to its <a href="AnimationManager.html" class="tsd-kind-class">AnimationManager</a>'s list of active animations.
The AnimationManager is inferred from the list of objects to be animated, by inspecting their Diagram.</p>
<p>This does nothing if there are no objects to animate.</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4><p>this Animation</p>
</li></ul></section><section class="tsd-panel tsd-member"><a id="stop" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stop</span><a href="#stop" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="stop.stop-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">stop</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span><a href="#stop.stop-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Stops a running Animation and updates the animating objects to their final state.</p>
<p>If an animation was about to begin, it is cancelled.</p>
</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4><p>this Animation</p>
</li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="EaseInExpo" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <code class="tsd-tag ts-flagConstant">Constant</code><span>Ease<wbr/>In<wbr/>Expo</span><div class="membertype"><span class="tsd-signature-symbol">: </span><a href="EasingFunction.html" class="tsd-signature-type tsd-kind-type-alias">EasingFunction</a></div><a href="#EaseInExpo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-comment tsd-typography"><p>Built-in static function for computing interpolated values. Can be used as a value for <a href="Animation.html#easing" class="tsd-kind-accessor">Animation.easing</a>.</p>
</div></section><section class="tsd-panel tsd-member"><a id="EaseInOutQuad" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <code class="tsd-tag ts-flagConstant">Constant</code><span>Ease<wbr/>In<wbr/>Out<wbr/>Quad</span><div class="membertype"><span class="tsd-signature-symbol">: </span><a href="EasingFunction.html" class="tsd-signature-type tsd-kind-type-alias">EasingFunction</a></div><a href="#EaseInOutQuad" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-comment tsd-typography"><p>Built-in static function for computing interpolated values. Can be used as a value for <a href="Animation.html#easing" class="tsd-kind-accessor">Animation.easing</a>.
This is the default value for <a href="Animation.html#easing" class="tsd-kind-accessor">Animation.easing</a>.</p>
</div></section><section class="tsd-panel tsd-member"><a id="EaseInQuad" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <code class="tsd-tag ts-flagConstant">Constant</code><span>Ease<wbr/>In<wbr/>Quad</span><div class="membertype"><span class="tsd-signature-symbol">: </span><a href="EasingFunction.html" class="tsd-signature-type tsd-kind-type-alias">EasingFunction</a></div><a href="#EaseInQuad" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-comment tsd-typography"><p>Built-in static function for computing interpolated values. Can be used as a value for <a href="Animation.html#easing" class="tsd-kind-accessor">Animation.easing</a>.</p>
</div></section><section class="tsd-panel tsd-member"><a id="EaseLinear" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <code class="tsd-tag ts-flagConstant">Constant</code><span>Ease<wbr/>Linear</span><div class="membertype"><span class="tsd-signature-symbol">: </span><a href="EasingFunction.html" class="tsd-signature-type tsd-kind-type-alias">EasingFunction</a></div><a href="#EaseLinear" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-comment tsd-typography"><p>Built-in static function for computing interpolated values. Can be used as a value for <a href="Animation.html#easing" class="tsd-kind-accessor">Animation.easing</a>.</p>
</div></section><section class="tsd-panel tsd-member"><a id="EaseOutExpo" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <code class="tsd-tag ts-flagConstant">Constant</code><span>Ease<wbr/>Out<wbr/>Expo</span><div class="membertype"><span class="tsd-signature-symbol">: </span><a href="EasingFunction.html" class="tsd-signature-type tsd-kind-type-alias">EasingFunction</a></div><a href="#EaseOutExpo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-comment tsd-typography"><p>Built-in static function for computing interpolated values. Can be used as a value for <a href="Animation.html#easing" class="tsd-kind-accessor">Animation.easing</a>.</p>
</div></section><section class="tsd-panel tsd-member"><a id="EaseOutQuad" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <code class="tsd-tag ts-flagConstant">Constant</code><span>Ease<wbr/>Out<wbr/>Quad</span><div class="membertype"><span class="tsd-signature-symbol">: </span><a href="EasingFunction.html" class="tsd-signature-type tsd-kind-type-alias">EasingFunction</a></div><a href="#EaseOutQuad" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-comment tsd-typography"><p>Built-in static function for computing interpolated values. Can be used as a value for <a href="Animation.html#easing" class="tsd-kind-accessor">Animation.easing</a>.</p>
</div></section></section></div><div class="col-sidebar"><div class="page-menu"><details open class="tsd-index-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><ul><li><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></li><li><a href="#duration"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>duration</span></a></li><li><a href="#easing"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>easing</span></a></li><li><a href="#finished"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>finished</span></a></li><li><a href="#isAnimating"><svg class="readonly tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-R,#FF4D4D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>is<wbr/>Animating</span></a></li><li><a href="#isViewportUnconstrained"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>is<wbr/>Viewport<wbr/>Unconstrained</span></a></li><li><a href="#reversible"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>reversible</span></a></li><li><a href="#runCount"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-262144"></use></svg><span>run<wbr/>Count</span></a></li><li><a href="#add"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add</span></a></li><li><a href="#addTemporaryPart"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Temporary<wbr/>Part</span></a></li><li><a href="#getTemporaryState"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Temporary<wbr/>State</span></a></li><li><a href="#start"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a></li><li><a href="#stop"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>stop</span></a></li><li><a href="#EaseInExpo"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>In<wbr/>Expo</span></a></li><li><a href="#EaseInOutQuad"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>In<wbr/>Out<wbr/>Quad</span></a></li><li><a href="#EaseInQuad"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>In<wbr/>Quad</span></a></li><li><a href="#EaseLinear"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>Linear</span></a></li><li><a href="#EaseOutExpo"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>Out<wbr/>Expo</span></a></li><li><a href="#EaseOutQuad"><svg class="static tsd-subicon" viewBox="0 0 28 28"><use href="#subicon-S,#FF984D"></use></svg><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>Ease<wbr/>Out<wbr/>Quad</span></a></li></ul></div></details><div class="tsd-navigation settings"><div class="tsd-theme-toggle"><h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">System</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>GoJS API</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</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-2025 by Northwoods Software Corporation.</div></div><div class="overlay"></div><script async src="https://www.googletagmanager.com/gtag/js?id=G-S5QK8VSK84"></script><script>window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-S5QK8VSK84');
var getOutboundLink = function(url, label) {
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': label,
'transport_type': 'beacon'
});
}
document.getElementById("contactBtn").addEventListener("click", function() {
getOutboundLink('https://nwoods.com/contact.html', 'contact');
});
document.getElementById("buyBtn").addEventListener("click", function() {
getOutboundLink('https://nwoods.com/sales/index.html', 'buy');
});</script></body></html>