import React, { AriaAttributes } from 'react'; import BaseComponent from '../_base/baseComponent'; import PropTypes from 'prop-types'; import { Item, ScrollItemAdapter } from '@douyinfe/semi-foundation/lib/cjs/scrollList/itemFoundation'; import { Motion } from '../_base/base'; interface DebounceSelectFn { (e: React.UIEvent, newSelectedNode: HTMLElement): void; cancel(): void; } export interface ScrollItemProps { mode?: string; cycled?: boolean; list?: T[]; selectedIndex?: number; onSelect?: (data: T) => void; transform?: (value: any, text: string) => string; className?: string; motion?: Motion; style?: React.CSSProperties; type?: string | number; 'aria-label'?: AriaAttributes['aria-label']; } export interface ScrollItemState { prependCount: number; appendCount: number; } export default class ScrollItem extends BaseComponent, ScrollItemState> { static propTypes: { mode: PropTypes.Requireable<"normal" | "wheel">; cycled: PropTypes.Requireable; list: PropTypes.Requireable; selectedIndex: PropTypes.Requireable; onSelect: PropTypes.Requireable<(...args: any[]) => any>; transform: PropTypes.Requireable<(...args: any[]) => any>; className: PropTypes.Requireable; style: PropTypes.Requireable; motion: PropTypes.Requireable any)>>; type: PropTypes.Requireable>; }; static defaultProps: { selectedIndex: number; motion: boolean; list: readonly []; onSelect: (...args: any[]) => void; cycled: boolean; mode: string; }; selectedNode: HTMLElement; willSelectNode: HTMLElement; list: HTMLElement; wrapper: HTMLElement; selector: unknown; scrollAnimation: any; scrolling: boolean; throttledAdjustList: DebounceSelectFn; debouncedSelect: DebounceSelectFn; constructor(props?: {}); get adapter(): ScrollItemAdapter, ScrollItemState, T>; componentWillUnmount(): void; componentDidMount(): void; componentDidUpdate(prevProps: ScrollItemProps): void; _cacheNode: (name: string, node: Element) => Element; _cacheSelectedNode: (selectedNode: Element) => Element; _cacheWillSelectNode: (node: Element) => Element; _cacheListNode: (list: Element) => Element; _cacheSelectorNode: (selector: Element) => Element; _cacheWrapperNode: (wrapper: Element) => Element; _isFirst: (node: Element) => boolean; _isLast: (node: Element) => boolean; /** * * @param {HTMLElement} refNode * @param {number} offset * @param {HTMLElement} listWrapper * * @returns {HTMLElement} */ getNodeByOffset(refNode: Element, offset: number, listWrapper: Element): Element; indexIsSame: (index1: number, index2: number) => boolean; isDisabledIndex: (index: number) => boolean; isDisabledNode: (node: Element) => boolean; isDisabledData: (data: T) => boolean; isWheelMode: () => boolean; addClassToNode: (selectedNode: Element, selectedCls?: string) => void; getIndexByNode: (node: Element) => number; getNodeByIndex: (index: number) => Element; scrollToIndex: (selectedIndex: number, duration?: number) => void; scrollToNode: (node: HTMLElement, duration: number) => void; scrollToPos: (targetTop: number, duration?: number) => void; scrollToSelectItem: React.UIEventHandler; /** * * reset position to center of the scrollWrapper * * @param {HTMLElement} selectedNode * @param {HTMLElement} scrollWnumber * @param {number} duration */ scrollToCenter: ScrollItemAdapter['scrollToCenter']; clickToSelectItem: React.MouseEventHandler; getItmHeight: (itm: HTMLElement) => number; renderItemList: (prefixKey?: string) => React.JSX.Element[]; renderNormalList: () => React.JSX.Element; /** * List of Rendering Unlimited Modes */ renderInfiniteList: () => React.JSX.Element; render(): React.JSX.Element; } export {};