frontend/.pnpm-store/v3/files/8e/230d0f2d03f21593c750833cafd4e181647e4a9e35f345a3478261faf0ae3f81f7afc93187b76318d7868f98a24daa9edd610601bd28b72a999f3f3cbd0406-exec

46 lines
1.6 KiB
Plaintext
Executable File

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FormatNumericToString = void 0;
var _262_1 = require("../262");
var ToRawPrecision_1 = require("./ToRawPrecision");
var utils_1 = require("../utils");
var ToRawFixed_1 = require("./ToRawFixed");
/**
* https://tc39.es/ecma402/#sec-formatnumberstring
*/
function FormatNumericToString(intlObject, x) {
var isNegative = x < 0 || (0, _262_1.SameValue)(x, -0);
if (isNegative) {
x = -x;
}
var result;
var rourndingType = intlObject.roundingType;
switch (rourndingType) {
case 'significantDigits':
result = (0, ToRawPrecision_1.ToRawPrecision)(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits);
break;
case 'fractionDigits':
result = (0, ToRawFixed_1.ToRawFixed)(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits);
break;
default:
result = (0, ToRawPrecision_1.ToRawPrecision)(x, 1, 2);
if (result.integerDigitsCount > 1) {
result = (0, ToRawFixed_1.ToRawFixed)(x, 0, 0);
}
break;
}
x = result.roundedNumber;
var string = result.formattedString;
var int = result.integerDigitsCount;
var minInteger = intlObject.minimumIntegerDigits;
if (int < minInteger) {
var forwardZeros = (0, utils_1.repeat)('0', minInteger - int);
string = forwardZeros + string;
}
if (isNegative) {
x = -x;
}
return { roundedNumber: x, formattedString: string };
}
exports.FormatNumericToString = FormatNumericToString;