1 | import PropTypes from 'prop-types';
|
2 | import * as React from 'react';
|
3 | import { OverlayChildren, OverlayProps } from './Overlay';
|
4 | export declare type OverlayTriggerType = 'hover' | 'click' | 'focus';
|
5 | export declare type OverlayDelay = number | {
|
6 | show: number;
|
7 | hide: number;
|
8 | };
|
9 | export declare type OverlayInjectedProps = {
|
10 | onFocus?: (...args: any[]) => any;
|
11 | };
|
12 | export declare type OverlayTriggerRenderProps = OverlayInjectedProps & {
|
13 | ref: React.Ref<any>;
|
14 | };
|
15 | export interface OverlayTriggerProps extends Omit<OverlayProps, 'children' | 'target'> {
|
16 | children: React.ReactElement | ((props: OverlayTriggerRenderProps) => React.ReactNode);
|
17 | trigger?: OverlayTriggerType | OverlayTriggerType[];
|
18 | delay?: OverlayDelay;
|
19 | show?: boolean;
|
20 | defaultShow?: boolean;
|
21 | onToggle?: (nextShow: boolean) => void;
|
22 | flip?: boolean;
|
23 | overlay: OverlayChildren;
|
24 | target?: never;
|
25 | onHide?: never;
|
26 | }
|
27 | declare function OverlayTrigger({ trigger, overlay, children, popperConfig, show: propsShow, defaultShow, onToggle, delay: propsDelay, placement, flip, ...props }: OverlayTriggerProps): JSX.Element;
|
28 | declare namespace OverlayTrigger {
|
29 | var propTypes: {
|
30 | children: PropTypes.Validator<((...args: any[]) => any) | PropTypes.ReactElementLike>;
|
31 | /**
|
32 | * Specify which action or actions trigger Overlay visibility
|
33 | *
|
34 | * @type {'hover' | 'click' |'focus' | Array<'hover' | 'click' |'focus'>}
|
35 | */
|
36 | trigger: PropTypes.Requireable<string | (string | null | undefined)[]>;
|
37 | /**
|
38 | * A millisecond delay amount to show and hide the Overlay once triggered
|
39 | */
|
40 | delay: PropTypes.Requireable<number | PropTypes.InferProps<{
|
41 | show: PropTypes.Requireable<number>;
|
42 | hide: PropTypes.Requireable<number>;
|
43 | }>>;
|
44 | /**
|
45 | * The visibility of the Overlay. `show` is a _controlled_ prop so should be paired
|
46 | * with `onToggle` to avoid breaking user interactions.
|
47 | *
|
48 | * Manually toggling `show` does **not** wait for `delay` to change the visibility.
|
49 | *
|
50 | * @controllable onToggle
|
51 | */
|
52 | show: PropTypes.Requireable<boolean>;
|
53 | /**
|
54 | * The initial visibility state of the Overlay.
|
55 | */
|
56 | defaultShow: PropTypes.Requireable<boolean>;
|
57 | /**
|
58 | * A callback that fires when the user triggers a change in tooltip visibility.
|
59 | *
|
60 | * `onToggle` is called with the desired next `show`, and generally should be passed
|
61 | * back to the `show` prop. `onToggle` fires _after_ the configured `delay`
|
62 | *
|
63 | * @controllable `show`
|
64 | */
|
65 | onToggle: PropTypes.Requireable<(...args: any[]) => any>;
|
66 | |
67 |
|
68 |
|
69 | flip: PropTypes.Requireable<boolean>;
|
70 | |
71 |
|
72 |
|
73 | overlay: PropTypes.Requireable<((...args: any[]) => any) | PropTypes.ReactElementLike>;
|
74 | /**
|
75 | * A Popper.js config object passed to the the underlying popper instance.
|
76 | */
|
77 | popperConfig: PropTypes.Requireable<object>;
|
78 | /**
|
79 | * @private
|
80 | */
|
81 | target: PropTypes.Requireable<null>;
|
82 | /**
|
83 | * @private
|
84 | */
|
85 | onHide: PropTypes.Requireable<null>;
|
86 | /**
|
87 | * The placement of the Overlay in relation to it's `target`.
|
88 | */
|
89 | placement: PropTypes.Requireable<string>;
|
90 | };
|
91 | var defaultProps: {
|
92 | defaultShow: boolean;
|
93 | trigger: string[];
|
94 | };
|
95 | }
|
96 | export default OverlayTrigger;
|
97 |
|
\ | No newline at end of file |