jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
47 lines (46 loc) • 1.68 kB
TypeScript
import type { Api, IIRendererStore, RendererProps, SchemaExpression } from 'jamis-core';
import type { IFormItemStore, IFormStore } from '../types';
export interface ControlOutterProps extends Omit<RendererProps, '$schema'> {
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;
}