import '../../../utils/index.mjs';
import PropTypes from '../../../utils/vue/vueTypes.mjs';
import { stringType, eventType } from '../../../utils/vue/propType.mjs';
import { omit } from '../../../utils/lang/omit.mjs';

function baseInputProps() {
  return {
    addonBefore: PropTypes.any,
    addonAfter: PropTypes.any,
    prefix: PropTypes.any,
    suffix: PropTypes.any,
    clearIcon: PropTypes.any,
    affixWrapperClassName: String,
    groupClassName: String,
    wrapperClassName: String,
    inputClassName: String,
    allowClear: { type: Boolean, default: void 0 },
    value: {
      type: [String, Number, Symbol],
      default: void 0
    },
    defaultValue: {
      type: [String, Number, Symbol],
      default: void 0
    },
    inputElement: PropTypes.any,
    prefixCls: String,
    disabled: { type: Boolean, default: void 0 },
    focused: { type: Boolean, default: void 0 },
    triggerFocus: Function,
    readonly: { type: Boolean, default: void 0 },
    handleReset: Function,
    hidden: { type: Boolean, default: void 0 }
  };
}
function internalInputProps() {
  return {
    ...baseInputProps(),
    "id": String,
    "placeholder": {
      type: [String, Number]
    },
    "autocomplete": String,
    "type": stringType(
      "text"
    ),
    "name": String,
    "size": { type: String },
    "autofocus": { type: Boolean, default: void 0 },
    "lazy": { type: Boolean, default: true },
    "maxlength": Number,
    "loading": { type: Boolean, default: void 0 },
    "bordered": { type: Boolean, default: void 0 },
    "showCount": { type: [Boolean, Object] },
    "htmlSize": Number,
    "onPressEnter": Function,
    "onKeydown": Function,
    "onKeyup": Function,
    "onFocus": Function,
    "onBlur": Function,
    "onChange": Function,
    "onInput": Function,
    "onUpdate:value": Function,
    "onCompositionstart": Function,
    "onCompositionend": Function,
    "valueModifiers": Object,
    "hidden": { type: Boolean, default: void 0 },
    "status": String
  };
}
function inputProps() {
  return omit(internalInputProps(), [
    "wrapperClassName",
    "groupClassName",
    "inputClassName",
    "affixWrapperClassName"
  ]);
}
function textAreaProps() {
  return {
    ...omit(inputProps(), ["prefix", "addonBefore", "addonAfter", "suffix"]),
    rows: Number,
    autosize: { type: [Boolean, Object], default: void 0 },
    autoSize: { type: [Boolean, Object], default: void 0 },
    onResize: { type: Function },
    onCompositionstart: eventType(),
    onCompositionend: eventType(),
    valueModifiers: Object
  };
}

export { baseInputProps, inputProps, internalInputProps, textAreaProps };
//# sourceMappingURL=props.mjs.map
