1
0
Fork 0
mirror of synced 2024-09-21 20:01:32 +12:00
budibase/packages/builder/src/components/integration/QueryFieldsBuilder.svelte

57 lines
1.1 KiB
Svelte
Raw Normal View History

2021-01-14 03:11:53 +13:00
<script>
import {
Button,
TextArea,
Label,
Input,
Heading,
2021-01-16 02:42:55 +13:00
Select,
2021-01-14 03:11:53 +13:00
} from "@budibase/bbui"
import Editor from "./QueryEditor.svelte"
2021-01-14 03:11:53 +13:00
export let fields = {}
export let schema
2021-01-15 03:22:24 +13:00
export let editable
2021-01-14 03:11:53 +13:00
let draftField = {}
2021-01-15 09:51:03 +13:00
$: fieldKeys = Object.keys(fields)
$: schemaKeys = Object.keys(schema.fields)
function updateCustomFields({ detail }) {
fields.customData = detail.value
2021-01-15 09:51:03 +13:00
}
2021-01-14 03:11:53 +13:00
</script>
<form on:submit|preventDefault>
<div class="field">
2021-01-15 09:51:03 +13:00
{#each schemaKeys as field}
<Input
placeholder="Enter {field} name"
outline
2021-01-15 09:51:03 +13:00
disabled={!editable}
type={schema.fields[field]?.type}
required={schema.fields[field]?.required}
bind:value={fields[field]} />
2021-01-14 03:11:53 +13:00
{/each}
</div>
2021-01-14 03:11:53 +13:00
</form>
{#if schema.customisable}
<Editor
label="Query"
mode="json"
on:change={updateCustomFields}
readOnly={!editable}
value={fields.customData} />
2021-01-15 09:51:03 +13:00
{/if}
2021-01-14 03:11:53 +13:00
<style>
2021-01-16 02:42:55 +13:00
.field {
margin-bottom: var(--spacing-m);
display: grid;
grid-template-columns: 1fr 1fr;
2021-01-16 02:42:55 +13:00
grid-gap: var(--spacing-m);
align-items: center;
}
</style>