diff --git a/packages/bbui/src/Form/Core/Select.svelte b/packages/bbui/src/Form/Core/Select.svelte index 5754c683ed..0111bd6bcf 100644 --- a/packages/bbui/src/Form/Core/Select.svelte +++ b/packages/bbui/src/Form/Core/Select.svelte @@ -26,6 +26,8 @@ export let tag = null export let searchTerm = null export let loading + export let onOptionMouseenter = () => {} + export let onOptionMouseleave = () => {} const dispatch = createEventDispatcher() @@ -95,6 +97,8 @@ {autocomplete} {sort} {tag} + {onOptionMouseenter} + {onOptionMouseleave} isPlaceholder={value == null || value === ""} placeholderOption={placeholder === false ? null : placeholder} isOptionSelected={option => compareOptionAndValue(option, value)} diff --git a/packages/bbui/src/Form/Select.svelte b/packages/bbui/src/Form/Select.svelte index 2119a37980..260090c7b7 100644 --- a/packages/bbui/src/Form/Select.svelte +++ b/packages/bbui/src/Form/Select.svelte @@ -29,6 +29,9 @@ export let tag = null export let helpText = null export let compare + export let onOptionMouseenter = () => {} + export let onOptionMouseleave = () => {} + const dispatch = createEventDispatcher() const onChange = e => { value = e.detail @@ -67,6 +70,8 @@ {customPopoverHeight} {tag} {compare} + {onOptionMouseenter} + {onOptionMouseleave} on:change={onChange} on:click /> diff --git a/packages/builder/src/components/design/settings/controls/FieldContext/Chart.svelte b/packages/builder/src/components/design/settings/controls/FieldContext/FieldContext.svelte similarity index 100% rename from packages/builder/src/components/design/settings/controls/FieldContext/Chart.svelte rename to packages/builder/src/components/design/settings/controls/FieldContext/FieldContext.svelte diff --git a/packages/builder/src/components/design/settings/controls/FieldContext/index.js b/packages/builder/src/components/design/settings/controls/FieldContext/index.js new file mode 100644 index 0000000000..ba7f152627 --- /dev/null +++ b/packages/builder/src/components/design/settings/controls/FieldContext/index.js @@ -0,0 +1,2 @@ +export { default as FieldContext } from "./FieldContext.svelte" +export * from "./validator" diff --git a/packages/builder/src/components/design/settings/controls/FieldContext/validator.js b/packages/builder/src/components/design/settings/controls/FieldContext/validator.js index 3c30d5bd33..cb4e309148 100644 --- a/packages/builder/src/components/design/settings/controls/FieldContext/validator.js +++ b/packages/builder/src/components/design/settings/controls/FieldContext/validator.js @@ -17,66 +17,64 @@ export const constants = { supported: Symbol("values-validator-supported") } -export const validators = { - chart: (fieldSchema) => { - try { - const response = { - level: null, - warnings: [], - errors: [], - text: "", - icon: "", - iconColor: "" - } - const generalUnsupportedFields = ["array", "attachment", "barcodeqr", "link", "bb_reference"] - if (generalUnsupportedFields.includes(fieldSchema.type)) { - response.errors.push(errors.general) - } +export const validate = (fieldSchema) => { + try { + const response = { + level: null, + warnings: [], + errors: [], + text: "", + icon: "", + iconColor: "" + } + const generalUnsupportedFields = ["array", "attachment", "barcodeqr", "link", "bb_reference"] + if (generalUnsupportedFields.includes(fieldSchema.type)) { + response.errors.push(errors.general) + } - if (fieldSchema.type === "json") { - response.errors.push(errors.jsonPrimitivesOnly) - } + if (fieldSchema.type === "json") { + response.errors.push(errors.jsonPrimitivesOnly) + } - if (fieldSchema.type === "string") { - response.warnings.push(warnings.stringAsNumber) - } - if (fieldSchema.type === "datetime") { - response.warnings.push(warnings.chartDatetime); - //"This column can be used as an input for a chart, but it may be parsed differently depending on which is used. - } + if (fieldSchema.type === "string") { + response.warnings.push(warnings.stringAsNumber) + } + if (fieldSchema.type === "datetime") { + response.warnings.push(warnings.chartDatetime); + //"This column can be used as an input for a chart, but it may be parsed differently depending on which is used. + } - const isRequired = fieldSchema?.constraints?.presence?.allowEmpty === false - if (!isRequired) { - response.warnings.push(warnings.notRequired); - } + const isRequired = fieldSchema?.constraints?.presence?.allowEmpty === false + if (!isRequired) { + response.warnings.push(warnings.notRequired); + } - if (response.errors.length > 0) { - response.level = constants.unsupported - response.text = "Not compatible" - response.icon = "Alert" - response.iconColor = "var(--red)" - } else if (response.warnings.length > 0) { - response.level = constants.partialSupport - response.text = "Partially compatible" - response.icon = "AlertCheck" - response.iconColor = "var(--yellow)" - } else { - response.level = constants.supported - response.text = "Compatible" - response.icon = "CheckmarkCircle" - response.iconColor = "var(--green)" - } + if (response.errors.length > 0) { + response.level = constants.unsupported + response.text = "Not compatible" + response.icon = "Alert" + response.iconColor = "var(--red)" + } else if (response.warnings.length > 0) { + response.level = constants.partialSupport + response.text = "Partially compatible" + response.icon = "AlertCheck" + response.iconColor = "var(--yellow)" + } else { + response.level = constants.supported + response.text = "Compatible" + response.icon = "CheckmarkCircle" + response.iconColor = "var(--green)" + } - return response - } catch (e) { - return { - level: constants.partialSupport, - warnings: [], - errors: [], - text: "Partially compatible", - icon: "AlertCheck", - iconColor: "var(--yellow)" - } + return response + } catch (e) { + return { + level: constants.partialSupport, + warnings: [], + errors: [], + text: "Partially compatible", + icon: "AlertCheck", + iconColor: "var(--yellow)" } } -}; +} diff --git a/packages/builder/src/components/design/settings/controls/FieldSelect.svelte b/packages/builder/src/components/design/settings/controls/FieldSelect.svelte index 3f39c12800..ecb506f656 100644 --- a/packages/builder/src/components/design/settings/controls/FieldSelect.svelte +++ b/packages/builder/src/components/design/settings/controls/FieldSelect.svelte @@ -1,25 +1,32 @@