import type { ExtractPropTypes, PropType } from 'vue'
import {
  makeAnyProp,
  makeBasicProp,
  makeBooleanProp,
  makeStringProp,
  makeNumericProp,
} from '../utils'

export const horCellProps = {
  label: makeBasicProp(''),
  value: makeAnyProp(''),
  direction: makeStringProp<'row' | 'column'>('row'),
  arrow: makeBooleanProp(false),
  required: makeBooleanProp(false),
  noAsterisk: makeBooleanProp(false), // 不显示必填红星
  ellipsis: makeBooleanProp(false),
  lineClamp: makeNumericProp(''),
  icon: makeStringProp(''),
  iconSize: makeNumericProp('inherit'),
  alignItemCenter: makeBooleanProp(false),
  clickable: makeBooleanProp(false),
  formatter: {
    default: (v: any) => v,
    type: Function as PropType<(v: any) => any>,
  },
}

export type HorCellProps = ExtractPropTypes<typeof horCellProps>
