import type { Api, IIRendererStore, RendererProps, SchemaExpression } from 'jamis-core'; import type { IFormItemStore, IFormStore } from '../types'; export interface ControlOutterProps extends Omit { formStore?: IFormStore; name?: string; value?: any; id?: string; type?: string; required?: boolean; validations: string | { [propsName: string]: any; }; validationErrors: { [propsName: string]: any; }; validateOnChange: boolean; multiple?: boolean; delimiter?: string; joinValues?: boolean; extractValue?: boolean; valueField?: string; labelField?: string; unique?: boolean; selectFirst?: boolean; autoFill?: any; clearValueOnHidden?: boolean; validateApi?: Api; submitOnChange?: boolean; validate?: (value: any, values: any, name: string) => any; formItem?: IFormItemStore; addHook?: (fn: () => any, type: 'validate' | 'init' | 'flush') => void; removeHook?: (fn: () => any, type: 'validate' | 'init' | 'flush') => void; $schema: RendererProps['$schema'] & { pipeIn?: ((value: any, data: any) => any) | SchemaExpression; pipeOut?: ((value: any, originValue: any, data: any) => any) | SchemaExpression; [propName: string]: any; }; store?: IIRendererStore; onChange?: (value: any, name: string, submit?: boolean, changePristine?: boolean) => void; formItemDispatchEvent?: (type: string, data: any) => void; } export interface ControlProps { onBulkChange?: (values: Object) => void; onChange?: (value: any, name: string, submit: boolean) => void; store: IFormItemStore; }