chowa
Version:
UI component library based on React
96 lines (95 loc) • 2.88 kB
TypeScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import * as PropTypes from 'prop-types';
export interface Values {
scrollTop: number;
scrollLeft: number;
clientWidth: number;
clientHeight: number;
scrollHeight: number;
scrollWidth: number;
}
export declare type Direction = 'vertical' | 'horizontal';
export interface ScrollbarProps {
className?: string;
style?: React.CSSProperties;
wheelSpeed?: number;
onScroll?: () => void;
onScrollStart?: () => void;
onScrollStop?: () => void;
autoHideThumb?: boolean;
autoHideThumbDelay?: number;
}
export interface ScrollbarState {
clientHeight: number;
clientWidth: number;
scrollHeight: number;
scrollWidth: number;
verticalThumbBtnHeight: number;
verticalThumbHeight: number;
horizontalThumbBtnWidth: number;
horizontalThumbWidth: number;
left: number;
top: number;
startX: number;
startY: number;
direction: Direction;
showThumb: boolean;
}
declare class Scrollbar extends React.PureComponent<ScrollbarProps, ScrollbarState> {
static propTypes: {
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
wheelSpeed: PropTypes.Requireable<number>;
onScroll: PropTypes.Requireable<(...args: any[]) => any>;
onScrollStart: PropTypes.Requireable<(...args: any[]) => any>;
onScrollStop: PropTypes.Requireable<(...args: any[]) => any>;
autoHideThumb: PropTypes.Requireable<boolean>;
autoHideThumbDelay: PropTypes.Requireable<number>;
};
static defaultProps: {
wheelSpeed: number;
autoHideThumb: boolean;
autoHideThumbDelay: number;
};
private containerEle;
private contentEle;
private thumbTimer;
private scrollingTimer;
private animId;
private resizeObserver;
constructor(props: ScrollbarProps);
scrollTop(nextTop: number): void;
scrollToTop(): void;
scrollLeft(nextLeft: number): void;
scrollToLeft(): void;
scrollToBottom(): void;
scrollToRight(): void;
private easeInMove;
getScrollWidth(): number;
getScrollHeight(): number;
getClientHeight(): number;
getClientWidth(): number;
getValues(): Values;
private onDragStartHandler;
private onDragingHandler;
private normalize;
private onMouseWheel;
private onDragEndHandlr;
private onMouseEnterHandler;
private onMouseLeaveHandler;
private getSize;
private clearThumbTimer;
private clearScrollingTimer;
componentDidMount(): void;
componentWillUnmount(): void;
render(): JSX.Element;
}
export default Scrollbar;