import { ReactNode } from 'react'; import { Field, FieldConfig, IField, FieldInterface } from '../common'; import TextField from '../text'; import NumberField from '../number'; import BooleanField from '../switch'; export interface AnyFieldConfig extends FieldConfig, FieldInterface { type: 'any'; } export interface IAnyField { type: 'null' | 'string' | 'number' | 'boolean'; value: null | string | number | boolean; typeContent: ReactNode; valueContent: ReactNode; } export interface IAnyTypeField { type: 'null' | 'string' | 'number' | 'boolean'; onChange: (type: 'null' | 'string' | 'number' | 'boolean') => void; } export default class AnyField extends Field implements IField { TextField: typeof TextField; NumberField: typeof NumberField; BooleanField: typeof BooleanField; handleChangeType: (type: 'null' | 'string' | 'number' | 'boolean') => void; renderTypeComponent: (props: IAnyTypeField) => JSX.Element; renderComponent: (props: IAnyField) => JSX.Element; render: () => JSX.Element; }