Skip to content
This repository was archived by the owner on Jul 27, 2024. It is now read-only.

Commit c436483

Browse files
committed
load webcomponents-lite polyfills for non-chrome browsers then load visualization code in correct order after web components ready
1 parent 94b3191 commit c436483

File tree

2 files changed

+108
-77
lines changed

2 files changed

+108
-77
lines changed

index.html

Lines changed: 88 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040

4141
<!-- JS includes -->
4242

43+
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/0.7.24/webcomponents-lite.js"></script>
4344
<link rel="import" href="facets.html" >
4445
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
4546
</head>
@@ -130,7 +131,6 @@ <h2><span class='focus-word'>Overview</span> takes input feature data from any n
130131
</div>
131132

132133
<div class="facets-ov-demo">
133-
<facets-overview id="foelem"></facets-overview>
134134
</div>
135135

136136

@@ -168,7 +168,6 @@ <h2><span class='focus-word'>Dive</span> is a tool for interactively exploring l
168168
</div>
169169

170170
<div class="facets-dive-demo">
171-
<facets-dive id="fdelem"></facets-dive>
172171
</div>
173172

174173
<div class="demo-desc-box facets-dive">
@@ -220,81 +219,83 @@ <h2>FACETS DIVE x QUICK, DRAW!</h2>
220219
<!-- Other scripts -->
221220

222221
<script>
223-
var fileupload = $("#fileupload")[0];
224-
$("#uploadbutton1")[0].onclick = function() {
225-
fileupload.click();
226-
};
227-
$("#uploadbutton2")[0].onclick = function() {
228-
fileupload.click();
229-
};
230-
var readFiles = function () {
231-
var count = fileupload.files.length;
232-
var datasetsList = [];
233-
234-
var whendone = function() {
235-
var overview = $("#foelem")[0];
236-
var dive = $("#fdelem")[0];
237-
var proto = overview.getStatsProto(datasetsList);
238-
overview.protoInput = proto;
239-
if (datasetsList.length < 2) {
240-
dive.data = datasetsList[0].data;
241-
} else {
242-
var newFeatureForDive = 'csv-source';
243-
var columns = datasetsList.length > 0 ? datasetsList[0].data.columns : [];
244-
while (columns.indexOf(newFeatureForDive) > -1) {
245-
newFeatureForDive = newFeatureForDive + newFeatureForDive;
246-
}
247-
datasetsList.forEach(function(dataset) {
248-
dataset.data.forEach(function(datapoint) {
249-
datapoint[newFeatureForDive] = dataset.name;
222+
function setupVis() {
223+
var fileupload = $("#fileupload")[0];
224+
$("#uploadbutton1")[0].onclick = function() {
225+
fileupload.click();
226+
};
227+
$("#uploadbutton2")[0].onclick = function() {
228+
fileupload.click();
229+
};
230+
var readFiles = function () {
231+
var count = fileupload.files.length;
232+
var datasetsList = [];
233+
234+
var whendone = function() {
235+
var overview = $("#foelem")[0];
236+
var dive = $("#fdelem")[0];
237+
var proto = overview.getStatsProto(datasetsList);
238+
overview.protoInput = proto;
239+
if (datasetsList.length < 2) {
240+
dive.data = datasetsList[0].data;
241+
} else {
242+
var newFeatureForDive = 'csv-source';
243+
var columns = datasetsList.length > 0 ? datasetsList[0].data.columns : [];
244+
while (columns.indexOf(newFeatureForDive) > -1) {
245+
newFeatureForDive = newFeatureForDive + newFeatureForDive;
246+
}
247+
datasetsList.forEach(function(dataset) {
248+
dataset.data.forEach(function(datapoint) {
249+
datapoint[newFeatureForDive] = dataset.name;
250+
});
250251
});
251-
});
252-
var alldata = datasetsList.reduce(function(a, b){
253-
return a.concat(b.data);
254-
}, []);
255-
dive.data = alldata;
256-
dive.colorBy = newFeatureForDive;
252+
var alldata = datasetsList.reduce(function(a, b){
253+
return a.concat(b.data);
254+
}, []);
255+
dive.data = alldata;
256+
dive.colorBy = newFeatureForDive;
257+
}
257258
}
258-
}
259-
var readFile = function(file) {
260-
var reader = new FileReader();
261-
reader.onload = function() {
262-
var parsedData = d3.csvParse(reader.result);
263-
parsedData.forEach(function(row) {
264-
parsedData.columns.forEach(function(column) {
265-
var coercedNum = +row[column];
266-
if (!isNaN(coercedNum)) {
267-
row[column] = coercedNum;
268-
}
259+
var readFile = function(file) {
260+
var reader = new FileReader();
261+
reader.onload = function() {
262+
var parsedData = d3.csvParse(reader.result);
263+
parsedData.forEach(function(row) {
264+
parsedData.columns.forEach(function(column) {
265+
var coercedNum = +row[column];
266+
if (!isNaN(coercedNum)) {
267+
row[column] = coercedNum;
268+
}
269+
});
269270
});
270-
});
271-
datasetsList.push({data: parsedData, name: file.name});
272-
if (!--count) {
273-
whendone();
271+
datasetsList.push({data: parsedData, name: file.name});
272+
if (!--count) {
273+
whendone();
274+
}
274275
}
276+
reader.readAsBinaryString(file);
277+
};
278+
279+
for (var i = 0; i < count; i++) {
280+
readFile(fileupload.files[i]);
275281
}
276-
reader.readAsBinaryString(file);
277-
};
282+
}
283+
fileupload.addEventListener('change', readFiles);
284+
$.when(trainAjax(), testAjax()).done(function(trainAjax, testAjax) {
285+
var overview = $("#foelem")[0];
286+
var proto = overview.getStatsProto([
287+
{data: trainAjax[0], name: "train"},
288+
{data: testAjax[0], name: "test"}]);
289+
overview.protoInput = proto;
278290

279-
for (var i = 0; i < count; i++) {
280-
readFile(fileupload.files[i]);
291+
$("#fdelem")[0].data = testAjax[0];
292+
});
293+
function trainAjax() {
294+
return $.getJSON({url: "train.json"});
295+
}
296+
function testAjax() {
297+
return $.getJSON({url: "test.json"});
281298
}
282-
}
283-
fileupload.addEventListener('change', readFiles);
284-
$.when(trainAjax(), testAjax()).done(function(trainAjax, testAjax) {
285-
var overview = $("#foelem")[0];
286-
var proto = overview.getStatsProto([
287-
{data: trainAjax[0], name: "train"},
288-
{data: testAjax[0], name: "test"}]);
289-
overview.protoInput = proto;
290-
291-
$("#fdelem")[0].data = testAjax[0];
292-
});
293-
function trainAjax() {
294-
return $.getJSON({url: "train.json"});
295-
}
296-
function testAjax() {
297-
return $.getJSON({url: "test.json"});
298299
}
299300
$(document).on('click', 'a[href*=\\#]', function(event){
300301
event.preventDefault();
@@ -303,6 +304,23 @@ <h2>FACETS DIVE x QUICK, DRAW!</h2>
303304
}, 500);
304305
});
305306
</script>
307+
<script>
308+
window.addEventListener('WebComponentsReady', function() {
309+
var link = document.createElement("link");
310+
link.rel = "import";
311+
link.href = "facets.html";
312+
link.onload= function() {
313+
var dive = document.createElement("facets-dive");
314+
dive.id = "fdelem";
315+
$(".facets-dive-demo")[0].appendChild(dive);
316+
var overview = document.createElement("facets-overview");
317+
overview.id = "foelem";
318+
$(".facets-ov-demo")[0].appendChild(overview);
319+
setupVis();
320+
};
321+
document.head.appendChild(link);
322+
});
323+
</script>
306324
<script>
307325
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
308326
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

quickdraw.html

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,26 @@
1818
<html>
1919
<head>
2020
<meta charset="utf-8">
21-
<link rel="import" href="facets.html" >
21+
<script>
22+
window.addEventListener('WebComponentsReady', function() {
23+
var link = document.createElement('link');
24+
link.rel = "import";
25+
link.href = "facets.html";
26+
link.onload= function() {
27+
var dive = document.createElement('facets-dive');
28+
dive.crossOrigin = "anonymous";
29+
dive.spriteImageWidth = "40";
30+
dive.spriteImageHeight = "40";
31+
document.body.appendChild(dive);
32+
var script = document.createElement('script');
33+
script.async = true;
34+
script.src = 'quickdraw.js';
35+
document.head.appendChild(script);
36+
}
37+
document.head.appendChild(link);
38+
});
39+
</script>
40+
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/0.7.24/webcomponents-lite.js"></script>
2241
<style>
2342
body, html {
2443
height: 100%;
@@ -78,11 +97,5 @@
7897
<select class="presets"></select>
7998
</label>
8099
</div>
81-
<facets-dive
82-
cross-origin="anonymous"
83-
sprite-image-width="40"
84-
sprite-image-height="40"
85-
></facets-dive>
86-
<script src="quickdraw.js"></script>
87100
</body>
88101
</html>

0 commit comments

Comments
 (0)