UNPKG

3.88 kBTypeScriptView Raw
1import { Vue } from 'vue-property-decorator';
2import { Value, DataObject, MarksProp, Styles, DotOption, Dot, Direction, Position, ProcessProp, Process, TooltipProp, TooltipFormatter } from './typings';
3import { HandleFunction } from './utils';
4import Control from './utils/control';
5import State, { StateMap } from './utils/state';
6import './styles/slider.scss';
7export declare const SliderState: StateMap;
8export default class VueSlider extends Vue {
9 control: Control;
10 states: State;
11 scale: number;
12 focusDotIndex: number;
13 $refs: {
14 container: HTMLDivElement;
15 rail: HTMLDivElement;
16 };
17 $el: HTMLDivElement;
18 value: Value | Value[];
19 silent: boolean;
20 direction: Direction;
21 width?: number | string;
22 height?: number | string;
23 dotSize: [number, number] | number;
24 contained: boolean;
25 min: number;
26 max: number;
27 interval: number;
28 disabled: boolean;
29 clickable: boolean;
30 dragOnClick: boolean;
31 duration: number;
32 data?: Value[] | object[] | DataObject;
33 dataValue: string;
34 dataLabel: string;
35 lazy: boolean;
36 tooltip: TooltipProp;
37 tooltipPlacement?: Position | Position[];
38 tooltipFormatter?: TooltipFormatter | TooltipFormatter[];
39 useKeyboard?: boolean;
40 keydownHook: (e: KeyboardEvent) => HandleFunction | boolean;
41 enableCross: boolean;
42 fixed: boolean;
43 order: boolean;
44 minRange?: number;
45 maxRange?: number;
46 marks?: MarksProp;
47 process?: ProcessProp;
48 zoom?: number;
49 included?: boolean;
50 adsorb?: boolean;
51 hideLabel?: boolean;
52 dotOptions?: DotOption | DotOption[];
53 dotAttrs?: object;
54 railStyle?: Styles;
55 processStyle?: Styles;
56 dotStyle?: Styles;
57 tooltipStyle?: Styles;
58 stepStyle?: Styles;
59 stepActiveStyle?: Styles;
60 labelStyle?: Styles;
61 labelActiveStyle?: Styles;
62 get tailSize(): string;
63 get containerClasses(): (string | string[] | {
64 'vue-slider-disabled': boolean;
65 })[];
66 get containerStyles(): {
67 padding: string;
68 width: string;
69 height: string;
70 };
71 get processArray(): Process[];
72 get dotBaseStyle(): {
73 width: string;
74 height: string;
75 };
76 get mainDirection(): string;
77 get isHorizontal(): boolean;
78 get isReverse(): boolean;
79 get tooltipDirections(): Position[];
80 get dots(): Dot[];
81 get animateTime(): number;
82 get canSort(): boolean;
83 isObjectData(data?: Value[] | object[] | DataObject): data is DataObject;
84 isObjectArrayData(data?: Value[] | object[] | DataObject): data is object[];
85 get sliderData(): undefined | Value[];
86 get sliderMarks(): undefined | MarksProp;
87 get sliderTooltipFormatter(): undefined | TooltipFormatter | TooltipFormatter[];
88 onValueChanged(): void;
89 created(): void;
90 mounted(): void;
91 beforeDestroy(): void;
92 bindEvent(): void;
93 unbindEvent(): void;
94 setScale(): void;
95 initControl(): void;
96 private syncValueByPos;
97 private get isNotSync();
98 private isDiff;
99 private emitError;
100 /**
101 * Get the drag range of the slider
102 *
103 * @private
104 * @param {number} index slider index
105 * @returns {[number, number]} range [start, end]
106 * @memberof VueSlider
107 */
108 private get dragRange();
109 private dragStartOnProcess;
110 private dragStart;
111 private dragMove;
112 private isCrossDot;
113 private dragEnd;
114 private blurHandle;
115 private clickHandle;
116 focus(index?: number): void;
117 blur(): void;
118 getValue(): string | number | (string | number)[];
119 getIndex(): number | number[];
120 setValue(value: Value | Value[]): void;
121 setIndex(index: number | number[]): void;
122 setValueByPos(pos: number): false | undefined;
123 keydownHandle(e: KeyboardEvent): false | undefined;
124 private getPosByEvent;
125 private renderSlot;
126 render(): JSX.Element;
127}