@convergence/convergence
Version:
Convergence JavaScript Client
755 lines (754 loc) • 63.4 kB
HTML
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>RealTimeElement | Convergence JavaScript Client API Documentation</title>
<meta name="description" content="Documentation for Convergence JavaScript Client API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
<link rel="icon" type="image/png" href="https://convergence.io/assets/img/favicon/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="https://convergence.io/assets/img/favicon/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/ico" href="https://convergence.io/assets/img/favicon/favicon.ico" sizes="48x48">
<link rel="icon" type="image/png" href="https://convergence.io/assets/img/favicon/favicon-96x96.png" sizes="96x96">
<!-- Start of convergencelabs Zendesk Widget script -->
<script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=3ee5157d-2fc2-4b08-b6c7-d5fad0533179"> </script>
<!-- End of convergencelabs Zendesk Widget script -->
</head>
<body>
<header>
<div class="tsd-page-toolbar convergence-header">
<div class="container">
<div class="flex-content">
<a href="../index.html" class="header-brand">
<img src=../assets/images/convergence-logo.png />
<span class="brand-title brand-copy">Convergence JavaScript Client API Documentation</span>
<span class="version">1.0.0-rc.12</span>
</a>
<div class="links brand-copy">
<div class="link">
<a href="https://docs.convergence.io/guide/">Dev Guide</a>
</div>
<div class="link">
<a href="https://examples.convergence.io">Examples</a>
</div>
<div class="link">
<a href="https://convergence.io/support/">Support</a>
</div>
</div>
</div>
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
</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">
<input type="checkbox" id="tsd-filter-inherited" checked />
<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 class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../globals.html">Index</a>
</li>
<li>
<a href="../modules/real_time_data.html">Real Time Data</a>
</li>
<li>
<a href="real_time_data.realtimeelement.html">RealTimeElement</a>
</li>
</ul>
<h1>Class RealTimeElement<T></h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This is an abstract representation of a particular node in a <a href="real_time_data.realtimemodel.html">RealTimeModel</a>'s
contents. If you think of the contents of a model as a JSON tree, this could be the
root object, an array, or any other element. This provides utilities common to
all data elements, like getting the element's <a href="real_time_data.realtimeelement.html#value">value</a>, a unique <a href="real_time_data.realtimeelement.html#id">id</a>, its
<a href="real_time_data.realtimeelement.html#path">path</a> within the complete data tree, and much more.</p>
</div>
<p>See the <a href="https://docs.convergence.io/guide/models/data/real-time-elements.html">developer guide</a>
for a more in-depth analysis of the potential types of data this could wrap.</p>
<p>Use <a href="real_time_data.realtimeelement.html#value">value</a> to get the current actual value of this element.</p>
</div>
</section>
<section class="tsd-panel tsd-type-parameters">
<h3>Type parameters</h3>
<ul class="tsd-type-parameters">
<li>
<h4>T = <span class="tsd-signature-type">any</span></h4>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The underlying javascript data type of this element.
For instance, T would be <code>number</code> for a <a href="real_time_data.realtimenumber.html">RealTimeNumber</a> and <code>string</code> for a <a href="real_time_data.realtimestring.html">RealTimeString</a>.
This is the type that <a href="real_time_data.realtimeelement.html#value">value</a> returns.</p>
</div>
</div>
</li>
</ul>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span>
<ul class="tsd-hierarchy">
<li>
<span class="target">RealTimeElement</span>
<ul class="tsd-hierarchy">
<li>
<a href="real_time_data.realtimearray.html" class="tsd-signature-type">RealTimeArray</a>
</li>
<li>
<a href="real_time_data.realtimeboolean.html" class="tsd-signature-type">RealTimeBoolean</a>
</li>
<li>
<a href="real_time_data.realtimenull.html" class="tsd-signature-type">RealTimeNull</a>
</li>
<li>
<a href="real_time_data.realtimenumber.html" class="tsd-signature-type">RealTimeNumber</a>
</li>
<li>
<a href="real_time_data.realtimestring.html" class="tsd-signature-type">RealTimeString</a>
</li>
<li>
<a href="real_time_data.realtimeundefined.html" class="tsd-signature-type">RealTimeUndefined</a>
</li>
<li>
<a href="real_time_data.realtimedate.html" class="tsd-signature-type">RealTimeDate</a>
</li>
<li>
<a href="real_time_data.realtimeobject.html" class="tsd-signature-type">RealTimeObject</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
<section class="tsd-panel">
<h3>Implements</h3>
<ul class="tsd-hierarchy">
<li><a href="../interfaces/real_time_data.observableelement.html" class="tsd-signature-type">ObservableElement</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">></span></li>
</ul>
</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>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><a href="real_time_data.realtimeelement.html#events" class="tsd-kind-icon">Events</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 tsd-is-inherited"><a href="real_time_data.realtimeelement.html#addlistener" class="tsd-kind-icon">add<wbr>Listener</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeelement.html#events-1" class="tsd-kind-icon">events</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#id" class="tsd-kind-icon">id</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#isattached" class="tsd-kind-icon">is<wbr>Attached</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#isdetached" class="tsd-kind-icon">is<wbr>Detached</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#model" class="tsd-kind-icon">model</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeelement.html#off" class="tsd-kind-icon">off</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeelement.html#on" class="tsd-kind-icon">on</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeelement.html#once" class="tsd-kind-icon">once</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#parent" class="tsd-kind-icon">parent</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#path" class="tsd-kind-icon">path</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#reference" class="tsd-kind-icon">reference</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#references" class="tsd-kind-icon">references</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#relativepath" class="tsd-kind-icon">relative<wbr>Path</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeelement.html#removealllisteners" class="tsd-kind-icon">remove<wbr>All<wbr>Listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#removefromparent" class="tsd-kind-icon">remove<wbr>From<wbr>Parent</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeelement.html#removelistener" class="tsd-kind-icon">remove<wbr>Listener</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeelement.html#removelisteners" class="tsd-kind-icon">remove<wbr>Listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#tojson" class="tsd-kind-icon">toJSON</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#type" class="tsd-kind-icon">type</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeelement.html#value" class="tsd-kind-icon">value</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-static">
<a name="events" class="tsd-anchor"></a>
<h3>Events</h3>
<div class="tsd-signature tsd-kind-icon">Events<span class="tsd-signature-symbol">:</span> <a href="../interfaces/real_time_data.realtimeelementevents.html" class="tsd-signature-type">RealTimeElementEvents</a><span class="tsd-signature-symbol"> = ObservableElementEventConstants</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>An interface enumerating the different events that could be fired on this
<a href="real_time_data.realtimeelement.html">RealTimeElement</a>.</p>
</div>
</div>
</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 tsd-is-inherited">
<a name="addlistener" class="tsd-anchor"></a>
<h3>add<wbr>Listener</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">add<wbr>Listener<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#addlistener">addListener</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#addlistener">addListener</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Adds a new event listener for the specified event. The class will ignore
duplicate registrations of the same listener to the same event.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to add the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to register.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="events-1" class="tsd-anchor"></a>
<h3>events</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">events<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Observable</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#events">events</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#events">events</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Provides the events emitted by this object as an Observable stream.</p>
</div>
<dl class="tsd-comment-tags">
<dt>example</dt>
<dd><pre><code class="language-typescript">
eventEmitter.events()
.filter(<span class="hljs-function"><span class="hljs-params">e</span> =></span> e.name === <span class="hljs-string">"myevent"</span>)
.subscribe(<span class="hljs-function"><span class="hljs-params">e</span> =></span> <span class="hljs-built_in">console</span>.log(e));
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Observable</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> An Observable stream of all events emitted by this object.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="id" class="tsd-anchor"></a>
<h3>id</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#id">id</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Each node within a <a href="real_time_data.realtimemodel.html">RealTimeModel</a> has a system-generated ID that is unique
within this model's contents.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
<p>a unique (to the model) ID for this element</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="isattached" class="tsd-anchor"></a>
<h3>is<wbr>Attached</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">is<wbr>Attached<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#isattached">isAttached</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>True if the element is currently set up to synchronize with the server.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="isdetached" class="tsd-anchor"></a>
<h3>is<wbr>Detached</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">is<wbr>Detached<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#isdetached">isDetached</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>True if the element is no longer synchronizing with the server. See the
<a href="https://docs.convergence.io/guide/models/data/real-time-elements.html">developer guide</a>
for more information.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="model" class="tsd-anchor"></a>
<h3>model</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">model<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="real_time_data.realtimemodel.html" class="tsd-signature-type">RealTimeModel</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#model">model</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the model to which this element belongs.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="real_time_data.realtimemodel.html" class="tsd-signature-type">RealTimeModel</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="off" class="tsd-anchor"></a>
<h3>off</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">off<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#off">off</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#off">off</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Removes a single event listener for a specific event.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to remove the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to unregister.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="on" class="tsd-anchor"></a>
<h3>on</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">on<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#on">on</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#on">on</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Adds a new event listener for the specified event. The class will ignore
duplicate registrations of the same listener to the same event.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to add the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to register.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="once" class="tsd-anchor"></a>
<h3>once</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">once<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#once">once</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#once">once</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Adds a single shot event listener for the specified event. The listener
will be called the first time the specified event is fired after the
event registration occurs, after which the registration will be removed
and no further events will be passed to the listener.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to add the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to register.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="parent" class="tsd-anchor"></a>
<h3>parent</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">parent<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/real_time_data.realtimecontainerelement.html" class="tsd-signature-type">RealTimeContainerElement</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#parent">parent</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the parent of this element within the model.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="../interfaces/real_time_data.realtimecontainerelement.html" class="tsd-signature-type">RealTimeContainerElement</a></h4>
<p>the parent of this element, or <code>this</code> if this is the root element</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="path" class="tsd-anchor"></a>
<h3>path</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/real_time_data.html#path" class="tsd-signature-type">Path</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#path">path</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The <a href="../modules/real_time_data.html#path">Path</a> representing this element's location in the containing model's data.
For instance, with model data</p>
</div>
<pre><code class="language-json">{
user: {
age: 32
}
}
</code></pre>
<p>The <a href="real_time_data.realtimenumber.html">RealTimeNumber</a> representing <code>32</code> would have path <code>['user', 'age']</code>.</p>
</div>
<h4 class="tsd-returns-title">Returns <a href="../modules/real_time_data.html#path" class="tsd-signature-type">Path</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="reference" class="tsd-anchor"></a>
<h3>reference</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">reference<span class="tsd-signature-symbol">(</span>sessionId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="real_time_data.modelreference.html" class="tsd-signature-type">ModelReference</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the remote <a href="real_time_data.modelreference.html">ModelReference</a> created by the given <code>sessionId</code> with
the unique name <code>key</code>, or <code>undefined</code> if no such reference exists.</p>
</div>
<p>See <a href="https://docs.convergence.io/guide/models/references/remote-references.html">Remote References</a>
in the developer guide.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>sessionId: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The session ID that created the reference</p>
</div>
</li>
<li>
<h5>key: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>the reference's unique key</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="real_time_data.modelreference.html" class="tsd-signature-type">ModelReference</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="references" class="tsd-anchor"></a>
<h3>references</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">references<span class="tsd-signature-symbol">(</span>referenceFilter<span class="tsd-signature-symbol">?: </span><a href="../interfaces/real_time_data.referencefilter.html" class="tsd-signature-type">ReferenceFilter</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="real_time_data.modelreference.html" class="tsd-signature-type">ModelReference</a><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns any remote references that match the given filter. You can provide
a single <code>key</code> which could return references from multiple users, <code>sessionId</code>
which would return all of a particular user session's references, or both,
which is really just the same as using the <a href="real_time_data.realtimeelement.html#reference">reference</a> method.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>referenceFilter: <a href="../interfaces/real_time_data.referencefilter.html" class="tsd-signature-type">ReferenceFilter</a></h5>
<div class="tsd-comment tsd-typography">
<p>an object containing either a <code>sessionId</code>, <code>key</code>, or both</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="real_time_data.modelreference.html" class="tsd-signature-type">ModelReference</a><span class="tsd-signature-symbol">[]</span></h4>
<p>An array of remote <a href="real_time_data.modelreference.html">ModelReference</a>s, or an empty array if there
were no matches.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="relativepath" class="tsd-anchor"></a>
<h3>relative<wbr>Path</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">relative<wbr>Path<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/real_time_data.html#pathelement" class="tsd-signature-type">PathElement</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#relativepath">relativePath</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This returns the <a href="../modules/real_time_data.html#pathelement">PathElement</a> representing this element's location relevant
to its parent. For example, given a model with contents</p>
</div>
<pre><code class="language-json">{
obj: {
with: 1,
stuff: ['a', 'string']
}
}
</code></pre>
<pre><code class="language-typescript"><span class="hljs-keyword">let</span> rtNumber = rtModel.elementAt([<span class="hljs-string">'obj'</span>, <span class="hljs-string">'with'</span>]);
rtNumber.value() <span class="hljs-comment">// 1</span>
rtNumber.relativePath() <span class="hljs-comment">// 'with'</span>
<span class="hljs-keyword">let</span> rtString = rtModel.elementAt([<span class="hljs-string">'obj'</span>, <span class="hljs-string">'stuff'</span>, <span class="hljs-number">0</span>]);
rtString.value() <span class="hljs-comment">// 'a'</span>
rtString.relativePath() <span class="hljs-comment">// 0</span>
</code></pre>
</div>
<h4 class="tsd-returns-title">Returns <a href="../modules/real_time_data.html#pathelement" class="tsd-signature-type">PathElement</a></h4>
<p>a PathElement representing this node's location relative to its parent,
or null if it has no parent.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="removealllisteners" class="tsd-anchor"></a>
<h3>remove<wbr>All<wbr>Listeners</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">remove<wbr>All<wbr>Listeners<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#removealllisteners">removeAllListeners</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#removealllisteners">removeAllListeners</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Removes all listeners for all events. This is useful for cleanup before
disposing of this particular event emitter.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="removefromparent" class="tsd-anchor"></a>
<h3>remove<wbr>From<wbr>Parent</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">remove<wbr>From<wbr>Parent<span class="tsd-signature-symbol">(</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">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>A convenience function to delete this element. Throws an error if this is
the root object in a model.</p>
</div>
</div>
<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 tsd-is-inherited">
<a name="removelistener" class="tsd-anchor"></a>
<h3>remove<wbr>Listener</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">remove<wbr>Listener<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#removelistener">removeListener</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#removelistener">removeListener</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Removes a single event listener for a specific event.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to remove the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to unregister.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="removelisteners" class="tsd-anchor"></a>
<h3>remove<wbr>Listeners</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">remove<wbr>Listeners<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableelement.html">ObservableElement</a>.<a href="../interfaces/real_time_data.observableelement.html#removelisteners">removeListeners</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#removelisteners">removeListeners</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Removes all listeners bound on the given event.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>the name of the event to remove listeners for</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="tojson" class="tsd-anchor"></a>
<h3>toJSON</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">toJSON<span class="tsd-signature-symbol">(</span><span class="tsd