decentraland-ui
Version:
Decentraland's UI components and styles
69 lines (68 loc) • 2.27 kB
TypeScript
import * as React from 'react';
import './SliderField.css';
interface SliderBaseProps {
header: string;
className?: string;
valueFrom?: number;
valueTo?: number;
min?: number;
max?: number;
labelFrom?: string | JSX.Element;
labelTo?: string | JSX.Element;
}
interface RangeSliderProps extends SliderBaseProps {
range: true;
step?: number;
defaultValue?: readonly [number, number];
label?: string | React.PureComponent<{
value: readonly [number, number];
}>;
onChange?: (ev: React.ChangeEvent<HTMLInputElement>, data: readonly [number, number]) => void;
onMouseUp?: (ev: React.MouseEvent<HTMLInputElement>, data: readonly [number, number]) => void;
}
interface SimpleSliderProps extends SliderBaseProps {
range?: false;
step?: undefined;
defaultValue?: number;
label?: string | React.PureComponent<{
value: number;
}>;
onChange?: (ev: React.ChangeEvent<HTMLInputElement>, data: number) => void;
onMouseUp?: (ev: React.MouseEvent<HTMLInputElement>, data: number) => void;
}
export declare type SliderFieldProps = SimpleSliderProps | RangeSliderProps;
export declare enum SliderLastInteraction {
'from' = 0,
'to' = 1
}
export declare const SliderDefault: {
MIN: number;
MAX: number;
FROM: number;
TO: number;
};
export declare type SliderFieldState = {
from: number;
to: number;
lastInteraction: SliderLastInteraction;
};
export declare type SliderFieldLeftRightStyle = {
left: string | number;
right: string;
};
export declare class SliderField extends React.PureComponent<SliderFieldProps, SliderFieldState> {
state: {
from: number;
to: number;
lastInteraction: SliderLastInteraction;
};
componentDidMount(): void;
componentDidUpdate(prevProps: Readonly<SliderFieldProps>): void;
handleChangeFrom: (e: React.ChangeEvent<HTMLInputElement>) => void;
handleChangeTo: (e: React.ChangeEvent<HTMLInputElement>) => void;
handleMouseUp: (e: React.MouseEvent<HTMLInputElement>) => void;
getTrackStyles: (min: number, max: number) => SliderFieldLeftRightStyle;
getMarkStyle: (min: number, max: number) => SliderFieldLeftRightStyle;
render(): JSX.Element;
}
export {};