1
0
Fork 0
mirror of synced 2024-06-27 02:20:35 +12:00

Merge branch 'master' into cheeks-fixes

This commit is contained in:
Andrew Kingston 2024-03-22 12:16:30 +00:00
commit 0acc8ffff6
6 changed files with 37 additions and 6 deletions

View file

@ -12,6 +12,7 @@
export let schema export let schema
export let value export let value
export let customRenderers = [] export let customRenderers = []
export let snippets
let renderer let renderer
const typeMap = { const typeMap = {
@ -32,6 +33,8 @@
$: renderer = customRenderer?.component ?? typeMap[type] ?? StringRenderer $: renderer = customRenderer?.component ?? typeMap[type] ?? StringRenderer
$: cellValue = getCellValue(value, schema.template) $: cellValue = getCellValue(value, schema.template)
$: console.log(snippets)
const getType = schema => { const getType = schema => {
// Use a string renderer for dates if we use a custom template // Use a string renderer for dates if we use a custom template
if (schema?.type === "datetime" && schema?.template) { if (schema?.type === "datetime" && schema?.template) {
@ -44,7 +47,7 @@
if (!template) { if (!template) {
return value return value
} }
return processStringSync(template, { value }) return processStringSync(template, { value, snippets })
} }
</script> </script>

View file

@ -42,6 +42,7 @@
export let customPlaceholder = false export let customPlaceholder = false
export let showHeaderBorder = true export let showHeaderBorder = true
export let placeholderText = "No rows found" export let placeholderText = "No rows found"
export let snippets = []
const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()
@ -425,6 +426,7 @@
<CellRenderer <CellRenderer
{customRenderers} {customRenderers}
{row} {row}
{snippets}
schema={schema[field]} schema={schema[field]}
value={deepGet(row, field)} value={deepGet(row, field)}
on:clickrelationship on:clickrelationship

View file

@ -313,7 +313,7 @@ export const bindingsToCompletions = (bindings, mode) => {
...bindingByCategory[catKey].reduce((acc, binding) => { ...bindingByCategory[catKey].reduce((acc, binding) => {
let displayType = binding.fieldSchema?.type || binding.display?.type let displayType = binding.fieldSchema?.type || binding.display?.type
acc.push({ acc.push({
label: binding.display?.name || "NO NAME", label: binding.display?.name || binding.readableBinding || "NO NAME",
info: completion => { info: completion => {
return buildBindingInfoNode(completion, binding) return buildBindingInfoNode(completion, binding)
}, },

View file

@ -8,6 +8,7 @@
export let allowJS = false export let allowJS = false
export let allowHelpers = true export let allowHelpers = true
export let autofocusEditor = false export let autofocusEditor = false
export let context = null
$: enrichedBindings = enrichBindings(bindings) $: enrichedBindings = enrichBindings(bindings)
@ -27,7 +28,7 @@
<BindingPanel <BindingPanel
bindings={enrichedBindings} bindings={enrichedBindings}
context={$previewStore.selectedComponentContext} context={{ ...$previewStore.selectedComponentContext, ...context }}
snippets={$snippets} snippets={$snippets}
{value} {value}
{allowJS} {allowJS}

View file

@ -7,10 +7,13 @@
Layout, Layout,
Label, Label,
} from "@budibase/bbui" } from "@budibase/bbui"
import { themeStore } from "stores/builder" import { themeStore, previewStore } from "stores/builder"
import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte" import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte"
export let column export let column
$: columnValue =
$previewStore.selectedComponentContext?.eventContext?.row?.[column.name]
</script> </script>
<DrawerContent> <DrawerContent>
@ -41,6 +44,9 @@
icon: "TableColumnMerge", icon: "TableColumnMerge",
}, },
]} ]}
context={{
value: columnValue,
}}
/> />
<Layout noPadding gap="XS"> <Layout noPadding gap="XS">
<Label>Background color</Label> <Label>Background color</Label>

View file

@ -16,8 +16,15 @@
export let noRowsMessage export let noRowsMessage
const component = getContext("component") const component = getContext("component")
const { styleable, getAction, ActionTypes, rowSelectionStore } = const context = getContext("context")
getContext("sdk") const {
styleable,
getAction,
ActionTypes,
rowSelectionStore,
generateGoldenSample,
} = getContext("sdk")
const customColumnKey = `custom-${Math.random()}` const customColumnKey = `custom-${Math.random()}`
const customRenderers = [ const customRenderers = [
{ {
@ -28,6 +35,7 @@
let selectedRows = [] let selectedRows = []
$: snippets = $context.snippets
$: hasChildren = $component.children $: hasChildren = $component.children
$: loading = dataProvider?.loading ?? false $: loading = dataProvider?.loading ?? false
$: data = dataProvider?.rows || [] $: data = dataProvider?.rows || []
@ -61,6 +69,16 @@
selectedRows, selectedRows,
} }
// Provide additional data context for live binding eval
export const getAdditionalDataContext = () => {
const goldenRow = generateGoldenSample(data)
return {
eventContext: {
row: goldenRow,
},
}
}
const getFields = ( const getFields = (
schema, schema,
customColumns, customColumns,
@ -178,6 +196,7 @@
{quiet} {quiet}
{compact} {compact}
{customRenderers} {customRenderers}
{snippets}
allowSelectRows={allowSelectRows && table} allowSelectRows={allowSelectRows && table}
bind:selectedRows bind:selectedRows
allowEditRows={false} allowEditRows={false}