vscroll
Version:
Virtual scroll engine
31 lines (30 loc) • 1.33 kB
TypeScript
import { Scroller } from './scroller';
import { Reactive } from './classes/reactive';
import { Item } from './classes/item';
import { WorkflowParams, ProcessName, ProcessPayload, ProcessClass, ProcessSubject, WorkflowError, InterruptParams, StateMachineMethods, ScrollerWorkflow } from './interfaces/index';
export declare class Workflow<ItemData = unknown> {
isInitialized: boolean;
disposed: boolean;
initTimer: ReturnType<typeof setTimeout> | null;
adapterRun$: Reactive<ProcessSubject>;
cyclesDone: number;
cyclesDone$: Reactive<number>;
interruptionCount: number;
errors: WorkflowError[];
private offScroll;
readonly propagateChanges: WorkflowParams<ItemData>['run'];
readonly stateMachineMethods: StateMachineMethods<ItemData>;
scroller: Scroller<ItemData>;
constructor(params: WorkflowParams<ItemData>);
init(): void;
changeItems(items: Item<ItemData>[]): void;
callWorkflow(processSubject: ProcessSubject): void;
getUpdater(): ScrollerWorkflow<ItemData>;
process(data: ProcessSubject): void;
runProcess(): ({ run, process, name }: ProcessClass) => (...args: unknown[]) => void;
onError(process: ProcessName, payload?: ProcessPayload): void;
interrupt({ process, finalize, datasource }: InterruptParams<ItemData>): void;
done(): void;
dispose(): void;
finalize(): void;
}