import { EaFormAssociatedBase } from '../../core/EaFormAssociatedBase'; export type SliderSize = "large" | "default" | "small"; export type SliderPlacement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end"; /** * @summary 滑块组件,通过拖动滑块在固定区间内进行选择,支持离散值、标记点和输入框。 * @status stable * @since 3.0 * * @dependency ea-tooltip * @dependency ea-input-number * * @slot default - 默认插槽(暂未使用)。 * * @event change - 值改变时触发(拖拽结束),detail: `{ value: number }`。 * @event input - 拖动时触发,detail: `{ value: number }`。 * * @csspart form-label - 标签元素。 * @csspart container - 根容器。 * @csspart runway - 轨道容器。 * @csspart rail - 轨道背景。 * @csspart bar - 已填充轨道。 * @csspart stop - 步长节点。 * @csspart mark-stop - 标记点节点。 * @csspart trigger - 触发器容器(ea-tooltip)。 * @csspart thumb - 滑块按钮。 * @csspart tooltip - 提示框内容。 * @csspart marks - 标记容器。 * @csspart mark - 标记项。 * @csspart mark-label - 标记标签。 * @csspart input - 输入框(ea-input-number)。 * * @cssproperty --ea-slider-height - 轨道高度。 * @cssproperty --ea-slider-height-small - 小尺寸轨道高度。 * @cssproperty --ea-slider-height-large - 大尺寸轨道高度。 * @cssproperty --ea-slider-thumb-size - 滑块按钮尺寸。 * @cssproperty --ea-slider-thumb-size-small - 小尺寸滑块按钮尺寸。 * @cssproperty --ea-slider-thumb-size-large - 大尺寸滑块按钮尺寸。 * @cssproperty --ea-slider-rail-bg-color - 轨道背景颜色。 * @cssproperty --ea-slider-bar-bg-color - 已填充轨道颜色。 * @cssproperty --ea-slider-thumb-bg-color - 滑块按钮背景颜色。 * @cssproperty --ea-slider-thumb-border-color - 滑块按钮边框颜色。 * @cssproperty --ea-slider-transition - 过渡动画时长。 */ export declare class EaSlider extends EaFormAssociatedBase { private _label; private _container; private _rail; private _bar; private _trigger; private _thumb; private _tooltip; private _marks; private _input; private _inputAbortController?; private _states; label: string; value: number; min: number; max: number; showStops: boolean; step: number; disabled: boolean; vertical: boolean; showTooltip: boolean; placement: SliderPlacement; showInput: boolean; size: SliderSize | ""; required: boolean; marks: Record | null; formatTooltip: (value: number) => number | string; updateContainerClasslist(): string; html(): string; /** 渲染 stops 和 mark-stop 节点到 rail 中 */ private _renderStops; /** 渲染 mark 标签到 marks 容器中 */ private _renderMarkLabels; /** 统一渲染 stops 和 marks */ private _renderMarks; /** * 根据步长精度修正数值 * @param value - 需要修正精度的数值 * @returns 修正精度后的数值 */ private _fixPrecision; /** * 根据鼠标位置计算滑块值 * @param position - 鼠标的 clientX 或 clientY 坐标 * @returns 计算并修正精度后的滑块值 */ private _getValueFromPosition; /** 更新滑块位置、bar 宽度、tooltip 内容、输入框值及容器类名 */ private _updateSlider; /** * 处理 showInput 属性变化,管理输入框事件监听 * @param newVal - showInput 的新值 */ private _handleShowInputChange; /** * 在轨道上按下鼠标,开始拖拽并跳转到点击位置 * @param e - 鼠标事件 */ private _onMouseDown; /** * 在滑块上按下鼠标,开始拖拽 * @param e - 鼠标事件 */ private _onThumbMouseDown; /** * 文档级鼠标移动,拖拽中更新滑块值 * @param e - 鼠标事件 */ private _onMouseMove; /** 文档级鼠标松开,结束拖拽 */ private _onMouseUp; /** * 键盘事件处理,支持 WAI-ARIA Slider Pattern 规范的键盘交互 * @param e - 键盘事件 */ private _onKeyDown; /** 失去焦点时隐藏 tooltip */ private _onBlur; /** 鼠标进入滑块,显示 tooltip */ private _onThumbMouseEnter; /** 鼠标离开滑块,隐藏 tooltip */ private _onThumbMouseLeave; /** * 处理 ea-input-number 的 ea-change 事件 * @param e - 自定义事件 */ private _onInputChange; get validationTarget(): HTMLElement; updateValidity(): void; checkValidity(): boolean; reportValidity(): boolean; $mount(): void; $beforeUnmount(): void; } //# sourceMappingURL=index.d.ts.map