vscroll
Version:
Virtual scroll engine
80 lines (79 loc) • 2.94 kB
TypeScript
import { Logger } from './logger';
import { Buffer } from './buffer';
import { Reactive } from './reactive';
import { Viewport } from './viewport';
import { WorkflowGetter, AdapterMethodResult, IAdapter, ItemAdapter, ItemsPredicate, AdapterPrependOptions, AdapterAppendOptions, AdapterRemoveOptions, AdapterClipOptions, AdapterInsertOptions, AdapterReplaceOptions, AdapterUpdateOptions, AdapterFixOptions, ScrollerWorkflow, IDatasourceOptional, IPackages, IBufferInfo, State, ProcessSubject } from '../interfaces/index';
type InitializationParams<Item> = {
buffer: Buffer<Item>;
state: State;
viewport: Viewport;
logger: Logger;
adapterRun$?: Reactive<ProcessSubject>;
getWorkflow?: WorkflowGetter<Item>;
};
export declare class Adapter<Item = unknown> implements IAdapter<Item> {
private externalContext;
private logger;
private getWorkflow;
private reloadCounter;
private source;
private box;
private demand;
private disposed;
setFirstOrLastVisible: (_: {
first?: boolean;
last?: boolean;
workflow?: ScrollerWorkflow;
}) => void;
get workflow(): ScrollerWorkflow<Item>;
get reloadCount(): number;
get reloadId(): string;
id: number;
mock: boolean;
augmented: boolean;
version: string;
init: boolean;
init$: Reactive<boolean>;
packageInfo: IPackages;
itemsCount: number;
bufferInfo: IBufferInfo;
isLoading: boolean;
isLoading$: Reactive<boolean>;
loopPending: boolean;
loopPending$: Reactive<boolean>;
firstVisible: ItemAdapter<Item>;
firstVisible$: Reactive<ItemAdapter<Item>>;
lastVisible: ItemAdapter<Item>;
lastVisible$: Reactive<ItemAdapter<Item>>;
bof: boolean;
bof$: Reactive<boolean>;
eof: boolean;
eof$: Reactive<boolean>;
paused: boolean;
paused$: Reactive<boolean>;
private relax$;
private relaxRun;
private getPromisifiedMethod;
private getWorkflowRunnerMethod;
constructor(context: IAdapter<Item> | null, getWorkflow: WorkflowGetter<Item>, logger: Logger);
initialize({ buffer, state, viewport, logger, adapterRun$, getWorkflow }: InitializationParams<Item>): void;
dispose(): void;
resetContext(): void;
reset(options?: IDatasourceOptional): any;
reload(options?: number | string): any;
append(_options: AdapterAppendOptions<Item> | unknown, eof?: boolean): any;
prepend(_options: AdapterPrependOptions<Item> | unknown, bof?: boolean): any;
check(): any;
remove(options: AdapterRemoveOptions<Item> | ItemsPredicate<Item>): any;
clip(options?: AdapterClipOptions): any;
insert(options: AdapterInsertOptions<Item>): any;
replace(options: AdapterReplaceOptions<Item>): any;
update(options: AdapterUpdateOptions<Item>): any;
pause(): any;
resume(): any;
fix(options: AdapterFixOptions<Item>): any;
relaxUnchained(callback: (() => void) | undefined, reloadId: string): Promise<AdapterMethodResult>;
relax(callback?: () => void): Promise<AdapterMethodResult>;
showLog(): void;
}
export {};