UNPKG

kea-react

Version:

Componentes comunes de react

122 lines (121 loc) 4.65 kB
/// <reference types="react" /> import React = require('react'); import { Rxfy } from "react-rxk"; import * as rx from "rxjs"; /**Propiedades del botón */ export interface BaseButtonProps { /**Accion que se ejecuta cuando el usuario presiona el botón guardar */ onClick?: () => PromiseLike<void> | void; disabled?: boolean | Promise<boolean> | rx.Observable<boolean>; tooltip?: string; block?: boolean; } export interface PromiseActionProps { onClick?: () => PromiseLike<void> | void; buttonFactory: (onClick?: () => void) => JSX.Element | null; cargandoComponent?: JSX.Element | null; errorFactory?: (error: string | number, onClick?: () => void) => JSX.Element | null; } export interface PromiseButtonState { Promise?: PromiseLike<void> | void; } /**Boton que acepta un metodo asíncrono en el on-click y que se deshabilita mientras se esta * ejecutando la promesa */ export declare class PromiseAction extends React.PureComponent<PromiseActionProps, PromiseButtonState> { constructor(props: any); click(): Promise<void>; handleRequest: () => Promise<void>; map: () => JSX.Element | null; render(): JSX.Element; } export declare type BootstrapButtonStyle = "default" | "primary" | "success" | "info" | "warning" | "danger" | "link"; export interface ButtonProps extends BaseButtonProps { /**Estilo del botón de bootstrap. Por default es "default" */ style?: BootstrapButtonStyle; /**True para poner el estilo de block en el botón, lo que hace que ocupe todo el espacio de la celda */ block?: boolean; /**Clase del icono o indefinido para no mostrar un icono */ iconClass?: string; } export declare const Button: (props: Rxfy<ButtonProps>) => JSX.Element; export declare class BootstrapButton extends React.PureComponent<ButtonProps, {}> { constructor(props: any); render(): React.SFCElement<Rxfy<ButtonProps>>; } /**Botón de agregar*/ export declare class AgregarButton extends React.PureComponent<BaseButtonProps, {}> { render(): JSX.Element; } /**Boton de guardar*/ export declare class GuardarButton extends React.PureComponent<BaseButtonProps, {}> { render(): JSX.Element; } /**Boton de borrar*/ export declare class BorrarButton extends React.PureComponent<BaseButtonProps, {}> { render(): JSX.Element; } /**Boton de cancelar*/ export declare class CancelarButton extends React.PureComponent<BaseButtonProps, {}> { render(): JSX.Element; } /**Botón para buscar */ export declare class BuscarButton extends React.PureComponent<BaseButtonProps> { render(): JSX.Element; } /**Boton para ir hacia atras en la navegación, si no se establece el on click, viaja hacia atras en la navegación * por default */ export declare class RegresarButton extends React.PureComponent<{ onClick?: () => void | Promise<void>; block?: boolean; }, {}> { handleOnClick: () => void; render(): JSX.Element; } /**Un botón con forma de un icono */ export declare class Link extends React.PureComponent<ButtonProps, {}> { static colors: { default: undefined; primary: string; success: string; info: string; warning: string; danger: string; link: string; }; buttonFactory: (onClick: (() => void) | undefined, cargando: boolean) => JSX.Element; errorFactory: (error: any, onClick: () => void) => JSX.Element; render(): JSX.Element; } export declare class IconButton extends React.PureComponent<ButtonProps, {}> { constructor(props: any); render(): React.ComponentElement<ButtonProps, Link>; } /**Boton para borrar un elemento de un listado. Tiene el icono del bote de basura */ export declare class BorrarIcon extends React.PureComponent<{ onClick: () => void; }, {}> { render(): JSX.Element; } /**Boton para editar un elemento de un listado. Tiene el icono del lapiz */ export declare class EditButton extends React.PureComponent<{ onClick: () => void; }, {}> { render(): JSX.Element; } /**Botón para ver un elemento de un listado. Tiene el icono del ojo */ export declare class VerButton extends React.PureComponent<{ onClick: () => void; }> { render(): JSX.Element; } /**Propiedades de los botones por default de una fila */ export interface RowButtonProps { onEdit?: () => void; onDelete?: () => void; } /**Botones de una fila de un catalogo, que son el de editar y el de borrar */ export declare class RowButtons extends React.PureComponent<RowButtonProps, {}> { render(): JSX.Element; }