/// import { ChangeContext, ControlledProps } from "../form/controlled"; import { StyledProps } from "../_type"; export declare type SliderProps = SingleSliderProps | RangeSliderProps; export interface SliderCommonProps extends StyledProps { /** * 最小值 * @default 0 */ min?: number; /** * 最大值 */ max: number; /** * 刻度标记 */ marks?: SliderMarkItem[]; /** * 步长,必须大于 0,且可被 (max - min) 除尽 * @default 1 */ step?: number; /** * 是否只能拖拽到刻度上 * @default false */ markValueOnly?: boolean; /** * 是否禁用 * @default false */ disabled?: boolean; /** * 后置内容 */ after?: React.ReactNode; /** * Bubble 中提示为该函数为返回值,若为 `null` 则隐藏 * @docType (value: number) => React.ReactNode */ tipFormatter?: (value: number) => React.ReactNode; /** * 是否在滑轨上显示提示 * @default false */ enableTrackTip?: boolean; /** * 垂直模式 * @default false * @since 2.5.0 */ vertical?: boolean; } /** * 单滑块 Slider */ interface SingleSliderUniqueProps extends ControlledProps { /** * 范围选择模式 * @default false * @since 2.5.0 */ rangeMode?: false; /** * 可选范围 * @default [min, max] */ range?: [number, number] | [number, number][]; /** * 可选点值 * @since 2.7.3 */ dotValues?: number[]; /** * 多段可选范围模式 * @default false * @since 2.7.3 */ multiRangeMode?: boolean; /** * 滑动过程中 value 更新回调 */ onUpdate?: (value: number) => void; } /** * 双滑块 Slider */ interface RangeSliderUniqueProps extends ControlledProps<[number, number]> { /** * 范围选择模式 * @default false * @since 2.5.0 */ rangeMode: true; /** * 可选范围 * @default [min, max] */ range?: [number, number]; /** * 滑动过程中 value 更新回调 */ onUpdate?: (value: [number, number]) => void; } export interface SingleSliderProps extends SliderCommonProps, SingleSliderUniqueProps { } export interface RangeSliderProps extends SliderCommonProps, RangeSliderUniqueProps { } export interface SliderMarkItem { /** * 值 */ value: number; /** * 标记 */ label?: string; } export interface SliderHandleProps { classPrefix: string; vertical: boolean; offset: number; value: number; dragging?: boolean; enableTip?: boolean; tipFormatter: SliderCommonProps["tipFormatter"]; } export interface SliderTrackProps extends Omit, Pick { value: [number, number]; onChange: (value: [number, number], context: ChangeContext) => void; onUpdate?: (value: [number, number]) => void; } export {};