UNPKG

@discoveryjs/discovery

Version:

Frontend framework for rapid data (JSON) analysis, shareable serverless reports and dashboards

97 lines (96 loc) 2.68 kB
import type { LoadDataStateProgress } from './load-data.types.js'; import { Observer } from '../observer.js'; export type ProgressbarStage = keyof typeof loadStages; export type ProgressbarTiming = { stage: ProgressbarStage; title: string; duration: number; }; export type ProgressbarOnTimingCallback = (timing: ProgressbarTiming) => void; export type ProgressbarOnFinishCallback = (timings: ProgressbarTiming[] & { awaitRepaintPenaltyTime: number; }) => void; export type ProgressbarOptions = Partial<{ onTiming: ProgressbarOnTimingCallback; onFinish: ProgressbarOnFinishCallback; domReady: Promise<any>; }>; export type ProgressbarState = { stage: ProgressbarStage; progress: LoadDataStateProgress | null; error: Error | null; }; export declare const loadStages: { inited: { value: number; duration: number; title: string; }; request: { value: number; duration: number; title: string; }; receiving: { value: number; duration: number; title: string; }; decoding: { value: number; duration: number; title: string; }; received: { value: number; duration: number; title: string; }; prepare: { value: number; duration: number; title: string; }; initui: { value: number; duration: number; title: string; }; done: { value: number; duration: number; title: string; }; error: { value: number; duration: number; title: string; }; }; export declare function decodeStageProgress(stage: ProgressbarStage, progress: ProgressbarState['progress'], step?: string): { stageTitle: string; progressValue: number; progressText: string | null; stepText: string; title: string; }; export declare class Progressbar extends Observer<ProgressbarState> { #private; startTime: number | null; lastStageStartTime: number | null; awaitRepaintPenaltyTime: number; finished: boolean; awaitRepaint: number | null; timings: ProgressbarTiming[]; onTiming: ProgressbarOnTimingCallback; onFinish: ProgressbarOnFinishCallback; appearanceDelay: number; domReady: Promise<any>; el: HTMLElement; constructor({ onTiming, onFinish, domReady }: ProgressbarOptions); recordTiming(stage: ProgressbarStage, start: number, end?: number): void; setState(state: Partial<ProgressbarState>, step?: string): Promise<void>; setStateStep(step: string): Promise<void>; finish(error?: Error): void; dispose(): void; }