@react-pakistan/util-functions 1.23.98 → 1.23.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/general/format-number.d.ts +6 -0
- package/general/format-number.js +31 -0
- package/general/index.d.ts +1 -0
- package/general/index.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any, prefer-exponentiation-operator, no-restricted-properties */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.formatNumber = void 0;
|
|
5
|
+
var formatNumber = function (input, options) {
|
|
6
|
+
if (options === void 0) { options = {}; }
|
|
7
|
+
var _a = options.decimals, decimals = _a === void 0 ? 2 : _a, _b = options.useLocale, useLocale = _b === void 0 ? true : _b, customSuffixes = options.customSuffixes;
|
|
8
|
+
// Attempt to convert input to a number
|
|
9
|
+
var number = Number(input);
|
|
10
|
+
if (Number.isNaN(number) || !Number.isFinite(number)) {
|
|
11
|
+
return 'Invalid number';
|
|
12
|
+
}
|
|
13
|
+
var absNumber = Math.abs(number);
|
|
14
|
+
var sign = number < 0 ? '-' : '';
|
|
15
|
+
// Define suffixes (default or custom)
|
|
16
|
+
var defaultSuffixes = ['', 'K', 'M', 'B', 'T', 'Q'];
|
|
17
|
+
var suffixes = customSuffixes || defaultSuffixes;
|
|
18
|
+
// Find magnitude
|
|
19
|
+
var tier = Math.floor(Math.log10(absNumber) / 3);
|
|
20
|
+
if (tier === 0) {
|
|
21
|
+
var formatted_1 = useLocale ? absNumber.toLocaleString() : absNumber.toFixed(decimals);
|
|
22
|
+
return sign + formatted_1;
|
|
23
|
+
}
|
|
24
|
+
var suffix = suffixes[tier] || "e".concat(tier * 3);
|
|
25
|
+
var scale = Math.pow(10, tier * 3);
|
|
26
|
+
var scaled = absNumber / scale;
|
|
27
|
+
var rounded = scaled.toFixed(decimals);
|
|
28
|
+
var formatted = useLocale ? Number(rounded).toLocaleString() : rounded;
|
|
29
|
+
return "".concat(sign).concat(formatted).concat(suffix);
|
|
30
|
+
};
|
|
31
|
+
exports.formatNumber = formatNumber;
|
package/general/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from './enum-to-text';
|
|
|
9
9
|
export * from './fetch-data';
|
|
10
10
|
export * from './fetch-supabase-image';
|
|
11
11
|
export * from './format-date';
|
|
12
|
+
export * from './format-number';
|
|
12
13
|
export * from './format-time';
|
|
13
14
|
export * from './generate-blog-schema';
|
|
14
15
|
export * from './generate-breadcrumb-schema';
|
package/general/index.js
CHANGED
|
@@ -26,6 +26,7 @@ __exportStar(require("./enum-to-text"), exports);
|
|
|
26
26
|
__exportStar(require("./fetch-data"), exports);
|
|
27
27
|
__exportStar(require("./fetch-supabase-image"), exports);
|
|
28
28
|
__exportStar(require("./format-date"), exports);
|
|
29
|
+
__exportStar(require("./format-number"), exports);
|
|
29
30
|
__exportStar(require("./format-time"), exports);
|
|
30
31
|
__exportStar(require("./generate-blog-schema"), exports);
|
|
31
32
|
__exportStar(require("./generate-breadcrumb-schema"), exports);
|