1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.calcSi = exports.findSi = exports.SI = exports.SI_MID = void 0;
|
4 |
|
5 | exports.SI_MID = 8;
|
6 |
|
7 | exports.SI = [
|
8 | { power: -24, text: 'yocto', value: 'y' },
|
9 | { power: -21, text: 'zepto', value: 'z' },
|
10 | { power: -18, text: 'atto', value: 'a' },
|
11 | { power: -15, text: 'femto', value: 'f' },
|
12 | { power: -12, text: 'pico', value: 'p' },
|
13 | { power: -9, text: 'nano', value: 'n' },
|
14 | { power: -6, text: 'micro', value: 'µ' },
|
15 | { power: -3, text: 'milli', value: 'm' },
|
16 | { power: 0, text: 'Unit', value: '-' },
|
17 | { power: 3, text: 'Kilo', value: 'k' },
|
18 | { power: 6, text: 'Mill', value: 'M' },
|
19 | { power: 9, text: 'Bill', value: 'B' },
|
20 | { power: 12, text: 'Tril', value: 'T' },
|
21 | { power: 15, text: 'Peta', value: 'P' },
|
22 | { power: 18, text: 'Exa', value: 'E' },
|
23 | { power: 21, text: 'Zeta', value: 'Z' },
|
24 | { power: 24, text: 'Yotta', value: 'Y' }
|
25 | ];
|
26 |
|
27 | function findSi(type) {
|
28 |
|
29 | for (let i = 0, count = exports.SI.length; i < count; i++) {
|
30 | if (exports.SI[i].value === type) {
|
31 | return exports.SI[i];
|
32 | }
|
33 | }
|
34 | return exports.SI[exports.SI_MID];
|
35 | }
|
36 | exports.findSi = findSi;
|
37 |
|
38 | function calcSi(text, decimals, forceUnit) {
|
39 | if (forceUnit) {
|
40 | return findSi(forceUnit);
|
41 | }
|
42 | const siDefIndex = (exports.SI_MID - 1) + Math.ceil((text.length - decimals) / 3);
|
43 | return exports.SI[siDefIndex] || exports.SI[siDefIndex < 0 ? 0 : exports.SI.length - 1];
|
44 | }
|
45 | exports.calcSi = calcSi;
|