import { FormControl } from '@angular/forms'; import { Color } from '@ionic/core'; import { ComponentState } from '../../types'; /** * Metadata for the range/slider input component. */ export interface RangeInputMetadata { /** Associated form control for single value */ control: FormControl; /** Unique token for the input */ token?: string; /** Display label */ label?: string; /** Minimum value */ min?: number; /** Maximum value */ max?: number; /** Step increment */ step?: number; /** Show pin with current value */ pin?: boolean; /** Pin format function */ pinFormatter?: (value: number) => string; /** Show tick marks */ ticks?: boolean; /** Snap to ticks */ snaps?: boolean; /** Range color */ color?: Color; /** Component state */ state?: ComponentState; /** Enable/disable range */ disabled?: boolean; /** Debounce time for ionChange event (ms) */ debounce?: number; /** Dual knobs for range selection */ dualKnobs?: boolean; /** Control for lower bound (only with dualKnobs) */ lowerControl?: FormControl; /** Control for upper bound (only with dualKnobs) */ upperControl?: FormControl; /** Show start label (min value or custom) */ startLabel?: string; /** Show end label (max value or custom) */ endLabel?: string; /** Reactive content key for label */ contentKey?: string; /** Component class name for content lookup */ contentClass?: string; /** Fallback text if contentKey is not found */ contentFallback?: string; } /** * Value emitted by range component. */ export interface RangeValue { lower?: number; upper?: number; }