Spaces:
Running
Running
Merge pull request #2 from biggraph/darabos-checkbox
Browse files- server/ops.py +1 -1
- web/src/NodeParameter.svelte +21 -8
server/ops.py
CHANGED
@@ -61,7 +61,7 @@ class Parameter(BaseConfig):
|
|
61 |
if default is inspect._empty:
|
62 |
default = None
|
63 |
if type is None or type is inspect._empty:
|
64 |
-
type = typeof(default) if default else None
|
65 |
return Parameter(name=name, default=default, type=type)
|
66 |
|
67 |
class Input(BaseConfig):
|
|
|
61 |
if default is inspect._empty:
|
62 |
default = None
|
63 |
if type is None or type is inspect._empty:
|
64 |
+
type = typeof(default) if default is not None else None
|
65 |
return Parameter(name=name, default=default, type=type)
|
66 |
|
67 |
class Input(BaseConfig):
|
web/src/NodeParameter.svelte
CHANGED
@@ -3,21 +3,24 @@
|
|
3 |
export let value;
|
4 |
export let meta;
|
5 |
export let onChange;
|
|
|
6 |
</script>
|
7 |
|
8 |
<label class="param">
|
9 |
-
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
10 |
{#if meta?.type?.format === 'collapsed'}
|
|
|
11 |
<button class="collapsed-param form-control form-control-sm">
|
12 |
⋯
|
13 |
</button>
|
14 |
{:else if meta?.type?.format === 'textarea'}
|
|
|
15 |
<textarea class="form-control form-control-sm"
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
{:else if meta?.type?.enum}
|
|
|
21 |
<select class="form-select form-select-sm"
|
22 |
value={value || meta.type.enum[0]}
|
23 |
on:change={(evt) => onChange(evt.currentTarget.value)}
|
@@ -26,11 +29,21 @@
|
|
26 |
<option value={option}>{option}</option>
|
27 |
{/each}
|
28 |
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
{:else}
|
|
|
30 |
<input class="form-control form-control-sm"
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
{/if}
|
35 |
</label>
|
36 |
|
|
|
3 |
export let value;
|
4 |
export let meta;
|
5 |
export let onChange;
|
6 |
+
const BOOLEAN = "<class 'bool'>";
|
7 |
</script>
|
8 |
|
9 |
<label class="param">
|
|
|
10 |
{#if meta?.type?.format === 'collapsed'}
|
11 |
+
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
12 |
<button class="collapsed-param form-control form-control-sm">
|
13 |
⋯
|
14 |
</button>
|
15 |
{:else if meta?.type?.format === 'textarea'}
|
16 |
+
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
17 |
<textarea class="form-control form-control-sm"
|
18 |
+
rows="6"
|
19 |
+
value={value}
|
20 |
+
on:change={(evt) => onChange(evt.currentTarget.value)}
|
21 |
+
/>
|
22 |
{:else if meta?.type?.enum}
|
23 |
+
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
24 |
<select class="form-select form-select-sm"
|
25 |
value={value || meta.type.enum[0]}
|
26 |
on:change={(evt) => onChange(evt.currentTarget.value)}
|
|
|
29 |
<option value={option}>{option}</option>
|
30 |
{/each}
|
31 |
</select>
|
32 |
+
{:else if meta?.type?.type === BOOLEAN}
|
33 |
+
<label class="form-check-label">
|
34 |
+
<input class="form-check-input"
|
35 |
+
type="checkbox"
|
36 |
+
checked={value}
|
37 |
+
on:change={(evt) => onChange(evt.currentTarget.checked)}
|
38 |
+
/>
|
39 |
+
{name.replace(/_/g, ' ')}
|
40 |
+
</label>
|
41 |
{:else}
|
42 |
+
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
43 |
<input class="form-control form-control-sm"
|
44 |
+
value={value}
|
45 |
+
on:change={(evt) => onChange(evt.currentTarget.value)}
|
46 |
+
/>
|
47 |
{/if}
|
48 |
</label>
|
49 |
|