1 | import { getMedian, getMean } from './stat';
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | export function getNormalizedValue(val, scale) {
|
8 | if (!scale) {
|
9 | return null;
|
10 | }
|
11 | var scaled;
|
12 | switch (val) {
|
13 | case 'start':
|
14 | return 0;
|
15 | case 'center':
|
16 | return 0.5;
|
17 | case 'end':
|
18 | return 1;
|
19 | case 'median': {
|
20 | scaled = scale.isCategory ? getMedian(scale.values.map(function (_, idx) { return idx; })) : getMedian(scale.values);
|
21 | break;
|
22 | }
|
23 | case 'mean': {
|
24 | scaled = scale.isCategory ? (scale.values.length - 1) / 2 : getMean(scale.values);
|
25 | break;
|
26 | }
|
27 | case 'min':
|
28 | scaled = scale.isCategory ? 0 : scale[val];
|
29 | break;
|
30 | case 'max':
|
31 | scaled = scale.isCategory ? scale.values.length - 1 : scale[val];
|
32 | break;
|
33 | default:
|
34 | scaled = val;
|
35 | break;
|
36 | }
|
37 | return scale.scale(scaled);
|
38 | }
|
39 |
|
\ | No newline at end of file |