interface.d.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import type { ShowCollapsibleIconMode } from './SplitBar';
  2. export interface SplitterProps {
  3. prefixCls?: string;
  4. className?: string;
  5. style?: React.CSSProperties;
  6. rootClassName?: string;
  7. layout?: 'horizontal' | 'vertical';
  8. onResizeStart?: (sizes: number[]) => void;
  9. onResize?: (sizes: number[]) => void;
  10. onResizeEnd?: (sizes: number[]) => void;
  11. lazy?: boolean;
  12. }
  13. export interface PanelProps {
  14. className?: string;
  15. style?: React.CSSProperties;
  16. min?: number | string;
  17. max?: number | string;
  18. size?: number | string;
  19. collapsible?: boolean | {
  20. start?: boolean;
  21. end?: boolean;
  22. showCollapsibleIcon?: ShowCollapsibleIconMode;
  23. };
  24. resizable?: boolean;
  25. defaultSize?: number | string;
  26. }
  27. export interface InternalPanelProps extends PanelProps {
  28. className?: string;
  29. prefixCls?: string;
  30. }
  31. export interface UseResizeProps extends Pick<SplitterProps, 'onResize'> {
  32. basicsState: number[];
  33. items: PanelProps[];
  34. panelsRef: React.RefObject<(HTMLDivElement | null)[]>;
  35. reverse: boolean;
  36. setBasicsState: React.Dispatch<React.SetStateAction<number[]>>;
  37. }
  38. export interface UseResize {
  39. setSize: (data: {
  40. size: number;
  41. index: number;
  42. }[]) => void;
  43. setOffset: (offset: number, containerSize: number, index: number) => void;
  44. }
  45. export interface UseHandleProps extends Pick<SplitterProps, 'layout' | 'onResizeStart' | 'onResizeEnd'> {
  46. basicsState: number[];
  47. containerRef?: React.RefObject<HTMLDivElement | null>;
  48. setOffset: UseResize['setOffset'];
  49. setResizing: React.Dispatch<React.SetStateAction<boolean>>;
  50. }
  51. export interface UseHandle {
  52. onStart: (x: number, y: number, index: number) => void;
  53. }
  54. export interface UseCollapsibleProps {
  55. basicsState: number[];
  56. collapsible?: PanelProps['collapsible'];
  57. index: number;
  58. reverse: boolean;
  59. setSize?: UseResize['setSize'];
  60. }
  61. export interface UseCollapsible {
  62. nextIcon: boolean;
  63. overlap: boolean;
  64. previousIcon: boolean;
  65. onFold: (type: 'previous' | 'next') => void;
  66. setOldBasics: () => void;
  67. }