@logilab/cwelements
Version:
Library of reusable React components for building web application with cubicweb
90 lines (89 loc) • 6 kB
TypeScript
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;
}