1 | import * as React from "react";
|
2 | import { AbstractPureComponent2, ActionProps, Alignment, IElementRefProps, MaybeElement } from "../../common";
|
3 | import { IconName } from "../icon/icon";
|
4 |
|
5 | export declare type IButtonProps<E extends HTMLButtonElement | HTMLAnchorElement = HTMLButtonElement> = ButtonProps<E>;
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | export interface ButtonProps<E extends HTMLButtonElement | HTMLAnchorElement = HTMLButtonElement> extends ActionProps<HTMLElement>, IElementRefProps<E> {
|
17 | |
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | active?: boolean;
|
24 | |
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | alignText?: Alignment;
|
33 |
|
34 | children?: React.ReactNode;
|
35 |
|
36 | fill?: boolean;
|
37 |
|
38 | large?: boolean;
|
39 | |
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 | loading?: boolean;
|
47 |
|
48 | minimal?: boolean;
|
49 |
|
50 | outlined?: boolean;
|
51 |
|
52 | rightIcon?: IconName | MaybeElement;
|
53 |
|
54 | small?: boolean;
|
55 | |
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 | type?: "submit" | "reset" | "button";
|
62 | }
|
63 |
|
64 | export declare type IAnchorButtonProps = ButtonProps<HTMLAnchorElement>;
|
65 | export declare type AnchorButtonProps = IAnchorButtonProps;
|
66 | export interface IButtonState {
|
67 | isActive: boolean;
|
68 | }
|
69 | export declare abstract class AbstractButton<E extends HTMLButtonElement | HTMLAnchorElement> extends AbstractPureComponent2<ButtonProps<E> & (E extends HTMLButtonElement ? React.ButtonHTMLAttributes<HTMLButtonElement> : React.AnchorHTMLAttributes<HTMLAnchorElement>), IButtonState> {
|
70 | state: {
|
71 | isActive: boolean;
|
72 | };
|
73 | protected abstract buttonRef: HTMLElement | null;
|
74 | private currentKeyDown?;
|
75 | abstract render(): JSX.Element;
|
76 | protected getCommonButtonProps(): {
|
77 | className: string;
|
78 | disabled: boolean | NonNullable<(ButtonProps<E> & (E extends HTMLButtonElement ? React.ButtonHTMLAttributes<HTMLButtonElement> : React.AnchorHTMLAttributes<HTMLAnchorElement>))["disabled"]>;
|
79 | onBlur: (e: React.FocusEvent<any, Element>) => void;
|
80 | onClick: (ButtonProps<E> & (E extends HTMLButtonElement ? React.ButtonHTMLAttributes<HTMLButtonElement> : React.AnchorHTMLAttributes<HTMLAnchorElement>))["onClick"] | undefined;
|
81 | onFocus: (ButtonProps<E> & (E extends HTMLButtonElement ? React.ButtonHTMLAttributes<HTMLButtonElement> : React.AnchorHTMLAttributes<HTMLAnchorElement>))["onFocus"] | undefined;
|
82 | onKeyDown: (e: React.KeyboardEvent<any>) => void;
|
83 | onKeyUp: (e: React.KeyboardEvent<any>) => void;
|
84 | tabIndex: number | (ButtonProps<E> & (E extends HTMLButtonElement ? React.ButtonHTMLAttributes<HTMLButtonElement> : React.AnchorHTMLAttributes<HTMLAnchorElement>))["tabIndex"] | undefined;
|
85 | };
|
86 | protected handleKeyDown: (e: React.KeyboardEvent<any>) => void;
|
87 | protected handleKeyUp: (e: React.KeyboardEvent<any>) => void;
|
88 | protected handleBlur: (e: React.FocusEvent<any>) => void;
|
89 | protected renderChildren(): React.ReactNode;
|
90 | }
|