// Type definitions for ui/Scroller import * as React from "react"; type Omit = Pick>; type Merge = Omit> & N; export interface ScrollerBasicProps { /** * Direction of the scroller. * * Valid values are: * * `'both'` , * * `'horizontal'` , and * * `'vertical'` . */ direction?: string; } /** * An unstyled base scroller component. */ export class ScrollerBasic extends React.Component< Merge, ScrollerBasicProps> > { /** * Programmatically animates the native scroll position of `node` toward the target `left` / `top` offsets using `requestAnimationFrame` . It computes the scroll direction on each axis, then repeatedly calls `scrollBy` with a dynamic step (10% of remaining distance, minimum 8px) until the target is reached or 1s has elapsed. Used as a Chrome fallback when repeating a smooth scroll. */ animateScroll(any, any, any): void; } export interface ScrollerProps extends ScrollerBasicProps { /** * A callback function that receives a reference to the `scrollTo` feature. * * Once received, the `scrollTo` method can be called as an imperative interface. * * {position: {x, y}} - Pixel value for x and/or y position * * {align} - Where the scroll area should be aligned. Values are: `'left'` , `'right'` , `'top'` , `'bottom'` , `'topleft'` , `'topright'` , `'bottomleft'` , and `'bottomright'` . * * {node} - Node to scroll into view * * {animate} - When `true` , scroll occurs with animation. When `false` , no animation occurs. * * {focus} - When `true` , attempts to focus item after scroll. Only valid when scrolling by `node` . * * Note: Only specify one of: `position` , `align` , `node` * * Example: * ``` // If you set cbScrollTo prop like below; cbScrollTo: (fn) => {this.scrollTo = fn;} // You can simply call like below; this.scrollTo({align: 'top'}); // scroll to the top ``` */ cbScrollTo?: Function; /** * Direction of the scroller. * * Valid values are: * * `'both'` , * * `'horizontal'` , and * * `'vertical'` . */ direction?: string; /** * Specifies how to show horizontal scrollbar. * * Valid values are: * * `'auto'` , * * `'visible'` , and * * `'hidden'` . */ horizontalScrollbar?: string; /** * Prevents scroll by wheeling on the scroller. */ noScrollByWheel?: boolean; /** * Called when scrolling. * * Passes `scrollLeft` , `scrollTop` . It is not recommended to set this prop since it can cause performance degradation. Use `onScrollStart` or `onScrollStop` instead. */ onScroll?: Function; /** * Called when scroll starts. * * Passes `scrollLeft` and `scrollTop` . * * Example: * ``` onScrollStart = ({scrollLeft, scrollTop}) => { // do something with scrollLeft and scrollTop } render = () => ( ) ``` */ onScrollStart?: Function; /** * Called when scroll stops. * * Passes `scrollLeft` and `scrollTop` . * * Example: * ``` onScrollStop = ({scrollLeft, scrollTop}) => { // do something with scrollLeft and scrollTop } render = () => ( ) ``` */ onScrollStop?: Function; /** * Specifies how to scroll. * * Valid values are: * * `'translate'` , * * `'native'` . */ scrollMode?: string; /** * Specifies how to show vertical scrollbar. * * Valid values are: * * `'auto'` , * * `'visible'` , and * * `'hidden'` . */ verticalScrollbar?: string; } /** * An unstyled scroller. * * Example: * ``` Scroll me. ``` */ export class Scroller extends React.Component< Merge, ScrollerProps> > {} export default Scroller;