UNPKG

2.19 kBTypeScriptView Raw
1import Component from "@egjs/component";
2export interface OnInfiniteRequestAppend {
3 key?: string | number | undefined;
4 nextKey?: string | number | undefined;
5 nextKeys?: Array<string | number>;
6 isVirtual: boolean;
7}
8export interface OnInfiniteRequestPrepend {
9 key?: string | number;
10 nextKey?: string | number;
11 nextKeys?: Array<string | number>;
12 isVirtual: boolean;
13}
14export interface OnInfiniteChange {
15 prevStartCursor: number;
16 prevEndCursor: number;
17 nextStartCursor: number;
18 nextEndCursor: number;
19}
20export interface InfiniteEvents {
21 requestAppend: OnInfiniteRequestAppend;
22 requestPrepend: OnInfiniteRequestPrepend;
23 change: OnInfiniteChange;
24}
25export interface InfiniteOptions {
26 useRecycle?: boolean;
27 threshold?: number;
28 defaultDirection?: "start" | "end";
29}
30export interface InfiniteItem {
31 key: string | number;
32 startOutline: number[];
33 endOutline: number[];
34 isVirtual?: boolean;
35}
36export 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}