import Component from '@glimmer/component'; import { EuiRangeInputArgs } from '../eui-range-input/types'; import { EuiRangeSliderArgs } from '../eui-range-slider/types'; import { EuiFormControlLayoutArgs } from '../eui-form-control-layout/types'; import { EuiRangeArgs } from '../eui-range'; import { EuiRangeLevel } from '../eui-range-levels'; import { EuiRangeTick } from '../eui-range-ticks'; declare type ValueMember = number | string; export interface EuiDualRangeArgs extends Omit { value: [ValueMember, ValueMember]; onBlur?: (event: HTMLInputElement | HTMLDivElement) => void; onFocus?: (event: HTMLInputElement | HTMLDivElement) => void; onChange: (values: [ValueMember, ValueMember], isValid: boolean, event: Event | MouseEvent | KeyboardEvent) => void; fullWidth?: boolean; isInvalid?: boolean; /** * Create colored indicators for certain intervals */ levels?: EuiRangeLevel[]; /** * Shows static min/max labels on the sides of the range slider */ showLabels?: boolean; /** * Pass `true` to displays an extra input control for direct manipulation. * Pass `'inputWithPopover'` to only show the input but show the range in a dropdown. */ showInput?: EuiRangeArgs['showInput']; /** * Modifies the number of tick marks and at what interval */ tickInterval?: number; /** * Specified ticks at specified values */ ticks?: EuiRangeTick[]; /** * Creates an input group with element(s) coming before input. Will only show if `showInput = inputWithPopover`. * `string` | `Component` or an array of these */ prepend?: EuiFormControlLayoutArgs['prepend']; /** * Creates an input group with element(s) coming after input. Will only show if `showInput = inputWithPopover`. * `string` | `Component` or an array of these */ append?: EuiFormControlLayoutArgs['append']; /** * Intended to be uses with aria attributes. Some attributes may be overwritten. */ minInputProps?: Partial; /** * Intended to be uses with aria attributes. Some attributes may be overwritten. */ maxInputProps?: Partial; } export default class EuiDualRangeComponent extends Component { min: number; max: number; step: number; fullWidth: boolean; compressed: boolean; showLabels: boolean; showInput: boolean | string; showRange: boolean; showTicks: boolean; levels: EuiRangeLevel[]; id: string; hasFocus: boolean; rangeSliderRefAvailable: boolean; isPopoverOpen: boolean; rangeWidth: number | undefined; isVisible: boolean; preventPopoverClose: boolean; rangeSliderRef: HTMLInputElement | null; didInsertRangeSlider(ref: HTMLInputElement | null): void; get lowerValue(): string | number; get upperValue(): string | number; get lowerValueIsValid(): boolean; get upperValueIsValid(): boolean; get isValid(): boolean; _determineInvalidThumbMovement(newVal: ValueMember, lower: ValueMember, upper: ValueMember, e: Event): void; _determineValidThumbMovement(newVal: ValueMember, lower: ValueMember, upper: ValueMember, e: Event): void; _determineThumbMovement(newVal: number, e: Event): void; _handleOnChange(lower: ValueMember, upper: ValueMember, e: Event): void; handleSliderChange(e: Event & { currentTarget: HTMLInputElement; }): void; _resetToRangeEnds(e: KeyboardEvent): void; _isDirectionalKeyPress(event: KeyboardEvent): boolean; handleInputKeyDown(e: KeyboardEvent): void; handleLowerInputChange(e: Event & { target: HTMLInputElement; }): void; handleUpperInputChange(e: Event & { target: HTMLInputElement; }): void; _handleKeyDown(value: ValueMember, event: KeyboardEvent): number; handleLowerKeyDown(event: KeyboardEvent): void; handleUpperKeyDown(event: KeyboardEvent): void; calculateThumbPositionStyle(value: number, width?: number): { left: string; }; setPreventPopoverClose(value: boolean): void; get calculateLowerValueThumbPositionStyle(): { left: string; }; get calculateUpperValueThumbPositionStyle(): { left: string; }; toggleHasFocus(): void; onThumbFocus(e: HTMLDivElement): void; onThumbBlur(e: HTMLDivElement): void; onInputFocus(e: HTMLInputElement): void; onInputBlur(e: HTMLInputElement): void; closePopover(): void; onResize(width?: number): void; get digitTolerance(): number; get showInputOnly(): boolean; get canShowDropdown(): boolean; } export {};