dygraphs
Version:
dygraphs is a fast, flexible open source JavaScript charting library.
221 lines (206 loc) • 6.72 kB
HTML
<html>
<head>
<meta charset="UTF-8">
<title>Exported Symbols test</title>
<link rel="stylesheet" type="text/css" href="../dist/dygraph.css" />
<link rel="stylesheet" type="text/css" href="../common/vextlnk.css" />
<!-- see below for dygraph.js due to necessity -->
</head>
<body>
<p><em>Do</em> note that anything with an underscore <tt>_</tt> is
considered internal, not an API, and subject to change without notice,
unless specifically promised otherwise.</p>
<p>dygraphs exports these symbols into the global namespace:</p>
<ol id="list">
</ol>
<p>It exports these symbols inside each of those symbols and <tt>Dygraph.{Circles,Plugins}</tt>:</p>
<ol id="list2">
</ol>
<p>Loading extras:</p>
<ol id="list3">
</ol>
<p>New top-level elements after loading extras:</p>
<ol id="list4">
</ol>
<p>New second-level and <tt>Dygraph.{Circles,Plugins}</tt> elements after loading extras:</p>
<ol id="list5">
</ol>
<p>The following surface can be reached via the “require” system.
Most of this is considered internal and possibe subject to change
at few or no notice even if not, in ipso, underscore-tagged.</p>
<ul id="list6">
</ul>
<script type="text/javascript"><!--//--><![CDATA[//><!--
exportedSymbolsTest_windowProps = {};
(function () {
for (var k in window)
exportedSymbolsTest_windowProps[k] = true;
})();
//--><!]]></script>
<script type="text/javascript" src="../dist/dygraph.js"></script>
<script type="text/javascript"><!--//--><![CDATA[//><!--
Dygraph.onDOMready(function onDOMready() {
var i, k, html, level2props, sym, topSymbol;
var newProps = [];
var windowProps = exportedSymbolsTest_windowProps;
var _headelt = document.getElementsByTagName("head")[0];
for (k in window) {
if (!windowProps.hasOwnProperty(k)) {
newProps.push(k);
windowProps[k] = true;
}
}
newProps.sort();
html = '';
for (i = 0; i < newProps.length; i++) {
html += '<li>' + newProps[i] + '</li>\n';
}
document.getElementById('list').innerHTML = html;
level2props = [];
for (i = 0; i < newProps.length; i++) {
topSymbol = newProps[i];
for (k in window[topSymbol]) {
sym = topSymbol + '.' + k;
level2props.push(sym);
}
}
for (k in Dygraph.Circles) {
sym = 'Dygraph.Circles.' + k;
level2props.push(sym);
}
for (k in Dygraph.Plugins) {
sym = 'Dygraph.Plugins.' + k;
level2props.push(sym);
}
level2props.sort();
html = '';
for (i = 0; i < level2props.length; i++) {
html += '<li>' + level2props[i] + '</li>\n';
}
document.getElementById('list2').innerHTML = html;
var _l3 = document.getElementById('list3');
i = 0;
var loadedscript;
var loadscripts = function () {
var loadscript = function (name) {
var e1 = document.createElement('script');
e1.type = 'text/javascript';
e1.src = '../dist/' + name;
e1.onload = function () {
var e2 = document.createElement('li');
e2.innerText = '✓ ' + name;
e2.style.color = 'green';
_l3.appendChild(e2);
if (++i == k)
loadedscript();
};
e1.onerror = function () {
var e2 = document.createElement('li');
e2.innerText = '✘ ' + name;
e2.style.color = 'red';
_l3.appendChild(e2);
if (++i == k)
loadedscript();
};
_headelt.appendChild(e1);
};
k = 8;
loadscript('extras/crosshair.js');
loadscript('extras/hairlines.js');
loadscript('extras/rebase.js');
loadscript('extras/shapes.js');
loadscript('extras/smooth-plotter.js');
loadscript('extras/super-annotations.js');
loadscript('extras/synchronizer.js');
loadscript('extras/unzoom.js');
};
loadedscript = function () {
var newl1props = [];
for (k in window)
if (!windowProps.hasOwnProperty(k)) {
newl1props.push(k);
newProps.push(k);
}
newl1props.sort();
html = '';
for (i = 0; i < newl1props.length; i++)
html += '<li>' + newl1props[i] + '</li>\n';
document.getElementById('list4').innerHTML = html;
var newl2props = [];
for (i = 0; i < newProps.length; i++) {
topSymbol = newProps[i];
for (k in window[topSymbol]) {
sym = topSymbol + '.' + k;
if (!level2props.includes(sym))
newl2props.push(sym);
}
}
for (k in Dygraph.Circles) {
sym = 'Dygraph.Circles.' + k;
if (!level2props.includes(sym))
newl2props.push(sym);
}
for (k in Dygraph.Plugins) {
sym = 'Dygraph.Plugins.' + k;
if (!level2props.includes(sym))
newl2props.push(sym);
}
newl2props.sort();
html = '';
for (i = 0; i < newl2props.length; i++)
html += '<li>' + newl2props[i] + '</li>\n';
document.getElementById('list5').innerHTML = html;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState !== 4)
return;
var data = JSON.parse(xhr.responseText)["sources"];
var elts = [];
var recurse = function (prefix, element) {
var t = typeof(element);
if (t === 'function') {
elts.push(prefix + ' → ' + t + ' ' + element.name + '()');
return;
}
if (t === 'number') {
elts.push(prefix + ' → ' + t + ' = ' + element);
return;
}
if (t === 'boolean') {
elts.push(prefix + ' → ' + t + ' = ' + (element ? 'true' : 'false'));
return;
}
if (t === 'string') {
elts.push(prefix + ' → ' + t + ' = ' + JSON.stringify(element));
return;
}
elts.push(prefix + ' → ' + t);
if (t !== 'object')
return;
for (var k in element)
if (element.hasOwnProperty(k))
recurse(prefix + '.' + k, element[k]);
};
for (i = 0; i < data.length; ++i)
if (data[i].startsWith("src/"))
recurse("Dygraph._require('dygraphs/" + data[i] + "')",
Dygraph._require('dygraphs/' + data[i]));
elts.sort();
var p = document.getElementById('list6');
for (i = 0; i < elts.length; ++i) {
var e = document.createElement('li');
var t = document.createElement('tt');
t.innerText = elts[i];
e.appendChild(t);
p.appendChild(e);
}
};
xhr.open("GET", "../dist/dygraph.js.map", true);
xhr.send();
};
loadscripts();
});
//--><!]]></script>
</body>
</html>