budibase/packages/builder/src/userInterface/PropControl.svelte

59 lines
1.3 KiB
Svelte
Raw Normal View History

2019-08-16 16:48:45 +02:00
<script>
import Checkbox from "../common/Checkbox.svelte";
import Textbox from "../common/Textbox.svelte";
import Dropdown from "../common/Dropdown.svelte";
2019-09-20 09:01:35 +02:00
import EventListSelector from "./EventListSelector.svelte";
import StateBindingControl from "./StateBindingControl.svelte";
2019-08-16 16:48:45 +02:00
export let errors = [];
export let setProp = () => {};
export let fieldHasError =() => {};
export let propDef = {};
export let props = {};
export let disabled;
2019-08-19 09:51:01 +02:00
export let index;
$: isOdd = (index % 2 !== 0);
const setComponentProp = (props) => {
setProp(propDef.____name, props);
}
2019-08-16 16:48:45 +02:00
</script>
2019-08-19 09:51:01 +02:00
<div class="root" >
2019-08-16 16:48:45 +02:00
{#if propDef.type === "event"}
2019-09-20 09:01:35 +02:00
<div class="prop-label">{propDef.____name}</div>
<EventListSelector parentProps={props}
{propDef}
onValueChanged={setComponentProp} />
{:else }
2019-09-20 09:01:35 +02:00
<div class="prop-label">{propDef.____name}</div>
<StateBindingControl value={props[propDef.____name]}
type={propDef.type}
options={propDef.options}
onChanged={v => setProp(propDef.____name, v)}/>
2019-08-16 16:48:45 +02:00
{/if}
</div>
<style>
.root {
padding: 1rem 1rem 0rem 1rem;
2019-08-16 16:48:45 +02:00
}
2019-09-20 09:01:35 +02:00
.prop-label {
font-size: 0.8rem;
color: var(--secondary100);
2019-09-20 09:01:35 +02:00
font-weight: bold;
}
2019-08-16 16:48:45 +02:00
</style>