/// import * as React from "react"; import { AutoCompleteResult } from "focus-components/autocomplete-select"; import { EntityField } from "../entity"; import { Field, FieldProps } from "./field"; /** Options communes à tous les champs. */ export interface BaseOptions { error?: string; isEdit?: boolean; labelKey?: string; name?: string; value?: any; ref?: (field: Field) => void; contentCellPosition?: string; contentOffset?: number; contentSize?: number; hasLabel?: boolean; isRequired?: boolean; label?: string; labelCellPosition?: string; labelOffset?: number; labelSize?: number; } /** Options pour `autocompleteSelectFor`. */ export interface AutocompleteSelectOptions extends AutocompleteTextOptions { keyResolver: (code: string | number) => Promise; } /** Options pour `autocompleteTextFor`. */ export interface AutocompleteTextOptions extends BaseOptions { onChange?: (code: string) => void; querySearcher: (text: string) => Promise; } /** Options pour `fieldForWith` */ export interface FieldOptions extends BaseOptions { DisplayComponent?: ReactComponent; FieldComponent?: ReactComponent; InputComponent?: ReactComponent; LabelComponent?: ReactComponent<{ domain: string; name: string; text: string; }>; } /** Options pour `selectFor`. */ export interface SelectOptions extends BaseOptions { onChange?: (code: T) => void; labelKey?: string; valueKey?: string; values?: { code?: T; id?: T; }[]; } /** Options pour `stringFor` et `textFor`. */ export interface TextOptions { formatter?: (data: any) => string; labelKey?: string; style?: React.CSSProperties; value?: any; valueKey?: string; values?: {}[]; } /** State propre à ComponentWithEntity. */ export interface CWEState { isEdit?: boolean; error?: { [x: string]: string; }; entity?: E; } /** * Crée un champ de type AutocompleteSelect. * @param field La définition de champ. * @param options Les options du champ. */ export declare function autocompleteSelectFor(field: EntityField, options: AutocompleteSelectOptions): JSX.Element; /** * Crée un champ de type AutocompleteText. * @param field La définition de champ. * @param options Les options du champ. */ export declare function autocompleteTextFor(field: EntityField, options: AutocompleteTextOptions): JSX.Element; /** * Crée un champ standard en lecture seule. * @param field La définition de champ. * @param options Les options du champ. */ export declare function displayFor(field: EntityField, options?: BaseOptions & { [key: string]: any; }): JSX.Element; /** * Crée un champ standard. * @param field La définition de champ. * @param options Les options du champ. */ export declare function fieldFor(field: EntityField, options?: BaseOptions & { [key: string]: any; }): JSX.Element; /** * Crée un champ avec des composants personnalisés. * @param field La définition de champ. * @param options Les options du champ. */ export declare function fieldForWith(field: EntityField, options: FieldOptions & DisplayProps & FieldProps & InputProps): JSX.Element; /** * Crée un champ avec résolution de référence. * @param field La définition de champ. * @param listName Le nom de la liste de référence. * @param options Les options du champ. */ export declare function selectFor(field: EntityField, values: { code?: T; id?: T; }[], options?: SelectOptions): JSX.Element; /** * Récupère le texte correspondant à un champ. * @param field La définition de champ. * @param options Les options du champ. */ export declare function stringFor(field: EntityField, options?: TextOptions): string; /** * Affiche un champ sous format texte. * @param field La définition de champ. * @param options Les options du champ. */ export declare function textFor(field: EntityField, options?: TextOptions): JSX.Element; export declare function buildFieldProps(field: EntityField, options?: BaseOptions): FieldProps;