@cosva-lab/form-builder
Version:
React form builder.
31 lines (30 loc) • 1.83 kB
TypeScript
import InputsValidator from '../validate/InputsValidator';
import type { GlobalProps, FieldsProps, EventField, PropsField, EventChangeValue, NameField, GetArrayValues, value } from '../../types';
import { Reducer } from '../types';
import { GetFields } from '../../types';
export declare class FieldsBuilder<Name extends NameField = any, Item extends PropsField<value, Name> = PropsField<value, Name>, Fields extends Item[] = Item[], FieldsObject = Reducer<Fields>, Partial = false> extends InputsValidator<Name, Item, Fields, FieldsObject> {
private _ns?;
get ns(): string | undefined;
set ns(ns: string | undefined);
globalProps?: GlobalProps;
actionsExtra?: object;
get values(): { [Key in keyof FieldsObject]: FieldsObject[Key]; };
private paramsLast?;
constructor(props: FieldsProps<Name, Item, Fields, FieldsObject>);
private setField;
private setFields;
saveData(): void;
restore(): void;
restoreLast(): void;
getValues(): { [Key in keyof FieldsObject]: FieldsObject[Key]; };
get<FieldName extends keyof FieldsObject>(fieldName: FieldName): (Partial extends true ? undefined : never) | GetFields<FieldsObject>[FieldName];
getField<FieldName extends keyof FieldsObject>(fieldName: FieldName): (Partial extends true ? undefined : never) | GetFields<FieldsObject>[FieldName];
onChangeField<Field extends keyof FieldsObject>(event: EventField<FieldsObject[Field], Field>): void;
onChangeFields<Fields extends keyof FieldsObject>(events: GetArrayValues<{
[Field in Fields]: EventField<FieldsObject[Field], Field>;
}>): void;
changeValue({ name, value }: EventChangeValue): void;
changeValues(events: EventChangeValue[]): void;
setValidation(validate: boolean): void;
}
export default FieldsBuilder;