diff --git a/packages/rules-engine/src/commonUtils/normalizeRuleVariable.js b/packages/rules-engine/src/commonUtils/normalizeRuleVariable.js index 34f76e1bb5..6c10602fc7 100644 --- a/packages/rules-engine/src/commonUtils/normalizeRuleVariable.js +++ b/packages/rules-engine/src/commonUtils/normalizeRuleVariable.js @@ -39,6 +39,7 @@ export const normalizeRuleVariable = (data: any, valueType: string) => { [typeKeys.AGE]: convertString, [typeKeys.TEXT]: convertString, [typeKeys.LONG_TEXT]: convertString, + [typeKeys.MULTI_TEXT]: convertString, }; if (!data && data !== 0 && data !== false) { diff --git a/packages/rules-engine/src/constants/typeKeys.const.js b/packages/rules-engine/src/constants/typeKeys.const.js index 93bec23586..9280d683dc 100644 --- a/packages/rules-engine/src/constants/typeKeys.const.js +++ b/packages/rules-engine/src/constants/typeKeys.const.js @@ -1,6 +1,7 @@ // @flow export const typeKeys = { TEXT: 'TEXT', + MULTI_TEXT: 'MULTI_TEXT', LONG_TEXT: 'LONG_TEXT', LETTER: 'LETTER', PHONE_NUMBER: 'PHONE_NUMBER', diff --git a/packages/rules-engine/src/constants/typeToInterfaceFnName.const.js b/packages/rules-engine/src/constants/typeToInterfaceFnName.const.js index e8513c6858..f1fc9af926 100644 --- a/packages/rules-engine/src/constants/typeToInterfaceFnName.const.js +++ b/packages/rules-engine/src/constants/typeToInterfaceFnName.const.js @@ -3,6 +3,7 @@ import { typeKeys } from './typeKeys.const'; export const mapTypeToInterfaceFnName = { [typeKeys.TEXT]: 'convertText', + [typeKeys.MULTI_TEXT]: 'convertMultiText', [typeKeys.LONG_TEXT]: 'convertLongText', [typeKeys.LETTER]: 'convertLetter', [typeKeys.PHONE_NUMBER]: 'convertPhoneNumber', diff --git a/packages/rules-engine/src/d2Functions/getD2Functions.js b/packages/rules-engine/src/d2Functions/getD2Functions.js index e128bd871a..459238f447 100644 --- a/packages/rules-engine/src/d2Functions/getD2Functions.js +++ b/packages/rules-engine/src/d2Functions/getD2Functions.js @@ -296,4 +296,11 @@ export const getD2Functions = ({ return params[0]; }, }, + multiTextContains: { + parameters: 2, + execute: (params: any) => { + log.warn('multiTextContains not implemented yet'); + return params[0]; + }, + }, }); diff --git a/packages/rules-engine/src/d2Functions/getD2Functions.types.js b/packages/rules-engine/src/d2Functions/getD2Functions.types.js index 237127a052..4d2403997c 100644 --- a/packages/rules-engine/src/d2Functions/getD2Functions.types.js +++ b/packages/rules-engine/src/d2Functions/getD2Functions.types.js @@ -55,4 +55,5 @@ export type D2Functions = $ReadOnly<{| lastEventDate: D2FunctionConfig, addControlDigits: D2FunctionConfig, checkControlDigits: D2FunctionConfig, + multiTextContains: D2FunctionConfig, |}>; diff --git a/packages/rules-engine/src/helpers/OptionSetHelper.js b/packages/rules-engine/src/helpers/OptionSetHelper.js index 36cf148175..b84720da43 100644 --- a/packages/rules-engine/src/helpers/OptionSetHelper.js +++ b/packages/rules-engine/src/helpers/OptionSetHelper.js @@ -1,6 +1,19 @@ +// @flow +import { typeKeys } from '../constants'; +import type { Option } from '../services/VariableService'; + export class OptionSetHelper { - static getName(options, key) { + static getName(options: Array