UNPKG

@1771technologies/lytenyte-pro

Version:

Blazingly fast headless React data grid with 100s of features.

71 lines (70 loc) 3.07 kB
import type { DataRequest, DataResponse, DataResponsePinned, RowGroup, RowLeaf, RowNode } from "../+types.js"; import type { LeafOrParent, TreeRootAndApi } from "./async-tree/+types.async-tree.js"; import { RangeTree } from "./range-tree/range-tree.js"; type DataFetcher = (req: DataRequest[], expansions: Record<string, boolean | undefined>, pivotExpansions: Record<string, boolean | undefined>) => Promise<(DataResponse | DataResponsePinned)[]>; export interface FlatView { readonly tree: TreeRootAndApi<RowGroup, RowLeaf>; readonly top: number; readonly center: number; readonly bottom: number; readonly rangeTree: RangeTree; readonly rowIndexToRow: Map<number, RowNode<any>>; readonly rowIdToRow: Map<string, RowNode<any>>; readonly rowIdToRowIndex: Map<string, number>; readonly rowIdToTreeNode: Map<string, LeafOrParent<RowGroup, RowLeaf>>; readonly loading: Set<number>; readonly loadingGroup: Set<number>; readonly errored: Map<number, { error: unknown; request?: DataRequest; }>; readonly erroredGroup: Map<number, { error: unknown; request: DataRequest; }>; readonly seenRequests: Set<string>; } export interface ServerDataConstructorParams { readonly blocksize: number; readonly pivotMode: boolean; readonly expansions: Record<string, boolean | undefined>; readonly pivotExpansions: Record<string, boolean | undefined>; readonly onResetLoadBegin: () => void; readonly onResetLoadError: (error: unknown) => void; readonly onResetLoadEnd: () => void; readonly onFlatten: (r: FlatView) => void; readonly onInvalidate: () => void; readonly defaultExpansion: boolean | number; } export declare class ServerData { #private; constructor({ blocksize, pivotMode, pivotExpansions, expansions, onResetLoadBegin, onResetLoadEnd, onResetLoadError, onFlatten, onInvalidate, defaultExpansion, }: ServerDataConstructorParams); set dataFetcher(d: DataFetcher); set pivotMode(b: boolean); set expansions(d: Record<string, boolean | undefined>); set pivotExpansions(d: Record<string, boolean | undefined>); set defaultExpansion(d: boolean | number); set rowViewBounds(viewBounds: [start: number, end: number]); reset: () => Promise<void>; requestForGroup(i: number): DataRequest | null; handleRequests: (requests: DataRequest[], opts?: { onError?: (e: unknown) => void; onSuccess?: () => void; skipState?: boolean; }) => Promise<void>; handleResponses: (data: (DataResponse | DataResponsePinned)[], beforeOnFlat?: () => void) => void; requestForNextSlice(req: DataRequest): { id: string; path: (string | null)[]; start: number; end: number; rowStartIndex: number; rowEndIndex: number; } | null; requestsForView(start?: number, end?: number): DataRequest[]; handleViewBoundsChange(): Promise<void>; retry(): void; updateRow(id: string, data: any): void; flatten: () => void; } export {};