UNPKG

chowa

Version:

UI component library based on React

96 lines (95 loc) 2.88 kB
/** * @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;