vscroll
Version:
Virtual scroll engine
36 lines (35 loc) • 1.07 kB
TypeScript
import { Scroller } from '../scroller';
import { CommonProcess, AdapterProcess, ProcessStatus } from '../processes/index';
import { IDatasourceConstructed } from './datasource';
import { IAdapterInput } from './adapter';
export type ProcessName = CommonProcess | AdapterProcess;
export interface ProcessClass {
process: ProcessName;
run: (scroller: Scroller, ...args: any[]) => void;
name: string;
}
export interface ProcessPayload {
process?: ProcessName;
options?: unknown;
event?: Event;
finalize?: boolean;
doClip?: boolean;
doRender?: boolean;
datasource?: IDatasourceConstructed;
error?: unknown;
}
export interface ProcessSubject {
process: ProcessName;
status: ProcessStatus;
payload?: ProcessPayload;
}
export type AdapterProcessMap<T> = {
[key in AdapterProcess]: T;
};
export interface IBaseProcess {
new (): any;
process: ProcessName;
}
export interface IBaseAdapterProcess extends IBaseProcess {
parseInput: <T>(scroller: Scroller, options: T, ignoreErrors?: boolean, process?: AdapterProcess) => IAdapterInput<T>;
}