all files / built/src/ rules.js

47.5% Statements 19/40
25% Branches 5/20
14.29% Functions 1/7
47.5% Lines 19/40
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58  15×     15×     15×                                                                    
"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