@arco-design/web-react
Version:
Arco Design React UI Library.
123 lines (122 loc) • 4.18 kB
TypeScript
import { CSSProperties, ReactNode } from 'react';
import { InputNumberProps } from '../InputNumber';
export declare type TooltipPosition = 'top' | 'tl' | 'tr' | 'bottom' | 'bl' | 'br' | 'left' | 'lt' | 'lb' | 'right' | 'rt' | 'rb';
/**
* @title Slider
*/
export interface SliderProps {
style?: CSSProperties;
className?: string | string[];
/**
* @zh 控制 tooltip 的展示。设置为 `true` 时,将一直展示 tooltip。设置为 `false` 时,将一直隐藏 tooltip。
* @en If true, `Tooltip` will show always, or it will hidden anyway, even if dragging or hovering
*/
tooltipVisible?: boolean;
/**
* @zh tooltip 的位置
* @en The position of the tooltip
*/
tooltipPosition?: 'top' | 'tl' | 'tr' | 'bottom' | 'bl' | 'br' | 'left' | 'lt' | 'lb' | 'right' | 'rt' | 'rb';
/**
* @zh 是否禁用
* @en Whether to disable the component
*/
disabled?: boolean;
/**
* @zh 滑动范围最小值
* @en Minimum value of sliding range
* @defaultValue 0
*/
min?: number;
/**
* @zh 滑动范围最大值
* @en Maximum value of sliding range
* @defaultValue 100
*/
max?: number;
/**
* @zh 是否是范围选择
* @en Whether to allow range selection
* @version 2.14.0
*/
range?: boolean | {
draggableBar: boolean;
};
/**
* @zh 步长
* @en Slide the value of one step
* @defaultValue 1
*/
step?: number;
/**
* @zh 是否显示步长刻度线
* @en Whether to display step tick marks
*/
showTicks?: boolean;
/**
* @zh 标签。是一个对象。key 为在[min, max]内的整数。
* @en The labels on the render ruler. `marks` is an Object, it's `key` is an integer within [min, max].
*/
marks?: Record<number, ReactNode>;
/**
* @zh 针对区间配置,返回区间步长和相对于整个滑动轴的宽度比例(如 0.5 或 "50%")。**只在`marks`场景下生效**
* @en For interval configuration, returns the interval step size and the ratio of the width relative to the entire sliding axis (e.g. 0.5 or "50%"). **Only valid in `marks` scene**
* @version 2.30.0
*/
getIntervalConfig?: (range: number[], index: number) => {
step?: number;
width?: number | string;
};
/**
* @zh 只能选择标签值,此时step将会被忽略
* @en Whether only the mark value can be selected
*/
onlyMarkValue?: boolean;
/**
* @zh 默认值
* @en To set default value
*/
defaultValue?: number | number[];
/**
* @zh 值
* @en To set value
*/
value?: number | number[];
/**
* @zh 是否竖直方向
* @en Whether to display the slider in the vertical direction
*/
vertical?: boolean;
/**
* @zh 是否展示输入框,`onlyMarkValue` 为 `true` 或范围内多点选择时输入框始终隐藏。可接受 `InputNumber` 的 `props`。
* @en Whether to display the input box. When setting `onlyMarkValue` to `true` or selecting multiple points within the range, the input box will never be displayed. Accepts `props` for `InputNumber`.
* @version `InputNumberProps` in `2.32.0`
*/
showInput?: boolean | InputNumberProps | InputNumberProps[];
/**
* @zh 设置 `tooltip` 所插入的父元素
* @en The parent node which the `tooltip` will be rendered to
*/
getTooltipContainer?: () => Element;
/**
* @zh 格式化 `tooltip` 内容
* @en Format the content of `tooltip`
*/
formatTooltip?: (value: number) => string | ReactNode;
/**
* @zh 反向坐标轴, `rtl` 场景默认为 `true`
* @en Reverse axis, default `true` in `rtl`
*/
reverse?: boolean;
/**
* @zh 触发时机在 `mouseup`,参数是当前值
* @en Callback when `onmouseup` is fired
* @version 2.20.0
*/
onAfterChange?: (val: number | number[]) => void;
/**
* @zh 选择值变化时触发
* @en Callback when the user changed the slider's value
*/
onChange?: (val: number | number[]) => void;
}