diff --git a/packages/builder/src/stores/builder/components.ts b/packages/builder/src/stores/builder/components.ts index f0dbc560c1..84ec963406 100644 --- a/packages/builder/src/stores/builder/components.ts +++ b/packages/builder/src/stores/builder/components.ts @@ -32,6 +32,8 @@ import { import { BudiStore } from "../BudiStore" import { Utils } from "@budibase/frontend-core" import { + ComponentDefinition, + ComponentSetting, Component as ComponentType, FieldType, Screen, @@ -53,30 +55,6 @@ export interface ComponentState { selectedScreenId?: string | null } -export interface ComponentDefinition { - component: string - name: string - friendlyName?: string - hasChildren?: boolean - settings?: ComponentSetting[] - features?: Record - typeSupportPresets?: Record - legalDirectChildren: string[] - requiredAncestors?: string[] - illegalChildren: string[] -} - -export interface ComponentSetting { - key: string - type: string - section?: string - name?: string - defaultValue?: any - selectAllFields?: boolean - resetOn?: string | string[] - settings?: ComponentSetting[] -} - export const INITIAL_COMPONENTS_STATE: ComponentState = { components: {}, customComponents: [], diff --git a/packages/client/src/utils/componentProps.js b/packages/client/src/utils/componentProps.js index bdf74c8014..eec284e3d8 100644 --- a/packages/client/src/utils/componentProps.js +++ b/packages/client/src/utils/componentProps.js @@ -97,26 +97,3 @@ export const propsUseBinding = (props, bindingKey) => { } return false } - -/** - * Gets the definition of this component's settings from the manifest - */ -export const getSettingsDefinition = definition => { - if (!definition) { - return [] - } - let settings = [] - definition.settings?.forEach(setting => { - if (setting.section) { - settings = settings.concat( - (setting.settings || [])?.map(childSetting => ({ - ...childSetting, - sectionDependsOn: setting.dependsOn, - })) - ) - } else { - settings.push(setting) - } - }) - return settings -} diff --git a/packages/frontend-core/src/utils/components.ts b/packages/frontend-core/src/utils/components.ts new file mode 100644 index 0000000000..60eb520258 --- /dev/null +++ b/packages/frontend-core/src/utils/components.ts @@ -0,0 +1,26 @@ +import { ComponentDefinition, ComponentSetting } from "@budibase/types" + +/** + * Gets the definition of this component's settings from the manifest + */ +export const getSettingsDefinition = ( + definition: ComponentDefinition +): ComponentSetting[] => { + if (!definition) { + return [] + } + let settings: ComponentSetting[] = [] + definition.settings?.forEach(setting => { + if (setting.section) { + settings = settings.concat( + (setting.settings || [])?.map(childSetting => ({ + ...childSetting, + sectionDependsOn: setting.dependsOn, + })) + ) + } else { + settings.push(setting) + } + }) + return settings +} diff --git a/packages/frontend-core/src/utils/index.ts b/packages/frontend-core/src/utils/index.ts index efc694d268..3fa9f66b22 100644 --- a/packages/frontend-core/src/utils/index.ts +++ b/packages/frontend-core/src/utils/index.ts @@ -13,3 +13,4 @@ export * from "./download" export * from "./settings" export * from "./relatedColumns" export * from "./table" +export * from "./components" diff --git a/packages/types/src/ui/components/index.ts b/packages/types/src/ui/components/index.ts index 611f92b9a4..61b0c6e564 100644 --- a/packages/types/src/ui/components/index.ts +++ b/packages/types/src/ui/components/index.ts @@ -1,3 +1,33 @@ export * from "./sidepanel" export * from "./codeEditor" export * from "./errors" + +export interface ComponentDefinition { + component: string + name: string + friendlyName?: string + hasChildren?: boolean + settings?: ComponentSetting[] + features?: Record + typeSupportPresets?: Record + legalDirectChildren: string[] + requiredAncestors?: string[] + illegalChildren: string[] +} + +export interface ComponentSetting { + key: string + type: string + section?: string + name?: string + defaultValue?: any + selectAllFields?: boolean + resetOn?: string | string[] + settings?: ComponentSetting[] + dependsOn?: + | string + | { + setting: string + value: string + } +}