1 | import Component from "@egjs/component";
|
2 | export interface OnInfiniteRequestAppend {
|
3 | key?: string | number | undefined;
|
4 | nextKey?: string | number | undefined;
|
5 | nextKeys?: Array<string | number>;
|
6 | isVirtual: boolean;
|
7 | }
|
8 | export interface OnInfiniteRequestPrepend {
|
9 | key?: string | number;
|
10 | nextKey?: string | number;
|
11 | nextKeys?: Array<string | number>;
|
12 | isVirtual: boolean;
|
13 | }
|
14 | export interface OnInfiniteChange {
|
15 | prevStartCursor: number;
|
16 | prevEndCursor: number;
|
17 | nextStartCursor: number;
|
18 | nextEndCursor: number;
|
19 | }
|
20 | export interface InfiniteEvents {
|
21 | requestAppend: OnInfiniteRequestAppend;
|
22 | requestPrepend: OnInfiniteRequestPrepend;
|
23 | change: OnInfiniteChange;
|
24 | }
|
25 | export interface InfiniteOptions {
|
26 | useRecycle?: boolean;
|
27 | threshold?: number;
|
28 | defaultDirection?: "start" | "end";
|
29 | }
|
30 | export interface InfiniteItem {
|
31 | key: string | number;
|
32 | startOutline: number[];
|
33 | endOutline: number[];
|
34 | isVirtual?: boolean;
|
35 | }
|
36 | export declare class Infinite extends Component<InfiniteEvents> {
|
37 | options: Required<InfiniteOptions>;
|
38 | protected startCursor: number;
|
39 | protected endCursor: number;
|
40 | protected size: number;
|
41 | protected items: InfiniteItem[];
|
42 | protected itemKeys: Record<string | number, InfiniteItem>;
|
43 | constructor(options: InfiniteOptions);
|
44 | scroll(scrollPos: number): void;
|
45 | /**
|
46 | * Call the requestAppend or requestPrepend event to fill the virtual items.
|
47 | * @ko virtual item을 채우기 위해 requestAppend 또는 requestPrepend 이벤트를 호출합니다.
|
48 | * @return - Whether the event is called. <ko>이벤트를 호출했는지 여부.</ko>
|
49 | */
|
50 | _requestVirtualItems(): boolean;
|
51 | setCursors(startCursor: number, endCursor: number): void;
|
52 | setSize(size: number): void;
|
53 | getStartCursor(): number;
|
54 | getEndCursor(): number;
|
55 | isLoading(direction: "start" | "end"): boolean;
|
56 | setItems(nextItems: InfiniteItem[]): void;
|
57 | syncItems(nextItems: InfiniteItem[]): boolean;
|
58 | getItems(): InfiniteItem[];
|
59 | getVisibleItems(): InfiniteItem[];
|
60 | getItemByKey(key: string | number): InfiniteItem;
|
61 | getRenderedVisibleItems(): InfiniteItem[];
|
62 | destroy(): void;
|
63 | }
|