1 | import Component from "@egjs/component";
|
2 | import { DiffResult } from "@egjs/list-differ";
|
3 | export interface RendererItem {
|
4 | key: string | number;
|
5 | renderKey?: string;
|
6 | element?: Element | null;
|
7 | }
|
8 | export interface OnRendererUpdated<T extends RendererItem = RendererItem> {
|
9 | items: T[];
|
10 | elements: Element[];
|
11 | isChanged: boolean;
|
12 | state: Record<string, any>;
|
13 | diffResult: DiffResult<T>;
|
14 | }
|
15 | export interface OnRendererUpdate {
|
16 | state: Record<string, any>;
|
17 | }
|
18 | export interface RendererEvents<T extends RendererItem = RendererItem> {
|
19 | update: OnRendererUpdate;
|
20 | updated: OnRendererUpdated<T>;
|
21 | requestUpdate: OnRendererUpdate;
|
22 | }
|
23 | export declare class Renderer<Item extends RendererItem = RendererItem> extends Component<RendererEvents> {
|
24 | protected items: Item[];
|
25 | protected container: Element | null;
|
26 | protected rendererKey: number;
|
27 | private _diffResult;
|
28 | private _updateTimer;
|
29 | private _state;
|
30 | updateKey(): void;
|
31 | getItems(): Item[];
|
32 | setContainer(container: Element): void;
|
33 | render(nextItems: Item[], state?: Record<string, any>): DiffResult<Item>;
|
34 | update(state?: Record<string, any>): void;
|
35 | updated(nextElements?: ArrayLike<Element>): boolean;
|
36 | destroy(): void;
|
37 | protected syncItems(items: Item[]): DiffResult<Item>;
|
38 | }
|