-
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/frontend/viewer/src/project/browse/filter/FieldSelect.svelte b/frontend/viewer/src/project/browse/filter/FieldSelect.svelte
new file mode 100644
index 0000000000..15c708fb3a
--- /dev/null
+++ b/frontend/viewer/src/project/browse/filter/FieldSelect.svelte
@@ -0,0 +1,46 @@
+
+
+
+
+ (value ?? fields[0]).id, (newId) => value = fields.find(f => f.id === newId) ?? fields[0]}>
+
+ {labeledValue.label}
+
+
+
+ {$t`Field`}
+ {#each fields as field (field.id)}
+
+ {field.label}
+
+ {/each}
+
+
+
diff --git a/frontend/viewer/src/project/browse/filter/MissingSelect.svelte b/frontend/viewer/src/project/browse/filter/MissingSelect.svelte
new file mode 100644
index 0000000000..f7f066fae1
--- /dev/null
+++ b/frontend/viewer/src/project/browse/filter/MissingSelect.svelte
@@ -0,0 +1,32 @@
+
+
+
+ value?.id ?? null!, (newId) => value = missingOptions.find(f => f.id === newId) ?? null}>
+
+ {value?.label ?? $t`Missing...`}
+
+
+ {#each missingOptions as option (option.id)}
+
+ {option.label}
+
+ {/each}
+
+
diff --git a/frontend/viewer/src/project/browse/filter/SemanticDomainSelect.svelte b/frontend/viewer/src/project/browse/filter/SemanticDomainSelect.svelte
new file mode 100644
index 0000000000..d034d95269
--- /dev/null
+++ b/frontend/viewer/src/project/browse/filter/SemanticDomainSelect.svelte
@@ -0,0 +1,28 @@
+
+
+
+
+