docs: function FormControlClone(props) {
      _classCallCheck(this, FormControlClone);
  
      var _this = _possibleConstructorReturn(this, (FormControlClone.__proto__ || Object.getPrototypeOf(FormControlClone)).call(this, props));
  
      _initialiseProps.call(_this);
  
      var _props$formControlCom = props.formControlComp.props,
          error = _props$formControlCom.error,
          required = _props$formControlCom.required;
  
  
      var name = void 0;
      var value = void 0;
      var helperText = void 0;
      var isError = error;
  
      _react2.default.Children.forEach(props.formControlComp.props.children, function (child) {
        if (child.type === _FormHelperText2.default) {
          helperText = String(child.props.children);
          _this.helperText = helperText;
        } else if (child.type !== _FormLabel2.default && child.type !== _InputLabel2.default && child.props.name !== undefined && child.props.value !== undefined) {
          name = child.props.name; // eslint-disable-line prefer-destructuring
          value = child.props.value; // eslint-disable-line prefer-destructuring
        }
      });
  
      if (props.formControlComp.type !== _FormControl2.default || name === undefined || value === undefined) {
        throw new Error('invalid FormControl control children');
      }
  
      if (props.field.value === undefined) {
        var validatorsPropName = _propNames2.default.FIELD_VALIDATORS;
        props.onConstruct(_defineProperty({
          name: name,
          value: value,
          required: required
        }, validatorsPropName, props.formControlComp.props[validatorsPropName]));
      } else {
        value = props.field.value; // eslint-disable-line prefer-destructuring
        if (!_lodash2.default.isEmpty(props.field) && props.field.validations.length > 0) {
          var fieldError = getErrorAndHelperText(props.field);
          helperText = fieldError.helperText; // eslint-disable-line prefer-destructuring
          isError = fieldError.isError; // eslint-disable-line prefer-destructuring
        }
      }
  
      _this.name = name;
      _this.state = {
        helperText: helperText,
        isError: isError,
        value: value
      };
      return _this;
    }