UNPKG

choerodon-ui

Version:

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

240 lines (239 loc) 7.22 kB
import { AriaAttributes, ClipboardEventHandler, Component, CompositionEventHandler, CSSProperties, FocusEventHandler, Key, KeyboardEventHandler, MouseEventHandler, ReactNode } from 'react'; import ConfigContext, { ConfigContextValue } from '../../../lib/config-provider/ConfigContext'; import { Config, ConfigKeys, DefaultConfig } from '../../../lib/configure'; import { Size } from './enum'; import { Lang } from '../locale-context/enum'; declare type Booleanish = boolean | 'true' | 'false'; export interface ElementProps { /** * 组件id */ id?: string; /** * 键盘Tab键焦点序号,设为-1时不会获得焦点,设为0时为节点树的顺序。 */ tabIndex?: number; /** * 组件key */ key?: Key; /** * 样式后缀 */ suffixCls?: string; /** * 样式前缀 */ prefixCls?: string; /** * 外层自定义样式名 */ className?: string | undefined; /** * 实际元素自定义样式名 */ elementClassName?: string; /** * 内链样式 */ style?: CSSProperties | undefined; /** * 是否隐藏 */ hidden?: boolean; /** * 语言 */ lang?: Lang; /** * 拼写校验 */ spellCheck?: Booleanish; /** * 自动获取焦点,多个组件同时设置该参数时,以节点树的顺序最末的组件获取焦点 */ autoFocus?: boolean; /** * 内容的文本方向 */ dir?: string; /** * 快捷键, 通过 Alt + accessKey (或者 Shift + Alt + accessKey) 使组件聚焦 */ accessKey?: string; /** * 内容可编辑 */ contentEditable?: Booleanish | 'inherit'; /** * 是否可拖动 */ draggable?: Booleanish; } /** 响应鼠标事件组件 */ export interface MouseEventComponentProps { /** * 右键单击回调 */ onAuxClick?: MouseEventHandler<any>; onAuxClickCapture?: MouseEventHandler<any>; /** * 单击回调 */ onClick?: MouseEventHandler<any>; onClickCapture?: MouseEventHandler<any>; /** * 双击回调 */ onDoubleClick?: MouseEventHandler<any>; onDoubleClickCapture?: MouseEventHandler<any>; /** * 右键菜单回调 */ onContextMenu?: MouseEventHandler<any>; onContextMenuCapture?: MouseEventHandler<any>; /** * 鼠标抬起回调 */ onMouseUp?: MouseEventHandler<any>; onMouseUpCapture?: MouseEventHandler<any>; /** * 鼠标点下回调 */ onMouseDown?: MouseEventHandler<any>; onMouseDownCapture?: MouseEventHandler<any>; /** * 鼠标移动回调 */ onMouseMove?: MouseEventHandler<any>; onMouseMoveCapture?: MouseEventHandler<any>; /** * 鼠标进入回调 */ onMouseEnter?: MouseEventHandler<any>; onMouseEnterCapture?: MouseEventHandler<any>; /** * 鼠标离开回调 */ onMouseLeave?: MouseEventHandler<any>; onMouseLeaveCapture?: MouseEventHandler<any>; /** * 鼠标进入回调,与onMouseEnter区别在于鼠标进入子节点时会触发onMouseOut */ onMouseOver?: MouseEventHandler<any>; onMouseOverCapture?: MouseEventHandler<any>; /** * 鼠标离开回调,与onMouseLeave区别在于子节点的onMouseout会冒泡触发本回调 */ onMouseOut?: MouseEventHandler<any>; onMouseOutCapture?: MouseEventHandler<any>; } /** 响应键盘事件组件 */ export interface KeyboardEventComponentProps { /** * 键盘按下时的回调 */ onKeyDown?: KeyboardEventHandler<any>; onKeyDownCapture?: KeyboardEventHandler<any>; /** * 键盘抬起时的回调 */ onKeyUp?: KeyboardEventHandler<any>; onKeyUpCapture?: KeyboardEventHandler<any>; /** * 键盘敲击后的回调 */ onKeyPress?: KeyboardEventHandler<any>; onKeyPressCapture?: KeyboardEventHandler<any>; } /** 焦点事件组件 */ export interface FocusEventComponentProps { /** * 获取焦点回调 */ onFocus?: FocusEventHandler<any>; onFocusCapture?: FocusEventHandler<any>; /** * 失去焦点回调 */ onBlur?: FocusEventHandler<any>; onBlurCapture?: FocusEventHandler<any>; } /** 粘贴板事件组件 */ export interface ClipboardEventComponentProps { onCopy?: ClipboardEventHandler<any>; onCopyCapture?: ClipboardEventHandler<any>; onCut?: ClipboardEventHandler<any>; onCutCapture?: ClipboardEventHandler<any>; onPaste?: ClipboardEventHandler<any>; onPasteCapture?: ClipboardEventHandler<any>; } /** Composition事件组件 */ export interface CompositionEventComponentProps { onCompositionEnd?: CompositionEventHandler<any>; onCompositionEndCapture?: CompositionEventHandler<any>; onCompositionStart?: CompositionEventHandler<any>; onCompositionStartCapture?: CompositionEventHandler<any>; onCompositionUpdate?: CompositionEventHandler<any>; onCompositionUpdateCapture?: CompositionEventHandler<any>; } export interface ViewComponentProps extends MouseEventComponentProps, KeyboardEventComponentProps, FocusEventComponentProps, ClipboardEventComponentProps, CompositionEventComponentProps, AriaAttributes, ElementProps { /** * 唯一标识编码 */ code?: boolean; /** * 是否禁用 */ disabled?: boolean; /** * 悬浮提示,建议用ToolTip组件 */ title?: ReactNode; /** * 组件大小<未实现> * 可选值 `default` `small` `large` */ size?: Size; } export default class ViewComponent<P extends ViewComponentProps, C extends ConfigContextValue = ConfigContextValue> extends Component<P, any> { static get contextType(): typeof ConfigContext; element: any; height: number | string | undefined; wrapper: any; isFocus: boolean; code: string; isFocused: boolean; observableProps: any; prefixCls?: string; context: C; get lang(): Lang; get disabled(): boolean; constructor(props: any, context: any); setCode(props: any): void; getMergedClassNames(...props: any[]): string; getMergedProps(props?: {}): any; getObservableProps(props: any, _context: any): any; setObservableProps(props: any, context: any): void; updateObservableProps(props: any, context: any): void; getOmitPropsKeys(): string[]; getOtherProps(): any; getClassName(...props: any[]): string | undefined; getWrapperProps(props?: any): any; getWrapperClassNames(...args: any[]): string; isDisabled(): boolean; useFocusedClassName(): boolean; handleFocus(e: any): void; protected forceBlur(e: any): void; handleBlur(e: any): void; focus(): void; blur(): void; elementReference(node: any): void; wrapperReference(node: any): void; componentWillReceiveProps(nextProps: P, nextContext: any): void; componentDidMount(): void; setHeight(height: any): void; getContextConfig<T extends ConfigKeys>(key: T): T extends keyof DefaultConfig ? DefaultConfig[T] : Config[T]; getContextProPrefixCls(suffixCls: string, customizePrefixCls?: string): string; } export {};