UNPKG

sk-react

Version:
118 lines (107 loc) 4.3 kB
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { Mesgs, SK } from 'sk-js'; var Validator = /*#__PURE__*/ function () { /** * * @param modelIds * { * "id1": { * "deps": "dependencies: option, can be string[reg], string array or object", * "func": "custom rule by function", * "rule1": { * "field": "x.xx.xxx, this is i18n mesg for required rule" * }, * "rule2": { * "exec": "enable function" * } * } * } * @param rules */ function Validator() { var modelIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var rules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; _classCallCheck(this, Validator); this.modelIds = modelIds; this.rules = SK.extends(true, {}, Validator.RULES, rules); } _createClass(Validator, [{ key: "getModelIds", value: function getModelIds() { return this.modelIds; } }, { key: "getRules", value: function getRules() { return this.rules; } }]); return Validator; }(); Validator.PROP_DEPS = 'deps'; Validator.PROP_FUNC = 'func'; Validator.RULES = { required: function required(model, value, settings) { return SK.s4s(value) === SK.STR_EMPTY ? Mesgs.get('$#{field}_is_required').skFmt({ field: Mesgs.gets(settings.field) }) : true; }, email: function email(model, value, settings) { return /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/.test(value) ? true : Mesgs.get('$#{field}_must_be_an_email').skFmt({ field: Mesgs.gets(settings.field) }); }, lengthRange: function lengthRange(model, value, settings) { var tmpValue = SK.s4s(value); var minExist = settings.min !== undefined; var maxExist = settings.max !== undefined; if (minExist && maxExist) { return tmpValue.length > settings.min && tmpValue.length < settings.max ? true : Mesgs.get('$#{field}_length_must_be_between_$#{min}_$#{max}').skFmt({ field: Mesgs.gets(settings.field), min: settings.min, max: settings.max }); } else if (minExist && !maxExist) { return tmpValue.length > settings.min ? true : Mesgs.get('$#{field}_length_must_be_greater_than_$#{min}').skFmt({ field: Mesgs.gets(settings.field), min: settings.min }); } else if (!minExist && maxExist) { return tmpValue.length < settings.max ? true : Mesgs.get('$#{field}_length_must_be_less_than_$#{max}').skFmt({ field: Mesgs.gets(settings.field), max: settings.max }); } else { return true; } }, numberRange: function numberRange(model, value, settings) { var tmpValue = SK.s4n(value); var minExist = settings.min !== undefined; var maxExist = settings.max !== undefined; if (minExist && maxExist) { return tmpValue > SK.s4n(settings.min) && tmpValue < SK.s4n(settings.max) ? true : Mesgs.get('$#{field}_value_must_be_between_$#{min}_$#{max}').skFmt({ field: Mesgs.gets(settings.field), min: settings.min, max: settings.max }); } else if (minExist && !maxExist) { return tmpValue > SK.s4n(settings.min) ? true : Mesgs.get('$#{field}_value_must_be_greater_than_$#{min}').skFmt({ field: Mesgs.gets(settings.field), min: settings.min }); } else if (!minExist && maxExist) { return tmpValue < SK.s4n(settings.max) ? true : Mesgs.get('$#{field}_value_must_be_less_than_$#{max}').skFmt({ field: Mesgs.gets(settings.field), max: settings.max }); } else { return true; } } }; export { Validator as default };