Spaces:
Running
Running
Hide visualization parameters by default.
Browse files
lynxkite-app/web/src/index.css
CHANGED
@@ -242,6 +242,20 @@ body {
|
|
242 |
}
|
243 |
}
|
244 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
.directory {
|
246 |
.entry-list {
|
247 |
width: 100%;
|
|
|
242 |
}
|
243 |
}
|
244 |
|
245 |
+
.params-expander {
|
246 |
+
font-size: 15px;
|
247 |
+
padding: 4px;
|
248 |
+
color: #000a;
|
249 |
+
}
|
250 |
+
|
251 |
+
.flippy {
|
252 |
+
transition: transform 0.5s;
|
253 |
+
}
|
254 |
+
|
255 |
+
.flippy.flippy-90 {
|
256 |
+
transform: rotate(-90deg);
|
257 |
+
}
|
258 |
+
|
259 |
.directory {
|
260 |
.entry-list {
|
261 |
width: 100%;
|
lynxkite-app/web/src/workspace/nodes/NodeWithParams.tsx
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
import { useReactFlow } from "@xyflow/react";
|
|
|
|
|
|
|
2 |
import LynxKiteNode from "./LynxKiteNode";
|
3 |
import NodeGroupParameter from "./NodeGroupParameter";
|
4 |
import NodeParameter from "./NodeParameter";
|
@@ -8,6 +11,7 @@ export type UpdateOptions = { delay?: number };
|
|
8 |
function NodeWithParams(props: any) {
|
9 |
const reactFlow = useReactFlow();
|
10 |
const metaParams = props.data.meta?.params;
|
|
|
11 |
|
12 |
function setParam(name: string, newValue: any, opts: UpdateOptions) {
|
13 |
reactFlow.updateNodeData(props.id, (prevData: any) => ({
|
@@ -31,31 +35,40 @@ function NodeWithParams(props: any) {
|
|
31 |
|
32 |
return (
|
33 |
<LynxKiteNode {...props}>
|
34 |
-
{
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
setParam(name, value, opts || {})
|
42 |
-
}
|
43 |
-
deleteParam={(name: string, opts?: UpdateOptions) =>
|
44 |
-
deleteParam(name, opts || {})
|
45 |
-
}
|
46 |
-
/>
|
47 |
-
) : (
|
48 |
-
<NodeParameter
|
49 |
-
name={name}
|
50 |
-
key={name}
|
51 |
-
value={value}
|
52 |
-
meta={metaParams?.[name]}
|
53 |
-
onChange={(value: any, opts?: UpdateOptions) =>
|
54 |
-
setParam(name, value, opts || {})
|
55 |
-
}
|
56 |
-
/>
|
57 |
-
),
|
58 |
)}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
{props.children}
|
60 |
</LynxKiteNode>
|
61 |
);
|
|
|
1 |
import { useReactFlow } from "@xyflow/react";
|
2 |
+
import React from "react";
|
3 |
+
// @ts-ignore
|
4 |
+
import Triangle from "~icons/tabler/triangle-inverted-filled.jsx";
|
5 |
import LynxKiteNode from "./LynxKiteNode";
|
6 |
import NodeGroupParameter from "./NodeGroupParameter";
|
7 |
import NodeParameter from "./NodeParameter";
|
|
|
11 |
function NodeWithParams(props: any) {
|
12 |
const reactFlow = useReactFlow();
|
13 |
const metaParams = props.data.meta?.params;
|
14 |
+
const [collapsed, setCollapsed] = React.useState(props.collapsed);
|
15 |
|
16 |
function setParam(name: string, newValue: any, opts: UpdateOptions) {
|
17 |
reactFlow.updateNodeData(props.id, (prevData: any) => ({
|
|
|
35 |
|
36 |
return (
|
37 |
<LynxKiteNode {...props}>
|
38 |
+
{props.collapsed && (
|
39 |
+
<div
|
40 |
+
className="params-expander"
|
41 |
+
onClick={() => setCollapsed(!collapsed)}
|
42 |
+
>
|
43 |
+
<Triangle className={`flippy ${collapsed ? "flippy-90" : ""}`} />
|
44 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
)}
|
46 |
+
{!collapsed &&
|
47 |
+
params.map(([name, value]) =>
|
48 |
+
metaParams?.[name]?.type === "group" ? (
|
49 |
+
<NodeGroupParameter
|
50 |
+
key={name}
|
51 |
+
value={value}
|
52 |
+
meta={metaParams?.[name]}
|
53 |
+
setParam={(name: string, value: any, opts?: UpdateOptions) =>
|
54 |
+
setParam(name, value, opts || {})
|
55 |
+
}
|
56 |
+
deleteParam={(name: string, opts?: UpdateOptions) =>
|
57 |
+
deleteParam(name, opts || {})
|
58 |
+
}
|
59 |
+
/>
|
60 |
+
) : (
|
61 |
+
<NodeParameter
|
62 |
+
name={name}
|
63 |
+
key={name}
|
64 |
+
value={value}
|
65 |
+
meta={metaParams?.[name]}
|
66 |
+
onChange={(value: any, opts?: UpdateOptions) =>
|
67 |
+
setParam(name, value, opts || {})
|
68 |
+
}
|
69 |
+
/>
|
70 |
+
),
|
71 |
+
)}
|
72 |
{props.children}
|
73 |
</LynxKiteNode>
|
74 |
);
|
lynxkite-app/web/src/workspace/nodes/NodeWithVisualization.tsx
CHANGED
@@ -22,7 +22,7 @@ const NodeWithVisualization = (props: any) => {
|
|
22 |
};
|
23 |
}, [props.data?.display?.value]);
|
24 |
return (
|
25 |
-
<NodeWithParams {...props}>
|
26 |
<div className="box" draggable={false} ref={chartsRef} />
|
27 |
</NodeWithParams>
|
28 |
);
|
|
|
22 |
};
|
23 |
}, [props.data?.display?.value]);
|
24 |
return (
|
25 |
+
<NodeWithParams collapsed {...props}>
|
26 |
<div className="box" draggable={false} ref={chartsRef} />
|
27 |
</NodeWithParams>
|
28 |
);
|