UNPKG

@dock365/refield

Version:
60 lines (59 loc) 2.42 kB
import * as React from 'react'; import { validationTypes, IStringValidationOptions, INumberValidationOptions, IDateValidationOptions, IEmailValidationOptions, IValidationFailMessages, IArrayValidationOptions, IRegExValidationOptions } from '@dock365/validator'; import { IFieldRenderProps as IRenderProps } from "@dock365/reform"; export declare type validationRulesType = (IStringValidationOptions & { type: validationTypes.String; }) | (INumberValidationOptions & { type: validationTypes.Number; }) | (IDateValidationOptions & { type: validationTypes.Date; }) | (IArrayValidationOptions & { type: validationTypes.Array; }) | (IRegExValidationOptions & { type: validationTypes.RegEx; }) | (IEmailValidationOptions & { type: validationTypes.Email; }); export interface IFieldRenderProps extends IRenderProps { defaultValueIsUpdatable?: boolean; className?: string; onClick?: (event: React.MouseEvent<any>) => void; } export declare enum ValidateOnTypes { OnChange = 0, OnBlur = 1 } export interface IFieldProps { name: string; label?: string; placeholder?: string; defaultValue?: any; defaultValueIsUpdatable?: boolean; render: React.ComponentType<IFieldRenderProps>; hideLabel?: boolean; readOnly?: boolean; onChange?: (value: any, name: string, resetFields: () => void) => any; onBlur?: (value: any, name: string, errors: string[], resetFields: () => void) => any; validationRules?: validationRulesType; validate?: true; showAsteriskOnRequired?: boolean; customProps?: any; className?: string; customValidation?: (value?: any, validationRules?: validationRulesType) => string[]; validationMessages?: IValidationFailMessages; onClick?: (event: React.MouseEvent<any>) => void; } export interface IFieldState { value: any; errors: string[]; customErrors: string[]; } export default class Field extends React.Component<IFieldProps, IFieldState> { private validator; constructor(props: IFieldProps); componentDidUpdate(prevProps: IFieldProps): void; render(): React.ReactElement<IFieldRenderProps, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>; private _resetField; private _validateField; private _updateCustomValidationMessage; }