import { NumberModel } from '../Models'; const formRules = [ 'formValid' ]; const fieldRules = [ 'required' ]; const spatialRules = [ 'required' ]; const textRules = [ 'required', 'email', 'url', 'length', ]; const numberRules = [ 'required', 'equalTo', 'equalToOrLessThan', 'equalToOrGreaterThan', 'greaterThan', 'lessThan', 'notEqualTo' ]; const fileRules = [ 'required', 'file' ]; const arrayRules = [ 'required', 'length', 'arrayContains', 'url' ]; const validationRegistry = { 'form': formRules, 'section': formRules, 'field': fieldRules, 'string': textRules, 'text': textRules, 'singleLine': textRules, 'multiLine': textRules, 'boolean': arrayRules, 'calendar': arrayRules, 'choice': arrayRules, 'array': arrayRules, 'list': arrayRules, 'select': arrayRules, 'number': numberRules, 'file': fileRules, 'image': fileRules, 'map': spatialRules, 'navigator': spatialRules } // all validation gets embedded in a list field such that an array is produced. // this needs to be a form with two number fields const lengthAnchorValues = ( parentId:string ) => new NumberModel({ id: '', parentId, type: 'number', name: 'Less Than Value', placeholder: 'What number must this value be less than?', value: 0, validation: [ { operator: 'required', anchorValues: null, message: 'You must specify a maximum number.' } ] }); // const lessThanAnchorValues = ( parentId:string ) => new NumberModel({ id: '', parentId, type: 'number', name: 'Less Than Value', placeholder: 'What number must this value be less than?', value: 0, validation: [ { operator: 'required', anchorValues: null, message: 'You must specify a maximum number.' } ] }); const validationOperatorAnchorFields = { lessThan: lessThanAnchorValues } export { validationRegistry };