@keplr-wallet/unit 0.9.9 → 0.9.11-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/coin-pretty.d.ts +13 -3
- package/build/coin-pretty.js +36 -25
- package/build/coin-pretty.js.map +1 -1
- package/build/coin-pretty.spec.js +194 -9
- package/build/coin-pretty.spec.js.map +1 -1
- package/build/coin-utils.js +8 -4
- package/build/coin-utils.js.map +1 -1
- package/build/coin-utils.spec.js +16 -0
- package/build/coin-utils.spec.js.map +1 -1
- package/build/coin.js +1 -1
- package/build/coin.js.map +1 -1
- package/build/coin.spec.js +15 -0
- package/build/coin.spec.js.map +1 -1
- package/build/dec-utils.d.ts +8 -1
- package/build/dec-utils.js +22 -20
- package/build/dec-utils.js.map +1 -1
- package/build/dec-utils.spec.js +19 -0
- package/build/dec-utils.spec.js.map +1 -1
- package/build/decimal.d.ts +22 -9
- package/build/decimal.js +102 -29
- package/build/decimal.js.map +1 -1
- package/build/decimal.spec.js +296 -3
- package/build/decimal.spec.js.map +1 -1
- package/build/etc.d.ts +4 -0
- package/build/etc.js +63 -0
- package/build/etc.js.map +1 -0
- package/build/etc.spec.d.ts +1 -0
- package/build/etc.spec.js +66 -0
- package/build/etc.spec.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/int-pretty.d.ts +16 -4
- package/build/int-pretty.js +74 -36
- package/build/int-pretty.js.map +1 -1
- package/build/int-pretty.spec.js +261 -94
- package/build/int-pretty.spec.js.map +1 -1
- package/build/int.d.ts +17 -12
- package/build/int.js +69 -16
- package/build/int.js.map +1 -1
- package/build/int.spec.d.ts +1 -0
- package/build/int.spec.js +161 -0
- package/build/int.spec.js.map +1 -0
- package/build/price-pretty.d.ts +13 -3
- package/build/price-pretty.js +37 -26
- package/build/price-pretty.js.map +1 -1
- package/build/price-pretty.spec.js +59 -2
- package/build/price-pretty.spec.js.map +1 -1
- package/build/rate-pretty.d.ts +57 -0
- package/build/rate-pretty.js +128 -0
- package/build/rate-pretty.js.map +1 -0
- package/build/rate-pretty.spec.d.ts +1 -0
- package/build/rate-pretty.spec.js +38 -0
- package/build/rate-pretty.spec.js.map +1 -0
- package/package.json +3 -3
- package/src/coin-pretty.spec.ts +304 -11
- package/src/coin-pretty.ts +56 -29
- package/src/coin-utils.spec.ts +32 -0
- package/src/coin-utils.ts +12 -4
- package/src/coin.spec.ts +20 -0
- package/src/coin.ts +1 -1
- package/src/dec-utils.spec.ts +39 -0
- package/src/dec-utils.ts +25 -20
- package/src/decimal.spec.ts +361 -3
- package/src/decimal.ts +135 -56
- package/src/etc.spec.ts +73 -0
- package/src/etc.ts +70 -0
- package/src/index.ts +1 -0
- package/src/int-pretty.spec.ts +296 -101
- package/src/int-pretty.ts +87 -34
- package/src/int.spec.ts +212 -0
- package/src/int.ts +94 -26
- package/src/price-pretty.spec.ts +106 -2
- package/src/price-pretty.ts +50 -30
- package/src/rate-pretty.spec.ts +52 -0
- package/src/rate-pretty.ts +165 -0
package/build/price-pretty.js
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.PricePretty = void 0;
|
4
4
|
const int_pretty_1 = require("./int-pretty");
|
5
|
-
const decimal_1 = require("./decimal");
|
6
5
|
const dec_utils_1 = require("./dec-utils");
|
7
6
|
class PricePretty {
|
8
7
|
constructor(_fiatCurrency, amount) {
|
@@ -14,17 +13,12 @@ class PricePretty {
|
|
14
13
|
lowerCase: false,
|
15
14
|
locale: "en-US",
|
16
15
|
};
|
17
|
-
|
18
|
-
this.intPretty = new int_pretty_1.IntPretty(amount.toDec());
|
19
|
-
}
|
20
|
-
else {
|
21
|
-
this.intPretty = new int_pretty_1.IntPretty(amount);
|
22
|
-
}
|
23
|
-
this.intPretty = this.intPretty
|
16
|
+
this.intPretty = new int_pretty_1.IntPretty(amount)
|
24
17
|
.maxDecimals(_fiatCurrency.maxDecimals)
|
25
18
|
.shrink(true)
|
26
19
|
.trim(true)
|
27
|
-
.locale(false)
|
20
|
+
.locale(false)
|
21
|
+
.inequalitySymbol(true);
|
28
22
|
this._options.locale = _fiatCurrency.locale;
|
29
23
|
}
|
30
24
|
get options() {
|
@@ -53,26 +47,43 @@ class PricePretty {
|
|
53
47
|
pretty._options.upperCase = !bool;
|
54
48
|
return pretty;
|
55
49
|
}
|
56
|
-
|
50
|
+
moveDecimalPointLeft(delta) {
|
57
51
|
const pretty = this.clone();
|
58
|
-
pretty.intPretty = pretty.intPretty.
|
52
|
+
pretty.intPretty = pretty.intPretty.moveDecimalPointLeft(delta);
|
59
53
|
return pretty;
|
60
54
|
}
|
61
|
-
|
55
|
+
moveDecimalPointRight(delta) {
|
62
56
|
const pretty = this.clone();
|
63
|
-
pretty.intPretty = pretty.intPretty.
|
57
|
+
pretty.intPretty = pretty.intPretty.moveDecimalPointRight(delta);
|
64
58
|
return pretty;
|
65
59
|
}
|
60
|
+
/**
|
61
|
+
* @deprecated Use`moveDecimalPointLeft`
|
62
|
+
*/
|
63
|
+
increasePrecision(delta) {
|
64
|
+
return this.moveDecimalPointLeft(delta);
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* @deprecated Use`moveDecimalPointRight`
|
68
|
+
*/
|
66
69
|
decreasePrecision(delta) {
|
67
|
-
|
68
|
-
pretty.intPretty = pretty.intPretty.decreasePrecision(delta);
|
69
|
-
return pretty;
|
70
|
+
return this.moveDecimalPointRight(delta);
|
70
71
|
}
|
71
72
|
maxDecimals(max) {
|
72
73
|
const pretty = this.clone();
|
73
74
|
pretty.intPretty = pretty.intPretty.maxDecimals(max);
|
74
75
|
return pretty;
|
75
76
|
}
|
77
|
+
inequalitySymbol(bool) {
|
78
|
+
const pretty = this.clone();
|
79
|
+
pretty.intPretty = pretty.intPretty.inequalitySymbol(bool);
|
80
|
+
return pretty;
|
81
|
+
}
|
82
|
+
inequalitySymbolSeparator(str) {
|
83
|
+
const pretty = this.clone();
|
84
|
+
pretty.intPretty = pretty.intPretty.inequalitySymbolSeparator(str);
|
85
|
+
return pretty;
|
86
|
+
}
|
76
87
|
trim(bool) {
|
77
88
|
const pretty = this.clone();
|
78
89
|
pretty.intPretty = pretty.intPretty.trim(bool);
|
@@ -136,19 +147,19 @@ class PricePretty {
|
|
136
147
|
}
|
137
148
|
const dec = this.toDec();
|
138
149
|
const options = this.options;
|
139
|
-
if (
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
maximumFractionDigits: options.maxDecimals,
|
144
|
-
});
|
145
|
-
return `< ${symbol}${this._options.separator}${precisionLocaleString}`;
|
146
|
-
}
|
150
|
+
if (options.inequalitySymbol &&
|
151
|
+
!dec.isZero() &&
|
152
|
+
dec.abs().lt(dec_utils_1.DecUtils.getTenExponentN(-options.maxDecimals))) {
|
153
|
+
return this.intPretty.toStringWithSymbols(`${symbol}${this._options.separator}`, "");
|
147
154
|
}
|
148
|
-
|
155
|
+
let localeString = parseFloat(this.intPretty.toString()).toLocaleString(options.locale, {
|
149
156
|
maximumFractionDigits: options.maxDecimals,
|
150
157
|
});
|
151
|
-
|
158
|
+
const isNeg = localeString.charAt(0) === "-";
|
159
|
+
if (isNeg) {
|
160
|
+
localeString = localeString.slice(1);
|
161
|
+
}
|
162
|
+
return `${isNeg ? "-" : ""}${symbol}${this._options.separator}${localeString}`;
|
152
163
|
}
|
153
164
|
clone() {
|
154
165
|
const pretty = new PricePretty(this._fiatCurrency, this.amount);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"price-pretty.js","sourceRoot":"","sources":["../src/price-pretty.ts"],"names":[],"mappings":";;;AAAA,6CAA2D;
|
1
|
+
{"version":3,"file":"price-pretty.js","sourceRoot":"","sources":["../src/price-pretty.ts"],"names":[],"mappings":"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"}
|
@@ -13,18 +13,75 @@ describe("Test PricePretty", () => {
|
|
13
13
|
expect(pretty.toString()).toBe("$12.1");
|
14
14
|
expect(pretty.increasePrecision(1).toString()).toBe("$1.21");
|
15
15
|
expect(pretty.decreasePrecision(1).toString()).toBe("$121");
|
16
|
-
expect(pretty.
|
17
|
-
expect(pretty.
|
16
|
+
expect(pretty.moveDecimalPointLeft(1).toString()).toBe("$1.21");
|
17
|
+
expect(pretty.moveDecimalPointRight(1).toString()).toBe("$121");
|
18
18
|
expect(pretty.add(new decimal_1.Dec("0.1")).toString()).toBe("$12.2");
|
19
19
|
expect(pretty.sub(new decimal_1.Dec("0.1")).toString()).toBe("$12");
|
20
20
|
expect(pretty.mul(new decimal_1.Dec("0.1")).toString()).toBe("$1.21");
|
21
21
|
expect(pretty.quo(new decimal_1.Dec("0.1")).toString()).toBe("$121");
|
22
|
+
expect(new price_pretty_1.PricePretty({
|
23
|
+
currency: "usd",
|
24
|
+
symbol: "$",
|
25
|
+
maxDecimals: 2,
|
26
|
+
locale: "en-US",
|
27
|
+
}, new decimal_1.Dec("0")).toString()).toBe("$0");
|
28
|
+
expect(new price_pretty_1.PricePretty({
|
29
|
+
currency: "usd",
|
30
|
+
symbol: "$",
|
31
|
+
maxDecimals: 2,
|
32
|
+
locale: "en-US",
|
33
|
+
}, new decimal_1.Dec("-0")).toString()).toBe("$0");
|
22
34
|
expect(new price_pretty_1.PricePretty({
|
23
35
|
currency: "usd",
|
24
36
|
symbol: "$",
|
25
37
|
maxDecimals: 2,
|
26
38
|
locale: "en-US",
|
27
39
|
}, new decimal_1.Dec("0.001")).toString()).toBe("< $0.01");
|
40
|
+
expect(new price_pretty_1.PricePretty({
|
41
|
+
currency: "usd",
|
42
|
+
symbol: "$",
|
43
|
+
maxDecimals: 2,
|
44
|
+
locale: "en-US",
|
45
|
+
}, new decimal_1.Dec("0.001"))
|
46
|
+
.inequalitySymbol(false)
|
47
|
+
.toString()).toBe("$0");
|
48
|
+
expect(new price_pretty_1.PricePretty({
|
49
|
+
currency: "usd",
|
50
|
+
symbol: "$",
|
51
|
+
maxDecimals: 2,
|
52
|
+
locale: "en-US",
|
53
|
+
}, new decimal_1.Dec("-0.001")).toString()).toBe("> -$0.01");
|
54
|
+
expect(new price_pretty_1.PricePretty({
|
55
|
+
currency: "usd",
|
56
|
+
symbol: "$",
|
57
|
+
maxDecimals: 2,
|
58
|
+
locale: "en-US",
|
59
|
+
}, new decimal_1.Dec("-0.001"))
|
60
|
+
.inequalitySymbol(false)
|
61
|
+
.toString()
|
62
|
+
// TODO: Delete the case of "-0". Return "0"
|
63
|
+
).toBe("-$0");
|
64
|
+
expect(new price_pretty_1.PricePretty({
|
65
|
+
currency: "usd",
|
66
|
+
symbol: "$",
|
67
|
+
maxDecimals: 3,
|
68
|
+
locale: "en-US",
|
69
|
+
}, new decimal_1.Dec("0.001")).toString()).toBe("$0.001");
|
70
|
+
expect(new price_pretty_1.PricePretty({
|
71
|
+
currency: "usd",
|
72
|
+
symbol: "$",
|
73
|
+
maxDecimals: 3,
|
74
|
+
locale: "en-US",
|
75
|
+
}, new decimal_1.Dec("-0.001")).toString()).toBe("-$0.001");
|
76
|
+
// PricePretty's maxDecimals behave differently than IntPretty.
|
77
|
+
expect(new price_pretty_1.PricePretty({
|
78
|
+
currency: "usd",
|
79
|
+
symbol: "$",
|
80
|
+
maxDecimals: 4,
|
81
|
+
locale: "en-US",
|
82
|
+
}, new decimal_1.Dec("0.001"))
|
83
|
+
.trim(false)
|
84
|
+
.toString()).toBe("$0.001");
|
28
85
|
});
|
29
86
|
});
|
30
87
|
//# sourceMappingURL=price-pretty.spec.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"price-pretty.spec.js","sourceRoot":"","sources":["../src/price-pretty.spec.ts"],"names":[],"mappings":";;AAAA,iDAA6C;AAC7C,uCAAgC;AAEhC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,0BAAW,CAC5B;YACE,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,OAAO;SAChB,EACD,IAAI,aAAG,CAAC,SAAS,CAAC,CACnB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"price-pretty.spec.js","sourceRoot":"","sources":["../src/price-pretty.spec.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import { IntPretty, IntPrettyOptions } from "./int-pretty";
|
2
|
+
import { Dec } from "./decimal";
|
3
|
+
import { DeepReadonly } from "utility-types";
|
4
|
+
import bigInteger from "big-integer";
|
5
|
+
export declare type RatePrettyOptions = {
|
6
|
+
separator: string;
|
7
|
+
symbol: string;
|
8
|
+
};
|
9
|
+
/**
|
10
|
+
* RatePretty treats `Dec` in rate form for easy calculation, and displays it as a percentage to the user by using toString().
|
11
|
+
* By default, if the value is less than maxDeciamls, it is displayed using an inequality sign (Ex. < 0.001%)
|
12
|
+
*/
|
13
|
+
export declare class RatePretty {
|
14
|
+
protected amount: Dec | {
|
15
|
+
toDec(): Dec;
|
16
|
+
} | bigInteger.BigNumber;
|
17
|
+
protected intPretty: IntPretty;
|
18
|
+
protected _options: RatePrettyOptions;
|
19
|
+
constructor(amount: Dec | {
|
20
|
+
toDec(): Dec;
|
21
|
+
} | bigInteger.BigNumber);
|
22
|
+
get options(): DeepReadonly<Omit<IntPrettyOptions, "locale"> & RatePrettyOptions>;
|
23
|
+
separator(str: string): RatePretty;
|
24
|
+
symbol(str: string): RatePretty;
|
25
|
+
moveDecimalPointLeft(delta: number): RatePretty;
|
26
|
+
moveDecimalPointRight(delta: number): RatePretty;
|
27
|
+
maxDecimals(max: number): RatePretty;
|
28
|
+
inequalitySymbol(bool: boolean): RatePretty;
|
29
|
+
inequalitySymbolSeparator(str: string): RatePretty;
|
30
|
+
trim(bool: boolean): RatePretty;
|
31
|
+
shrink(bool: boolean): RatePretty;
|
32
|
+
locale(locale: boolean): RatePretty;
|
33
|
+
/**
|
34
|
+
* Ready indicates the actual value is ready to show the users.
|
35
|
+
* Even if the ready option is false, it expects that the value can be shown to users (probably as 0).
|
36
|
+
* The method that returns prettied value may return `undefined` or `null` if the value is not ready.
|
37
|
+
* But, alternatively, it can return the 0 value that can be shown the users anyway, but indicates that the value is not ready.
|
38
|
+
* @param bool
|
39
|
+
*/
|
40
|
+
ready(bool: boolean): RatePretty;
|
41
|
+
get isReady(): boolean;
|
42
|
+
add(target: Dec | {
|
43
|
+
toDec(): Dec;
|
44
|
+
}): RatePretty;
|
45
|
+
sub(target: Dec | {
|
46
|
+
toDec(): Dec;
|
47
|
+
}): RatePretty;
|
48
|
+
mul(target: Dec | {
|
49
|
+
toDec(): Dec;
|
50
|
+
}): RatePretty;
|
51
|
+
quo(target: Dec | {
|
52
|
+
toDec(): Dec;
|
53
|
+
}): RatePretty;
|
54
|
+
toDec(): Dec;
|
55
|
+
toString(): string;
|
56
|
+
clone(): RatePretty;
|
57
|
+
}
|
@@ -0,0 +1,128 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.RatePretty = void 0;
|
4
|
+
const int_pretty_1 = require("./int-pretty");
|
5
|
+
/**
|
6
|
+
* RatePretty treats `Dec` in rate form for easy calculation, and displays it as a percentage to the user by using toString().
|
7
|
+
* By default, if the value is less than maxDeciamls, it is displayed using an inequality sign (Ex. < 0.001%)
|
8
|
+
*/
|
9
|
+
class RatePretty {
|
10
|
+
constructor(amount) {
|
11
|
+
this.amount = amount;
|
12
|
+
this._options = {
|
13
|
+
separator: "",
|
14
|
+
symbol: "%",
|
15
|
+
};
|
16
|
+
this.intPretty = new int_pretty_1.IntPretty(amount);
|
17
|
+
this.intPretty = this.intPretty
|
18
|
+
.maxDecimals(3)
|
19
|
+
.shrink(false)
|
20
|
+
.trim(true)
|
21
|
+
.locale(true)
|
22
|
+
.inequalitySymbol(true);
|
23
|
+
}
|
24
|
+
get options() {
|
25
|
+
return Object.assign(Object.assign({}, this.intPretty.options), this._options);
|
26
|
+
}
|
27
|
+
separator(str) {
|
28
|
+
const pretty = this.clone();
|
29
|
+
pretty._options.separator = str;
|
30
|
+
return pretty;
|
31
|
+
}
|
32
|
+
symbol(str) {
|
33
|
+
const pretty = this.clone();
|
34
|
+
pretty._options.symbol = str;
|
35
|
+
return pretty;
|
36
|
+
}
|
37
|
+
moveDecimalPointLeft(delta) {
|
38
|
+
const pretty = this.clone();
|
39
|
+
pretty.intPretty = pretty.intPretty.moveDecimalPointLeft(delta);
|
40
|
+
return pretty;
|
41
|
+
}
|
42
|
+
moveDecimalPointRight(delta) {
|
43
|
+
const pretty = this.clone();
|
44
|
+
pretty.intPretty = pretty.intPretty.moveDecimalPointRight(delta);
|
45
|
+
return pretty;
|
46
|
+
}
|
47
|
+
maxDecimals(max) {
|
48
|
+
const pretty = this.clone();
|
49
|
+
pretty.intPretty = pretty.intPretty.maxDecimals(max);
|
50
|
+
return pretty;
|
51
|
+
}
|
52
|
+
inequalitySymbol(bool) {
|
53
|
+
const pretty = this.clone();
|
54
|
+
pretty.intPretty = pretty.intPretty.inequalitySymbol(bool);
|
55
|
+
return pretty;
|
56
|
+
}
|
57
|
+
inequalitySymbolSeparator(str) {
|
58
|
+
const pretty = this.clone();
|
59
|
+
pretty.intPretty = pretty.intPretty.inequalitySymbolSeparator(str);
|
60
|
+
return pretty;
|
61
|
+
}
|
62
|
+
trim(bool) {
|
63
|
+
const pretty = this.clone();
|
64
|
+
pretty.intPretty = pretty.intPretty.trim(bool);
|
65
|
+
return pretty;
|
66
|
+
}
|
67
|
+
shrink(bool) {
|
68
|
+
const pretty = this.clone();
|
69
|
+
pretty.intPretty = pretty.intPretty.shrink(bool);
|
70
|
+
return pretty;
|
71
|
+
}
|
72
|
+
locale(locale) {
|
73
|
+
const pretty = this.clone();
|
74
|
+
pretty.intPretty = pretty.intPretty.locale(locale);
|
75
|
+
return pretty;
|
76
|
+
}
|
77
|
+
/**
|
78
|
+
* Ready indicates the actual value is ready to show the users.
|
79
|
+
* Even if the ready option is false, it expects that the value can be shown to users (probably as 0).
|
80
|
+
* The method that returns prettied value may return `undefined` or `null` if the value is not ready.
|
81
|
+
* But, alternatively, it can return the 0 value that can be shown the users anyway, but indicates that the value is not ready.
|
82
|
+
* @param bool
|
83
|
+
*/
|
84
|
+
ready(bool) {
|
85
|
+
const pretty = this.clone();
|
86
|
+
pretty.intPretty = pretty.intPretty.ready(bool);
|
87
|
+
return pretty;
|
88
|
+
}
|
89
|
+
get isReady() {
|
90
|
+
return this.intPretty.isReady;
|
91
|
+
}
|
92
|
+
add(target) {
|
93
|
+
const pretty = this.clone();
|
94
|
+
pretty.intPretty = pretty.intPretty.add(target);
|
95
|
+
return pretty;
|
96
|
+
}
|
97
|
+
sub(target) {
|
98
|
+
const pretty = this.clone();
|
99
|
+
pretty.intPretty = pretty.intPretty.sub(target);
|
100
|
+
return pretty;
|
101
|
+
}
|
102
|
+
mul(target) {
|
103
|
+
const pretty = this.clone();
|
104
|
+
pretty.intPretty = pretty.intPretty.mul(target);
|
105
|
+
return pretty;
|
106
|
+
}
|
107
|
+
quo(target) {
|
108
|
+
const pretty = this.clone();
|
109
|
+
pretty.intPretty = pretty.intPretty.quo(target);
|
110
|
+
return pretty;
|
111
|
+
}
|
112
|
+
toDec() {
|
113
|
+
return this.intPretty.toDec();
|
114
|
+
}
|
115
|
+
toString() {
|
116
|
+
return this.intPretty
|
117
|
+
.moveDecimalPointRight(2)
|
118
|
+
.toStringWithSymbols("", `${this._options.separator}${this._options.symbol}`);
|
119
|
+
}
|
120
|
+
clone() {
|
121
|
+
const pretty = new RatePretty(this.amount);
|
122
|
+
pretty._options = Object.assign({}, this._options);
|
123
|
+
pretty.intPretty = this.intPretty.clone();
|
124
|
+
return pretty;
|
125
|
+
}
|
126
|
+
}
|
127
|
+
exports.RatePretty = RatePretty;
|
128
|
+
//# sourceMappingURL=rate-pretty.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rate-pretty.js","sourceRoot":"","sources":["../src/rate-pretty.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const rate_pretty_1 = require("./rate-pretty");
|
4
|
+
const decimal_1 = require("./decimal");
|
5
|
+
describe("Test RatePretty", () => {
|
6
|
+
it("Basic test for RatePretty", () => {
|
7
|
+
const pretty = new rate_pretty_1.RatePretty(new decimal_1.Dec("0.3"));
|
8
|
+
expect(pretty.toDec().equals(new decimal_1.Dec("0.3"))).toBe(true);
|
9
|
+
expect(pretty.toDec().toString(1)).toBe("0.3");
|
10
|
+
expect(pretty.toString()).toBe("30%");
|
11
|
+
expect(pretty.moveDecimalPointLeft(1).toString()).toBe("3%");
|
12
|
+
expect(pretty.moveDecimalPointRight(1).toString()).toBe("300%");
|
13
|
+
expect(pretty.add(new decimal_1.Dec("0.1")).toString()).toBe("40%");
|
14
|
+
expect(pretty.add(new decimal_1.Dec("0.1")).toDec().toString(1)).toBe("0.4");
|
15
|
+
expect(pretty.sub(new decimal_1.Dec("0.1")).toString()).toBe("20%");
|
16
|
+
expect(pretty.sub(new decimal_1.Dec("0.1")).toDec().toString(1)).toBe("0.2");
|
17
|
+
expect(pretty.mul(new decimal_1.Dec("0.1")).toString()).toBe("3%");
|
18
|
+
expect(pretty.mul(new decimal_1.Dec("0.1")).toDec().toString(2)).toBe("0.03");
|
19
|
+
expect(pretty.quo(new decimal_1.Dec("0.1")).toString()).toBe("300%");
|
20
|
+
expect(pretty.quo(new decimal_1.Dec("0.1")).toDec().toString(1)).toBe("3.0");
|
21
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.001")).toString()).toBe("0.1%");
|
22
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.00001")).toString()).toBe("0.001%");
|
23
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.000001")).toString()).toBe("< 0.001%");
|
24
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0")).toString()).toBe("0%");
|
25
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("-0")).toString()).toBe("0%");
|
26
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.000001")).separator(" ").symbol("?").toString()).toBe("< 0.001 ?");
|
27
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.000001")).inequalitySymbol(false).toString()).toBe("0%");
|
28
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("0.000001"))
|
29
|
+
.inequalitySymbol(false)
|
30
|
+
.maxDecimals(4)
|
31
|
+
.toString()).toBe("0.0001%");
|
32
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("-0.000001")).toString()).toBe("> -0.001%");
|
33
|
+
expect(new rate_pretty_1.RatePretty(new decimal_1.Dec("-0.000001")).inequalitySymbol(false).toString()
|
34
|
+
// TODO: Delete the case of "-0". Return "0"
|
35
|
+
).toBe("-0%");
|
36
|
+
});
|
37
|
+
});
|
38
|
+
//# sourceMappingURL=rate-pretty.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rate-pretty.spec.js","sourceRoot":"","sources":["../src/rate-pretty.spec.ts"],"names":[],"mappings":";;AAAA,+CAA2C;AAC3C,uCAAgC;AAEhC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnE,MAAM,CAAC,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExE,MAAM,CAAC,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5D,MAAM,CACJ,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAC1E,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpB,MAAM,CACJ,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CACvE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CACJ,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,UAAU,CAAC,CAAC;aAChC,gBAAgB,CAAC,KAAK,CAAC;aACvB,WAAW,CAAC,CAAC,CAAC;aACd,QAAQ,EAAE,CACd,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElB,MAAM,CAAC,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE1E,MAAM,CACJ,IAAI,wBAAU,CAAC,IAAI,aAAG,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;QACvE,4CAA4C;SAC7C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@keplr-wallet/unit",
|
3
|
-
"version": "0.9.
|
3
|
+
"version": "0.9.11-rc.2",
|
4
4
|
"main": "build/index.js",
|
5
5
|
"author": "chainapsis",
|
6
6
|
"license": "Apache-2.0",
|
@@ -17,9 +17,9 @@
|
|
17
17
|
"lint-fix": "eslint --fix \"src/**/*\" && prettier --write \"src/**/*\""
|
18
18
|
},
|
19
19
|
"dependencies": {
|
20
|
-
"@keplr-wallet/types": "^0.9.
|
20
|
+
"@keplr-wallet/types": "^0.9.10",
|
21
21
|
"big-integer": "^1.6.48",
|
22
22
|
"utility-types": "^3.10.0"
|
23
23
|
},
|
24
|
-
"gitHead": "
|
24
|
+
"gitHead": "29bce88e7ac753a7ab548261f4ed53ac99da143d"
|
25
25
|
}
|