@activecollab/components 1.0.396 → 1.0.398

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.
Files changed (30) hide show
  1. package/dist/cjs/components/Input/InputCurrency.js +21 -0
  2. package/dist/cjs/components/Input/InputCurrency.js.map +1 -0
  3. package/dist/cjs/components/Input/InputNumber.js +169 -0
  4. package/dist/cjs/components/Input/InputNumber.js.map +1 -0
  5. package/dist/cjs/components/Input/Styles.js.map +1 -1
  6. package/dist/cjs/utils/currencyUtils.js +42 -0
  7. package/dist/cjs/utils/currencyUtils.js.map +1 -0
  8. package/dist/cjs/utils/currencyUtils.test.js +14 -0
  9. package/dist/cjs/utils/currencyUtils.test.js.map +1 -0
  10. package/dist/esm/components/Input/InputCurrency.d.ts +5 -0
  11. package/dist/esm/components/Input/InputCurrency.d.ts.map +1 -0
  12. package/dist/esm/components/Input/InputCurrency.js +11 -0
  13. package/dist/esm/components/Input/InputCurrency.js.map +1 -0
  14. package/dist/esm/components/Input/InputNumber.d.ts +13 -0
  15. package/dist/esm/components/Input/InputNumber.d.ts.map +1 -0
  16. package/dist/esm/components/Input/InputNumber.js +150 -0
  17. package/dist/esm/components/Input/InputNumber.js.map +1 -0
  18. package/dist/esm/components/Input/Styles.d.ts.map +1 -1
  19. package/dist/esm/components/Input/Styles.js.map +1 -1
  20. package/dist/esm/utils/currencyUtils.d.ts +4 -0
  21. package/dist/esm/utils/currencyUtils.d.ts.map +1 -0
  22. package/dist/esm/utils/currencyUtils.js +38 -0
  23. package/dist/esm/utils/currencyUtils.js.map +1 -0
  24. package/dist/esm/utils/currencyUtils.test.d.ts +2 -0
  25. package/dist/esm/utils/currencyUtils.test.d.ts.map +1 -0
  26. package/dist/esm/utils/currencyUtils.test.js +12 -0
  27. package/dist/esm/utils/currencyUtils.test.js.map +1 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.min.js.map +1 -1
  30. package/package.json +1 -1
@@ -0,0 +1,38 @@
1
+ export var formatCurrency = function formatCurrency(n, thousandSeparator) {
2
+ if (thousandSeparator === void 0) {
3
+ thousandSeparator = ",";
4
+ }
5
+ var number = parseFloat(String(n).replaceAll(thousandSeparator, ""));
6
+ if (isNaN(number)) {
7
+ return "";
8
+ }
9
+ if (number < 1000) {
10
+ return n;
11
+ } else if (number >= 1000 && number < 1000000) {
12
+ var formattedNum = (number / 1000).toFixed(1);
13
+ return formattedNum.endsWith(".0") ? (number / 1000).toFixed(0) + "K" : formattedNum + "K";
14
+ } else if (number >= 1000000 && number < 1000000000) {
15
+ var _formattedNum = (number / 1000000).toFixed(1);
16
+ return _formattedNum.endsWith(".0") ? (number / 1000000).toFixed(0) + "M" : _formattedNum + "M";
17
+ } else if (number >= 1000000000 && number < 1000000000000) {
18
+ var _formattedNum2 = (number / 1000000000).toFixed(1);
19
+ return _formattedNum2.endsWith(".0") ? (number / 1000000000).toFixed(0) + "B" : _formattedNum2 + "B";
20
+ } else if (number >= 1000000000000 && number < 1000000000000000) {
21
+ var _formattedNum3 = (number / 1000000000000).toFixed(1);
22
+ return _formattedNum3.endsWith(".0") ? (number / 1000000000000).toFixed(0) + "T" : _formattedNum3 + "T";
23
+ }
24
+ };
25
+
26
+ // @TODO: Test
27
+ export var numberWithSeparator = function numberWithSeparator(x, thousandSeparator, format) {
28
+ if (format === void 0) {
29
+ format = true;
30
+ }
31
+ if (!format) {
32
+ return x;
33
+ }
34
+ var parts = x.toString().split(".");
35
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousandSeparator);
36
+ return parts.join(".");
37
+ };
38
+ //# sourceMappingURL=currencyUtils.js.map
@@ -0,0 +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\n// @TODO: Test\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;AACA,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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=currencyUtils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currencyUtils.test.d.ts","sourceRoot":"","sources":["../../../src/utils/currencyUtils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { formatCurrency } from "./currencyUtils";
2
+ describe("format currency with thousandseparator set to ',' and decimalSeparator to '.'", function () {
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
+ expect(formatCurrency(value, ",")).toEqual(expected);
5
+ });
6
+ });
7
+ describe("format currency with thousandseparator set to '.' and decimalSeparator to ','", function () {
8
+ 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) {
9
+ expect(formatCurrency(value, ".")).toEqual(expected);
10
+ });
11
+ });
12
+ //# sourceMappingURL=currencyUtils.test.js.map
@@ -0,0 +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;AAEhDC,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,CAACN,cAAc,CAACI,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,CAACN,cAAc,CAACI,KAAK,EAAE,GAAG,CAAC,CAAC,CAACG,OAAO,CAACF,QAAQ,CAAC;EACtD,CAAC,CAAC;AACJ,CAAC,CAAC"}