frontend/.pnpm-store/v3/files/ab/4970709aecdee82dae1d3057740c68a733dda8a6240bff3261142059cf427fbbd6b6f93b6ed0d8917ec194af0a0c2850111a50be40719429e0836f4faf6713-exec

37 lines
1.6 KiB
Plaintext
Executable File

import { GetNumberOption } from '../GetNumberOption';
import { DefaultNumberOption } from '../DefaultNumberOption';
/**
* https://tc39.es/ecma402/#sec-setnfdigitoptions
*/
export function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {
var mnid = GetNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);
var mnfd = opts.minimumFractionDigits;
var mxfd = opts.maximumFractionDigits;
var mnsd = opts.minimumSignificantDigits;
var mxsd = opts.maximumSignificantDigits;
internalSlots.minimumIntegerDigits = mnid;
if (mnsd !== undefined || mxsd !== undefined) {
internalSlots.roundingType = 'significantDigits';
mnsd = DefaultNumberOption(mnsd, 1, 21, 1);
mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21);
internalSlots.minimumSignificantDigits = mnsd;
internalSlots.maximumSignificantDigits = mxsd;
}
else if (mnfd !== undefined || mxfd !== undefined) {
internalSlots.roundingType = 'fractionDigits';
mnfd = DefaultNumberOption(mnfd, 0, 20, mnfdDefault);
var mxfdActualDefault = Math.max(mnfd, mxfdDefault);
mxfd = DefaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);
internalSlots.minimumFractionDigits = mnfd;
internalSlots.maximumFractionDigits = mxfd;
}
else if (notation === 'compact') {
internalSlots.roundingType = 'compactRounding';
}
else {
internalSlots.roundingType = 'fractionDigits';
internalSlots.minimumFractionDigits = mnfdDefault;
internalSlots.maximumFractionDigits = mxfdDefault;
}
}