MapComplete/src/UI/Studio/SchemaBasedInput.svelte

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

26 lines
997 B
Svelte
Raw Normal View History

<script lang="ts">
2023-08-23 11:11:53 +02:00
import type { ConfigMeta } from "./configMeta";
import SchemaBasedField from "./SchemaBasedField.svelte";
import EditLayerState from "./EditLayerState";
import SchemaBasedArray from "./SchemaBasedArray.svelte";
import SchemaBasedMultiType from "./SchemaBasedMultiType.svelte";
import ArrayMultiAnswer from "./ArrayMultiAnswer.svelte";
2023-10-07 03:07:32 +02:00
2023-08-23 11:11:53 +02:00
export let schema: ConfigMeta;
export let state: EditLayerState;
export let path: (string | number)[] = [];
</script>
2023-10-30 13:45:44 +01:00
{#if schema.hints?.typehint?.endsWith("[]")}
2023-08-23 11:11:53 +02:00
<!-- We cheat a bit here by matching this 'magical' type... -->
<SchemaBasedArray {path} {state} {schema} />
{:else if schema.type === "array" && schema.hints.multianswer === "true"}
<ArrayMultiAnswer {path} {state} {schema}/>
2023-08-08 13:52:58 +02:00
{:else if schema.type === "array"}
2023-08-23 11:11:53 +02:00
<SchemaBasedArray {path} {state} {schema} />
{:else if schema.hints?.types}
2023-08-23 11:11:53 +02:00
<SchemaBasedMultiType {path} {state} {schema} />
{:else}
2023-08-23 11:11:53 +02:00
<SchemaBasedField {path} {state} {schema} />
{/if}