import type { ExtractPropTypes } from 'vue'
import {
  makeArrayProp,
  makeStringProp,
  makeBooleanProp,
  makeNumberProp,
  type Looser,
} from '../utils'

export type SourcesItem = Looser<{
  label: string
  name: string | number
}>

export type AnchorItem = {
  anchor: number | string
  children: SourcesItem[]
}
export const horSelectPopupProps = {
  sources: makeArrayProp<AnchorItem | SourcesItem>(),
  title: makeStringProp('请您选择'),
  modelValue: makeArrayProp<string | number | SourcesItem>(),
  search: makeBooleanProp(true),
  showCheckBlock: makeBooleanProp(true),
  max: makeNumberProp(9999),
  maxMessage: makeStringProp(''),
}

export type HorSelectPopupProps = ExtractPropTypes<typeof horSelectPopupProps>
