hjkcai-rc-scrollbars
Version:
React scrollbars component
112 lines (111 loc) • 3.76 kB
TypeScript
import { Component, CSSProperties } from 'react';
import { ScrollValues, ScrollbarsProps, StyleKeys } from './types';
interface State {
didMountUniversal: boolean;
scrollbarWidth: number;
}
export declare class Scrollbars extends Component<ScrollbarsProps, State> {
container: Element | null;
detectScrollingInterval: any;
dragging: boolean;
hideTracksTimeout: any;
lastViewScrollLeft?: number;
lastViewScrollTop?: number;
prevPageX?: number;
prevPageY?: number;
requestFrame?: number;
scrolling: boolean;
styles: Record<StyleKeys, CSSProperties>;
thumbHorizontal?: HTMLDivElement;
thumbVertical?: HTMLDivElement;
trackHorizontal?: HTMLDivElement;
trackMouseOver: boolean;
trackVertical?: HTMLDivElement;
view?: HTMLElement;
viewScrollLeft?: number;
viewScrollTop?: number;
mutationOb: MutationObserver;
updateCallbacks: Array<(values: ScrollValues) => void>;
static displayName: string;
static defaultProps: {
autoHeight: boolean;
autoHeightMax: number;
autoHeightMin: number;
autoHide: boolean;
autoHideDuration: number;
autoHideTimeout: number;
disableDefaultStyles: boolean;
hideTracksWhenNotNeeded: boolean;
renderThumbHorizontal: (props: any) => JSX.Element;
renderThumbVertical: (props: any) => JSX.Element;
renderTrackHorizontal: (props: any) => JSX.Element;
renderTrackVertical: (props: any) => JSX.Element;
renderView: (props: any) => JSX.Element;
tagName: string;
thumbMinSize: number;
universal: boolean;
};
constructor(props: ScrollbarsProps);
componentDidMount(): void;
componentDidMountUniversal(): void;
componentDidUpdate(): void;
componentWillUnmount(): void;
getScrollLeft(): number;
getScrollTop(): number;
getScrollWidth(): number;
getScrollHeight(): number;
getClientWidth(): number;
getClientHeight(): number;
getValues(): {
left: number;
top: number;
scrollLeft: number;
scrollTop: number;
scrollWidth: number;
scrollHeight: number;
clientWidth: number;
clientHeight: number;
};
getThumbHorizontalWidth(): number;
getThumbVerticalHeight(): number;
getScrollLeftForOffset(offset: any): number;
getScrollTopForOffset(offset: any): number;
scrollLeft(left?: number): void;
scrollTop(top?: number): void;
scrollToLeft(): void;
scrollToTop(): void;
scrollToRight(): void;
scrollToBottom(): void;
scrollToY(y: number): void;
addListeners(): void;
removeListeners(): void;
handleScroll(event: any): void;
handleScrollStart(): void;
handleScrollStartAutoHide(): void;
handleScrollStop(): void;
handleScrollStopAutoHide(): void;
handleWindowResize(): void;
handleHorizontalTrackMouseDown(event: any): void;
handleVerticalTrackMouseDown(event: any): void;
handleHorizontalThumbMouseDown(event: any): void;
handleVerticalThumbMouseDown(event: any): void;
handleHorizontalTrackWheel(e: WheelEvent): void;
handleVerticalTrackWheel(e: WheelEvent): void;
setupDragging(): void;
teardownDragging(): void;
handleDragStart(event: any): void;
handleDrag(event: any): boolean;
handleDragEnd(): void;
handleDragEndAutoHide(): void;
handleTrackMouseEnter(): void;
handleTrackMouseEnterAutoHide(): void;
handleTrackMouseLeave(): void;
handleTrackMouseLeaveAutoHide(): void;
showTracks(): void;
hideTracks(): void;
detectScrolling(): void;
update(callback?: (values: ScrollValues) => void): void;
_update(): void;
render(): JSX.Element;
}
export {};