40
40
41
41
<!-- JS includes -->
42
42
43
+ < script type ="text/javascript " src ="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/0.7.24/webcomponents-lite.js "> </ script >
43
44
< link rel ="import " href ="facets.html " >
44
45
< script src ="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js "> </ script >
45
46
</ head >
@@ -130,7 +131,6 @@ <h2><span class='focus-word'>Overview</span> takes input feature data from any n
130
131
</ div >
131
132
132
133
< div class ="facets-ov-demo ">
133
- < facets-overview id ="foelem "> </ facets-overview >
134
134
</ div >
135
135
136
136
@@ -168,7 +168,6 @@ <h2><span class='focus-word'>Dive</span> is a tool for interactively exploring l
168
168
</ div >
169
169
170
170
< div class ="facets-dive-demo ">
171
- < facets-dive id ="fdelem "> </ facets-dive >
172
171
</ div >
173
172
174
173
< div class ="demo-desc-box facets-dive ">
@@ -220,81 +219,83 @@ <h2>FACETS DIVE x QUICK, DRAW!</h2>
220
219
<!-- Other scripts -->
221
220
222
221
< 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
+ } ) ;
250
251
} ) ;
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
+ }
257
258
}
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
+ } ) ;
269
270
} ) ;
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
+ }
274
275
}
276
+ reader . readAsBinaryString ( file ) ;
277
+ } ;
278
+
279
+ for ( var i = 0 ; i < count ; i ++ ) {
280
+ readFile ( fileupload . files [ i ] ) ;
275
281
}
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 ;
278
290
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" } ) ;
281
298
}
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" } ) ;
298
299
}
299
300
$ ( document ) . on ( 'click' , 'a[href*=\\#]' , function ( event ) {
300
301
event . preventDefault ( ) ;
@@ -303,6 +304,23 @@ <h2>FACETS DIVE x QUICK, DRAW!</h2>
303
304
} , 500 ) ;
304
305
} ) ;
305
306
</ 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 >
306
324
< script >
307
325
( function ( i , s , o , g , r , a , m ) { i [ 'GoogleAnalyticsObject' ] = r ; i [ r ] = i [ r ] || function ( ) {
308
326
( i [ r ] . q = i [ r ] . q || [ ] ) . push ( arguments ) } , i [ r ] . l = 1 * new Date ( ) ; a = s . createElement ( o ) ,
0 commit comments