UNPKG

3.97 kBTypeScriptView Raw
1import Component from "@egjs/component";
2import { ContainerManager, Properties, RenderOptions, ItemRenderer } from "@egjs/grid";
3import { STATUS_TYPE } from "./consts";
4import { GroupManager } from "./GroupManager";
5import { Infinite } from "./Infinite";
6import { InfiniteGridItem, InfiniteGridItemStatus } from "./InfiniteGridItem";
7import { ScrollManager } from "./ScrollManager";
8import { InfiniteGridEvents, InfiniteGridGroup, InfiniteGridInsertedItems, InfiniteGridItemInfo, InfiniteGridOptions, InfiniteGridStatus, InsertedPlaceholdersResult } from "./types";
9declare class InfiniteGrid<Options extends InfiniteGridOptions = InfiniteGridOptions> extends Component<InfiniteGridEvents> {
10 static defaultOptions: Required<InfiniteGridOptions>;
11 static propertyTypes: {
12 gap: import("@egjs/grid").PROPERTY_TYPE;
13 defaultDirection: import("@egjs/grid").PROPERTY_TYPE;
14 renderOnPropertyChange: import("@egjs/grid").PROPERTY_TYPE;
15 preserveUIOnDestroy: import("@egjs/grid").PROPERTY_TYPE;
16 useFit: import("@egjs/grid").PROPERTY_TYPE;
17 };
18 protected wrapperElement: HTMLElement;
19 protected scrollManager: ScrollManager;
20 protected itemRenderer: ItemRenderer;
21 protected containerManager: ContainerManager;
22 protected infinite: Infinite;
23 protected groupManager: GroupManager;
24 protected options: Required<Options>;
25 private _waitType;
26 constructor(wrapper: HTMLElement | string, options: Options);
27 renderItems(options?: RenderOptions): this;
28 getWrapperElement(): HTMLElement;
29 getScrollContainerElement(): HTMLElement;
30 getContainerElement(): HTMLElement;
31 syncItems(items: InfiniteGridItemInfo[]): this;
32 setCursors(startCursor: number, endCursor: number, useFirstRender?: boolean): this;
33 getStartCursor(): number;
34 getEndCursor(): number;
35 append(items: InfiniteGridInsertedItems, groupKey?: string | number): this;
36 prepend(items: InfiniteGridInsertedItems, groupKey?: string | number): this;
37 insert(index: number, items: InfiniteGridInsertedItems, groupKey?: string | number): this;
38 getStatus(type?: STATUS_TYPE): InfiniteGridStatus;
39 setPlaceholder(info: Partial<InfiniteGridItemStatus> | null): this;
40 setLoading(info: Partial<InfiniteGridItemStatus> | null): this;
41 appendPlaceholders(items: number | InfiniteGridItemStatus[], groupKey?: string | number): InsertedPlaceholdersResult;
42 prependPlaceholders(items: number | InfiniteGridItemStatus[], groupKey?: string | number): InsertedPlaceholdersResult;
43 removePlaceholders(type: "start" | "end" | {
44 groupKey: string | number;
45 }): void;
46 setStatus(status: InfiniteGridStatus, useFirstRender?: boolean): this;
47 removeGroupByIndex(index: number): this;
48 removeGroupByKey(key: number | string): this;
49 removeByIndex(index: number): this;
50 removeByKey(key: string | number): this;
51 updateItems(items?: InfiniteGridItem[], options?: RenderOptions): this;
52 getItems(includePlaceholders?: boolean): InfiniteGridItem[];
53 getVisibleItems(includePlaceholders?: boolean): InfiniteGridItem[];
54 getRenderingItems(): InfiniteGridItem[];
55 getGroups(includePlaceholders?: boolean): InfiniteGridGroup[];
56 getVisibleGroups(includePlaceholders?: boolean): InfiniteGridGroup[];
57 wait(direction?: "start" | "end"): void;
58 ready(): void;
59 isWait(): boolean;
60 destroy(): void;
61 private _getRenderer;
62 private _render;
63 private _update;
64 private _resizeScroll;
65 private _syncGroups;
66 private _syncInfinite;
67 private _scroll;
68 private _onScroll;
69 private _onChange;
70 private _onRendererUpdated;
71 private _onResize;
72 private _onRequestAppend;
73 private _onRequestPrepend;
74 private _onRequestInsert;
75 private _onContentError;
76 private _onRenderComplete;
77 private _checkStartLoading;
78 private _checkEndLoading;
79}
80interface InfiniteGrid extends Properties<typeof InfiniteGrid> {
81}
82export default InfiniteGrid;