azure-devops-ui
Version:
React components for building web UI in Azure DevOps
92 lines (91 loc) • 3.45 kB
TypeScript
import "../../CommonImports";
import "../../Core/core.css";
import "./DropdownList.css";
import "./List.css";
import "./ListDropIndicator.css";
import * as React from "react";
import { IObservableArray, IReadonlyObservableValue } from '../../Core/Observable';
import { IEventDispatch } from '../../Utilities/Dispatch';
import { IItemProvider } from '../../Utilities/Provider';
import { IList, IListItemProps, IListMaterializedStats, IListProps, IOverlayRenderProps } from "./List.Props";
interface IRowOverlay {
id: string;
columnIndex?: number;
render: (props: IOverlayRenderProps) => React.ReactNode;
rowIndex: number;
zIndex: number;
}
export interface IDropdownListState<T> {
columnCount: number;
eventDispatch: IEventDispatch;
firstMaterialized: number;
firstRendered: number;
itemProvider: IItemProvider<T | IReadonlyObservableValue<T | undefined>>;
lastMaterialized: number;
lastRendered: number;
overlays: IObservableArray<IRowOverlay>;
pageSize: number;
renderedRows: {
[rowIndex: number]: JSX.Element | null;
};
rowCount: number;
rowHeight: number;
rowProportion: number;
rows: {
[rowIndex: number]: T | IReadonlyObservableValue<T | undefined>;
};
scrollTop: number;
virtualize: boolean;
}
/**
* The DropdownList component is used to render a collection of items with a series of rows.
*/
export declare class DropdownList<T extends {}> extends React.Component<IListProps<T>, IDropdownListState<T>> implements IList<T> {
static contextType: React.Context<import("../Intersection/Intersection").IIntersectionContext>;
static defaultProps: Partial<IListProps<any>>;
static getDerivedStateFromProps<T>(props: Readonly<IListProps<T>>, state: Readonly<IDropdownListState<T>>): Partial<IDropdownListState<T>> | null;
private bodyElement;
private listElement;
private spacerElements;
private onScrollComplete?;
private scrollToIndex;
private scrollToOptions;
private selectOnFocus;
private focusIndex;
private pivotIndex;
constructor(props: Readonly<IListProps<T>>);
private onVirtualizeKeyDown;
render(): JSX.Element;
componentDidMount(): void;
componentDidUpdate(): void;
componentWillUnmount(): void;
addOverlay(id: string, rowIndex: number, render: (props: IOverlayRenderProps) => React.ReactNode, zIndex?: number, columnIndex?: number): void;
removeOverlay(id: string): void;
getFocusIndex(): number;
getStats(): IListMaterializedStats;
scrollIntoView(rowIndex: number, options?: ScrollIntoViewOptions, onScrollComplete?: (rowIndex: number) => void): void;
focusRow(rowIndex: number, direction?: number): Promise<void>;
private onBlur;
private onClick;
private onDispatch;
private onDoubleClick;
private onFocusBody;
private onFocusItem;
private onKeyDown;
private onIntersect;
private onPointerDownBody;
private processSelectionEvent;
private renderLoadingRow;
private renderOverlay;
private renderRow;
private getInitialTabbableRow;
private renderSpacer;
private getHeight;
private rowActivated;
private rowSelected;
private rowFocused;
}
export declare function DropdownListItem<T>(props: IListItemProps<T> & {
children: React.ReactNode;
}): JSX.Element;
export {};