1
0
Fork 0
mirror of synced 2024-09-20 11:27:56 +12:00
budibase/packages/builder/src/components/userInterface/PropertyControl.svelte

55 lines
1.1 KiB
Svelte
Raw Normal View History

2020-05-08 01:30:04 +12:00
<script>
2020-05-19 03:32:00 +12:00
import { onMount, getContext } from "svelte"
2020-05-08 01:30:04 +12:00
export let label = ""
export let control = null
export let key = ""
2020-05-08 01:30:04 +12:00
export let value = ""
export let valueType = ""
2020-05-08 01:30:04 +12:00
export let props = {}
export let onChange = () => {}
function handleChange(key, v) {
!!v.target
? onChange(name, key, valueType ? v.target[valueType] : v.target.value)
: onChange(name, key, v)
}
const handleValueType = value =>
valueType ? { [valueType]: value } : { value }
2020-05-08 01:30:04 +12:00
</script>
<div class="property-control">
<div class="label">{label}</div>
<div class="control">
<svelte:component
this={control}
{...handleValueType(value)}
on:change={val => handleChange(key, val)}
onChange={val => handleChange(key, val)}
2020-05-08 01:30:04 +12:00
{...props} />
</div>
</div>
<style>
.property-control {
display: flex;
flex-flow: row nowrap;
margin: 8px 0px;
}
.label {
flex: 0 0 50px;
padding: 0px 5px;
font-size: 12px;
font-weight: 500;
letter-spacing: 0.12px;
text-align: left;
}
.control {
flex: 1;
padding-left: 5px;
}
</style>