{"version":3,"file":"intl-unified-numberformat.js","sources":["../../../intl-utils/lib/invariant.js","../../../intl-utils/lib/polyfill-utils.js","../../../intl-utils/lib/get-canonical-locales.js","../../../intl-utils/lib/resolve-locale.js","../../../intl-utils/lib/units.js","../../../intl-utils/lib/number-types.js","../../lib/utils.js","../../lib/data.js","../../lib/core.js"],"sourcesContent":["export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n//# sourceMappingURL=invariant.js.map","import aliases from './aliases';\nimport parentLocales from './parentLocales';\nimport { invariant } from './invariant';\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function toObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function toString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function getOption(opts, prop, type, values, fallback) {\n // const descriptor = Object.getOwnPropertyDescriptor(opts, prop);\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = toString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(value + \" is not within \" + values.join(', '));\n }\n return value;\n }\n return fallback;\n}\n/**\n * https://tc39.es/ecma402/#sec-defaultnumberoption\n * @param val\n * @param min\n * @param max\n * @param fallback\n */\nexport function defaultNumberOption(val, min, max, fallback) {\n if (val !== undefined) {\n val = Number(val);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(val + \" is outside of range [\" + min + \", \" + max + \"]\");\n }\n return Math.floor(val);\n }\n return fallback;\n}\n/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nexport function getNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n return defaultNumberOption(val, minimum, maximum, fallback);\n}\nexport function getAliasesByLang(lang) {\n return Object.keys(aliases).reduce(function (all, locale) {\n if (locale.split('-')[0] === lang) {\n all[locale] = aliases[locale];\n }\n return all;\n }, {});\n}\nexport function getParentLocalesByLang(lang) {\n return Object.keys(parentLocales).reduce(function (all, locale) {\n if (locale.split('-')[0] === lang) {\n all[locale] = parentLocales[locale];\n }\n return all;\n }, {});\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(pl + \" InternalSlot has not been initialized\");\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\nexport function partitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \" + pattern);\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n * https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_diff_out.html#sec-setnfdigitoptions\n * @param intlObj\n * @param opts\n * @param mnfdDefault\n * @param mxfdDefault\n */\nexport function setNumberFormatDigitOptions(internalSlotMap, intlObj, opts, mnfdDefault, mxfdDefault) {\n var mnid = getNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n var mnfd = opts.minimumFractionDigits;\n var mxfd = opts.maximumFractionDigits;\n var mnsd = opts.minimumSignificantDigits;\n var mxsd = opts.maximumSignificantDigits;\n setInternalSlot(internalSlotMap, intlObj, 'minimumIntegerDigits', mnid);\n if (mnsd !== undefined || mxsd !== undefined) {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'significantDigits');\n mnsd = defaultNumberOption(mnsd, 1, 21, 1);\n mxsd = defaultNumberOption(mxsd, mnsd, 21, 21);\n setInternalSlot(internalSlotMap, intlObj, 'minimumSignificantDigits', mnsd);\n setInternalSlot(internalSlotMap, intlObj, 'maximumSignificantDigits', mxsd);\n }\n else if (mnfd !== undefined || mxfd !== undefined) {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'fractionDigits');\n mnfd = defaultNumberOption(mnfd, 0, 20, mnfdDefault);\n var mxfdActualDefault = Math.max(mnfd, mxfdDefault);\n mxfd = defaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);\n setInternalSlot(internalSlotMap, intlObj, 'minimumFractionDigits', mnfd);\n setInternalSlot(internalSlotMap, intlObj, 'maximumFractionDigits', mxfd);\n }\n else if (getInternalSlot(internalSlotMap, intlObj, 'notation') === 'compact') {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'compactRounding');\n }\n else {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'fractionDigits');\n setInternalSlot(internalSlotMap, intlObj, 'minimumFractionDigits', mnfdDefault);\n setInternalSlot(internalSlotMap, intlObj, 'maximumFractionDigits', mxfdDefault);\n }\n}\nexport function objectIs(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\n/**\n * https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-iswellformedcurrencycode\n * @param currency\n */\nexport function isWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=polyfill-utils.js.map","/**\n * IE11-safe version of getCanonicalLocales since it's ES2016\n * @param locales locales\n */\nexport function getCanonicalLocales(locales) {\n // IE11\n var getCanonicalLocales = Intl.getCanonicalLocales;\n if (typeof getCanonicalLocales === 'function') {\n return getCanonicalLocales(locales);\n }\n // NOTE: we must NOT call `supportedLocalesOf` of a formatjs polyfill, or their implementation\n // will even eventually call this method recursively. Here we use `Intl.DateTimeFormat` since it\n // is not polyfilled by `@formatjs`.\n // TODO: Fix TypeScript type def for this bc undefined is just fine\n return Intl.DateTimeFormat.supportedLocalesOf(locales);\n}\n//# sourceMappingURL=get-canonical-locales.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { getCanonicalLocales } from './get-canonical-locales';\nimport { invariant } from './invariant';\nimport { toObject, getOption } from './polyfill-utils';\nexport function createResolveLocale(getDefaultLocale) {\n var lookupMatcher = createLookupMatcher(getDefaultLocale);\n var bestFitMatcher = createBestFitMatcher(getDefaultLocale);\n /**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\n return function resolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData) {\n var matcher = options.localeMatcher;\n var r;\n if (matcher === 'lookup') {\n r = lookupMatcher(availableLocales, requestedLocales);\n }\n else {\n r = bestFitMatcher(availableLocales, requestedLocales);\n }\n var foundLocale = r.locale;\n var result = { locale: '', dataLocale: foundLocale };\n var supportedExtension = '-u';\n for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n var key = relevantExtensionKeys_1[_i];\n var foundLocaleData = localeData[foundLocale];\n invariant(typeof foundLocaleData === 'object' && foundLocaleData !== null, \"locale data \" + key + \" must be an object\");\n var keyLocaleData = foundLocaleData[key];\n invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \" + key + \" must be an array\");\n var value = keyLocaleData[0];\n invariant(typeof value === 'string' || value === null, 'value must be string or null');\n var supportedExtensionAddition = '';\n if (r.extension) {\n var requestedValue = unicodeExtensionValue(r.extension, key);\n if (requestedValue !== undefined) {\n if (requestedValue !== '') {\n if (~keyLocaleData.indexOf(requestedValue)) {\n value = requestedValue;\n supportedExtensionAddition = \"-\" + key + \"-\" + value;\n }\n }\n else if (~requestedValue.indexOf('true')) {\n value = 'true';\n supportedExtensionAddition = \"-\" + key;\n }\n }\n }\n if (key in options) {\n var optionsValue = options[key];\n invariant(typeof optionsValue === 'string' ||\n typeof optionsValue === 'undefined' ||\n optionsValue === null, 'optionsValue must be String, Undefined or Null');\n if (~keyLocaleData.indexOf(optionsValue)) {\n if (optionsValue !== value) {\n value = optionsValue;\n supportedExtensionAddition = '';\n }\n }\n }\n result[key] = value;\n supportedExtension += supportedExtensionAddition;\n }\n if (supportedExtension.length > 2) {\n var privateIndex = foundLocale.indexOf('-x-');\n if (privateIndex === -1) {\n foundLocale = foundLocale + supportedExtension;\n }\n else {\n var preExtension = foundLocale.slice(0, privateIndex);\n var postExtension = foundLocale.slice(privateIndex, foundLocale.length);\n foundLocale = preExtension + supportedExtension + postExtension;\n }\n foundLocale = getCanonicalLocales(foundLocale)[0];\n }\n result.locale = foundLocale;\n return result;\n };\n}\n/**\n * https://tc39.es/ecma402/#sec-unicodeextensionvalue\n * @param extension\n * @param key\n */\nfunction unicodeExtensionValue(extension, key) {\n invariant(key.length === 2, 'key must have 2 elements');\n var size = extension.length;\n var searchValue = \"-\" + key + \"-\";\n var pos = extension.indexOf(searchValue);\n if (pos !== -1) {\n var start = pos + 4;\n var end = start;\n var k = start;\n var done = false;\n while (!done) {\n var e = extension.indexOf('-', k);\n var len = void 0;\n if (e === -1) {\n len = size - k;\n }\n else {\n len = e - k;\n }\n if (len === 2) {\n done = true;\n }\n else if (e === -1) {\n end = size;\n done = true;\n }\n else {\n end = e;\n k = e + 1;\n }\n }\n return extension.slice(start, end);\n }\n searchValue = \"-\" + key;\n pos = extension.indexOf(searchValue);\n if (pos !== -1 && pos + 3 === size) {\n return '';\n }\n return undefined;\n}\nvar UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\n/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nfunction bestAvailableLocale(availableLocales, locale) {\n var candidate = locale;\n while (true) {\n if (~availableLocales.indexOf(candidate)) {\n return candidate;\n }\n var pos = candidate.lastIndexOf('-');\n if (!~pos) {\n return undefined;\n }\n if (pos >= 2 && candidate[pos - 2] === '-') {\n pos -= 2;\n }\n candidate = candidate.slice(0, pos);\n }\n}\nfunction createLookupMatcher(getDefaultLocale) {\n /**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n */\n return function lookupMatcher(availableLocales, requestedLocales) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n };\n}\nfunction createBestFitMatcher(getDefaultLocale) {\n return function bestFitMatcher(availableLocales, requestedLocales) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_2 = requestedLocales; _i < requestedLocales_2.length; _i++) {\n var locale = requestedLocales_2[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n };\n}\nexport function getLocaleHierarchy(locale, aliases, parentLocales) {\n var results = [locale];\n if (aliases[locale]) {\n locale = aliases[locale];\n results.push(locale);\n }\n var parentLocale = parentLocales[locale];\n if (parentLocale) {\n results.push(parentLocale);\n }\n var localeParts = locale.split('-');\n for (var i = localeParts.length; i > 1; i--) {\n results.push(localeParts.slice(0, i - 1).join('-'));\n }\n return results;\n}\nfunction lookupSupportedLocales(availableLocales, requestedLocales) {\n var subset = [];\n for (var _i = 0, requestedLocales_3 = requestedLocales; _i < requestedLocales_3.length; _i++) {\n var locale = requestedLocales_3[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n subset.push(availableLocale);\n }\n }\n return subset;\n}\nexport function supportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = toObject(options);\n matcher = getOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return lookupSupportedLocales(availableLocales, requestedLocales);\n }\n return lookupSupportedLocales(availableLocales, requestedLocales);\n}\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\nexport function unpackData(locale, localeData, \n/** By default shallow merge the dictionaries. */\nreducer) {\n if (reducer === void 0) { reducer = function (all, d) { return (__assign(__assign({}, all), d)); }; }\n var localeHierarchy = getLocaleHierarchy(locale, localeData.aliases, localeData.parentLocales);\n var dataToMerge = localeHierarchy\n .map(function (l) { return localeData.data[l]; })\n .filter(Boolean);\n if (!dataToMerge.length) {\n throw new MissingLocaleDataError(\"Missing locale data for \\\"\" + locale + \"\\\", lookup hierarchy: \" + localeHierarchy.join(', '));\n }\n dataToMerge.reverse();\n return dataToMerge.reduce(reducer, {});\n}\n//# sourceMappingURL=resolve-locale.js.map","// https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_diff_out.html#sec-issanctionedsimpleunitidentifier\nexport var SANCTIONED_UNITS = [\n 'angle-degree',\n 'area-acre',\n 'area-hectare',\n 'concentr-percent',\n 'digital-bit',\n 'digital-byte',\n 'digital-gigabit',\n 'digital-gigabyte',\n 'digital-kilobit',\n 'digital-kilobyte',\n 'digital-megabit',\n 'digital-megabyte',\n 'digital-petabyte',\n 'digital-terabit',\n 'digital-terabyte',\n 'duration-day',\n 'duration-hour',\n 'duration-millisecond',\n 'duration-minute',\n 'duration-month',\n 'duration-second',\n 'duration-week',\n 'duration-year',\n 'length-centimeter',\n 'length-foot',\n 'length-inch',\n 'length-kilometer',\n 'length-meter',\n 'length-mile-scandinavian',\n 'length-mile',\n 'length-millimeter',\n 'length-yard',\n 'mass-gram',\n 'mass-kilogram',\n 'mass-ounce',\n 'mass-pound',\n 'mass-stone',\n 'temperature-celsius',\n 'temperature-fahrenheit',\n 'volume-fluid-ounce',\n 'volume-gallon',\n 'volume-liter',\n 'volume-milliliter',\n];\n// In CLDR, the unit name always follows the form `namespace-unit` pattern.\n// For example: `digital-bit` instead of `bit`. This function removes the namespace prefix.\nexport function removeUnitNamespace(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\n//# sourceMappingURL=units.js.map","export var InternalSlotToken;\n(function (InternalSlotToken) {\n // To prevent collision with {0} in CLDR\n InternalSlotToken[\"compactName\"] = \"compactName\";\n InternalSlotToken[\"compactSymbol\"] = \"compactSymbol\";\n InternalSlotToken[\"currencyCode\"] = \"currencyCode\";\n InternalSlotToken[\"currencyName\"] = \"currencyName\";\n InternalSlotToken[\"currencyNarrowSymbol\"] = \"currencyNarrowSymbol\";\n InternalSlotToken[\"currencySymbol\"] = \"currencySymbol\";\n InternalSlotToken[\"minusSign\"] = \"minusSign\";\n InternalSlotToken[\"number\"] = \"number\";\n InternalSlotToken[\"percentSign\"] = \"percentSign\";\n InternalSlotToken[\"plusSign\"] = \"plusSign\";\n InternalSlotToken[\"scientificExponent\"] = \"scientificExponent\";\n InternalSlotToken[\"scientificSeparator\"] = \"scientificSeparator\";\n InternalSlotToken[\"unitName\"] = \"unitName\";\n InternalSlotToken[\"unitNarrowSymbol\"] = \"unitNarrowSymbol\";\n InternalSlotToken[\"unitSymbol\"] = \"unitSymbol\";\n})(InternalSlotToken || (InternalSlotToken = {}));\n//# sourceMappingURL=number-types.js.map","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\n// TODO: dedup with intl-pluralrules\n// https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_proposed_out.html#sec-torawfixed\nexport function toRawFixed(x, minFraction, maxFraction) {\n var f = maxFraction;\n var n;\n {\n var exactSolve = x * Math.pow(10, f);\n var roundDown = Math.floor(exactSolve);\n var roundUp = Math.ceil(exactSolve);\n n = exactSolve - roundDown < roundUp - exactSolve ? roundDown : roundUp;\n }\n var xFinal = n / Math.pow(10, f);\n // n is a positive integer, but it is possible to be greater than 1e21.\n // In such case we will go the slow path.\n // See also: https://tc39.es/ecma262/#sec-numeric-types-number-tostring\n var m;\n if (n < 1e21) {\n m = n.toString();\n }\n else {\n m = n.toString();\n var idx1 = m.indexOf('.');\n var idx2 = m.indexOf('e+');\n var exponent = parseInt(m.substring(idx2 + 2), 10);\n m =\n m.substring(0, idx1) +\n m.substring(idx1 + 1, idx2) +\n repeat('0', exponent - (idx2 - idx1 - 1));\n }\n var int;\n if (f !== 0) {\n var k = m.length;\n if (k <= f) {\n var z = repeat('0', f + 1 - k);\n m = z + m;\n k = f + 1;\n }\n var a = m.slice(0, k - f);\n var b = m.slice(k - f);\n m = a + \".\" + b;\n int = a.length;\n }\n else {\n int = m.length;\n }\n var cut = maxFraction - minFraction;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n}\n// https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_proposed_out.html#sec-torawprecision\nexport function toRawPrecision(x, minPrecision, maxPrecision) {\n var p = maxPrecision;\n var m;\n var e;\n var xFinal;\n if (x === 0) {\n m = repeat('0', p);\n e = 0;\n xFinal = 0;\n }\n else {\n e = getMagnitude(x);\n var n = void 0;\n {\n var magnitude = e - p + 1;\n var exactSolve = \n // Preserve floating point precision as much as possible with multiplication.\n magnitude < 0 ? x * Math.pow(10, -magnitude) : x / Math.pow(10, magnitude);\n var roundDown = Math.floor(exactSolve);\n var roundUp = Math.ceil(exactSolve);\n n = exactSolve - roundDown < roundUp - exactSolve ? roundDown : roundUp;\n }\n // See: https://tc39.es/ecma262/#sec-numeric-types-number-tostring\n // No need to worry about scientific notation because it only happens for values >= 1e21,\n // which has 22 significant digits. So it will at least be divided by 10 here to bring the\n // value back into non-scientific-notation range.\n m = n.toString();\n xFinal = n * Math.pow(10, (e - p + 1));\n }\n var int;\n if (e >= p - 1) {\n m = m + repeat('0', e - p + 1);\n int = e + 1;\n }\n else if (e >= 0) {\n m = m.slice(0, e + 1) + \".\" + m.slice(e + 1);\n int = e + 1;\n }\n else {\n m = \"0.\" + repeat('0', -e - 1) + m;\n int = 1;\n }\n if (m.indexOf('.') >= 0 && maxPrecision > minPrecision) {\n var cut = maxPrecision - minPrecision;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\n//# sourceMappingURL=utils.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { InternalSlotToken, } from '@formatjs/intl-utils';\nfunction invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n// This is from: unicode-12.1.0/General_Category/Symbol/regex.js\nvar S_UNICODE_REGEX = /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20BF\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B98-\\u2BFF\\u2CE5-\\u2CEA\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uFB29\\uFBB2-\\uFBC1\\uFDFC\\uFDFD\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9B\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDE8\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD10-\\uDD6C\\uDD70-\\uDDAC\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED5\\uDEE0-\\uDEEC\\uDEF0-\\uDEFA\\uDF00-\\uDF73\\uDF80-\\uDFD8\\uDFE0-\\uDFEB]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDD00-\\uDD0B\\uDD0D-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95]/;\n// g flag bc this appears twice in accounting pattern\nvar CURRENCY_SYMBOL_REGEX = /¤/g;\n// Instead of doing just replace '{1}' we use global regex\n// since this can appear more than once (e.g {1} {number} {1})\nvar UNIT_1_REGEX = /\\{1\\}/g;\nvar UNIT_0_REGEX = /\\{0\\}/g;\nfunction extractDecimalFormatILD(data) {\n if (!data) {\n return;\n }\n return Object.keys(data).reduce(function (all, num) {\n var pattern = data[num];\n all[num] = Object.keys(pattern).reduce(function (all, p) {\n all[p] = (pattern[p] || '')\n .replace(/[¤0]/g, '') // apostrophe-escaped\n .replace(/'(.*?)'/g, '$1')\n .trim();\n return all;\n }, {\n other: pattern.other\n .replace(/[¤0]/g, '') // apostrophe-escaped\n .replace(/'(.*?)'/g, '$1')\n .trim(),\n });\n return all;\n }, Object.create(null));\n}\nfunction extractLDMLPluralRuleMap(m, k) {\n return Object.keys(m).reduce(function (all, rule) {\n all[rule] = m[rule][k];\n return all;\n }, { other: m.other[k] });\n}\nexport function extractILD(units, currencies, numbers, numberingSystem) {\n return {\n decimal: {\n compactShort: extractDecimalFormatILD(numbers.decimal[numberingSystem].short),\n compactLong: extractDecimalFormatILD(numbers.decimal[numberingSystem].long),\n },\n currency: {\n compactShort: extractDecimalFormatILD(numbers.currency[numberingSystem].short),\n },\n symbols: numbers.symbols[numberingSystem],\n currencySymbols: Object.keys(currencies).reduce(function (all, code) {\n all[code] = {\n currencyName: currencies[code].displayName,\n currencySymbol: currencies[code].symbol,\n currencyNarrowSymbol: currencies[code].narrow || currencies[code].symbol,\n };\n return all;\n }, Object.create(null)),\n unitSymbols: Object.keys(units).reduce(function (all, unit) {\n all[unit] = {\n unitSymbol: extractLDMLPluralRuleMap(units[unit].short, 'symbol'),\n unitNarrowSymbol: extractLDMLPluralRuleMap(units[unit].narrow, 'symbol'),\n unitName: extractLDMLPluralRuleMap(units[unit].long, 'symbol'),\n };\n return all;\n }, Object.create(null)),\n };\n}\nfunction serializeSlotTokens(tokens) {\n if (Array.isArray(tokens))\n return tokens.map(function (t) { return \"{\" + t + \"}\"; }).join('');\n return \"{\" + tokens + \"}\";\n}\n// Credit: https://github.com/andyearnshaw/Intl.js/blob/master/scripts/utils/reduce.js\n// Matches CLDR number patterns, e.g. #,##0.00, #,##,##0.00, #,##0.##, 0, etc.\nvar NUMBER_PATTERN = /[#0](?:[\\.,][#0]+)*/g;\nvar SCIENTIFIC_POSITIVE_PATTERN = serializeSlotTokens([\n InternalSlotToken.number,\n InternalSlotToken.scientificSeparator,\n InternalSlotToken.scientificExponent,\n]);\nvar SCIENTIFIC_NEGATIVE_PATTERN = serializeSlotTokens([\n InternalSlotToken.minusSign,\n InternalSlotToken.number,\n InternalSlotToken.scientificSeparator,\n InternalSlotToken.scientificExponent,\n]);\nvar DUMMY_POSITIVE_PATTERN = serializeSlotTokens([InternalSlotToken.number]);\nvar DUMMY_NEGATIVE_PATTERN = serializeSlotTokens([\n InternalSlotToken.minusSign,\n InternalSlotToken.number,\n]);\nvar DUMMY_PATTERN = DUMMY_POSITIVE_PATTERN + ';' + DUMMY_NEGATIVE_PATTERN;\nvar SCIENTIFIC_PATTERN = SCIENTIFIC_POSITIVE_PATTERN + ';' + SCIENTIFIC_NEGATIVE_PATTERN;\n/**\n * Turn compact pattern like `0 trillion` to\n * `0 {compactSymbol};-0 {compactSymbol}`.\n * Negative pattern will not be inserted if there already\n * exist one.\n * TODO: Maybe preprocess this\n * @param pattern decimal long/short pattern\n */\nfunction processDecimalCompactSymbol(pattern, slotToken) {\n if (slotToken === void 0) { slotToken = InternalSlotToken.compactSymbol; }\n var compactUnit = pattern.replace(/0+/, '').trim();\n if (compactUnit) {\n pattern = pattern.replace(compactUnit, serializeSlotTokens(slotToken));\n }\n var negativePattern = pattern.indexOf('-') > -1 ? pattern : pattern.replace(/(0+)/, '-$1');\n return [\n pattern.replace(/0+/, '{number}'),\n negativePattern.replace(/0+/, '{number}'),\n ];\n}\n/**\n * Turn compact pattern like `¤0 trillion` to\n * `¤0 {compactSymbol};-¤0 {compactSymbol}`\n * Negative pattern will not be inserted if there already\n * exist one.\n * TODO: Maybe preprocess this\n * @param pattern currency long/short pattern\n */\nfunction processCurrencyCompactSymbol(pattern, slotToken) {\n if (slotToken === void 0) { slotToken = InternalSlotToken.compactSymbol; }\n var compactUnit = pattern.replace(/[¤0]/g, '').trim();\n if (compactUnit) {\n pattern = pattern.replace(compactUnit, serializeSlotTokens(slotToken));\n }\n var negativePattern = pattern.indexOf('-') > -1 ? pattern : \"-\" + pattern;\n return (pattern.replace(/0+/, '{number}') +\n ';' +\n negativePattern.replace(/0+/, '{number}'));\n}\nvar INSERT_BEFORE_PATTERN_REGEX = /[^\\s;(-]¤/;\nvar INSERT_AFTER_PATTERN_REGEX = /¤[^\\s);]/;\nfunction shouldInsertBefore(currency, pattern) {\n // surroundingMatch [:digit:] check\n return (INSERT_BEFORE_PATTERN_REGEX.test(pattern) &&\n // [:^S:]\n !S_UNICODE_REGEX.test(currency[0]));\n}\nfunction shouldInsertAfter(currency, pattern) {\n return (INSERT_AFTER_PATTERN_REGEX.test(pattern) &&\n // [:^S:]\n !S_UNICODE_REGEX.test(currency[currency.length - 1]));\n}\nfunction insertBetween(currency, pattern, insertBetweenChar) {\n // Check afterCurrency\n if (shouldInsertAfter(currency, pattern)) {\n return pattern.replace(CURRENCY_SYMBOL_REGEX, \"\\u00A4\" + insertBetweenChar);\n }\n // Check beforeCurrency\n if (shouldInsertBefore(currency, pattern)) {\n return pattern.replace(CURRENCY_SYMBOL_REGEX, insertBetweenChar + \"\\u00A4\");\n }\n return pattern;\n}\nvar Patterns = /** @class */ (function () {\n function Patterns(units, currencies, numbers, numberingSystem, unit, currency, currencySign) {\n this.units = units;\n this.currencies = currencies;\n this.numbers = numbers;\n this.numberingSystem = numberingSystem;\n this._unit = unit;\n this._currency = currency;\n this.currencySign = currencySign;\n }\n Object.defineProperty(Patterns.prototype, \"decimal\", {\n // Style\n get: function () {\n if (!this.decimalPatterns) {\n this.decimalPatterns = new DecimalPatterns(this.numbers, this.numberingSystem);\n }\n return this.decimalPatterns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Patterns.prototype, \"percent\", {\n get: function () {\n if (!this.percentPatterns) {\n this.percentPatterns = new PercentPatterns(this.numbers, this.numberingSystem);\n }\n return this.percentPatterns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Patterns.prototype, \"unit\", {\n get: function () {\n if (!this.unitPatterns) {\n invariant(!!this._unit, 'unit must be supplied');\n this.unitPatterns = Object.create(null);\n this.unitPatterns[this._unit] = new UnitPatterns(this.units, this.numbers, this.numberingSystem, this._unit);\n }\n return this.unitPatterns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Patterns.prototype, \"currency\", {\n get: function () {\n if (!this.currencyPatterns) {\n invariant(!!this._currency, 'currency must be supplied');\n invariant(!!this.currencySign, 'currencySign must be supplied');\n this.currencyPatterns = Object.create(null);\n this.currencyPatterns[this._currency] = new CurrencyPatterns(this.currencies, this.numbers, this.numberingSystem, this._currency, this.currencySign);\n }\n return this.currencyPatterns;\n },\n enumerable: true,\n configurable: true\n });\n return Patterns;\n}());\nexport { Patterns };\nfunction processSignPattern(signPattern, fn) {\n if (!fn) {\n return signPattern;\n }\n return {\n positivePattern: fn(signPattern.positivePattern),\n zeroPattern: fn(signPattern.zeroPattern),\n negativePattern: fn(signPattern.negativePattern),\n };\n}\n/**\n * Produce positive/negative/zero pattern\n * This also converts {0} into {number}\n * @param patterns\n * @param signDisplay\n */\nfunction produceSignPattern(patterns, signDisplay) {\n invariant(!!patterns, 'Pattern should have existed');\n var _a = patterns.split(';'), positivePattern = _a[0], negativePattern = _a[1];\n invariant(!!negativePattern, \"negativePattern should have existed but got \\\"\" + patterns + \"\\\"\");\n var noSignPattern = positivePattern.replace('+', '');\n negativePattern = negativePattern.replace('-', serializeSlotTokens(InternalSlotToken.minusSign));\n var alwaysPositivePattern = positivePattern;\n if (negativePattern.indexOf(InternalSlotToken.minusSign) > -1) {\n alwaysPositivePattern = negativePattern.replace(InternalSlotToken.minusSign, InternalSlotToken.plusSign);\n }\n else if (positivePattern.indexOf('+') > -1) {\n alwaysPositivePattern = positivePattern = positivePattern.replace('+', serializeSlotTokens(InternalSlotToken.plusSign));\n }\n else {\n // In case {0} is in the middle of the pattern\n alwaysPositivePattern = \"\" + serializeSlotTokens(InternalSlotToken.plusSign) + noSignPattern;\n }\n positivePattern = positivePattern.replace('{0}', serializeSlotTokens(InternalSlotToken.number));\n alwaysPositivePattern = alwaysPositivePattern.replace('{0}', serializeSlotTokens(InternalSlotToken.number));\n negativePattern = negativePattern.replace('{0}', serializeSlotTokens(InternalSlotToken.number));\n noSignPattern = noSignPattern.replace('{0}', serializeSlotTokens(InternalSlotToken.number));\n switch (signDisplay) {\n case 'always':\n return {\n positivePattern: alwaysPositivePattern,\n zeroPattern: alwaysPositivePattern,\n negativePattern: negativePattern,\n };\n case 'auto':\n return {\n positivePattern: positivePattern,\n zeroPattern: positivePattern,\n negativePattern: negativePattern,\n };\n case 'exceptZero':\n return {\n positivePattern: alwaysPositivePattern,\n zeroPattern: noSignPattern,\n negativePattern: negativePattern,\n };\n case 'never':\n return {\n positivePattern: noSignPattern,\n zeroPattern: noSignPattern,\n negativePattern: noSignPattern,\n };\n }\n}\nvar NotationPatterns = /** @class */ (function () {\n function NotationPatterns() {\n }\n Object.defineProperty(NotationPatterns.prototype, \"compactShort\", {\n get: function () {\n this.notation = 'compactShort';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, \"compactLong\", {\n get: function () {\n this.notation = 'compactLong';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '1000', {\n // DecimalFormatNum\n get: function () {\n return this.produceCompactSignPattern('1000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '10000', {\n get: function () {\n return this.produceCompactSignPattern('10000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '100000', {\n get: function () {\n return this.produceCompactSignPattern('100000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '1000000', {\n get: function () {\n return this.produceCompactSignPattern('1000000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '10000000', {\n get: function () {\n return this.produceCompactSignPattern('10000000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '100000000', {\n get: function () {\n return this.produceCompactSignPattern('100000000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '1000000000', {\n get: function () {\n return this.produceCompactSignPattern('1000000000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '10000000000', {\n get: function () {\n return this.produceCompactSignPattern('10000000000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '100000000000', {\n get: function () {\n return this.produceCompactSignPattern('100000000000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '1000000000000', {\n get: function () {\n return this.produceCompactSignPattern('1000000000000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '10000000000000', {\n get: function () {\n return this.produceCompactSignPattern('10000000000000');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotationPatterns.prototype, '100000000000000', {\n get: function () {\n return this.produceCompactSignPattern('100000000000000');\n },\n enumerable: true,\n configurable: true\n });\n return NotationPatterns;\n}());\nvar DecimalPatterns = /** @class */ (function (_super) {\n __extends(DecimalPatterns, _super);\n function DecimalPatterns(numbers, numberingSystem) {\n var _this = _super.call(this) || this;\n _this.numbers = numbers;\n _this.numberingSystem = numberingSystem;\n return _this;\n }\n DecimalPatterns.prototype.produceCompactSignPattern = function (decimalNum) {\n if (!this.compactSignPattern) {\n this.compactSignPattern = Object.create(null);\n }\n var signPattern = this.compactSignPattern;\n if (!signPattern[decimalNum]) {\n invariant(!!this.signDisplay, 'Sign Display should have existed');\n if (this.notation === 'compactLong') {\n signPattern[decimalNum] = produceSignPattern(processDecimalCompactSymbol(this.numbers.decimal[this.numberingSystem].long[decimalNum].other, InternalSlotToken.compactName).join(';'), this.signDisplay);\n }\n else {\n signPattern[decimalNum] = produceSignPattern(processDecimalCompactSymbol(this.numbers.decimal[this.numberingSystem].short[decimalNum].other, InternalSlotToken.compactSymbol).join(';'), this.signDisplay);\n }\n }\n return signPattern[decimalNum];\n };\n Object.defineProperty(DecimalPatterns.prototype, \"always\", {\n // Sign Display\n get: function () {\n this.signDisplay = 'always';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DecimalPatterns.prototype, \"auto\", {\n get: function () {\n this.signDisplay = 'auto';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DecimalPatterns.prototype, \"never\", {\n get: function () {\n this.signDisplay = 'never';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DecimalPatterns.prototype, \"exceptZero\", {\n get: function () {\n this.signDisplay = 'exceptZero';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DecimalPatterns.prototype, \"standard\", {\n // Notation\n get: function () {\n if (!this.signPattern) {\n invariant(!!this.signDisplay, 'Sign Display should have existed');\n this.signPattern = produceSignPattern(DUMMY_PATTERN, this.signDisplay);\n }\n return this.signPattern;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DecimalPatterns.prototype, \"scientific\", {\n get: function () {\n if (!this.signPattern) {\n invariant(!!this.signDisplay, 'Sign Display should have existed');\n this.signPattern = produceSignPattern(SCIENTIFIC_PATTERN, this.signDisplay);\n }\n return this.signPattern;\n },\n enumerable: true,\n configurable: true\n });\n return DecimalPatterns;\n}(NotationPatterns));\nvar PercentPatterns = /** @class */ (function (_super) {\n __extends(PercentPatterns, _super);\n function PercentPatterns() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PercentPatterns.prototype.generateStandardOrScientificPattern = function (isScientific) {\n invariant(!!this.signDisplay, 'Sign Display should have existed');\n var pattern = this.numbers.percent[this.numberingSystem]\n .replace(/%/g, serializeSlotTokens(InternalSlotToken.percentSign))\n .replace(NUMBER_PATTERN, isScientific\n ? SCIENTIFIC_POSITIVE_PATTERN\n : serializeSlotTokens(InternalSlotToken.number));\n var negativePattern;\n if (pattern.indexOf(';') < 0) {\n negativePattern = \"\" + serializeSlotTokens(InternalSlotToken.minusSign) + pattern;\n pattern += ';' + negativePattern;\n }\n return produceSignPattern(pattern, this.signDisplay);\n };\n Object.defineProperty(PercentPatterns.prototype, \"standard\", {\n // Notation\n get: function () {\n if (!this.signPattern) {\n this.signPattern = this.generateStandardOrScientificPattern();\n }\n return this.signPattern;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PercentPatterns.prototype, \"scientific\", {\n get: function () {\n if (!this.signPattern) {\n this.signPattern = this.generateStandardOrScientificPattern(true);\n }\n return this.signPattern;\n },\n enumerable: true,\n configurable: true\n });\n return PercentPatterns;\n}(DecimalPatterns));\nvar UnitPatterns = /** @class */ (function (_super) {\n __extends(UnitPatterns, _super);\n function UnitPatterns(units, numbers, numberingSystem, unit) {\n var _this = _super.call(this) || this;\n _this.unit = unit;\n _this.units = units;\n _this.numbers = numbers;\n _this.numberingSystem = numberingSystem;\n return _this;\n }\n UnitPatterns.prototype.generateStandardOrScientificPattern = function (isScientific) {\n invariant(!!this.signDisplay, 'Sign Display should have existed');\n invariant(!!this.pattern, 'Pattern must exist');\n var pattern = this.pattern;\n var negativePattern;\n if (pattern.indexOf(';') < 0) {\n negativePattern = pattern.replace('{0}', '-{0}');\n pattern += ';' + negativePattern;\n }\n pattern = pattern.replace(UNIT_0_REGEX, isScientific\n ? SCIENTIFIC_POSITIVE_PATTERN\n : serializeSlotTokens(InternalSlotToken.number));\n return produceSignPattern(pattern, this.signDisplay);\n };\n UnitPatterns.prototype.produceCompactSignPattern = function (decimalNum) {\n if (!this.compactSignPattern) {\n this.compactSignPattern = Object.create(null);\n }\n var compactSignPatterns = this.compactSignPattern;\n if (!compactSignPatterns[decimalNum]) {\n invariant(!!this.pattern, 'Pattern should exist');\n invariant(!!this.signDisplay, 'Sign Display should exist');\n var pattern = this.pattern;\n var compactPattern = void 0;\n if (this.notation === 'compactShort') {\n compactPattern = processDecimalCompactSymbol(this.numbers.decimal[this.numberingSystem].short[decimalNum].other, InternalSlotToken.compactSymbol);\n }\n else {\n compactPattern = processDecimalCompactSymbol(this.numbers.decimal[this.numberingSystem].long[decimalNum].other, InternalSlotToken.compactName);\n }\n pattern =\n pattern.replace('{0}', compactPattern[0]) +\n ';' +\n pattern.replace('{0}', compactPattern[1]);\n compactSignPatterns[decimalNum] = produceSignPattern(pattern, this.signDisplay);\n }\n return compactSignPatterns[decimalNum];\n };\n Object.defineProperty(UnitPatterns.prototype, \"narrow\", {\n // UnitDisplay\n get: function () {\n if (!this.pattern) {\n this.pattern = this.units[this.unit].narrow.other.pattern.replace(UNIT_1_REGEX, serializeSlotTokens(InternalSlotToken.unitNarrowSymbol));\n }\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UnitPatterns.prototype, \"short\", {\n get: function () {\n if (!this.pattern) {\n this.pattern = this.units[this.unit].short.other.pattern.replace(UNIT_1_REGEX, serializeSlotTokens(InternalSlotToken.unitSymbol));\n }\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UnitPatterns.prototype, \"long\", {\n get: function () {\n if (!this.pattern) {\n this.pattern = this.units[this.unit].long.other.pattern.replace(UNIT_1_REGEX, serializeSlotTokens(InternalSlotToken.unitName));\n }\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UnitPatterns.prototype, \"always\", {\n // Sign Display\n get: function () {\n this.signDisplay = 'always';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UnitPatterns.prototype, \"auto\", {\n get: function () {\n this.signDisplay = 'auto';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UnitPatterns.prototype, \"never\", {\n get: function () {\n this.signDisplay = 'never';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UnitPatterns.prototype, \"exceptZero\", {\n get: function () {\n this.signDisplay = 'exceptZero';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UnitPatterns.prototype, \"standard\", {\n // Notation\n get: function () {\n if (!this.signPattern) {\n this.signPattern = this.generateStandardOrScientificPattern();\n }\n return this.signPattern;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(UnitPatterns.prototype, \"scientific\", {\n get: function () {\n if (!this.signPattern) {\n this.signPattern = this.generateStandardOrScientificPattern(true);\n }\n return this.signPattern;\n },\n enumerable: true,\n configurable: true\n });\n return UnitPatterns;\n}(NotationPatterns));\nfunction resolvePatternForCurrencyCode(resolvedCurrency, data, notation, currencySign, decimalNum) {\n var shortPattern = data.short;\n var longPattern = data.long || data.short;\n var pattern = '';\n switch (notation) {\n case 'compactLong': {\n pattern =\n (longPattern === null || longPattern === void 0 ? void 0 : longPattern[decimalNum].other) || (shortPattern === null || shortPattern === void 0 ? void 0 : shortPattern[decimalNum].other) ||\n data.standard;\n return processCurrencyCompactSymbol(insertBetween(resolvedCurrency, pattern, data.currencySpacing.beforeInsertBetween), InternalSlotToken.compactName);\n }\n case 'compactShort':\n pattern = (shortPattern === null || shortPattern === void 0 ? void 0 : shortPattern[decimalNum].other) || data.standard;\n return processCurrencyCompactSymbol(insertBetween(resolvedCurrency, pattern, data.currencySpacing.beforeInsertBetween), InternalSlotToken.compactSymbol);\n case 'scientific':\n pattern = currencySign === 'accounting' ? data.accounting : data.standard;\n pattern = insertBetween(resolvedCurrency, pattern, data.currencySpacing.beforeInsertBetween);\n if (pattern.indexOf(';') < 0) {\n pattern += ';' + (\"-\" + pattern);\n }\n return pattern.replace(NUMBER_PATTERN, SCIENTIFIC_POSITIVE_PATTERN);\n case 'standard':\n pattern = currencySign === 'accounting' ? data.accounting : data.standard;\n pattern = insertBetween(resolvedCurrency, pattern, data.currencySpacing.beforeInsertBetween);\n if (pattern.indexOf(';') < 0) {\n pattern += ';' + (\"-\" + pattern);\n }\n return pattern.replace(NUMBER_PATTERN, serializeSlotTokens(InternalSlotToken.number));\n }\n}\n/**\n * Resolve pattern for currency name\n * TODO: CurrencySign doesn't matter here (accounting or standard).\n * When it comes to using `name`, it's `-1 Australian Dollars`\n * instead of `(1 Australian Dollar)`\n * @param numbers\n * @param numberingSystem\n * @param notation\n * @param decimalNum\n */\nfunction resolvePatternForCurrencyName(numbers, numberingSystem, notation, decimalNum) {\n var pattern = numbers.currency[numberingSystem].unitPattern.replace(UNIT_1_REGEX, serializeSlotTokens(InternalSlotToken.currencyName));\n var numberPattern;\n // currencySign doesn't matter here but notation does\n switch (notation) {\n case 'compactLong':\n numberPattern = processDecimalCompactSymbol(numbers.decimal[numberingSystem].long[decimalNum].other, InternalSlotToken.compactName);\n break;\n case 'compactShort':\n numberPattern = processDecimalCompactSymbol(numbers.decimal[numberingSystem].short[decimalNum].other, InternalSlotToken.compactSymbol);\n break;\n case 'scientific':\n numberPattern = [\n SCIENTIFIC_POSITIVE_PATTERN,\n SCIENTIFIC_NEGATIVE_PATTERN,\n ];\n break;\n case 'standard':\n numberPattern = [DUMMY_POSITIVE_PATTERN, DUMMY_NEGATIVE_PATTERN];\n break;\n }\n return (pattern.replace('{0}', numberPattern[0]) +\n ';' +\n pattern.replace('{0}', numberPattern[1]));\n}\nvar CurrencyPatterns = /** @class */ (function () {\n function CurrencyPatterns(currencies, numbers, numberingSystem, currency, currencySign) {\n this.currency = currency;\n this.currencies = currencies;\n this.numbers = numbers;\n this.numberingSystem = numberingSystem;\n this.currencySign = currencySign;\n }\n Object.defineProperty(CurrencyPatterns.prototype, \"code\", {\n // CurrencyDisplay\n get: function () {\n this.currencySlotToken = InternalSlotToken.currencyCode;\n this.resolvedCurrency = this.currency;\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencyPatterns.prototype, \"symbol\", {\n get: function () {\n this.currencySlotToken = InternalSlotToken.currencySymbol;\n this.resolvedCurrency = this.currencies[this.currency].symbol;\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencyPatterns.prototype, \"narrowSymbol\", {\n get: function () {\n this.currencySlotToken = InternalSlotToken.currencyNarrowSymbol;\n this.resolvedCurrency = this.currencies[this.currency].narrow;\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencyPatterns.prototype, \"name\", {\n get: function () {\n this.currencySlotToken = InternalSlotToken.currencyName;\n this.resolvedCurrency = this.currencies[this.currency].displayName.other;\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencyPatterns.prototype, \"accounting\", {\n // CurrencySign\n get: function () {\n this.currencySign = 'accounting';\n if (!this.signDisplayPatterns) {\n invariant(!!this.currencySign, 'Currency Sign should have existed');\n invariant(!!this.currencySlotToken, 'Currency Slot Token should have existed');\n invariant(!!this.resolvedCurrency, 'Currency should have been resolved');\n this.signDisplayPatterns = new CurrencySignDisplayPatterns(this.resolvedCurrency, this.numbers, this.numberingSystem, this.currencySign, this.currencySlotToken);\n }\n return this.signDisplayPatterns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencyPatterns.prototype, \"standard\", {\n get: function () {\n this.currencySign = 'standard';\n if (!this.signDisplayPatterns) {\n invariant(!!this.currencySign, 'Currency Sign should have existed');\n invariant(!!this.currencySlotToken, 'Currency Display should have existed');\n invariant(!!this.resolvedCurrency, 'Currency should have been resolved');\n this.signDisplayPatterns = new CurrencySignDisplayPatterns(this.resolvedCurrency, this.numbers, this.numberingSystem, this.currencySign, this.currencySlotToken);\n }\n return this.signDisplayPatterns;\n },\n enumerable: true,\n configurable: true\n });\n return CurrencyPatterns;\n}());\nvar CurrencySignDisplayPatterns = /** @class */ (function (_super) {\n __extends(CurrencySignDisplayPatterns, _super);\n function CurrencySignDisplayPatterns(resolvedCurrency, numbers, numberingSystem, currencySign, currencySlotToken) {\n var _this = _super.call(this) || this;\n _this.currency = resolvedCurrency;\n _this.numbers = numbers;\n _this.numberingSystem = numberingSystem;\n _this.currencySign = currencySign;\n _this.currencySlotToken = currencySlotToken;\n return _this;\n }\n Object.defineProperty(CurrencySignDisplayPatterns.prototype, \"always\", {\n // Sign Display\n get: function () {\n this.signDisplay = 'always';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencySignDisplayPatterns.prototype, \"auto\", {\n get: function () {\n this.signDisplay = 'auto';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencySignDisplayPatterns.prototype, \"never\", {\n get: function () {\n this.signDisplay = 'never';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencySignDisplayPatterns.prototype, \"exceptZero\", {\n get: function () {\n this.signDisplay = 'exceptZero';\n return this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencySignDisplayPatterns.prototype, \"standard\", {\n // Notation\n // Standard currency sign\n get: function () {\n if (!this.signPattern) {\n invariant(!!this.currencySign, 'Currency sign should exist');\n invariant(!!this.signDisplay, 'Sign display must exist');\n var pattern = '';\n // name -> standard -> standard\n // name -> accounting -> standard\n if (this.currencySlotToken === InternalSlotToken.currencyName) {\n pattern = resolvePatternForCurrencyName(this.numbers, this.numberingSystem, 'standard', '1000' // dummy\n );\n }\n // code -> standard -> standard\n // code -> accounting -> standard\n // symbol -> standard -> standard\n // symbol -> accounting -> standard\n // narrowSymbol -> standard -> standard\n // narrowSymbol -> accounting -> standard\n else {\n pattern = resolvePatternForCurrencyCode(this.currency, this.numbers.currency[this.numberingSystem], 'standard', this.currencySign, '1000' // dummy\n ).replace(CURRENCY_SYMBOL_REGEX, serializeSlotTokens(this.currencySlotToken));\n }\n this.signPattern = produceSignPattern(pattern, this.signDisplay);\n }\n return this.signPattern;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CurrencySignDisplayPatterns.prototype, \"scientific\", {\n get: function () {\n if (!this.signPattern) {\n invariant(!!this.currencySign, 'Currency sign should exist');\n invariant(!!this.signDisplay, 'Sign display must exist');\n var pattern = '';\n // name -> standard -> scientific\n // name -> accounting -> scientific\n if (this.currencySlotToken === InternalSlotToken.currencyName) {\n pattern = resolvePatternForCurrencyName(this.numbers, this.numberingSystem, 'scientific', '1000' // dummy\n );\n }\n // code -> standard -> scientific\n // code -> accounting -> scientific\n // symbol -> standard -> scientific\n // symbol -> accounting -> scientific\n // narrowSymbol -> standard -> scientific\n // narrowSymbol -> accounting -> scientific\n else {\n pattern = resolvePatternForCurrencyCode(this.currency, this.numbers.currency[this.numberingSystem], 'scientific', this.currencySign, '1000' // dummy\n ).replace(CURRENCY_SYMBOL_REGEX, serializeSlotTokens(this.currencySlotToken));\n }\n this.signPattern = produceSignPattern(pattern, this.signDisplay);\n }\n return this.signPattern;\n },\n enumerable: true,\n configurable: true\n });\n CurrencySignDisplayPatterns.prototype.produceCompactSignPattern = function (decimalNum) {\n if (!this.compactSignPattern) {\n this.compactSignPattern = Object.create(null);\n }\n var compactSignPatterns = this.compactSignPattern;\n if (!compactSignPatterns[decimalNum]) {\n invariant(!!this.currencySign, 'Currency sign should exist');\n invariant(!!this.signDisplay, 'Sign display must exist');\n var pattern = '';\n // name -> standard -> compact -> compactLong\n // name -> accounting -> compact -> compactShort\n if (this.currencySlotToken === InternalSlotToken.currencyName) {\n pattern = resolvePatternForCurrencyName(this.numbers, this.numberingSystem, this.notation, decimalNum);\n }\n else {\n pattern = resolvePatternForCurrencyCode(this.currency, this.numbers.currency[this.numberingSystem], this.notation, this.currencySign, decimalNum).replace(CURRENCY_SYMBOL_REGEX, serializeSlotTokens(this.currencySlotToken));\n }\n compactSignPatterns[decimalNum] = processSignPattern(produceSignPattern(pattern, this.signDisplay), function (pattern) { return pattern.replace(/0+/, '{number}'); });\n }\n return compactSignPatterns[decimalNum];\n };\n return CurrencySignDisplayPatterns;\n}(NotationPatterns));\n//# sourceMappingURL=data.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { createResolveLocale, toObject, supportedLocales, getCanonicalLocales, setInternalSlot, setMultiInternalSlots, getMultiInternalSlots, getOption, getInternalSlot, InternalSlotToken, setNumberFormatDigitOptions, SANCTIONED_UNITS, invariant, objectIs, unpackData, partitionPattern, isWellFormedCurrencyCode, } from '@formatjs/intl-utils';\nimport { toRawFixed, toRawPrecision, getMagnitude, repeat, } from './utils';\nimport { extractILD, Patterns } from './data';\nimport * as currencyDigitsData from './currency-digits.json';\nimport * as ILND from './ilnd-numbers.json';\nimport { names as numberingSystemNames } from './numbering-systems.json';\nvar VALID_NUMBERING_SYSTEM_NAMES = Object.create(null);\nfor (var _i = 0, numberingSystemNames_1 = numberingSystemNames; _i < numberingSystemNames_1.length; _i++) {\n var nu = numberingSystemNames_1[_i];\n VALID_NUMBERING_SYSTEM_NAMES[nu] = true;\n}\nvar RESOLVED_OPTIONS_KEYS = [\n 'locale',\n 'numberingSystem',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'unit',\n 'unitDisplay',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'useGrouping',\n 'notation',\n 'compactDisplay',\n 'signDisplay',\n];\nvar SHORTENED_SACTION_UNITS = SANCTIONED_UNITS.map(function (unit) {\n return unit.replace(/^(.*?)-/, '');\n});\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toLowerCase(str) {\n return str.replace(/([A-Z])/g, function (_, c) { return c.toLowerCase(); });\n}\n/**\n * https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-iswellformedunitidentifier\n * @param unit\n */\nfunction isWellFormedUnitIdentifier(unit) {\n unit = toLowerCase(unit);\n if (SHORTENED_SACTION_UNITS.indexOf(unit) > -1) {\n return true;\n }\n var units = unit.split('-per-');\n if (units.length !== 2) {\n return false;\n }\n if (SHORTENED_SACTION_UNITS.indexOf(units[0]) < 0 ||\n SHORTENED_SACTION_UNITS.indexOf(units[1]) < 0) {\n return false;\n }\n return true;\n}\n/**\n * Check if a formatting number with unit is supported\n * @public\n * @param unit unit to check\n */\nexport function isUnitSupported(unit) {\n try {\n new Intl.NumberFormat(undefined, {\n style: 'unit',\n unit: unit,\n });\n }\n catch (e) {\n return false;\n }\n return true;\n}\n/**\n * Chop off the unicode extension from the locale string.\n */\nfunction removeUnicodeExtensionFromLocale(canonicalLocale) {\n var extensionIndex = canonicalLocale.indexOf('-u-');\n return extensionIndex >= 0\n ? canonicalLocale.slice(0, extensionIndex)\n : canonicalLocale;\n}\nvar __INTERNAL_SLOT_MAP__ = new WeakMap();\nfunction currencyDigits(c) {\n return c in currencyDigitsData ? currencyDigitsData[c] : 2;\n}\nfunction initializeNumberFormat(nf, locales, opts) {\n var requestedLocales = getCanonicalLocales(locales);\n var options = opts === undefined ? Object.create(null) : toObject(opts);\n var opt = Object.create(null);\n var matcher = getOption(options, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = getOption(options, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined &&\n !VALID_NUMBERING_SYSTEM_NAMES[numberingSystem]) {\n // 8.a. If numberingSystem does not match the Unicode Locale Identifier type nonterminal,\n // throw a RangeError exception.\n throw RangeError(\"Invalid numberingSystems: \" + numberingSystem);\n }\n opt.nu = numberingSystem;\n var localeData = UnifiedNumberFormat.localeData;\n var r = createResolveLocale(UnifiedNumberFormat.getDefaultLocale)(UnifiedNumberFormat.availableLocales, requestedLocales, opt, \n // [[RelevantExtensionKeys]] slot, which is a constant\n ['nu'], localeData);\n var ildData = localeData[removeUnicodeExtensionFromLocale(r.locale)];\n setMultiInternalSlots(__INTERNAL_SLOT_MAP__, nf, {\n locale: r.locale,\n dataLocale: r.dataLocale,\n numberingSystem: r.nu,\n ild: extractILD(ildData.units, ildData.currencies, ildData.numbers, r.nu),\n });\n // https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_proposed_out.html#sec-setnumberformatunitoptions\n setNumberFormatUnitOptions(nf, options);\n var style = getInternalSlot(__INTERNAL_SLOT_MAP__, nf, 'style');\n // ---\n var mnfdDefault;\n var mxfdDefault;\n if (style === 'currency') {\n var currency = getInternalSlot(__INTERNAL_SLOT_MAP__, nf, 'currency');\n var cDigits = currencyDigits(currency);\n mnfdDefault = cDigits;\n mxfdDefault = cDigits;\n }\n else {\n mnfdDefault = 0;\n mxfdDefault = style === 'percent' ? 0 : 3;\n }\n var notation = getOption(options, 'notation', 'string', ['standard', 'scientific', 'engineering', 'compact'], 'standard');\n setInternalSlot(__INTERNAL_SLOT_MAP__, nf, 'notation', notation);\n setNumberFormatDigitOptions(__INTERNAL_SLOT_MAP__, nf, options, mnfdDefault, mxfdDefault);\n var compactDisplay = getOption(options, 'compactDisplay', 'string', ['short', 'long'], 'short');\n if (notation === 'compact') {\n setInternalSlot(__INTERNAL_SLOT_MAP__, nf, 'compactDisplay', compactDisplay);\n }\n var useGrouping = getOption(options, 'useGrouping', 'boolean', undefined, true);\n setInternalSlot(__INTERNAL_SLOT_MAP__, nf, 'useGrouping', useGrouping);\n var signDisplay = getOption(options, 'signDisplay', 'string', ['auto', 'never', 'always', 'exceptZero'], 'auto');\n setInternalSlot(__INTERNAL_SLOT_MAP__, nf, 'signDisplay', signDisplay);\n}\nfunction partitionNumberPattern(numberFormat, x) {\n var pl = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'pl');\n var exponent = 0;\n var ild = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'ild');\n var n;\n var formattedX = x;\n if (isNaN(x)) {\n n = ild.symbols.nan;\n }\n else if (!isFinite(x)) {\n n = ild.symbols.infinity;\n }\n else {\n if (getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'style') ===\n 'percent') {\n formattedX *= 100;\n }\n exponent = computeExponent(numberFormat, formattedX);\n formattedX /= Math.pow(10, exponent);\n var formatNumberResult = formatNumberToString(numberFormat, formattedX);\n n = formatNumberResult.formattedString;\n formattedX = formatNumberResult.roundedNumber;\n }\n var pattern = getNumberFormatPattern(numberFormat, x, exponent);\n var patternParts = partitionPattern(pattern);\n var results = [];\n // Unspec'ed stuff\n // This is to deal w/ cases where {number} is in the middle of a unit pattern\n var unitSymbolChunkIndex = 0;\n var notation = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'notation');\n for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {\n var part = patternParts_1[_i];\n switch (part.type) {\n case 'literal':\n results.push(part);\n break;\n case InternalSlotToken.number: {\n if (isNaN(formattedX)) {\n results.push({ type: 'nan', value: n });\n }\n else if (formattedX === Infinity || x === -Infinity) {\n results.push({ type: 'infinity', value: n });\n }\n else {\n var _a = getMultiInternalSlots(__INTERNAL_SLOT_MAP__, numberFormat, 'numberingSystem', 'useGrouping', 'notation'), nu = _a.numberingSystem, useGrouping = _a.useGrouping;\n if (nu && nu in ILND) {\n // Replace digits\n var replacementTable = ILND[nu];\n var replacedDigits = '';\n for (var _b = 0, n_1 = n; _b < n_1.length; _b++) {\n var digit = n_1[_b];\n // digit can be `.` if it's fractional\n replacedDigits += replacementTable[+digit] || digit;\n }\n n = replacedDigits;\n }\n var decimalSepIndex = n.indexOf('.');\n var integer = void 0;\n var fraction = void 0;\n if (decimalSepIndex > 0) {\n integer = n.slice(0, decimalSepIndex);\n fraction = n.slice(decimalSepIndex + 1);\n }\n else {\n integer = n;\n }\n // For compact, default grouping strategy is min2\n if (useGrouping &&\n (notation === 'compact' ? integer.length > 4 : true)) {\n var groupSepSymbol = ild.symbols.group;\n var groups = [];\n // Assuming that the group separator is always inserted between every 3 digits.\n var i = integer.length - 3;\n for (; i > 0; i -= 3) {\n groups.push(integer.slice(i, i + 3));\n }\n groups.push(integer.slice(0, i + 3));\n while (groups.length > 0) {\n var integerGroup = groups.pop();\n results.push({ type: 'integer', value: integerGroup });\n if (groups.length > 0) {\n results.push({ type: 'group', value: groupSepSymbol });\n }\n }\n }\n else {\n results.push({ type: 'integer', value: integer });\n }\n if (fraction !== undefined) {\n results.push({ type: 'decimal', value: ild.symbols.decimal }, { type: 'fraction', value: fraction });\n }\n }\n break;\n }\n case InternalSlotToken.plusSign:\n results.push({\n type: 'plusSign',\n value: ild.symbols.plusSign,\n });\n break;\n case InternalSlotToken.minusSign:\n results.push({\n type: 'minusSign',\n value: ild.symbols.minusSign,\n });\n break;\n case InternalSlotToken.compactSymbol: {\n var style = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'style');\n var compactData = void 0;\n if (style === 'currency') {\n compactData = ild.currency.compactShort;\n }\n else {\n compactData = ild.decimal.compactShort;\n }\n if (compactData) {\n results.push({\n type: 'compact',\n value: selectPlural(pl, x, compactData[String(Math.pow(10, exponent))]),\n });\n }\n break;\n }\n case InternalSlotToken.compactName: {\n var style = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'style');\n var currencyDisplay = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'currencyDisplay');\n var compactData = void 0;\n if (style === 'currency' && currencyDisplay !== 'name') {\n compactData = ild.currency.compactLong || ild.currency.compactShort;\n }\n else {\n compactData = ild.decimal.compactLong || ild.decimal.compactShort;\n }\n if (compactData) {\n results.push({\n type: 'compact',\n value: selectPlural(pl, x, compactData[String(Math.pow(10, exponent))]),\n });\n }\n break;\n }\n case InternalSlotToken.scientificSeparator:\n results.push({\n type: 'exponentSeparator',\n value: ild.symbols.exponential,\n });\n break;\n case InternalSlotToken.scientificExponent: {\n if (exponent < 0) {\n results.push({\n type: 'exponentMinusSign',\n value: ild.symbols.minusSign,\n });\n exponent = -exponent;\n }\n var exponentResult = toRawFixed(exponent, 0, 0);\n results.push({\n type: 'exponentInteger',\n value: exponentResult.formattedString,\n });\n break;\n }\n case InternalSlotToken.percentSign:\n results.push({\n type: 'percentSign',\n value: ild.symbols.percentSign,\n });\n break;\n case InternalSlotToken.unitSymbol:\n case InternalSlotToken.unitNarrowSymbol:\n case InternalSlotToken.unitName: {\n var style = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'style');\n if (style === 'unit') {\n var unit = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'unit');\n var unitSymbols = ild.unitSymbols[unit];\n var mu = selectPlural(pl, x, unitSymbols[part.type])[unitSymbolChunkIndex];\n results.push({ type: 'unit', value: mu });\n unitSymbolChunkIndex++;\n }\n break;\n }\n case InternalSlotToken.currencyCode: {\n var currency = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'currency');\n results.push({ type: 'currency', value: currency });\n break;\n }\n case InternalSlotToken.currencySymbol: {\n var currency = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'currency');\n results.push({\n type: 'currency',\n value: ild.currencySymbols[currency].currencySymbol || currency,\n });\n break;\n }\n case InternalSlotToken.currencyNarrowSymbol: {\n var currency = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'currency');\n results.push({\n type: 'currency',\n value: ild.currencySymbols[currency].currencyNarrowSymbol || currency,\n });\n break;\n }\n case InternalSlotToken.currencyName: {\n var currency = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'currency');\n var cd = selectPlural(pl, x, ild.currencySymbols[currency].currencyName);\n results.push({ type: 'currency', value: cd });\n break;\n }\n default:\n throw Error(\"unrecognized pattern part \\\"\" + part.type + \"\\\" in \\\"\" + pattern + \"\\\"\");\n }\n }\n return results;\n}\nfunction formatNumericToParts(numberFormat, x) {\n return partitionNumberPattern(numberFormat, x);\n}\nexport var UnifiedNumberFormat = function NumberFormat(locales, options) {\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n if (!this || !(this instanceof UnifiedNumberFormat)) {\n return new UnifiedNumberFormat(locales, options);\n }\n initializeNumberFormat(this, locales, options);\n var ildData = UnifiedNumberFormat.localeData[removeUnicodeExtensionFromLocale(getInternalSlot(__INTERNAL_SLOT_MAP__, this, 'locale'))];\n setMultiInternalSlots(__INTERNAL_SLOT_MAP__, this, {\n pl: new Intl.PluralRules(locales, getMultiInternalSlots(__INTERNAL_SLOT_MAP__, this, 'minimumFractionDigits', 'maximumFractionDigits', 'minimumIntegerDigits', 'minimumSignificantDigits', 'maximumSignificantDigits', 'roundingType', 'notation')),\n patterns: new Patterns(ildData.units, ildData.currencies, ildData.numbers, getInternalSlot(__INTERNAL_SLOT_MAP__, this, 'numberingSystem'), getInternalSlot(__INTERNAL_SLOT_MAP__, this, 'unit'), getInternalSlot(__INTERNAL_SLOT_MAP__, this, 'currency'), getInternalSlot(__INTERNAL_SLOT_MAP__, this, 'currencySign')),\n });\n};\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nfunction defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\ndefineProperty(UnifiedNumberFormat.prototype, 'formatToParts', {\n value: function formatToParts(x) {\n return formatNumericToParts(this, toNumeric(x));\n },\n});\ndefineProperty(UnifiedNumberFormat.prototype, 'resolvedOptions', {\n value: function resolvedOptions() {\n var slots = getMultiInternalSlots.apply(void 0, __spreadArrays([__INTERNAL_SLOT_MAP__,\n this], RESOLVED_OPTIONS_KEYS));\n var ro = {};\n for (var _i = 0, RESOLVED_OPTIONS_KEYS_1 = RESOLVED_OPTIONS_KEYS; _i < RESOLVED_OPTIONS_KEYS_1.length; _i++) {\n var key = RESOLVED_OPTIONS_KEYS_1[_i];\n var value = slots[key];\n if (value !== undefined) {\n ro[key] = value;\n }\n }\n return ro;\n },\n});\nvar formatDescriptor = {\n enumerable: false,\n configurable: true,\n get: function () {\n if (typeof this !== 'object' || !(this instanceof UnifiedNumberFormat)) {\n throw TypeError('Intl.NumberFormat format property accessor called on imcompatible receiver');\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var numberFormat = this;\n var boundFormat = getInternalSlot(__INTERNAL_SLOT_MAP__, this, 'boundFormat');\n if (boundFormat === undefined) {\n // https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_diff_out.html#sec-number-format-functions\n boundFormat = function (value) {\n // TODO: check bigint\n var x = toNumeric(value);\n return numberFormat\n .formatToParts(x)\n .map(function (x) { return x.value; })\n .join('');\n };\n // https://github.com/tc39/test262/blob/master/test/intl402/NumberFormat/prototype/format/format-function-name.js\n Object.defineProperty(boundFormat, 'name', {\n configurable: true,\n enumerable: false,\n writable: false,\n value: '',\n });\n setInternalSlot(__INTERNAL_SLOT_MAP__, this, 'boundFormat', boundFormat);\n }\n return boundFormat;\n },\n};\n// https://github.com/tc39/test262/blob/master/test/intl402/NumberFormat/prototype/format/name.js\nObject.defineProperty(formatDescriptor.get, 'name', {\n configurable: true,\n enumerable: false,\n writable: false,\n value: 'get format',\n});\nObject.defineProperty(UnifiedNumberFormat.prototype, 'format', formatDescriptor);\n// Static properties\ndefineProperty(UnifiedNumberFormat, 'supportedLocalesOf', {\n value: function supportedLocalesOf(locales, options) {\n return supportedLocales(UnifiedNumberFormat.availableLocales, getCanonicalLocales(locales), options);\n },\n});\nUnifiedNumberFormat.__addLocaleData = function __addLocaleData() {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var datum = data_1[_a];\n var availableLocales = Object.keys(__spreadArrays(datum.availableLocales, Object.keys(datum.aliases), Object.keys(datum.parentLocales)).reduce(function (all, k) {\n all[k] = true;\n return all;\n }, {}));\n for (var _b = 0, availableLocales_1 = availableLocales; _b < availableLocales_1.length; _b++) {\n var locale = availableLocales_1[_b];\n try {\n UnifiedNumberFormat.localeData[locale] = unpackData(locale, datum);\n }\n catch (e) {\n // Ignore if we got no data\n }\n }\n }\n UnifiedNumberFormat.availableLocales = Object.keys(UnifiedNumberFormat.localeData);\n if (!UnifiedNumberFormat.__defaultLocale) {\n UnifiedNumberFormat.__defaultLocale =\n UnifiedNumberFormat.availableLocales[0];\n }\n};\nUnifiedNumberFormat.__defaultLocale = 'en';\nUnifiedNumberFormat.localeData = {};\nUnifiedNumberFormat.availableLocales = [];\nUnifiedNumberFormat.getDefaultLocale = function () {\n return UnifiedNumberFormat.__defaultLocale;\n};\nUnifiedNumberFormat.polyfilled = true;\nfunction setNumberFormatUnitOptions(nf, options) {\n if (options === void 0) { options = Object.create(null); }\n // https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_proposed_out.html#sec-setnumberformatunitoptions\n var style = getOption(options, 'style', 'string', ['decimal', 'percent', 'currency', 'unit'], 'decimal');\n setInternalSlot(__INTERNAL_SLOT_MAP__, nf, 'style', style);\n var currency = getOption(options, 'currency', 'string', undefined, undefined);\n if (currency !== undefined && !isWellFormedCurrencyCode(currency)) {\n throw RangeError('Malformed currency code');\n }\n var currencyDisplay = getOption(options, 'currencyDisplay', 'string', ['code', 'symbol', 'narrowSymbol', 'name'], 'symbol');\n var currencySign = getOption(options, 'currencySign', 'string', ['standard', 'accounting'], 'standard');\n var unit = getOption(options, 'unit', 'string', undefined, undefined);\n if (unit !== undefined && !isWellFormedUnitIdentifier(unit)) {\n throw RangeError('Invalid unit argument for Intl.NumberFormat()');\n }\n var unitDisplay = getOption(options, 'unitDisplay', 'string', ['short', 'narrow', 'long'], 'short');\n if (style === 'currency') {\n if (currency === undefined) {\n throw new TypeError('currency cannot be undefined');\n }\n setMultiInternalSlots(__INTERNAL_SLOT_MAP__, nf, {\n currency: currency.toUpperCase(),\n currencyDisplay: currencyDisplay,\n currencySign: currencySign,\n });\n }\n else if (style === 'unit') {\n if (unit === undefined) {\n throw new TypeError('unit cannot be undefined');\n }\n setMultiInternalSlots(__INTERNAL_SLOT_MAP__, nf, {\n unit: unit,\n unitDisplay: unitDisplay,\n });\n }\n}\n// Taking the shortcut here and used the native NumberFormat for formatting numbers.\nfunction formatNumberToString(numberFormat, x) {\n var isNegative = x < 0 || objectIs(x, -0);\n if (isNegative) {\n x = -x;\n }\n var _a = getMultiInternalSlots(__INTERNAL_SLOT_MAP__, numberFormat, 'roundingType', 'minimumFractionDigits', 'maximumFractionDigits', 'minimumIntegerDigits', 'minimumSignificantDigits', 'maximumSignificantDigits'), roundingType = _a.roundingType, minimumSignificantDigits = _a.minimumSignificantDigits, maximumSignificantDigits = _a.maximumSignificantDigits, minimumFractionDigits = _a.minimumFractionDigits, maximumFractionDigits = _a.maximumFractionDigits, minimumIntegerDigits = _a.minimumIntegerDigits;\n var result;\n if (roundingType === 'significantDigits') {\n result = toRawPrecision(x, minimumSignificantDigits, maximumSignificantDigits);\n }\n else if (roundingType === 'fractionDigits') {\n result = toRawFixed(x, minimumFractionDigits, maximumFractionDigits);\n }\n else {\n invariant(roundingType === 'compactRounding', 'roundingType must be compactRounding');\n result = toRawPrecision(x, 1, 2);\n if (result.integerDigitsCount > 1) {\n result = toRawFixed(x, 0, 0);\n }\n }\n x = result.roundedNumber;\n var string = result.formattedString;\n var int = result.integerDigitsCount;\n var minInteger = minimumIntegerDigits;\n if (int < minInteger) {\n var forwardZeros = repeat('0', minInteger - int);\n string = forwardZeros + string;\n }\n if (isNegative) {\n x = -x;\n }\n return { roundedNumber: x, formattedString: string };\n}\n/**\n * The abstract operation ComputeExponent computes an exponent (power of ten) by which to scale x\n * according to the number formatting settings. It handles cases such as 999 rounding up to 1000,\n * requiring a different exponent.\n */\nfunction computeExponent(numberFormat, x) {\n if (x === 0) {\n return 0;\n }\n if (x < 0) {\n x = -x;\n }\n var magnitude = getMagnitude(x);\n var exponent = computeExponentForMagnitude(numberFormat, magnitude);\n x = x / Math.pow(10, exponent); // potential IEEE floating point error\n var formatNumberResult = formatNumberToString(numberFormat, x);\n if (formatNumberResult.roundedNumber === 0) {\n return exponent;\n }\n var newMagnitude = getMagnitude(x);\n if (newMagnitude === magnitude - exponent) {\n return exponent;\n }\n return computeExponentForMagnitude(numberFormat, magnitude + 1);\n}\n/**\n * The abstract operation ComputeExponentForMagnitude computes an exponent by which to scale a\n * number of the given magnitude (power of ten of the most significant digit) according to the\n * locale and the desired notation (scientific, engineering, or compact).\n */\nfunction computeExponentForMagnitude(numberFormat, magnitude) {\n var _a;\n var notation = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'notation');\n var style = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'style');\n var ild = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'ild');\n switch (notation) {\n case 'standard':\n return 0;\n case 'scientific':\n return magnitude;\n case 'engineering':\n return Math.floor(magnitude / 3) * 3;\n case 'compact': {\n var compactDisplay = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'compactDisplay');\n var currencyDisplay = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'currencyDisplay');\n var thresholdMap = void 0;\n if (style === 'currency' && currencyDisplay !== 'name') {\n thresholdMap =\n (compactDisplay === 'long'\n ? ild.currency.compactLong\n : ild.currency.compactShort) || ild.currency.compactShort;\n }\n else {\n thresholdMap =\n compactDisplay === 'long'\n ? ild.decimal.compactLong\n : ild.decimal.compactShort;\n }\n if (!thresholdMap) {\n return 0;\n }\n var num = String(Math.pow(10, magnitude));\n var thresholds = Object.keys(thresholdMap); // TODO: this can be pre-processed\n if (!((_a = thresholdMap[num]) === null || _a === void 0 ? void 0 : _a.other)) {\n return 0;\n }\n if (num < thresholds[0]) {\n return 0;\n }\n if (num > thresholds[thresholds.length - 1]) {\n return getMagnitude(+thresholds[thresholds.length - 1]);\n }\n var i = thresholds.indexOf(num);\n for (; i > 0 &&\n thresholdMap[thresholds[i - 1]].other === thresholdMap[num].other; i--)\n ;\n return getMagnitude(+thresholds[i]);\n }\n }\n}\n/**\n * https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_proposed_out.html#sec-getnumberformatpattern\n *\n * The abstract operation GetNumberFormatPattern considers the resolved unit-related options in the\n * number format object along with the final scaled and rounded number being formatted and returns a\n * pattern, a String value as described in 1.3.3.\n */\nfunction getNumberFormatPattern(numberFormat, x, exponent) {\n var _a = getMultiInternalSlots(__INTERNAL_SLOT_MAP__, numberFormat, 'style', 'patterns', 'signDisplay', 'notation'), style = _a.style, slots = _a.patterns;\n var patterns;\n switch (style) {\n case 'percent':\n patterns = slots.percent;\n break;\n case 'unit': {\n var unitDisplay = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'unitDisplay');\n var unit = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'unit');\n patterns = slots.unit[unit][unitDisplay];\n break;\n }\n case 'currency': {\n var _b = getMultiInternalSlots(__INTERNAL_SLOT_MAP__, numberFormat, 'currency', 'currencyDisplay', 'currencySign'), currency = _b.currency, currencyDisplay = _b.currencyDisplay, currencySign = _b.currencySign;\n patterns = slots.currency[currency][currencyDisplay][currencySign];\n break;\n }\n case 'decimal':\n patterns = slots.decimal;\n break;\n }\n var notation = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'notation');\n var signDisplay = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'signDisplay');\n var signDisplayPattern = patterns[signDisplay];\n var signPattern;\n if (!isNaN(x) && isFinite(x)) {\n if (notation === 'scientific' || notation === 'engineering') {\n signPattern = signDisplayPattern.scientific;\n }\n else if (exponent !== 0) {\n invariant(notation === 'compact', 'notation must be compact');\n var compactDisplay = getInternalSlot(__INTERNAL_SLOT_MAP__, numberFormat, 'compactDisplay');\n var decimalNum = String(Math.pow(10, exponent));\n if (compactDisplay === 'short' && exponent > 2 && exponent < 15) {\n signPattern = signDisplayPattern.compactShort[decimalNum];\n }\n else if (exponent > 2 && exponent < 15) {\n invariant(compactDisplay === 'long', 'compactDisplay must be long');\n signPattern = signDisplayPattern.compactLong[decimalNum];\n }\n }\n }\n if (!signPattern) {\n signPattern = signDisplayPattern.standard;\n }\n var pattern;\n if (signDisplay === 'never') {\n pattern = signPattern.zeroPattern;\n }\n else if (signDisplay === 'auto') {\n if (objectIs(x, 0) || x > 0 || isNaN(x)) {\n pattern = signPattern.zeroPattern;\n }\n else {\n pattern = signPattern.negativePattern;\n }\n }\n else if (signDisplay === 'always') {\n if (objectIs(x, 0) || x > 0 || isNaN(x)) {\n pattern = signPattern.positivePattern;\n }\n else {\n pattern = signPattern.negativePattern;\n }\n }\n else {\n invariant(signDisplay === 'exceptZero', 'signDisplay must be exceptZero');\n if (objectIs(x, 0) || isNaN(x)) {\n pattern = signPattern.zeroPattern;\n }\n else if (x > 0 || objectIs(x, +0)) {\n pattern = signPattern.positivePattern;\n }\n else {\n pattern = signPattern.negativePattern;\n }\n }\n return pattern;\n}\nfunction selectPlural(pl, x, rules) {\n return rules[pl.select(x)] || rules.other;\n}\nfunction toNumeric(val) {\n if (typeof val === 'bigint') {\n return val;\n }\n return toNumber(val);\n}\nfunction toNumber(val) {\n if (val === undefined) {\n return NaN;\n }\n if (val === null) {\n return +0;\n }\n if (typeof val === 'boolean') {\n return val ? 1 : +0;\n }\n if (typeof val === 'number') {\n return val;\n }\n if (typeof val === 'symbol' || typeof val === 'bigint') {\n throw new TypeError('Cannot convert symbol/bigint to number');\n }\n return Number(val);\n}\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(UnifiedNumberFormat.prototype, Symbol.toStringTag, {\n configurable: true,\n enumerable: false,\n writable: false,\n value: 'Object',\n });\n }\n // https://github.com/tc39/test262/blob/master/test/intl402/NumberFormat/length.js\n Object.defineProperty(UnifiedNumberFormat.prototype.constructor, 'length', {\n configurable: true,\n enumerable: false,\n writable: false,\n value: 0,\n });\n // https://github.com/tc39/test262/blob/master/test/intl402/NumberFormat/supportedLocalesOf/length.js\n Object.defineProperty(UnifiedNumberFormat.supportedLocalesOf, 'length', {\n configurable: true,\n enumerable: false,\n writable: false,\n value: 1,\n });\n Object.defineProperty(UnifiedNumberFormat, 'prototype', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: UnifiedNumberFormat.prototype,\n });\n}\ncatch (e) {\n // Meta fix so we're test262-compliant, not important\n}\n//# sourceMappingURL=core.js.map"],"names":["this","__extends","invariant","numberingSystemNames","currencyDigits"],"mappings":"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"}