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",