@activecollab/components 2.0.231 → 2.0.232

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.
@@ -79,7 +79,7 @@ var formatNumber = exports.formatNumber = function formatNumber(n) {
79
79
  var decimalSpaces = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2;
80
80
  var format = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "long";
81
81
  var shortenThreshold = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1000;
82
- if (typeof n === undefined || typeof n === null) return "";
82
+ if (n === undefined || n === null) return "";
83
83
  var number = getNumberFromString(n, thousandSeparator, decimalSeperator);
84
84
  if (isNaN(number)) {
85
85
  return "";
@@ -1 +1 @@
1
- {"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","exports","k","m","b","t","fixedDecimalSpaces","num","fixed","Math","pow","parts","toString","split","length","parseInt","floor","round","getNumberFromString","number","thousandSeparator","arguments","undefined","decimalSeparator","NaN","isNaN","Number","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","shortenThreshold","isNegative","absoluteNumber","abs","suffixes","scale","shouldShorten","formattedNum","toFixed","numberWithSeparator","concat","x","replace","join","formatCurrency","currencyCode","currencyCodePosition"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"string\" && number === \"\") {\n return NaN;\n }\n if (!isNaN(Number(number)) || typeof number === \"number\") {\n return Number(number);\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\n/**\n * @function formatNumber\n * @description\n * Formats a number or string into a human-readable format with options for thousand separators,\n * decimal precision, and shortening the number using suffixes (K, M, B, T).\n * It can handle negative numbers and optionally trim decimals and set number of decimal places based on the configuration.\n *\n * @param {string | number} n - The number or string to be formatted.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {number} [shortenThreshold=1000] - The minimum numeric value at which the number should be shortened\n * using suffixes. Numbers below this threshold will always be shown in long format.\n *\n * @returns {string} - The formatted number as a string with separators and potentially with decimals.\n *\n * @example\n * formatNumber(1500) // \"1,500.00\"\n * formatNumber(1500000, \",\", \".\", true, 2, \"short\") // \"1.5M\"\n */\nexport const formatNumber = (\n n?: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\",\n shortenThreshold = 1000\n) => {\n if (typeof n === undefined || typeof n === null) return \"\";\n\n const number = getNumberFromString(\n n as string,\n thousandSeparator,\n decimalSeperator\n );\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n const shouldShorten =\n absoluteNumber >= shortenThreshold && format === \"short\";\n\n while (\n shouldShorten &&\n scale < suffixes.length - 1 &&\n absoluteNumber >= 1000\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n let formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n if (formattedNum === 1000 && scale > 0 && scale < 4) {\n formattedNum = 1;\n scale++;\n }\n\n const result = numberWithSeparator(\n trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces),\n thousandSeparator,\n decimalSeperator\n );\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n format = true\n) => {\n if (!format) {\n return x;\n }\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(decimalSeparator);\n};\n\n/**\n * @function formatCurrency\n * @description\n * Formats a number or string as a currency string with options for thousand separators,\n * decimal precision, currency code, currency code position, and the use of suffixes (K, M, B, T) if needed.\n * It can handle negative values and supports customization of the currency code and its position.\n *\n * @param {string | number} n - The number or string to be formatted as currency.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=false] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {string} [currencyCode=\"\"] - The currency code to append or prepend to the formatted number.\n * @param {\"right\" | \"left\"} [currencyCodePosition=\"right\"] - The position of the currency code relative to the formatted number.\n *\n * @returns {string} - The formatted currency string, including the currency code if provided.\n *\n * @example\n * formatCurrency(1500, \",\", \".\", false, 2, \"long\", \"USD\", \"right\") // \"1,500.00 USD\"\n * formatCurrency(1500000, \",\", \".\", true, 2, \"short\", \"JPY\", \"left\") // \"JPY 1.5M\"\n */\nexport const formatCurrency = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = false,\n decimalSpaces = 2,\n format = \"long\",\n currencyCode = \"\",\n currencyCodePosition = \"right\"\n) => {\n const formattedNum = formatNumber(\n n,\n thousandSeparator,\n decimalSeperator,\n trimDecimals,\n decimalSpaces,\n format,\n 10000\n );\n\n if (!currencyCode) {\n return formattedNum;\n }\n\n return currencyCodePosition === \"right\"\n ? `${formattedNum} ${currencyCode}`\n : `${currencyCode} ${formattedNum}`;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","exports","k","m","b","t","fixedDecimalSpaces","num","fixed","Math","pow","parts","toString","split","length","parseInt","floor","round","getNumberFromString","number","thousandSeparator","arguments","undefined","decimalSeparator","NaN","isNaN","Number","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","shortenThreshold","isNegative","absoluteNumber","abs","suffixes","scale","shouldShorten","formattedNum","toFixed","numberWithSeparator","concat","x","replace","join","formatCurrency","currencyCode","currencyCodePosition"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"string\" && number === \"\") {\n return NaN;\n }\n if (!isNaN(Number(number)) || typeof number === \"number\") {\n return Number(number);\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\n/**\n * @function formatNumber\n * @description\n * Formats a number or string into a human-readable format with options for thousand separators,\n * decimal precision, and shortening the number using suffixes (K, M, B, T).\n * It can handle negative numbers and optionally trim decimals and set number of decimal places based on the configuration.\n *\n * @param {string | number} n - The number or string to be formatted.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {number} [shortenThreshold=1000] - The minimum numeric value at which the number should be shortened\n * using suffixes. Numbers below this threshold will always be shown in long format.\n *\n * @returns {string} - The formatted number as a string with separators and potentially with decimals.\n *\n * @example\n * formatNumber(1500) // \"1,500.00\"\n * formatNumber(1500000, \",\", \".\", true, 2, \"short\") // \"1.5M\"\n */\nexport const formatNumber = (\n n?: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\",\n shortenThreshold = 1000\n) => {\n if (n === undefined || n === null) return \"\";\n\n const number = getNumberFromString(\n n as string,\n thousandSeparator,\n decimalSeperator\n );\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n const shouldShorten =\n absoluteNumber >= shortenThreshold && format === \"short\";\n\n while (\n shouldShorten &&\n scale < suffixes.length - 1 &&\n absoluteNumber >= 1000\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n let formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n if (formattedNum === 1000 && scale > 0 && scale < 4) {\n formattedNum = 1;\n scale++;\n }\n\n const result = numberWithSeparator(\n trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces),\n thousandSeparator,\n decimalSeperator\n );\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n format = true\n) => {\n if (!format) {\n return x;\n }\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(decimalSeparator);\n};\n\n/**\n * @function formatCurrency\n * @description\n * Formats a number or string as a currency string with options for thousand separators,\n * decimal precision, currency code, currency code position, and the use of suffixes (K, M, B, T) if needed.\n * It can handle negative values and supports customization of the currency code and its position.\n *\n * @param {string | number} n - The number or string to be formatted as currency.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=false] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {string} [currencyCode=\"\"] - The currency code to append or prepend to the formatted number.\n * @param {\"right\" | \"left\"} [currencyCodePosition=\"right\"] - The position of the currency code relative to the formatted number.\n *\n * @returns {string} - The formatted currency string, including the currency code if provided.\n *\n * @example\n * formatCurrency(1500, \",\", \".\", false, 2, \"long\", \"USD\", \"right\") // \"1,500.00 USD\"\n * formatCurrency(1500000, \",\", \".\", true, 2, \"short\", \"JPY\", \"left\") // \"JPY 1.5M\"\n */\nexport const formatCurrency = (\n n?: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = false,\n decimalSpaces = 2,\n format = \"long\",\n currencyCode = \"\",\n currencyCodePosition = \"right\"\n) => {\n const formattedNum = formatNumber(\n n,\n thousandSeparator,\n decimalSeperator,\n trimDecimals,\n decimalSpaces,\n format,\n 10000\n );\n\n if (!currencyCode) {\n return formattedNum;\n }\n\n return currencyCodePosition === \"right\"\n ? `${formattedNum} ${currencyCode}`\n : `${currencyCode} ${formattedNum}`;\n};\n"],"mappings":"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"}
@@ -6,6 +6,8 @@ describe("format currency with thousandseparator set to ',' and decimalSeparator
6
6
  // prettier-ignore
7
7
  it.each([[{
8
8
  value: ""
9
+ }, ""], [{
10
+ value: undefined
9
11
  }, ""], [{
10
12
  value: "10"
11
13
  }, "10"], [{
@@ -1 +1 @@
1
- {"version":3,"file":"currencyUtils.test.js","names":["_currencyUtils","require","describe","it","each","value","thousandSeparator","decimalSeparator","trimDecimals","format","decimalSpaces","shortenThreshold","params","expected","expect","formatNumber","toEqual","number","fixedDecimalSpaces","toBe","result","numberWithSeparator","toFixed","getNumberFromString","currencyCode","currencyCodePosition","args","formatCurrency"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import {\n formatNumber,\n getNumberFromString,\n numberWithSeparator,\n fixedDecimalSpaces,\n formatCurrency,\n} from \"./currencyUtils\";\nimport { FormatCurrencyArgs, FormatNumberArgs } from \"./types\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatNumberArgs, string]>([\n [{ value: \"\" }, \"\"],\n [{ value: \"10\" }, \"10\"],\n [{ value: \"1000\" }, \"1,000\"],\n [{ value: \"1000.00\" }, \"1,000\"],\n [{ value: \"1200.50\" }, \"1,200.5\"],\n [{ value: \"1,200.00\" }, \"1,200\"],\n [{ value: \"2,240.00\" }, \"2,240\"],\n [{ value: \"22,240.00\" }, \"22,240\"],\n [{ value: \"50,000,000.00\" }, \"50,000,000\"],\n [{ value: \"-50,000.00\" }, \"-50,000\"],\n [{ value: \"-1,200\" }, \"-1,200\"],\n [{ value: \"-90,000,000.00\" }, \"-90,000,000\"],\n [{ value: \"900.25\" }, \"900.25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 0, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, format: \"long\", decimalSpaces: 2 }, \"0,00\"],\n [{ value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 6 }, \"900,255556\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false }, \"900,25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3 }, \"900,250\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3, format: \"long\" }, \"900,250\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: \"1150.00000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: 1150.6, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\" ],\n [{ value: \"1150.60\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\"],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\" ],\n [{ value: \"1150.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\"],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\"],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,5M\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\" }, \"1.579,50\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"short\", shortenThreshold: 10000 }, \"1.579,50\" ],\n ])(\"should format currency advanced\", (params, expected) => {\n const {\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n shortenThreshold\n } = params;\n\n expect(\n formatNumber(\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n shortenThreshold\n )\n ).toEqual(expected);\n });\n\n //fixedDecimalSpaces\n it.each<[{ number: number; decimalSpaces: number }, number]>([\n [{ number: 123.456789, decimalSpaces: 3 }, 123.456],\n [{ number: 123.3, decimalSpaces: 2 }, 123.3],\n [{ number: 123.3, decimalSpaces: 0 }, 123],\n ])(\"should handle fixedDecimalSpaces\", (params, expected) => {\n expect(fixedDecimalSpaces(params.number, params.decimalSpaces)).toBe(\n expected\n );\n });\n\n //numberWithSeparator\n it(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator((1000.0).toFixed(3), \",\", \".\");\n expect(result).toBe(\"1,000.000\");\n });\n\n it(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n it(\"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 it(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", \".\", false);\n expect(result).toBe(1000);\n });\n\n it(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n it(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n it(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", \".\", false);\n expect(result).toBe(123456789);\n });\n\n //getNumberFromString\n it.each([\n [\n {\n number: \"1.000.000,256\",\n thousandSeparator: \".\",\n decimalSeparator: \",\",\n },\n 1000000.256,\n ],\n [\n { number: 1000000.256, thousandSeparator: \".\", decimalSeparator: \",\" },\n 1000000.256,\n ],\n [\n {\n number: \"1,000,000.256\",\n thousandSeparator: \",\",\n decimalSeparator: \".\",\n },\n 1000000.256,\n ],\n [{ number: \",256\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0.256],\n [{ number: \"1562\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n [{ number: \"1,2,3.4\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0],\n [{ number: \"1562\", thousandSeparator: \",\", decimalSeparator: \".\" }, 1562],\n [\n { number: \"-1.562,25\", thousandSeparator: \".\", decimalSeparator: \",\" },\n -1562.25,\n ],\n [\n { number: \"-1 562.25\", thousandSeparator: \" \", decimalSeparator: \".\" },\n -1562.25,\n ],\n [\n { number: \"1562.50\", thousandSeparator: \".\", decimalSeparator: \",\" },\n 1562.5,\n ],\n [{ number: \"1562.\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n ])(\"should handle getNumberFromString\", (params, expected) => {\n const { number, thousandSeparator, decimalSeparator } = params;\n\n expect(\n getNumberFromString(number, thousandSeparator, decimalSeparator)\n ).toBe(expected);\n });\n\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatCurrencyArgs, string]>([\n [\n { value: \"\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"\",\n ],\n [\n { value: 0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"0.00 USD\",\n ],\n [\n { value: \"10\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"10.00\",\n ],\n [\n { value: \"1000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"1,000.00 USD\",\n ],\n [\n { value: \"1000.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1,000\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"EUR\", currencyCodePosition: \"right\" },\n \"1.200,50 EUR\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"1.200,50\",\n ],\n [\n { value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"JPY\", currencyCodePosition: \"right\" },\n \"1,150.66 JPY\",\n ],\n [\n { value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1.5M\",\n ],\n ])(\"should format currency correctly\", (args, expected) => {\n expect(\n formatCurrency(\n args.value,\n args.thousandSeparator,\n args.decimalSeparator,\n args.trimDecimals,\n args.decimalSpaces,\n args.format,\n args.currencyCode,\n args.currencyCodePosition\n )\n ).toEqual(expected);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"currencyUtils.test.js","names":["_currencyUtils","require","describe","it","each","value","undefined","thousandSeparator","decimalSeparator","trimDecimals","format","decimalSpaces","shortenThreshold","params","expected","expect","formatNumber","toEqual","number","fixedDecimalSpaces","toBe","result","numberWithSeparator","toFixed","getNumberFromString","currencyCode","currencyCodePosition","args","formatCurrency"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import {\n formatNumber,\n getNumberFromString,\n numberWithSeparator,\n fixedDecimalSpaces,\n formatCurrency,\n} from \"./currencyUtils\";\nimport { FormatCurrencyArgs, FormatNumberArgs } from \"./types\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatNumberArgs, string]>([\n [{ value: \"\" }, \"\"],\n [{ value: undefined}, \"\"],\n [{ value: \"10\" }, \"10\"],\n [{ value: \"1000\" }, \"1,000\"],\n [{ value: \"1000.00\" }, \"1,000\"],\n [{ value: \"1200.50\" }, \"1,200.5\"],\n [{ value: \"1,200.00\" }, \"1,200\"],\n [{ value: \"2,240.00\" }, \"2,240\"],\n [{ value: \"22,240.00\" }, \"22,240\"],\n [{ value: \"50,000,000.00\" }, \"50,000,000\"],\n [{ value: \"-50,000.00\" }, \"-50,000\"],\n [{ value: \"-1,200\" }, \"-1,200\"],\n [{ value: \"-90,000,000.00\" }, \"-90,000,000\"],\n [{ value: \"900.25\" }, \"900.25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 0, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, format: \"long\", decimalSpaces: 2 }, \"0,00\"],\n [{ value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 6 }, \"900,255556\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false }, \"900,25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3 }, \"900,250\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3, format: \"long\" }, \"900,250\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: \"1150.00000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: 1150.6, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\" ],\n [{ value: \"1150.60\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\"],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\" ],\n [{ value: \"1150.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\"],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\"],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,5M\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\" }, \"1.579,50\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"short\", shortenThreshold: 10000 }, \"1.579,50\" ],\n ])(\"should format currency advanced\", (params, expected) => {\n const {\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n shortenThreshold\n } = params;\n\n expect(\n formatNumber(\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n shortenThreshold\n )\n ).toEqual(expected);\n });\n\n //fixedDecimalSpaces\n it.each<[{ number: number; decimalSpaces: number }, number]>([\n [{ number: 123.456789, decimalSpaces: 3 }, 123.456],\n [{ number: 123.3, decimalSpaces: 2 }, 123.3],\n [{ number: 123.3, decimalSpaces: 0 }, 123],\n ])(\"should handle fixedDecimalSpaces\", (params, expected) => {\n expect(fixedDecimalSpaces(params.number, params.decimalSpaces)).toBe(\n expected\n );\n });\n\n //numberWithSeparator\n it(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator((1000.0).toFixed(3), \",\", \".\");\n expect(result).toBe(\"1,000.000\");\n });\n\n it(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n it(\"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 it(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", \".\", false);\n expect(result).toBe(1000);\n });\n\n it(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n it(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n it(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", \".\", false);\n expect(result).toBe(123456789);\n });\n\n //getNumberFromString\n it.each([\n [\n {\n number: \"1.000.000,256\",\n thousandSeparator: \".\",\n decimalSeparator: \",\",\n },\n 1000000.256,\n ],\n [\n { number: 1000000.256, thousandSeparator: \".\", decimalSeparator: \",\" },\n 1000000.256,\n ],\n [\n {\n number: \"1,000,000.256\",\n thousandSeparator: \",\",\n decimalSeparator: \".\",\n },\n 1000000.256,\n ],\n [{ number: \",256\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0.256],\n [{ number: \"1562\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n [{ number: \"1,2,3.4\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0],\n [{ number: \"1562\", thousandSeparator: \",\", decimalSeparator: \".\" }, 1562],\n [\n { number: \"-1.562,25\", thousandSeparator: \".\", decimalSeparator: \",\" },\n -1562.25,\n ],\n [\n { number: \"-1 562.25\", thousandSeparator: \" \", decimalSeparator: \".\" },\n -1562.25,\n ],\n [\n { number: \"1562.50\", thousandSeparator: \".\", decimalSeparator: \",\" },\n 1562.5,\n ],\n [{ number: \"1562.\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n ])(\"should handle getNumberFromString\", (params, expected) => {\n const { number, thousandSeparator, decimalSeparator } = params;\n\n expect(\n getNumberFromString(number, thousandSeparator, decimalSeparator)\n ).toBe(expected);\n });\n\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatCurrencyArgs, string]>([\n [\n { value: \"\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"\",\n ],\n [\n { value: 0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"0.00 USD\",\n ],\n [\n { value: \"10\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"10.00\",\n ],\n [\n { value: \"1000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"1,000.00 USD\",\n ],\n [\n { value: \"1000.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1,000\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"EUR\", currencyCodePosition: \"right\" },\n \"1.200,50 EUR\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"1.200,50\",\n ],\n [\n { value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"JPY\", currencyCodePosition: \"right\" },\n \"1,150.66 JPY\",\n ],\n [\n { value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1.5M\",\n ],\n ])(\"should format currency correctly\", (args, expected) => {\n expect(\n formatCurrency(\n args.value,\n args.thousandSeparator,\n args.decimalSeparator,\n args.trimDecimals,\n args.decimalSpaces,\n args.format,\n args.currencyCode,\n args.currencyCodePosition\n )\n ).toEqual(expected);\n });\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/types.ts"],"sourcesContent":["import React from \"react\";\n\n// Source: https://github.com/emotion-js/emotion/blob/master/packages/styled-base/types/helper.d.ts\n// A more precise version of just React.ComponentPropsWithoutRef on its own\nexport type PropsOf<\n C extends keyof JSX.IntrinsicElements | React.JSXElementConstructor<unknown>\n> = JSX.LibraryManagedAttributes<C, React.ComponentPropsWithoutRef<C>>;\n\ntype AsProp<C extends React.ElementType> = {\n /**\n * An override of the default HTML tag.\n * Can also be another React component.\n */\n as?: C;\n};\n\n/**\n * Allows for extending a set of props (`ExtendedProps`) by an overriding set of props\n * (`OverrideProps`), ensuring that any duplicates are overridden by the overriding\n * set of props.\n */\nexport type ExtendableProps<\n ExtendedProps = Record<string, unknown>,\n OverrideProps = Record<string, unknown>\n> = OverrideProps & Omit<ExtendedProps, keyof OverrideProps>;\n\n/**\n * Allows for inheriting the props from the specified element type so that\n * props like children, className & style work, as well as element-specific\n * attributes like aria roles. The component (`C`) must be passed in.\n */\nexport type InheritableElementProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = ExtendableProps<PropsOf<C>, Props>;\n\n/**\n * A more sophisticated version of `InheritableElementProps` where\n * the passed in `as` prop will determine which props can be included\n */\nexport type PolymorphicComponentProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = InheritableElementProps<C, Props & AsProp<C>>;\n\n/**\n * Utility type to extract the `ref` prop from a polymorphic component\n */\nexport type PolymorphicRef<C extends React.ElementType> =\n React.ComponentPropsWithRef<C>[\"ref\"];\n/**\n * A wrapper of `PolymorphicComponentProps` that also includes the `ref`\n * prop for the polymorphic component\n */\nexport type PolymorphicComponentPropsWithRef<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = PolymorphicComponentProps<C, Props> & { ref?: PolymorphicRef<C> };\n\nexport interface FormatNumberArgs {\n value: string | number;\n thousandSeparator?: \",\" | \".\" | \" \";\n decimalSeparator?: \",\" | \".\";\n trimDecimals?: boolean;\n decimalSpaces?: number;\n format?: FormatType;\n shortenThreshold?: number;\n}\n\nexport interface FormatCurrencyArgs extends FormatNumberArgs {\n currencyCode?: string;\n currencyCodePosition?: \"right\" | \"left\";\n}\n\nexport type FormatType = \"short\" | \"long\";\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/types.ts"],"sourcesContent":["import React from \"react\";\n\n// Source: https://github.com/emotion-js/emotion/blob/master/packages/styled-base/types/helper.d.ts\n// A more precise version of just React.ComponentPropsWithoutRef on its own\nexport type PropsOf<\n C extends keyof JSX.IntrinsicElements | React.JSXElementConstructor<unknown>\n> = JSX.LibraryManagedAttributes<C, React.ComponentPropsWithoutRef<C>>;\n\ntype AsProp<C extends React.ElementType> = {\n /**\n * An override of the default HTML tag.\n * Can also be another React component.\n */\n as?: C;\n};\n\n/**\n * Allows for extending a set of props (`ExtendedProps`) by an overriding set of props\n * (`OverrideProps`), ensuring that any duplicates are overridden by the overriding\n * set of props.\n */\nexport type ExtendableProps<\n ExtendedProps = Record<string, unknown>,\n OverrideProps = Record<string, unknown>\n> = OverrideProps & Omit<ExtendedProps, keyof OverrideProps>;\n\n/**\n * Allows for inheriting the props from the specified element type so that\n * props like children, className & style work, as well as element-specific\n * attributes like aria roles. The component (`C`) must be passed in.\n */\nexport type InheritableElementProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = ExtendableProps<PropsOf<C>, Props>;\n\n/**\n * A more sophisticated version of `InheritableElementProps` where\n * the passed in `as` prop will determine which props can be included\n */\nexport type PolymorphicComponentProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = InheritableElementProps<C, Props & AsProp<C>>;\n\n/**\n * Utility type to extract the `ref` prop from a polymorphic component\n */\nexport type PolymorphicRef<C extends React.ElementType> =\n React.ComponentPropsWithRef<C>[\"ref\"];\n/**\n * A wrapper of `PolymorphicComponentProps` that also includes the `ref`\n * prop for the polymorphic component\n */\nexport type PolymorphicComponentPropsWithRef<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = PolymorphicComponentProps<C, Props> & { ref?: PolymorphicRef<C> };\n\nexport interface FormatNumberArgs {\n value?: string | number;\n thousandSeparator?: \",\" | \".\" | \" \";\n decimalSeparator?: \",\" | \".\";\n trimDecimals?: boolean;\n decimalSpaces?: number;\n format?: FormatType;\n shortenThreshold?: number;\n}\n\nexport interface FormatCurrencyArgs extends FormatNumberArgs {\n currencyCode?: string;\n currencyCodePosition?: \"right\" | \"left\";\n}\n\nexport type FormatType = \"short\" | \"long\";\n"],"mappings":""}
@@ -52,5 +52,5 @@ export declare const numberWithSeparator: (x: number | string, thousandSeparator
52
52
  * formatCurrency(1500, ",", ".", false, 2, "long", "USD", "right") // "1,500.00 USD"
53
53
  * formatCurrency(1500000, ",", ".", true, 2, "short", "JPY", "left") // "JPY 1.5M"
54
54
  */
55
- export declare const formatCurrency: (n: string | number, thousandSeparator?: string, decimalSeperator?: string, trimDecimals?: boolean, decimalSpaces?: number, format?: string, currencyCode?: string, currencyCodePosition?: string) => string;
55
+ export declare const formatCurrency: (n?: string | number, thousandSeparator?: string, decimalSeperator?: string, trimDecimals?: boolean, decimalSpaces?: number, format?: string, currencyCode?: string, currencyCodePosition?: string) => string;
56
56
  //# sourceMappingURL=currencyUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"currencyUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/currencyUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,SAAS,MAAM,WAQ5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB,MAAM,GAAG,MAAM,kEAsCxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,OACnB,MAAM,GAAG,MAAM,8JAyDpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,MAC3B,MAAM,GAAG,MAAM,6FAYnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,MACtB,MAAM,GAAG,MAAM,yLA0BnB,CAAC"}
1
+ {"version":3,"file":"currencyUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/currencyUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,SAAS,MAAM,WAQ5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB,MAAM,GAAG,MAAM,kEAsCxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,OACnB,MAAM,GAAG,MAAM,8JAyDpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,MAC3B,MAAM,GAAG,MAAM,6FAYnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,OACrB,MAAM,GAAG,MAAM,yLA0BpB,CAAC"}
@@ -89,7 +89,7 @@ export const formatNumber = function (n, thousandSeparator, decimalSeperator, tr
89
89
  if (shortenThreshold === void 0) {
90
90
  shortenThreshold = 1000;
91
91
  }
92
- if (typeof n === undefined || typeof n === null) return "";
92
+ if (n === undefined || n === null) return "";
93
93
  const number = getNumberFromString(n, thousandSeparator, decimalSeperator);
94
94
  if (isNaN(number)) {
95
95
  return "";
@@ -1 +1 @@
1
- {"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","k","m","b","t","fixedDecimalSpaces","num","fixed","Math","pow","parts","toString","split","length","parseInt","floor","round","getNumberFromString","number","thousandSeparator","decimalSeparator","NaN","isNaN","Number","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","shortenThreshold","undefined","isNegative","absoluteNumber","abs","suffixes","scale","shouldShorten","formattedNum","toFixed","numberWithSeparator","x","replace","join","formatCurrency","currencyCode","currencyCodePosition"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"string\" && number === \"\") {\n return NaN;\n }\n if (!isNaN(Number(number)) || typeof number === \"number\") {\n return Number(number);\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\n/**\n * @function formatNumber\n * @description\n * Formats a number or string into a human-readable format with options for thousand separators,\n * decimal precision, and shortening the number using suffixes (K, M, B, T).\n * It can handle negative numbers and optionally trim decimals and set number of decimal places based on the configuration.\n *\n * @param {string | number} n - The number or string to be formatted.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {number} [shortenThreshold=1000] - The minimum numeric value at which the number should be shortened\n * using suffixes. Numbers below this threshold will always be shown in long format.\n *\n * @returns {string} - The formatted number as a string with separators and potentially with decimals.\n *\n * @example\n * formatNumber(1500) // \"1,500.00\"\n * formatNumber(1500000, \",\", \".\", true, 2, \"short\") // \"1.5M\"\n */\nexport const formatNumber = (\n n?: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\",\n shortenThreshold = 1000\n) => {\n if (typeof n === undefined || typeof n === null) return \"\";\n\n const number = getNumberFromString(\n n as string,\n thousandSeparator,\n decimalSeperator\n );\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n const shouldShorten =\n absoluteNumber >= shortenThreshold && format === \"short\";\n\n while (\n shouldShorten &&\n scale < suffixes.length - 1 &&\n absoluteNumber >= 1000\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n let formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n if (formattedNum === 1000 && scale > 0 && scale < 4) {\n formattedNum = 1;\n scale++;\n }\n\n const result = numberWithSeparator(\n trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces),\n thousandSeparator,\n decimalSeperator\n );\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n format = true\n) => {\n if (!format) {\n return x;\n }\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(decimalSeparator);\n};\n\n/**\n * @function formatCurrency\n * @description\n * Formats a number or string as a currency string with options for thousand separators,\n * decimal precision, currency code, currency code position, and the use of suffixes (K, M, B, T) if needed.\n * It can handle negative values and supports customization of the currency code and its position.\n *\n * @param {string | number} n - The number or string to be formatted as currency.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=false] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {string} [currencyCode=\"\"] - The currency code to append or prepend to the formatted number.\n * @param {\"right\" | \"left\"} [currencyCodePosition=\"right\"] - The position of the currency code relative to the formatted number.\n *\n * @returns {string} - The formatted currency string, including the currency code if provided.\n *\n * @example\n * formatCurrency(1500, \",\", \".\", false, 2, \"long\", \"USD\", \"right\") // \"1,500.00 USD\"\n * formatCurrency(1500000, \",\", \".\", true, 2, \"short\", \"JPY\", \"left\") // \"JPY 1.5M\"\n */\nexport const formatCurrency = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = false,\n decimalSpaces = 2,\n format = \"long\",\n currencyCode = \"\",\n currencyCodePosition = \"right\"\n) => {\n const formattedNum = formatNumber(\n n,\n thousandSeparator,\n decimalSeperator,\n trimDecimals,\n decimalSpaces,\n format,\n 10000\n );\n\n if (!currencyCode) {\n return formattedNum;\n }\n\n return currencyCodePosition === \"right\"\n ? `${formattedNum} ${currencyCode}`\n : `${currencyCode} ${formattedNum}`;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","k","m","b","t","fixedDecimalSpaces","num","fixed","Math","pow","parts","toString","split","length","parseInt","floor","round","getNumberFromString","number","thousandSeparator","decimalSeparator","NaN","isNaN","Number","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","shortenThreshold","undefined","isNegative","absoluteNumber","abs","suffixes","scale","shouldShorten","formattedNum","toFixed","numberWithSeparator","x","replace","join","formatCurrency","currencyCode","currencyCodePosition"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"string\" && number === \"\") {\n return NaN;\n }\n if (!isNaN(Number(number)) || typeof number === \"number\") {\n return Number(number);\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\n/**\n * @function formatNumber\n * @description\n * Formats a number or string into a human-readable format with options for thousand separators,\n * decimal precision, and shortening the number using suffixes (K, M, B, T).\n * It can handle negative numbers and optionally trim decimals and set number of decimal places based on the configuration.\n *\n * @param {string | number} n - The number or string to be formatted.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {number} [shortenThreshold=1000] - The minimum numeric value at which the number should be shortened\n * using suffixes. Numbers below this threshold will always be shown in long format.\n *\n * @returns {string} - The formatted number as a string with separators and potentially with decimals.\n *\n * @example\n * formatNumber(1500) // \"1,500.00\"\n * formatNumber(1500000, \",\", \".\", true, 2, \"short\") // \"1.5M\"\n */\nexport const formatNumber = (\n n?: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\",\n shortenThreshold = 1000\n) => {\n if (n === undefined || n === null) return \"\";\n\n const number = getNumberFromString(\n n as string,\n thousandSeparator,\n decimalSeperator\n );\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n const shouldShorten =\n absoluteNumber >= shortenThreshold && format === \"short\";\n\n while (\n shouldShorten &&\n scale < suffixes.length - 1 &&\n absoluteNumber >= 1000\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n let formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n if (formattedNum === 1000 && scale > 0 && scale < 4) {\n formattedNum = 1;\n scale++;\n }\n\n const result = numberWithSeparator(\n trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces),\n thousandSeparator,\n decimalSeperator\n );\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n format = true\n) => {\n if (!format) {\n return x;\n }\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(decimalSeparator);\n};\n\n/**\n * @function formatCurrency\n * @description\n * Formats a number or string as a currency string with options for thousand separators,\n * decimal precision, currency code, currency code position, and the use of suffixes (K, M, B, T) if needed.\n * It can handle negative values and supports customization of the currency code and its position.\n *\n * @param {string | number} n - The number or string to be formatted as currency.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=false] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {string} [currencyCode=\"\"] - The currency code to append or prepend to the formatted number.\n * @param {\"right\" | \"left\"} [currencyCodePosition=\"right\"] - The position of the currency code relative to the formatted number.\n *\n * @returns {string} - The formatted currency string, including the currency code if provided.\n *\n * @example\n * formatCurrency(1500, \",\", \".\", false, 2, \"long\", \"USD\", \"right\") // \"1,500.00 USD\"\n * formatCurrency(1500000, \",\", \".\", true, 2, \"short\", \"JPY\", \"left\") // \"JPY 1.5M\"\n */\nexport const formatCurrency = (\n n?: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = false,\n decimalSpaces = 2,\n format = \"long\",\n currencyCode = \"\",\n currencyCodePosition = \"right\"\n) => {\n const formattedNum = formatNumber(\n n,\n thousandSeparator,\n decimalSeperator,\n trimDecimals,\n decimalSpaces,\n format,\n 10000\n );\n\n if (!currencyCode) {\n return formattedNum;\n }\n\n return currencyCodePosition === \"right\"\n ? `${formattedNum} ${currencyCode}`\n : `${currencyCode} ${formattedNum}`;\n};\n"],"mappings":"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"}
@@ -4,6 +4,8 @@ describe("format currency with thousandseparator set to ',' and decimalSeparator
4
4
  // prettier-ignore
5
5
  it.each([[{
6
6
  value: ""
7
+ }, ""], [{
8
+ value: undefined
7
9
  }, ""], [{
8
10
  value: "10"
9
11
  }, "10"], [{
@@ -1 +1 @@
1
- {"version":3,"file":"currencyUtils.test.js","names":["formatNumber","getNumberFromString","numberWithSeparator","fixedDecimalSpaces","formatCurrency","describe","it","each","value","thousandSeparator","decimalSeparator","trimDecimals","format","decimalSpaces","shortenThreshold","params","expected","expect","toEqual","number","toBe","result","toFixed","currencyCode","currencyCodePosition","args"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import {\n formatNumber,\n getNumberFromString,\n numberWithSeparator,\n fixedDecimalSpaces,\n formatCurrency,\n} from \"./currencyUtils\";\nimport { FormatCurrencyArgs, FormatNumberArgs } from \"./types\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatNumberArgs, string]>([\n [{ value: \"\" }, \"\"],\n [{ value: \"10\" }, \"10\"],\n [{ value: \"1000\" }, \"1,000\"],\n [{ value: \"1000.00\" }, \"1,000\"],\n [{ value: \"1200.50\" }, \"1,200.5\"],\n [{ value: \"1,200.00\" }, \"1,200\"],\n [{ value: \"2,240.00\" }, \"2,240\"],\n [{ value: \"22,240.00\" }, \"22,240\"],\n [{ value: \"50,000,000.00\" }, \"50,000,000\"],\n [{ value: \"-50,000.00\" }, \"-50,000\"],\n [{ value: \"-1,200\" }, \"-1,200\"],\n [{ value: \"-90,000,000.00\" }, \"-90,000,000\"],\n [{ value: \"900.25\" }, \"900.25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 0, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, format: \"long\", decimalSpaces: 2 }, \"0,00\"],\n [{ value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 6 }, \"900,255556\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false }, \"900,25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3 }, \"900,250\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3, format: \"long\" }, \"900,250\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: \"1150.00000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: 1150.6, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\" ],\n [{ value: \"1150.60\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\"],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\" ],\n [{ value: \"1150.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\"],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\"],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,5M\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\" }, \"1.579,50\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"short\", shortenThreshold: 10000 }, \"1.579,50\" ],\n ])(\"should format currency advanced\", (params, expected) => {\n const {\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n shortenThreshold\n } = params;\n\n expect(\n formatNumber(\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n shortenThreshold\n )\n ).toEqual(expected);\n });\n\n //fixedDecimalSpaces\n it.each<[{ number: number; decimalSpaces: number }, number]>([\n [{ number: 123.456789, decimalSpaces: 3 }, 123.456],\n [{ number: 123.3, decimalSpaces: 2 }, 123.3],\n [{ number: 123.3, decimalSpaces: 0 }, 123],\n ])(\"should handle fixedDecimalSpaces\", (params, expected) => {\n expect(fixedDecimalSpaces(params.number, params.decimalSpaces)).toBe(\n expected\n );\n });\n\n //numberWithSeparator\n it(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator((1000.0).toFixed(3), \",\", \".\");\n expect(result).toBe(\"1,000.000\");\n });\n\n it(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n it(\"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 it(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", \".\", false);\n expect(result).toBe(1000);\n });\n\n it(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n it(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n it(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", \".\", false);\n expect(result).toBe(123456789);\n });\n\n //getNumberFromString\n it.each([\n [\n {\n number: \"1.000.000,256\",\n thousandSeparator: \".\",\n decimalSeparator: \",\",\n },\n 1000000.256,\n ],\n [\n { number: 1000000.256, thousandSeparator: \".\", decimalSeparator: \",\" },\n 1000000.256,\n ],\n [\n {\n number: \"1,000,000.256\",\n thousandSeparator: \",\",\n decimalSeparator: \".\",\n },\n 1000000.256,\n ],\n [{ number: \",256\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0.256],\n [{ number: \"1562\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n [{ number: \"1,2,3.4\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0],\n [{ number: \"1562\", thousandSeparator: \",\", decimalSeparator: \".\" }, 1562],\n [\n { number: \"-1.562,25\", thousandSeparator: \".\", decimalSeparator: \",\" },\n -1562.25,\n ],\n [\n { number: \"-1 562.25\", thousandSeparator: \" \", decimalSeparator: \".\" },\n -1562.25,\n ],\n [\n { number: \"1562.50\", thousandSeparator: \".\", decimalSeparator: \",\" },\n 1562.5,\n ],\n [{ number: \"1562.\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n ])(\"should handle getNumberFromString\", (params, expected) => {\n const { number, thousandSeparator, decimalSeparator } = params;\n\n expect(\n getNumberFromString(number, thousandSeparator, decimalSeparator)\n ).toBe(expected);\n });\n\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatCurrencyArgs, string]>([\n [\n { value: \"\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"\",\n ],\n [\n { value: 0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"0.00 USD\",\n ],\n [\n { value: \"10\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"10.00\",\n ],\n [\n { value: \"1000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"1,000.00 USD\",\n ],\n [\n { value: \"1000.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1,000\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"EUR\", currencyCodePosition: \"right\" },\n \"1.200,50 EUR\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"1.200,50\",\n ],\n [\n { value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"JPY\", currencyCodePosition: \"right\" },\n \"1,150.66 JPY\",\n ],\n [\n { value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1.5M\",\n ],\n ])(\"should format currency correctly\", (args, expected) => {\n expect(\n formatCurrency(\n args.value,\n args.thousandSeparator,\n args.decimalSeparator,\n args.trimDecimals,\n args.decimalSpaces,\n args.format,\n args.currencyCode,\n args.currencyCodePosition\n )\n ).toEqual(expected);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"currencyUtils.test.js","names":["formatNumber","getNumberFromString","numberWithSeparator","fixedDecimalSpaces","formatCurrency","describe","it","each","value","undefined","thousandSeparator","decimalSeparator","trimDecimals","format","decimalSpaces","shortenThreshold","params","expected","expect","toEqual","number","toBe","result","toFixed","currencyCode","currencyCodePosition","args"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import {\n formatNumber,\n getNumberFromString,\n numberWithSeparator,\n fixedDecimalSpaces,\n formatCurrency,\n} from \"./currencyUtils\";\nimport { FormatCurrencyArgs, FormatNumberArgs } from \"./types\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatNumberArgs, string]>([\n [{ value: \"\" }, \"\"],\n [{ value: undefined}, \"\"],\n [{ value: \"10\" }, \"10\"],\n [{ value: \"1000\" }, \"1,000\"],\n [{ value: \"1000.00\" }, \"1,000\"],\n [{ value: \"1200.50\" }, \"1,200.5\"],\n [{ value: \"1,200.00\" }, \"1,200\"],\n [{ value: \"2,240.00\" }, \"2,240\"],\n [{ value: \"22,240.00\" }, \"22,240\"],\n [{ value: \"50,000,000.00\" }, \"50,000,000\"],\n [{ value: \"-50,000.00\" }, \"-50,000\"],\n [{ value: \"-1,200\" }, \"-1,200\"],\n [{ value: \"-90,000,000.00\" }, \"-90,000,000\"],\n [{ value: \"900.25\" }, \"900.25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 0, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, format: \"long\", decimalSpaces: 2 }, \"0,00\"],\n [{ value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 6 }, \"900,255556\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false }, \"900,25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3 }, \"900,250\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3, format: \"long\" }, \"900,250\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: \"1150.00000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: 1150.6, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\" ],\n [{ value: \"1150.60\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\"],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\" ],\n [{ value: \"1150.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\"],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\"],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,5M\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\" }, \"1.579,50\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"short\", shortenThreshold: 10000 }, \"1.579,50\" ],\n ])(\"should format currency advanced\", (params, expected) => {\n const {\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n shortenThreshold\n } = params;\n\n expect(\n formatNumber(\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n shortenThreshold\n )\n ).toEqual(expected);\n });\n\n //fixedDecimalSpaces\n it.each<[{ number: number; decimalSpaces: number }, number]>([\n [{ number: 123.456789, decimalSpaces: 3 }, 123.456],\n [{ number: 123.3, decimalSpaces: 2 }, 123.3],\n [{ number: 123.3, decimalSpaces: 0 }, 123],\n ])(\"should handle fixedDecimalSpaces\", (params, expected) => {\n expect(fixedDecimalSpaces(params.number, params.decimalSpaces)).toBe(\n expected\n );\n });\n\n //numberWithSeparator\n it(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator((1000.0).toFixed(3), \",\", \".\");\n expect(result).toBe(\"1,000.000\");\n });\n\n it(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n it(\"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 it(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", \".\", false);\n expect(result).toBe(1000);\n });\n\n it(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n it(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n it(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", \".\", false);\n expect(result).toBe(123456789);\n });\n\n //getNumberFromString\n it.each([\n [\n {\n number: \"1.000.000,256\",\n thousandSeparator: \".\",\n decimalSeparator: \",\",\n },\n 1000000.256,\n ],\n [\n { number: 1000000.256, thousandSeparator: \".\", decimalSeparator: \",\" },\n 1000000.256,\n ],\n [\n {\n number: \"1,000,000.256\",\n thousandSeparator: \",\",\n decimalSeparator: \".\",\n },\n 1000000.256,\n ],\n [{ number: \",256\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0.256],\n [{ number: \"1562\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n [{ number: \"1,2,3.4\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0],\n [{ number: \"1562\", thousandSeparator: \",\", decimalSeparator: \".\" }, 1562],\n [\n { number: \"-1.562,25\", thousandSeparator: \".\", decimalSeparator: \",\" },\n -1562.25,\n ],\n [\n { number: \"-1 562.25\", thousandSeparator: \" \", decimalSeparator: \".\" },\n -1562.25,\n ],\n [\n { number: \"1562.50\", thousandSeparator: \".\", decimalSeparator: \",\" },\n 1562.5,\n ],\n [{ number: \"1562.\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n ])(\"should handle getNumberFromString\", (params, expected) => {\n const { number, thousandSeparator, decimalSeparator } = params;\n\n expect(\n getNumberFromString(number, thousandSeparator, decimalSeparator)\n ).toBe(expected);\n });\n\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatCurrencyArgs, string]>([\n [\n { value: \"\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"\",\n ],\n [\n { value: 0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"0.00 USD\",\n ],\n [\n { value: \"10\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"10.00\",\n ],\n [\n { value: \"1000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"1,000.00 USD\",\n ],\n [\n { value: \"1000.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1,000\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"EUR\", currencyCodePosition: \"right\" },\n \"1.200,50 EUR\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"1.200,50\",\n ],\n [\n { value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"JPY\", currencyCodePosition: \"right\" },\n \"1,150.66 JPY\",\n ],\n [\n { value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1.5M\",\n ],\n ])(\"should format currency correctly\", (args, expected) => {\n expect(\n formatCurrency(\n args.value,\n args.thousandSeparator,\n args.decimalSeparator,\n args.trimDecimals,\n args.decimalSpaces,\n args.format,\n args.currencyCode,\n args.currencyCodePosition\n )\n ).toEqual(expected);\n });\n});\n"],"mappings":"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"}
@@ -36,7 +36,7 @@ export type PolymorphicComponentPropsWithRef<C extends React.ElementType, Props
36
36
  ref?: PolymorphicRef<C>;
37
37
  };
38
38
  export interface FormatNumberArgs {
39
- value: string | number;
39
+ value?: string | number;
40
40
  thousandSeparator?: "," | "." | " ";
41
41
  decimalSeparator?: "," | ".";
42
42
  trimDecimals?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAC1E,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvE,KAAK,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,IAAI;IACzC;;;OAGG;IACH,EAAE,CAAC,EAAE,CAAC,CAAC;CACR,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,CACzB,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACrC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,aAAa,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,CACjC,CAAC,SAAS,KAAK,CAAC,WAAW,EAC3B,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7B,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,yBAAyB,CACnC,CAAC,SAAS,KAAK,CAAC,WAAW,EAC3B,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7B,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,IACpD,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACxC;;;GAGG;AACH,MAAM,MAAM,gCAAgC,CAC1C,CAAC,SAAS,KAAK,CAAC,WAAW,EAC3B,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7B,yBAAyB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACpC,gBAAgB,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAC1E,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvE,KAAK,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,IAAI;IACzC;;;OAGG;IACH,EAAE,CAAC,EAAE,CAAC,CAAC;CACR,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,CACzB,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACrC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,aAAa,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,CACjC,CAAC,SAAS,KAAK,CAAC,WAAW,EAC3B,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7B,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,yBAAyB,CACnC,CAAC,SAAS,KAAK,CAAC,WAAW,EAC3B,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7B,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,IACpD,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACxC;;;GAGG;AACH,MAAM,MAAM,gCAAgC,CAC1C,CAAC,SAAS,KAAK,CAAC,WAAW,EAC3B,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7B,yBAAyB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACpC,gBAAgB,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/types.ts"],"sourcesContent":["import React from \"react\";\n\n// Source: https://github.com/emotion-js/emotion/blob/master/packages/styled-base/types/helper.d.ts\n// A more precise version of just React.ComponentPropsWithoutRef on its own\nexport type PropsOf<\n C extends keyof JSX.IntrinsicElements | React.JSXElementConstructor<unknown>\n> = JSX.LibraryManagedAttributes<C, React.ComponentPropsWithoutRef<C>>;\n\ntype AsProp<C extends React.ElementType> = {\n /**\n * An override of the default HTML tag.\n * Can also be another React component.\n */\n as?: C;\n};\n\n/**\n * Allows for extending a set of props (`ExtendedProps`) by an overriding set of props\n * (`OverrideProps`), ensuring that any duplicates are overridden by the overriding\n * set of props.\n */\nexport type ExtendableProps<\n ExtendedProps = Record<string, unknown>,\n OverrideProps = Record<string, unknown>\n> = OverrideProps & Omit<ExtendedProps, keyof OverrideProps>;\n\n/**\n * Allows for inheriting the props from the specified element type so that\n * props like children, className & style work, as well as element-specific\n * attributes like aria roles. The component (`C`) must be passed in.\n */\nexport type InheritableElementProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = ExtendableProps<PropsOf<C>, Props>;\n\n/**\n * A more sophisticated version of `InheritableElementProps` where\n * the passed in `as` prop will determine which props can be included\n */\nexport type PolymorphicComponentProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = InheritableElementProps<C, Props & AsProp<C>>;\n\n/**\n * Utility type to extract the `ref` prop from a polymorphic component\n */\nexport type PolymorphicRef<C extends React.ElementType> =\n React.ComponentPropsWithRef<C>[\"ref\"];\n/**\n * A wrapper of `PolymorphicComponentProps` that also includes the `ref`\n * prop for the polymorphic component\n */\nexport type PolymorphicComponentPropsWithRef<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = PolymorphicComponentProps<C, Props> & { ref?: PolymorphicRef<C> };\n\nexport interface FormatNumberArgs {\n value: string | number;\n thousandSeparator?: \",\" | \".\" | \" \";\n decimalSeparator?: \",\" | \".\";\n trimDecimals?: boolean;\n decimalSpaces?: number;\n format?: FormatType;\n shortenThreshold?: number;\n}\n\nexport interface FormatCurrencyArgs extends FormatNumberArgs {\n currencyCode?: string;\n currencyCodePosition?: \"right\" | \"left\";\n}\n\nexport type FormatType = \"short\" | \"long\";\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/types.ts"],"sourcesContent":["import React from \"react\";\n\n// Source: https://github.com/emotion-js/emotion/blob/master/packages/styled-base/types/helper.d.ts\n// A more precise version of just React.ComponentPropsWithoutRef on its own\nexport type PropsOf<\n C extends keyof JSX.IntrinsicElements | React.JSXElementConstructor<unknown>\n> = JSX.LibraryManagedAttributes<C, React.ComponentPropsWithoutRef<C>>;\n\ntype AsProp<C extends React.ElementType> = {\n /**\n * An override of the default HTML tag.\n * Can also be another React component.\n */\n as?: C;\n};\n\n/**\n * Allows for extending a set of props (`ExtendedProps`) by an overriding set of props\n * (`OverrideProps`), ensuring that any duplicates are overridden by the overriding\n * set of props.\n */\nexport type ExtendableProps<\n ExtendedProps = Record<string, unknown>,\n OverrideProps = Record<string, unknown>\n> = OverrideProps & Omit<ExtendedProps, keyof OverrideProps>;\n\n/**\n * Allows for inheriting the props from the specified element type so that\n * props like children, className & style work, as well as element-specific\n * attributes like aria roles. The component (`C`) must be passed in.\n */\nexport type InheritableElementProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = ExtendableProps<PropsOf<C>, Props>;\n\n/**\n * A more sophisticated version of `InheritableElementProps` where\n * the passed in `as` prop will determine which props can be included\n */\nexport type PolymorphicComponentProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = InheritableElementProps<C, Props & AsProp<C>>;\n\n/**\n * Utility type to extract the `ref` prop from a polymorphic component\n */\nexport type PolymorphicRef<C extends React.ElementType> =\n React.ComponentPropsWithRef<C>[\"ref\"];\n/**\n * A wrapper of `PolymorphicComponentProps` that also includes the `ref`\n * prop for the polymorphic component\n */\nexport type PolymorphicComponentPropsWithRef<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = PolymorphicComponentProps<C, Props> & { ref?: PolymorphicRef<C> };\n\nexport interface FormatNumberArgs {\n value?: string | number;\n thousandSeparator?: \",\" | \".\" | \" \";\n decimalSeparator?: \",\" | \".\";\n trimDecimals?: boolean;\n decimalSpaces?: number;\n format?: FormatType;\n shortenThreshold?: number;\n}\n\nexport interface FormatCurrencyArgs extends FormatNumberArgs {\n currencyCode?: string;\n currencyCodePosition?: \"right\" | \"left\";\n}\n\nexport type FormatType = \"short\" | \"long\";\n"],"mappings":""}
package/dist/index.js CHANGED
@@ -706,7 +706,7 @@
706
706
  var decimalSpaces = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2;
707
707
  var format = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "long";
708
708
  var shortenThreshold = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1000;
709
- if (typeof n === undefined || typeof n === null) return "";
709
+ if (n === undefined || n === null) return "";
710
710
  var number = getNumberFromString(n, thousandSeparator, decimalSeperator);
711
711
  if (isNaN(number)) {
712
712
  return "";