UNPKG

choerodon-ui

Version:

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

128 lines (127 loc) 5.17 kB
import React, { Component, CSSProperties, Key, ReactNode } from 'react'; import PropTypes from 'prop-types'; import Popup from './Popup'; import TaskRunner from '../_util/TaskRunner'; import { ElementProps } from '../core/ViewComponent'; import EventManager from '../_util/EventManager'; import { Action, HideAction, ShowAction } from './enum'; export interface TriggerProps extends ElementProps { action?: Action[]; showAction?: ShowAction[]; hideAction?: HideAction[]; popupContent?: ReactNode | ((props: any) => ReactNode); popupCls?: string; popupStyle?: CSSProperties; popupHidden?: boolean; popupPlacement?: string; popupAlign?: object; builtinPlacements?: any; onPopupAlign?: (source: Node, align: object, target: Node | Window, translate: { x: number; y: number; }) => void; onPopupAnimateAppear?: (key: Key | null) => void; onPopupAnimateEnter?: (key: Key | null) => void; onPopupAnimateLeave?: (key: Key | null) => void; onPopupAnimateEnd?: (key: Key | null, exists: boolean) => void; onPopupHiddenChange?: (hidden: boolean) => void; getRootDomNode?: () => Element | null | Text; getPopupStyleFromAlign?: (target: Node | Window, align: object) => object | undefined; getPopupClassNameFromAlign?: (align: object) => string | undefined; getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement; focusDelay?: number; blurDelay?: number; mouseEnterDelay?: number; mouseLeaveDelay?: number; transitionName?: string; defaultPopupHidden?: boolean; popupClassName?: string; onMouseDown?: (event: React.MouseEvent<any, MouseEvent>) => void; } export default class Trigger extends Component<TriggerProps> { static displayName: string; static propTypes: { action: React.Requireable<any>; showAction: React.Requireable<any>; hideAction: React.Requireable<any>; popupContent: PropTypes.Requireable<PropTypes.ReactNodeLike>; popupCls: PropTypes.Requireable<string>; popupStyle: PropTypes.Requireable<object>; popupHidden: PropTypes.Requireable<boolean>; popupPlacement: PropTypes.Requireable<string>; popupAlign: PropTypes.Requireable<object>; builtinPlacements: PropTypes.Requireable<any>; onPopupAnimateAppear: PropTypes.Requireable<(...args: any[]) => any>; onPopupAnimateEnter: PropTypes.Requireable<(...args: any[]) => any>; onPopupAnimateLeave: PropTypes.Requireable<(...args: any[]) => any>; onPopupAnimateEnd: PropTypes.Requireable<(...args: any[]) => any>; onPopupAlign: PropTypes.Requireable<(...args: any[]) => any>; onPopupHiddenChange: PropTypes.Requireable<(...args: any[]) => any>; getPopupStyleFromAlign: PropTypes.Requireable<(...args: any[]) => any>; getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>; focusDelay: PropTypes.Requireable<number>; blurDelay: PropTypes.Requireable<number>; mouseEnterDelay: PropTypes.Requireable<number>; mouseLeaveDelay: PropTypes.Requireable<number>; transitionName: PropTypes.Requireable<string>; defaultPopupHidden: PropTypes.Requireable<boolean>; popupClassName: PropTypes.Requireable<string>; onMouseDown: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { focusDelay: number; blurDelay: number; mouseEnterDelay: number; mouseLeaveDelay: number; transitionName: string; defaultPopupHidden: boolean; }; isClickScrollbar: { value: boolean; }; popup: Popup | null; popupTask: TaskRunner; documentEvent: EventManager; focusTime: number; preClickTime: number; animateFrameId: number; popupHidden?: boolean; mounted?: boolean; constructor(props: any, context: any); saveRef: (node: any) => any; render(): ({} | null | undefined)[]; componentWillReceiveProps(nextProps: any): void; componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; handleEvent(eventName: any, child: any, e: any): void; handleContextMenu(e: any): void; handleFocus(): void; handleBlur(): void; handleDocumentMouseDown(e: any): void; handleDocumentScroll({ target }: { target: any; }): void; handleMouseDown(): void; handleClick(e: any): void; handleMouseEnter(): void; handleMouseLeave(): void; handlePopupMouseEnter(): void; handlePopupMouseLeave(): void; getPopup(): ReactNode; getPopupAlign(): any; handlePopupMouseDown(e: any): void; handlePopupMouseUp(): void; getRootDomNode(): Element | Text | null; getPopupClassNameFromAlign(align: any): string; forcePopupAlign(): void; setPopupHidden(hidden: any): void; delaySetPopupHidden(popupHidden: any, delay: any): void; isClickToShow(): boolean; isContextMenuToShow(): boolean; isClickToHide(): boolean; isMouseEnterToShow(): boolean; isMouseLeaveToHide(): boolean; isFocusToShow(): boolean; isBlurToHide(): boolean; }