import * as _angular_core from '@angular/core'; import { ElementRef } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; /** * @license * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE */ /** * Value type accepted by ``: * - `number` for single-thumb sliders (`range="false"`, the default) * - `[number, number]` (`[low, high]`) for range sliders (`range="true"`) * * The component reads `range` at runtime and writes back the matching shape * through `ControlValueAccessor`. */ type WrSliderValue = number | readonly [number, number]; /** Trim float drift from step calculations. */ /** * Numeric slider with optional dual-thumb range mode. * * Implements `ControlValueAccessor` — works with `[(ngModel)]`, * `formControl`, `formControlName`. The value shape depends on `range`: * `number` (default) or `[number, number]` when `range="true"`. * * Keyboard: ← / → adjust by `step`; ↑ / ↓ same; Shift+arrow by `step × 10`; * Home / End jump to min / max; PageUp / PageDown by `step × 10`. * * @example * ```html * * * ``` * * @see https://ngwr.dev/components/slider */ declare class WrSlider implements ControlValueAccessor { /** Lower bound. @default 0 */ readonly min: _angular_core.InputSignalWithTransform; /** Upper bound. @default 100 */ readonly max: _angular_core.InputSignalWithTransform; /** Step size for keyboard and drag. @default 1 */ readonly step: _angular_core.InputSignalWithTransform; /** Render two thumbs and emit `[low, high]`. @default false */ readonly range: _angular_core.InputSignalWithTransform; /** Disable interaction. @default false */ readonly disabled: _angular_core.InputSignalWithTransform; /** Render the current value below the track. @default true */ readonly showLabel: _angular_core.InputSignalWithTransform; protected readonly low: _angular_core.WritableSignal; protected readonly high: _angular_core.WritableSignal; private readonly disabledFromCva; protected readonly effectiveDisabled: _angular_core.Signal; protected readonly track: _angular_core.Signal>; protected readonly classes: _angular_core.Signal; protected readonly lowPercent: _angular_core.Signal; protected readonly highPercent: _angular_core.Signal; protected readonly fillLeft: _angular_core.Signal; protected readonly fillWidth: _angular_core.Signal; protected readonly label: _angular_core.Signal; private onChange; private onTouched; writeValue(v: WrSliderValue | null): void; registerOnChange(fn: (v: WrSliderValue) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; protected onPointerDown(event: PointerEvent, thumb: 'low' | 'high'): void; protected onTrackPointerDown(event: PointerEvent): void; protected onKey(event: KeyboardEvent, thumb: 'low' | 'high'): void; private updateFromEvent; private nearestThumb; private focusThumb; private setThumb; private snap; private clampToBounds; private percentOf; private emitChange; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { WrSlider }; export type { WrSliderValue };