Rocky_Mountain_Vending/.pnpm-store/v10/files/f1/eccc1374049f1792c38c3acc9e181295e603bfa48c87209dacafff1328de8a4d4a0eb9077165e249a940227f7df332a9aef6653fe9f77522264de92d8b6895
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

84 lines
3 KiB
Text

import { NEGATIVE_ZERO, ZERO } from '../constants';
import { invariant, repeat } from '../utils';
import { GetUnsignedRoundingMode } from './GetUnsignedRoundingMode';
import { ToRawFixed } from './ToRawFixed';
import { ToRawPrecision } from './ToRawPrecision';
/**
* https://tc39.es/ecma402/#sec-formatnumberstring
*/
export function FormatNumericToString(intlObject, _x) {
var x = _x;
var sign;
// -0
if (x.isZero() && x.isNegative()) {
sign = 'negative';
x = ZERO;
}
else {
invariant(x.isFinite(), 'NumberFormatDigitInternalSlots value is not finite');
if (x.lessThan(0)) {
sign = 'negative';
}
else {
sign = 'positive';
}
if (sign === 'negative') {
x = x.negated();
}
}
var result;
var roundingType = intlObject.roundingType;
var unsignedRoundingMode = GetUnsignedRoundingMode(intlObject.roundingMode, sign === 'negative');
switch (roundingType) {
case 'significantDigits':
result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits, unsignedRoundingMode);
break;
case 'fractionDigits':
result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits, intlObject.roundingIncrement, unsignedRoundingMode);
break;
default:
var sResult = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits, unsignedRoundingMode);
var fResult = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits, intlObject.roundingIncrement, unsignedRoundingMode);
if (intlObject.roundingType === 'morePrecision') {
if (sResult.roundingMagnitude <= fResult.roundingMagnitude) {
result = sResult;
}
else {
result = fResult;
}
}
else {
invariant(intlObject.roundingType === 'lessPrecision', 'Invalid roundingType');
if (sResult.roundingMagnitude <= fResult.roundingMagnitude) {
result = fResult;
}
else {
result = sResult;
}
}
break;
}
x = result.roundedNumber;
var string = result.formattedString;
if (intlObject.trailingZeroDisplay === 'stripIfInteger' && x.isInteger()) {
var i = string.indexOf('.');
if (i > -1) {
string = string.slice(0, i);
}
}
var int = result.integerDigitsCount;
var minInteger = intlObject.minimumIntegerDigits;
if (int < minInteger) {
var forwardZeros = repeat('0', minInteger - int);
string = forwardZeros + string;
}
if (sign === 'negative') {
if (x.isZero()) {
x = NEGATIVE_ZERO;
}
else {
x = x.negated();
}
}
return { roundedNumber: x, formattedString: string };
}