@surveycake/rc
Version:
react component of surveycake
46 lines (45 loc) • 1.46 kB
TypeScript
import React, { ReactNode, CSSProperties, HTMLAttributes } from 'react';
export declare type SlideEvent = MouseEvent | TouchEvent;
export declare type ReactMouseEvent = React.MouseEvent;
export declare type ReactTouchEvent = React.TouchEvent;
export declare type ReactSlideEvent = ReactMouseEvent | ReactTouchEvent;
export declare type Mark = ReactNode | {
style?: CSSProperties;
label: ReactNode;
};
export interface Marks {
[point: number]: Mark;
}
export interface InputSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onDragEnd'> {
className?: string;
/**
* If `true`, the slider will be vertical.
*/
vertical?: boolean;
size?: number;
value: number;
min?: number;
max?: number;
step?: number;
/**
* If `true`, it will render the slider with dots.
*/
dots?: boolean;
marks?: Marks;
/**
* Will be triggered when `onTouchStart` or `onMouseDown` is triggered.
*/
onBeforeChange?: (value: number) => void;
/**
* Will be triggerd when `onMouseMove` or `onTouchMove` is trigged.
*/
onChange?: (value: number) => void;
/**
* Will be triggered when `onTouchEnd` or `onMouseUp` is triggered.
*/
onAfterChange?: (value: number) => void;
/**
* Only trigged when value changed by clicked on rail or marks.
*/
onClickChange?: (value: number) => void;
}