import React, { lazy } from 'react';
import { IFieldConfig } from '../../types';
import { FieldType } from '../../constants/fields';
import * as yup from 'yup';
import SvgIcon from '@material-ui/core/SvgIcon';
import { mdiOrderBoolAscendingVariant } from '@mdi/js';
import Settings from './MultiSelectSettings';
const Component = lazy(
() =>
import(
'./MultiSelectComponent'
) /* webpackChunkName: FormBuilder-MultiSelect */
);
export const MultiSelectConfig: IFieldConfig = {
type: FieldType.multiSelect,
name: 'Multi Select',
group: 'input',
icon: (
),
dataType: 'string[]',
defaultValue: [],
component: Component as any,
settings: Settings,
validation: (config: Record) => {
const validation: any[][] = [
['array'],
['of', yup.string().trim()],
['ensure'],
['compact'],
];
if (config.required === true)
validation.push(['min', 1, 'Please make at least one selection']);
if (typeof config.max === 'number')
validation.push([
'max',
config.max,
`Please make at most ${config.max} selections`,
]);
return validation;
},
};
export default MultiSelectConfig;