diff --git a/MoonZoon.toml b/MoonZoon.toml
index d53ee41..d06702c 100644
--- a/MoonZoon.toml
+++ b/MoonZoon.toml
@@ -1,7 +1,9 @@
port = 8080
# port = 8443
https = false
-cache_busting = true
+# @TODO how to import `pkg/frontend.js` with enabled cache busting?
+# @TODO add a switch to enable Typescript generator in mzoon?
+cache_busting = false
backend_log_level = "warn" # "error" / "warn" / "info" / "debug" / "trace"
[redirect]
@@ -23,4 +25,6 @@ frontend = [
backend = [
"backend/Cargo.toml",
"backend/src",
+ "backend/index.js",
+ "backend/style.css",
]
diff --git a/README.md b/README.md
index 158b34d..496712d 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,16 @@
Zoom and all formats
+
+
+ Javascript commands
+
+
+
+
+ Load and save selected variables
+
+
---
### Install requirements:
diff --git a/backend/index.js b/backend/index.js
new file mode 100644
index 0000000..b1896bc
--- /dev/null
+++ b/backend/index.js
@@ -0,0 +1,2 @@
+import { FW } from '/_api/pkg/frontend.js';
+window.FW = FW;
diff --git a/backend/src/main.rs b/backend/src/main.rs
index 1b86c9a..fe6bfd7 100644
--- a/backend/src/main.rs
+++ b/backend/src/main.rs
@@ -1,11 +1,14 @@
use moon::*;
async fn frontend() -> Frontend {
- Frontend::new().title("FastWave").append_to_head(concat!(
- ""
- ))
+ Frontend::new()
+ .title("FastWave")
+ .append_to_head(concat!(""))
+ .append_to_head(concat!(
+ ""
+ ))
}
async fn up_msg_handler(_: UpMsgRequest<()>) {}
diff --git a/docs/video_javascript_commands.gif b/docs/video_javascript_commands.gif
new file mode 100644
index 0000000..0a16dde
Binary files /dev/null and b/docs/video_javascript_commands.gif differ
diff --git a/docs/video_load_save_selected_vars.gif b/docs/video_load_save_selected_vars.gif
new file mode 100644
index 0000000..0580fa8
Binary files /dev/null and b/docs/video_load_save_selected_vars.gif differ
diff --git a/frontend/src/controls_panel.rs b/frontend/src/controls_panel.rs
index 69fff23..521acdd 100644
--- a/frontend/src/controls_panel.rs
+++ b/frontend/src/controls_panel.rs
@@ -1,15 +1,15 @@
-use crate::{platform, Layout};
+use crate::{Filename, Layout};
use std::cell::Cell;
use std::mem;
use std::ops::Not;
use std::rc::Rc;
+use std::sync::Arc;
use wellen::GetItem;
use zoon::*;
-const SCOPE_VAR_ROW_MAX_WIDTH: u32 = 480;
+const MILLER_COLUMN_SCOPE_VAR_ROW_MIN_WIDTH: u32 = 480;
const MILLER_COLUMN_MAX_HEIGHT: u32 = 500;
-
-type Filename = String;
+const TREE_MAX_WIDTH: u32 = 600;
#[derive(Clone)]
struct VarForUI {
@@ -34,7 +34,7 @@ struct ScopeForUI {
#[derive(Clone)]
pub struct ControlsPanel {
selected_scope_ref: Mutable