/// import { BlinkIdSingleSideRecognizerResult } from '@microblink/blinkid-in-browser-sdk'; import { FormItemProps, FormInstance } from 'antd/es/form'; import { ReactNode } from 'react'; import { NamePath } from 'rc-field-form/lib/interface'; import { CheckboxOptionType } from 'antd/es/checkbox'; import { SelectProps } from 'antd/es/select'; export { Rule } from 'rc-field-form/lib/interface'; export interface OCRHooks { microBlink?: { initResult: { error?: string; failed: boolean; }; recognize: ((file: File) => Promise) | null; loading?: boolean; }; } export interface OCRConfig { microBlink?: { licenseKey: string; }; } export type FormItemName = NamePath; export interface FormBasicConfig { config: FormItemConfig; className?: string; style?: Object; locales?: { cancelText?: string; submitText?: string; previewText?: string; nextText?: string; continueText?: string; validateMessages?: Object; }; initialValues?: any; form?: FormInstance; onCancel?(): void; onSubmit?(values: Object, allValues?: Object): any; requiredMark?: boolean; showSubmitButton?: boolean; getScrollContainer?: () => HTMLElement | null; onFirstModified?: () => any; uploadApi?: string; selectDatasourceApi?: string; validationRule?: string; getRuleValidationApi?: string; stepDirection?: 'vertical' | 'horizontal'; customizeComponents?: { [name: string]: FC; }; ocr?: OCRConfig; validationCodeExtraParams?: Record; onValuesChange?: (changedValues: any, values: any) => void; } export type FormItemAssert = { field: NamePath; value?: any; operation?: 'eq' | 'ne' | 'in' | 'ni' | 'lt' | 'le' | 'gt' | 'ge' | 'co' | 'nc' | 'filled' | 'unfilled' | 'co-some' | 'co-every' | 'some-in' | 'every-in'; }; export type FormItemCopyValue = { assert: FormItemAssert; copyFrom: NamePath; disabled?: boolean; }; export type FormItemSelectValue = { assert: FormItemAssert; value: any; disabled?: boolean; }; export interface FormItemExtraConfig extends FormItemProps { labelTooltip?: string; elements?: FormItemConfig[]; required?: boolean; requiredAsserts?: FormItemAssert[]; extraLabel?: any; xl?: number; md?: number; xs?: number; span?: number; areaCode?: number | string | (number | string)[]; phoneNumber?: number | string; mergeRules?: boolean; dependencies?: NamePath[]; antdDependencies?: NamePath[]; asserts?: FormItemAssert[]; shouldRender?: (form?: FormInstance) => boolean; ignore?: boolean; copyValue?: FormItemCopyValue; selectValue?: FormItemSelectValue[]; disabled?: boolean | FormItemAssert | FormItemAssert[]; halfRow?: boolean; fullRow?: boolean; limit?: number; hideWhenPreview?: boolean; hideWhenEdit?: boolean; requiredMessage?: string | ReactNode; showOptional?: boolean; previewFormater?(value: any, form?: FormInstance): any; handleNext?(values: any): any; render?(preview: boolean, form?: FormInstance, value?: any, onChange?: (params: any) => any, setShowStepButton?: IglooComponentProps['setShowStepButton']): any; locales?: { [key: string]: string; }; options?: (CheckboxOptionType & { extraInfo?: { content: any; shownTrigger: 'unchecked' | 'checked' | 'all'; }; })[] | SelectProps['options']; sendOtp?: (value: any) => any; dependField?: FormItemName; countDownSeconds?: number; getButtonDisabledState?: (form: FormInstance) => boolean; getPreviousDisabledState?: (form: FormInstance) => boolean; handleUpload?(file: File): PromiseLike; withoutForm?: boolean; disableEditButton?: boolean; hidePreviewDivider?: boolean; valueFormater?: (value: any) => any; currentStep?: number; subscribedFields?: FormItemName[]; description?: string | React.ReactNode; dateLimitationType?: 'relative' | 'absolute'; absoluteRangeStart?: number; absoluteRangeEnd?: number; relativeRangeStart?: { type: 'day' | 'month' | 'year'; quantity: number; pattern?: string; dependField?: NamePath; }; relativeRangeEnd?: { type: 'day' | 'month' | 'year'; quantity: number; pattern?: string; dependField?: NamePath; }; validationCode?: { code: string; errorMessage: string; warningOnly?: boolean; }[]; length?: number; minLength?: number; maxLength?: number; idType?: 'KTP' | 'NIK'; validationRule?: string; shouldRenderCode?: string; disabledCode?: string; automaticCalcCode?: string; enableAutomaticCalc?: boolean; [key: string]: any; } export interface FormItemConfig extends FormItemExtraConfig { type?: string; name?: NamePath; label?: string | React.ReactNode; previewLabel?: string | React.ReactNode; labelProps?: any; contentProps?: any; ocr?: { vender: string; outputMap: { field: string[]; source: string[]; }[]; }; } export type FormItemPropsHandler = (config: FormItemConfig) => FormItemConfig; export interface FC

extends React.FunctionComponent

{ formItemPropsHandler?: FormItemPropsHandler; isPreviewSupport?: boolean; } export interface Form extends React.ForwardRefExoticComponent> { useForm: () => FormInstance; } export interface IglooComponentProps { validateField?: (nameList?: NamePath[]) => Promise; containerRef?: React.RefObject; setFieldError?(errorMsg?: string): void; setFieldValue?(value?: any): void; setShowStepButton?: (showButton: boolean) => void; getFormInstance?: () => FormInstance; locales?: { [key: string]: string; }; }