type ColSpanType = number | string;
export interface ColEx {
  style?: any;
  /**
   * raster number of cells to occupy, 0 corresponds to display: none
   * @default none (0)
   * @type ColSpanType
   */
  span?: ColSpanType;

  /**
   * raster order, used in flex layout mode
   * @default 0
   * @type ColSpanType
   */
  order?: ColSpanType;

  /**
   * the layout fill of flex
   * @default none
   * @type ColSpanType
   */
  flex?: ColSpanType;

  /**
   * the number of cells to offset Col from the left
   * @default 0
   * @type ColSpanType
   */
  offset?: ColSpanType;

  /**
   * the number of cells that raster is moved to the right
   * @default 0
   * @type ColSpanType
   */
  push?: ColSpanType;

  /**
   * the number of cells that raster is moved to the left
   * @default 0
   * @type ColSpanType
   */
  pull?: ColSpanType;

  /**
   * <576px and also default setting, could be a span value or an object containing above props
   * @type { span: ColSpanType, offset: ColSpanType } | ColSpanType
   */
  xs?: { span: ColSpanType; offset: ColSpanType } | ColSpanType;

  /**
   * ≥576px, could be a span value or an object containing above props
   * @type { span: ColSpanType, offset: ColSpanType } | ColSpanType
   */
  sm?: { span: ColSpanType; offset: ColSpanType } | ColSpanType;

  /**
   * ≥768px, could be a span value or an object containing above props
   * @type { span: ColSpanType, offset: ColSpanType } | ColSpanType
   */
  md?: { span: ColSpanType; offset: ColSpanType } | ColSpanType;

  /**
   * ≥992px, could be a span value or an object containing above props
   * @type { span: ColSpanType, offset: ColSpanType } | ColSpanType
   */
  lg?: { span: ColSpanType; offset: ColSpanType } | ColSpanType;

  /**
   * ≥1200px, could be a span value or an object containing above props
   * @type { span: ColSpanType, offset: ColSpanType } | ColSpanType
   */
  xl?: { span: ColSpanType; offset: ColSpanType } | ColSpanType;

  /**
   * ≥1600px, could be a span value or an object containing above props
   * @type { span: ColSpanType, offset: ColSpanType } | ColSpanType
   */
  xxl?: { span: ColSpanType; offset: ColSpanType } | ColSpanType;
}

export type ComponentType =
  | 'Input'
  | 'JEasyCron'
  | 'ApiRadioGroup'
  | 'InputGroup'
  | 'InputPassword'
  | 'InputSearch'
  | 'InputTextArea'
  | 'InputNumber'
  | 'InputCountDown'
  | 'Select'
  | 'ApiSelect'
  | 'TreeSelect'
  | 'ApiTreeSelect'
  | 'RadioButtonGroup'
  | 'RadioGroup'
  | 'Checkbox'
  | 'CheckboxGroup'
  | 'AutoComplete'
  | 'Cascader'
  | 'DatePicker'
  | 'MonthPicker'
  | 'RangePicker'
  | 'WeekPicker'
  | 'TimePicker'
  | 'Switch'
  | 'StrengthMeter'
  | 'Upload'
  | 'IconPicker'
  | 'Render'
  | 'Slider'
  | 'JAddInput'
  | 'CustomMinMaxInput'
  | 'Rate'
  | 'ColorPicker'
  | 'IconDrawer'
  | 'ApiUpload'
  | 'ApiSearchSelect'
  | 'StructForm'
  | 'ApiSelectScrollLoad'
  | 'TransferModal'
  | 'TransferTableModal'
  | 'ObjectModelValidateForm';

// - Input: 输入框组件
// - JEasyCron: cron表达式输入框组件
// - ApiRadioGroup: 通过API获取选项的单选框组件
// - InputGroup: 输入框组合组件
// - InputPassword: 密码输入框组件
// - InputSearch: 搜索框组件
// - InputTextArea: 多行文本输入框组件
// - InputNumber: 数字输入框组件
// - InputCountDown: 倒计时输入框组件
// - Select: 下拉选择框组件
// - ApiSelect: 通过API获取选项的下拉选择框组件
// - TreeSelect: 树形下拉选择框组件
// - ApiTreeSelect: 通过API获取选项的树形下拉选择框组件
// - RadioButtonGroup: 单选框组组件
// - RadioGroup: 单选框组件
// - Checkbox: 复选框组件
// - CheckboxGroup: 复选框组组件
// - AutoComplete: 自动完成输入框组件
// - Cascader: 级联选择框组件
// - DatePicker: 日期选择框组件
// - MonthPicker: 月份选择框组件
// - RangePicker: 范围选择框组件
// - WeekPicker: 周选择框组件
// - TimePicker: 时间选择框组件
// - Switch: 开关组件
// - StrengthMeter: 密码强度组件
// - Upload: 文件上传组件
// - IconPicker: 图标选择框组件
// - Render: 渲染组件
// - Slider: 滑动条组件
// - JAddInput: 动态添加输入框组件
// - CustomMinMaxInput: 自定义最大最小值输入框组件
// - Rate: 评分组件
// - ColorPicker: 颜色选择框组件
// - IconDrawer: 图标抽屉组件
// - ApiUpload: 通过API上传文件组件
// - ApiSearchSelect: 通过API搜索选项的下拉选择框组件
// - StructForm: 结构化表单组件
// - ApiSelectScrollLoad: 通过API滚动加载选项的下拉选择框组件
// - TransferModal: 穿梭框模态框组件
// - TransferTableModal: 穿梭框表格模态框组件
// - ObjectModelValidateForm: 对象模型验证表单组件
