UNPKG

simplr-forms-dom

Version:
30 lines (29 loc) 1.31 kB
/// <reference types="react" /> import * as React from "react"; import { FieldValue, FieldProps, FieldStoreState } from "simplr-forms/contracts"; import { FormStore } from "simplr-forms/stores"; export interface HTMLElementProps<TElement> extends React.HTMLProps<TElement> { ref?: React.Ref<any>; value?: any; defaultValue?: any; onChange?: FieldOnChangeInternalCallback; children?: React.ReactNode; } export declare type FieldOnChangeInternalCallback = (event: React.FormEvent<any>, ...parameters: any[]) => void; export declare type FieldOnChangeCallback<TElement> = (event: React.FormEvent<TElement>, newValue: FieldValue, fieldId: string, store: FormStore) => void; export interface DomFieldProps extends FieldProps { template?: DomFieldTemplateCallback; onFocus?: React.FocusEventHandler<any>; onBlur?: React.FocusEventHandler<any>; children?: React.ReactNode; } export interface DomFieldDetails { id: string; name: string; fieldGroupId: string; } export interface DomComponentData { props: FieldProps; state: FieldStoreState; } export declare type DomFieldTemplateCallback = (renderField: () => JSX.Element | null, fieldDetails: DomFieldDetails, store: FormStore, componentData: DomComponentData) => JSX.Element | null;