export interface dataMap { value: number; max: number; } export interface TextStyle { display?: boolean; fontFamily?: string; fontSize: number; color: string; fontWeight: any; letterSpacing?: number | string; } export interface ShadowConfig { display: boolean; shadowColor: string; extend: number; vague: number; } export interface InMargin { vermargin: number; leftMargin: number; rightMargin: number; } export interface OutBorder { display?: boolean; outBorderDisplay?: boolean; bgColor: string; borderWidth: number; borderColor: string; radius: number; inMargin: InMargin; } export interface ProgressStyleSection { min: number; max: number; startColor?: string; endColor?: string; multiColor?: any; noneColor?: string; } export interface GridConfig { height: number; width: number; space: number; radius: number; bgColor: string; gradientRange: 'global' | 'local' | 'none'; colorType?: 'bicolor' | 'multicolor'; startColor?: string; endColor?: string; multiColor?: any; noneColor?: string; progressSection: boolean; progressStyleSection?: ProgressStyleSection[]; } export interface ProgressConfig { barRadius: number; outShadow: ShadowConfig; inShadow: ShadowConfig; gridConfig: GridConfig; outBorder: OutBorder; } export interface MessageBg { display: boolean; type: string; bgColor?: string; imageUrl?: string; borderColor: string; borderWidth: number; radius?: number; } export interface TextConfig { horiOffset: number; vertOffset: number; textStyle: TextStyle; trueValue: boolean; unit: string; negativeing: string; decimal: number; round: boolean; } export interface MessageStyleSection { min: number; max: number; messageBg: MessageBg; textConfig: TextStyle; } export interface MessageConfig { display: boolean; width: number; height: number; position: string; inArrangement?: string; outArrangement?: string; horiOffset: number; vertOffset: number; messageBg: MessageBg; textConfig: TextConfig; messageSection: boolean; messageStyleSection: MessageStyleSection[]; showType?: 'default' | 'hover'; } export interface AnimateConfig { display: boolean; type: string; timer: number; proportion: number; } export type DataHandler = (data: dataMap) => void; export interface ProgressBarProps { data?: dataMap[]; w?: number; progressConfig?: ProgressConfig; message?: MessageConfig; animateConfig?: AnimateConfig; onDataChange?: DataHandler; }