react-intl 3.9.3 → 3.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +34 -1
  2. package/dist/components/createFormattedComponent.d.ts +2 -1
  3. package/dist/components/createFormattedComponent.js +7 -2
  4. package/dist/components/html-message.js +1 -1
  5. package/dist/components/injectIntl.d.ts +1 -1
  6. package/dist/components/message.js +13 -4
  7. package/dist/components/plural.d.ts +1 -1
  8. package/dist/components/provider.js +14 -9
  9. package/dist/components/relative.js +3 -10
  10. package/dist/formatters/dateTime.js +2 -2
  11. package/dist/formatters/displayName.d.ts +2 -0
  12. package/dist/formatters/displayName.js +25 -0
  13. package/dist/formatters/message.d.ts +1 -0
  14. package/dist/formatters/message.js +19 -18
  15. package/dist/index.d.ts +7 -3
  16. package/dist/index.js +5 -2
  17. package/dist/react-intl.api.md +22 -5
  18. package/dist/react-intl.d.ts +64 -15
  19. package/dist/react-intl.js +5821 -5655
  20. package/dist/react-intl.js.map +1 -1
  21. package/dist/react-intl.min.js +1 -1
  22. package/dist/react-intl.min.js.map +1 -1
  23. package/dist/types.d.ts +6 -1
  24. package/dist/utils.d.ts +1 -1
  25. package/dist/utils.js +5 -7
  26. package/lib/components/createFormattedComponent.d.ts +2 -1
  27. package/lib/components/createFormattedComponent.js +7 -2
  28. package/lib/components/html-message.js +1 -1
  29. package/lib/components/injectIntl.d.ts +1 -1
  30. package/lib/components/message.js +5 -3
  31. package/lib/components/plural.d.ts +1 -1
  32. package/lib/components/provider.js +14 -9
  33. package/lib/components/relative.js +3 -10
  34. package/lib/formatters/dateTime.js +2 -2
  35. package/lib/formatters/displayName.d.ts +2 -0
  36. package/lib/formatters/displayName.js +22 -0
  37. package/lib/formatters/message.d.ts +1 -0
  38. package/lib/formatters/message.js +12 -18
  39. package/lib/index.d.ts +7 -3
  40. package/lib/index.js +4 -1
  41. package/lib/react-intl.d.ts +20 -7
  42. package/lib/tsdoc-metadata.json +1 -1
  43. package/lib/types.d.ts +6 -1
  44. package/lib/utils.d.ts +1 -1
  45. package/lib/utils.js +4 -6
  46. package/package.json +38 -39
  47. package/src/components/createFormattedComponent.tsx +5 -0
  48. package/src/components/provider.tsx +26 -11
  49. package/src/components/relative.tsx +6 -15
  50. package/src/formatters/displayName.ts +35 -0
  51. package/src/formatters/message.ts +13 -18
  52. package/src/index.ts +7 -1
  53. package/src/types.ts +16 -5
  54. package/src/utils.ts +5 -7
@@ -1 +1 @@
1
- {"version":3,"file":"react-intl.min.js","sources":["../node_modules/@formatjs/macro/dist/index.js","../node_modules/intl-messageformat-parser/lib/types.js","../node_modules/intl-messageformat-parser/lib/parser.js","../node_modules/intl-messageformat-parser/lib/normalize.js","../node_modules/intl-messageformat-parser/lib/skeleton.js","../node_modules/intl-messageformat-parser/lib/index.js","../node_modules/intl-format-cache/lib/index.js","../node_modules/intl-messageformat/lib/formatters.js","../node_modules/intl-messageformat/lib/core.js","../node_modules/invariant/invariant.js","../lib/utils.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../lib/components/injectIntl.js","../lib/components/createFormattedComponent.js","../lib/formatters/number.js","../lib/formatters/relativeTime.js","../lib/formatters/dateTime.js","../lib/formatters/plural.js","../lib/formatters/message.js","../node_modules/shallow-equal/objects/index.js","../lib/formatters/list.js","../lib/components/provider.js","../node_modules/intl-locales-supported/lib/index.js","../lib/components/relative.js","../lib/components/plural.js","../lib/components/message.js","../lib/components/html-message.js","../lib/index.js","../lib/components/useIntl.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction _(msg) {\n return msg;\n}\nexports._ = _;\nfunction defineMessages(msgs) {\n return msgs;\n}\nexports.defineMessages = defineMessages;\n//# sourceMappingURL=index.js.map","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n})(TYPE || (TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 0 /* number */);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 1 /* dateTime */);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// tslint:disable:only-arrow-functions\n// tslint:disable:object-literal-shorthand\n// tslint:disable:trailing-comma\n// tslint:disable:object-literal-sort-keys\n// tslint:disable:one-variable-per-declaration\n// tslint:disable:max-line-length\n// tslint:disable:no-consecutive-blank-lines\n// tslint:disable:align\nvar __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};\n// Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.2.6 )\n//\n// https://pegjs.org/ https://github.com/metadevpro/ts-pegjs\nimport { TYPE, } from './types';\nvar SyntaxError = /** @class */ (function (_super) {\n __extends(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\nexport { SyntaxError };\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = function (parts) {\n return parts.join('');\n };\n var peg$c1 = function (messageText) {\n return __assign({ type: TYPE.literal, value: messageText }, insertLocation());\n };\n var peg$c2 = peg$otherExpectation(\"argumentElement\");\n var peg$c3 = \"{\";\n var peg$c4 = peg$literalExpectation(\"{\", false);\n var peg$c5 = \"}\";\n var peg$c6 = peg$literalExpectation(\"}\", false);\n var peg$c7 = function (value) {\n return __assign({ type: TYPE.argument, value: value }, insertLocation());\n };\n var peg$c8 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c9 = /^['\\/{}]/;\n var peg$c10 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c11 = peg$anyExpectation();\n var peg$c12 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c13 = \"/\";\n var peg$c14 = peg$literalExpectation(\"/\", false);\n var peg$c15 = function (option) { return option; };\n var peg$c16 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c17 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c18 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c19 = \"::\";\n var peg$c20 = peg$literalExpectation(\"::\", false);\n var peg$c21 = function (skeleton) { return skeleton; };\n var peg$c22 = function (style) { return style.replace(/\\s*$/, ''); };\n var peg$c23 = \",\";\n var peg$c24 = peg$literalExpectation(\",\", false);\n var peg$c25 = \"number\";\n var peg$c26 = peg$literalExpectation(\"number\", false);\n var peg$c27 = function (value, type, style) {\n return __assign({ type: type === 'number' ? TYPE.number : type === 'date' ? TYPE.date : TYPE.time, style: style && style[2], value: value }, insertLocation());\n };\n var peg$c28 = \"'\";\n var peg$c29 = peg$literalExpectation(\"'\", false);\n var peg$c30 = /^[^']/;\n var peg$c31 = peg$classExpectation([\"'\"], true, false);\n var peg$c32 = /^[^a-zA-Z'{}]/;\n var peg$c33 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c34 = /^[a-zA-Z]/;\n var peg$c35 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c36 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c37 = \"date\";\n var peg$c38 = peg$literalExpectation(\"date\", false);\n var peg$c39 = \"time\";\n var peg$c40 = peg$literalExpectation(\"time\", false);\n var peg$c41 = \"plural\";\n var peg$c42 = peg$literalExpectation(\"plural\", false);\n var peg$c43 = \"selectordinal\";\n var peg$c44 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c45 = \"offset:\";\n var peg$c46 = peg$literalExpectation(\"offset:\", false);\n var peg$c47 = function (value, pluralType, offset, options) {\n return __assign({ type: TYPE.plural, pluralType: pluralType === 'plural' ? 'cardinal' : 'ordinal', value: value, offset: offset ? offset[2] : 0, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in plural element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c48 = \"select\";\n var peg$c49 = peg$literalExpectation(\"select\", false);\n var peg$c50 = function (value, options) {\n return __assign({ type: TYPE.select, value: value, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in select element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c51 = \"=\";\n var peg$c52 = peg$literalExpectation(\"=\", false);\n var peg$c53 = function (id, value) {\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c54 = function (id, value) {\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c55 = peg$otherExpectation(\"whitespace pattern\");\n var peg$c56 = /^[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n var peg$c57 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\u200E\", \"\\u200F\", \"\\u2028\", \"\\u2029\"], false, false);\n var peg$c58 = peg$otherExpectation(\"syntax pattern\");\n var peg$c59 = /^[!-\\/:-@[-\\^`{-~\\xA1-\\xA7\\xA9\\xAB\\xAC\\xAE\\xB0\\xB1\\xB6\\xBB\\xBF\\xD7\\xF7\\u2010-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u245F\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3020\\u3030\\uFD3E\\uFD3F\\uFE45\\uFE46]/;\n var peg$c60 = peg$classExpectation([[\"!\", \"/\"], [\":\", \"@\"], [\"[\", \"^\"], \"`\", [\"{\", \"~\"], [\"\\xA1\", \"\\xA7\"], \"\\xA9\", \"\\xAB\", \"\\xAC\", \"\\xAE\", \"\\xB0\", \"\\xB1\", \"\\xB6\", \"\\xBB\", \"\\xBF\", \"\\xD7\", \"\\xF7\", [\"\\u2010\", \"\\u2027\"], [\"\\u2030\", \"\\u203E\"], [\"\\u2041\", \"\\u2053\"], [\"\\u2055\", \"\\u205E\"], [\"\\u2190\", \"\\u245F\"], [\"\\u2500\", \"\\u2775\"], [\"\\u2794\", \"\\u2BFF\"], [\"\\u2E00\", \"\\u2E7F\"], [\"\\u3001\", \"\\u3003\"], [\"\\u3008\", \"\\u3020\"], \"\\u3030\", \"\\uFD3E\", \"\\uFD3F\", \"\\uFE45\", \"\\uFE46\"], false, false);\n var peg$c61 = peg$otherExpectation(\"optional whitespace\");\n var peg$c62 = peg$otherExpectation(\"number\");\n var peg$c63 = \"-\";\n var peg$c64 = peg$literalExpectation(\"-\", false);\n var peg$c65 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c66 = peg$otherExpectation(\"apostrophe\");\n var peg$c67 = peg$otherExpectation(\"double apostrophes\");\n var peg$c68 = \"''\";\n var peg$c69 = peg$literalExpectation(\"''\", false);\n var peg$c70 = function () { return \"'\"; };\n var peg$c71 = /^[{}]/;\n var peg$c72 = peg$classExpectation([\"{\", \"}\"], false, false);\n var peg$c73 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c74 = /^[^{}]/;\n var peg$c75 = peg$classExpectation([\"{\", \"}\"], true, false);\n var peg$c76 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c77 = peg$otherExpectation(\"argNumber\");\n var peg$c78 = \"0\";\n var peg$c79 = peg$literalExpectation(\"0\", false);\n var peg$c80 = function () { return 0; };\n var peg$c81 = /^[1-9]/;\n var peg$c82 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c83 = /^[0-9]/;\n var peg$c84 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c85 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c86 = peg$otherExpectation(\"argName\");\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessage();\n return s0;\n }\n function peg$parsemessage() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsemessageElement();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemessageElement();\n }\n return s0;\n }\n function peg$parsemessageElement() {\n var s0;\n s0 = peg$parseliteralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesimpleFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectElement();\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemessageText() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseliteralElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c3;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s5 = peg$c5;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c7(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c2);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonId() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsepatternWhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c9.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c10);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsepatternWhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c9.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c10);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c8);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonTokenOption() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c13;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c15(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c12);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonToken() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenumberSkeletonTokenOption();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenumberSkeletonTokenOption();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c17(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c16);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeleton() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsenumberSkeletonToken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsenumberSkeletonToken();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsenumberArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c20);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c22(s1);\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsenumberFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c3;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c23;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c25) {\n s7 = peg$c25;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c26);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c23;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsenumberArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c5;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c27(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonLiteral() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c28;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c29);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c30.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c31);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c30.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c31);\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c28;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c29);\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = [];\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c32.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c32.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonPattern() {\n var s0, s1;\n s0 = [];\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeleton() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n }\n else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c36(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsedateOrTimeArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c20);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c22(s1);\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsedateOrTimeFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c3;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c23;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c37) {\n s7 = peg$c37;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c38);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c39) {\n s7 = peg$c39;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c40);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c23;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsedateOrTimeArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c5;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c27(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesimpleFormatElement() {\n var s0;\n s0 = peg$parsenumberFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedateOrTimeFormatElement();\n }\n return s0;\n }\n function peg$parsepluralElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c3;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c23;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c41) {\n s7 = peg$c41;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c42);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c43) {\n s7 = peg$c43;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c23;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c45) {\n s12 = peg$c45;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c46);\n }\n }\n if (s12 !== peg$FAILED) {\n s13 = peg$parse_();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsenumber();\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n if (s11 === peg$FAILED) {\n s11 = null;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n s13 = [];\n s14 = peg$parsepluralOption();\n if (s14 !== peg$FAILED) {\n while (s14 !== peg$FAILED) {\n s13.push(s14);\n s14 = peg$parsepluralOption();\n }\n }\n else {\n s13 = peg$FAILED;\n }\n if (s13 !== peg$FAILED) {\n s14 = peg$parse_();\n if (s14 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s15 = peg$c5;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c47(s3, s7, s11, s13);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseselectElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c3;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c23;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c48) {\n s7 = peg$c48;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c23;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = [];\n s12 = peg$parseselectOption();\n if (s12 !== peg$FAILED) {\n while (s12 !== peg$FAILED) {\n s11.push(s12);\n s12 = peg$parseselectOption();\n }\n }\n else {\n s11 = peg$FAILED;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s13 = peg$c5;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c50(s3, s11);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralRuleSelectValue() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c51;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c52);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseargName();\n }\n return s0;\n }\n function peg$parseselectOption() {\n var s0, s1, s2, s3, s4, s5, s6;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c3;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemessage();\n if (s5 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s6 = peg$c5;\n peg$currPos++;\n }\n else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n if (s6 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c53(s2, s5);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralOption() {\n var s0, s1, s2, s3, s4, s5, s6;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepluralRuleSelectValue();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c3;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemessage();\n if (s5 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s6 = peg$c5;\n peg$currPos++;\n }\n else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n if (s6 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c54(s2, s5);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepatternWhiteSpace() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c56.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c57);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c55);\n }\n }\n return s0;\n }\n function peg$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c59.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c60);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c58);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsepatternWhiteSpace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsepatternWhiteSpace();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c61);\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c63;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c65(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n return s0;\n }\n function peg$parseapostrophe() {\n var s0, s1;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c28;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c29);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c66);\n }\n }\n return s0;\n }\n function peg$parsedoubleApostrophes() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c68) {\n s1 = peg$c68;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c70();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n return s0;\n }\n function peg$parsequotedString() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c28;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c29);\n }\n }\n if (s1 !== peg$FAILED) {\n if (peg$c71.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c72);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n if (input.substr(peg$currPos, 2) === peg$c68) {\n s5 = peg$c68;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c30.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c31);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c68) {\n s5 = peg$c68;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c30.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c31);\n }\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n }\n else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s4 = peg$c28;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c29);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c73(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseunquotedString() {\n var s0, s1;\n s0 = peg$currPos;\n if (peg$c74.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c75);\n }\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargNameOrNumber() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parseargName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n return s0;\n }\n function peg$parseargNumber() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c78;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c79);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c80();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c81.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c82);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c83.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c83.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c85(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c77);\n }\n }\n return s0;\n }\n function peg$parseargName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsepatternWhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsepatternWhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n return s0;\n }\n function insertLocation() {\n return options && options.captureLocation ? {\n location: location()\n } : {};\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nexport var pegParse = peg$parse;\n","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 { isPluralElement, isLiteralElement, isSelectElement, } from './types';\nimport { pegParse } from './parser';\nvar PLURAL_HASHTAG_REGEX = /(^|[^\\\\])#/g;\n/**\n * Whether to convert `#` in plural rule options\n * to `{var, number}`\n * @param el AST Element\n * @param pluralStack current plural stack\n */\nexport function normalizeHashtagInPlural(els) {\n els.forEach(function (el) {\n // If we're encountering a plural el\n if (!isPluralElement(el) && !isSelectElement(el)) {\n return;\n }\n // Go down the options and search for # in any literal element\n Object.keys(el.options).forEach(function (id) {\n var _a;\n var opt = el.options[id];\n // If we got a match, we have to split this\n // and inject a NumberElement in the middle\n var matchingLiteralElIndex = -1;\n var literalEl = undefined;\n for (var i = 0; i < opt.value.length; i++) {\n var el_1 = opt.value[i];\n if (isLiteralElement(el_1) && PLURAL_HASHTAG_REGEX.test(el_1.value)) {\n matchingLiteralElIndex = i;\n literalEl = el_1;\n break;\n }\n }\n if (literalEl) {\n var newValue = literalEl.value.replace(PLURAL_HASHTAG_REGEX, \"$1{\" + el.value + \", number}\");\n var newEls = pegParse(newValue);\n (_a = opt.value).splice.apply(_a, __spreadArrays([matchingLiteralElIndex, 1], newEls));\n }\n normalizeHashtagInPlural(opt.value);\n });\n });\n}\n","var __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};\n/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) pattenrs are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) pattenrs are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\+|#+)?)?$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function convertNumberSkeletonToNumberFormatOptions(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n result.style = 'percent';\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n }\n // Precision\n // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#fraction-precision\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (match, g1, g2) {\n // precision-integer case\n if (match === '.') {\n result.maximumFractionDigits = 0;\n }\n // .000+ case\n else if (g2 === '+') {\n result.minimumFractionDigits = g2.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumFractionDigits = g1.length;\n }\n // .00## or .000 case\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n }\n return result;\n}\n","import { pegParse } from './parser';\nimport { normalizeHashtagInPlural } from './normalize';\nexport * from './types';\nexport * from './parser';\nexport * from './skeleton';\nexport function parse(input, opts) {\n var els = pegParse(input, opts);\n if (!opts || opts.normalizeHashtagInPlural !== false) {\n normalizeHashtagInPlural(els);\n }\n return els;\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*/\nvar __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};\n// -- Utilities ----------------------------------------------------------------\nfunction getCacheId(inputs) {\n return JSON.stringify(inputs.map(function (input) {\n return input && typeof input === 'object' ? orderedProps(input) : input;\n }));\n}\nfunction orderedProps(obj) {\n return Object.keys(obj)\n .sort()\n .map(function (k) {\n var _a;\n return (_a = {}, _a[k] = obj[k], _a);\n });\n}\nvar memoizeFormatConstructor = function (FormatConstructor, cache) {\n if (cache === void 0) { cache = {}; }\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n if (!format) {\n format = new ((_a = FormatConstructor).bind.apply(_a, __spreadArrays([void 0], args)))();\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n return format;\n };\n};\nexport default memoizeFormatConstructor;\n","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 __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 { convertNumberSkeletonToNumberFormatOptions, isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTimeElement, parseDateTimeSkeleton, } from 'intl-messageformat-parser';\nvar ESCAPE_HASH_REGEX = /\\\\#/g;\nvar PLURAL_HASH = /(^|[^\\\\])#/g;\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, variableId) {\n var _this = _super.call(this, msg) || this;\n _this.variableId = variableId;\n return _this;\n }\n return FormatError;\n}(Error));\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 !== 0 /* literal */ ||\n part.type !== 0 /* literal */) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\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 var value = els[0].value;\n if (typeof currentPluralValue === 'number') {\n value = value.replace(PLURAL_HASH, '$1' + formatters.getNumberFormat(locales).format(currentPluralValue));\n }\n return [\n {\n type: 0 /* literal */,\n value: value.replace(ESCAPE_HASH_REGEX, '#'),\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 var value_1 = el.value;\n if (typeof currentPluralValue === 'number') {\n value_1 = value_1.replace(PLURAL_HASH, '$1' + formatters.getNumberFormat(locales).format(currentPluralValue));\n }\n result.push({\n type: 0 /* literal */,\n value: value_1.replace(ESCAPE_HASH_REGEX, '#'),\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 FormatError(\"The intl string context variable \\\"\" + varName + \"\\\" was not provided to the string \\\"\" + 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: 1 /* argument */,\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' ? formats.date[el.style] : undefined;\n result.push({\n type: 0 /* 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 ? parseDateTimeSkeleton(el.style.pattern)\n : undefined;\n result.push({\n type: 0 /* 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 ? convertNumberSkeletonToNumberFormatOptions(el.style.tokens)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\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[\"=\" + 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\");\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 RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\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}\nexport function formatToString(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n return parts.reduce(function (all, part) { return (all += part.value); }, '');\n}\n// Singleton\nvar domParser;\nvar TOKEN_DELIMITER = '@@';\nvar TOKEN_REGEX = /@@(\\d+_\\d+)@@/g;\nvar counter = 0;\nfunction generateId() {\n return Date.now() + \"_\" + ++counter;\n}\nfunction restoreRichPlaceholderMessage(text, objectParts) {\n return text\n .split(TOKEN_REGEX)\n .filter(Boolean)\n .map(function (c) { return (objectParts[c] != null ? objectParts[c] : c); })\n .reduce(function (all, c) {\n if (!all.length) {\n all.push(c);\n }\n else if (typeof c === 'string' &&\n typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += c;\n }\n else {\n all.push(c);\n }\n return all;\n }, []);\n}\n/**\n * Not exhaustive, just for sanity check\n */\nvar SIMPLE_XML_REGEX = /(<([0-9a-zA-Z-_]*?)>(.*?)<\\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\\/>)/;\nvar TEMPLATE_ID = Date.now() + '@@';\nvar VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\nfunction formatHTMLElement(el, objectParts, values) {\n var tagName = el.tagName;\n var outerHTML = el.outerHTML, textContent = el.textContent, childNodes = el.childNodes;\n // Regular text\n if (!tagName) {\n return restoreRichPlaceholderMessage(textContent || '', objectParts);\n }\n tagName = tagName.toLowerCase();\n var isVoidElement = ~VOID_ELEMENTS.indexOf(tagName);\n var formatFnOrValue = values[tagName];\n if (formatFnOrValue && isVoidElement) {\n throw new FormatError(tagName + \" is a self-closing tag and can not be used, please use another tag name.\");\n }\n if (!childNodes.length) {\n return [outerHTML];\n }\n var chunks = Array.prototype.slice.call(childNodes).reduce(function (all, child) {\n return all.concat(formatHTMLElement(child, objectParts, values));\n }, []);\n // Legacy HTML\n if (!formatFnOrValue) {\n return __spreadArrays([\"<\" + tagName + \">\"], chunks, [\"</\" + tagName + \">\"]);\n }\n // HTML Tag replacement\n if (typeof formatFnOrValue === 'function') {\n return [formatFnOrValue.apply(void 0, chunks)];\n }\n return [formatFnOrValue];\n}\nexport function formatHTMLMessage(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n var objectParts = {};\n var formattedMessage = parts.reduce(function (all, part) {\n if (part.type === 0 /* literal */) {\n return (all += part.value);\n }\n var id = generateId();\n objectParts[id] = part.value;\n return (all += \"\" + TOKEN_DELIMITER + id + TOKEN_DELIMITER);\n }, '');\n // Not designed to filter out aggressively\n if (!SIMPLE_XML_REGEX.test(formattedMessage)) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n if (!values) {\n throw new FormatError('Message has placeholders but no values was given');\n }\n if (typeof DOMParser === 'undefined') {\n throw new FormatError('Cannot format XML message without DOMParser');\n }\n if (!domParser) {\n domParser = new DOMParser();\n }\n var content = domParser\n .parseFromString(\"<formatted-message id=\\\"\" + TEMPLATE_ID + \"\\\">\" + formattedMessage + \"</formatted-message>\", 'text/html')\n .getElementById(TEMPLATE_ID);\n if (!content) {\n throw new FormatError(\"Malformed HTML message \" + formattedMessage);\n }\n var tagsToFormat = Object.keys(values).filter(function (varName) { return !!content.getElementsByTagName(varName).length; });\n // No tags to format\n if (!tagsToFormat.length) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n var caseSensitiveTags = tagsToFormat.filter(function (tagName) { return tagName !== tagName.toLowerCase(); });\n if (caseSensitiveTags.length) {\n throw new FormatError(\"HTML tag must be lowercased but the following tags are not: \" + caseSensitiveTags.join(', '));\n }\n // We're doing this since top node is `<formatted-message/>` which does not have a formatter\n return Array.prototype.slice\n .call(content.childNodes)\n .reduce(function (all, child) { return all.concat(formatHTMLElement(child, objectParts, values)); }, []);\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*/\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 { parse } from 'intl-messageformat-parser';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { formatToString, formatToParts, formatHTMLMessage, } 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}\nexport function createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n return formatToString(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.formatHTMLMessage = function (values) {\n return formatHTMLMessage(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\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 // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n normalizeHashtagInPlural: false,\n });\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 // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n IntlMessageFormat.defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\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 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 };\nexport default IntlMessageFormat;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar NODE_ENV = process.env.NODE_ENV;\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\nimport * as React from 'react';\nimport IntlMessageFormat from 'intl-messageformat';\nimport memoizeIntlConstructor from 'intl-format-cache';\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nimport * as invariant_ from 'invariant';\nconst invariant = invariant_.default || invariant_;\nconst ESCAPED_CHARS = {\n 38: '&amp;',\n 62: '&gt;',\n 60: '&lt;',\n 34: '&quot;',\n 39: '&#x27;',\n};\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, match => ESCAPED_CHARS[match.charCodeAt(0)]);\n}\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport function createError(message, exception) {\n const eMsg = exception ? `\\n${exception.stack}` : '';\n return `[React Intl] ${message}${eMsg}`;\n}\nexport function defaultErrorHandler(error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n}\nexport const DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n textComponent: React.Fragment,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache = createIntlCache()) {\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n const ListFormat = Intl.ListFormat;\n return {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat, cache.message),\n getRelativeTimeFormat: memoizeIntlConstructor(RelativeTimeFormat, cache.relativeTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n getListFormat: memoizeIntlConstructor(ListFormat, cache.list),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n const formatType = formats && formats[type];\n let format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(createError(`No ${type} format named: ${name}`));\n}\n","/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import * as React from 'react';\nimport * as hoistNonReactStatics_ from 'hoist-non-react-statics';\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nconst hoistNonReactStatics = hoistNonReactStatics_.default || hoistNonReactStatics_;\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nconst IntlContext = React.createContext(null);\nconst { Consumer: IntlConsumer, Provider: IntlProvider } = IntlContext;\nexport const Provider = IntlProvider;\nexport const Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n const { intlPropName = 'intl', forwardRef = false, enforceContext = true } = options || {};\n const WithIntl = props => (React.createElement(IntlConsumer, null, (intl) => {\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n return (React.createElement(WrappedComponent, Object.assign({}, props, {\n [intlPropName]: intl,\n }, { ref: forwardRef ? props.forwardedRef : null })));\n }));\n WithIntl.displayName = `injectIntl(${getDisplayName(WrappedComponent)})`;\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef((props, ref) => (React.createElement(WithIntl, Object.assign({}, props, { forwardedRef: ref })))), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport const FormattedNumberParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n}));\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n const ComponentParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n const formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n }));\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n const Component = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n const formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n const Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n }));\n Component.displayName = DisplayName[name];\n return Component;\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst NUMBER_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // Unified NumberFormat (Stage 3 as of 10/22/19)\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter({ locale, formats, onError, }, getNumberFormat, options = {}) {\n const { format } = options;\n const defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n const filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst RELATIVE_TIME_FORMAT_OPTIONS = [\n 'numeric',\n 'style',\n];\nfunction getFormatter({ locale, formats, onError, }, getRelativeTimeFormat, options = {}) {\n const { format } = options;\n const defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n const filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options = {}) {\n if (!unit) {\n unit = 'second';\n }\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(createError(`Intl.RelativeTimeFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-relativetimeformat\"\n`));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(createError('Error formatting relative time.', e));\n }\n return String(value);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { createError, filterProps, getNamedFormat } from '../utils';\nconst DATE_TIME_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n];\nexport function getFormatter({ locale, formats, onError, timeZone, }, type, getDateTimeFormat, options = {}) {\n const { format } = options;\n const defaults = Object.assign({}, (timeZone && { timeZone }), (format && getNamedFormat(formats, type, format, onError)));\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = Object.assign({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps, createError } from '../utils';\nconst PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural({ locale, onError }, getPluralRules, value, options = {}) {\n if (!Intl.PluralRules) {\n onError(createError(`Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n`));\n }\n const filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(createError('Error formatting plural.', e));\n }\n return 'other';\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nimport * as invariant_ from 'invariant';\nconst invariant = invariant_.default || invariant_;\nimport { createError, escape } from '../utils';\nimport IntlMessageFormat from 'intl-messageformat';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce((all, k) => {\n all[k] = Object.assign({ timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n const keys = Object.keys(Object.assign({}, opts1, opts2));\n return keys.reduce((all, k) => {\n all[k] = Object.assign({}, (opts1[k] || {}), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n const mfFormats = IntlMessageFormat.formats;\n return Object.assign({}, mfFormats, f1, { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport function formatMessage({ locale, formats, messages, defaultLocale, defaultFormats, onError, timeZone, }, state, messageDescriptor = { id: '' }, values = {}) {\n const { id, defaultMessage } = messageDescriptor;\n // `id` is a required field of a Message Descriptor.\n invariant(id, '[React Intl] An `id` must be provided to format a message.');\n if (!id) {\n throw new Error('[React Intl] An `id` must be provided to format a message.');\n }\n const message = messages && messages[id];\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n let formattedMessageParts = [];\n if (message) {\n try {\n const formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : ''), e));\n }\n }\n else {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n onError(createError(`Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')));\n }\n }\n if (!formattedMessageParts.length && defaultMessage) {\n try {\n const formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting the default message for: \"${id}\"`, e));\n }\n }\n if (!formattedMessageParts.length) {\n onError(createError(`Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`));\n if (typeof message === 'string') {\n return message || defaultMessage || id;\n }\n return defaultMessage || id;\n }\n if (formattedMessageParts.length === 1 &&\n typeof formattedMessageParts[0] === 'string') {\n return formattedMessageParts[0] || defaultMessage || id;\n }\n return formattedMessageParts;\n}\nexport function formatHTMLMessage(config, state, messageDescriptor = { id: '' }, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n const escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n const value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","'use strict';\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualObjects;\n","import { filterProps, createError } from '../utils';\nconst LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nconst now = Date.now();\nfunction generateToken(i) {\n return `${now}_${i}_${now}`;\n}\nexport function formatList({ locale, onError }, getListFormat, values, options = {}) {\n const ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(createError(`Intl.ListFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-listformat\"\n`));\n }\n const filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n const richValues = {};\n const serializedValues = values.map((v, i) => {\n if (typeof v === 'object') {\n const id = generateToken(i);\n richValues[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n const parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce((all, el) => {\n const val = el.value;\n if (richValues[val]) {\n all.push(richValues[val]);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n }\n catch (e) {\n onError(createError('Error formatting list.', e));\n }\n return values;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { createError, DEFAULT_INTL_CONFIG, createFormatters, invariantIntlContext, createIntlCache, } from '../utils';\nimport areIntlLocalesSupported from 'intl-locales-supported';\nimport { formatNumber, formatNumberToParts } from '../formatters/number';\nimport { formatRelativeTime } from '../formatters/relativeTime';\nimport { formatDate, formatTime, formatDateToParts, formatTimeToParts, } from '../formatters/dateTime';\nimport { formatPlural } from '../formatters/plural';\nimport { formatMessage, formatHTMLMessage } from '../formatters/message';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nimport { formatList } from '../formatters/list';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n };\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n const formatters = createFormatters(cache);\n const resolvedConfig = Object.assign({}, DEFAULT_INTL_CONFIG, config);\n if (!resolvedConfig.locale ||\n !areIntlLocalesSupported(resolvedConfig.locale)) {\n const { locale, defaultLocale, onError } = resolvedConfig;\n if (typeof onError === 'function') {\n onError(createError(`Missing locale data for locale: \"${locale}\". ` +\n `Using default locale: \"${defaultLocale}\" as fallback.`));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n return Object.assign({}, resolvedConfig, { formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatHTMLMessage: formatHTMLMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat) });\n}\nexport default class IntlProvider extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.cache = createIntlCache();\n this.state = {\n cache: this.cache,\n intl: createIntl(processIntlConfig(this.props), this.cache),\n prevConfig: processIntlConfig(this.props),\n };\n }\n static getDerivedStateFromProps(props, { prevConfig, cache }) {\n const config = processIntlConfig(props);\n if (!shallowEquals(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n }\n render() {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n }\n}\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nexport default function areIntlLocalesSupported(locales, constructorsToCheck) {\n if (typeof Intl === 'undefined') {\n return false;\n }\n if (!locales) {\n throw new Error('locales must be supplied.');\n }\n if (!Array.isArray(locales)) {\n locales = [locales];\n }\n var intlConstructors = constructorsToCheck || [\n Intl.DateTimeFormat,\n Intl.NumberFormat,\n Intl.PluralRules,\n ];\n intlConstructors = intlConstructors.filter(Boolean);\n if (intlConstructors.length === 0 ||\n (constructorsToCheck &&\n intlConstructors.length !== constructorsToCheck.length)) {\n return false;\n }\n return intlConstructors.every(function (intlConstructor) {\n return intlConstructor.supportedLocalesOf(locales).length === locales.length;\n });\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nimport * as invariant_ from 'invariant';\nconst invariant = invariant_.default || invariant_;\nconst MINUTE = 60;\nconst HOUR = 60 * 60;\nconst DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n const absValue = Math.abs(seconds);\n if (absValue < MINUTE) {\n return 'second';\n }\n if (absValue < HOUR) {\n return 'minute';\n }\n if (absValue < DAY) {\n return 'hour';\n }\n return 'day';\n}\nfunction getDurationInSeconds(unit) {\n switch (unit) {\n case 'second':\n return 1;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n default:\n return DAY;\n }\n}\nfunction valueToSeconds(value, unit) {\n if (!value) {\n return 0;\n }\n switch (unit) {\n case 'second':\n return value;\n case 'minute':\n return value * MINUTE;\n default:\n return value * HOUR;\n }\n}\nconst INCREMENTABLE_UNITS = ['second', 'minute', 'hour'];\nfunction canIncrement(unit = 'second') {\n return INCREMENTABLE_UNITS.includes(unit);\n}\nfunction verifyProps(updateIntervalInSeconds, unit) {\n invariant(!updateIntervalInSeconds || (updateIntervalInSeconds && canIncrement(unit)), 'Cannot schedule update with unit longer than hour');\n}\nexport class FormattedRelativeTime extends React.PureComponent {\n constructor(props) {\n super(props);\n // Public for testing\n this._updateTimer = null;\n this.state = {\n prevUnit: this.props.unit,\n prevValue: this.props.value,\n currentValueInSeconds: canIncrement(this.props.unit)\n ? valueToSeconds(this.props.value, this.props.unit)\n : 0,\n };\n verifyProps(props.updateIntervalInSeconds, props.unit);\n }\n scheduleNextUpdate({ updateIntervalInSeconds, unit }, { currentValueInSeconds }) {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n // If there's no interval and we cannot increment this unit, do nothing\n if (!updateIntervalInSeconds || !canIncrement(unit)) {\n return;\n }\n // Figure out the next interesting time\n const nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n const nextUnit = selectUnit(nextValueInSeconds);\n // We've reached the max auto incrementable unit, don't schedule another update\n if (nextUnit === 'day') {\n return;\n }\n const unitDuration = getDurationInSeconds(nextUnit);\n const remainder = nextValueInSeconds % unitDuration;\n const prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n const nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n ? prevInterestingValueInSeconds - unitDuration\n : prevInterestingValueInSeconds;\n const delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n this._updateTimer = setTimeout(() => this.setState({\n currentValueInSeconds: nextInterestingValueInSeconds,\n }), delayInSeconds * 1e3);\n }\n componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentDidUpdate() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentWillUnmount() {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.unit !== state.prevUnit || props.value !== state.prevValue) {\n return {\n prevValue: props.value,\n prevUnit: props.unit,\n currentValueInSeconds: canIncrement(props.unit)\n ? valueToSeconds(props.value, props.unit)\n : 0,\n };\n }\n return null;\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { formatRelativeTime, textComponent: Text } = intl;\n const { children, value, unit, updateIntervalInSeconds } = this.props;\n const { currentValueInSeconds } = this.state;\n let currentValue = value || 0;\n let currentUnit = unit;\n if (canIncrement(unit) &&\n typeof currentValueInSeconds === 'number' &&\n updateIntervalInSeconds) {\n currentUnit = selectUnit(currentValueInSeconds);\n const unitDuration = getDurationInSeconds(currentUnit);\n currentValue = Math.round(currentValueInSeconds / unitDuration);\n }\n const formattedRelativeTime = formatRelativeTime(currentValue, currentUnit, Object.assign({}, this.props));\n if (typeof children === 'function') {\n return children(formattedRelativeTime);\n }\n if (Text) {\n return React.createElement(Text, null, formattedRelativeTime);\n }\n return formattedRelativeTime;\n }));\n }\n}\nFormattedRelativeTime.displayName = 'FormattedRelativeTime';\nFormattedRelativeTime.defaultProps = {\n value: 0,\n unit: 'second',\n};\nexport default FormattedRelativeTime;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport withIntl from './injectIntl';\nconst FormattedPlural = props => {\n const { value, other, children, intl: { formatPlural, textComponent: Text }, } = props;\n const pluralCategory = formatPlural(value, props);\n const formattedPlural = props[pluralCategory] || other;\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n if (Text) {\n return React.createElement(Text, null, formattedPlural);\n }\n // Work around @types/react where React.FC cannot return string\n return formattedPlural;\n};\nFormattedPlural.defaultProps = {\n type: 'cardinal',\n};\nFormattedPlural.displayName = 'FormattedPlural';\nexport default withIntl(FormattedPlural);\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { formatMessage } from '../formatters/message';\nimport { invariantIntlContext, DEFAULT_INTL_CONFIG, createFormatters, } from '../utils';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nconst defaultFormatMessage = (descriptor, values) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Could not find required `intl` object. <IntlProvider> needs to exist in the component ancestry. Using default message as fallback.');\n }\n return formatMessage(Object.assign({}, DEFAULT_INTL_CONFIG, { locale: 'en' }), createFormatters(), descriptor, values);\n};\nclass FormattedMessage extends React.Component {\n shouldComponentUpdate(nextProps) {\n const _a = this.props, { values } = _a, otherProps = __rest(_a, [\"values\"]);\n const { values: nextValues } = nextProps, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (!shallowEquals(nextValues, values) ||\n !shallowEquals(otherProps, nextOtherProps));\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatMessage = defaultFormatMessage, textComponent: Text = React.Fragment, } = intl || {};\n const { id, description, defaultMessage, values, children, tagName: Component = Text, } = this.props;\n const descriptor = { id, description, defaultMessage };\n let nodes = formatMessage(descriptor, values);\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n if (typeof children === 'function') {\n return children(...nodes);\n }\n if (Component) {\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return React.createElement(Component, null, ...nodes);\n }\n return nodes;\n }));\n }\n}\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.defaultProps = {\n values: {},\n};\nexport default FormattedMessage;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport FormattedMessage from './message';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nclass FormattedHTMLMessage extends FormattedMessage {\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatHTMLMessage, textComponent } = intl;\n const { id, description, defaultMessage, values: rawValues, children, } = this.props;\n let { tagName: Component } = this.props;\n // This is bc of TS3.3 doesn't recognize `defaultProps`\n if (!Component) {\n Component = textComponent || 'span';\n }\n const descriptor = { id, description, defaultMessage };\n const formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n const html = { __html: formattedHTMLMessage };\n return React.createElement(Component, { dangerouslySetInnerHTML: html });\n }));\n }\n}\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.defaultProps = Object.assign({}, FormattedMessage.defaultProps, { tagName: 'span' });\nexport default FormattedHTMLMessage;\n","export { defineMessages } from '@formatjs/macro';\nimport { createFormattedComponent, createFormattedDateTimePartsComponent, } from './components/createFormattedComponent';\nexport { default as injectIntl, Provider as RawIntlProvider, Context as IntlContext, } from './components/injectIntl';\nexport { default as useIntl } from './components/useIntl';\nexport { default as IntlProvider, createIntl } from './components/provider';\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./types').CustomFormatConfig`\nexport const FormattedDate = createFormattedComponent('formatDate');\nexport const FormattedTime = createFormattedComponent('formatTime');\nexport const FormattedNumber = createFormattedComponent('formatNumber');\nexport const FormattedList = createFormattedComponent('formatList');\nexport const FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport const FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts } from './components/createFormattedComponent';\nexport { default as FormattedRelativeTime } from './components/relative';\nexport { default as FormattedPlural } from './components/plural';\nexport { default as FormattedMessage } from './components/message';\nexport { default as FormattedHTMLMessage } from './components/html-message';\nexport { createIntlCache } from './utils';\n","import { useContext } from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n const intl = useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n"],"names":["msgs","TYPE","isLiteralElement","el","type","literal","isSelectElement","select","isPluralElement","plural","extendStatics","_super","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","this","SyntaxError","Error","buildMessage","expected","found","hex","ch","charCodeAt","toString","toUpperCase","literalEscape","replace","classEscape","describeExpectation","expectation","text","escapedParts","parts","map","part","isArray","inverted","description","expected1","j","descriptions","sort","slice","join","describeExpected","found1","message","location","_this","name","captureStackTrace","pegParse","input","options","undefined","peg$result","location1","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","messageText","value","insertLocation","peg$c2","peg$otherExpectation","peg$c3","peg$c4","peg$literalExpectation","peg$c5","peg$c6","peg$c7","argument","peg$c8","peg$c9","peg$c10","peg$classExpectation","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","option","peg$c16","peg$c17","stem","peg$c18","tokens","peg$c19","peg$c20","peg$c21","skeleton","peg$c22","style","peg$c23","peg$c24","peg$c25","peg$c26","peg$c27","number","date","time","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","pattern","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","pluralType","offset","reduce","all","_a","id","optionLocation","error","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","negative","num","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","peg$c73","escapedChar","quotedChars","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","peg$c79","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","digits","parseInt","peg$c86","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","substring","peg$computeLocation","peg$buildSimpleError","text1","ignoreCase","peg$computePosDetails","pos","details","startPos","endPos","startPosDetails","endPosDetails","end","peg$fail","push","peg$parsemessage","s0","s1","peg$parsemessageElement","peg$parsemessageText","peg$parseliteralElement","s2","s3","s5","peg$parse_","peg$parseargNameOrNumber","peg$parseargumentElement","s7","s9","s10","s11","s12","substr","peg$parsenumberSkeletonToken","peg$parsenumberSkeleton","peg$parsenumberArgStyle","peg$parsenumberFormatElement","peg$parsedateTimeSkeletonLiteral","peg$parsedateTimeSkeletonPattern","peg$parsedateTimeSkeleton","peg$parsedateOrTimeArgStyle","peg$parsedateOrTimeFormatElement","peg$parsesimpleFormatElement","s13","s14","s15","peg$parsenumber","peg$parsepluralOption","peg$parsepluralElement","peg$parseselectOption","peg$parseselectElement","peg$parsedoubleApostrophes","peg$parsequotedString","peg$parseunquotedString","peg$parsenumberSkeletonId","s4","peg$parsepatternWhiteSpace","test","charAt","peg$parsenumberSkeletonTokenOption","s6","peg$parseargName","peg$parsepluralRuleSelectValue","peg$parsepatternSyntax","peg$parseargNumber","captureLocation","__spreadArrays","il","r","k","a","jl","PLURAL_HASHTAG_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","result","match","len","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","parseSignificantPrecision","str","_","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseNotationOptions","opt","signOpts","convertNumberSkeletonToNumberFormatOptions","_i","tokens_1","token","currency","useGrouping","maximumFractionDigits","unit","notation","compactDisplay","currencyDisplay","unitDisplay","minimumFractionDigits","parse","opts","els","normalizeHashtagInPlural","forEach","keys","matchingLiteralElIndex","literalEl","el_1","newValue","newEls","splice","getCacheId","inputs","JSON","stringify","_typeof","obj","orderedProps","domParser","memoizeFormatConstructor","FormatConstructor","cache","args","cacheId","format","bind","ESCAPE_HASH_REGEX","PLURAL_HASH","FormatError","msg","variableId","formatToParts","locales","formatters","formats","values","currentPluralValue","originalMessage","getNumberFormat","els_1","value_1","varName","other","Intl","PluralRules","rule","getPluralRules","getDateTimeFormat","String","lastPart","mergeLiteral","TOKEN_DELIMITER","TOKEN_REGEX","counter","restoreRichPlaceholderMessage","objectParts","split","filter","Boolean","c","SIMPLE_XML_REGEX","TEMPLATE_ID","Date","now","VOID_ELEMENTS","formatHTMLMessage","formattedMessage","DOMParser","content","parseFromString","getElementById","tagsToFormat","getElementsByTagName","caseSensitiveTags","tagName","toLowerCase","childNodes","child","concat","formatHTMLElement","outerHTML","textContent","isVoidElement","indexOf","formatFnOrValue","chunks","mergeConfigs","defaultConfig","configs","c1","c2","mergeConfig","IntlMessageFormat","defaultLocale","NumberFormat","resolvedOptions","locale","__parse","percent","short","medium","long","full","overrideFormats","formatterCache","dateTime","pluralRules","formatToString","ast","supportedLocalesOf","getAst","TypeError","memoizeIntlConstructor","DateTimeFormat","createDefaultFormatters","condition","e","f","argIndex","framesToPop","invariant","invariant_","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","props","whitelist","defaults","filtered","invariantIntlContext","intl","createError","exception","eMsg","stack","DEFAULT_INTL_CONFIG","messages","timeZone","textComponent","React","defaultFormats","onError","createIntlCache","relativeTime","list","createFormatters","RelativeTimeFormat","ListFormat","getMessageFormat","getRelativeTimeFormat","getListFormat","getNamedFormat","formatType","defineProperty","exports","Symbol","for","g","h","l","m","q","u","$$typeof","v","module","require$$0","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","reactIs","isMemo","ForwardRef","render","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","hoistNonReactStatics","targetStatics","sourceStatics","key","descriptor","hoistNonReactStatics_","IntlContext","IntlConsumer","Consumer","Provider","Context","injectIntl","WrappedComponent","WithIntl","enforceContext","intlPropName","ref","forwardRef","forwardedRef","Component","getDisplayName","DisplayName","DisplayNameParts","__rest","FormattedNumberParts","children","formatProps","formatNumberToParts","createFormattedDateTimePartsComponent","ComponentParts","formatDateToParts","formatTimeToParts","createFormattedComponent","formattedValue","Text","NUMBER_FORMAT_OPTIONS","getFormatter","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","config","DATE_TIME_FORMAT_OPTIONS","filteredOptions","PLURAL_FORMAT_OPTIONS","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","formatMessage","state","messageDescriptor","defaultMessage","formattedMessageParts","rawValues","escaped","escape","objA","objB","aKeys","bKeys","LIST_FORMAT_OPTIONS","formatList","richValues","serializedValues","generateToken","val","shallowEquals","shallowEquals_","processIntlConfig","createIntl","resolvedConfig","constructorsToCheck","intlConstructors","every","intlConstructor","areIntlLocalesSupported","formatNumber","formatDate","formatTime","formatPlural","IntlProvider","prevConfig","MINUTE","HOUR","selectUnit","seconds","absValue","Math","abs","getDurationInSeconds","valueToSeconds","INCREMENTABLE_UNITS","canIncrement","includes","FormattedRelativeTime","_updateTimer","prevUnit","prevValue","currentValueInSeconds","updateIntervalInSeconds","verifyProps","clearTimeout","nextValueInSeconds","nextUnit","unitDuration","prevInterestingValueInSeconds","nextInterestingValueInSeconds","delayInSeconds","setTimeout","_this2","setState","scheduleNextUpdate","_this3","currentValue","currentUnit","round","formattedRelativeTime","FormattedPlural","formattedPlural","defaultFormatMessage","withIntl","FormattedMessage","nextProps","otherProps","nextValues","nextOtherProps","nodes","FormattedHTMLMessage","formattedHTMLMessage","html","__html","dangerouslySetInnerHTML","FormattedDate","FormattedTime","FormattedNumber","FormattedList","FormattedDateParts","FormattedTimeParts","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"react-intl.min.js","sources":["../node_modules/intl-messageformat-parser/lib/types.js","../node_modules/intl-messageformat-parser/lib/parser.js","../node_modules/intl-messageformat-parser/lib/normalize.js","../node_modules/intl-messageformat-parser/lib/skeleton.js","../node_modules/intl-messageformat-parser/lib/index.js","../node_modules/intl-format-cache/lib/index.js","../node_modules/intl-messageformat/lib/formatters.js","../node_modules/intl-messageformat/lib/core.js","../node_modules/@formatjs/intl-utils/lib/invariant.js","../lib/utils.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../lib/components/injectIntl.js","../lib/components/createFormattedComponent.js","../lib/formatters/number.js","../lib/formatters/relativeTime.js","../lib/formatters/dateTime.js","../lib/formatters/plural.js","../lib/formatters/message.js","../node_modules/shallow-equal/objects/index.js","../lib/formatters/list.js","../lib/formatters/displayName.js","../lib/components/provider.js","../lib/components/relative.js","../lib/components/plural.js","../lib/components/message.js","../lib/components/html-message.js","../lib/index.js","../lib/components/useIntl.js"],"sourcesContent":["export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n})(TYPE || (TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 0 /* number */);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 1 /* dateTime */);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// tslint:disable:only-arrow-functions\n// tslint:disable:object-literal-shorthand\n// tslint:disable:trailing-comma\n// tslint:disable:object-literal-sort-keys\n// tslint:disable:one-variable-per-declaration\n// tslint:disable:max-line-length\n// tslint:disable:no-consecutive-blank-lines\n// tslint:disable:align\nvar __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};\n// Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.2.6 )\n//\n// https://pegjs.org/ https://github.com/metadevpro/ts-pegjs\nimport { TYPE, } from './types';\nvar SyntaxError = /** @class */ (function (_super) {\n __extends(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\nexport { SyntaxError };\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = function (parts) {\n return parts.join('');\n };\n var peg$c1 = function (messageText) {\n return __assign({ type: TYPE.literal, value: messageText }, insertLocation());\n };\n var peg$c2 = \"#\";\n var peg$c3 = peg$literalExpectation(\"#\", false);\n var peg$c4 = function () {\n return __assign({ type: TYPE.pound }, insertLocation());\n };\n var peg$c5 = peg$otherExpectation(\"argumentElement\");\n var peg$c6 = \"{\";\n var peg$c7 = peg$literalExpectation(\"{\", false);\n var peg$c8 = \"}\";\n var peg$c9 = peg$literalExpectation(\"}\", false);\n var peg$c10 = function (value) {\n return __assign({ type: TYPE.argument, value: value }, insertLocation());\n };\n var peg$c11 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c12 = /^['\\/{}]/;\n var peg$c13 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c14 = peg$anyExpectation();\n var peg$c15 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c16 = \"/\";\n var peg$c17 = peg$literalExpectation(\"/\", false);\n var peg$c18 = function (option) { return option; };\n var peg$c19 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c20 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c21 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c22 = \"::\";\n var peg$c23 = peg$literalExpectation(\"::\", false);\n var peg$c24 = function (skeleton) { return skeleton; };\n var peg$c25 = function () { messageCtx.push('numberArgStyle'); return true; };\n var peg$c26 = function (style) {\n messageCtx.pop();\n return style.replace(/\\s*$/, '');\n };\n var peg$c27 = \",\";\n var peg$c28 = peg$literalExpectation(\",\", false);\n var peg$c29 = \"number\";\n var peg$c30 = peg$literalExpectation(\"number\", false);\n var peg$c31 = function (value, type, style) {\n return __assign({ type: type === 'number' ? TYPE.number : type === 'date' ? TYPE.date : TYPE.time, style: style && style[2], value: value }, insertLocation());\n };\n var peg$c32 = \"'\";\n var peg$c33 = peg$literalExpectation(\"'\", false);\n var peg$c34 = /^[^']/;\n var peg$c35 = peg$classExpectation([\"'\"], true, false);\n var peg$c36 = /^[^a-zA-Z'{}]/;\n var peg$c37 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c38 = /^[a-zA-Z]/;\n var peg$c39 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c40 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c41 = function () { messageCtx.push('dateOrTimeArgStyle'); return true; };\n var peg$c42 = \"date\";\n var peg$c43 = peg$literalExpectation(\"date\", false);\n var peg$c44 = \"time\";\n var peg$c45 = peg$literalExpectation(\"time\", false);\n var peg$c46 = \"plural\";\n var peg$c47 = peg$literalExpectation(\"plural\", false);\n var peg$c48 = \"selectordinal\";\n var peg$c49 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c50 = \"offset:\";\n var peg$c51 = peg$literalExpectation(\"offset:\", false);\n var peg$c52 = function (value, pluralType, offset, options) {\n return __assign({ type: TYPE.plural, pluralType: pluralType === 'plural' ? 'cardinal' : 'ordinal', value: value, offset: offset ? offset[2] : 0, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in plural element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c53 = \"select\";\n var peg$c54 = peg$literalExpectation(\"select\", false);\n var peg$c55 = function (value, options) {\n return __assign({ type: TYPE.select, value: value, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in select element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c56 = \"=\";\n var peg$c57 = peg$literalExpectation(\"=\", false);\n var peg$c58 = function (id) { messageCtx.push('select'); return true; };\n var peg$c59 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c60 = function (id) { messageCtx.push('plural'); return true; };\n var peg$c61 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c62 = peg$otherExpectation(\"whitespace\");\n var peg$c63 = /^[\\t-\\r \\x85\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n var peg$c64 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\"], false, false);\n var peg$c65 = peg$otherExpectation(\"syntax pattern\");\n var peg$c66 = /^[!-\\/:-@[-\\^`{-~\\xA1-\\xA7\\xA9\\xAB\\xAC\\xAE\\xB0\\xB1\\xB6\\xBB\\xBF\\xD7\\xF7\\u2010-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u245F\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3020\\u3030\\uFD3E\\uFD3F\\uFE45\\uFE46]/;\n var peg$c67 = peg$classExpectation([[\"!\", \"/\"], [\":\", \"@\"], [\"[\", \"^\"], \"`\", [\"{\", \"~\"], [\"\\xA1\", \"\\xA7\"], \"\\xA9\", \"\\xAB\", \"\\xAC\", \"\\xAE\", \"\\xB0\", \"\\xB1\", \"\\xB6\", \"\\xBB\", \"\\xBF\", \"\\xD7\", \"\\xF7\", [\"\\u2010\", \"\\u2027\"], [\"\\u2030\", \"\\u203E\"], [\"\\u2041\", \"\\u2053\"], [\"\\u2055\", \"\\u205E\"], [\"\\u2190\", \"\\u245F\"], [\"\\u2500\", \"\\u2775\"], [\"\\u2794\", \"\\u2BFF\"], [\"\\u2E00\", \"\\u2E7F\"], [\"\\u3001\", \"\\u3003\"], [\"\\u3008\", \"\\u3020\"], \"\\u3030\", \"\\uFD3E\", \"\\uFD3F\", \"\\uFE45\", \"\\uFE46\"], false, false);\n var peg$c68 = peg$otherExpectation(\"optional whitespace\");\n var peg$c69 = peg$otherExpectation(\"number\");\n var peg$c70 = \"-\";\n var peg$c71 = peg$literalExpectation(\"-\", false);\n var peg$c72 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c73 = peg$otherExpectation(\"apostrophe\");\n var peg$c74 = peg$otherExpectation(\"double apostrophes\");\n var peg$c75 = \"''\";\n var peg$c76 = peg$literalExpectation(\"''\", false);\n var peg$c77 = function () { return \"'\"; };\n var peg$c78 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c79 = function (x) {\n return (x !== '{' &&\n !(isInPluralOption() && x === '#') &&\n !(isNestedMessageText() && x === '}'));\n };\n var peg$c80 = \"\\n\";\n var peg$c81 = peg$literalExpectation(\"\\n\", false);\n var peg$c82 = function (x) {\n return x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c83 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c84 = peg$otherExpectation(\"argNumber\");\n var peg$c85 = \"0\";\n var peg$c86 = peg$literalExpectation(\"0\", false);\n var peg$c87 = function () { return 0; };\n var peg$c88 = /^[1-9]/;\n var peg$c89 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c90 = /^[0-9]/;\n var peg$c91 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c92 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c93 = peg$otherExpectation(\"argName\");\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessage();\n return s0;\n }\n function peg$parsemessage() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsemessageElement();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemessageElement();\n }\n return s0;\n }\n function peg$parsemessageElement() {\n var s0;\n s0 = peg$parseliteralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesimpleFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemessageText() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseliteralElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsepoundElement() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c2;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c4();\n }\n s0 = s1;\n return s0;\n }\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s5 = peg$c8;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c10(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c5);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonId() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonTokenOption() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c16;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonToken() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenumberSkeletonTokenOption();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenumberSkeletonTokenOption();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c19);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeleton() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsenumberSkeletonToken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsenumberSkeletonToken();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsenumberArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c25();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsenumberFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c29) {\n s7 = peg$c29;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsenumberArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonLiteral() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c32;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = [];\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonPattern() {\n var s0, s1;\n s0 = [];\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeleton() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n }\n else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsedateOrTimeArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c41();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateOrTimeFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c42) {\n s7 = peg$c42;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c44) {\n s7 = peg$c44;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c45);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsedateOrTimeArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesimpleFormatElement() {\n var s0;\n s0 = peg$parsenumberFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedateOrTimeFormatElement();\n }\n return s0;\n }\n function peg$parsepluralElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c46) {\n s7 = peg$c46;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c47);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c48) {\n s7 = peg$c48;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c50) {\n s12 = peg$c50;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n if (s12 !== peg$FAILED) {\n s13 = peg$parse_();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsenumber();\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n if (s11 === peg$FAILED) {\n s11 = null;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n s13 = [];\n s14 = peg$parsepluralOption();\n if (s14 !== peg$FAILED) {\n while (s14 !== peg$FAILED) {\n s13.push(s14);\n s14 = peg$parsepluralOption();\n }\n }\n else {\n s13 = peg$FAILED;\n }\n if (s13 !== peg$FAILED) {\n s14 = peg$parse_();\n if (s14 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s15 = peg$c8;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52(s3, s7, s11, s13);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseselectElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c53) {\n s7 = peg$c53;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c54);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = [];\n s12 = peg$parseselectOption();\n if (s12 !== peg$FAILED) {\n while (s12 !== peg$FAILED) {\n s11.push(s12);\n s12 = peg$parseselectOption();\n }\n }\n else {\n s11 = peg$FAILED;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s13 = peg$c8;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s3, s11);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralRuleSelectValue() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c56;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c57);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseargName();\n }\n return s0;\n }\n function peg$parseselectOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c58(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c59(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepluralRuleSelectValue();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c60(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhiteSpace() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c63.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n return s0;\n }\n function peg$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c65);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhiteSpace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhiteSpace();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c68);\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c70;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c71);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c72(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n return s0;\n }\n function peg$parseapostrophe() {\n var s0, s1;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c32;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c73);\n }\n }\n return s0;\n }\n function peg$parsedoubleApostrophes() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s1 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c74);\n }\n }\n return s0;\n }\n function peg$parsequotedString() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseescapedChar();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n }\n else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s4 = peg$c32;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseunquotedString() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c79(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c80;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseescapedChar() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c82(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargNameOrNumber() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parseargName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n return s0;\n }\n function peg$parseargNumber() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c85;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c88.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c89);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c92(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n return s0;\n }\n function peg$parseargName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c93);\n }\n }\n return s0;\n }\n var messageCtx = ['root'];\n function isNestedMessageText() {\n return messageCtx.length > 1;\n }\n function isInPluralOption() {\n return messageCtx[messageCtx.length - 1] === 'plural';\n }\n function insertLocation() {\n return options && options.captureLocation ? {\n location: location()\n } : {};\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nexport var pegParse = peg$parse;\n","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 { isPluralElement, isLiteralElement, isSelectElement, } from './types';\nimport { pegParse } from './parser';\nvar PLURAL_HASHTAG_REGEX = /(^|[^\\\\])#/g;\n/**\n * Whether to convert `#` in plural rule options\n * to `{var, number}`\n * @param el AST Element\n * @param pluralStack current plural stack\n */\nexport function normalizeHashtagInPlural(els) {\n els.forEach(function (el) {\n // If we're encountering a plural el\n if (!isPluralElement(el) && !isSelectElement(el)) {\n return;\n }\n // Go down the options and search for # in any literal element\n Object.keys(el.options).forEach(function (id) {\n var _a;\n var opt = el.options[id];\n // If we got a match, we have to split this\n // and inject a NumberElement in the middle\n var matchingLiteralElIndex = -1;\n var literalEl = undefined;\n for (var i = 0; i < opt.value.length; i++) {\n var el_1 = opt.value[i];\n if (isLiteralElement(el_1) && PLURAL_HASHTAG_REGEX.test(el_1.value)) {\n matchingLiteralElIndex = i;\n literalEl = el_1;\n break;\n }\n }\n if (literalEl) {\n var newValue = literalEl.value.replace(PLURAL_HASHTAG_REGEX, \"$1{\" + el.value + \", number}\");\n var newEls = pegParse(newValue);\n (_a = opt.value).splice.apply(_a, __spreadArrays([matchingLiteralElIndex, 1], newEls));\n }\n normalizeHashtagInPlural(opt.value);\n });\n });\n}\n","var __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};\n/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) pattenrs are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) pattenrs are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\+|#+)?)?$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function convertNumberSkeletonToNumberFormatOptions(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n result.style = 'percent';\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n }\n // Precision\n // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#fraction-precision\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (match, g1, g2) {\n // precision-integer case\n if (match === '.') {\n result.maximumFractionDigits = 0;\n }\n // .000+ case\n else if (g2 === '+') {\n result.minimumFractionDigits = g2.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumFractionDigits = g1.length;\n }\n // .00## or .000 case\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n }\n return result;\n}\n","import { pegParse } from './parser';\nimport { normalizeHashtagInPlural } from './normalize';\nexport * from './types';\nexport * from './parser';\nexport * from './skeleton';\nexport function parse(input, opts) {\n var els = pegParse(input, opts);\n if (!opts || opts.normalizeHashtagInPlural !== false) {\n normalizeHashtagInPlural(els);\n }\n return els;\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*/\nvar __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};\n// -- Utilities ----------------------------------------------------------------\nfunction getCacheId(inputs) {\n return JSON.stringify(inputs.map(function (input) {\n return input && typeof input === 'object' ? orderedProps(input) : input;\n }));\n}\nfunction orderedProps(obj) {\n return Object.keys(obj)\n .sort()\n .map(function (k) {\n var _a;\n return (_a = {}, _a[k] = obj[k], _a);\n });\n}\nvar memoizeFormatConstructor = function (FormatConstructor, cache) {\n if (cache === void 0) { cache = {}; }\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n if (!format) {\n format = new ((_a = FormatConstructor).bind.apply(_a, __spreadArrays([void 0], args)))();\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n return format;\n };\n};\nexport default memoizeFormatConstructor;\n","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 __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 { convertNumberSkeletonToNumberFormatOptions, isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, parseDateTimeSkeleton, } from 'intl-messageformat-parser';\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, variableId) {\n var _this = _super.call(this, msg) || this;\n _this.variableId = variableId;\n return _this;\n }\n return FormatError;\n}(Error));\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 !== 0 /* literal */ ||\n part.type !== 0 /* literal */) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\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: 0 /* 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: 0 /* 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: 0 /* 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 FormatError(\"The intl string context variable \\\"\" + varName + \"\\\" was not provided to the string \\\"\" + 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: 1 /* argument */,\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' ? formats.date[el.style] : undefined;\n result.push({\n type: 0 /* 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 ? parseDateTimeSkeleton(el.style.pattern)\n : undefined;\n result.push({\n type: 0 /* 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 ? convertNumberSkeletonToNumberFormatOptions(el.style.tokens)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\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[\"=\" + 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\");\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 RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\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}\nexport function formatToString(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n return parts.reduce(function (all, part) { return (all += part.value); }, '');\n}\n// Singleton\nvar domParser;\nvar TOKEN_DELIMITER = '@@';\nvar TOKEN_REGEX = /@@(\\d+_\\d+)@@/g;\nvar counter = 0;\nfunction generateId() {\n return Date.now() + \"_\" + ++counter;\n}\nfunction restoreRichPlaceholderMessage(text, objectParts) {\n return text\n .split(TOKEN_REGEX)\n .filter(Boolean)\n .map(function (c) { return (objectParts[c] != null ? objectParts[c] : c); })\n .reduce(function (all, c) {\n if (!all.length) {\n all.push(c);\n }\n else if (typeof c === 'string' &&\n typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += c;\n }\n else {\n all.push(c);\n }\n return all;\n }, []);\n}\n/**\n * Not exhaustive, just for sanity check\n */\nvar SIMPLE_XML_REGEX = /(<([0-9a-zA-Z-_]*?)>(.*?)<\\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\\/>)/;\nvar TEMPLATE_ID = Date.now() + '@@';\nvar VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\nfunction formatHTMLElement(el, objectParts, values) {\n var tagName = el.tagName;\n var outerHTML = el.outerHTML, textContent = el.textContent, childNodes = el.childNodes;\n // Regular text\n if (!tagName) {\n return restoreRichPlaceholderMessage(textContent || '', objectParts);\n }\n tagName = tagName.toLowerCase();\n var isVoidElement = ~VOID_ELEMENTS.indexOf(tagName);\n var formatFnOrValue = values[tagName];\n if (formatFnOrValue && isVoidElement) {\n throw new FormatError(tagName + \" is a self-closing tag and can not be used, please use another tag name.\");\n }\n if (!childNodes.length) {\n return [outerHTML];\n }\n var chunks = Array.prototype.slice.call(childNodes).reduce(function (all, child) {\n return all.concat(formatHTMLElement(child, objectParts, values));\n }, []);\n // Legacy HTML\n if (!formatFnOrValue) {\n return __spreadArrays([\"<\" + tagName + \">\"], chunks, [\"</\" + tagName + \">\"]);\n }\n // HTML Tag replacement\n if (typeof formatFnOrValue === 'function') {\n return [formatFnOrValue.apply(void 0, chunks)];\n }\n return [formatFnOrValue];\n}\nexport function formatHTMLMessage(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n var objectParts = {};\n var formattedMessage = parts.reduce(function (all, part) {\n if (part.type === 0 /* literal */) {\n return (all += part.value);\n }\n var id = generateId();\n objectParts[id] = part.value;\n return (all += \"\" + TOKEN_DELIMITER + id + TOKEN_DELIMITER);\n }, '');\n // Not designed to filter out aggressively\n if (!SIMPLE_XML_REGEX.test(formattedMessage)) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n if (!values) {\n throw new FormatError('Message has placeholders but no values was given');\n }\n if (typeof DOMParser === 'undefined') {\n throw new FormatError('Cannot format XML message without DOMParser');\n }\n if (!domParser) {\n domParser = new DOMParser();\n }\n var content = domParser\n .parseFromString(\"<formatted-message id=\\\"\" + TEMPLATE_ID + \"\\\">\" + formattedMessage + \"</formatted-message>\", 'text/html')\n .getElementById(TEMPLATE_ID);\n if (!content) {\n throw new FormatError(\"Malformed HTML message \" + formattedMessage);\n }\n var tagsToFormat = Object.keys(values).filter(function (varName) { return !!content.getElementsByTagName(varName).length; });\n // No tags to format\n if (!tagsToFormat.length) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n var caseSensitiveTags = tagsToFormat.filter(function (tagName) { return tagName !== tagName.toLowerCase(); });\n if (caseSensitiveTags.length) {\n throw new FormatError(\"HTML tag must be lowercased but the following tags are not: \" + caseSensitiveTags.join(', '));\n }\n // We're doing this since top node is `<formatted-message/>` which does not have a formatter\n return Array.prototype.slice\n .call(content.childNodes)\n .reduce(function (all, child) { return all.concat(formatHTMLElement(child, objectParts, values)); }, []);\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*/\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 { parse } from 'intl-messageformat-parser';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { formatToString, formatToParts, formatHTMLMessage, } 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}\nexport function createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n return formatToString(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.formatHTMLMessage = function (values) {\n return formatHTMLMessage(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\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 // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n normalizeHashtagInPlural: false,\n });\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 // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n IntlMessageFormat.defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\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 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 };\nexport default IntlMessageFormat;\n","export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\nimport * as React from 'react';\nimport IntlMessageFormat from 'intl-messageformat';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { invariant } from '@formatjs/intl-utils';\nconst ESCAPED_CHARS = {\n 38: '&amp;',\n 62: '&gt;',\n 60: '&lt;',\n 34: '&quot;',\n 39: '&#x27;',\n};\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, match => ESCAPED_CHARS[match.charCodeAt(0)]);\n}\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport function createError(message, exception) {\n const eMsg = exception ? `\\n${exception.stack}` : '';\n return `[React Intl] ${message}${eMsg}`;\n}\nexport function defaultErrorHandler(error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n}\nexport const DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n textComponent: React.Fragment,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache = createIntlCache()) {\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n const ListFormat = Intl.ListFormat;\n const DisplayNames = Intl.DisplayNames;\n return {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat, cache.message),\n getRelativeTimeFormat: memoizeIntlConstructor(RelativeTimeFormat, cache.relativeTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n getListFormat: memoizeIntlConstructor(ListFormat, cache.list),\n getDisplayNames: memoizeIntlConstructor(DisplayNames, cache.displayNames),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n const formatType = formats && formats[type];\n let format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(createError(`No ${type} format named: ${name}`));\n}\n","/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import * as React from 'react';\nimport * as hoistNonReactStatics_ from 'hoist-non-react-statics';\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nconst hoistNonReactStatics = hoistNonReactStatics_.default || hoistNonReactStatics_;\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nconst IntlContext = React.createContext(null);\nconst { Consumer: IntlConsumer, Provider: IntlProvider } = IntlContext;\nexport const Provider = IntlProvider;\nexport const Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n const { intlPropName = 'intl', forwardRef = false, enforceContext = true } = options || {};\n const WithIntl = props => (React.createElement(IntlConsumer, null, (intl) => {\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n return (React.createElement(WrappedComponent, Object.assign({}, props, {\n [intlPropName]: intl,\n }, { ref: forwardRef ? props.forwardedRef : null })));\n }));\n WithIntl.displayName = `injectIntl(${getDisplayName(WrappedComponent)})`;\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef((props, ref) => (React.createElement(WithIntl, Object.assign({}, props, { forwardedRef: ref })))), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport const FormattedNumberParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n}));\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n const ComponentParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n const formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n }));\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n const Component = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n const formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n const Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n }));\n Component.displayName = DisplayName[name];\n return Component;\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst NUMBER_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // Unified NumberFormat (Stage 3 as of 10/22/19)\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter({ locale, formats, onError, }, getNumberFormat, options = {}) {\n const { format } = options;\n const defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n const filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst RELATIVE_TIME_FORMAT_OPTIONS = [\n 'numeric',\n 'style',\n];\nfunction getFormatter({ locale, formats, onError, }, getRelativeTimeFormat, options = {}) {\n const { format } = options;\n const defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n const filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options = {}) {\n if (!unit) {\n unit = 'second';\n }\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(createError(`Intl.RelativeTimeFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-relativetimeformat\"\n`));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(createError('Error formatting relative time.', e));\n }\n return String(value);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { createError, filterProps, getNamedFormat } from '../utils';\nconst DATE_TIME_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n];\nexport function getFormatter({ locale, formats, onError, timeZone, }, type, getDateTimeFormat, options = {}) {\n const { format } = options;\n const defaults = Object.assign(Object.assign({}, (timeZone && { timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = Object.assign(Object.assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps, createError } from '../utils';\nconst PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural({ locale, onError }, getPluralRules, value, options = {}) {\n if (!Intl.PluralRules) {\n onError(createError(`Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n`));\n }\n const filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(createError('Error formatting plural.', e));\n }\n return 'other';\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { invariant } from '@formatjs/intl-utils';\nimport { createError, escape } from '../utils';\nimport IntlMessageFormat from 'intl-messageformat';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce((all, k) => {\n all[k] = Object.assign({ timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n const keys = Object.keys(Object.assign(Object.assign({}, opts1), opts2));\n return keys.reduce((all, k) => {\n all[k] = Object.assign(Object.assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n const mfFormats = IntlMessageFormat.formats;\n return Object.assign(Object.assign(Object.assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport const prepareIntlMessageFormatHtmlOutput = (chunks) => React.createElement(React.Fragment, null, ...chunks);\nexport function formatMessage({ locale, formats, messages, defaultLocale, defaultFormats, onError, timeZone, }, state, messageDescriptor = { id: '' }, values = {}) {\n const { id, defaultMessage } = messageDescriptor;\n // `id` is a required field of a Message Descriptor.\n invariant(!!id, '[React Intl] An `id` must be provided to format a message.');\n const message = messages && messages[String(id)];\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n let formattedMessageParts = [];\n if (message) {\n try {\n const formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : ''), e));\n }\n }\n else {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n onError(createError(`Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')));\n }\n }\n if (!formattedMessageParts.length && defaultMessage) {\n try {\n const formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting the default message for: \"${id}\"`, e));\n }\n }\n if (!formattedMessageParts.length) {\n onError(createError(`Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`));\n if (typeof message === 'string') {\n return message || defaultMessage || String(id);\n }\n return defaultMessage || String(id);\n }\n if (formattedMessageParts.length === 1 &&\n typeof formattedMessageParts[0] === 'string') {\n return formattedMessageParts[0] || defaultMessage || String(id);\n }\n return prepareIntlMessageFormatHtmlOutput(formattedMessageParts);\n}\nexport function formatHTMLMessage(config, state, messageDescriptor = { id: '' }, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n const escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n const value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","'use strict';\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualObjects;\n","import { filterProps, createError } from '../utils';\nconst LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nconst now = Date.now();\nfunction generateToken(i) {\n return `${now}_${i}_${now}`;\n}\nexport function formatList({ locale, onError }, getListFormat, values, options = {}) {\n const ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(createError(`Intl.ListFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-listformat\"\n`));\n }\n const filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n const richValues = {};\n const serializedValues = values.map((v, i) => {\n if (typeof v === 'object') {\n const id = generateToken(i);\n richValues[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n const parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce((all, el) => {\n const val = el.value;\n if (richValues[val]) {\n all.push(richValues[val]);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n }\n catch (e) {\n onError(createError('Error formatting list.', e));\n }\n return values;\n}\n","import { filterProps, createError } from '../utils';\nconst DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName({ locale, onError }, getDisplayNames, value, options = {}) {\n const DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(createError(`Intl.DisplayNames is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-displaynames\"\n`));\n }\n const filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(createError('Error formatting display name.', e));\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { createError, DEFAULT_INTL_CONFIG, createFormatters, invariantIntlContext, createIntlCache, } from '../utils';\nimport { formatNumber, formatNumberToParts } from '../formatters/number';\nimport { formatRelativeTime } from '../formatters/relativeTime';\nimport { formatDate, formatTime, formatDateToParts, formatTimeToParts, } from '../formatters/dateTime';\nimport { formatPlural } from '../formatters/plural';\nimport { formatMessage, formatHTMLMessage } from '../formatters/message';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nimport { formatList } from '../formatters/list';\nimport { formatDisplayName } from '../formatters/displayName';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n };\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n const formatters = createFormatters(cache);\n const resolvedConfig = Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), config);\n const { locale, defaultLocale, onError } = resolvedConfig;\n if (!locale) {\n if (onError) {\n onError(createError(`\"locale\" was not configured, using \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/API.md#intlshape for more details`));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.NumberFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.DateTimeFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n return Object.assign(Object.assign({}, resolvedConfig), { formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatHTMLMessage: formatHTMLMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\nexport default class IntlProvider extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.cache = createIntlCache();\n this.state = {\n cache: this.cache,\n intl: createIntl(processIntlConfig(this.props), this.cache),\n prevConfig: processIntlConfig(this.props),\n };\n }\n static getDerivedStateFromProps(props, { prevConfig, cache }) {\n const config = processIntlConfig(props);\n if (!shallowEquals(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n }\n render() {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n }\n}\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nimport { invariant } from '@formatjs/intl-utils';\nconst MINUTE = 60;\nconst HOUR = 60 * 60;\nconst DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n const absValue = Math.abs(seconds);\n if (absValue < MINUTE) {\n return 'second';\n }\n if (absValue < HOUR) {\n return 'minute';\n }\n if (absValue < DAY) {\n return 'hour';\n }\n return 'day';\n}\nfunction getDurationInSeconds(unit) {\n switch (unit) {\n case 'second':\n return 1;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n default:\n return DAY;\n }\n}\nfunction valueToSeconds(value, unit) {\n if (!value) {\n return 0;\n }\n switch (unit) {\n case 'second':\n return value;\n case 'minute':\n return value * MINUTE;\n default:\n return value * HOUR;\n }\n}\nconst INCREMENTABLE_UNITS = ['second', 'minute', 'hour'];\nfunction canIncrement(unit = 'second') {\n return INCREMENTABLE_UNITS.includes(unit);\n}\nexport class FormattedRelativeTime extends React.PureComponent {\n constructor(props) {\n super(props);\n // Public for testing\n this._updateTimer = null;\n this.state = {\n prevUnit: this.props.unit,\n prevValue: this.props.value,\n currentValueInSeconds: canIncrement(this.props.unit)\n ? valueToSeconds(this.props.value, this.props.unit)\n : 0,\n };\n invariant(!props.updateIntervalInSeconds ||\n !!(props.updateIntervalInSeconds && canIncrement(props.unit)), 'Cannot schedule update with unit longer than hour');\n }\n scheduleNextUpdate({ updateIntervalInSeconds, unit }, { currentValueInSeconds }) {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n // If there's no interval and we cannot increment this unit, do nothing\n if (!updateIntervalInSeconds || !canIncrement(unit)) {\n return;\n }\n // Figure out the next interesting time\n const nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n const nextUnit = selectUnit(nextValueInSeconds);\n // We've reached the max auto incrementable unit, don't schedule another update\n if (nextUnit === 'day') {\n return;\n }\n const unitDuration = getDurationInSeconds(nextUnit);\n const remainder = nextValueInSeconds % unitDuration;\n const prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n const nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n ? prevInterestingValueInSeconds - unitDuration\n : prevInterestingValueInSeconds;\n const delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n this._updateTimer = setTimeout(() => this.setState({\n currentValueInSeconds: nextInterestingValueInSeconds,\n }), delayInSeconds * 1e3);\n }\n componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentDidUpdate() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentWillUnmount() {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.unit !== state.prevUnit || props.value !== state.prevValue) {\n return {\n prevValue: props.value,\n prevUnit: props.unit,\n currentValueInSeconds: canIncrement(props.unit)\n ? valueToSeconds(props.value, props.unit)\n : 0,\n };\n }\n return null;\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { formatRelativeTime, textComponent: Text } = intl;\n const { children, value, unit, updateIntervalInSeconds } = this.props;\n const { currentValueInSeconds } = this.state;\n let currentValue = value || 0;\n let currentUnit = unit;\n if (canIncrement(unit) &&\n typeof currentValueInSeconds === 'number' &&\n updateIntervalInSeconds) {\n currentUnit = selectUnit(currentValueInSeconds);\n const unitDuration = getDurationInSeconds(currentUnit);\n currentValue = Math.round(currentValueInSeconds / unitDuration);\n }\n const formattedRelativeTime = formatRelativeTime(currentValue, currentUnit, Object.assign({}, this.props));\n if (typeof children === 'function') {\n return children(formattedRelativeTime);\n }\n if (Text) {\n return React.createElement(Text, null, formattedRelativeTime);\n }\n return formattedRelativeTime;\n }));\n }\n}\nFormattedRelativeTime.displayName = 'FormattedRelativeTime';\nFormattedRelativeTime.defaultProps = {\n value: 0,\n unit: 'second',\n};\nexport default FormattedRelativeTime;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport withIntl from './injectIntl';\nconst FormattedPlural = props => {\n const { value, other, children, intl: { formatPlural, textComponent: Text }, } = props;\n const pluralCategory = formatPlural(value, props);\n const formattedPlural = props[pluralCategory] || other;\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n if (Text) {\n return React.createElement(Text, null, formattedPlural);\n }\n // Work around @types/react where React.FC cannot return string\n return formattedPlural;\n};\nFormattedPlural.defaultProps = {\n type: 'cardinal',\n};\nFormattedPlural.displayName = 'FormattedPlural';\nexport default withIntl(FormattedPlural);\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { formatMessage } from '../formatters/message';\nimport { invariantIntlContext, DEFAULT_INTL_CONFIG, createFormatters, } from '../utils';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nconst defaultFormatMessage = (descriptor, values) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Could not find required `intl` object. <IntlProvider> needs to exist in the component ancestry. Using default message as fallback.');\n }\n return formatMessage(Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), { locale: 'en' }), createFormatters(), descriptor, values);\n};\nclass FormattedMessage extends React.Component {\n shouldComponentUpdate(nextProps) {\n const _a = this.props, { values } = _a, otherProps = __rest(_a, [\"values\"]);\n const { values: nextValues } = nextProps, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (!shallowEquals(nextValues, values) ||\n !shallowEquals(otherProps, nextOtherProps));\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatMessage = defaultFormatMessage, textComponent: Text = React.Fragment, } = intl || {};\n const { id, description, defaultMessage, values, children, tagName: Component = Text, } = this.props;\n const descriptor = { id, description, defaultMessage };\n let nodes = formatMessage(descriptor, values);\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n if (typeof children === 'function') {\n return children(...nodes);\n }\n if (Component) {\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return React.createElement(Component, null, ...nodes);\n }\n return nodes;\n }));\n }\n}\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.defaultProps = {\n values: {},\n};\nexport default FormattedMessage;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport FormattedMessage from './message';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nclass FormattedHTMLMessage extends FormattedMessage {\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatHTMLMessage, textComponent } = intl;\n const { id, description, defaultMessage, values: rawValues, children, } = this.props;\n let { tagName: Component } = this.props;\n // This is bc of TS3.3 doesn't recognize `defaultProps`\n if (!Component) {\n Component = textComponent || 'span';\n }\n const descriptor = { id, description, defaultMessage };\n const formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n const html = { __html: formattedHTMLMessage };\n return React.createElement(Component, { dangerouslySetInnerHTML: html });\n }));\n }\n}\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.defaultProps = Object.assign(Object.assign({}, FormattedMessage.defaultProps), { tagName: 'span' });\nexport default FormattedHTMLMessage;\n","export function defineMessages(msgs) {\n return msgs;\n}\nimport { createFormattedComponent, createFormattedDateTimePartsComponent, } from './components/createFormattedComponent';\nexport { default as injectIntl, Provider as RawIntlProvider, Context as IntlContext, } from './components/injectIntl';\nexport { default as useIntl } from './components/useIntl';\nexport { default as IntlProvider, createIntl } from './components/provider';\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./types').CustomFormatConfig`\nexport const FormattedDate = createFormattedComponent('formatDate');\nexport const FormattedTime = createFormattedComponent('formatTime');\nexport const FormattedNumber = createFormattedComponent('formatNumber');\nexport const FormattedList = createFormattedComponent('formatList');\nexport const FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport const FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport const FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts } from './components/createFormattedComponent';\nexport { default as FormattedRelativeTime } from './components/relative';\nexport { default as FormattedPlural } from './components/plural';\nexport { default as FormattedMessage } from './components/message';\nexport { default as FormattedHTMLMessage } from './components/html-message';\nexport { createIntlCache } from './utils';\n","import { useContext } from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n const intl = useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n"],"names":["TYPE","isLiteralElement","el","type","literal","isSelectElement","select","isPluralElement","plural","extendStatics","_super","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","this","SyntaxError","Error","buildMessage","expected","found","hex","ch","charCodeAt","toString","toUpperCase","literalEscape","replace","classEscape","describeExpectation","expectation","text","escapedParts","parts","map","part","isArray","inverted","description","expected1","j","descriptions","sort","slice","join","describeExpected","found1","message","location","_this","name","captureStackTrace","pegParse","input","options","undefined","peg$result","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","messageText","value","insertLocation","peg$c2","peg$c3","peg$literalExpectation","peg$c4","pound","peg$c5","peg$otherExpectation","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","argument","peg$c11","peg$c12","peg$c13","peg$classExpectation","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","option","peg$c19","peg$c20","stem","peg$c21","tokens","peg$c22","peg$c23","peg$c24","skeleton","peg$c25","messageCtx","push","peg$c26","style","pop","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","number","date","time","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","pattern","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","pluralType","offset","reduce","all","_a","id","optionLocation","error","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","negative","num","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","escapedChar","quotedChars","peg$c79","x","isInPluralOption","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","peg$c86","peg$c87","peg$c88","peg$c89","peg$c90","peg$c91","peg$c92","digits","parseInt","peg$c93","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","substring","peg$computeLocation","location1","peg$buildSimpleError","text1","ignoreCase","peg$computePosDetails","pos","details","startPos","endPos","startPosDetails","endPosDetails","end","peg$fail","peg$parsemessage","s0","s1","peg$parsemessageElement","peg$parsemessageText","peg$parseliteralElement","s2","s3","s5","peg$parse_","peg$parseargNameOrNumber","peg$parseargumentElement","s7","s9","s10","s11","s12","substr","peg$parsenumberSkeletonToken","peg$parsenumberSkeleton","peg$parsenumberArgStyle","peg$parsenumberFormatElement","peg$parsedateTimeSkeletonLiteral","peg$parsedateTimeSkeletonPattern","peg$parsedateTimeSkeleton","peg$parsedateOrTimeArgStyle","peg$parsedateOrTimeFormatElement","peg$parsesimpleFormatElement","s13","s14","s15","peg$parsenumber","peg$parsepluralOption","peg$parsepluralElement","peg$parseselectOption","peg$parseselectElement","peg$parsepoundElement","peg$parsedoubleApostrophes","peg$parsequotedString","peg$parseunquotedString","peg$parsenumberSkeletonId","s4","peg$parsewhiteSpace","test","charAt","peg$parsenumberSkeletonTokenOption","s6","peg$parseargName","peg$parsepluralRuleSelectValue","peg$parsepatternSyntax","peg$parseargNumber","peg$parseescapedChar","captureLocation","__spreadArrays","il","r","k","a","jl","PLURAL_HASHTAG_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","result","match","len","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","parseSignificantPrecision","str","_","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseNotationOptions","opt","signOpts","convertNumberSkeletonToNumberFormatOptions","_i","tokens_1","token","currency","useGrouping","maximumFractionDigits","unit","notation","compactDisplay","currencyDisplay","unitDisplay","minimumFractionDigits","parse","opts","els","normalizeHashtagInPlural","forEach","keys","matchingLiteralElIndex","literalEl","el_1","newValue","newEls","splice","getCacheId","inputs","JSON","stringify","_typeof","obj","orderedProps","domParser","memoizeFormatConstructor","FormatConstructor","cache","args","cacheId","format","bind","FormatError","msg","variableId","formatToParts","locales","formatters","formats","values","currentPluralValue","originalMessage","els_1","varName","other","Intl","PluralRules","rule","getPluralRules","getNumberFormat","getDateTimeFormat","String","lastPart","mergeLiteral","TOKEN_DELIMITER","TOKEN_REGEX","counter","restoreRichPlaceholderMessage","objectParts","split","filter","Boolean","c","SIMPLE_XML_REGEX","TEMPLATE_ID","Date","now","VOID_ELEMENTS","formatHTMLMessage","formattedMessage","DOMParser","content","parseFromString","getElementById","tagsToFormat","getElementsByTagName","caseSensitiveTags","tagName","toLowerCase","childNodes","child","concat","formatHTMLElement","outerHTML","textContent","isVoidElement","indexOf","formatFnOrValue","chunks","mergeConfigs","defaultConfig","configs","c1","c2","mergeConfig","IntlMessageFormat","defaultLocale","NumberFormat","resolvedOptions","locale","__parse","percent","short","medium","long","full","overrideFormats","formatterCache","dateTime","pluralRules","formatToString","ast","supportedLocalesOf","getAst","TypeError","memoizeIntlConstructor","DateTimeFormat","createDefaultFormatters","invariant","condition","Err","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","props","whitelist","defaults","filtered","invariantIntlContext","intl","createError","exception","eMsg","stack","DEFAULT_INTL_CONFIG","messages","timeZone","textComponent","React","defaultFormats","onError","createIntlCache","relativeTime","list","displayNames","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getMessageFormat","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","formatType","defineProperty","exports","Symbol","for","e","f","g","h","l","m","q","u","$$typeof","v","module","require$$0","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","reactIs","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","hoistNonReactStatics","targetStatics","sourceStatics","key","descriptor","hoistNonReactStatics_","IntlContext","IntlConsumer","Consumer","Provider","Context","injectIntl","WrappedComponent","WithIntl","enforceContext","intlPropName","ref","forwardRef","forwardedRef","Component","getDisplayName","DisplayName","DisplayNameParts","__rest","propertyIsEnumerable","FormattedNumberParts","children","formatProps","formatNumberToParts","createFormattedDateTimePartsComponent","ComponentParts","formatDateToParts","formatTimeToParts","createFormattedComponent","formattedValue","Text","NUMBER_FORMAT_OPTIONS","getFormatter","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","config","DATE_TIME_FORMAT_OPTIONS","filteredOptions","PLURAL_FORMAT_OPTIONS","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","prepareIntlMessageFormatHtmlOutput","formatMessage","state","messageDescriptor","defaultMessage","formattedMessageParts","rawValues","escaped","escape","objA","objB","aKeys","bKeys","LIST_FORMAT_OPTIONS","formatList","richValues","serializedValues","generateToken","val","DISPLAY_NAMES_OPTONS","shallowEquals","shallowEquals_","processIntlConfig","createIntl","resolvedConfig","formatNumber","formatDate","formatTime","formatPlural","formatDisplayName","of","IntlProvider","prevConfig","MINUTE","HOUR","selectUnit","seconds","absValue","Math","abs","getDurationInSeconds","valueToSeconds","INCREMENTABLE_UNITS","canIncrement","includes","FormattedRelativeTime","_updateTimer","prevUnit","prevValue","currentValueInSeconds","updateIntervalInSeconds","clearTimeout","nextValueInSeconds","nextUnit","unitDuration","prevInterestingValueInSeconds","nextInterestingValueInSeconds","delayInSeconds","setTimeout","_this2","setState","scheduleNextUpdate","_this3","currentValue","currentUnit","round","formattedRelativeTime","FormattedPlural","formattedPlural","defaultFormatMessage","withIntl","FormattedMessage","nextProps","otherProps","nextValues","nextOtherProps","nodes","FormattedHTMLMessage","formattedHTMLMessage","html","__html","dangerouslySetInnerHTML","FormattedDate","FormattedTime","FormattedNumber","FormattedList","FormattedDisplayName","FormattedDateParts","FormattedTimeParts","msgs","useContext"],"mappings":"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"}