2020-08-25 17:38:20 +02:00
|
|
|
<script>
|
|
|
|
import OptionSelect from "./OptionSelect.svelte"
|
|
|
|
import { backendUiStore } from "builderStore"
|
2020-11-03 10:42:46 +01:00
|
|
|
import MultiOptionSelect from "./MultiOptionSelect.svelte"
|
2020-08-25 17:38:20 +02:00
|
|
|
|
|
|
|
export let componentInstance = {}
|
2020-08-26 18:03:30 +02:00
|
|
|
export let value = ""
|
2020-11-03 10:42:46 +01:00
|
|
|
export let onChange = () => {}
|
|
|
|
export let multiselect = false
|
2020-08-25 17:38:20 +02:00
|
|
|
|
2020-10-09 19:49:23 +02:00
|
|
|
const tables = $backendUiStore.tables
|
2021-01-18 16:37:32 +01:00
|
|
|
const queries = $backendUiStore.queries
|
2020-08-25 17:38:20 +02:00
|
|
|
|
|
|
|
let options = []
|
|
|
|
|
2021-01-18 16:40:26 +01:00
|
|
|
$: table =
|
|
|
|
componentInstance.datasource?.type === "table"
|
|
|
|
? tables.find(m => m._id === componentInstance.datasource.tableId)
|
|
|
|
: queries.find(query => query._id === componentInstance.datasource._id)
|
2020-08-25 17:38:20 +02:00
|
|
|
|
2020-10-09 13:24:18 +02:00
|
|
|
$: type = componentInstance.datasource.type
|
2021-01-18 16:37:32 +01:00
|
|
|
|
2020-10-09 19:49:23 +02:00
|
|
|
$: if (table) {
|
2020-10-09 13:24:18 +02:00
|
|
|
options =
|
2021-01-18 16:37:32 +01:00
|
|
|
type === "table" || type === "link" || type === "query"
|
2020-10-13 10:58:08 +02:00
|
|
|
? Object.keys(table.schema)
|
|
|
|
: Object.keys(table.views[componentInstance.datasource.name].schema)
|
2020-08-25 17:38:20 +02:00
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
2020-11-03 10:42:46 +01:00
|
|
|
{#if multiselect}
|
|
|
|
<MultiOptionSelect {value} {onChange} {options} />
|
|
|
|
{:else}
|
|
|
|
<OptionSelect {value} {onChange} {options} />
|
|
|
|
{/if}
|