@plone/volto
Version:
Volto
172 lines (148 loc) • 3.9 kB
text/typescript
import { ConfigType } from '@plone/registry';
import {
minLengthValidator,
maxLengthValidator,
urlValidator,
emailValidator,
isNumberValidator,
maximumValidator,
minimumValidator,
isIntegerValidator,
maxItemsValidator,
minItemsValidator,
hasUniqueItemsValidator,
startEventDateRangeValidator,
endEventDateRangeValidator,
patternValidator,
defaultLanguageControlPanelValidator,
sizeValidator,
} from '@plone/volto/helpers/FormValidation/validators';
const registerValidators = (config: ConfigType) => {
config.registerUtility({
name: 'minLength',
type: 'validator',
dependencies: { fieldType: 'string' },
method: minLengthValidator,
});
config.registerUtility({
name: 'maxLength',
type: 'validator',
dependencies: { fieldType: 'string' },
method: maxLengthValidator,
});
config.registerUtility({
name: 'size',
type: 'validator',
dependencies: { fieldType: 'object' },
method: sizeValidator,
});
config.registerUtility({
name: 'pattern',
type: 'validator',
dependencies: { fieldType: 'string' },
method: patternValidator,
});
config.registerUtility({
name: 'minLength',
type: 'validator',
dependencies: { fieldType: 'password' },
method: minLengthValidator,
});
config.registerUtility({
name: 'maxLength',
type: 'validator',
dependencies: { fieldType: 'password' },
method: maxLengthValidator,
});
config.registerUtility({
name: 'pattern',
type: 'validator',
dependencies: { fieldType: 'password' },
method: patternValidator,
});
config.registerUtility({
name: 'email',
type: 'validator',
dependencies: { widget: 'email' },
method: emailValidator,
});
config.registerUtility({
name: 'url',
type: 'validator',
dependencies: { widget: 'url' },
method: urlValidator,
});
config.registerUtility({
name: 'number',
type: 'validator',
dependencies: { fieldType: 'number' },
method: isNumberValidator,
});
config.registerUtility({
name: 'minimum',
type: 'validator',
dependencies: { fieldType: 'number' },
method: minimumValidator,
});
config.registerUtility({
name: 'maximum',
type: 'validator',
dependencies: { fieldType: 'number' },
method: maximumValidator,
});
config.registerUtility({
name: 'integer',
type: 'validator',
dependencies: { fieldType: 'integer' },
method: isIntegerValidator,
});
config.registerUtility({
name: 'minimum',
type: 'validator',
dependencies: { fieldType: 'integer' },
method: minimumValidator,
});
config.registerUtility({
name: 'maximum',
type: 'validator',
dependencies: { fieldType: 'integer' },
method: maximumValidator,
});
config.registerUtility({
name: 'maxItems',
type: 'validator',
dependencies: { fieldType: 'array' },
method: maxItemsValidator,
});
config.registerUtility({
name: 'minItems',
type: 'validator',
dependencies: { fieldType: 'array' },
method: minItemsValidator,
});
config.registerUtility({
name: 'uniqueItems',
type: 'validator',
dependencies: { fieldType: 'array' },
method: hasUniqueItemsValidator,
});
config.registerUtility({
name: 'dateRangeValidator',
type: 'validator',
dependencies: { behaviorName: 'plone.eventbasic', fieldName: 'start' },
method: startEventDateRangeValidator,
});
config.registerUtility({
name: 'dateRangeValidator',
type: 'validator',
dependencies: { behaviorName: 'plone.eventbasic', fieldName: 'end' },
method: endEventDateRangeValidator,
});
config.registerUtility({
name: 'default_language',
type: 'validator',
dependencies: { format: 'default_language' },
method: defaultLanguageControlPanelValidator,
});
};
export { registerValidators };