{"version":3,"file":"intl-messageformat-lwBscjQo.js","sources":["../../node_modules/intl-messageformat/lib/src/error.js","../../node_modules/intl-messageformat/lib/src/formatters.js","../../node_modules/intl-messageformat/lib/src/core.js"],"sourcesContent":["import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTagElement, isTimeElement, } from '@formatjs/icu-messageformat-parser';\nimport { ErrorCode, FormatError, InvalidValueError, InvalidValueTypeError, MissingValueError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n"],"names":["ErrorCode","FormatError","_super","__extends","msg","code","originalMessage","_this","InvalidValueError","variableId","value","options","InvalidValueTypeError","type","MissingValueError","PART_TYPE","mergeLiteral","parts","all","part","lastPart","isFormatXMLElementFn","el","formatToParts","els","locales","formatters","formats","values","currentPluralValue","isLiteralElement","result","_i","els_1","isPoundElement","varName","isArgumentElement","isDateElement","style","isDateTimeSkeleton","isTimeElement","isNumberElement","isNumberSkeleton","isTagElement","children","value_1","formatFn","chunks","p","c","isSelectElement","opt","isPluralElement","rule","mergeConfig","c1","c2","__assign","k","mergeConfigs","defaultConfig","configs","createFastMemoizeCache","store","key","createDefaultFormatters","cache","memoize","_a","args","__spreadArray","strategies","IntlMessageFormat","message","overrideFormats","opts","parseOpts","__rest","supportedLocales","parse"],"mappings":"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","x_google_ignoreList":[0,1,2]}