Remove legacy concept of currentAsset
This commit is contained in:
parent
05e1dee992
commit
e7ac33bf43
|
@ -1,7 +1,7 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select, Label } from "@budibase/bbui"
|
import { Select, Label } from "@budibase/bbui"
|
||||||
import { currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import { getActionProviders } from "../../../../../../dataBinding"
|
import { getActionProviders } from "dataBinding"
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte"
|
import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte"
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
export let nested
|
export let nested
|
||||||
|
|
||||||
$: actionProviders = getActionProviders(
|
$: actionProviders = getActionProviders(
|
||||||
$currentAsset,
|
$selectedScreen,
|
||||||
$componentStore.selectedComponentId,
|
$componentStore.selectedComponentId,
|
||||||
"ChangeFormStep",
|
"ChangeFormStep",
|
||||||
{ includeSelf: nested }
|
{ includeSelf: nested }
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select, Label } from "@budibase/bbui"
|
import { Select, Label } from "@budibase/bbui"
|
||||||
import { currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import { getActionProviders } from "../../../../../../dataBinding"
|
import { getActionProviders } from "../../../../../../dataBinding"
|
||||||
|
|
||||||
export let parameters
|
export let parameters
|
||||||
export let nested
|
export let nested
|
||||||
|
|
||||||
$: actionProviders = getActionProviders(
|
$: actionProviders = getActionProviders(
|
||||||
$currentAsset,
|
$selectedScreen,
|
||||||
$componentStore.selectedComponentId,
|
$componentStore.selectedComponentId,
|
||||||
"ClearForm",
|
"ClearForm",
|
||||||
{ includeSelf: nested }
|
{ includeSelf: nested }
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select, Label, Body, Checkbox, Input } from "@budibase/bbui"
|
import { Select, Label, Body, Checkbox, Input } from "@budibase/bbui"
|
||||||
import { currentAsset, componentStore, tables, viewsV2 } from "stores/builder"
|
import {
|
||||||
|
selectedScreen,
|
||||||
|
componentStore,
|
||||||
|
tables,
|
||||||
|
viewsV2,
|
||||||
|
} from "stores/builder"
|
||||||
import { getSchemaForDatasourcePlus } from "../../../../../../dataBinding"
|
import { getSchemaForDatasourcePlus } from "../../../../../../dataBinding"
|
||||||
import SaveFields from "./SaveFields.svelte"
|
import SaveFields from "./SaveFields.svelte"
|
||||||
import { getDatasourceLikeProviders } from "components/design/settings/controls/ButtonActionEditor/actions/utils"
|
import { getDatasourceLikeProviders } from "components/design/settings/controls/ButtonActionEditor/actions/utils"
|
||||||
|
@ -10,7 +15,7 @@
|
||||||
export let nested
|
export let nested
|
||||||
|
|
||||||
$: providerOptions = getDatasourceLikeProviders({
|
$: providerOptions = getDatasourceLikeProviders({
|
||||||
asset: $currentAsset,
|
asset: $selectedScreen,
|
||||||
componentId: $componentStore.selectedComponentId,
|
componentId: $componentStore.selectedComponentId,
|
||||||
nested,
|
nested,
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<script>
|
<script>
|
||||||
import { Label, Select, Body, Multiselect } from "@budibase/bbui"
|
import { Label, Select, Body, Multiselect } from "@budibase/bbui"
|
||||||
import { findAllMatchingComponents, findComponent } from "helpers/components"
|
import { findAllMatchingComponents, findComponent } from "helpers/components"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
import {
|
import {
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
|
@ -21,14 +21,15 @@
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
$: tables = findAllMatchingComponents($currentAsset?.props, component =>
|
$: tables = findAllMatchingComponents($selectedScreen?.props, component =>
|
||||||
component._component.endsWith("table")
|
component._component.endsWith("table")
|
||||||
).map(table => ({
|
).map(table => ({
|
||||||
label: table._instanceName,
|
label: table._instanceName,
|
||||||
value: table._id,
|
value: table._id,
|
||||||
}))
|
}))
|
||||||
$: tableBlocks = findAllMatchingComponents($currentAsset?.props, component =>
|
$: tableBlocks = findAllMatchingComponents(
|
||||||
component._component.endsWith("tableblock")
|
$selectedScreen?.props,
|
||||||
|
component => component._component.endsWith("tableblock")
|
||||||
).map(block => ({
|
).map(block => ({
|
||||||
label: block._instanceName,
|
label: block._instanceName,
|
||||||
value: `${block._id}-table`,
|
value: `${block._id}-table`,
|
||||||
|
@ -41,9 +42,9 @@
|
||||||
if (tableId?.includes("-")) {
|
if (tableId?.includes("-")) {
|
||||||
tableId = tableId.split("-")[0]
|
tableId = tableId.split("-")[0]
|
||||||
}
|
}
|
||||||
const selectedTable = findComponent($currentAsset?.props, tableId)
|
const selectedTable = findComponent($selectedScreen?.props, tableId)
|
||||||
const datasource = getDatasourceForProvider($currentAsset, selectedTable)
|
const datasource = getDatasourceForProvider($selectedScreen, selectedTable)
|
||||||
const { schema } = getSchemaForDatasource($currentAsset, datasource)
|
const { schema } = getSchemaForDatasource($selectedScreen, datasource)
|
||||||
return Object.keys(schema || {})
|
return Object.keys(schema || {})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select, Label } from "@budibase/bbui"
|
import { Select, Label } from "@budibase/bbui"
|
||||||
import { currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import { getActionProviders } from "../../../../../../dataBinding"
|
import { getActionProviders } from "../../../../../../dataBinding"
|
||||||
|
|
||||||
export let parameters
|
export let parameters
|
||||||
export let nested
|
export let nested
|
||||||
|
|
||||||
$: actionProviders = getActionProviders(
|
$: actionProviders = getActionProviders(
|
||||||
$currentAsset,
|
$selectedScreen,
|
||||||
$componentStore.selectedComponentId,
|
$componentStore.selectedComponentId,
|
||||||
"RefreshDatasource",
|
"RefreshDatasource",
|
||||||
{ includeSelf: nested }
|
{ includeSelf: nested }
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select, Label } from "@budibase/bbui"
|
import { Select, Label } from "@budibase/bbui"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
import { findAllMatchingComponents } from "helpers/components"
|
import { findAllMatchingComponents } from "helpers/components"
|
||||||
|
|
||||||
export let parameters
|
export let parameters
|
||||||
|
|
||||||
$: components = findAllMatchingComponents($currentAsset?.props, component =>
|
$: components = findAllMatchingComponents($selectedScreen?.props, component =>
|
||||||
component._component.endsWith("s3upload")
|
component._component.endsWith("s3upload")
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select, Label, Body, Checkbox, Input } from "@budibase/bbui"
|
import { Select, Label, Body, Checkbox, Input } from "@budibase/bbui"
|
||||||
import { currentAsset, componentStore, tables, viewsV2 } from "stores/builder"
|
import {
|
||||||
|
selectedScreen,
|
||||||
|
componentStore,
|
||||||
|
tables,
|
||||||
|
viewsV2,
|
||||||
|
} from "stores/builder"
|
||||||
import { getSchemaForDatasourcePlus } from "../../../../../../dataBinding"
|
import { getSchemaForDatasourcePlus } from "../../../../../../dataBinding"
|
||||||
import SaveFields from "./SaveFields.svelte"
|
import SaveFields from "./SaveFields.svelte"
|
||||||
import { getDatasourceLikeProviders } from "components/design/settings/controls/ButtonActionEditor/actions/utils"
|
import { getDatasourceLikeProviders } from "components/design/settings/controls/ButtonActionEditor/actions/utils"
|
||||||
|
@ -10,7 +15,7 @@
|
||||||
export let nested
|
export let nested
|
||||||
|
|
||||||
$: providerOptions = getDatasourceLikeProviders({
|
$: providerOptions = getDatasourceLikeProviders({
|
||||||
asset: $currentAsset,
|
asset: $selectedScreen,
|
||||||
componentId: $componentStore.selectedComponentId,
|
componentId: $componentStore.selectedComponentId,
|
||||||
nested,
|
nested,
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import { currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import { Label, Combobox, Select } from "@budibase/bbui"
|
import { Label, Combobox, Select } from "@budibase/bbui"
|
||||||
import {
|
import {
|
||||||
getActionProviders,
|
getActionProviders,
|
||||||
|
@ -11,13 +11,13 @@
|
||||||
export let nested
|
export let nested
|
||||||
|
|
||||||
$: formComponent = getFormComponent(
|
$: formComponent = getFormComponent(
|
||||||
$currentAsset.props,
|
$selectedScreen.props,
|
||||||
parameters.componentId
|
parameters.componentId
|
||||||
)
|
)
|
||||||
$: formSchema = buildFormSchema(formComponent)
|
$: formSchema = buildFormSchema(formComponent)
|
||||||
$: fieldOptions = Object.keys(formSchema || {})
|
$: fieldOptions = Object.keys(formSchema || {})
|
||||||
$: actionProviders = getActionProviders(
|
$: actionProviders = getActionProviders(
|
||||||
$currentAsset,
|
$selectedScreen,
|
||||||
$componentStore.selectedComponentId,
|
$componentStore.selectedComponentId,
|
||||||
"ScrollTo",
|
"ScrollTo",
|
||||||
{ includeSelf: nested }
|
{ includeSelf: nested }
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
import { Select, Label, Combobox } from "@budibase/bbui"
|
import { Select, Label, Combobox } from "@budibase/bbui"
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte"
|
import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte"
|
||||||
import { currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import {
|
import {
|
||||||
getActionProviders,
|
getActionProviders,
|
||||||
buildFormSchema,
|
buildFormSchema,
|
||||||
|
@ -25,13 +25,13 @@
|
||||||
]
|
]
|
||||||
|
|
||||||
$: formComponent = getFormComponent(
|
$: formComponent = getFormComponent(
|
||||||
$currentAsset.props,
|
$selectedScreen.props,
|
||||||
parameters.componentId
|
parameters.componentId
|
||||||
)
|
)
|
||||||
$: formSchema = buildFormSchema(formComponent)
|
$: formSchema = buildFormSchema(formComponent)
|
||||||
$: fieldOptions = Object.keys(formSchema || {})
|
$: fieldOptions = Object.keys(formSchema || {})
|
||||||
$: actionProviders = getActionProviders(
|
$: actionProviders = getActionProviders(
|
||||||
$currentAsset,
|
$selectedScreen,
|
||||||
$componentStore.selectedComponentId,
|
$componentStore.selectedComponentId,
|
||||||
"ValidateForm",
|
"ValidateForm",
|
||||||
{ includeSelf: nested }
|
{ includeSelf: nested }
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select, Label } from "@budibase/bbui"
|
import { Select, Label } from "@budibase/bbui"
|
||||||
import { currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import { getActionProviders } from "../../../../../../dataBinding"
|
import { getActionProviders } from "dataBinding"
|
||||||
|
|
||||||
export let parameters
|
export let parameters
|
||||||
export let nested
|
export let nested
|
||||||
|
|
||||||
$: actionProviders = getActionProviders(
|
$: actionProviders = getActionProviders(
|
||||||
$currentAsset,
|
$selectedScreen,
|
||||||
$componentStore.selectedComponentId,
|
$componentStore.selectedComponentId,
|
||||||
"ValidateForm",
|
"ValidateForm",
|
||||||
{ includeSelf: nested }
|
{ includeSelf: nested }
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
} from "../../../../../dataBinding"
|
} from "../../../../../dataBinding"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
import { getFields } from "helpers/searchFields"
|
import { getFields } from "helpers/searchFields"
|
||||||
|
|
||||||
export let componentInstance
|
export let componentInstance
|
||||||
|
@ -21,8 +21,8 @@
|
||||||
let boundValue
|
let boundValue
|
||||||
|
|
||||||
$: text = getText(value)
|
$: text = getText(value)
|
||||||
$: datasource = getDatasourceForProvider($currentAsset, componentInstance)
|
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
$: schema = getSchema($currentAsset, datasource)
|
$: schema = getSchema($selectedScreen, datasource)
|
||||||
$: options = allowCellEditing
|
$: options = allowCellEditing
|
||||||
? Object.keys(schema || {})
|
? Object.keys(schema || {})
|
||||||
: enrichedSchemaFields?.map(field => field.name)
|
: enrichedSchemaFields?.map(field => field.name)
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select } from "@budibase/bbui"
|
import { Select } from "@budibase/bbui"
|
||||||
import { makePropSafe } from "@budibase/string-templates"
|
import { makePropSafe } from "@budibase/string-templates"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
import { findAllMatchingComponents } from "helpers/components"
|
import { findAllMatchingComponents } from "helpers/components"
|
||||||
|
|
||||||
export let value
|
export let value
|
||||||
|
|
||||||
const getValue = component => `{{ literal ${makePropSafe(component._id)} }}`
|
const getValue = component => `{{ literal ${makePropSafe(component._id)} }}`
|
||||||
|
|
||||||
$: providers = findAllMatchingComponents($currentAsset?.props, c =>
|
$: providers = findAllMatchingComponents($selectedScreen?.props, c =>
|
||||||
c._component?.endsWith("/dataprovider")
|
c._component?.endsWith("/dataprovider")
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
queries as queriesStore,
|
queries as queriesStore,
|
||||||
viewsV2 as viewsV2Store,
|
viewsV2 as viewsV2Store,
|
||||||
views as viewsStore,
|
views as viewsStore,
|
||||||
currentAsset,
|
selectedScreen,
|
||||||
componentStore,
|
componentStore,
|
||||||
datasources,
|
datasources,
|
||||||
integrations,
|
integrations,
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
...query,
|
...query,
|
||||||
type: "query",
|
type: "query",
|
||||||
}))
|
}))
|
||||||
$: dataProviders = findAllComponents($currentAsset.props)
|
$: dataProviders = findAllComponents($selectedScreen.props)
|
||||||
.filter(component => {
|
.filter(component => {
|
||||||
return (
|
return (
|
||||||
component._component?.endsWith("/dataprovider") &&
|
component._component?.endsWith("/dataprovider") &&
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
getBindableProperties,
|
getBindableProperties,
|
||||||
getComponentBindableProperties,
|
getComponentBindableProperties,
|
||||||
} from "../../../../../dataBinding"
|
} from "../../../../../dataBinding"
|
||||||
import { selectedScreen, currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import DraggableList from "../DraggableList/DraggableList.svelte"
|
import DraggableList from "../DraggableList/DraggableList.svelte"
|
||||||
import { createEventDispatcher } from "svelte"
|
import { createEventDispatcher } from "svelte"
|
||||||
import FieldSetting from "./FieldSetting.svelte"
|
import FieldSetting from "./FieldSetting.svelte"
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
$: datasource =
|
$: datasource =
|
||||||
componentInstance.dataSource ||
|
componentInstance.dataSource ||
|
||||||
getDatasourceForProvider($currentAsset, componentInstance)
|
getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
|
|
||||||
$: resourceId = datasource?.resourceId || datasource?.tableId
|
$: resourceId = datasource?.resourceId || datasource?.tableId
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateState = value => {
|
const updateState = value => {
|
||||||
schema = getSchema($currentAsset, datasource)
|
schema = getSchema($selectedScreen, datasource)
|
||||||
options = Object.keys(schema || {})
|
options = Object.keys(schema || {})
|
||||||
sanitisedValue = getValidColumns(convertOldFieldFormat(value), options)
|
sanitisedValue = getValidColumns(convertOldFieldFormat(value), options)
|
||||||
updateSanitsedFields(sanitisedValue)
|
updateSanitsedFields(sanitisedValue)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
} from "../../../../dataBinding"
|
} from "../../../../dataBinding"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
import { createEventDispatcher } from "svelte"
|
import { createEventDispatcher } from "svelte"
|
||||||
|
|
||||||
export let componentInstance = {}
|
export let componentInstance = {}
|
||||||
|
@ -12,8 +12,8 @@
|
||||||
export let placeholder
|
export let placeholder
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
$: datasource = getDatasourceForProvider($currentAsset, componentInstance)
|
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
$: schema = getSchemaForDatasource($currentAsset, datasource).schema
|
$: schema = getSchemaForDatasource($selectedScreen, datasource).schema
|
||||||
$: options = Object.keys(schema || {})
|
$: options = Object.keys(schema || {})
|
||||||
$: boundValue = getValidValue(value, options)
|
$: boundValue = getValidValue(value, options)
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
} from "../../../../../dataBinding"
|
} from "../../../../../dataBinding"
|
||||||
import FilterDrawer from "./FilterDrawer.svelte"
|
import FilterDrawer from "./FilterDrawer.svelte"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
|
|
||||||
|
@ -18,8 +18,8 @@
|
||||||
let drawer
|
let drawer
|
||||||
|
|
||||||
$: tempValue = value
|
$: tempValue = value
|
||||||
$: datasource = getDatasourceForProvider($currentAsset, componentInstance)
|
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
$: dsSchema = getSchemaForDatasource($currentAsset, datasource)?.schema
|
$: dsSchema = getSchemaForDatasource($selectedScreen, datasource)?.schema
|
||||||
$: schemaFields = Object.values(schema || dsSchema || {})
|
$: schemaFields = Object.values(schema || dsSchema || {})
|
||||||
$: text = getText(value?.filter(filter => filter.field))
|
$: text = getText(value?.filter(filter => filter.field))
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import { Combobox } from "@budibase/bbui"
|
import { Combobox } from "@budibase/bbui"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
import { getComponentFieldOptions } from "helpers/formFields"
|
import { getComponentFieldOptions } from "helpers/formFields"
|
||||||
|
|
||||||
export let componentInstance
|
export let componentInstance
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
export let type
|
export let type
|
||||||
|
|
||||||
$: options = getComponentFieldOptions(
|
$: options = getComponentFieldOptions(
|
||||||
$currentAsset?.props,
|
$selectedScreen?.props,
|
||||||
componentInstance?._id,
|
componentInstance?._id,
|
||||||
type
|
type
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
import { createEventDispatcher, setContext } from "svelte"
|
import { createEventDispatcher, setContext } from "svelte"
|
||||||
import ComponentSettingsSection from "../../../../pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/ComponentSettingsSection.svelte"
|
import ComponentSettingsSection from "../../../../pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/ComponentSettingsSection.svelte"
|
||||||
import { getDatasourceForProvider } from "../../../../dataBinding"
|
import { getDatasourceForProvider } from "../../../../dataBinding"
|
||||||
import { currentAsset, componentStore, previewStore } from "stores/builder"
|
import { selectedScreen, componentStore, previewStore } from "stores/builder"
|
||||||
import { Helpers } from "@budibase/bbui"
|
import { Helpers } from "@budibase/bbui"
|
||||||
import { derived, writable } from "svelte/store"
|
import { derived, writable } from "svelte/store"
|
||||||
import { Utils } from "@budibase/frontend-core"
|
import { Utils } from "@budibase/frontend-core"
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
$: stepCount = cachedValue?.length || 0
|
$: stepCount = cachedValue?.length || 0
|
||||||
$: updateStore(stepCount)
|
$: updateStore(stepCount)
|
||||||
$: dataSource = getDatasourceForProvider($currentAsset, cachedInstance)
|
$: dataSource = getDatasourceForProvider($selectedScreen, cachedInstance)
|
||||||
$: emitCurrentStep($currentStep)
|
$: emitCurrentStep($currentStep)
|
||||||
$: stepLabel = getStepLabel($multiStepStore)
|
$: stepLabel = getStepLabel($multiStepStore)
|
||||||
$: stepDef = getDefinition(stepLabel)
|
$: stepDef = getDefinition(stepLabel)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
} from "../../../../../dataBinding"
|
} from "../../../../../dataBinding"
|
||||||
import { currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import DraggableList from "../DraggableList/DraggableList.svelte"
|
import DraggableList from "../DraggableList/DraggableList.svelte"
|
||||||
import { createEventDispatcher } from "svelte"
|
import { createEventDispatcher } from "svelte"
|
||||||
import FieldSetting from "./FieldSetting.svelte"
|
import FieldSetting from "./FieldSetting.svelte"
|
||||||
|
@ -32,12 +32,12 @@
|
||||||
return schema
|
return schema
|
||||||
}
|
}
|
||||||
|
|
||||||
$: datasource = getDatasourceForProvider($currentAsset, componentInstance)
|
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
$: primaryDisplayColumnName = getSchemaForDatasource(
|
$: primaryDisplayColumnName = getSchemaForDatasource(
|
||||||
$currentAsset,
|
$selectedScreen,
|
||||||
datasource
|
datasource
|
||||||
)?.table?.primaryDisplay
|
)?.table?.primaryDisplay
|
||||||
$: schema = getSchema(currentAsset, datasource)
|
$: schema = getSchema(selectedScreen, datasource)
|
||||||
$: columns = getColumns({
|
$: columns = getColumns({
|
||||||
columns: value,
|
columns: value,
|
||||||
schema,
|
schema,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
} from "../../../../dataBinding"
|
} from "../../../../dataBinding"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
import { createEventDispatcher } from "svelte"
|
import { createEventDispatcher } from "svelte"
|
||||||
|
|
||||||
export let componentInstance = {}
|
export let componentInstance = {}
|
||||||
|
@ -12,8 +12,8 @@
|
||||||
export let placeholder
|
export let placeholder
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
$: datasource = getDatasourceForProvider($currentAsset, componentInstance)
|
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
$: schema = getSchemaForDatasource($currentAsset, datasource).schema
|
$: schema = getSchemaForDatasource($selectedScreen, datasource).schema
|
||||||
$: options = Object.keys(schema || {})
|
$: options = Object.keys(schema || {})
|
||||||
$: boundValue = getValidOptions(value, options)
|
$: boundValue = getValidOptions(value, options)
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
} from "../../../../dataBinding"
|
} from "../../../../dataBinding"
|
||||||
import { tables, currentAsset, componentStore } from "stores/builder"
|
import { tables, selectedScreen, componentStore } from "stores/builder"
|
||||||
import FilterEditor from "./FilterEditor/FilterEditor.svelte"
|
import FilterEditor from "./FilterEditor/FilterEditor.svelte"
|
||||||
|
|
||||||
export let componentInstance
|
export let componentInstance
|
||||||
|
@ -17,29 +17,29 @@
|
||||||
|
|
||||||
// Find the closest parent form
|
// Find the closest parent form
|
||||||
$: form = findClosestMatchingComponent(
|
$: form = findClosestMatchingComponent(
|
||||||
$currentAsset.props,
|
$selectedScreen.props,
|
||||||
componentInstance._id,
|
componentInstance._id,
|
||||||
component => component._component.endsWith("/form")
|
component => component._component.endsWith("/form")
|
||||||
)
|
)
|
||||||
|
|
||||||
const resolveDatasource = (currentAsset, componentInstance, form) => {
|
const resolveDatasource = (selectedScreen, componentInstance, form) => {
|
||||||
if (!form && componentInstance._id != $componentStore.selectedComponentId) {
|
if (!form && componentInstance._id != $componentStore.selectedComponentId) {
|
||||||
const block = findComponent(
|
const block = findComponent(
|
||||||
currentAsset.props,
|
selectedScreen.props,
|
||||||
$componentStore.selectedComponentId
|
$componentStore.selectedComponentId
|
||||||
)
|
)
|
||||||
const def = componentStore.getDefinition(block._component)
|
const def = componentStore.getDefinition(block._component)
|
||||||
return def?.block === true
|
return def?.block === true
|
||||||
? getDatasourceForProvider(currentAsset, block)
|
? getDatasourceForProvider(selectedScreen, block)
|
||||||
: {}
|
: {}
|
||||||
} else {
|
} else {
|
||||||
return getDatasourceForProvider(currentAsset, form)
|
return getDatasourceForProvider(selectedScreen, form)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get that form's schema
|
// Get that form's schema
|
||||||
$: datasource = resolveDatasource($currentAsset, componentInstance, form)
|
$: datasource = resolveDatasource($selectedScreen, componentInstance, form)
|
||||||
$: formSchema = getSchemaForDatasource($currentAsset, datasource)?.schema
|
$: formSchema = getSchemaForDatasource($selectedScreen, datasource)?.schema
|
||||||
|
|
||||||
// Get the schema for the relationship field that this picker is using
|
// Get the schema for the relationship field that this picker is using
|
||||||
$: columnSchema = formSchema?.[column]
|
$: columnSchema = formSchema?.[column]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import { ActionButton, notifications } from "@budibase/bbui"
|
import { ActionButton, notifications } from "@budibase/bbui"
|
||||||
import { currentAsset, componentStore } from "stores/builder"
|
import { selectedScreen, componentStore } from "stores/builder"
|
||||||
import { findClosestMatchingComponent } from "helpers/components"
|
import { findClosestMatchingComponent } from "helpers/components"
|
||||||
import { makeDatasourceFormComponents } from "../../../../templates/commonComponents"
|
import { makeDatasourceFormComponents } from "../../../../templates/commonComponents"
|
||||||
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
const resetFormFields = async () => {
|
const resetFormFields = async () => {
|
||||||
const form = findClosestMatchingComponent(
|
const form = findClosestMatchingComponent(
|
||||||
$currentAsset?.props,
|
$selectedScreen?.props,
|
||||||
componentInstance._id,
|
componentInstance._id,
|
||||||
component => component._component.endsWith("/form")
|
component => component._component.endsWith("/form")
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
} from "../../../../dataBinding"
|
} from "../../../../dataBinding"
|
||||||
import { currentAsset, tables } from "stores/builder"
|
import { selectedScreen, tables } from "stores/builder"
|
||||||
import { createEventDispatcher } from "svelte"
|
import { createEventDispatcher } from "svelte"
|
||||||
import { getFields } from "helpers/searchFields"
|
import { getFields } from "helpers/searchFields"
|
||||||
|
|
||||||
|
@ -13,8 +13,8 @@
|
||||||
export let placeholder
|
export let placeholder
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
$: datasource = getDatasourceForProvider($currentAsset, componentInstance)
|
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
$: schema = getSchemaForDatasource($currentAsset, datasource).schema
|
$: schema = getSchemaForDatasource($selectedScreen, datasource).schema
|
||||||
$: options = getOptions(datasource, schema || {})
|
$: options = getOptions(datasource, schema || {})
|
||||||
$: boundValue = getSelectedOption(value, options)
|
$: boundValue = getSelectedOption(value, options)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
} from "../../../../dataBinding"
|
} from "../../../../dataBinding"
|
||||||
import { currentAsset } from "stores/builder"
|
import { selectedScreen } from "stores/builder"
|
||||||
import { createEventDispatcher } from "svelte"
|
import { createEventDispatcher } from "svelte"
|
||||||
import { canBeSortColumn } from "@budibase/shared-core"
|
import { canBeSortColumn } from "@budibase/shared-core"
|
||||||
|
|
||||||
|
@ -13,8 +13,8 @@
|
||||||
export let placeholder
|
export let placeholder
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
$: datasource = getDatasourceForProvider($currentAsset, componentInstance)
|
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
$: schema = getSchemaForDatasource($currentAsset, datasource).schema
|
$: schema = getSchemaForDatasource($selectedScreen, datasource).schema
|
||||||
$: options = getSortableFields(schema)
|
$: options = getSortableFields(schema)
|
||||||
$: boundValue = getValidValue(value, options)
|
$: boundValue = getValidValue(value, options)
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
Input,
|
Input,
|
||||||
DatePicker,
|
DatePicker,
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { currentAsset, selectedComponent } from "stores/builder"
|
import { selectedScreen, selectedComponent } from "stores/builder"
|
||||||
import { findClosestMatchingComponent } from "helpers/components"
|
import { findClosestMatchingComponent } from "helpers/components"
|
||||||
import {
|
import {
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
|
@ -127,13 +127,14 @@
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
const resolveDatasource = (currentAsset, componentInstance, parent) => {
|
const resolveDatasource = (selectedScreen, componentInstance, parent) => {
|
||||||
return (
|
return (
|
||||||
getDatasourceForProvider(currentAsset, parent || componentInstance) || {}
|
getDatasourceForProvider(selectedScreen, parent || componentInstance) ||
|
||||||
|
{}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
$: dataSourceSchema = getDataSourceSchema($currentAsset, $selectedComponent)
|
$: dataSourceSchema = getDataSourceSchema($selectedScreen, $selectedComponent)
|
||||||
$: field = fieldName || $selectedComponent?.field
|
$: field = fieldName || $selectedComponent?.field
|
||||||
$: schemaRules = parseRulesFromSchema(field, dataSourceSchema || {})
|
$: schemaRules = parseRulesFromSchema(field, dataSourceSchema || {})
|
||||||
$: fieldType = type?.split("/")[1] || "string"
|
$: fieldType = type?.split("/")[1] || "string"
|
||||||
|
|
|
@ -7,7 +7,6 @@ import {
|
||||||
findComponentPath,
|
findComponentPath,
|
||||||
} from "helpers/components"
|
} from "helpers/components"
|
||||||
import {
|
import {
|
||||||
currentAsset,
|
|
||||||
componentStore,
|
componentStore,
|
||||||
screenStore,
|
screenStore,
|
||||||
appStore,
|
appStore,
|
||||||
|
@ -15,6 +14,7 @@ import {
|
||||||
queries as queriesStores,
|
queries as queriesStores,
|
||||||
tables as tablesStore,
|
tables as tablesStore,
|
||||||
roles as rolesStore,
|
roles as rolesStore,
|
||||||
|
selectedScreen,
|
||||||
} from "stores/builder"
|
} from "stores/builder"
|
||||||
import {
|
import {
|
||||||
makePropSafe,
|
makePropSafe,
|
||||||
|
@ -731,13 +731,11 @@ export const getEventContextBindings = ({
|
||||||
asset,
|
asset,
|
||||||
}) => {
|
}) => {
|
||||||
let bindings = []
|
let bindings = []
|
||||||
|
asset = asset ?? get(selectedScreen)
|
||||||
const selectedAsset = asset ?? get(currentAsset)
|
|
||||||
|
|
||||||
// Check if any context bindings are provided by the component for this
|
// Check if any context bindings are provided by the component for this
|
||||||
// setting
|
// setting
|
||||||
const component =
|
const component = componentInstance ?? findComponent(asset.props, componentId)
|
||||||
componentInstance ?? findComponent(selectedAsset.props, componentId)
|
|
||||||
|
|
||||||
if (!component) {
|
if (!component) {
|
||||||
return bindings
|
return bindings
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
appStore,
|
appStore,
|
||||||
navigationStore,
|
navigationStore,
|
||||||
selectedScreen,
|
selectedScreen,
|
||||||
currentAsset,
|
|
||||||
hoverStore,
|
hoverStore,
|
||||||
} from "stores/builder"
|
} from "stores/builder"
|
||||||
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
||||||
|
@ -144,7 +143,7 @@
|
||||||
const { key, ctrlKey } = data
|
const { key, ctrlKey } = data
|
||||||
document.dispatchEvent(new KeyboardEvent("keydown", { key, ctrlKey }))
|
document.dispatchEvent(new KeyboardEvent("keydown", { key, ctrlKey }))
|
||||||
} else if (type === "duplicate-component" && data.id) {
|
} else if (type === "duplicate-component" && data.id) {
|
||||||
const rootComponent = get(currentAsset).props
|
const rootComponent = get(selectedScreen).props
|
||||||
const component = findComponent(rootComponent, data.id)
|
const component = findComponent(rootComponent, data.id)
|
||||||
componentStore.copy(component)
|
componentStore.copy(component)
|
||||||
await componentStore.paste(component)
|
await componentStore.paste(component)
|
||||||
|
@ -154,7 +153,7 @@
|
||||||
loading = false
|
loading = false
|
||||||
} else if (type === "move-component") {
|
} else if (type === "move-component") {
|
||||||
const { componentId, destinationComponentId } = data
|
const { componentId, destinationComponentId } = data
|
||||||
const rootComponent = get(currentAsset).props
|
const rootComponent = get(selectedScreen).props
|
||||||
|
|
||||||
// Get source and destination components
|
// Get source and destination components
|
||||||
const source = findComponent(rootComponent, componentId)
|
const source = findComponent(rootComponent, componentId)
|
||||||
|
|
|
@ -7,12 +7,7 @@ import {
|
||||||
} from "./components"
|
} from "./components"
|
||||||
import { navigationStore } from "./navigation.js"
|
import { navigationStore } from "./navigation.js"
|
||||||
import { themeStore } from "./theme.js"
|
import { themeStore } from "./theme.js"
|
||||||
import {
|
import { screenStore, selectedScreen, sortedScreens } from "./screens.js"
|
||||||
screenStore,
|
|
||||||
selectedScreen,
|
|
||||||
currentAsset,
|
|
||||||
sortedScreens,
|
|
||||||
} from "./screens.js"
|
|
||||||
import { builderStore } from "./builder.js"
|
import { builderStore } from "./builder.js"
|
||||||
import { hoverStore } from "./hover.js"
|
import { hoverStore } from "./hover.js"
|
||||||
import { previewStore } from "./preview.js"
|
import { previewStore } from "./preview.js"
|
||||||
|
@ -52,7 +47,6 @@ export {
|
||||||
automationStore,
|
automationStore,
|
||||||
selectedAutomation,
|
selectedAutomation,
|
||||||
automationHistoryStore,
|
automationHistoryStore,
|
||||||
currentAsset,
|
|
||||||
sortedScreens,
|
sortedScreens,
|
||||||
userStore,
|
userStore,
|
||||||
isOnlyUser,
|
isOnlyUser,
|
||||||
|
|
|
@ -483,8 +483,6 @@ export const selectedScreen = derived(screenStore, $store => {
|
||||||
return $store.screens.find(screen => screen._id === $store.selectedScreenId)
|
return $store.screens.find(screen => screen._id === $store.selectedScreenId)
|
||||||
})
|
})
|
||||||
|
|
||||||
export const currentAsset = selectedScreen
|
|
||||||
|
|
||||||
export const sortedScreens = derived(screenStore, $screenStore => {
|
export const sortedScreens = derived(screenStore, $screenStore => {
|
||||||
return $screenStore.screens.slice().sort((a, b) => {
|
return $screenStore.screens.slice().sort((a, b) => {
|
||||||
// Sort by role first
|
// Sort by role first
|
||||||
|
|
|
@ -106,6 +106,10 @@ export default defineConfig(({ mode }) => {
|
||||||
find: "stores",
|
find: "stores",
|
||||||
replacement: path.resolve("./src/stores"),
|
replacement: path.resolve("./src/stores"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
find: "dataBinding",
|
||||||
|
replacement: path.resolve("./src/dataBinding.js"),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
find: "api",
|
find: "api",
|
||||||
replacement: path.resolve("./src/api.js"),
|
replacement: path.resolve("./src/api.js"),
|
||||||
|
|
Loading…
Reference in New Issue