import type { AgGaugeDataMapping, AgGaugeStyle } from './shared/agGaugeShared'; import type { AgTypography } from './shared/agTypography'; import type { AgWidgetData, AgWidgetDataFormat } from './shared/agWidget'; /** * Gauge label configuration for displaying the value. */ export interface AgRadialGaugeLabel { /** * Whether the label is displayed. */ enabled?: boolean; /** * Typography settings for the label. */ typography?: AgTypography; /** * Label text color as a CSS color value. */ color?: string; } /** * Secondary label configuration for radial gauge caption. * Displayed below the main value label. */ export interface AgRadialGaugeSecondaryLabel { /** * Whether the secondary label is displayed. */ enabled?: boolean; /** * Secondary label text content. */ text?: string; /** * Typography settings for the secondary label. */ typography?: AgTypography; /** * Secondary label text color as a CSS color value. */ color?: string; } /** * Style configuration for radial gauge. */ export interface AgRadialGaugeStyle extends AgGaugeStyle { /** * Value label configuration (main numeric display). */ label?: AgRadialGaugeLabel; /** * Secondary label configuration (caption below value). */ secondaryLabel?: AgRadialGaugeSecondaryLabel; } /** * Format configuration for radial gauge widget. */ export type AgRadialGaugeFormat = AgWidgetDataFormat; /** * Complete configuration for a Radial Gauge widget. * Displays a circular gauge showing progress toward a target. * * @example * const radialGauge: AgRadialGauge = { * format: { * title: { text: 'Completion Rate', enabled: true }, * style: { * label: { enabled: true, typography: { fontSize: 24 } }, * secondaryLabel: { enabled: true, text: 'of target' } * } * }, * dataMapping: { * value: [{ id: 'completion', aggregation: 'avg' }] * } * }; */ export interface AgRadialGauge extends AgWidgetData { /** * Widget type identifier. */ type: 'radial-gauge'; }