code: function (Vue) {
    var ref = Vue.util;
    var extend = ref.extend;
    var isPlainObject = ref.isPlainObject;
  
    function initialStates (states, validators, init) {
      if ( init === void 0 ) init = undefined;
  
      if (Array.isArray(validators)) {
        validators.forEach(function (validator) {
          states[validator] = init;
        });
      } else {
        Object.keys(validators).forEach(function (validator) {
          var props = (validators[validator] &&
            validators[validator]['props'] &&
            isPlainObject(validators[validator]['props']))
              ? validators[validator]['props']
              : null;
          if (props) {
            Object.keys(props).forEach(function (prop) {
              states[validator] = {};
              states[validator][prop] = init;
            });
          } else {
            states[validator] = init;
          }
        });
      }
    }
  
    function getInitialResults (validators) {
      var results = {};
      initialStates(results, validators, undefined);
      return results
    }
  
    function getInitialProgresses (validators) {
      var progresses = {};
      initialStates(progresses, validators, '');
      return progresses
    }
  
    var props = extend({
      child: {
        type: Object,
        required: true
      },
      value: {
        type: Object
      }
    }, baseProps);
  
    function data () {
      var validators = nomalizeValidators(this.validators);
      return {
        results: getInitialResults(validators),
        valid: true,
        dirty: false,
        touched: false,
        modified: false,
        progresses: getInitialProgresses(validators)
      }
    }
  
    return {
      props: props,
      data: data
    }
  }
docs: /*