/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { FormComponentProps, DraggableDragEvent } from '@progress/kendo-vue-common'; import { Direction } from '../interfaces/Direction'; /** * The range object representing the value of the RangeSlider. */ export type Range = { /** * The start of the range. */ start: number; /** * The end of the range. */ end: number; }; /** * Represents the properties of [RangeSlider](% slug api_inputs_rangeslider %) component. */ export interface RangeSliderProps extends FormComponentProps { /** * Sets the `id` property of the top div element of the RangeSlider. */ id?: string; /** * The flexible values of type Range - `start and `end`. */ value?: Range; /** * The default set values of type Range - `start` and `end`. */ defaultValue?: Range; /** * Triggered after value change - gets outside access to the element, new values and the event type. */ onChange?: (event: RangeSliderChangeEvent) => void; /** * The step by which the value is increment/decrement. */ step?: number; /** * The minimum possible value of the RangeSlider. */ min: number; /** * The maximum possible value of the RangeSlider. */ max: number; /** * The RangeSlider orientation if true - vertical, else - horizontal. */ vertical?: boolean; /** * Determines the disabled mode of the RangeSlider, if true - disabled. */ disabled?: boolean; /** * The RangeSlider direction `ltr` or `rtl`. */ dir?: Direction | string; /** * Sets the `tabIndex` attribute to the `start` drag handle. */ startTabIndex?: number; /** * Sets the `tabIndex` attribute to the `end` drag handle. */ endTabIndex?: number; /** * Identifies the element(s) which will describe the component, similar to [HTML aria-describedby attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute). * For example these elements could contain error or hint message. */ ariaDescribedBy?: string; /** * Identifies the element(s) which will label the component. */ ariaLabelledBy?: string; } /** * Represents the target(element and props) of the RangeSliderChangeEvent. */ export interface RangeSliderHandle { /** * The current element or `null` if there is no one. */ element: HTMLDivElement | null; /** * The props values of the RangeSlider. */ props: RangeSliderProps; /** * The focus event callback. */ focus: () => void; } /** * Represent the return type of RangeSliderChangeEvent. */ export interface RangeSliderChangeEvent { /** * The value from type Range - `start` and `end`. */ value: Range; /** * The target of the RangeSliderChangeEvent from RangeSliderHandle. */ target: RangeSliderHandle; /** * The event of the RangeSliderChangeEvent. */ event: any | DraggableDragEvent; } /** * @hidden */ export interface RangeSliderComputed { [key: string]: any; computedValue: any; percentStart: number; percentEnd: number; sliderItemsStyle: object; trackStyles: object; } /** * Represents the [Kendo UI for Vue Native RangeSlider component]({% slug overview_rangeslider %}). * Accepts properties of type [RangeSliderProps]({% slug api_inputs_rangesliderprops %}). * Obtaining the `ref` returns an object of type [RangeSliderHandle]({% slug api_inputs_rangesliderhandle %}). */ declare const RangeSlider: import('vue').DefineComponent boolean; }; defaultValue: { type: ObjectConstructor; default: () => { start: number; end: number; }; validator: (value: any) => boolean; }; step: { type: NumberConstructor; default: number; }; min: { type: NumberConstructor; required: true; }; max: { type: NumberConstructor; required: true; }; vertical: BooleanConstructor; disabled: BooleanConstructor; dir: { type: StringConstructor; default: string; validator: (value: any) => any; }; startTabIndex: NumberConstructor; endTabIndex: NumberConstructor; }>, { inputRef: import('vue').Ref; kendoLocalizationService: {}; }, { currentValue: Record; currentDrag: string; currentDir: string; }, { computedValue(): any; percentStart(): number; percentEnd(): number; sliderItemsStyle(): { paddingTop: number; height: string; } | { paddingTop?: undefined; height?: undefined; }; trackStyles(): { marginTop: string; marginBottom: string; marginLeft?: undefined; marginRight?: undefined; } | { marginLeft: string; marginRight: string; marginTop?: undefined; marginBottom?: undefined; }; }, { dispatchStateValue(args: any): void; focus(): void; handleChange(newValue: any, event: any | DraggableDragEvent): void; calcNewDistance(event: any): any; calcKey(payload: any): "start" | "end"; handleStartKeyDown(event: any): void; handleEndKeyDown(event: any): void; handleTrackPress(event: any): void; handleTrackDrag(event: any): void; handleTrackRelease(event: any): void; }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly boolean; }; defaultValue: { type: ObjectConstructor; default: () => { start: number; end: number; }; validator: (value: any) => boolean; }; step: { type: NumberConstructor; default: number; }; min: { type: NumberConstructor; required: true; }; max: { type: NumberConstructor; required: true; }; vertical: BooleanConstructor; disabled: BooleanConstructor; dir: { type: StringConstructor; default: string; validator: (value: any) => any; }; startTabIndex: NumberConstructor; endTabIndex: NumberConstructor; }>> & Readonly<{}>, { dir: string; vertical: boolean; disabled: boolean; defaultValue: Record; step: number; }, {}, {}, {}, string, () => { kendoMin: any; kendoMax: any; kendoVertical: any; }, true, {}, any>; export { RangeSlider };