UNPKG

@pk-design/react-ui-kit

Version:
111 lines (110 loc) 3.1 kB
import { TransformFunction } from 'yup/es/types'; import FormData from './form-data'; export declare type FieldComponents = 'TextInput' | 'TextArea' | 'Checkbox' | 'Checkbox.Group' | 'Select' | 'Radio' | 'Radio.Group' | 'DatePicker' | 'MonthPicker' | 'Custom'; export declare type FieldTypes = 'text' | 'tel' | 'string' | 'email' | 'url' | 'password' | 'number' | 'date' | 'datetime' | 'boolean' | 'bool' | 'array' | 'object' | 'nested'; interface ErrorMessageAttrs { required?: string; email?: string; url?: string; default?: string; exactLength?: string; } export interface FieldValidationAttrs { enum?: Array<any>; min?: number | Date; max?: number | Date; length?: number; when?: Array<any>; pattern?: RegExp; transform?: TransformFunction<any>; errorMessage?: ErrorMessageAttrs; } export interface FormFields extends FieldValidationAttrs { name: string; label?: string; placeholder?: string; getter?: Function; type?: FieldTypes; customComponent?: any; component?: FieldComponents; componentProps?: any; onInputChange?: Function; default?: any; required?: boolean; disabled?: boolean; hidden?: boolean; nullable?: boolean; editable?: boolean; optional?: boolean; disabledIf?: Function; hiddenIf?: Function; maxLength?: number; translateOptions?: any; group?: boolean; groupTitle?: string; groupType?: 'row' | 'column'; groupClass?: string; fields?: Array<FormFields>; [k: string]: any; } export interface FormState { formData: FormData; errors?: object; genericError: any; submitting?: boolean; dirty?: boolean; startValidate?: boolean; } export interface IconProps { left?: any; right?: any; } export interface ServiceProps { [k: string]: Function; } export interface FormProps { idField?: string; onSubmit?: Function; service?: ServiceProps; createMethod?: string; updateMethod?: string; fields: Array<FormFields>; data: object; stickyFooter?: boolean; loading?: boolean; loadingText?: any; disabled?: boolean; submitBtnText?: string; submitBtnIcon?: IconProps; showCancelBtn?: boolean; cancelBtnText?: string; cancelBtnIcon?: IconProps; onCancel?: Function; name: string; onSuccess?: Function; onError?: Function; extra?: any; customValidation?: Function; constructParams?: Function; t?: Function; ignoreDefaultTranslationOption?: boolean; submitOnlyIfValid?: boolean; abortEarly?: boolean; stripUnchanged?: boolean; beforeUpdate?: (obj: object, data: object) => object; } export interface FieldRules { name: string; method?: any; message?: any; validationProps: object; formatter?: Function; ctx?: any; } export interface AttributesType { [key: string]: Array<any>; } export interface ChangedAttributesType { [key: string]: any; } export {};