@ledgerhq/coin-module-framework 1.1.0 → 2.0.1
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/.unimportedrc.json +0 -1
- package/CHANGELOG.md +12 -0
- package/lib/config.d.ts +3 -4
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +2 -2
- package/lib/config.js.map +1 -1
- package/lib/currencies/BigNumberToLocaleString.d.ts +7 -0
- package/lib/currencies/BigNumberToLocaleString.d.ts.map +1 -0
- package/lib/currencies/BigNumberToLocaleString.js +58 -0
- package/lib/currencies/BigNumberToLocaleString.js.map +1 -0
- package/lib/currencies/formatCurrencyUnit.d.ts +25 -1
- package/lib/currencies/formatCurrencyUnit.d.ts.map +1 -1
- package/lib/currencies/formatCurrencyUnit.js +130 -4
- package/lib/currencies/formatCurrencyUnit.js.map +1 -1
- package/lib/currencies/localeUtility.d.ts +8 -0
- package/lib/currencies/localeUtility.d.ts.map +1 -0
- package/lib/currencies/localeUtility.js +51 -0
- package/lib/currencies/localeUtility.js.map +1 -0
- package/lib/currencies/parseCurrencyUnit.d.ts +2 -1
- package/lib/currencies/parseCurrencyUnit.d.ts.map +1 -1
- package/lib/currencies/parseCurrencyUnit.js +9 -2
- package/lib/currencies/parseCurrencyUnit.js.map +1 -1
- package/lib-es/config.d.ts +3 -4
- package/lib-es/config.d.ts.map +1 -1
- package/lib-es/config.js +2 -2
- package/lib-es/config.js.map +1 -1
- package/lib-es/currencies/BigNumberToLocaleString.d.ts +7 -0
- package/lib-es/currencies/BigNumberToLocaleString.d.ts.map +1 -0
- package/lib-es/currencies/BigNumberToLocaleString.js +54 -0
- package/lib-es/currencies/BigNumberToLocaleString.js.map +1 -0
- package/lib-es/currencies/formatCurrencyUnit.d.ts +25 -1
- package/lib-es/currencies/formatCurrencyUnit.d.ts.map +1 -1
- package/lib-es/currencies/formatCurrencyUnit.js +127 -1
- package/lib-es/currencies/formatCurrencyUnit.js.map +1 -1
- package/lib-es/currencies/localeUtility.d.ts +8 -0
- package/lib-es/currencies/localeUtility.d.ts.map +1 -0
- package/lib-es/currencies/localeUtility.js +48 -0
- package/lib-es/currencies/localeUtility.js.map +1 -0
- package/lib-es/currencies/parseCurrencyUnit.d.ts +2 -1
- package/lib-es/currencies/parseCurrencyUnit.d.ts.map +1 -1
- package/lib-es/currencies/parseCurrencyUnit.js +8 -1
- package/lib-es/currencies/parseCurrencyUnit.js.map +1 -1
- package/package.json +5 -5
- package/src/api/types.ts +1 -1
- package/src/config.ts +4 -5
- package/src/currencies/BigNumberToLocaleString.test.ts +164 -0
- package/src/currencies/BigNumberToLocaleString.ts +70 -0
- package/src/currencies/formatCurrencyUnit.test.ts +215 -0
- package/src/currencies/formatCurrencyUnit.ts +200 -6
- package/src/currencies/localeUtility.test.ts +22 -0
- package/src/currencies/localeUtility.ts +59 -0
- package/src/currencies/parseCurrencyUnit.test.ts +26 -0
- package/src/currencies/parseCurrencyUnit.ts +10 -1
package/.unimportedrc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ledgerhq/coin-module-framework
|
|
2
2
|
|
|
3
|
+
## 2.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#492](https://github.com/LedgerHQ/alpaca-coin-module/pull/492) [`fb14c85`](https://github.com/LedgerHQ/alpaca-coin-module/commit/fb14c857eae51571cc1d6540503edd71c0259ed4) Thanks [@francois-guerin-ledger](https://github.com/francois-guerin-ledger)! - chore(coin-module-framework): update comment in `api/types.ts`
|
|
8
|
+
|
|
9
|
+
## 2.0.0
|
|
10
|
+
|
|
11
|
+
### Major Changes
|
|
12
|
+
|
|
13
|
+
- [#476](https://github.com/LedgerHQ/alpaca-coin-module/pull/476) [`be0b606`](https://github.com/LedgerHQ/alpaca-coin-module/commit/be0b606ee8ea7d7a365abe39a59465bc00daaf94) Thanks [@francois-guerin-ledger](https://github.com/francois-guerin-ledger)! - chore(coin-module-framework): remove @ledgerhq external dependencies
|
|
14
|
+
|
|
3
15
|
## 1.1.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/lib/config.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { CryptoCurrency, CryptoCurrencyId } from '@ledgerhq/types-cryptoassets';
|
|
2
1
|
import type { FeatureConfig } from './features/types';
|
|
3
2
|
type ConfigStatus = {
|
|
4
3
|
type: 'active';
|
|
@@ -8,7 +7,7 @@ type ConfigStatus = {
|
|
|
8
7
|
message?: string;
|
|
9
8
|
} | {
|
|
10
9
|
type: 'migration';
|
|
11
|
-
chain:
|
|
10
|
+
chain: string;
|
|
12
11
|
from: string;
|
|
13
12
|
to: string;
|
|
14
13
|
link: string;
|
|
@@ -34,10 +33,10 @@ export type CurrencyConfig = {
|
|
|
34
33
|
customBanner?: Banner;
|
|
35
34
|
[key: string]: unknown;
|
|
36
35
|
};
|
|
37
|
-
export type CoinConfig<T extends CurrencyConfig> = (
|
|
36
|
+
export type CoinConfig<T extends CurrencyConfig> = (currencyId?: string) => T;
|
|
38
37
|
declare function buildCoinConfig<T extends CurrencyConfig>(): {
|
|
39
38
|
setCoinConfig: (config: CoinConfig<T>) => void;
|
|
40
|
-
getCoinConfig: (
|
|
39
|
+
getCoinConfig: (currencyId?: string) => T;
|
|
41
40
|
};
|
|
42
41
|
export default buildCoinConfig;
|
|
43
42
|
//# sourceMappingURL=config.d.ts.map
|
package/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,KAAK,YAAY,GACb;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CAC3B,GACD;IACE,IAAI,EAAE,mBAAmB,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,IAAI,EAAE,qBAAqB,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EACH,SAAS,GACT,MAAM,GACN,eAAe,GACf,kBAAkB,GAClB,MAAM,GACN,SAAS,GACT,gBAAgB,GAChB,kBAAkB,GAClB,SAAS,GACT,0BAA0B,CAAA;CAC/B,GACD;IACE,IAAI,EAAE,oBAAoB,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAEL,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,CAAA;AAE7E,iBAAS,eAAe,CAAC,CAAC,SAAS,cAAc;4BAGhB,UAAU,CAAC,CAAC,CAAC,KAAG,IAAI;iCAIf,MAAM,KAAG,CAAC;EAY/C;AAED,eAAe,eAAe,CAAA"}
|
package/lib/config.js
CHANGED
|
@@ -6,11 +6,11 @@ function buildCoinConfig() {
|
|
|
6
6
|
const setCoinConfig = (config) => {
|
|
7
7
|
coinConfig = config;
|
|
8
8
|
};
|
|
9
|
-
const getCoinConfig = (
|
|
9
|
+
const getCoinConfig = (currencyId) => {
|
|
10
10
|
if (!coinConfig) {
|
|
11
11
|
throw new errors_1.MissingCoinConfig();
|
|
12
12
|
}
|
|
13
|
-
return coinConfig(
|
|
13
|
+
return coinConfig(currencyId);
|
|
14
14
|
};
|
|
15
15
|
return {
|
|
16
16
|
setCoinConfig,
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAAA,qCAA4C;AA0D5C,SAAS,eAAe;IACtB,IAAI,UAAqC,CAAA;IAEzC,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACpD,UAAU,GAAG,MAAM,CAAA;IACrB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,UAAmB,EAAK,EAAE;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,0BAAiB,EAAE,CAAA;QAC/B,CAAC;QAED,OAAO,UAAU,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,OAAO;QACL,aAAa;QACb,aAAa;KACd,CAAA;AACH,CAAC;AAED,kBAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type SupportedOptions = {
|
|
2
|
+
minimumFractionDigits: number;
|
|
3
|
+
maximumFractionDigits: number;
|
|
4
|
+
useGrouping: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const toLocaleString: (n: BigNumber, localeInput?: string, options?: Partial<SupportedOptions>) => string;
|
|
7
|
+
//# sourceMappingURL=BigNumberToLocaleString.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigNumberToLocaleString.d.ts","sourceRoot":"","sources":["../../src/currencies/BigNumberToLocaleString.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAiBD,eAAO,MAAM,cAAc,GACzB,GAAG,SAAS,EACZ,cAAc,MAAM,EACpB,UAAS,OAAO,CAAC,gBAAgB,CAAM,KACtC,MAwCF,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toLocaleString = void 0;
|
|
4
|
+
// Forked from @ledgerhq/live-currency-format/src/BigNumberToLocaleString.ts
|
|
5
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
6
|
+
const localeUtility_1 = require("./localeUtility");
|
|
7
|
+
const getFormatForLocale = (locale) => {
|
|
8
|
+
const { decimal, thousands } = (0, localeUtility_1.getSeparators)(locale);
|
|
9
|
+
const opts = {
|
|
10
|
+
decimalSeparator: '.',
|
|
11
|
+
groupSeparator: ',',
|
|
12
|
+
groupSize: 3,
|
|
13
|
+
secondaryGroupSize: 0,
|
|
14
|
+
fractionGroupSeparator: '\xA0', // non-breaking space
|
|
15
|
+
fractionGroupSize: 0,
|
|
16
|
+
};
|
|
17
|
+
if (typeof decimal === 'string')
|
|
18
|
+
opts.decimalSeparator = decimal;
|
|
19
|
+
if (typeof thousands === 'string')
|
|
20
|
+
opts.groupSeparator = thousands;
|
|
21
|
+
return opts;
|
|
22
|
+
};
|
|
23
|
+
const toLocaleString = (n, localeInput, options = {}) => {
|
|
24
|
+
let locale = localeInput;
|
|
25
|
+
if (!locale)
|
|
26
|
+
locale = 'en';
|
|
27
|
+
const minimumFractionDigits = typeof options.minimumFractionDigits === 'number' ? options.minimumFractionDigits : 0;
|
|
28
|
+
const maximumFractionDigits = typeof options.maximumFractionDigits === 'number'
|
|
29
|
+
? options.maximumFractionDigits
|
|
30
|
+
: Math.max(minimumFractionDigits, 3);
|
|
31
|
+
const useGrouping = 'useGrouping' in options ? options.useGrouping : true;
|
|
32
|
+
const format = getFormatForLocale(locale);
|
|
33
|
+
if (!useGrouping) {
|
|
34
|
+
format.groupSeparator = '';
|
|
35
|
+
}
|
|
36
|
+
const BN = bignumber_js_1.BigNumber.clone({
|
|
37
|
+
FORMAT: format,
|
|
38
|
+
});
|
|
39
|
+
const bn = new BN(n);
|
|
40
|
+
const maxDecimals = bn.toFormat(maximumFractionDigits, bignumber_js_1.BigNumber.ROUND_FLOOR);
|
|
41
|
+
if (maximumFractionDigits !== minimumFractionDigits) {
|
|
42
|
+
const minDecimals = bn.toFormat(minimumFractionDigits, bignumber_js_1.BigNumber.ROUND_FLOOR);
|
|
43
|
+
let i = maxDecimals.length;
|
|
44
|
+
while (i > minDecimals.length) {
|
|
45
|
+
if (maxDecimals[i - 1] !== '0') {
|
|
46
|
+
if (maxDecimals[i - 1] === format.decimalSeparator) {
|
|
47
|
+
i--;
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
i--;
|
|
52
|
+
}
|
|
53
|
+
return maxDecimals.slice(0, i);
|
|
54
|
+
}
|
|
55
|
+
return maxDecimals;
|
|
56
|
+
};
|
|
57
|
+
exports.toLocaleString = toLocaleString;
|
|
58
|
+
//# sourceMappingURL=BigNumberToLocaleString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigNumberToLocaleString.js","sourceRoot":"","sources":["../../src/currencies/BigNumberToLocaleString.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,+CAAwC;AACxC,mDAA+C;AAQ/C,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG;QACX,gBAAgB,EAAE,GAAG;QACrB,cAAc,EAAE,GAAG;QACnB,SAAS,EAAE,CAAC;QACZ,kBAAkB,EAAE,CAAC;QACrB,sBAAsB,EAAE,MAAM,EAAE,qBAAqB;QACrD,iBAAiB,EAAE,CAAC;KACrB,CAAA;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAA;IAChE,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;IAClE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEM,MAAM,cAAc,GAAG,CAC5B,CAAY,EACZ,WAAoB,EACpB,UAAqC,EAAE,EAC/B,EAAE;IACV,IAAI,MAAM,GAAG,WAAW,CAAA;IACxB,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,qBAAqB,GACzB,OAAO,OAAO,CAAC,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;IACvF,MAAM,qBAAqB,GACzB,OAAO,OAAO,CAAC,qBAAqB,KAAK,QAAQ;QAC/C,CAAC,CAAC,OAAO,CAAC,qBAAqB;QAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;IACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAEzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,cAAc,GAAG,EAAE,CAAA;IAC5B,CAAC;IAED,MAAM,EAAE,GAAG,wBAAS,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;IACF,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACpB,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,wBAAS,CAAC,WAAW,CAAC,CAAA;IAE7E,IAAI,qBAAqB,KAAK,qBAAqB,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,wBAAS,CAAC,WAAW,CAAC,CAAA;QAC7E,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAA;QAE1B,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC/B,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBACnD,CAAC,EAAE,CAAA;gBACL,CAAC;gBACD,MAAK;YACP,CAAC;YACD,CAAC,EAAE,CAAA;QACL,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AA5CY,QAAA,cAAc,kBA4C1B"}
|
|
@@ -1,2 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Unit } from '../api/types';
|
|
2
|
+
declare const defaultFormatOptions: {
|
|
3
|
+
locale: string;
|
|
4
|
+
showCode: boolean;
|
|
5
|
+
alwaysShowSign: boolean;
|
|
6
|
+
showAllDigits: boolean;
|
|
7
|
+
disableRounding: boolean;
|
|
8
|
+
useGrouping: boolean;
|
|
9
|
+
subMagnitude: number;
|
|
10
|
+
discreet: boolean;
|
|
11
|
+
joinFragmentsSeparator: string;
|
|
12
|
+
dynamicSignificantDigits: number;
|
|
13
|
+
staticSignificantDigits: number;
|
|
14
|
+
};
|
|
15
|
+
export type formatCurrencyUnitOptions = Partial<typeof defaultFormatOptions>;
|
|
16
|
+
export type FormatterValue = {
|
|
17
|
+
integerPart: string;
|
|
18
|
+
decimalPart: string;
|
|
19
|
+
decimalSeparator: '.' | ',';
|
|
20
|
+
currencyText: string;
|
|
21
|
+
currencyPosition: 'start' | 'end';
|
|
22
|
+
};
|
|
23
|
+
export declare const formatCurrencyUnitFragment: (unit: Unit, value: BigNumber, options?: formatCurrencyUnitOptions) => FormatterValue;
|
|
24
|
+
export declare const formatCurrencyUnit: (unit: Unit, value: BigNumber, options?: formatCurrencyUnitOptions) => string;
|
|
25
|
+
export {};
|
|
2
26
|
//# sourceMappingURL=formatCurrencyUnit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatCurrencyUnit.d.ts","sourceRoot":"","sources":["../../src/currencies/formatCurrencyUnit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatCurrencyUnit.d.ts","sourceRoot":"","sources":["../../src/currencies/formatCurrencyUnit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGxC,QAAA,MAAM,oBAAoB;;;;;;;;;;;;CAYzB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE5E,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,GAAG,GAAG,GAAG,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,GAAG,KAAK,CAAA;CAClC,CAAA;AA4GD,eAAO,MAAM,0BAA0B,GACrC,MAAM,IAAI,EACV,OAAO,SAAS,EAChB,UAAU,yBAAyB,KAClC,cAgCF,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,MAAM,IAAI,EACV,OAAO,SAAS,EAChB,UAAU,yBAAyB,KAClC,MAoBF,CAAA"}
|
|
@@ -1,7 +1,133 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
exports.formatCurrencyUnit = exports.formatCurrencyUnitFragment = void 0;
|
|
4
|
+
// Forked from @ledgerhq/live-currency-format/src/formatCurrencyUnit.ts
|
|
5
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
6
|
+
const localeUtility_1 = require("./localeUtility");
|
|
7
|
+
const BigNumberToLocaleString_1 = require("./BigNumberToLocaleString");
|
|
8
|
+
const nonBreakableSpace = '\u00A0';
|
|
9
|
+
const defaultFormatOptions = {
|
|
10
|
+
locale: 'en-EN',
|
|
11
|
+
showCode: false,
|
|
12
|
+
alwaysShowSign: false,
|
|
13
|
+
showAllDigits: false,
|
|
14
|
+
disableRounding: false,
|
|
15
|
+
useGrouping: true,
|
|
16
|
+
subMagnitude: 0,
|
|
17
|
+
discreet: false,
|
|
18
|
+
joinFragmentsSeparator: '',
|
|
19
|
+
dynamicSignificantDigits: 6,
|
|
20
|
+
staticSignificantDigits: 8,
|
|
21
|
+
};
|
|
22
|
+
const buildFormatState = (unit, value, _options) => {
|
|
23
|
+
const emptyState = () => ({
|
|
24
|
+
value: '',
|
|
25
|
+
sign: null,
|
|
26
|
+
code: null,
|
|
27
|
+
decimalSeparator: '.',
|
|
28
|
+
currencyPosition: unit.prefixCode ? 'start' : 'end',
|
|
29
|
+
});
|
|
30
|
+
if (!bignumber_js_1.BigNumber.isBigNumber(value)) {
|
|
31
|
+
console.warn('formatCurrencyUnit called with value=', value);
|
|
32
|
+
return emptyState();
|
|
33
|
+
}
|
|
34
|
+
if (value.isNaN()) {
|
|
35
|
+
console.warn('formatCurrencyUnit called with NaN value!');
|
|
36
|
+
return emptyState();
|
|
37
|
+
}
|
|
38
|
+
if (!value.isFinite()) {
|
|
39
|
+
console.warn('formatCurrencyUnit called with infinite value=', value);
|
|
40
|
+
return emptyState();
|
|
41
|
+
}
|
|
42
|
+
const options = {};
|
|
43
|
+
if (_options) {
|
|
44
|
+
let k;
|
|
45
|
+
for (k in _options) {
|
|
46
|
+
const optionValue = _options[k];
|
|
47
|
+
if (optionValue !== undefined) {
|
|
48
|
+
options[k] = optionValue;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const resolvedOptions = {
|
|
53
|
+
...defaultFormatOptions,
|
|
54
|
+
...unit,
|
|
55
|
+
...options,
|
|
56
|
+
};
|
|
57
|
+
const { showCode, alwaysShowSign, showAllDigits, locale, disableRounding, useGrouping, subMagnitude, discreet, dynamicSignificantDigits, staticSignificantDigits, } = resolvedOptions;
|
|
58
|
+
const { magnitude, code } = unit;
|
|
59
|
+
const floatValue = value.div(new bignumber_js_1.BigNumber(10).pow(magnitude));
|
|
60
|
+
const floatValueAbs = floatValue.abs();
|
|
61
|
+
const minimumFractionDigits = showAllDigits ? magnitude : 0;
|
|
62
|
+
const maximumFractionDigits = disableRounding
|
|
63
|
+
? magnitude + subMagnitude
|
|
64
|
+
: Math.max(minimumFractionDigits, Math.max(0, Math.min(dynamicSignificantDigits - Math.ceil(Math.log(floatValueAbs.toNumber()) / Math.log(10)), magnitude + subMagnitude, staticSignificantDigits)));
|
|
65
|
+
const sign = alwaysShowSign || floatValue.isNegative() ? (floatValue.isNegative() ? '-' : '+') : null;
|
|
66
|
+
const formattedValue = discreet
|
|
67
|
+
? '***'
|
|
68
|
+
: (0, BigNumberToLocaleString_1.toLocaleString)(floatValueAbs, locale, {
|
|
69
|
+
maximumFractionDigits,
|
|
70
|
+
minimumFractionDigits,
|
|
71
|
+
useGrouping,
|
|
72
|
+
});
|
|
73
|
+
const separators = (0, localeUtility_1.getSeparators)(locale);
|
|
74
|
+
const decimalSeparator = separators.decimal === ',' ? ',' : '.';
|
|
75
|
+
const currencyPosition = unit.prefixCode ? 'start' : 'end';
|
|
76
|
+
return {
|
|
77
|
+
value: formattedValue,
|
|
78
|
+
sign,
|
|
79
|
+
code: showCode ? code : null,
|
|
80
|
+
decimalSeparator,
|
|
81
|
+
currencyPosition,
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
const formatCurrencyUnitFragment = (unit, value, options) => {
|
|
85
|
+
const { value: formattedValue, sign, code, decimalSeparator, currencyPosition, } = buildFormatState(unit, value, options);
|
|
86
|
+
const hasDecimals = formattedValue.indexOf(decimalSeparator) !== -1;
|
|
87
|
+
const [integerPartRaw, decimalPartRaw] = hasDecimals
|
|
88
|
+
? formattedValue.split(decimalSeparator)
|
|
89
|
+
: [formattedValue, ''];
|
|
90
|
+
let integerPart = integerPartRaw;
|
|
91
|
+
const decimalPart = decimalPartRaw || '';
|
|
92
|
+
let currencyText = code || '';
|
|
93
|
+
if (sign) {
|
|
94
|
+
if (currencyPosition === 'start' && currencyText) {
|
|
95
|
+
currencyText = `${sign}${currencyText}`;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
integerPart = `${sign}${integerPart}`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
integerPart,
|
|
103
|
+
decimalPart,
|
|
104
|
+
decimalSeparator,
|
|
105
|
+
currencyText,
|
|
106
|
+
currencyPosition,
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
exports.formatCurrencyUnitFragment = formatCurrencyUnitFragment;
|
|
110
|
+
const formatCurrencyUnit = (unit, value, options) => {
|
|
111
|
+
const joinFragmentsSeparator = (options && options.joinFragmentsSeparator) || defaultFormatOptions.joinFragmentsSeparator;
|
|
112
|
+
const { value: formattedValue, sign, code } = buildFormatState(unit, value, options);
|
|
113
|
+
const parts = [];
|
|
114
|
+
if (unit.prefixCode) {
|
|
115
|
+
if (sign)
|
|
116
|
+
parts.push(sign);
|
|
117
|
+
if (code)
|
|
118
|
+
parts.push(code);
|
|
119
|
+
parts.push(formattedValue);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
if (sign)
|
|
123
|
+
parts.push(sign);
|
|
124
|
+
parts.push(formattedValue);
|
|
125
|
+
if (code) {
|
|
126
|
+
parts.push(nonBreakableSpace);
|
|
127
|
+
parts.push(code);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return parts.join(joinFragmentsSeparator);
|
|
131
|
+
};
|
|
132
|
+
exports.formatCurrencyUnit = formatCurrencyUnit;
|
|
7
133
|
//# sourceMappingURL=formatCurrencyUnit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatCurrencyUnit.js","sourceRoot":"","sources":["../../src/currencies/formatCurrencyUnit.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"formatCurrencyUnit.js","sourceRoot":"","sources":["../../src/currencies/formatCurrencyUnit.ts"],"names":[],"mappings":";;;AAAA,uEAAuE;AACvE,+CAAwC;AACxC,mDAA+C;AAC/C,uEAA0D;AAG1D,MAAM,iBAAiB,GAAG,QAAQ,CAAA;AAClC,MAAM,oBAAoB,GAAG;IAC3B,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,KAAK;IACf,sBAAsB,EAAE,EAAE;IAC1B,wBAAwB,EAAE,CAAC;IAC3B,uBAAuB,EAAE,CAAC;CAC3B,CAAA;AAsBD,MAAM,gBAAgB,GAAG,CACvB,IAAU,EACV,KAAgB,EAChB,QAAoC,EACvB,EAAE;IACf,MAAM,UAAU,GAAG,GAAgB,EAAE,CAAC,CAAC;QACrC,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,GAAG;QACrB,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;KACpD,CAAC,CAAA;IAEF,IAAI,CAAC,wBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAA;QAC5D,OAAO,UAAU,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;QACzD,OAAO,UAAU,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAA;QACrE,OAAO,UAAU,EAAE,CAAA;IACrB,CAAC;IAED,MAAM,OAAO,GAA4B,EAAE,CAAA;IAE3C,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAkC,CAAA;QACtC,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAA0B;QAC7C,GAAG,oBAAoB;QACvB,GAAG,IAAI;QACP,GAAG,OAAO;KACX,CAAA;IACD,MAAM,EACJ,QAAQ,EACR,cAAc,EACd,aAAa,EACb,MAAM,EACN,eAAe,EACf,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,uBAAuB,GACxB,GAAG,eAAe,CAAA;IACnB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAChC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,wBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9D,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAA;IACtC,MAAM,qBAAqB,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3D,MAAM,qBAAqB,GAAG,eAAe;QAC3C,CAAC,CAAC,SAAS,GAAG,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,qBAAqB,EACrB,IAAI,CAAC,GAAG,CACN,CAAC,EACD,IAAI,CAAC,GAAG,CACN,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EACvF,SAAS,GAAG,YAAY,EACxB,uBAAuB,CACxB,CACF,CACF,CAAA;IACL,MAAM,IAAI,GACR,cAAc,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1F,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAA,wCAAc,EAAC,aAAa,EAAE,MAAM,EAAE;YACpC,qBAAqB;YACrB,qBAAqB;YACrB,WAAW;SACZ,CAAC,CAAA;IAEN,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,CAAA;IACxC,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IAC1D,OAAO;QACL,KAAK,EAAE,cAAc;QACrB,IAAI;QACJ,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC5B,gBAAgB;QAChB,gBAAgB;KACjB,CAAA;AACH,CAAC,CAAA;AAEM,MAAM,0BAA0B,GAAG,CACxC,IAAU,EACV,KAAgB,EAChB,OAAmC,EACnB,EAAE;IAClB,MAAM,EACJ,KAAK,EAAE,cAAc,EACrB,IAAI,EACJ,IAAI,EACJ,gBAAgB,EAChB,gBAAgB,GACjB,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;IACnE,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG,WAAW;QAClD,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACxC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAExB,IAAI,WAAW,GAAG,cAAc,CAAA;IAChC,MAAM,WAAW,GAAG,cAAc,IAAI,EAAE,CAAA;IACxC,IAAI,YAAY,GAAG,IAAI,IAAI,EAAE,CAAA;IAE7B,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,gBAAgB,KAAK,OAAO,IAAI,YAAY,EAAE,CAAC;YACjD,YAAY,GAAG,GAAG,IAAI,GAAG,YAAY,EAAE,CAAA;QACzC,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,GAAG,IAAI,GAAG,WAAW,EAAE,CAAA;QACvC,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,gBAAgB;KACjB,CAAA;AACH,CAAC,CAAA;AApCY,QAAA,0BAA0B,8BAoCtC;AAEM,MAAM,kBAAkB,GAAG,CAChC,IAAU,EACV,KAAgB,EAChB,OAAmC,EAC3B,EAAE;IACV,MAAM,sBAAsB,GAC1B,CAAC,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC,IAAI,oBAAoB,CAAC,sBAAsB,CAAA;IAC5F,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACpF,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1B,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AAC3C,CAAC,CAAA;AAxBY,QAAA,kBAAkB,sBAwB9B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const prefixFormat: readonly ["sign", "code", "value"];
|
|
2
|
+
export declare const suffixFormat: readonly ["sign", "value", "separator", "code"];
|
|
3
|
+
export type GetSeparators = (locale: string) => {
|
|
4
|
+
decimal: string | null | undefined;
|
|
5
|
+
thousands: string | null | undefined;
|
|
6
|
+
};
|
|
7
|
+
export declare const getSeparators: GetSeparators;
|
|
8
|
+
//# sourceMappingURL=localeUtility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localeUtility.d.ts","sourceRoot":"","sources":["../../src/currencies/localeUtility.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,YAAY,oCAAqC,CAAA;AAC9D,eAAO,MAAM,YAAY,iDAAkD,CAAA;AAE3E,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;IAC9C,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,aAoB1B,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSeparators = exports.suffixFormat = exports.prefixFormat = void 0;
|
|
4
|
+
// Forked from @ledgerhq/live-currency-format/src/localeUtility.ts
|
|
5
|
+
const memoize = (fn) => {
|
|
6
|
+
const cache = {};
|
|
7
|
+
return ((arg) => {
|
|
8
|
+
if (!(arg in cache)) {
|
|
9
|
+
cache[arg] = fn(arg);
|
|
10
|
+
}
|
|
11
|
+
return cache[arg];
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
const options = {
|
|
15
|
+
style: 'currency',
|
|
16
|
+
currency: 'USD',
|
|
17
|
+
};
|
|
18
|
+
const localeNotAvailable = (1.2).toLocaleString('en', options) !== '$1.20';
|
|
19
|
+
const getFallback = (locale) => staticFallback[Object.prototype.hasOwnProperty.call(staticFallback, locale) ? locale : 'en'];
|
|
20
|
+
const staticFallback = {
|
|
21
|
+
en: ['-$1.00', '10,000.2'],
|
|
22
|
+
es: ['-1,00 US$', '10.000,2'],
|
|
23
|
+
fr: ['-1,00 $US', '10 000,2'],
|
|
24
|
+
ja: ['-US$1.00', '10,000.2'],
|
|
25
|
+
ko: ['-US$1.00', '10,000.2'],
|
|
26
|
+
ru: ['-1,00 $', '10 000,2'],
|
|
27
|
+
zh: ['-US$1.00', '10,000.2'],
|
|
28
|
+
};
|
|
29
|
+
exports.prefixFormat = ['sign', 'code', 'value'];
|
|
30
|
+
exports.suffixFormat = ['sign', 'value', 'separator', 'code'];
|
|
31
|
+
exports.getSeparators = memoize((locale) => {
|
|
32
|
+
const res = localeNotAvailable ? getFallback(locale)[1] : (10000.2).toLocaleString(locale);
|
|
33
|
+
let decimal;
|
|
34
|
+
let thousands;
|
|
35
|
+
for (let i = 0; i < res.length; i++) {
|
|
36
|
+
const c = res[i];
|
|
37
|
+
if (/[0-9]/.test(c))
|
|
38
|
+
continue;
|
|
39
|
+
if (!thousands) {
|
|
40
|
+
thousands = c;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
decimal = c;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
decimal,
|
|
48
|
+
thousands,
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=localeUtility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localeUtility.js","sourceRoot":"","sources":["../../src/currencies/localeUtility.ts"],"names":[],"mappings":";;;AAAA,kEAAkE;AAClE,MAAM,OAAO,GAAG,CAA2C,EAAK,EAAK,EAAE;IACrE,MAAM,KAAK,GAAkC,EAAE,CAAA;IAC/C,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAM,CAAA;AACT,CAAC,CAAA;AAED,MAAM,OAAO,GAAG;IACd,KAAK,EAAE,UAAmB;IAC1B,QAAQ,EAAE,KAAK;CAChB,CAAA;AACD,MAAM,kBAAkB,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;AAE1E,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE,CACrC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAE9F,MAAM,cAAc,GAA6B;IAC/C,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC1B,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;IAC7B,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;IAC7B,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;IAC5B,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;IAC5B,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAC3B,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;CAC7B,CAAA;AAEY,QAAA,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAA;AACjD,QAAA,YAAY,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAU,CAAA;AAO9D,QAAA,aAAa,GAAkB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IAC7D,MAAM,GAAG,GAAG,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAC1F,IAAI,OAAO,CAAA;IACX,IAAI,SAAS,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAQ;QAE7B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,CAAC,CAAA;QACf,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,CAAC,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,SAAS;KACV,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCurrencyUnit.d.ts","sourceRoot":"","sources":["../../src/currencies/parseCurrencyUnit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseCurrencyUnit.d.ts","sourceRoot":"","sources":["../../src/currencies/parseCurrencyUnit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGxC,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,EAAE,aAAa,MAAM,KAAG,SAKnE,CAAA"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseCurrencyUnit = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
5
|
+
const parseCurrencyUnit = (unit, valueString) => {
|
|
6
|
+
const str = valueString.replace(/,/g, '.');
|
|
7
|
+
const value = new bignumber_js_1.BigNumber(str);
|
|
8
|
+
if (value.isNaN())
|
|
9
|
+
return new bignumber_js_1.BigNumber(0);
|
|
10
|
+
return value.times(new bignumber_js_1.BigNumber(10).pow(unit.magnitude)).integerValue();
|
|
11
|
+
};
|
|
12
|
+
exports.parseCurrencyUnit = parseCurrencyUnit;
|
|
6
13
|
//# sourceMappingURL=parseCurrencyUnit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCurrencyUnit.js","sourceRoot":"","sources":["../../src/currencies/parseCurrencyUnit.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"parseCurrencyUnit.js","sourceRoot":"","sources":["../../src/currencies/parseCurrencyUnit.ts"],"names":[],"mappings":";;;AAEA,+CAAwC;AAEjC,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,WAAmB,EAAa,EAAE;IAC9E,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,wBAAS,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,wBAAS,CAAC,CAAC,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,wBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE,CAAA;AAC1E,CAAC,CAAA;AALY,QAAA,iBAAiB,qBAK7B"}
|
package/lib-es/config.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { CryptoCurrency, CryptoCurrencyId } from '@ledgerhq/types-cryptoassets';
|
|
2
1
|
import type { FeatureConfig } from './features/types';
|
|
3
2
|
type ConfigStatus = {
|
|
4
3
|
type: 'active';
|
|
@@ -8,7 +7,7 @@ type ConfigStatus = {
|
|
|
8
7
|
message?: string;
|
|
9
8
|
} | {
|
|
10
9
|
type: 'migration';
|
|
11
|
-
chain:
|
|
10
|
+
chain: string;
|
|
12
11
|
from: string;
|
|
13
12
|
to: string;
|
|
14
13
|
link: string;
|
|
@@ -34,10 +33,10 @@ export type CurrencyConfig = {
|
|
|
34
33
|
customBanner?: Banner;
|
|
35
34
|
[key: string]: unknown;
|
|
36
35
|
};
|
|
37
|
-
export type CoinConfig<T extends CurrencyConfig> = (
|
|
36
|
+
export type CoinConfig<T extends CurrencyConfig> = (currencyId?: string) => T;
|
|
38
37
|
declare function buildCoinConfig<T extends CurrencyConfig>(): {
|
|
39
38
|
setCoinConfig: (config: CoinConfig<T>) => void;
|
|
40
|
-
getCoinConfig: (
|
|
39
|
+
getCoinConfig: (currencyId?: string) => T;
|
|
41
40
|
};
|
|
42
41
|
export default buildCoinConfig;
|
|
43
42
|
//# sourceMappingURL=config.d.ts.map
|
package/lib-es/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,KAAK,YAAY,GACb;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CAC3B,GACD;IACE,IAAI,EAAE,mBAAmB,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,IAAI,EAAE,qBAAqB,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EACH,SAAS,GACT,MAAM,GACN,eAAe,GACf,kBAAkB,GAClB,MAAM,GACN,SAAS,GACT,gBAAgB,GAChB,kBAAkB,GAClB,SAAS,GACT,0BAA0B,CAAA;CAC/B,GACD;IACE,IAAI,EAAE,oBAAoB,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAEL,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,CAAA;AAE7E,iBAAS,eAAe,CAAC,CAAC,SAAS,cAAc;4BAGhB,UAAU,CAAC,CAAC,CAAC,KAAG,IAAI;iCAIf,MAAM,KAAG,CAAC;EAY/C;AAED,eAAe,eAAe,CAAA"}
|
package/lib-es/config.js
CHANGED
|
@@ -4,11 +4,11 @@ function buildCoinConfig() {
|
|
|
4
4
|
const setCoinConfig = (config) => {
|
|
5
5
|
coinConfig = config;
|
|
6
6
|
};
|
|
7
|
-
const getCoinConfig = (
|
|
7
|
+
const getCoinConfig = (currencyId) => {
|
|
8
8
|
if (!coinConfig) {
|
|
9
9
|
throw new MissingCoinConfig();
|
|
10
10
|
}
|
|
11
|
-
return coinConfig(
|
|
11
|
+
return coinConfig(currencyId);
|
|
12
12
|
};
|
|
13
13
|
return {
|
|
14
14
|
setCoinConfig,
|
package/lib-es/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AA0D5C,SAAS,eAAe;IACtB,IAAI,UAAqC,CAAA;IAEzC,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAQ,EAAE;QACpD,UAAU,GAAG,MAAM,CAAA;IACrB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,UAAmB,EAAK,EAAE;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,iBAAiB,EAAE,CAAA;QAC/B,CAAC;QAED,OAAO,UAAU,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,OAAO;QACL,aAAa;QACb,aAAa;KACd,CAAA;AACH,CAAC;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type SupportedOptions = {
|
|
2
|
+
minimumFractionDigits: number;
|
|
3
|
+
maximumFractionDigits: number;
|
|
4
|
+
useGrouping: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const toLocaleString: (n: BigNumber, localeInput?: string, options?: Partial<SupportedOptions>) => string;
|
|
7
|
+
//# sourceMappingURL=BigNumberToLocaleString.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigNumberToLocaleString.d.ts","sourceRoot":"","sources":["../../src/currencies/BigNumberToLocaleString.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAiBD,eAAO,MAAM,cAAc,GACzB,GAAG,SAAS,EACZ,cAAc,MAAM,EACpB,UAAS,OAAO,CAAC,gBAAgB,CAAM,KACtC,MAwCF,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Forked from @ledgerhq/live-currency-format/src/BigNumberToLocaleString.ts
|
|
2
|
+
import { BigNumber } from 'bignumber.js';
|
|
3
|
+
import { getSeparators } from './localeUtility';
|
|
4
|
+
const getFormatForLocale = (locale) => {
|
|
5
|
+
const { decimal, thousands } = getSeparators(locale);
|
|
6
|
+
const opts = {
|
|
7
|
+
decimalSeparator: '.',
|
|
8
|
+
groupSeparator: ',',
|
|
9
|
+
groupSize: 3,
|
|
10
|
+
secondaryGroupSize: 0,
|
|
11
|
+
fractionGroupSeparator: '\xA0', // non-breaking space
|
|
12
|
+
fractionGroupSize: 0,
|
|
13
|
+
};
|
|
14
|
+
if (typeof decimal === 'string')
|
|
15
|
+
opts.decimalSeparator = decimal;
|
|
16
|
+
if (typeof thousands === 'string')
|
|
17
|
+
opts.groupSeparator = thousands;
|
|
18
|
+
return opts;
|
|
19
|
+
};
|
|
20
|
+
export const toLocaleString = (n, localeInput, options = {}) => {
|
|
21
|
+
let locale = localeInput;
|
|
22
|
+
if (!locale)
|
|
23
|
+
locale = 'en';
|
|
24
|
+
const minimumFractionDigits = typeof options.minimumFractionDigits === 'number' ? options.minimumFractionDigits : 0;
|
|
25
|
+
const maximumFractionDigits = typeof options.maximumFractionDigits === 'number'
|
|
26
|
+
? options.maximumFractionDigits
|
|
27
|
+
: Math.max(minimumFractionDigits, 3);
|
|
28
|
+
const useGrouping = 'useGrouping' in options ? options.useGrouping : true;
|
|
29
|
+
const format = getFormatForLocale(locale);
|
|
30
|
+
if (!useGrouping) {
|
|
31
|
+
format.groupSeparator = '';
|
|
32
|
+
}
|
|
33
|
+
const BN = BigNumber.clone({
|
|
34
|
+
FORMAT: format,
|
|
35
|
+
});
|
|
36
|
+
const bn = new BN(n);
|
|
37
|
+
const maxDecimals = bn.toFormat(maximumFractionDigits, BigNumber.ROUND_FLOOR);
|
|
38
|
+
if (maximumFractionDigits !== minimumFractionDigits) {
|
|
39
|
+
const minDecimals = bn.toFormat(minimumFractionDigits, BigNumber.ROUND_FLOOR);
|
|
40
|
+
let i = maxDecimals.length;
|
|
41
|
+
while (i > minDecimals.length) {
|
|
42
|
+
if (maxDecimals[i - 1] !== '0') {
|
|
43
|
+
if (maxDecimals[i - 1] === format.decimalSeparator) {
|
|
44
|
+
i--;
|
|
45
|
+
}
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
i--;
|
|
49
|
+
}
|
|
50
|
+
return maxDecimals.slice(0, i);
|
|
51
|
+
}
|
|
52
|
+
return maxDecimals;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=BigNumberToLocaleString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigNumberToLocaleString.js","sourceRoot":"","sources":["../../src/currencies/BigNumberToLocaleString.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAQ/C,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG;QACX,gBAAgB,EAAE,GAAG;QACrB,cAAc,EAAE,GAAG;QACnB,SAAS,EAAE,CAAC;QACZ,kBAAkB,EAAE,CAAC;QACrB,sBAAsB,EAAE,MAAM,EAAE,qBAAqB;QACrD,iBAAiB,EAAE,CAAC;KACrB,CAAA;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAA;IAChE,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;IAClE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,CAAY,EACZ,WAAoB,EACpB,UAAqC,EAAE,EAC/B,EAAE;IACV,IAAI,MAAM,GAAG,WAAW,CAAA;IACxB,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,qBAAqB,GACzB,OAAO,OAAO,CAAC,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;IACvF,MAAM,qBAAqB,GACzB,OAAO,OAAO,CAAC,qBAAqB,KAAK,QAAQ;QAC/C,CAAC,CAAC,OAAO,CAAC,qBAAqB;QAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;IACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAEzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,cAAc,GAAG,EAAE,CAAA;IAC5B,CAAC;IAED,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;IACF,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACpB,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;IAE7E,IAAI,qBAAqB,KAAK,qBAAqB,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7E,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAA;QAE1B,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC/B,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBACnD,CAAC,EAAE,CAAA;gBACL,CAAC;gBACD,MAAK;YACP,CAAC;YACD,CAAC,EAAE,CAAA;QACL,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
|
|
@@ -1,2 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Unit } from '../api/types';
|
|
2
|
+
declare const defaultFormatOptions: {
|
|
3
|
+
locale: string;
|
|
4
|
+
showCode: boolean;
|
|
5
|
+
alwaysShowSign: boolean;
|
|
6
|
+
showAllDigits: boolean;
|
|
7
|
+
disableRounding: boolean;
|
|
8
|
+
useGrouping: boolean;
|
|
9
|
+
subMagnitude: number;
|
|
10
|
+
discreet: boolean;
|
|
11
|
+
joinFragmentsSeparator: string;
|
|
12
|
+
dynamicSignificantDigits: number;
|
|
13
|
+
staticSignificantDigits: number;
|
|
14
|
+
};
|
|
15
|
+
export type formatCurrencyUnitOptions = Partial<typeof defaultFormatOptions>;
|
|
16
|
+
export type FormatterValue = {
|
|
17
|
+
integerPart: string;
|
|
18
|
+
decimalPart: string;
|
|
19
|
+
decimalSeparator: '.' | ',';
|
|
20
|
+
currencyText: string;
|
|
21
|
+
currencyPosition: 'start' | 'end';
|
|
22
|
+
};
|
|
23
|
+
export declare const formatCurrencyUnitFragment: (unit: Unit, value: BigNumber, options?: formatCurrencyUnitOptions) => FormatterValue;
|
|
24
|
+
export declare const formatCurrencyUnit: (unit: Unit, value: BigNumber, options?: formatCurrencyUnitOptions) => string;
|
|
25
|
+
export {};
|
|
2
26
|
//# sourceMappingURL=formatCurrencyUnit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatCurrencyUnit.d.ts","sourceRoot":"","sources":["../../src/currencies/formatCurrencyUnit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatCurrencyUnit.d.ts","sourceRoot":"","sources":["../../src/currencies/formatCurrencyUnit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGxC,QAAA,MAAM,oBAAoB;;;;;;;;;;;;CAYzB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE5E,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,GAAG,GAAG,GAAG,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,GAAG,KAAK,CAAA;CAClC,CAAA;AA4GD,eAAO,MAAM,0BAA0B,GACrC,MAAM,IAAI,EACV,OAAO,SAAS,EAChB,UAAU,yBAAyB,KAClC,cAgCF,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,MAAM,IAAI,EACV,OAAO,SAAS,EAChB,UAAU,yBAAyB,KAClC,MAoBF,CAAA"}
|