@wener/ui
Version:
48 lines (47 loc) • 1.7 kB
TypeScript
import { OptionLike } from './options';
import React from 'react';
export declare type Widget = string | React.ReactNode | React.ComponentClass | React.FunctionComponent | ((item: any) => React.ReactNode);
export interface FormFieldProps {
key: string;
name?: string | string[];
label?: string | React.ReactNode;
defaultValue?: any;
autoFocus?: boolean;
disabled?: boolean;
readOnly?: boolean;
placeholder?: any;
widget?: Widget;
widgetComponent?: React.ElementType;
widgetProps?: any;
required?: boolean;
options?: OptionLike;
rules?: any[];
render?: (props: {
field: FormFieldProps;
}) => any;
getValueFromEvent?: (...args: any[]) => any;
normalize?: (value: any, prevValue: any, prevValues: any) => any;
help?: React.ReactNode;
extra?: React.ReactNode;
fieldProps?: any;
trigger?: string;
valuePropName?: string;
validateTrigger?: string | string[];
[k: string]: any;
}
export interface FormBuilderOptions {
widgets?: Widget[];
}
export declare function normalizeField(item: FormFieldProps, normalizers?: Array<(v: FormFieldProps) => FormFieldProps>): FormFieldProps;
export declare const Widgets: Record<string, Widget>;
export declare function buildInitialValues(fields: FormFieldProps[]): any;
export interface FormFieldBuilderProps extends FormBuilderOptions {
field: FormFieldProps;
pure?: boolean;
}
export declare const FormFieldBuilder: React.FC<FormFieldBuilderProps>;
export interface FormFieldsBuilderOptions extends FormBuilderOptions {
fields: FormFieldProps[];
pure?: boolean;
}
export declare const FormFieldsBuilder: React.FC<FormFieldsBuilderOptions>;