@cloudflare/util-formatters 2.6.14 → 2.7.2
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/CHANGELOG.md +35 -0
- package/dist/formatters.d.ts +2 -0
- package/es/formatters.js +24 -1
- package/lib/formatters.js +35 -2
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,41 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.7.2](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/util-formatters@2.7.1...@cloudflare/util-formatters@2.7.2) (2022-02-14)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @cloudflare/util-formatters
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [2.7.1](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/util-formatters@2.7.0...@cloudflare/util-formatters@2.7.1) (2021-12-06)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @cloudflare/util-formatters
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [2.7.0](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/util-formatters@2.6.15...@cloudflare/util-formatters@2.7.0) (2021-11-29)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* **stratus:** EW-5929 Integrate percentage view for chart legend ([7fecfd9](http://stash.cfops.it:7999/fe/stratus/commits/7fecfd9))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## [2.6.15](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/util-formatters@2.6.14...@cloudflare/util-formatters@2.6.15) (2021-11-23)
|
|
34
|
+
|
|
35
|
+
**Note:** Version bump only for package @cloudflare/util-formatters
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
6
41
|
## [2.6.14](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/util-formatters@2.6.13...@cloudflare/util-formatters@2.6.14) (2021-11-22)
|
|
7
42
|
|
|
8
43
|
**Note:** Version bump only for package @cloudflare/util-formatters
|
package/dist/formatters.d.ts
CHANGED
|
@@ -67,3 +67,5 @@ export declare const formatBits: (number: number, locale: SupportedLocales | und
|
|
|
67
67
|
*/
|
|
68
68
|
export declare const formatNumberForAnalytics: (number: number, locale?: SupportedLocales, useSI?: boolean, decimalPlaces?: number, trimInsignificantZeros?: boolean) => string;
|
|
69
69
|
export declare const capitalizeStr: (str: string) => string | undefined;
|
|
70
|
+
export declare const formatPercentage: (value: number, total: number) => string;
|
|
71
|
+
export declare const roundPercentage: (val: number, roundDecimalCases?: number, locale?: SupportedLocales) => string;
|
package/es/formatters.js
CHANGED
|
@@ -163,4 +163,27 @@ export const formatBits = (number, locale = DEFAULT_LOCALE, includeDecimals, use
|
|
|
163
163
|
export const formatNumberForAnalytics = (number, locale = DEFAULT_LOCALE, useSI = false, decimalPlaces = 2, trimInsignificantZeros = true) => {
|
|
164
164
|
return formatNumber(number, locale, useSI, decimalPlaces, trimInsignificantZeros);
|
|
165
165
|
};
|
|
166
|
-
export const capitalizeStr = str => str && str.charAt(0).toUpperCase() + str.slice(1);
|
|
166
|
+
export const capitalizeStr = str => str && str.charAt(0).toUpperCase() + str.slice(1);
|
|
167
|
+
export const formatPercentage = (value, total) => `${Math.round(value * 100 / total * 100) / 100}%`;
|
|
168
|
+
export const roundPercentage = (val, roundDecimalCases = 0, locale = DEFAULT_LOCALE) => {
|
|
169
|
+
const roundDiv = Math.pow(10, roundDecimalCases); // Treat ~0% and ~100% values specially so the precision is surfaced
|
|
170
|
+
|
|
171
|
+
let localizedString = '';
|
|
172
|
+
|
|
173
|
+
if (val > 99) {
|
|
174
|
+
// Edge case: between 99 and 100, produce values with precision like this:
|
|
175
|
+
// 99.999735 --> 99.9997
|
|
176
|
+
localizedString = localizeNumberWithPrecision(100 - +(100 - val).toPrecision(1), locale);
|
|
177
|
+
} else if (val < 1) {
|
|
178
|
+
// Edge case: between 0 and 1, produce values with the precision of one
|
|
179
|
+
// significant digit:
|
|
180
|
+
// 0.000273 --> 0.0003
|
|
181
|
+
localizedString = localizeNumberWithPrecision(+val.toPrecision(1), locale);
|
|
182
|
+
} else {
|
|
183
|
+
// In all other cases, round to the nearest integer:
|
|
184
|
+
// 78.612 --> 79
|
|
185
|
+
localizedString = formatNumberForAnalytics(val * roundDiv / roundDiv, locale, false, roundDecimalCases);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return localizedString + '%';
|
|
189
|
+
};
|
package/lib/formatters.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.capitalizeStr = exports.formatNumberForAnalytics = exports.formatBits = exports.formatBytes = exports.formatCurrency = exports.formatNumber = exports.localizeNumberWithPrecision = exports.formatDate = exports.DateFormatters = void 0;
|
|
6
|
+
exports.roundPercentage = exports.formatPercentage = exports.capitalizeStr = exports.formatNumberForAnalytics = exports.formatBits = exports.formatBytes = exports.formatCurrency = exports.formatNumber = exports.localizeNumberWithPrecision = exports.formatDate = exports.DateFormatters = void 0;
|
|
7
7
|
|
|
8
8
|
var _d3Format = require("d3-format");
|
|
9
9
|
|
|
@@ -221,4 +221,37 @@ var capitalizeStr = function capitalizeStr(str) {
|
|
|
221
221
|
return str && str.charAt(0).toUpperCase() + str.slice(1);
|
|
222
222
|
};
|
|
223
223
|
|
|
224
|
-
exports.capitalizeStr = capitalizeStr;
|
|
224
|
+
exports.capitalizeStr = capitalizeStr;
|
|
225
|
+
|
|
226
|
+
var formatPercentage = function formatPercentage(value, total) {
|
|
227
|
+
return "".concat(Math.round(value * 100 / total * 100) / 100, "%");
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
exports.formatPercentage = formatPercentage;
|
|
231
|
+
|
|
232
|
+
var roundPercentage = function roundPercentage(val) {
|
|
233
|
+
var roundDecimalCases = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
234
|
+
var locale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_LOCALE;
|
|
235
|
+
var roundDiv = Math.pow(10, roundDecimalCases); // Treat ~0% and ~100% values specially so the precision is surfaced
|
|
236
|
+
|
|
237
|
+
var localizedString = '';
|
|
238
|
+
|
|
239
|
+
if (val > 99) {
|
|
240
|
+
// Edge case: between 99 and 100, produce values with precision like this:
|
|
241
|
+
// 99.999735 --> 99.9997
|
|
242
|
+
localizedString = localizeNumberWithPrecision(100 - +(100 - val).toPrecision(1), locale);
|
|
243
|
+
} else if (val < 1) {
|
|
244
|
+
// Edge case: between 0 and 1, produce values with the precision of one
|
|
245
|
+
// significant digit:
|
|
246
|
+
// 0.000273 --> 0.0003
|
|
247
|
+
localizedString = localizeNumberWithPrecision(+val.toPrecision(1), locale);
|
|
248
|
+
} else {
|
|
249
|
+
// In all other cases, round to the nearest integer:
|
|
250
|
+
// 78.612 --> 79
|
|
251
|
+
localizedString = formatNumberForAnalytics(val * roundDiv / roundDiv, locale, false, roundDecimalCases);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
return localizedString + '%';
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
exports.roundPercentage = roundPercentage;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudflare/util-formatters",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.7.2",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "es/index.js",
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
"autoGeneratedReadme": true
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@cloudflare/intl-core": "^1.10.
|
|
20
|
+
"@cloudflare/intl-core": "^1.10.4",
|
|
21
21
|
"d3-format": "^1.3.2",
|
|
22
|
-
"moment": "^2.
|
|
22
|
+
"moment": "^2.29.1"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "e291d1ce7d364a3bdc62b63aaf17a0164e3abce0"
|
|
25
25
|
}
|