{"version":3,"sources":["validators.js"],"names":[],"mappings":"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","file":"angular2/src/forms/validators.es6","sourcesContent":["import {isBlank, isPresent} from 'angular2/src/facade/lang';\nimport {List, ListWrapper, StringMapWrapper} from 'angular2/src/facade/collection';\n\nimport * as modelModule from './model';\n\n/**\n * Provides a set of validators used by form controls.\n *\n * # Example\n *\n * ```\n * var loginControl = new Control(\"\", Validators.required)\n * ```\n *\n * @exportedAs angular2/forms\n */\nexport class Validators {\n  static required(c:modelModule.Control) {\n    return isBlank(c.value) || c.value == \"\" ? {\"required\": true} : null;\n  }\n\n  static nullValidator(c:any) {\n    return null;\n  }\n\n  static compose(validators:List<Function>):Function {\n    return function (c:modelModule.Control) {\n      var res = ListWrapper.reduce(validators, (res, validator) => {\n        var errors = validator(c);\n        return isPresent(errors) ? StringMapWrapper.merge(res, errors) : res;\n      }, {});\n      return StringMapWrapper.isEmpty(res) ? null : res;\n    }\n  }\n\n  static group(c:modelModule.ControlGroup) {\n    var res = {};\n    StringMapWrapper.forEach(c.controls, (control, name) => {\n      if (c.contains(name) && isPresent(control.errors)) {\n        Validators._mergeErrors(control, res);\n      }\n    });\n    return StringMapWrapper.isEmpty(res) ? null : res;\n  }\n\n  static array(c:modelModule.ControlArray) {\n    var res = {};\n    ListWrapper.forEach(c.controls, (control) => {\n      if (isPresent(control.errors)) {\n        Validators._mergeErrors(control, res);\n      }\n    });\n    return StringMapWrapper.isEmpty(res) ? null : res;\n  }\n\n  static _mergeErrors(control, res) {\n    StringMapWrapper.forEach(control.errors, (value, error) => {\n      if (!StringMapWrapper.contains(res, error)) {\n        res[error] = [];\n      }\n      ListWrapper.push(res[error], control);\n    });\n  }\n}\n"]}