text: function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
  
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
  
  export default function partitionFieldProps(props) {
    const {
      children,
      compact = false,
      compactSpacing = false,
      disabled = false,
      errorMessage = '',
      field = {},
      hideLabel = false,
      hideOptionalLabel = false,
      inline = false,
      invalid = false,
      label,
      labelDescription = '',
      large = false,
      noSpacing = false,
      optional = false,
      prefix = null,
      small = false,
      suffix = null
    } = props,
          inputProps = _objectWithoutPropertiesLoose(props, ["children", "compact", "compactSpacing", "disabled", "errorMessage", "field", "hideLabel", "hideOptionalLabel", "inline", "invalid", "label", "labelDescription", "large", "noSpacing", "optional", "prefix", "small", "suffix"]);
  
    return {
      children,
      field,
      fieldProps: {
        compact,
        compactSpacing,
        disabled,
        errorMessage,
        hideLabel,
        hideOptionalLabel,
        inline,
        invalid,
        label,
        labelDescription,
        large,
        noSpacing,
        optional,
        prefix,
        small,
        suffix
      },
      // @ts-ignore Hard to type
      inputProps: _extends({
        value: ''
      }, inputProps, {
        compact,
        disabled,
        hasPrefix: !!prefix,
        hasSuffix: !!suffix,
        invalid,
        large,
        optional,
        small
      })
    };
  }