1
0
Fork 0
mirror of synced 2024-06-02 02:25:17 +12:00
budibase/packages/builder/src/components/backend/DataTable/RowFieldControl.svelte

42 lines
1.1 KiB
Svelte
Raw Normal View History

<script>
import { Input, Select, DatePicker, Toggle, TextArea } from "@budibase/bbui"
2020-09-12 02:09:56 +12:00
import Dropzone from "components/common/Dropzone.svelte"
import { capitalise } from "helpers"
import LinkedRowSelector from "components/common/LinkedRowSelector.svelte"
2020-08-08 03:13:57 +12:00
export let defaultValue
export let meta
export let value = defaultValue || (meta.type === "boolean" ? false : "")
export let readonly
2020-10-07 04:02:48 +13:00
$: type = meta.type
$: label = capitalise(meta.name)
</script>
{#if type === "options"}
<Select
{label}
data-cy="{meta.name}-select"
bind:value
options={meta.constraints.inclusion}
/>
{:else if type === "datetime"}
<DatePicker {label} bind:value />
{:else if type === "attachment"}
<Dropzone {label} bind:value />
{:else if type === "boolean"}
<Toggle text={label} bind:value data-cy="{meta.name}-input" />
{:else if type === "link"}
<LinkedRowSelector bind:linkedRows={value} schema={meta} />
{:else if type === "longform"}
<TextArea {label} bind:value />
{:else}
2020-11-28 03:59:27 +13:00
<Input
{label}
data-cy="{meta.name}-input"
{type}
bind:value
disabled={readonly}
/>
2020-08-11 22:23:07 +12:00
{/if}