import type { Cascader, CheckboxGroup, ColorPicker, DatePicker, Divider, Input, InputNumber, RadioGroup, Rate, Select, Slider, Switch, TimePicker, TimeSelect, Upload } from './componentProps'; import type { VNode } from 'vue'; import type { ColEx } from './layout'; import type { FormItemProps as __FormItemProps } from 'element-plus'; import type { AnyObject, Arrayable, FormItemRule } from './global'; interface _FormItemProps extends Omit, 'label'> { label?: string | VNode; render?: VNode; slot?: string; colProps?: Partial; rules?: Arrayable; } type BaseFormSchema = { field: T extends AnyObject ? (keyof T | 'divider') : string; } & _FormItemProps; export type FormSchemaWithComponentProps = C & BaseFormSchema; export type FormSchemaCascader = FormSchemaWithComponentProps, T>; export type FormSchemaCheckboxGroup = FormSchemaWithComponentProps, T>; export type FormSchemaColorPicker = FormSchemaWithComponentProps, T>; export type FormSchemaDatePicker = FormSchemaWithComponentProps, T>; export type FormSchemaDivider = FormSchemaWithComponentProps, T>; export type FormSchemaInput = FormSchemaWithComponentProps, T>; export type FormSchemaInputNumber = FormSchemaWithComponentProps, T>; export type FormSchemaRadioGroup = FormSchemaWithComponentProps, T>; export type FormSchemaRate = FormSchemaWithComponentProps, T>; export type FormSchemaSelect = FormSchemaWithComponentProps, T>; export type FormSchemaSlider = FormSchemaWithComponentProps, T>; export type FormSchemaSwitch = FormSchemaWithComponentProps, T>; export type FormSchemaTimePicker = FormSchemaWithComponentProps, T>; export type FormSchemaTimeSelect = FormSchemaWithComponentProps, T>; export type FormSchemaUpload = FormSchemaWithComponentProps, T>; export type ElFormSchema = FormSchemaCascader | FormSchemaCheckboxGroup | FormSchemaColorPicker | FormSchemaDatePicker | FormSchemaDivider | FormSchemaInput | FormSchemaInputNumber | FormSchemaRadioGroup | FormSchemaRate | FormSchemaSelect | FormSchemaSlider | FormSchemaSwitch | FormSchemaTimePicker | FormSchemaTimeSelect | FormSchemaUpload; export type FormSchema = ElFormSchema; export {};