@gravity-ui/uikit
Version:
Gravity UI base styling and components
59 lines (58 loc) • 2.12 kB
TypeScript
import * as React from 'react';
import type { ListItemData, ListProps } from "./types.js";
import "./List.css";
type ListState<T> = {
items: ListProps<T>['items'];
filter: string;
activeItem?: number;
pageSize?: number;
sorting?: boolean;
};
export declare const listDefaultProps: Partial<ListProps<ListItemData<unknown>>>;
export declare class List<T = unknown> extends React.Component<ListProps<T>, ListState<T>> {
static defaultProps: Partial<ListProps<ListItemData<unknown>>>;
static moveListElement<T = unknown>(list: ListItemData<T>[], oldIndex: number, newIndex: number): ListItemData<T>[];
static findNextIndex<T = unknown>(list: ListItemData<T>[], index: number, step: number): number | undefined;
state: ListState<T>;
refFilter: React.RefObject<HTMLInputElement>;
refContainer: React.RefObject<any>;
blurTimer: ReturnType<typeof setTimeout> | null;
loadingItem: ListItemData<T & {
value: string;
}>;
uniqId: string;
componentDidMount(): void;
componentDidUpdate(prevProps: ListProps<T>, prevState: ListState<T>): void;
componentWillUnmount(): void;
render(): import("react/jsx-runtime").JSX.Element;
getItems(): ListItemData<T>[];
getItemsWithLoading(): ListItemData<T>[];
getActiveItem(): number | null;
activateItem(index?: number, scrollTo?: boolean): void;
onKeyDown: React.KeyboardEventHandler<HTMLElement>;
private renderItemContent;
private renderItem;
private renderVirtualizedItem;
private renderFilter;
private renderSimpleContainer;
private renderVirtualizedContainer;
private renderItems;
private filterItem;
private getFilter;
private getItemsStyle;
private scrollToIndex;
private deactivate;
private handleKeyMove;
private handleFocus;
private handleBlur;
private onUpdateFilterInternal;
private onFilterUpdate;
private onItemsRendered;
private onItemActivate;
private onMouseLeave;
private onSortStart;
private onSortEnd;
private getItemHeight;
private getVirtualizedItemHeight;
}
export {};