"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var mobx_1 = require("mobx");
function errors(loose) {
var dupes = {}, result = [], list = !loose.error ? [] :
typeof loose.error === "string" ? [loose.error] :
loose.error;
for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
var err = list_1[_i];
Eif (err && !(err in dupes)) {
dupes[err] = true;
result.push(err);
}
}
return result;
}
exports.errors = errors;
function rule(test) {
var error = mobx_1.computed(test);
return {
get error() {
return error.get();
}
};
}
exports.rule = rule;
function label(label, error) {
return label + " - " + error;
}
exports.label = label;
function rules(rules, optionalFormat) {
var format = optionalFormat || label;
return rule(function () {
var result = [];
for (var _i = 0, rules_1 = rules; _i < rules_1.length; _i++) {
var r = rules_1[_i];
for (var _a = 0, _b = errors(r); _a < _b.length; _a++) {
var e = _b[_a];
result.push(r.label ? format(r.label, e) : e);
}
}
return result;
});
}
exports.rules = rules;
function props(rule, props) {
var className = props.className;
var title = props.title;
var errs = errors(rule);
if (errs.length != 0) {
var prefix = className ? (className + " ") : "", suffix = props.errorClass || "has-errors";
className = "" + prefix + suffix;
title = (title ? title + "\n" : "") + errs.join("\n");
}
return { className: className, title: title };
}
exports.props = props;
//# sourceMappingURL=rules.js.map |