dropdown.d.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import * as React from 'react';
  2. import type { AlignType } from '@rc-component/trigger';
  3. import type { MenuProps as RcMenuProps } from 'rc-menu';
  4. import type { AdjustOverflow } from '../_util/placements';
  5. import type { MenuProps } from '../menu';
  6. declare const _Placements: readonly ["topLeft", "topCenter", "topRight", "bottomLeft", "bottomCenter", "bottomRight", "top", "bottom"];
  7. type Placement = (typeof _Placements)[number];
  8. type OverlayFunc = () => React.ReactElement;
  9. export type DropdownArrowOptions = {
  10. pointAtCenter?: boolean;
  11. };
  12. export interface DropdownProps {
  13. menu?: MenuProps & {
  14. activeKey?: RcMenuProps['activeKey'];
  15. };
  16. autoFocus?: boolean;
  17. arrow?: boolean | DropdownArrowOptions;
  18. trigger?: ('click' | 'hover' | 'contextMenu')[];
  19. /** @deprecated Please use `popupRender` instead */
  20. dropdownRender?: (originNode: React.ReactNode) => React.ReactNode;
  21. popupRender?: (originNode: React.ReactNode) => React.ReactNode;
  22. onOpenChange?: (open: boolean, info: {
  23. source: 'trigger' | 'menu';
  24. }) => void;
  25. open?: boolean;
  26. disabled?: boolean;
  27. /** @deprecated Please use `destroyOnHidden` instead */
  28. destroyPopupOnHide?: boolean;
  29. /**
  30. * @since 5.25.0
  31. */
  32. destroyOnHidden?: boolean;
  33. align?: AlignType;
  34. getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
  35. prefixCls?: string;
  36. className?: string;
  37. rootClassName?: string;
  38. transitionName?: string;
  39. placement?: Placement;
  40. overlayClassName?: string;
  41. overlayStyle?: React.CSSProperties;
  42. forceRender?: boolean;
  43. mouseEnterDelay?: number;
  44. mouseLeaveDelay?: number;
  45. openClassName?: string;
  46. children?: React.ReactNode;
  47. autoAdjustOverflow?: boolean | AdjustOverflow;
  48. /** @deprecated Please use `menu` instead */
  49. overlay?: React.ReactElement | OverlayFunc;
  50. /** @deprecated Please use `open` instead */
  51. visible?: boolean;
  52. /** @deprecated Please use `onOpenChange` instead */
  53. onVisibleChange?: (open: boolean) => void;
  54. }
  55. type CompoundedComponent = React.FC<DropdownProps> & {
  56. _InternalPanelDoNotUseOrYouWillBeFired: typeof WrapPurePanel;
  57. };
  58. declare const Dropdown: CompoundedComponent;
  59. declare const WrapPurePanel: React.FC<DropdownProps>;
  60. export default Dropdown;