UNPKG

comindware.core.ui

Version:

Comindware Core UI provides the basic components like editors, lists, dropdowns, popups that we so desperately need while creating Marionette-based single-page applications.

26 lines (21 loc) 859 B
import LocalizationService from '../../services/LocalizationService'; import _ from 'underscore'; export default function ({ type = 'required', message = LocalizationService.get('CORE.FORM.VALIDATION.REQUIRED'), enabled = () => true } = {}) { const requiredValidator = function (value) { const val = _.isObject(value) && 'value' in value ? value.value : value; const err = { type, message: _.getResult(message, this, { type, message }) }; if (val === null || val === undefined || val === '') { return err; } if (Array.isArray(val) && val.length === 0) { return err; } }; const required = function required(value: any) { return _.getResult(enabled, this, value) ? requiredValidator(value) : undefined; }; return required; }