1 | import * as React from 'react';
|
2 | export interface IVoiceover {
|
3 | item: (position: number) => string;
|
4 | lifted: (position: number) => string;
|
5 | dropped: (from: number, to: number) => string;
|
6 | moved: (position: number, up: boolean) => string;
|
7 | canceled: (position: number) => string;
|
8 | }
|
9 | interface IItemProps {
|
10 | key?: number;
|
11 | tabIndex?: number;
|
12 | onKeyDown?: (e: React.KeyboardEvent) => void;
|
13 | onMouseDown?: (e: React.MouseEvent) => void;
|
14 | onTouchStart?: (e: React.TouchEvent) => void;
|
15 | onWheel?: (e: React.WheelEvent) => void;
|
16 | style?: React.CSSProperties;
|
17 | ref?: React.RefObject<any>;
|
18 | }
|
19 | interface IListProps<Value> {
|
20 | renderItem: (params: {
|
21 | value: Value;
|
22 | props: IItemProps;
|
23 | index?: number;
|
24 | isDragged: boolean;
|
25 | isSelected: boolean;
|
26 | }) => React.ReactNode;
|
27 | renderList: (props: {
|
28 | children: any;
|
29 | isDragged: boolean;
|
30 | props: {
|
31 | ref: React.RefObject<any>;
|
32 | };
|
33 | }) => React.ReactNode;
|
34 | values: Value[];
|
35 | onChange: (meta: {
|
36 | oldIndex: number;
|
37 | newIndex: number;
|
38 | }) => void;
|
39 | transitionDuration: number;
|
40 | lockVertically: boolean;
|
41 | voiceover: IVoiceover;
|
42 | }
|
43 | declare type TEvent = React.MouseEvent | React.TouchEvent | React.KeyboardEvent;
|
44 | declare class List<Value = string> extends React.Component<IListProps<Value>> {
|
45 | listRef: React.RefObject<HTMLElement>;
|
46 | ghostRef: React.RefObject<HTMLElement>;
|
47 | topOffsets: number[];
|
48 | itemTranslateOffsets: number[];
|
49 | initialYOffset: number;
|
50 | lastScroll: number;
|
51 | needle: number;
|
52 | afterIndex: number;
|
53 | state: {
|
54 | itemDragged: number;
|
55 | selectedItem: number;
|
56 | initialX: number;
|
57 | initialY: number;
|
58 | targetX: number;
|
59 | targetY: number;
|
60 | targetHeight: number;
|
61 | targetWidth: number;
|
62 | liveText: string;
|
63 | };
|
64 | componentDidMount(): void;
|
65 | getChildren: () => Element[];
|
66 | static defaultProps: {
|
67 | transitionDuration: number;
|
68 | lockVertically: boolean;
|
69 | voiceover: {
|
70 | item: (position: number) => string;
|
71 | lifted: (position: number) => string;
|
72 | moved: (position: number, up: boolean) => string;
|
73 | dropped: (from: number, to: number) => string;
|
74 | canceled: (position: number) => string;
|
75 | };
|
76 | };
|
77 | calculateOffsets: () => void;
|
78 | getTargetIndex: (e: TEvent) => number;
|
79 | onMouseDown: (e: React.MouseEvent<Element, MouseEvent>) => void;
|
80 | onTouchStart: (e: React.TouchEvent<Element>) => void;
|
81 | getYOffset: () => number;
|
82 | onStart: (target: HTMLElement, clientX: number, clientY: number, index: number) => void;
|
83 | onMouseMove: (e: MouseEvent) => null | undefined;
|
84 | onTouchMove: (e: TouchEvent) => null | undefined;
|
85 | onWheel: (e: React.WheelEvent<Element>) => void;
|
86 | onMove: (clientX: number, clientY: number) => null | undefined;
|
87 | moveOtherItems: () => void;
|
88 | animateItems: (needle: number, movedItem: number, offset: number, animateMovedItem?: boolean) => void;
|
89 | onEnd: () => void;
|
90 | onKeyDown: (e: React.KeyboardEvent<Element>) => void;
|
91 | render(): JSX.Element;
|
92 | }
|
93 | export default List;
|