UNPKG

@lifeart/gxt

Version:

<img align="right" width="95" height="95" alt="Philosopher’s stone, logo of PostCSS" src="./public/logo.png">

59 lines (58 loc) • 2.49 kB
import { ComponentReturnType, type Component } from '../component'; import { api as HTML_API } from '../dom-api'; import { Cell, MergedCell } from '../reactive'; import { $context, RENDERED_NODES_PROPERTY, COMPONENT_ID_PROPERTY } from '../shared'; export declare function getFirstNode(rawItem: Node | ComponentReturnType | GenericReturnType | Array<Node | ComponentReturnType | GenericReturnType>): Node; type GenericReturnType = Array<ComponentReturnType | Node> | ComponentReturnType | Node; type ListComponentArgs<T> = { tag: Cell<T[]> | MergedCell; key: string | null; ctx: Component<any>; ItemComponent: (item: T, index?: number | MergedCell) => GenericReturnType; }; type RenderTarget = HTMLElement | DocumentFragment; export declare class BasicListComponent<T extends { id: number; }> { keyMap: Map<string, GenericReturnType>; indexMap: Map<string, number>; nodes: Node[]; [RENDERED_NODES_PROPERTY]: never[]; [COMPONENT_ID_PROPERTY]: number; ItemComponent: (item: T, index: number | MergedCell, ctx: Component<any>) => GenericReturnType; bottomMarker: Comment; topMarker: Comment; key: string; tag: Cell<T[]> | MergedCell; isSync: boolean; isFirstRender: boolean; get ctx(): this; keyGenerator(items: T[], keyForItem: (item: T, index: number) => string): Generator<string, void, unknown>; api: typeof HTML_API; args: { [$context]: Component<any>; }; constructor({ tag, ctx, key, ItemComponent }: ListComponentArgs<T>, outlet: RenderTarget, topMarker: Comment); setupKeyForItem(): void; keyForItem(item: T, index: number): string; getTargetNode(amountOfKeys: number): Comment; updateItems(items: T[], amountOfKeys: number, removedIndexes: number[]): void; } export declare class SyncListComponent<T extends { id: number; }> extends BasicListComponent<T> { constructor(params: ListComponentArgs<T>, outlet: RenderTarget, topMarker: Comment); fastCleanup(): boolean; syncList(items: T[]): void; destroyItem(row: GenericReturnType, key: string): void; } export declare class AsyncListComponent<T extends { id: number; }> extends BasicListComponent<T> { destroyPromise: Promise<void[]> | null; constructor(params: ListComponentArgs<any>, outlet: RenderTarget, topMarker: Comment); fastCleanup(): Promise<boolean>; syncList(items: T[]): Promise<void>; destroyItem(row: GenericReturnType, key: string): Promise<void>; } export {};