ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
38 lines (37 loc) • 1.35 kB
TypeScript
import { Listeners } from '../../util/listeners';
import type { AnimationManager } from '../interaction/animationManager';
interface DataSourceCallbackParams {
windowStart?: Date;
windowEnd?: Date;
}
type DataSourceCallback = (params: DataSourceCallbackParams) => Promise<unknown>;
type EventType = 'data-source-change' | 'data-load' | 'data-error';
type EventHandler<D extends object> = (() => void) | ((event: DataLoadEvent<D>) => void);
export interface DataLoadEvent<D extends object> {
type: 'data-load';
data: D[];
}
export declare class DataService<D extends object> extends Listeners<EventType, EventHandler<D>> {
private readonly animationManager;
dispatchOnlyLatest: boolean;
dispatchThrottle: number;
requestThrottle: number;
private dataSourceCallback?;
private isLoadingInitialData;
private isLoadingData;
private freshRequests;
private requestCounter;
private readonly debug;
private throttledFetch;
private throttledDispatch;
constructor(animationManager: AnimationManager);
updateCallback(dataSourceCallback: DataSourceCallback): void;
clearCallback(): void;
load(params: DataSourceCallbackParams): void;
isLazy(): boolean;
isLoading(): boolean;
private createThrottledFetch;
private createThrottledDispatch;
private fetch;
}
export {};