UNPKG

react-range

Version:

Range input. Slides in all directions.

80 lines (79 loc) 2.01 kB
import * as React from "react"; export interface ITrackBackground { min: number; max: number; values: number[]; colors: string[]; direction?: Direction; rtl?: boolean; } export interface IProps { label: string; labelledBy: string; values: number[]; min: number; max: number; step: number; direction: Direction; allowOverlap: boolean; draggableTrack: boolean; disabled: boolean; rtl: boolean; onChange: (values: number[]) => void; onFinalChange?: (values: number[]) => void; renderMark?: (params: IRenderMarkParams) => React.ReactNode; renderThumb: (params: IRenderThumbParams) => React.ReactNode; renderTrack: (params: IRenderTrackParams) => React.ReactNode; } export interface IRenderMarkParams { props: IMarkProps; index: number; } export interface IRenderThumbParams { props: IThumbProps; value: number; index: number; isDragged: boolean; } export interface IRenderTrackParams { props: ITrackProps; children: React.ReactNode; isDragged: boolean; disabled: boolean; } export interface IThumbProps { key: number; style: React.CSSProperties; tabIndex?: number; "aria-label": string; "aria-labelledby": string; "aria-valuemax": number; "aria-valuemin": number; "aria-valuenow": number; draggable: boolean; ref: React.RefObject<any>; role: string; onKeyDown: (e: React.KeyboardEvent) => void; onKeyUp: (e: React.KeyboardEvent) => void; } export interface IMarkProps { key: string; style: React.CSSProperties; ref: React.RefObject<any>; } export interface ITrackProps { style: React.CSSProperties; ref: React.RefObject<any>; onMouseDown: (e: React.MouseEvent) => void; onTouchStart: (e: React.TouchEvent) => void; } export type TThumbOffsets = { x: number; y: number; }[]; export declare enum Direction { Right = "to right", Left = "to left", Down = "to bottom", Up = "to top" }