@activecollab/components 1.0.401 → 1.0.402
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/dist/cjs/utils/currencyUtils.js +0 -2
- package/dist/cjs/utils/currencyUtils.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.test.js +30 -0
- package/dist/cjs/utils/currencyUtils.test.js.map +1 -1
- package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
- package/dist/esm/utils/currencyUtils.js +0 -2
- package/dist/esm/utils/currencyUtils.js.map +1 -1
- package/dist/esm/utils/currencyUtils.test.js +31 -1
- package/dist/esm/utils/currencyUtils.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,8 +26,6 @@ var formatCurrency = function formatCurrency(n) {
|
|
|
26
26
|
return _formattedNum3.endsWith(".0") ? (number / 1000000000000).toFixed(0) + "T" : _formattedNum3 + "T";
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
|
-
|
|
30
|
-
// @TODO: Test
|
|
31
29
|
exports.formatCurrency = formatCurrency;
|
|
32
30
|
var numberWithSeparator = function numberWithSeparator(x, thousandSeparator) {
|
|
33
31
|
var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.js","names":["formatCurrency","n","thousandSeparator","number","parseFloat","String","replaceAll","isNaN","formattedNum","toFixed","endsWith","numberWithSeparator","x","format","parts","toString","split","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["import { Separators } from \"../components/Input/InputNumber\";\n\nexport const formatCurrency = (n: string, thousandSeparator = \",\") => {\n const number = parseFloat(String(n).replaceAll(thousandSeparator, \"\"));\n\n if (isNaN(number)) {\n return \"\";\n }\n\n if (number < 1000) {\n return n;\n } else if (number >= 1000 && number < 1_000_000) {\n const formattedNum = (number / 1000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1000).toFixed(0) + \"K\"\n : formattedNum + \"K\";\n } else if (number >= 1_000_000 && number < 1_000_000_000) {\n const formattedNum = (number / 1_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000).toFixed(0) + \"M\"\n : formattedNum + \"M\";\n } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\n const formattedNum = (number / 1_000_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000_000).toFixed(0) + \"B\"\n : formattedNum + \"B\";\n } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\n const formattedNum = (number / 1_000_000_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000_000_000).toFixed(0) + \"T\"\n : formattedNum + \"T\";\n }\n};\n\
|
|
1
|
+
{"version":3,"file":"currencyUtils.js","names":["formatCurrency","n","thousandSeparator","number","parseFloat","String","replaceAll","isNaN","formattedNum","toFixed","endsWith","numberWithSeparator","x","format","parts","toString","split","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["import { Separators } from \"../components/Input/InputNumber\";\n\nexport const formatCurrency = (n: string, thousandSeparator = \",\") => {\n const number = parseFloat(String(n).replaceAll(thousandSeparator, \"\"));\n\n if (isNaN(number)) {\n return \"\";\n }\n\n if (number < 1000) {\n return n;\n } else if (number >= 1000 && number < 1_000_000) {\n const formattedNum = (number / 1000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1000).toFixed(0) + \"K\"\n : formattedNum + \"K\";\n } else if (number >= 1_000_000 && number < 1_000_000_000) {\n const formattedNum = (number / 1_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000).toFixed(0) + \"M\"\n : formattedNum + \"M\";\n } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\n const formattedNum = (number / 1_000_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000_000).toFixed(0) + \"B\"\n : formattedNum + \"B\";\n } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\n const formattedNum = (number / 1_000_000_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000_000_000).toFixed(0) + \"T\"\n : formattedNum + \"T\";\n }\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator: Separators,\n format = true\n) => {\n if (!format) {\n return x;\n }\n\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(\".\");\n};\n"],"mappings":";;;;;;AAEO,IAAMA,cAAc,GAAG,SAAjBA,cAAc,CAAIC,CAAS,EAA8B;EAAA,IAA5BC,iBAAiB,uEAAG,GAAG;EAC/D,IAAMC,MAAM,GAAGC,UAAU,CAACC,MAAM,CAACJ,CAAC,CAAC,CAACK,UAAU,CAACJ,iBAAiB,EAAE,EAAE,CAAC,CAAC;EAEtE,IAAIK,KAAK,CAACJ,MAAM,CAAC,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,IAAIA,MAAM,GAAG,IAAI,EAAE;IACjB,OAAOF,CAAC;EACV,CAAC,MAAM,IAAIE,MAAM,IAAI,IAAI,IAAIA,MAAM,GAAG,OAAS,EAAE;IAC/C,IAAMK,YAAY,GAAG,CAACL,MAAM,GAAG,IAAI,EAAEM,OAAO,CAAC,CAAC,CAAC;IAC/C,OAAOD,YAAY,CAACE,QAAQ,CAAC,IAAI,CAAC,GAC9B,CAACP,MAAM,GAAG,IAAI,EAAEM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAChCD,YAAY,GAAG,GAAG;EACxB,CAAC,MAAM,IAAIL,MAAM,IAAI,OAAS,IAAIA,MAAM,GAAG,UAAa,EAAE;IACxD,IAAMK,aAAY,GAAG,CAACL,MAAM,GAAG,OAAS,EAAEM,OAAO,CAAC,CAAC,CAAC;IACpD,OAAOD,aAAY,CAACE,QAAQ,CAAC,IAAI,CAAC,GAC9B,CAACP,MAAM,GAAG,OAAS,EAAEM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GACrCD,aAAY,GAAG,GAAG;EACxB,CAAC,MAAM,IAAIL,MAAM,IAAI,UAAa,IAAIA,MAAM,GAAG,aAAiB,EAAE;IAChE,IAAMK,cAAY,GAAG,CAACL,MAAM,GAAG,UAAa,EAAEM,OAAO,CAAC,CAAC,CAAC;IACxD,OAAOD,cAAY,CAACE,QAAQ,CAAC,IAAI,CAAC,GAC9B,CAACP,MAAM,GAAG,UAAa,EAAEM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GACzCD,cAAY,GAAG,GAAG;EACxB,CAAC,MAAM,IAAIL,MAAM,IAAI,aAAiB,IAAIA,MAAM,GAAG,gBAAqB,EAAE;IACxE,IAAMK,cAAY,GAAG,CAACL,MAAM,GAAG,aAAiB,EAAEM,OAAO,CAAC,CAAC,CAAC;IAC5D,OAAOD,cAAY,CAACE,QAAQ,CAAC,IAAI,CAAC,GAC9B,CAACP,MAAM,GAAG,aAAiB,EAAEM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAC7CD,cAAY,GAAG,GAAG;EACxB;AACF,CAAC;AAAC;AAEK,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmB,CAC9BC,CAAkB,EAClBV,iBAA6B,EAE1B;EAAA,IADHW,MAAM,uEAAG,IAAI;EAEb,IAAI,CAACA,MAAM,EAAE;IACX,OAAOD,CAAC;EACV;EAEA,IAAME,KAAK,GAAGF,CAAC,CAACG,QAAQ,EAAE,CAACC,KAAK,CAAC,GAAG,CAAC;EACrCF,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAACG,OAAO,CAAC,uBAAuB,EAAEf,iBAAiB,CAAC;EAEvE,OAAOY,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC;AACxB,CAAC;AAAC"}
|
|
@@ -11,4 +11,34 @@ describe("format currency with thousandseparator set to '.' and decimalSeparator
|
|
|
11
11
|
expect((0, _currencyUtils.formatCurrency)(value, ".")).toEqual(expected);
|
|
12
12
|
});
|
|
13
13
|
});
|
|
14
|
+
describe("numberWithSeparator", function () {
|
|
15
|
+
test("should format number with thousand separator", function () {
|
|
16
|
+
var result = (0, _currencyUtils.numberWithSeparator)(1000, ",");
|
|
17
|
+
expect(result).toBe("1,000");
|
|
18
|
+
});
|
|
19
|
+
test("should format string number with thousand separator", function () {
|
|
20
|
+
var result = (0, _currencyUtils.numberWithSeparator)("1000", ",");
|
|
21
|
+
expect(result).toBe("1,000");
|
|
22
|
+
});
|
|
23
|
+
test("should format decimal number with thousand separator and keep decimal part", function () {
|
|
24
|
+
var result = (0, _currencyUtils.numberWithSeparator)(12345.67, ",");
|
|
25
|
+
expect(result).toBe("12,345.67");
|
|
26
|
+
});
|
|
27
|
+
test("should not format when format is set to false", function () {
|
|
28
|
+
var result = (0, _currencyUtils.numberWithSeparator)(1000, ",", false);
|
|
29
|
+
expect(result).toBe(1000);
|
|
30
|
+
});
|
|
31
|
+
test("should handle zero with thousand separator", function () {
|
|
32
|
+
var result = (0, _currencyUtils.numberWithSeparator)(0, ",");
|
|
33
|
+
expect(result).toBe("0");
|
|
34
|
+
});
|
|
35
|
+
test("should handle negative number with thousand separator", function () {
|
|
36
|
+
var result = (0, _currencyUtils.numberWithSeparator)(-123456789, ",");
|
|
37
|
+
expect(result).toBe("-123,456,789");
|
|
38
|
+
});
|
|
39
|
+
test("should not format", function () {
|
|
40
|
+
var result = (0, _currencyUtils.numberWithSeparator)(123456789, ",", false);
|
|
41
|
+
expect(result).toBe(123456789);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
14
44
|
//# sourceMappingURL=currencyUtils.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.test.js","names":["describe","it","each","value","expected","expect","formatCurrency","toEqual"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import { formatCurrency } from \"./currencyUtils\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000.00\", \"1K\"],\n [\"1200.50\", \"1.2K\"],\n [\"1,200.00\", \"1.2K\"],\n [\"2,240.00\", \"2.2K\"],\n [\"22,240.00\", \"22.2K\"],\n [\"50,000,000.00\", \"50M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \",\")).toEqual(expected);\n });\n});\n\ndescribe(\"format currency with thousandseparator set to '.' and decimalSeparator to ','\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000,00\", \"1K\"],\n [\"1200,50\", \"1.2K\"],\n [\"1.200,00\", \"1.2K\"],\n [\"2.240,00\", \"2.2K\"],\n [\"22.240,00\", \"22.2K\"],\n [\"50.000.000,00\", \"50M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \".\")).toEqual(expected);\n });\n});\n"],"mappings":";;AAAA;AAEAA,QAAQ,CAAC,+EAA+E,EAAE,YAAM;EAC9FC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,IAAI,EAAE,IAAI,CAAC,EACZ,CAAC,MAAM,EAAE,IAAI,CAAC,EACd,CAAC,SAAS,EAAE,IAAI,CAAC,EACjB,CAAC,SAAS,EAAE,MAAM,CAAC,EACnB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAAC,WAAW,EAAE,OAAO,CAAC,EACtB,CAAC,eAAe,EAAE,KAAK,CAAC,CACzB,CAAC,CAAC,wBAAwB,EAAE,UAACC,KAAK,EAAEC,QAAQ,EAAK;IAChDC,MAAM,CAAC,IAAAC,6BAAc,EAACH,KAAK,EAAE,GAAG,CAAC,CAAC,CAACI,OAAO,CAACH,QAAQ,CAAC;EACtD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFJ,QAAQ,CAAC,+EAA+E,EAAE,YAAM;EAC9FC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,IAAI,EAAE,IAAI,CAAC,EACZ,CAAC,MAAM,EAAE,IAAI,CAAC,EACd,CAAC,SAAS,EAAE,IAAI,CAAC,EACjB,CAAC,SAAS,EAAE,MAAM,CAAC,EACnB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAAC,WAAW,EAAE,OAAO,CAAC,EACtB,CAAC,eAAe,EAAE,KAAK,CAAC,CACzB,CAAC,CAAC,wBAAwB,EAAE,UAACC,KAAK,EAAEC,QAAQ,EAAK;IAChDC,MAAM,CAAC,IAAAC,6BAAc,EAACH,KAAK,EAAE,GAAG,CAAC,CAAC,CAACI,OAAO,CAACH,QAAQ,CAAC;EACtD,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"currencyUtils.test.js","names":["describe","it","each","value","expected","expect","formatCurrency","toEqual","test","result","numberWithSeparator","toBe"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import { formatCurrency, numberWithSeparator } from \"./currencyUtils\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000.00\", \"1K\"],\n [\"1200.50\", \"1.2K\"],\n [\"1,200.00\", \"1.2K\"],\n [\"2,240.00\", \"2.2K\"],\n [\"22,240.00\", \"22.2K\"],\n [\"50,000,000.00\", \"50M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \",\")).toEqual(expected);\n });\n});\n\ndescribe(\"format currency with thousandseparator set to '.' and decimalSeparator to ','\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000,00\", \"1K\"],\n [\"1200,50\", \"1.2K\"],\n [\"1.200,00\", \"1.2K\"],\n [\"2.240,00\", \"2.2K\"],\n [\"22.240,00\", \"22.2K\"],\n [\"50.000.000,00\", \"50M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \".\")).toEqual(expected);\n });\n});\n\ndescribe(\"numberWithSeparator\", () => {\n test(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator(1000, \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format decimal number with thousand separator and keep decimal part\", () => {\n const result = numberWithSeparator(12345.67, \",\");\n expect(result).toBe(\"12,345.67\");\n });\n\n test(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", false);\n expect(result).toBe(1000);\n });\n\n test(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n test(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n test(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", false);\n expect(result).toBe(123456789);\n });\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/currencyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,eAAO,MAAM,cAAc,MAAO,MAAM,mDA8BvC,CAAC;
|
|
1
|
+
{"version":3,"file":"currencyUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/currencyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,eAAO,MAAM,cAAc,MAAO,MAAM,mDA8BvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,MAC3B,MAAM,GAAG,MAAM,qBACC,UAAU,sCAW9B,CAAC"}
|
|
@@ -22,8 +22,6 @@ export var formatCurrency = function formatCurrency(n, thousandSeparator) {
|
|
|
22
22
|
return _formattedNum3.endsWith(".0") ? (number / 1000000000000).toFixed(0) + "T" : _formattedNum3 + "T";
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
|
-
|
|
26
|
-
// @TODO: Test
|
|
27
25
|
export var numberWithSeparator = function numberWithSeparator(x, thousandSeparator, format) {
|
|
28
26
|
if (format === void 0) {
|
|
29
27
|
format = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.js","names":["formatCurrency","n","thousandSeparator","number","parseFloat","String","replaceAll","isNaN","formattedNum","toFixed","endsWith","numberWithSeparator","x","format","parts","toString","split","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["import { Separators } from \"../components/Input/InputNumber\";\n\nexport const formatCurrency = (n: string, thousandSeparator = \",\") => {\n const number = parseFloat(String(n).replaceAll(thousandSeparator, \"\"));\n\n if (isNaN(number)) {\n return \"\";\n }\n\n if (number < 1000) {\n return n;\n } else if (number >= 1000 && number < 1_000_000) {\n const formattedNum = (number / 1000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1000).toFixed(0) + \"K\"\n : formattedNum + \"K\";\n } else if (number >= 1_000_000 && number < 1_000_000_000) {\n const formattedNum = (number / 1_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000).toFixed(0) + \"M\"\n : formattedNum + \"M\";\n } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\n const formattedNum = (number / 1_000_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000_000).toFixed(0) + \"B\"\n : formattedNum + \"B\";\n } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\n const formattedNum = (number / 1_000_000_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000_000_000).toFixed(0) + \"T\"\n : formattedNum + \"T\";\n }\n};\n\
|
|
1
|
+
{"version":3,"file":"currencyUtils.js","names":["formatCurrency","n","thousandSeparator","number","parseFloat","String","replaceAll","isNaN","formattedNum","toFixed","endsWith","numberWithSeparator","x","format","parts","toString","split","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["import { Separators } from \"../components/Input/InputNumber\";\n\nexport const formatCurrency = (n: string, thousandSeparator = \",\") => {\n const number = parseFloat(String(n).replaceAll(thousandSeparator, \"\"));\n\n if (isNaN(number)) {\n return \"\";\n }\n\n if (number < 1000) {\n return n;\n } else if (number >= 1000 && number < 1_000_000) {\n const formattedNum = (number / 1000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1000).toFixed(0) + \"K\"\n : formattedNum + \"K\";\n } else if (number >= 1_000_000 && number < 1_000_000_000) {\n const formattedNum = (number / 1_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000).toFixed(0) + \"M\"\n : formattedNum + \"M\";\n } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\n const formattedNum = (number / 1_000_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000_000).toFixed(0) + \"B\"\n : formattedNum + \"B\";\n } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\n const formattedNum = (number / 1_000_000_000_000).toFixed(1);\n return formattedNum.endsWith(\".0\")\n ? (number / 1_000_000_000_000).toFixed(0) + \"T\"\n : formattedNum + \"T\";\n }\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator: Separators,\n format = true\n) => {\n if (!format) {\n return x;\n }\n\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(\".\");\n};\n"],"mappings":"AAEA,OAAO,IAAMA,cAAc,GAAG,SAAjBA,cAAc,CAAIC,CAAS,EAAEC,iBAAiB,EAAW;EAAA,IAA5BA,iBAAiB;IAAjBA,iBAAiB,GAAG,GAAG;EAAA;EAC/D,IAAMC,MAAM,GAAGC,UAAU,CAACC,MAAM,CAACJ,CAAC,CAAC,CAACK,UAAU,CAACJ,iBAAiB,EAAE,EAAE,CAAC,CAAC;EAEtE,IAAIK,KAAK,CAACJ,MAAM,CAAC,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,IAAIA,MAAM,GAAG,IAAI,EAAE;IACjB,OAAOF,CAAC;EACV,CAAC,MAAM,IAAIE,MAAM,IAAI,IAAI,IAAIA,MAAM,GAAG,OAAS,EAAE;IAC/C,IAAMK,YAAY,GAAG,CAACL,MAAM,GAAG,IAAI,EAAEM,OAAO,CAAC,CAAC,CAAC;IAC/C,OAAOD,YAAY,CAACE,QAAQ,CAAC,IAAI,CAAC,GAC9B,CAACP,MAAM,GAAG,IAAI,EAAEM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAChCD,YAAY,GAAG,GAAG;EACxB,CAAC,MAAM,IAAIL,MAAM,IAAI,OAAS,IAAIA,MAAM,GAAG,UAAa,EAAE;IACxD,IAAMK,aAAY,GAAG,CAACL,MAAM,GAAG,OAAS,EAAEM,OAAO,CAAC,CAAC,CAAC;IACpD,OAAOD,aAAY,CAACE,QAAQ,CAAC,IAAI,CAAC,GAC9B,CAACP,MAAM,GAAG,OAAS,EAAEM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GACrCD,aAAY,GAAG,GAAG;EACxB,CAAC,MAAM,IAAIL,MAAM,IAAI,UAAa,IAAIA,MAAM,GAAG,aAAiB,EAAE;IAChE,IAAMK,cAAY,GAAG,CAACL,MAAM,GAAG,UAAa,EAAEM,OAAO,CAAC,CAAC,CAAC;IACxD,OAAOD,cAAY,CAACE,QAAQ,CAAC,IAAI,CAAC,GAC9B,CAACP,MAAM,GAAG,UAAa,EAAEM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GACzCD,cAAY,GAAG,GAAG;EACxB,CAAC,MAAM,IAAIL,MAAM,IAAI,aAAiB,IAAIA,MAAM,GAAG,gBAAqB,EAAE;IACxE,IAAMK,cAAY,GAAG,CAACL,MAAM,GAAG,aAAiB,EAAEM,OAAO,CAAC,CAAC,CAAC;IAC5D,OAAOD,cAAY,CAACE,QAAQ,CAAC,IAAI,CAAC,GAC9B,CAACP,MAAM,GAAG,aAAiB,EAAEM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAC7CD,cAAY,GAAG,GAAG;EACxB;AACF,CAAC;AAED,OAAO,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmB,CAC9BC,CAAkB,EAClBV,iBAA6B,EAC7BW,MAAM,EACH;EAAA,IADHA,MAAM;IAANA,MAAM,GAAG,IAAI;EAAA;EAEb,IAAI,CAACA,MAAM,EAAE;IACX,OAAOD,CAAC;EACV;EAEA,IAAME,KAAK,GAAGF,CAAC,CAACG,QAAQ,EAAE,CAACC,KAAK,CAAC,GAAG,CAAC;EACrCF,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAACG,OAAO,CAAC,uBAAuB,EAAEf,iBAAiB,CAAC;EAEvE,OAAOY,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC;AACxB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { formatCurrency } from "./currencyUtils";
|
|
1
|
+
import { formatCurrency, numberWithSeparator } from "./currencyUtils";
|
|
2
2
|
describe("format currency with thousandseparator set to ',' and decimalSeparator to '.'", function () {
|
|
3
3
|
it.each([["", ""], ["10", "10"], ["1000", "1K"], ["1000.00", "1K"], ["1200.50", "1.2K"], ["1,200.00", "1.2K"], ["2,240.00", "2.2K"], ["22,240.00", "22.2K"], ["50,000,000.00", "50M"]])("should format currency", function (value, expected) {
|
|
4
4
|
expect(formatCurrency(value, ",")).toEqual(expected);
|
|
@@ -9,4 +9,34 @@ describe("format currency with thousandseparator set to '.' and decimalSeparator
|
|
|
9
9
|
expect(formatCurrency(value, ".")).toEqual(expected);
|
|
10
10
|
});
|
|
11
11
|
});
|
|
12
|
+
describe("numberWithSeparator", function () {
|
|
13
|
+
test("should format number with thousand separator", function () {
|
|
14
|
+
var result = numberWithSeparator(1000, ",");
|
|
15
|
+
expect(result).toBe("1,000");
|
|
16
|
+
});
|
|
17
|
+
test("should format string number with thousand separator", function () {
|
|
18
|
+
var result = numberWithSeparator("1000", ",");
|
|
19
|
+
expect(result).toBe("1,000");
|
|
20
|
+
});
|
|
21
|
+
test("should format decimal number with thousand separator and keep decimal part", function () {
|
|
22
|
+
var result = numberWithSeparator(12345.67, ",");
|
|
23
|
+
expect(result).toBe("12,345.67");
|
|
24
|
+
});
|
|
25
|
+
test("should not format when format is set to false", function () {
|
|
26
|
+
var result = numberWithSeparator(1000, ",", false);
|
|
27
|
+
expect(result).toBe(1000);
|
|
28
|
+
});
|
|
29
|
+
test("should handle zero with thousand separator", function () {
|
|
30
|
+
var result = numberWithSeparator(0, ",");
|
|
31
|
+
expect(result).toBe("0");
|
|
32
|
+
});
|
|
33
|
+
test("should handle negative number with thousand separator", function () {
|
|
34
|
+
var result = numberWithSeparator(-123456789, ",");
|
|
35
|
+
expect(result).toBe("-123,456,789");
|
|
36
|
+
});
|
|
37
|
+
test("should not format", function () {
|
|
38
|
+
var result = numberWithSeparator(123456789, ",", false);
|
|
39
|
+
expect(result).toBe(123456789);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
12
42
|
//# sourceMappingURL=currencyUtils.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.test.js","names":["formatCurrency","describe","it","each","value","expected","expect","toEqual"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import { formatCurrency } from \"./currencyUtils\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000.00\", \"1K\"],\n [\"1200.50\", \"1.2K\"],\n [\"1,200.00\", \"1.2K\"],\n [\"2,240.00\", \"2.2K\"],\n [\"22,240.00\", \"22.2K\"],\n [\"50,000,000.00\", \"50M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \",\")).toEqual(expected);\n });\n});\n\ndescribe(\"format currency with thousandseparator set to '.' and decimalSeparator to ','\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000,00\", \"1K\"],\n [\"1200,50\", \"1.2K\"],\n [\"1.200,00\", \"1.2K\"],\n [\"2.240,00\", \"2.2K\"],\n [\"22.240,00\", \"22.2K\"],\n [\"50.000.000,00\", \"50M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \".\")).toEqual(expected);\n });\n});\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"currencyUtils.test.js","names":["formatCurrency","numberWithSeparator","describe","it","each","value","expected","expect","toEqual","test","result","toBe"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import { formatCurrency, numberWithSeparator } from \"./currencyUtils\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000.00\", \"1K\"],\n [\"1200.50\", \"1.2K\"],\n [\"1,200.00\", \"1.2K\"],\n [\"2,240.00\", \"2.2K\"],\n [\"22,240.00\", \"22.2K\"],\n [\"50,000,000.00\", \"50M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \",\")).toEqual(expected);\n });\n});\n\ndescribe(\"format currency with thousandseparator set to '.' and decimalSeparator to ','\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000,00\", \"1K\"],\n [\"1200,50\", \"1.2K\"],\n [\"1.200,00\", \"1.2K\"],\n [\"2.240,00\", \"2.2K\"],\n [\"22.240,00\", \"22.2K\"],\n [\"50.000.000,00\", \"50M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \".\")).toEqual(expected);\n });\n});\n\ndescribe(\"numberWithSeparator\", () => {\n test(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator(1000, \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format decimal number with thousand separator and keep decimal part\", () => {\n const result = numberWithSeparator(12345.67, \",\");\n expect(result).toBe(\"12,345.67\");\n });\n\n test(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", false);\n expect(result).toBe(1000);\n });\n\n test(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n test(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n test(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", false);\n expect(result).toBe(123456789);\n });\n});\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,mBAAmB,QAAQ,iBAAiB;AAErEC,QAAQ,CAAC,+EAA+E,EAAE,YAAM;EAC9FC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,IAAI,EAAE,IAAI,CAAC,EACZ,CAAC,MAAM,EAAE,IAAI,CAAC,EACd,CAAC,SAAS,EAAE,IAAI,CAAC,EACjB,CAAC,SAAS,EAAE,MAAM,CAAC,EACnB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAAC,WAAW,EAAE,OAAO,CAAC,EACtB,CAAC,eAAe,EAAE,KAAK,CAAC,CACzB,CAAC,CAAC,wBAAwB,EAAE,UAACC,KAAK,EAAEC,QAAQ,EAAK;IAChDC,MAAM,CAACP,cAAc,CAACK,KAAK,EAAE,GAAG,CAAC,CAAC,CAACG,OAAO,CAACF,QAAQ,CAAC;EACtD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFJ,QAAQ,CAAC,+EAA+E,EAAE,YAAM;EAC9FC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,IAAI,EAAE,IAAI,CAAC,EACZ,CAAC,MAAM,EAAE,IAAI,CAAC,EACd,CAAC,SAAS,EAAE,IAAI,CAAC,EACjB,CAAC,SAAS,EAAE,MAAM,CAAC,EACnB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAAC,WAAW,EAAE,OAAO,CAAC,EACtB,CAAC,eAAe,EAAE,KAAK,CAAC,CACzB,CAAC,CAAC,wBAAwB,EAAE,UAACC,KAAK,EAAEC,QAAQ,EAAK;IAChDC,MAAM,CAACP,cAAc,CAACK,KAAK,EAAE,GAAG,CAAC,CAAC,CAACG,OAAO,CAACF,QAAQ,CAAC;EACtD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFJ,QAAQ,CAAC,qBAAqB,EAAE,YAAM;EACpCO,IAAI,CAAC,8CAA8C,EAAE,YAAM;IACzD,IAAMC,MAAM,GAAGT,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC;IAC7CM,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,OAAO,CAAC;EAC9B,CAAC,CAAC;EAEFF,IAAI,CAAC,qDAAqD,EAAE,YAAM;IAChE,IAAMC,MAAM,GAAGT,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/CM,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,OAAO,CAAC;EAC9B,CAAC,CAAC;EAEFF,IAAI,CAAC,4EAA4E,EAAE,YAAM;IACvF,IAAMC,MAAM,GAAGT,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC;IACjDM,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,WAAW,CAAC;EAClC,CAAC,CAAC;EAEFF,IAAI,CAAC,+CAA+C,EAAE,YAAM;IAC1D,IAAMC,MAAM,GAAGT,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;IACpDM,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EAC3B,CAAC,CAAC;EAEFF,IAAI,CAAC,4CAA4C,EAAE,YAAM;IACvD,IAAMC,MAAM,GAAGT,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC;IAC1CM,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EAC1B,CAAC,CAAC;EAEFF,IAAI,CAAC,uDAAuD,EAAE,YAAM;IAClE,IAAMC,MAAM,GAAGT,mBAAmB,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC;IACnDM,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,cAAc,CAAC;EACrC,CAAC,CAAC;EAEFF,IAAI,CAAC,mBAAmB,EAAE,YAAM;IAC9B,IAAMC,MAAM,GAAGT,mBAAmB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC;IACzDM,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,SAAS,CAAC;EAChC,CAAC,CAAC;AACJ,CAAC,CAAC"}
|