UNPKG

@logilab/cwelements

Version:

Library of reusable React components for building web application with cubicweb

90 lines (89 loc) 6 kB
import * as React from 'react'; import { EntityAttributeProps, EntityAttributeState, EntityAttribute } from './EntityAttribute'; /** * State for this component */ export interface EnumEntityAttributeState extends EntityAttributeState { /** * Index of the selected value */ selectedIndex: number; } /** * Parameters for an attribute with enumerable valid values */ export interface EnumEntityAttributeProps extends EntityAttributeProps { /** * The valid values for the attribute */ values: any[]; /** * Event when the value for the attribute is changed by the user * @param component The current component (this) * @param event The original HTML input event */ onFieldEditEnum: (component: EnumEntityAttribute, event: React.FormEvent<HTMLSelectElement>) => void; } /** * The default props for a enum entity attribute */ export declare const ENUM_ENTITY_ATTRIBUTE_DEFAULT_PROPS: { onFieldEditEnum: (component: EnumEntityAttribute, event: React.FormEvent<HTMLSelectElement>) => void; renderInput: (component: EnumEntityAttribute) => JSX.Element; getter: (entity: import("@logilab/cwclientlibjs/build/providers").Entity, attribute: import("@logilab/cwclientlibjs/build/providers").EntityAttributeSchema) => any; disabled: boolean; isRequired: (attribute: import("@logilab/cwclientlibjs/build/providers").EntityAttributeSchema) => boolean; className: string; invalidClassName: string; validateValue: typeof import("./commons").defaultAttributeValidation; onFieldChange: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, event: React.FormEvent<HTMLInputElement>) => void; onFieldBlur: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, event: React.FormEvent<HTMLInputElement>) => void; onFieldInputEnded: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, input: string) => void; onFieldEditedValue: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, value: any) => void; onSaveClicked: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, value: any) => void; attributeHasBeenSaved: (_entity: import("@logilab/cwclientlibjs/build/providers").Entity, _attribute: import("@logilab/cwclientlibjs/build/providers").EntityAttributeSchema, _value: any) => void; attributeSavingError: (_entity: import("@logilab/cwclientlibjs/build/providers").Entity, _attribute: import("@logilab/cwclientlibjs/build/providers").EntityAttributeSchema, _value: any, _error: string) => void; renderTitle: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>) => JSX.Element; renderSaveButton: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>) => JSX.Element; renderValidation: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>) => JSX.Element | null; render: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>) => JSX.Element; }; /** * Builds a state from the given props * @param props The current props */ export declare function getEnumEntityAttributeStateFromProps(props: EnumEntityAttributeProps): EnumEntityAttributeState; /** * Component for rendering an entity attribute with enumerable valid values */ export declare class EnumEntityAttribute extends EntityAttribute<EnumEntityAttributeProps, EnumEntityAttributeState> { static defaultProps: { onFieldEditEnum: (component: EnumEntityAttribute, event: React.FormEvent<HTMLSelectElement>) => void; renderInput: (component: EnumEntityAttribute) => JSX.Element; getter: (entity: import("@logilab/cwclientlibjs/build/providers").Entity, attribute: import("@logilab/cwclientlibjs/build/providers").EntityAttributeSchema) => any; disabled: boolean; isRequired: (attribute: import("@logilab/cwclientlibjs/build/providers").EntityAttributeSchema) => boolean; className: string; invalidClassName: string; validateValue: typeof import("./commons").defaultAttributeValidation; onFieldChange: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, event: React.FormEvent<HTMLInputElement>) => void; onFieldBlur: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, event: React.FormEvent<HTMLInputElement>) => void; onFieldInputEnded: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, input: string) => void; onFieldEditedValue: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, value: any) => void; onSaveClicked: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>, value: any) => void; attributeHasBeenSaved: (_entity: import("@logilab/cwclientlibjs/build/providers").Entity, _attribute: import("@logilab/cwclientlibjs/build/providers").EntityAttributeSchema, _value: any) => void; attributeSavingError: (_entity: import("@logilab/cwclientlibjs/build/providers").Entity, _attribute: import("@logilab/cwclientlibjs/build/providers").EntityAttributeSchema, _value: any, _error: string) => void; renderTitle: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>) => JSX.Element; renderSaveButton: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>) => JSX.Element; renderValidation: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>) => JSX.Element | null; render: (component: EntityAttribute<EntityAttributeProps, EntityAttributeState>) => JSX.Element; }; state: EnumEntityAttributeState; timeout: number | undefined; _isMounted: boolean; constructor(props: Readonly<EnumEntityAttributeProps>); componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(prevProps: EntityAttributeProps, prevState: EntityAttributeState, snapshot: any): void; render(): JSX.Element; }