1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| import type { BarMap } from './types';
|
| export const BAR_MAP: BarMap = {
| vertical: {
| offset: 'offsetHeight',
| scroll: 'scrollTop',
| scrollSize: 'scrollHeight',
| size: 'height',
| key: 'vertical',
| axis: 'Y',
| client: 'clientY',
| direction: 'top',
| },
| horizontal: {
| offset: 'offsetWidth',
| scroll: 'scrollLeft',
| scrollSize: 'scrollWidth',
| size: 'width',
| key: 'horizontal',
| axis: 'X',
| client: 'clientX',
| direction: 'left',
| },
| };
|
| // @ts-ignore
| export function renderThumbStyle({ move, size, bar }) {
| const style = {} as any;
| const translate = `translate${bar.axis}(${move}%)`;
|
| style[bar.size] = size;
| style.transform = translate;
| style.msTransform = translate;
| style.webkitTransform = translate;
|
| return style;
| }
|
| function extend<T, K>(to: T, _from: K): T & K {
| return Object.assign(to, _from);
| }
|
| export function toObject<T>(arr: Array<T>): Recordable<T> {
| const res = {};
| for (let i = 0; i < arr.length; i++) {
| if (arr[i]) {
| extend(res, arr[i]);
| }
| }
| return res;
| }
|
|