index.d.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import * as React from 'react';
  2. import type { placements as Placements } from 'rc-tooltip/lib/placements';
  3. import type { TooltipProps as RcTooltipProps } from 'rc-tooltip/lib/Tooltip';
  4. import type { PresetColorType } from '../_util/colors';
  5. import type { RenderFunction } from '../_util/getRenderPropValue';
  6. import type { AdjustOverflow, PlacementsConfig } from '../_util/placements';
  7. import type { LiteralUnion } from '../_util/type';
  8. import PurePanel from './PurePanel';
  9. export type { AdjustOverflow, PlacementsConfig };
  10. export interface TooltipRef {
  11. /** @deprecated Please use `forceAlign` instead */
  12. forcePopupAlign: VoidFunction;
  13. forceAlign: VoidFunction;
  14. /** Wrapped dom element. Not promise valid if child not support ref */
  15. nativeElement: HTMLElement;
  16. /** Popup dom element */
  17. popupElement: HTMLDivElement;
  18. }
  19. export type TooltipPlacement = 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
  20. export interface TooltipAlignConfig {
  21. points?: [string, string];
  22. offset?: [number | string, number | string];
  23. targetOffset?: [number | string, number | string];
  24. overflow?: {
  25. adjustX: boolean;
  26. adjustY: boolean;
  27. };
  28. useCssRight?: boolean;
  29. useCssBottom?: boolean;
  30. useCssTransform?: boolean;
  31. }
  32. interface LegacyTooltipProps extends Partial<Omit<RcTooltipProps, 'children' | 'visible' | 'defaultVisible' | 'onVisibleChange' | 'afterVisibleChange' | 'destroyTooltipOnHide'>> {
  33. open?: RcTooltipProps['visible'];
  34. defaultOpen?: RcTooltipProps['defaultVisible'];
  35. onOpenChange?: RcTooltipProps['onVisibleChange'];
  36. afterOpenChange?: RcTooltipProps['afterVisibleChange'];
  37. /** @deprecated Please use `open` instead. */
  38. visible?: RcTooltipProps['visible'];
  39. /** @deprecated Please use `defaultOpen` instead. */
  40. defaultVisible?: RcTooltipProps['defaultVisible'];
  41. /** @deprecated Please use `onOpenChange` instead. */
  42. onVisibleChange?: RcTooltipProps['onVisibleChange'];
  43. /** @deprecated Please use `afterOpenChange` instead. */
  44. afterVisibleChange?: RcTooltipProps['afterVisibleChange'];
  45. }
  46. type SemanticName = 'root' | 'body';
  47. export interface AbstractTooltipProps extends LegacyTooltipProps {
  48. styles?: Partial<Record<SemanticName, React.CSSProperties>>;
  49. classNames?: Partial<Record<SemanticName, string>>;
  50. style?: React.CSSProperties;
  51. className?: string;
  52. rootClassName?: string;
  53. color?: LiteralUnion<PresetColorType>;
  54. placement?: TooltipPlacement;
  55. builtinPlacements?: typeof Placements;
  56. openClassName?: string;
  57. /** @deprecated Please use `arrow={{ pointAtCenter: true }}` instead. */
  58. arrowPointAtCenter?: boolean;
  59. arrow?: boolean | {
  60. /** @deprecated Please use `pointAtCenter` instead. */
  61. arrowPointAtCenter?: boolean;
  62. pointAtCenter?: boolean;
  63. };
  64. autoAdjustOverflow?: boolean | AdjustOverflow;
  65. getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
  66. children?: React.ReactNode;
  67. /** @deprecated Please use `destroyOnHidden` instead */
  68. destroyTooltipOnHide?: boolean | {
  69. keepParent?: boolean;
  70. };
  71. /**
  72. * @since 5.25.0
  73. */
  74. destroyOnHidden?: boolean;
  75. }
  76. export interface TooltipPropsWithOverlay extends AbstractTooltipProps {
  77. title?: React.ReactNode | RenderFunction;
  78. overlay?: React.ReactNode | RenderFunction;
  79. }
  80. export interface TooltipPropsWithTitle extends AbstractTooltipProps {
  81. title: React.ReactNode | RenderFunction;
  82. overlay?: React.ReactNode | RenderFunction;
  83. }
  84. export declare type TooltipProps = TooltipPropsWithTitle | TooltipPropsWithOverlay;
  85. declare const InternalTooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<TooltipRef>>;
  86. type CompoundedComponent = typeof InternalTooltip & {
  87. _InternalPanelDoNotUseOrYouWillBeFired: typeof PurePanel;
  88. };
  89. declare const Tooltip: CompoundedComponent;
  90. export default Tooltip;