"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SetNumberFormatDigitOptions = void 0; var GetNumberOption_1 = require("../GetNumberOption"); var DefaultNumberOption_1 = require("../DefaultNumberOption"); /** * https://tc39.es/ecma402/#sec-setnfdigitoptions */ function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) { var mnid = (0, GetNumberOption_1.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 = (0, DefaultNumberOption_1.DefaultNumberOption)(mnsd, 1, 21, 1); mxsd = (0, DefaultNumberOption_1.DefaultNumberOption)(mxsd, mnsd, 21, 21); internalSlots.minimumSignificantDigits = mnsd; internalSlots.maximumSignificantDigits = mxsd; } else if (mnfd !== undefined || mxfd !== undefined) { internalSlots.roundingType = 'fractionDigits'; mnfd = (0, DefaultNumberOption_1.DefaultNumberOption)(mnfd, 0, 20, mnfdDefault); var mxfdActualDefault = Math.max(mnfd, mxfdDefault); mxfd = (0, DefaultNumberOption_1.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; } } exports.SetNumberFormatDigitOptions = SetNumberFormatDigitOptions;