/**
* @file TooltipWrapper
* @description
* @author fex
*/
///
import React from 'react';
import { ClassNamesFn } from 'amis-core';
export type Trigger = 'hover' | 'click' | 'focus';
export interface TooltipObject {
/**
* 文字提示标题
*/
title?: string;
/**
* 文字提示内容
*/
content?: string;
/**
* 浮层出现位置
*/
placement?: 'top' | 'right' | 'bottom' | 'left';
/**
* 主题样式
*/
tooltipTheme?: 'light' | 'dark';
/**
* 浮层位置相对偏移量
*/
offset?: [number, number];
/**
* 内容区自定义样式
*/
style?: React.CSSProperties;
/**
* 是否可以移入浮层中, 默认true
*/
enterable?: boolean;
/**
* 是否展示浮层指向箭头
*/
showArrow?: boolean;
/**
* 是否禁用提示
*/
disabled?: boolean;
/**
* 浮层延迟显示时间, 单位 ms
*/
mouseEnterDelay?: number;
/**
* 浮层延迟隐藏时间, 单位 ms
*/
mouseLeaveDelay?: number;
/**
* 浮层内容可通过JSX渲染
*/
children?: () => JSX.Element;
/**
* 挂载容器元素
*/
container?: HTMLElement | (() => HTMLElement | null | undefined);
/**
* 浮层触发方式
*/
trigger?: Trigger | Array;
/**
* 是否点击非内容区域关闭提示,默认为true
*/
rootClose?: boolean;
/**
* 文字提示浮层CSS类名
*/
tooltipClassName?: string;
/**
* 文字提示浮层Body的CSS类名
*/
tooltipBodyClassName?: string;
/**
* html xss filter
*/
filterHtml?: (input: string) => string;
}
export interface TooltipWrapperProps {
tooltip?: string | TooltipObject;
classPrefix: string;
classnames: ClassNamesFn;
placement: 'top' | 'right' | 'bottom' | 'left';
container?: HTMLElement | (() => HTMLElement | null | undefined);
trigger: Trigger | Array;
rootClose: boolean;
overlay?: any;
delay: number;
tooltipTheme?: string;
tooltipClassName?: string;
style?: React.CSSProperties;
/**
* 显示&隐藏时触发
*/
onVisibleChange?: (visible: boolean) => void;
children?: React.ReactNode | Array;
disabled?: boolean;
}
interface TooltipWrapperState {
show?: boolean;
}
export declare class TooltipWrapper extends React.Component {
static defaultProps: Pick;
target: HTMLElement;
timer: ReturnType;
moutned: boolean;
constructor(props: TooltipWrapperProps);
componentWillUnmount(): void;
getTarget(): Element | Text | null;
show(): void;
hide(): void;
getChildProps(): any;
tooltipMouseEnter: (e: MouseEvent) => void;
tooltipMouseLeave: (e: MouseEvent) => void;
handleShow(): void;
handleHide(): void;
handleFocus(e: any): void;
handleBlur(e: any): void;
handleMouseOver(e: any): void;
handleMouseOut(e: any): void;
handleMouseOverOut(handler: Function, e: React.MouseEvent, relatedNative: string): void;
handleClick(e: any): void;
render(): string | number | boolean | React.ReactElement> | Iterable | (React.JSX.Element | null)[] | null | undefined;
}
declare const _default: {
new (props: Pick, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps): {
ref: any;
childRef(ref: any): void;
getWrappedInstance(): any;
render(): React.JSX.Element;
context: unknown;
setState(state: {} | ((prevState: Readonly<{}>, props: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callback?: (() => void) | undefined): void;
readonly props: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>;
state: Readonly<{}>;
refs: {
[key: string]: React.ReactInstance;
};
componentDidMount?(): void;
shouldComponentUpdate?(nextProps: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
componentWillUnmount?(): void;
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
getSnapshotBeforeUpdate?(prevProps: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, prevState: Readonly<{}>): any;
componentDidUpdate?(prevProps: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, prevState: Readonly<{}>, snapshot?: any): void;
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextContext: any): void;
componentWillUpdate?(nextProps: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly, "children" | "disabled" | "tooltip" | "overlay" | "container" | "tooltipTheme" | "tooltipClassName" | "onVisibleChange"> & {
placement?: "left" | "right" | "bottom" | "top" | undefined;
trigger?: Trigger | Trigger[] | undefined;
rootClose?: boolean | undefined;
delay?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
};
displayName: string;
contextType: React.Context;
ComposedComponent: React.ComponentType;
} & import("hoist-non-react-statics").NonReactStatics & {
ComposedComponent: typeof TooltipWrapper;
};
export default _default;