choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
71 lines (70 loc) • 2.65 kB
TypeScript
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Action } from '../trigger/enum';
import { AdjustOverflow } from './placements';
export declare type TooltipPlacement = 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
export declare type TooltipTheme = 'light' | 'dark';
export declare type RenderFunction = () => React.ReactNode;
export interface TooltipProps {
prefixCls?: string;
suffixCls?: string;
popupClassName?: string;
style?: React.CSSProperties;
popupStyle?: React.CSSProperties;
placement?: TooltipPlacement;
builtinPlacements?: Object;
hidden?: boolean;
defaultHidden?: boolean;
onHiddenChange?: (hidden: boolean) => void;
mouseEnterDelay?: number;
mouseLeaveDelay?: number;
transitionName?: string;
trigger?: Action[];
openClassName?: string;
arrowPointAtCenter?: boolean;
autoAdjustOverflow?: boolean | AdjustOverflow;
title?: React.ReactNode | RenderFunction;
overlay?: React.ReactNode | RenderFunction;
theme?: TooltipTheme;
}
export default class Tooltip extends Component<TooltipProps, any> {
static displayName: string;
static propTypes: {
title: PropTypes.Requireable<any>;
arrowPointAtCenter: PropTypes.Requireable<boolean>;
autoAdjustOverflow: PropTypes.Requireable<boolean>;
defaultHidden: PropTypes.Requireable<boolean>;
mouseEnterDelay: PropTypes.Requireable<number>;
mouseLeaveDelay: PropTypes.Requireable<number>;
placement: PropTypes.Requireable<string>;
trigger: PropTypes.Requireable<(Action | null | undefined)[]>;
hidden: PropTypes.Requireable<boolean>;
onHiddenChange: PropTypes.Requireable<(...args: any[]) => any>;
suffixCls: PropTypes.Requireable<string>;
transitionName: PropTypes.Requireable<string>;
theme: PropTypes.Requireable<string>;
};
static defaultProps: {
suffixCls: string;
placement: string;
transitionName: string;
mouseEnterDelay: number;
mouseLeaveDelay: number;
arrowPointAtCenter: boolean;
autoAdjustOverflow: boolean;
theme: string;
defaultHidden: boolean;
trigger: Action[];
};
state: {
translate: {
x: number;
y: number;
};
};
get prefixCls(): string;
get placements(): any;
getContent(): any;
handlePopupAlign(_source: any, _align: any, _target: any, translate: any): void;
render(): JSX.Element | null;
}