UNPKG

1.29 kBTypeScriptView Raw
1import Component from "@egjs/component";
2import { DiffResult } from "@egjs/list-differ";
3export interface RendererItem {
4 key: string | number;
5 renderKey?: string;
6 element?: Element | null;
7}
8export 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}
15export interface OnRendererUpdate {
16 state: Record<string, any>;
17}
18export interface RendererEvents<T extends RendererItem = RendererItem> {
19 update: OnRendererUpdate;
20 updated: OnRendererUpdated<T>;
21 requestUpdate: OnRendererUpdate;
22}
23export 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}