UNPKG

element-plus

Version:

A Component Library for Vue3.0

100 lines (99 loc) 2.98 kB
import { ComputedRef, Ref } from 'vue'; export interface ISliderProps { modelValue: number | number[]; min: number; max: number; step: number; showInput: boolean; showInputControls: boolean; inputSize: string; showStops: boolean; showTooltip: boolean; formatTooltip: (val: number) => number | string; disabled: boolean; range: boolean; vertical: boolean; height: string; debounce: number; label: string; tooltipClass: string; marks?: Record<number, any>; } export interface ISliderInitData { firstValue: Nullable<number>; secondValue: Nullable<number>; oldValue: Nullable<number>; dragging: boolean; sliderSize: number; } export interface ISliderProvider { disabled: ComputedRef<boolean>; min: ComputedRef<number>; max: ComputedRef<number>; step: ComputedRef<number>; showTooltip: ComputedRef<boolean>; precision: ComputedRef<number>; sliderSize: ComputedRef<number>; formatTooltip: ComputedRef<(value: number) => number | string>; emitChange: () => void; resetSize: () => void; updateDragging: (val: boolean) => void; } export declare type Mark = { point: number; position: number; mark: { [s: string]: any; }; }; export declare type Marks = ComputedRef<Mark[]>; export declare type Stops = { stops: ComputedRef<number[]>; getStopStyle: (position: number) => CSSStyleDeclaration; }; export declare type Slide = { slider: Ref<HTMLElement>; firstButton: Ref<ISliderButton>; secondButton: Ref<ISliderButton>; sliderDisabled: ComputedRef<boolean>; minValue: ComputedRef<number>; maxValue: ComputedRef<number>; runwayStyle: ComputedRef<CSSStyleDeclaration>; barStyle: ComputedRef<CSSStyleDeclaration>; resetSize: () => void; setPosition: (percent: number) => void; emitChange: () => void; onSliderClick: (event: MouseEvent) => void; }; export declare type ButtonRefs = { [s in 'firstButton' | 'secondButton']: Ref<Nullable<ISliderButton>>; }; export interface ISliderButtonProps { modelValue: number; vertical: boolean; tooltipClass: string; } export interface ISliderButtonInitData { hovering: boolean; dragging: boolean; isClick: boolean; startX: number; currentX: number; startY: number; currentY: number; startPosition: number; newPosition: number; oldValue: number; } export interface ISliderButton { tooltip: Ref<Nullable<HTMLElement>>; showTooltip: Ref<boolean>; wrapperStyle: ComputedRef<CSSStyleDeclaration>; formatValue: ComputedRef<number | string>; handleMouseEnter: () => void; handleMouseLeave: () => void; onButtonDown: (event: MouseEvent | TouchEvent) => void; onLeftKeyDown: () => void; onRightKeyDown: () => void; setPosition: (newPosition: number) => void; }