UNPKG

1.27 kBTypeScriptView Raw
1import { IsFlatObject, Noop } from './utils';
2import { RegisterOptions } from './validator';
3export type InternalFieldName = string;
4export type FieldName<TFieldValues extends FieldValues> = IsFlatObject<TFieldValues> extends true ? Extract<keyof TFieldValues, string> : string;
5export type CustomElement<TFieldValues extends FieldValues> = Partial<HTMLElement> & {
6 name: FieldName<TFieldValues>;
7 type?: string;
8 value?: any;
9 disabled?: boolean;
10 checked?: boolean;
11 options?: HTMLOptionsCollection;
12 files?: FileList | null;
13 focus?: Noop;
14};
15export type FieldValue<TFieldValues extends FieldValues> = TFieldValues[InternalFieldName];
16export type FieldValues = Record<string, any>;
17export type NativeFieldValue = string | number | boolean | null | undefined | unknown[];
18export type FieldElement<TFieldValues extends FieldValues = FieldValues> = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | CustomElement<TFieldValues>;
19export type Ref = FieldElement;
20export type Field = {
21 _f: {
22 ref: Ref;
23 name: InternalFieldName;
24 refs?: HTMLInputElement[];
25 mount?: boolean;
26 } & RegisterOptions;
27};
28export type FieldRefs = Partial<Record<InternalFieldName, Field>>;
29//# sourceMappingURL=fields.d.ts.map
\No newline at end of file