import React from 'react'; import PopperJS from 'popper.js'; import { MoveBy } from './PopoverCore/utils/getModifiers'; import { Predicate } from './PopoverCore/utils/getAppendToElement'; export type Placement = PopperJS.Placement; export type AppendTo = PopperJS.Boundary | 'parent' | Element | Predicate; export interface PopoverProps { /** custom classname */ className?: string; /** The location to display the content */ placement?: Placement; /** Is the content shown or not */ shown?: boolean; /** onClick on the component */ onClick?: React.MouseEventHandler; /** Provides callback to invoke when clicked outside of the popover */ onClickOutside?: Function; /** Provides callback to invoke when popover loses focus */ onTabOut?: Function; /** Provides callback to invoke when popover loses focus */ onEscPress?: Function; /** * Clicking on elements with this excluded class will will not trigger onClickOutside callback */ excludeClass?: string; /** onMouseEnter on the component */ onMouseEnter?: React.MouseEventHandler; /** onMouseLeave on the component */ onMouseLeave?: React.MouseEventHandler; /** onKeyDown on the target component */ onKeyDown?: React.KeyboardEventHandler; /** Show show arrow from the content */ showArrow?: boolean; /** * Whether to enable the flip behaviour. This behaviour is used to flip the ``'s placement * when it starts to overlap the target element (``). */ flip?: boolean; /** * Whether to enable the fixed behaviour. This behaviour is used to keep the `` at it's * original placement even when it's being positioned outside the boundary. */ fixed?: boolean; /** Moves popover relative to the parent */ moveBy?: MoveBy; /** Hide Delay in ms */ hideDelay?: number; /** Show Delay in ms */ showDelay?: number; /** Moves arrow by amount */ moveArrowTo?: number; /** Enables calculations in relation to a dom element */ appendTo?: AppendTo; /** Animation timer */ timeout?: number | { enter: number; exit: number; }; /** Inline style */ style?: object; /** Id */ id?: string; fluid?: boolean; /** Custom arrow element */ customArrow?(placement: Placement, arrowProps: object): React.ReactNode; /** target element role value */ role?: string; /** popover z-index */ zIndex?: number; /** * popovers content is set to minnimum width of trigger element, * but it can expand up to the value of maxWidth. */ dynamicWidth?: boolean; /** * popover content minWidth value * - `number` value which converts to css with `px` * - `string` value that contains `px` */ minWidth?: number | string; /** * popover content maxWidth value * - `number` value which converts to css with `px` * - `string` value that contains `px` */ maxWidth?: number | string; /** * popover content width value * - `number` value which converts to css with `px` * - `string` value that contains `px` */ width?: number | string; /** * Breaking change: * When true - onClickOutside will be called only when popover content is shown */ disableClickOutsideWhenClosed?: boolean; /** * Hook for testing purposes. */ dataHook?: string; /** * tabindex for popover content element */ tabIndex?: number; ['aria-label']?: string; ['aria-labelledby']?: string; ['aria-describedby']?: string; /** * Whether to animate the popover content when it is shown or hidden. */ animate?: boolean; /** * Components skin value. Can be dark or light. */ theme?: PopoverTheme; /** Callback fo invoke when popover is shown */ onShow?: Function; /** Callback fo invoke when popover is hidden */ onHide?: Function; children?: React.ReactNode; } export default class Popover extends React.Component { static Element: React.FC<{ children: React.ReactNode; }>; static Content: React.FC<{ children: React.ReactNode; }>; } export type PopoverTheme = 'dark' | 'light'; //# sourceMappingURL=Popover.types.d.ts.map