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
52
53
54
55
56
57
58
59
| import type { BarMap } from './types';
| import type { MergeAll } from '@/utils/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',
| },
| };
|
| 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 extends object, K extends object>(to: T, _from: K): T & K {
| return Object.assign(to, _from);
| }
|
| /**
| * [
| * { name: 'zhangsan', age: 18 },
| * { sex: 'male', age: 20 }
| * ]
| * =>
| * { name: 'zhangsan', sex: 'male', age: 20 }
| */
| export function toObject<T extends object[]>(arr: T): MergeAll<T> {
| const res = {} as MergeAll<T>;
| for (let i = 0; i < arr.length; i++) {
| if (arr[i]) {
| extend(res, arr[i]);
| }
| }
| return res;
| }
|
|