diff --git a/src/explorer/assets/main.html b/src/explorer/assets/main.html index 9301af53a..080710a21 100644 --- a/src/explorer/assets/main.html +++ b/src/explorer/assets/main.html @@ -3,13 +3,11 @@
- - - - - + + + + + diff --git a/src/explorer/assets/refresh.js b/src/explorer/assets/refresh.js index 881f507c1..9a549d94e 100644 --- a/src/explorer/assets/refresh.js +++ b/src/explorer/assets/refresh.js @@ -1,3 +1,5 @@ +const fs = require('node:fs/promises'); + // Mimi UI function refresh(menu_item_list) { @@ -30,5 +32,15 @@ function refresh(menu_item_list) { } function display(spec) { - vegaEmbed("#vis", spec["VLspec"], {actions: false}); + const loader = { + load: async function(uri, options) { + const parsedUri = new URL(uri) + if (parsedUri.protocol!='file') { + throw new Error('Only file URIs are allowed in the vega-lite spec.'); + } + + return await fs.readFile(new URL(uri)) + }, + } + vegaEmbed("#vis", spec["VLspec"], {actions: false, loader: loader}); } diff --git a/src/explorer/buildspecs.jl b/src/explorer/buildspecs.jl index 214f145b1..76d5d654e 100644 --- a/src/explorer/buildspecs.jl +++ b/src/explorer/buildspecs.jl @@ -493,14 +493,17 @@ function createspec_trumpet_static(name, df, dffields) end function createspec_trumpet_interactive(name, df, dffields) + temp_data_file_name = tempname() - datapart = getdatapart(df, dffields, :trumpet) #returns JSONtext type + df = select(df, 1 => (i -> Date.(i)) => :time, 2, 3, copycols=false) + CSVFiles.save(CSVFiles.FileIO.File{CSVFiles.FileIO.format"CSV"}(temp_data_file_name), df) + spec = Dict( "name" => name, "VLspec" => Dict( - "\$schema" => "https://vega.github.io/schema/vega-lite/v3.json", + "\$schema" => "https://vega.github.io/schema/vega-lite/v5.json", "description" => "plot for a specific component variable pair", - "data"=> Dict("values" => datapart), + "data"=> Dict("url" => string(URI(FilePaths.Path(temp_data_file_name))), "format" => Dict("type" => "csv")), "vconcat" => [ Dict( "title" => "$name",