UNPKG

@etsoo/materialui

Version:

TypeScript Material-UI Implementation

76 lines (75 loc) 2.04 kB
import { ScrollerListProps } from "@etsoo/react"; import React from "react"; import { ListChildComponentProps } from "react-window"; import { MouseEventWithDataHandler } from "./MUGlobal"; /** * Extended ScrollerList inner item renderer props */ export interface ScrollerListExInnerItemRendererProps<T> extends ListChildComponentProps<T> { /** * Item selected */ selected: boolean; /** * Item height */ itemHeight: number; /** * Item space */ space: number; /** * Default margins */ margins: object; } /** * Extended ScrollerList ItemSize type * 1. Callback function * 2. Static sets * 3. Dynamic left & right margin calculation */ export type ScrollerListExItemSize = ((index: number) => [number, number] | [number, number, object]) | [number, number] | [number, object, (number | string)?]; /** * Extended ScrollerList Props */ export type ScrollerListExProps<T extends object> = Omit<ScrollerListProps<T>, "itemRenderer" | "itemSize"> & { /** * Alternating colors for odd/even rows */ alternatingColors?: [string?, string?]; /** * Inner item renderer */ innerItemRenderer: (props: ScrollerListExInnerItemRendererProps<T>) => React.ReactNode; /** * Item renderer */ itemRenderer?: (props: ListChildComponentProps<T>) => React.ReactElement; /** * Item size, a function indicates its a variable size list */ itemSize: ScrollerListExItemSize; /** * Double click handler */ onDoubleClick?: MouseEventWithDataHandler<T>; /** * Click handler */ onClick?: MouseEventWithDataHandler<T>; /** * On items select change */ onSelectChange?: (selectedItems: T[]) => void; /** * Selected color */ selectedColor?: string; }; /** * Extended ScrollerList * @param props Props * @returns Component */ export declare function ScrollerListEx<T extends object>(props: ScrollerListExProps<T>): import("react/jsx-runtime").JSX.Element;