UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

175 lines (174 loc) 6.14 kB
import React, { ReactNode } from 'react'; import PropTypes from 'prop-types'; import { Cancelable } from 'lodash'; import { ButtonColor, ButtonTooltip, ButtonType, FuncType } from './enum'; import { Size, WaitType } from '../core/enum'; import DataSetComponent, { DataSetComponentProps } from '../data-set/DataSetComponent'; export interface ButtonProps extends DataSetComponentProps { /** * 按钮展现形式 * @default 'raised' */ funcType?: FuncType; /** * 按钮颜色风格 * @default 'default' */ color?: ButtonColor; /** * 按钮是否是加载状态 */ loading?: boolean; /** * 按钮图标 */ icon?: string; /** * 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 */ href?: string; /** * 相当于 a 链接的 target 属性,href 存在时生效 */ target?: string; /** * 点击间隔时间 */ wait?: number; /** * 点击间隔类型,可选值:throttle | debounce * @default throttle */ waitType?: WaitType; /** * 用tooltip显示按钮内容 * 可选值:`none` `always` `overflow` */ tooltip?: ButtonTooltip; /** * 按钮类型 * @default 'button' */ type?: ButtonType; block?: boolean; name?: string; value?: any; form?: string; formAction?: string; formEncType?: string; formMethod?: string; formNoValidate?: boolean; formTarget?: string; children?: ReactNode; } export default class Button extends DataSetComponent<ButtonProps> { static displayName: string; static __PRO_BUTTON: boolean; static get contextType(): React.Context<import("../form/FormContext").FormContextValue>; static propTypes: { id: PropTypes.Requireable<string>; size: PropTypes.Requireable<Size>; suffixCls: PropTypes.Requireable<string>; prefixCls: PropTypes.Requireable<string>; title: PropTypes.Requireable<PropTypes.ReactNodeLike>; disabled: PropTypes.Requireable<boolean>; hidden: PropTypes.Requireable<boolean>; autoFocus: PropTypes.Requireable<boolean>; accessKey: PropTypes.Requireable<string | boolean>; dir: PropTypes.Requireable<string>; contentEditable: PropTypes.Requireable<string | boolean>; draggable: PropTypes.Requireable<string | boolean>; style: PropTypes.Requireable<object>; className: PropTypes.Requireable<string>; tabIndex: PropTypes.Requireable<number>; lang: PropTypes.Requireable<string>; spellCheck: PropTypes.Requireable<boolean>; onFocus: PropTypes.Requireable<(...args: any[]) => any>; onBlur: PropTypes.Requireable<(...args: any[]) => any>; onClick: PropTypes.Requireable<(...args: any[]) => any>; onDoubleClick: PropTypes.Requireable<(...args: any[]) => any>; onMouseUp: PropTypes.Requireable<(...args: any[]) => any>; onMouseDown: PropTypes.Requireable<(...args: any[]) => any>; onMouseMove: PropTypes.Requireable<(...args: any[]) => any>; onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>; onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>; onMouseOver: PropTypes.Requireable<(...args: any[]) => any>; onMouseOut: PropTypes.Requireable<(...args: any[]) => any>; onContextMenu: PropTypes.Requireable<(...args: any[]) => any>; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; onKeyUp: PropTypes.Requireable<(...args: any[]) => any>; onKeyPress: PropTypes.Requireable<(...args: any[]) => any>; dataSet: PropTypes.Requireable<object>; /** * 按钮展现模式 * 可选值:'flat' | 'raised' * @default raised */ funcType: PropTypes.Requireable<FuncType>; /** * 按钮颜色风格 * 可选值:'default' | 'primary' | 'gray' | 'blue' | 'red' | 'green' | 'yellow' | 'purple' | 'dark' * @default 'default' */ color: PropTypes.Requireable<ButtonColor>; /** * 按钮类型 * 可选值:'button' | 'submit' | 'reset' * @default 'button' */ type: PropTypes.Requireable<ButtonType>; /** * 按钮是否是加载状态 */ loading: PropTypes.Requireable<boolean>; /** * 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 */ href: PropTypes.Requireable<string>; /** * 相当于 a 链接的 target 属性,href 存在时生效 */ target: PropTypes.Requireable<string>; /** * 点击等待时间 */ wait: PropTypes.Requireable<number>; /** * 点击间隔类型,可选值:throttle | debounce * @default throttle */ waitType: PropTypes.Requireable<WaitType>; /** * 用tooltip显示按钮内容 * 可选值:`none` `always` `overflow` */ tooltip: PropTypes.Requireable<string>; /** * 将按钮宽度调整为其父宽度的选项 */ block: PropTypes.Requireable<boolean>; }; static defaultProps: { suffixCls: string; type: ButtonType; waitType: WaitType; }; get loading(): boolean; set loading(loading: boolean); isTooltipShown?: boolean; handleClickWait: Function & Cancelable; constructor(props: any, context: any); getObservableProps(props: any, context: any): any; componentWillReceiveProps(nextProps: any, nextContext: any): void; componentWillUnmount(): void; getHandleClick(props: any): Function & Cancelable; handleClickIfBubble(e: any): void; handleClick(e: any): Promise<void>; handleMouseEnter(e: any): void; handleMouseLeave(e: any): void; isDisabled(): boolean; getOmitPropsKeys(): string[]; getOtherProps(): any; getClassName(...props: any[]): string | undefined; render(): JSX.Element; }