<!doctype html>
							 | 
						|
								<html>
							 | 
						|
								
							 | 
						|
								<head>
							 | 
						|
								  <title>vis.js | DataSet documentation</title>
							 | 
						|
								
							 | 
						|
								  <link href="css/prettify.css" type="text/css" rel="stylesheet" />
							 | 
						|
								  <link href='css/style.css' type='text/css' rel='stylesheet'>
							 | 
						|
								
							 | 
						|
								  <script type="text/javascript" src="lib/prettify/prettify.js"></script>
							 | 
						|
								</head>
							 | 
						|
								
							 | 
						|
								<body onload="prettyPrint();">
							 | 
						|
								<div id="container">
							 | 
						|
								
							 | 
						|
								<h1>DataSet documentation</h1>
							 | 
						|
								
							 | 
						|
								<h2 id="Contents">Contents</h2>
							 | 
						|
								<ul>
							 | 
						|
								  <li><a href="#Overview">Overview</a></li>
							 | 
						|
								  <li><a href="#Example">Example</a></li>
							 | 
						|
								  <li><a href="#Construction">Construction</a></li>
							 | 
						|
								  <li><a href="#Data_Manipulation">Data Manipulation</a></li>
							 | 
						|
								  <li><a href="#Data_Filtering">Data Filtering</a></li>
							 | 
						|
								  <li><a href="#Data_Formatting">Data Formatting</a></li>
							 | 
						|
								  <li><a href="#Subscriptions">Subscriptions</a></li>
							 | 
						|
								  <li><a href="#Data_Policy">Data Policy</a></li>
							 | 
						|
								</ul>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h2 id="Overview">Overview</h2>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Vis.js comes with a flexible DataSet, which can be used to hold and
							 | 
						|
								  manipulate unstructured data and listen for changes in the data.
							 | 
						|
								  The DataSet is key/value based. Data items can be added, updated and
							 | 
						|
								  removed from the DatSet, and one can subscribe to changes in the DataSet.
							 | 
						|
								  The data in the DataSet can be filtered and ordered, and fields (like
							 | 
						|
								  dates) can be converted to a specific type. Data can be normalized when
							 | 
						|
								  appending it to the DataSet as well.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h2 id="Example">Example</h2>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The following example shows how to use a DataSet.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								// create a DataSet
							 | 
						|
								var options = {};
							 | 
						|
								var data = new vis.DataSet(options);
							 | 
						|
								
							 | 
						|
								// add items
							 | 
						|
								// note that the data items can contain different properties and data formats
							 | 
						|
								data.add([
							 | 
						|
								  {id: 1, text: 'item 1', date: new Date(2013, 6, 20), group: 1, first: true},
							 | 
						|
								  {id: 2, text: 'item 2', date: '2013-06-23', group: 2},
							 | 
						|
								  {id: 3, text: 'item 3', date: '2013-06-25', group: 2},
							 | 
						|
								  {id: 4, text: 'item 4'}
							 | 
						|
								]);
							 | 
						|
								
							 | 
						|
								// subscribe to any change in the DataSet
							 | 
						|
								data.subscribe('*', function (event, params, senderId) {
							 | 
						|
								  console.log('event', event, params);
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								// update an existing item
							 | 
						|
								data.update({id: 2, group: 1});
							 | 
						|
								
							 | 
						|
								// remove an item
							 | 
						|
								data.remove(4);
							 | 
						|
								
							 | 
						|
								// get all ids
							 | 
						|
								var ids = data.getIds();
							 | 
						|
								console.log('ids', ids);
							 | 
						|
								
							 | 
						|
								// get a specific item
							 | 
						|
								var item1 = data.get(1);
							 | 
						|
								console.log('item1', item1);
							 | 
						|
								
							 | 
						|
								// retrieve a filtered subset of the data
							 | 
						|
								var items = data.get({
							 | 
						|
								  filter: function (item) {
							 | 
						|
								    return item.group == 1;
							 | 
						|
								  }
							 | 
						|
								});
							 | 
						|
								console.log('filtered items', items);
							 | 
						|
								
							 | 
						|
								// retrieve formatted items
							 | 
						|
								var items = data.get({
							 | 
						|
								  fields: ['id', 'date'],
							 | 
						|
								  convert: {
							 | 
						|
								    date: 'ISODate'
							 | 
						|
								  }
							 | 
						|
								});
							 | 
						|
								console.log('formatted items', items);
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h2 id="Construction">Construction</h2>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  A DataSet can be constructed as:
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								var data = new vis.DataSet(options)
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  After construction, data can be added to the DataSet using the methods
							 | 
						|
								  <code>add</code> and <code>update</code>, as described in section
							 | 
						|
								  <a href="#Data_Manipulation">Data Manipulation</a>.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The parameter <code>options</code> is optional and is an object which can
							 | 
						|
								  contain the following properties:
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<table>
							 | 
						|
								  <tr>
							 | 
						|
								    <th>Name</th>
							 | 
						|
								    <th>Type</th>
							 | 
						|
								    <th>Default value</th>
							 | 
						|
								    <th>Description</th>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>fieldId</td>
							 | 
						|
								    <td>String</td>
							 | 
						|
								    <td>"id"</td>
							 | 
						|
								    <td>
							 | 
						|
								      The name of the field containing the id of the items.
							 | 
						|
								
							 | 
						|
								      When data is fetched from a server which uses some specific
							 | 
						|
								      field to identify items, this field name can be specified
							 | 
						|
								      in the DataSet using the option <code>fieldId</code>.
							 | 
						|
								      For example <a href="http://couchdb.apache.org/"
							 | 
						|
								                     target="_blank">CouchDB</a> uses the field
							 | 
						|
								      <code>"_id"</code> to identify documents.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>convert</td>
							 | 
						|
								    <td>Object.<String, String></td>
							 | 
						|
								    <td>none</td>
							 | 
						|
								    <td>
							 | 
						|
								      An object containing field names as key, and data types as
							 | 
						|
								      value. By default, the type of the properties of items are left
							 | 
						|
								      unchanged. Item properties can be normalized by specifying a
							 | 
						|
								      field type. This is useful for example to automatically convert
							 | 
						|
								      stringified dates coming from a server into JavaScript Date
							 | 
						|
								      objects. The available data types are listed in section
							 | 
						|
								      <a href="#Data_Types">Data Types</a>.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								</table>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h2 id="Data_Manipulation">Data Manipulation</h2>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The data in a DataSet can be manipulated using the methods
							 | 
						|
								  <a href="#Add"><code>add</code></a>,
							 | 
						|
								  <a href="#Update"><code>update</code></a>,
							 | 
						|
								  and <a href="#Remove"><code>remove</code></a>.
							 | 
						|
								  The DataSet can be emptied using the method
							 | 
						|
								  <a href="#Clear"><code>clear</code></a>.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								// create a DataSet
							 | 
						|
								var data = new vis.DataSet();
							 | 
						|
								
							 | 
						|
								// add items
							 | 
						|
								data.add([
							 | 
						|
								  {id: 1, text: 'item 1'},
							 | 
						|
								  {id: 2, text: 'item 2'},
							 | 
						|
								  {id: 3, text: 'item 3'}
							 | 
						|
								]);
							 | 
						|
								
							 | 
						|
								// update an item
							 | 
						|
								data.update({id: 2, text: 'item 2 (updated)'});
							 | 
						|
								
							 | 
						|
								// remove an item
							 | 
						|
								data.remove(3);
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								<h3 id="Add">Add</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Add a data item or an array with items.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								Syntax:
							 | 
						|
								<pre class="prettyprint lang-js">var addedIds = DataSet.add(data [, senderId])</pre>
							 | 
						|
								
							 | 
						|
								The argument <code>data</code> can contain:
							 | 
						|
								<ul>
							 | 
						|
								  <li>
							 | 
						|
								    An <code>Object</code> containing a single item to be
							 | 
						|
								    added. The item must contain an id.
							 | 
						|
								  </li>
							 | 
						|
								  <li>
							 | 
						|
								    An <code>Array</code> or
							 | 
						|
								    <code>google.visualization.DataTable</code> containing
							 | 
						|
								    a list with items to be added. Each item must contain
							 | 
						|
								    an id.
							 | 
						|
								  </li>
							 | 
						|
								</ul>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  After the items are added to the DataSet, the DataSet will
							 | 
						|
								  trigger an event <code>add</code>. When a <code>senderId</code>
							 | 
						|
								  is provided, this id will be passed with the triggered
							 | 
						|
								  event to all subscribers.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The method will throw an Error when an item with the same id
							 | 
						|
								  as any of the added items already exists.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<h3 id="Update">Update</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Update a data item or an array with items.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								Syntax:
							 | 
						|
								<pre class="prettyprint lang-js">var updatedIds = DataSet.update(data [, senderId])</pre>
							 | 
						|
								
							 | 
						|
								The argument <code>data</code> can contain:
							 | 
						|
								<ul>
							 | 
						|
								  <li>
							 | 
						|
								    An <code>Object</code> containing a single item to be
							 | 
						|
								    updated. The item must contain an id.
							 | 
						|
								  </li>
							 | 
						|
								  <li>
							 | 
						|
								    An <code>Array</code> or
							 | 
						|
								    <code>google.visualization.DataTable</code> containing
							 | 
						|
								    a list with items to be updated. Each item must contain
							 | 
						|
								    an id.
							 | 
						|
								  </li>
							 | 
						|
								</ul>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The provided properties will be merged in the existing item.
							 | 
						|
								  When an item does not exist, it will be created.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  After the items are updated, the DataSet will
							 | 
						|
								  trigger an event <code>add</code> for the added items, and
							 | 
						|
								  an event <code>update</code>. When a <code>senderId</code>
							 | 
						|
								  is provided, this id will be passed with the triggered
							 | 
						|
								  event to all subscribers.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<h3 id="Remove">Remove</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Remove a data item or an array with items.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								Syntax:
							 | 
						|
								<pre class="prettyprint lang-js">var removedIds = DataSet.remove(id [, senderId])</pre>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The argument <code>id</code> can be:
							 | 
						|
								</p>
							 | 
						|
								<ul>
							 | 
						|
								  <li>
							 | 
						|
								    A <code>Number</code> or <code>String</code> containing the id
							 | 
						|
								    of a single item to be removed.
							 | 
						|
								  </li>
							 | 
						|
								  <li>
							 | 
						|
								    An <code>Object</code> containing the item to be deleted.
							 | 
						|
								    The item will be deleted by its id.
							 | 
						|
								  </li>
							 | 
						|
								  <li>
							 | 
						|
								    An Array containing ids or items to be removed.
							 | 
						|
								  </li>
							 | 
						|
								</ul>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The method ignores removal of non-existing items, and returns an array
							 | 
						|
								  containing the ids of the items which are actually removed from the
							 | 
						|
								  DataSet.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  After the items are removed, the DataSet will
							 | 
						|
								  trigger an event <code>remove</code> for the removed items.
							 | 
						|
								  When a <code>senderId</code> is provided, this id will be passed with
							 | 
						|
								  the triggered event to all subscribers.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h3 id="Clear">Clear</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Clear the complete DataSet.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								Syntax:
							 | 
						|
								<pre class="prettyprint lang-js">var removedIds = DataSet.clear([senderId])</pre>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  After the items are removed, the DataSet will
							 | 
						|
								  trigger an event <code>remove</code> for all removed items.
							 | 
						|
								  When a <code>senderId</code> is provided, this id will be passed with
							 | 
						|
								  the triggered event to all subscribers.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h2 id="Data_Filtering">Data Filtering</h2>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Data can be retrieved from the DataSet using the method <code>get</code>.
							 | 
						|
								  This method can return a single item or a list with items.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<p>A single item can be retrieved by its id:</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								var item1 = dataset.get(1);
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								<p>A selection of items can be retrieved by providing an array with ids:</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								var items = dataset.get([1, 3, 4]); // retrieve items 1, 3, and 4
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								<p>All items can be retrieved by simply calling <code>get</code> without
							 | 
						|
								  specifying an id:</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								var items = dataset.get();          // retrieve all items
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Items can be filtered on specific properties by providing a filter
							 | 
						|
								  function. A filter function is executed for each of the items in the
							 | 
						|
								  DataSet, and is called with the item as parameter. The function must
							 | 
						|
								  return a boolean. All items for which the filter function returns
							 | 
						|
								  true will be emitted.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								// retrieve all items having a property group with value 2
							 | 
						|
								var group2 = dataset.get({
							 | 
						|
								  filter: function (item) {
							 | 
						|
								    return (item.group == 2);
							 | 
						|
								  }
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								// retrieve all items having a property balance with a value above zero
							 | 
						|
								var positiveBalance = dataset.get({
							 | 
						|
								  filter: function (item) {
							 | 
						|
								    return (item.balance > 0);
							 | 
						|
								  }
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h2 id="Data_Formatting">Data Formatting</h2>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The DataSet contains functionality to format data retrieved via the
							 | 
						|
								  method <code>get</code>. The method <code>get</code> has the following
							 | 
						|
								  syntax:
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								var item  = DataSet.get(id, options);   // retrieve a single item
							 | 
						|
								var items = DataSet.get(ids, options);  // retrieve a selection of items
							 | 
						|
								var items = DataSet.get(options);       // retrieve all items or a filtered set
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Where <code>options</code> is an Object which can have the following
							 | 
						|
								  properties:
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<table>
							 | 
						|
								  <tr>
							 | 
						|
								    <th>Name</th>
							 | 
						|
								    <th>Type</th>
							 | 
						|
								    <th>Description</th>
							 | 
						|
								  </tr>
							 | 
						|
								
							 | 
						|
								  <tr>
							 | 
						|
								    <td>fields</td>
							 | 
						|
								    <td>String[ ]</td>
							 | 
						|
								    <td>
							 | 
						|
								      An array with field names.
							 | 
						|
								      By default, all properties of the items are emitted.
							 | 
						|
								      When <code>fields</code> is defined, only the properties
							 | 
						|
								      whose name is specified in <code>fields</code> will be included
							 | 
						|
								      in the returned items.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								
							 | 
						|
								  <tr>
							 | 
						|
								    <td>convert</td>
							 | 
						|
								    <td>Object.<String, String></td>
							 | 
						|
								    <td>
							 | 
						|
								      An object containing field names as key, and data types as value.
							 | 
						|
								      By default, the type of the properties of an item are left
							 | 
						|
								      unchanged. When a field type is specified, this field in the
							 | 
						|
								      items will be converted to the specified type. This can be used
							 | 
						|
								      for example to convert ISO strings containing a date to a
							 | 
						|
								      JavaScript Date object, or convert strings to numbers or vice
							 | 
						|
								      versa. The available data types are listed in section
							 | 
						|
								      <a href="#Data_Types">Data Types</a>.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								
							 | 
						|
								  <tr>
							 | 
						|
								    <td>filter</td>
							 | 
						|
								    <td>Function</td>
							 | 
						|
								    <td>Items can be filtered on specific properties by providing a filter
							 | 
						|
								      function. A filter function is executed for each of the items in the
							 | 
						|
								      DataSet, and is called with the item as parameter. The function must
							 | 
						|
								      return a boolean. All items for which the filter function returns
							 | 
						|
								      true will be emitted.
							 | 
						|
								      See section <a href="#Data_Filtering">Data Filtering</a>.</td>
							 | 
						|
								  </tr>
							 | 
						|
								
							 | 
						|
								  <tr>
							 | 
						|
								    <td>order</td>
							 | 
						|
								    <td>String | Function</td>
							 | 
						|
								    <td>Order the items by a field name or custom sort function.</td>
							 | 
						|
								  </tr>
							 | 
						|
								
							 | 
						|
								</table>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The following example demonstrates formatting properties and filtering
							 | 
						|
								  properties from items.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								// create a DataSet
							 | 
						|
								var data = new vis.DataSet();
							 | 
						|
								data.add([
							 | 
						|
								  {id: 1, text: 'item 1', date: '2013-06-20', group: 1, first: true},
							 | 
						|
								  {id: 2, text: 'item 2', date: '2013-06-23', group: 2},
							 | 
						|
								  {id: 3, text: 'item 3', date: '2013-06-25', group: 2},
							 | 
						|
								  {id: 4, text: 'item 4'}
							 | 
						|
								]);
							 | 
						|
								
							 | 
						|
								// retrieve formatted items
							 | 
						|
								var items = data.get({
							 | 
						|
								  fields: ['id', 'date', 'group'],    // output the specified fields only
							 | 
						|
								  convert: {
							 | 
						|
								    date: 'Date',                   // convert the date fields to Date objects
							 | 
						|
								    group: 'String'                 // convert the group fields to Strings
							 | 
						|
								  }
							 | 
						|
								});
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h3 id="Data_Types">Data Types</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  DataSet supports the following data types:
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<table style="width: 100%">
							 | 
						|
								  <tr>
							 | 
						|
								    <th>Name</th>
							 | 
						|
								    <th>Description</th>
							 | 
						|
								    <th>Examples</th>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>Boolean</td>
							 | 
						|
								    <td>A JavaScript Boolean</td>
							 | 
						|
								    <td>
							 | 
						|
								      <code>true</code><br>
							 | 
						|
								      <code>false</code>
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>Number</td>
							 | 
						|
								    <td>A JavaScript Number</td>
							 | 
						|
								    <td>
							 | 
						|
								      <code>32</code><br>
							 | 
						|
								      <code>2.4</code>
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>String</td>
							 | 
						|
								    <td>A JavaScript String</td>
							 | 
						|
								    <td>
							 | 
						|
								      <code>"hello world"</code><br>
							 | 
						|
								      <code>"2013-06-28"</code>
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>Date</td>
							 | 
						|
								    <td>A JavaScript Date object</td>
							 | 
						|
								    <td>
							 | 
						|
								      <code>new Date()</code><br>
							 | 
						|
								      <code>new Date(2013, 5, 28)</code><br>
							 | 
						|
								      <code>new Date(1372370400000)</code>
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>Moment</td>
							 | 
						|
								    <td>A Moment object, created with
							 | 
						|
								      <a href="http://momentjs.com/" target="_blank">moment.js</a></td>
							 | 
						|
								    <td>
							 | 
						|
								      <code>moment()</code><br>
							 | 
						|
								      <code>moment('2013-06-28')</code>
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>ISODate</td>
							 | 
						|
								    <td>A string containing an ISO Date</td>
							 | 
						|
								    <td>
							 | 
						|
								      <code>new Date().toISOString()</code><br>
							 | 
						|
								      <code>"2013-06-27T22:00:00.000Z"</code>
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>ASPDate</td>
							 | 
						|
								    <td>A string containing an ASP Date</td>
							 | 
						|
								    <td>
							 | 
						|
								      <code>"/Date(1372370400000)/"</code><br>
							 | 
						|
								      <code>"/Date(1198908717056-0700)/"</code>
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								</table>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h2 id="Subscriptions">Subscriptions</h2>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  One can subscribe on changes in a DataSet.
							 | 
						|
								  A subscription can be created using the method <code>subscribe</code>,
							 | 
						|
								  and removed with <code>unsubscribe</code>.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<pre class="prettyprint lang-js">
							 | 
						|
								// create a DataSet
							 | 
						|
								var data = new vis.DataSet();
							 | 
						|
								
							 | 
						|
								// subscribe to any change in the DataSet
							 | 
						|
								data.subscribe('*', function (event, params, senderId) {
							 | 
						|
								  console.log('event:', event, 'params:', params, 'senderId:', senderId);
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								// add an item
							 | 
						|
								data.add({id: 1, text: 'item 1'});              // triggers an 'add' event
							 | 
						|
								data.update({id: 1, text: 'item 1 (updated)'}); // triggers an 'update' event
							 | 
						|
								data.remove(1);                                 // triggers an 'remove' event
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h3 id="Subscribe">Subscribe</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Subscribe to an event.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								Syntax:
							 | 
						|
								<pre class="prettyprint lang-js">DataSet.subscribe(event, callback)</pre>
							 | 
						|
								
							 | 
						|
								Where:
							 | 
						|
								<ul>
							 | 
						|
								  <li>
							 | 
						|
								    <code>event</code> is a String containing any of the events listed
							 | 
						|
								    in section <a href="#Events">Events</a>.
							 | 
						|
								  </li>
							 | 
						|
								  <li>
							 | 
						|
								    <code>callback</code> is a callback function which will be called
							 | 
						|
								    each time the event occurs. The callback function is described in
							 | 
						|
								    section <a href="#Callback">Callback</a>.
							 | 
						|
								  </li>
							 | 
						|
								</ul>
							 | 
						|
								
							 | 
						|
								<h3 id="Unsubscribe">Unsubscribe</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  Unsubscribe from an event.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								Syntax:
							 | 
						|
								<pre class="prettyprint lang-js">DataSet.unsubscribe(event, callback)</pre>
							 | 
						|
								
							 | 
						|
								Where <code>event</code> and <code>callback</code> correspond with the
							 | 
						|
								parameters used to <a href="#Subscribe">subscribe</a> to the event.
							 | 
						|
								
							 | 
						|
								<h3 id="Events">Events</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The following events are available for subscription:
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<table>
							 | 
						|
								  <tr>
							 | 
						|
								    <th>Event</th>
							 | 
						|
								    <th>Description</th>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>add</td>
							 | 
						|
								    <td>
							 | 
						|
								      The <code>add</code> event is triggered when an item
							 | 
						|
								      or a set of items is added, or when an item is updated while
							 | 
						|
								      not yet existing.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>update</td>
							 | 
						|
								    <td>
							 | 
						|
								      The <code>update</code> event is triggered when an existing item
							 | 
						|
								      or a set of existing items is updated.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>remove</td>
							 | 
						|
								    <td>
							 | 
						|
								      The <code>remove</code> event is triggered when an item
							 | 
						|
								      or a set of items is removed.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>*</td>
							 | 
						|
								    <td>
							 | 
						|
								      The <code>*</code> event is triggered when any of the events
							 | 
						|
								      <code>add</code>, <code>update</code>, and <code>remove</code>
							 | 
						|
								      occurs.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								</table>
							 | 
						|
								
							 | 
						|
								<h3 id="Callback">Callback</h3>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  The callback functions of subscribers are called with the following
							 | 
						|
								  parameters:
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								    <pre class="prettyprint lang-js">
							 | 
						|
								function (event, params, senderId) {
							 | 
						|
								  // handle the event
							 | 
						|
								});
							 | 
						|
								</pre>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								  where the parameters are defined as
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<table>
							 | 
						|
								  <tr>
							 | 
						|
								    <th>Parameter</th>
							 | 
						|
								    <th>Type</th>
							 | 
						|
								    <th>Description</th>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>event</td>
							 | 
						|
								    <td>String</td>
							 | 
						|
								    <td>
							 | 
						|
								      Any of the available events: <code>add</code>,
							 | 
						|
								      <code>update</code>, or <code>remove</code>.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>params</td>
							 | 
						|
								    <td>Object | null</td>
							 | 
						|
								    <td>
							 | 
						|
								      Optional parameters providing more information on the event.
							 | 
						|
								      In case of the events <code>add</code>,
							 | 
						|
								      <code>update</code>, and <code>remove</code>,
							 | 
						|
								      <code>params</code> is always an object containing a property
							 | 
						|
								      items, which contains an array with the ids of the affected
							 | 
						|
								      items.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>senderId</td>
							 | 
						|
								    <td>String | Number</td>
							 | 
						|
								    <td>
							 | 
						|
								      An senderId, optionally provided by the application code
							 | 
						|
								      which triggered the event. If senderId is not provided, the
							 | 
						|
								      argument will be <code>null</code>.
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								</table>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								<h2 id="Data_Policy">Data Policy</h2>
							 | 
						|
								<p>
							 | 
						|
								  All code and data is processed and rendered in the browser.
							 | 
						|
								  No data is sent to any server.
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								</div>
							 | 
						|
								</body>
							 | 
						|
								</html>
							 |