import { CSSProperties } from "vue";

export default interface IProps {
  /**
   * @description 用于双向绑定的值，初始化时设置设为默认min值(最小值)  （默认 0 ）
   * */
  modelValue: number;
  /**
   * @description 最小值 （默认 1 ）
   * */
  min?: number;
  /**
   * @description 最大值 （默认 Number.MAX_SAFE_INTEGER ）
   * */
  max?: number;
  /**
   * @description 加减的步长，可为小数 （默认 1 ）
   * */
  step?: number;
  /**
   * @description 是否只允许输入整数 （默认 false ）
   * */
  integer?: boolean;
  /**
   * @description 是否禁用，包括输入框，加减按钮 （默认 false ）
   * */
  disabled?: boolean;
  /**
   * @description 是否禁用输入框 （默认 false ）
   * */
  disabledInput?: boolean;
  /**
   * @description 是否开启异步变更，开启后需要手动控制输入值 （默认 false ）
   * */
  asyncChange?: boolean;
  /**
   * @description 输入框宽度，单位为px （默认 35 ）
   * */
  inputWidth?: number;
  /**
   * @description 是否显示减少按钮 （默认 true ）
   * */
  showMinus?: boolean;
  /**
   * @description 是否显示增加按钮 （默认 true ）
   * */
  showPlus?: boolean;
  /**
   * @description 显示的小数位数
   * */
  decimalLength?: number | null;
  /**
   * @description 是否开启长按加减手势 （默认 true ）
   * */
  longPress?: boolean;
  /**
   * @description 输入框文字和加减按钮图标的颜色 （默认 '#323233' ）
   * */
  color?: string;
  /**
   * @description 按钮宽度（默认 '30' ）
   * */
  buttonWidth?: number | string;
  /**
   * @description 按钮大小，宽高等于此值，单位px，输入框高度和此值保持一致 （默认 30 ）
   * */
  buttonSize?: number | string;
  /**
   * @description 按钮圆角 （默认 '0px' ）
   * */
  buttonRadius?: number | string;
  /**
   * @description 输入框和按钮的背景颜色 （默认 '#EBECEE' ）
   * */
  bgColor?: string;
  /**
   * @description 输入框背景颜色 （默认 '#EBECEE' ）
   * */
  inputBgColor?: string;
  /**
   * @description 指定光标于键盘的距离，避免键盘遮挡输入框，单位px （默认 100 ）
   * */
  cursorSpacing?: number;
  /**
   * @description 是否禁用减少按钮 （默认 false ）
   * */
  disableMinus?: boolean;
  /**
   * @description 是否禁用增加按钮 （默认 false ）
   * */
  disablePlus?: boolean;
  /**
   * @description 加减按钮图标的样式
   * */
  iconStyle?: CSSProperties;
  /**
   * @description 迷你模式（默认 false ）
   * */
  miniMode?: boolean;
  /**
   * @description 定义需要用到的外部样式
   * */
  customStyle?: CSSProperties;
}
