chowa
Version:
UI component library based on React
83 lines (82 loc) • 2.52 kB
TypeScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import * as PropTypes from 'prop-types';
export declare type DragBtn = 'begin' | 'end';
export interface SliderProps {
className?: string;
style?: React.CSSProperties;
tabIndex?: number;
range?: boolean;
mode?: 'horizontal' | 'vertical';
defaultValue?: number | number[];
value?: number | number[];
marks?: {
[step: number]: string | {
label: string;
style: React.CSSProperties;
};
};
min?: number;
max?: number;
onChange?: (value: number | number[]) => void;
step?: number;
disabled?: boolean;
formatter?: (num: number) => React.ReactNode;
}
export interface SliderState {
begin?: number;
end?: number;
isDraging: boolean;
dragBtn: DragBtn;
distance: number;
}
declare class Slider extends React.PureComponent<SliderProps, SliderState> {
static propTypes: {
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
tabIndex: PropTypes.Requireable<number>;
range: PropTypes.Requireable<boolean>;
mode: PropTypes.Requireable<string>;
defaultValue: PropTypes.Requireable<number | any[]>;
value: PropTypes.Requireable<number | any[]>;
marks: PropTypes.Requireable<object>;
min: PropTypes.Requireable<number>;
max: PropTypes.Requireable<number>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
step: PropTypes.Requireable<number>;
disabled: PropTypes.Requireable<boolean>;
formatter: PropTypes.Requireable<(...args: any[]) => any>;
};
static defaultProps: {
tabIndex: number;
range: boolean;
mode: string;
min: number;
max: number;
step: number;
disabled: boolean;
};
private railEle;
constructor(props: SliderProps);
componentDidUpdate(preProps: SliderProps): void;
private compileRenderParams;
private onMarkStepClick;
private onDragStart;
private onDraging;
private onDragEnd;
private onRailClickHandler;
private onKeyDownHandler;
private normalize;
private getValues;
private triggerChange;
private renderMarks;
render(): JSX.Element;
}
export default Slider;