1 | import React, { Component } from 'react';
|
2 | export interface Props {
|
3 | axis: 'horizontal' | 'vertical';
|
4 | children: React.ReactChild[];
|
5 | labels: {
|
6 | leftArrow: string;
|
7 | rightArrow: string;
|
8 | item: string;
|
9 | };
|
10 | onSelectItem: (index: number, item: React.ReactNode) => void;
|
11 | selectedItem: number;
|
12 | thumbWidth: number;
|
13 | transitionTime: number;
|
14 | emulateTouch?: boolean;
|
15 | }
|
16 | interface State {
|
17 | selectedItem: number;
|
18 | firstItem: number;
|
19 | itemSize?: number;
|
20 | visibleItems: number;
|
21 | lastPosition: number;
|
22 | showArrows: boolean;
|
23 | swiping: boolean;
|
24 | }
|
25 | export default class Thumbs extends Component<Props, State> {
|
26 | private itemsWrapperRef?;
|
27 | private itemsListRef?;
|
28 | private thumbsRef?;
|
29 | static displayName: string;
|
30 | static defaultProps: {
|
31 | axis: string;
|
32 | labels: {
|
33 | leftArrow: string;
|
34 | rightArrow: string;
|
35 | item: string;
|
36 | };
|
37 | selectedItem: number;
|
38 | thumbWidth: number;
|
39 | transitionTime: number;
|
40 | };
|
41 | constructor(props: Props);
|
42 | componentDidMount(): void;
|
43 | componentDidUpdate(prevProps: Props): void;
|
44 | componentWillUnmount(): void;
|
45 | setItemsWrapperRef: (node: HTMLDivElement) => void;
|
46 | setItemsListRef: (node: HTMLUListElement) => void;
|
47 | setThumbsRef: (node: HTMLLIElement, index: number) => void;
|
48 | setupThumbs(): void;
|
49 | destroyThumbs(): void;
|
50 | updateSizes: () => void;
|
51 | handleClickItem: (index: number, item: React.ReactNode, e: React.MouseEvent | React.KeyboardEvent) => void;
|
52 | onSwipeStart: () => void;
|
53 | onSwipeEnd: () => void;
|
54 | onSwipeMove: (delta: {
|
55 | x: number;
|
56 | y: number;
|
57 | }) => boolean;
|
58 | slideRight: (positions?: number | undefined) => void;
|
59 | slideLeft: (positions?: number | undefined) => void;
|
60 | moveTo: (position: number) => void;
|
61 | getFirstItem(selectedItem: number): number;
|
62 | renderItems(): JSX.Element[];
|
63 | render(): JSX.Element | null;
|
64 | }
|
65 | export {};
|
66 |
|
\ | No newline at end of file |