import { IReadonlyObservableValue, ObservableValue } from '../../Core/Observable'; export interface IProgressBarProps { /** * Optional className to apply to the progress bar container div. */ className?: string; /** * Current value of the progress bar. This should be a number between 0 and maxValue. */ currentValue: IReadonlyObservableValue | number; /** * Max value the progress bar can reach. */ maxValue: number; /** * Optional className to apply to the actual progress bar. */ progressBarClassName?: string; /** * Duration of the transition in milliseconds * @default 150 */ transitionDuration?: number; /** * Optional aria-label for the progress bar */ ariaLabel?: string; } export interface IIndeterminateProgressBarProps { /** * Optional className to apply to the progress bar container div. */ className?: string; /** * Is the progress bar still loading. * undefined: The gray bar will appear, but the progress bar will not start increasing. * true: The grey bar will appear, a progress bar will slowly fill the width of the gray bar * false: The progress bar will be rendered the full width of the bar, loadingAnimationComplete will be called * when the animation is completed. */ loading?: ObservableValue | boolean; /** * Callback for when the animation is complete. This is usually used to unmount the control. */ loadingAnimationComplete?: () => void; /** * Optional className to apply to the actual progress bar. */ progressBarClassName?: string; }