react-intl 4.7.5 → 5.0.2
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.
- package/CHANGELOG.md +58 -0
- package/dist/components/message.d.ts.map +1 -1
- package/dist/components/message.js +4 -24
- package/dist/components/message.js.map +1 -1
- package/dist/formatters/message.d.ts +2 -0
- package/dist/formatters/message.d.ts.map +1 -1
- package/dist/formatters/message.js +15 -3
- package/dist/formatters/message.js.map +1 -1
- package/dist/react-intl.d.ts +1 -1
- package/dist/react-intl.js +30 -24
- package/dist/react-intl.js.map +1 -1
- package/dist/react-intl.min.js +1 -1
- package/dist/react-intl.min.js.map +1 -1
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -1
- package/lib/components/message.d.ts.map +1 -1
- package/lib/components/message.js +5 -25
- package/lib/components/message.js.map +1 -1
- package/lib/formatters/message.d.ts +2 -0
- package/lib/formatters/message.d.ts.map +1 -1
- package/lib/formatters/message.js +15 -4
- package/lib/formatters/message.js.map +1 -1
- package/lib/utils.d.ts +9 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +12 -0
- package/lib/utils.js.map +1 -1
- package/package.json +12 -12
- package/src/components/message.tsx +4 -38
- package/src/formatters/message.ts +22 -3
- package/src/utils.ts +16 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-intl.min.js","sources":["../../intl-messageformat-parser/lib/types.js","../../intl-messageformat-parser/lib/parser.js","../../intl-messageformat-parser/lib/normalize.js","../../intl-messageformat-parser/lib/skeleton.js","../../intl-messageformat-parser/lib/index.js","../../intl-format-cache/lib/index.js","../../intl-messageformat/lib/error.js","../../intl-messageformat/lib/formatters.js","../../intl-messageformat/lib/core.js","../../intl-utils/lib/invariant.js","../lib/error.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/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 /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_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 isTagElement(el) {\n return el.type === TYPE.tag;\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//# sourceMappingURL=types.js.map","// 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(\"tagElement\");\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.literal, value: value.join('') }, insertLocation());\n };\n var peg$c11 = function (open, children, close) {\n if (open !== close) {\n error(\"Mismatch tag \\\"\" + open + \"\\\" !== \\\"\" + close + \"\\\"\", location());\n }\n return __assign({ type: TYPE.tag, value: open, children: children }, insertLocation());\n };\n var peg$c12 = function () { messageCtx.push('openingTag'); return true; };\n var peg$c13 = \">\";\n var peg$c14 = peg$literalExpectation(\">\", false);\n var peg$c15 = function (tag) { messageCtx.pop(); return true; };\n var peg$c16 = function (tag) {\n return tag;\n };\n var peg$c17 = \"</\";\n var peg$c18 = peg$literalExpectation(\"</\", false);\n var peg$c19 = function () { messageCtx.push('closingTag'); return true; };\n var peg$c20 = peg$otherExpectation(\"argumentElement\");\n var peg$c21 = \"{\";\n var peg$c22 = peg$literalExpectation(\"{\", false);\n var peg$c23 = \"}\";\n var peg$c24 = peg$literalExpectation(\"}\", false);\n var peg$c25 = function (value) {\n return __assign({ type: TYPE.argument, value: value }, insertLocation());\n };\n var peg$c26 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c27 = /^['\\/{}]/;\n var peg$c28 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c29 = peg$anyExpectation();\n var peg$c30 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c31 = \"/\";\n var peg$c32 = peg$literalExpectation(\"/\", false);\n var peg$c33 = function (option) { return option; };\n var peg$c34 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c35 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c36 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c37 = \"::\";\n var peg$c38 = peg$literalExpectation(\"::\", false);\n var peg$c39 = function (skeleton) { return skeleton; };\n var peg$c40 = function () { messageCtx.push('numberArgStyle'); return true; };\n var peg$c41 = function (style) {\n messageCtx.pop();\n return style.replace(/\\s*$/, '');\n };\n var peg$c42 = \",\";\n var peg$c43 = peg$literalExpectation(\",\", false);\n var peg$c44 = \"number\";\n var peg$c45 = peg$literalExpectation(\"number\", false);\n var peg$c46 = 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$c47 = \"'\";\n var peg$c48 = peg$literalExpectation(\"'\", false);\n var peg$c49 = /^[^']/;\n var peg$c50 = peg$classExpectation([\"'\"], true, false);\n var peg$c51 = /^[^a-zA-Z'{}]/;\n var peg$c52 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c53 = /^[a-zA-Z]/;\n var peg$c54 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c55 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c56 = function () { messageCtx.push('dateOrTimeArgStyle'); return true; };\n var peg$c57 = \"date\";\n var peg$c58 = peg$literalExpectation(\"date\", false);\n var peg$c59 = \"time\";\n var peg$c60 = peg$literalExpectation(\"time\", false);\n var peg$c61 = \"plural\";\n var peg$c62 = peg$literalExpectation(\"plural\", false);\n var peg$c63 = \"selectordinal\";\n var peg$c64 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c65 = \"offset:\";\n var peg$c66 = peg$literalExpectation(\"offset:\", false);\n var peg$c67 = 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$c68 = \"select\";\n var peg$c69 = peg$literalExpectation(\"select\", false);\n var peg$c70 = 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$c71 = \"=\";\n var peg$c72 = peg$literalExpectation(\"=\", false);\n var peg$c73 = function (id) { messageCtx.push('select'); return true; };\n var peg$c74 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c75 = function (id) { messageCtx.push('plural'); return true; };\n var peg$c76 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c77 = peg$otherExpectation(\"whitespace\");\n var peg$c78 = /^[\\t-\\r \\x85\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n var peg$c79 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\"], false, false);\n var peg$c80 = peg$otherExpectation(\"syntax pattern\");\n var peg$c81 = /^[!-\\/:-@[-\\^`{-~\\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$c82 = 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$c83 = peg$otherExpectation(\"optional whitespace\");\n var peg$c84 = peg$otherExpectation(\"number\");\n var peg$c85 = \"-\";\n var peg$c86 = peg$literalExpectation(\"-\", false);\n var peg$c87 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c88 = peg$otherExpectation(\"apostrophe\");\n var peg$c89 = peg$otherExpectation(\"double apostrophes\");\n var peg$c90 = \"''\";\n var peg$c91 = peg$literalExpectation(\"''\", false);\n var peg$c92 = function () { return \"'\"; };\n var peg$c93 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c94 = function (x) {\n return ((ignoreTag() || x !== '<') &&\n x !== '{' &&\n !(isInPluralOption() && x === '#') &&\n !(isNestedMessageText() && x === '}') &&\n !(!ignoreTag() && isNestedMessageText() && x === '>'));\n };\n var peg$c95 = \"\\n\";\n var peg$c96 = peg$literalExpectation(\"\\n\", false);\n var peg$c97 = function (x) {\n return x === '<' || x === '>' || x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c98 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c99 = peg$otherExpectation(\"validTag\");\n var peg$c100 = peg$otherExpectation(\"argNumber\");\n var peg$c101 = \"0\";\n var peg$c102 = peg$literalExpectation(\"0\", false);\n var peg$c103 = function () { return 0; };\n var peg$c104 = /^[1-9]/;\n var peg$c105 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c106 = /^[0-9]/;\n var peg$c107 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c108 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c109 = peg$otherExpectation(\"argName\");\n var peg$c110 = peg$otherExpectation(\"tagName\");\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$parsetagElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\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$parsetagElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 60) {\n s2 = peg$c6;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsevalidTag();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c8) {\n s5 = peg$c8;\n peg$currPos += 2;\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 s2 = [s2, s3, s4, s5];\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 }\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$c10(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseopeningTag();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessage();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseclosingTag();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(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 }\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$parseopeningTag() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 60) {\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 peg$savedPos = peg$currPos;\n s2 = peg$c12();\n if (s2) {\n s2 = undefined;\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsevalidTag();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s4 = peg$c13;\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 peg$savedPos = peg$currPos;\n s5 = peg$c15(s3);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16(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 return s0;\n }\n function peg$parseclosingTag() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c18);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$c19();\n if (s2) {\n s2 = undefined;\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsevalidTag();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s4 = peg$c13;\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 peg$savedPos = peg$currPos;\n s5 = peg$c15(s3);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16(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 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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$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 peg$savedPos = s0;\n s1 = peg$c25(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$c20);\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$c27.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$c28);\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$c29);\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$c27.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$c28);\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$c29);\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$c26);\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$c31;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c32);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c33(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$c30);\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$c35(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$c34);\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$c36(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$c37) {\n s1 = peg$c37;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c38);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(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$c40();\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$c41(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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$c42;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c44) {\n s7 = peg$c44;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c45);\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$c42;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\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$c23;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c46(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$c47;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c49.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$c50);\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$c49.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$c50);\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$c47;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\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$c51.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$c52);\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$c51.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$c52);\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$c53.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$c54);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c53.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$c54);\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$c55(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$c37) {\n s1 = peg$c37;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c38);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(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$c56();\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$c41(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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$c42;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c57) {\n s7 = peg$c57;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c58);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c59) {\n s7 = peg$c59;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c60);\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$c42;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\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$c23;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c46(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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$c42;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c61) {\n s7 = peg$c61;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c63) {\n s7 = peg$c63;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\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$c42;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\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$c65) {\n s12 = peg$c65;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c66);\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$c23;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c67(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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$c42;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c68) {\n s7 = peg$c68;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\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$c42;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\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$c23;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c70(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$c71;\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$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$c21;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c73(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$c23;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c74(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$c21;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c75(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$c23;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c76(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$c78.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$c79);\n }\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$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c81.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$c82);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c80);\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$c83);\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$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 s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87(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$c84);\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$c47;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c88);\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$c90) {\n s1 = peg$c90;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c92();\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$c89);\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$c47;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\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$c90) {\n s5 = peg$c90;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c49.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$c50);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c90) {\n s5 = peg$c90;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c49.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$c50);\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$c47;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c93(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$c29);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c94(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$c95;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c96);\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$c29);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c97(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$c98);\n }\n }\n return s0;\n }\n function peg$parsevalidTag() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parsetagName();\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$c99);\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$c101;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c102);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c103();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c104.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$c105);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c106.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$c107);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c106.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$c107);\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$c108(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$c100);\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$c29);\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$c29);\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$c109);\n }\n }\n return s0;\n }\n function peg$parsetagName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n if (input.charCodeAt(peg$currPos) === 45) {\n s2 = peg$c85;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s2 === peg$FAILED) {\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$c29);\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 if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (input.charCodeAt(peg$currPos) === 45) {\n s2 = peg$c85;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s2 === peg$FAILED) {\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$c29);\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 }\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$c110);\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 function ignoreTag() {\n return options && options.ignoreTag;\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//# sourceMappingURL=parser.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { 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//# sourceMappingURL=normalize.js.map","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+)(\\*)?|(#+)|(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 case '.':\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 // precision-integer case\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, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\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//# sourceMappingURL=skeleton.js.map","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//# sourceMappingURL=index.js.map","/*\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//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \" + this.code + \"] \" + this.message;\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", \"INVALID_VALUE\" /* INVALID_VALUE */, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\" + value + \"\\\" must be of type \" + type, \"INVALID_VALUE\" /* INVALID_VALUE */, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\", \"MISSING_VALUE\" /* MISSING_VALUE */, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n//# sourceMappingURL=error.js.map","import { convertNumberSkeletonToNumberFormatOptions, isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, parseDateTimeSkeleton, isTagElement, } from 'intl-messageformat-parser';\nimport { MissingValueError, InvalidValueError, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== 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}\nfunction isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: 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 MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? 0 /* literal */ : 1 /* object */,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? 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 (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 (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn.apply(void 0, parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? 0 /* literal */ : 1 /* object */,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\" + 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\", \"MISSING_INTL_API\" /* MISSING_INTL_API */, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n//# sourceMappingURL=formatters.js.map","/*\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 { formatToParts, } 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 var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== 0 /* literal */ ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { 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 ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\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 Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: true,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\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//# sourceMappingURL=core.js.map","export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n//# sourceMappingURL=invariant.js.map","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})();\nexport var ReactIntlErrorCode;\n(function (ReactIntlErrorCode) {\n ReactIntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n ReactIntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n ReactIntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n ReactIntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n ReactIntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(ReactIntlErrorCode || (ReactIntlErrorCode = {}));\nvar ReactIntlError = /** @class */ (function (_super) {\n __extends(ReactIntlError, _super);\n function ReactIntlError(code, message, exception) {\n var _this = _super.call(this, \"[React Intl Error \" + code + \"] \" + message + \" \\n\" + (exception ? \"\\n\" + exception.stack : '')) || this;\n _this.code = code;\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(_this, ReactIntlError);\n }\n return _this;\n }\n return ReactIntlError;\n}(Error));\nexport { ReactIntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, \"UNSUPPORTED_FORMATTER\" /* UNSUPPORTED_FORMATTER */, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(ReactIntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, \"INVALID_CONFIG\" /* INVALID_CONFIG */, message, exception) || this;\n }\n return InvalidConfigError;\n}(ReactIntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, \"MISSING_DATA\" /* MISSING_DATA */, message, exception) || this;\n }\n return MissingDataError;\n}(ReactIntlError));\nexport { MissingDataError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"FORMAT_ERROR\" /* FORMAT_ERROR */, message + \" \\nLocale: \" + locale + \"\\nMessageID: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) + \"\\nDefault Message: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage) + \"\\nDescription: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.description) + \" \\n\", exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(ReactIntlError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, \"MISSING_TRANSLATION\" /* MISSING_TRANSLATION */, \"Missing message: \\\"\" + descriptor.id + \"\\\" for locale \\\"\" + locale + \"\\\", using \" + (descriptor.defaultMessage ? 'default message' : 'id') + \" as fallback.\") || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(ReactIntlError));\nexport { MissingTranslationError };\n//# sourceMappingURL=error.js.map","/*\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';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, whitelist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return whitelist.reduce(function (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 var defaultErrorHandler = function (error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nexport var 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) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var 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 var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \" + type + \" format named: \" + name));\n}\n//# sourceMappingURL=utils.js.map","/** @license React v16.13.1\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';var 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?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(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 t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","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};\nimport * 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\nvar 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\nvar IntlContext = React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\" + getDisplayName(WrappedComponent) + \")\";\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n//# sourceMappingURL=injectIntl.js.map","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 var FormattedNumberParts = function (props) { return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n})); };\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n var ComponentParts = function (props) { return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n var 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 var Component = function (props) { return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n var formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n var Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n })); };\n Component.displayName = DisplayName[name];\n return Component;\n}\n//# sourceMappingURL=createFormattedComponent.js.map","import { getNamedFormat, filterProps } from '../utils';\nimport { ReactIntlError } from '../error';\nvar 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 // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting number.', e));\n }\n return [];\n}\n//# sourceMappingURL=number.js.map","import { getNamedFormat, filterProps } from '../utils';\nimport { FormatError } from 'intl-messageformat';\nimport { MessageFormatError } from '../error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new MessageFormatError('Error formatting relative time.', e));\n }\n return String(value);\n}\n//# sourceMappingURL=relativeTime.js.map","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See 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 { filterProps, getNamedFormat } from '../utils';\nimport { ReactIntlError } from '../error';\nvar 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 'hourCycle',\n // 'dateStyle',\n // 'timeStyle',\n 'fractionalSecondDigits',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var 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 = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat, value, options) {\n if (options === void 0) { options = {}; }\n var 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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat, value, options) {\n if (options === void 0) { options = {}; }\n var 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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateToParts(config, getDateTimeFormat, value, options) {\n if (options === void 0) { options = {}; }\n var 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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat, value, options) {\n if (options === void 0) { options = {}; }\n var 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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting time.', e));\n }\n return [];\n}\n//# sourceMappingURL=dateTime.js.map","import { filterProps } from '../utils';\nimport { MessageFormatError } from '../error';\nimport { FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new MessageFormatError('Error formatting plural.', e));\n }\n return 'other';\n}\n//# sourceMappingURL=plural.js.map","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See 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};\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 * as React from 'react';\nimport { invariant } from '@formatjs/intl-utils';\nimport IntlMessageFormat from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from '../error';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nfunction prepareIntlMessageFormatHtmlOutput(chunks, shouldWrap) {\n return Array.isArray(chunks) && shouldWrap\n ? React.createElement.apply(React, __spreadArrays([React.Fragment, null], chunks)) : chunks;\n}\nexport function formatMessage(_a, state, messageDescriptor, values) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, onError = _a.onError, timeZone = _a.timeZone, wrapRichTextChunksInFragment = _a.wrapRichTextChunksInFragment;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var id = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\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 var message = messages && messages[String(id)];\n // IMPORTANT: Hot path straight lookup for performance\n if (!values && message && typeof message === 'string') {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n return prepareIntlMessageFormatHtmlOutput(formatter.format(values), wrapRichTextChunksInFragment);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\" + id + \"\\\", rendering default message verbatim\", locale, messageDescriptor, e));\n return defaultMessage;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n return prepareIntlMessageFormatHtmlOutput(formatter.format(values), wrapRichTextChunksInFragment);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\" + id + \"\\\", using \" + (defaultMessage ? 'default message' : 'id') + \" as fallback.\", locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n return prepareIntlMessageFormatHtmlOutput(formatter.format(values), wrapRichTextChunksInFragment);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\" + id + \"\\\", rendering message verbatim\", locale, messageDescriptor, e));\n }\n }\n return message || defaultMessage || id;\n}\n//# sourceMappingURL=message.js.map","'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 } from '../utils';\nimport { FormatError } from 'intl-messageformat';\nimport { ReactIntlError } from '../error';\nvar LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return now + \"_\" + i + \"_\" + now;\n}\nexport function formatList(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues_1).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n var parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce(function (all, el) {\n var val = el.value;\n if (richValues_1[val]) {\n all.push(richValues_1[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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting list.', e));\n }\n return values;\n}\n//# sourceMappingURL=list.js.map","import { filterProps } from '../utils';\nimport { FormatError } from 'intl-messageformat';\nimport { ReactIntlError } from '../error';\nvar DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting display name.', e));\n }\n}\n//# sourceMappingURL=displayName.js.map","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\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};\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { 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 } from '../formatters/message';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nimport { formatList } from '../formatters/list';\nimport { formatDisplayName } from '../formatters/displayName';\nimport { InvalidConfigError, MissingDataError } from '../error';\nvar 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 wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\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 var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#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(new MissingDataError(\"Missing locale data for locale: \\\"\" + locale + \"\\\" in Intl.NumberFormat. Using default locale: \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\"));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\" + locale + \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\"));\n }\n return __assign(__assign({}, resolvedConfig), { formatters: 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), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\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 return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var 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 IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n//# sourceMappingURL=provider.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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';\nvar MINUTE = 60;\nvar HOUR = 60 * 60;\nvar DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n var 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}\nvar INCREMENTABLE_UNITS = ['second', 'minute', 'hour'];\nfunction canIncrement(unit) {\n if (unit === void 0) { unit = 'second'; }\n return INCREMENTABLE_UNITS.includes(unit);\n}\nvar FormattedRelativeTime = /** @class */ (function (_super) {\n __extends(FormattedRelativeTime, _super);\n function FormattedRelativeTime(props) {\n var _this = _super.call(this, props) || this;\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 return _this;\n }\n FormattedRelativeTime.prototype.scheduleNextUpdate = function (_a, _b) {\n var _this = this;\n var updateIntervalInSeconds = _a.updateIntervalInSeconds, unit = _a.unit;\n var currentValueInSeconds = _b.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 var nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n var 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 var unitDuration = getDurationInSeconds(nextUnit);\n var remainder = nextValueInSeconds % unitDuration;\n var prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n var nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n ? prevInterestingValueInSeconds - unitDuration\n : prevInterestingValueInSeconds;\n var delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n this._updateTimer = setTimeout(function () {\n return _this.setState({\n currentValueInSeconds: nextInterestingValueInSeconds,\n });\n }, delayInSeconds * 1e3);\n };\n FormattedRelativeTime.prototype.componentDidMount = function () {\n this.scheduleNextUpdate(this.props, this.state);\n };\n FormattedRelativeTime.prototype.componentDidUpdate = function () {\n this.scheduleNextUpdate(this.props, this.state);\n };\n FormattedRelativeTime.prototype.componentWillUnmount = function () {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n };\n FormattedRelativeTime.getDerivedStateFromProps = function (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 FormattedRelativeTime.prototype.render = function () {\n var _this = this;\n return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var formatRelativeTime = intl.formatRelativeTime, Text = intl.textComponent;\n var _a = _this.props, children = _a.children, value = _a.value, unit = _a.unit, updateIntervalInSeconds = _a.updateIntervalInSeconds;\n var currentValueInSeconds = _this.state.currentValueInSeconds;\n var currentValue = value || 0;\n var currentUnit = unit;\n if (canIncrement(unit) &&\n typeof currentValueInSeconds === 'number' &&\n updateIntervalInSeconds) {\n currentUnit = selectUnit(currentValueInSeconds);\n var unitDuration = getDurationInSeconds(currentUnit);\n currentValue = Math.round(currentValueInSeconds / unitDuration);\n }\n var formattedRelativeTime = formatRelativeTime(currentValue, currentUnit, __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 FormattedRelativeTime.displayName = 'FormattedRelativeTime';\n FormattedRelativeTime.defaultProps = {\n value: 0,\n unit: 'second',\n };\n return FormattedRelativeTime;\n}(React.PureComponent));\nexport { FormattedRelativeTime };\nexport default FormattedRelativeTime;\n//# sourceMappingURL=relative.js.map","/*\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';\nvar FormattedPlural = function (props) {\n var value = props.value, other = props.other, children = props.children, _a = props.intl, formatPlural = _a.formatPlural, Text = _a.textComponent;\n var pluralCategory = formatPlural(value, props);\n var 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';\n// Explicitly annotate type here to workaround API extractor's inability to handle `import('./someModule')`\n// type annotations when rolling up DTS file.\nvar FormattedPluralWithIntl = withIntl(FormattedPlural);\nexport default FormattedPluralWithIntl;\n//# sourceMappingURL=plural.js.map","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\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};\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};\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 * 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';\nvar shallowEquals = shallowEquals_.default || shallowEquals_;\nfunction 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(__assign(__assign({}, DEFAULT_INTL_CONFIG), { locale: 'en' }), createFormatters(), descriptor, values);\n}\nvar FormattedMessage = /** @class */ (function (_super) {\n __extends(FormattedMessage, _super);\n function FormattedMessage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FormattedMessage.prototype.shouldComponentUpdate = function (nextProps) {\n var _a = this.props, values = _a.values, otherProps = __rest(_a, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (!shallowEquals(nextValues, values) ||\n !shallowEquals(otherProps, nextOtherProps));\n };\n FormattedMessage.prototype.render = function () {\n var _this = this;\n return (React.createElement(Context.Consumer, null, function (intl) {\n if (!_this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n var _a = intl || {}, _b = _a.formatMessage, formatMessage = _b === void 0 ? defaultFormatMessage : _b, _c = _a.textComponent, Text = _c === void 0 ? React.Fragment : _c;\n var _d = _this.props, id = _d.id, description = _d.description, defaultMessage = _d.defaultMessage, values = _d.values, children = _d.children, _e = _d.tagName, Component = _e === void 0 ? Text : _e;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values);\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n if (typeof children === 'function') {\n return children.apply(void 0, 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.apply(React, __spreadArrays([Component, null], nodes));\n }\n return nodes;\n }));\n };\n FormattedMessage.displayName = 'FormattedMessage';\n return FormattedMessage;\n}(React.Component));\nexport default FormattedMessage;\n//# sourceMappingURL=message.js.map","export function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\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 var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var 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 { createIntlCache } from './utils';\nexport * from './error';\n//# sourceMappingURL=index.js.map","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n//# sourceMappingURL=useIntl.js.map"],"names":["TYPE","SKELETON_TYPE","isLiteralElement","el","type","literal","isSelectElement","select","isPluralElement","plural","isDateTimeSkeleton","extendStatics","_super","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","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","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","peg$c11","open","children","close","error","tag","peg$c12","messageCtx","push","peg$c13","peg$c14","peg$c15","pop","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","peg$c25","argument","peg$c26","peg$c27","peg$c28","peg$classExpectation","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","option","peg$c34","peg$c35","stem","peg$c36","tokens","peg$c37","peg$c38","peg$c39","skeleton","peg$c40","peg$c41","style","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","number","date","time","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","pattern","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","pluralType","offset","reduce","all","_a","id","optionLocation","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","peg$c73","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","peg$c79","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","peg$c86","peg$c87","negative","num","peg$c89","peg$c90","peg$c91","peg$c92","peg$c93","escapedChar","quotedChars","peg$c94","x","ignoreTag","isInPluralOption","isNestedMessageText","peg$c95","peg$c96","peg$c97","peg$c98","peg$c99","peg$c100","peg$c101","peg$c102","peg$c103","peg$c104","peg$c105","peg$c106","peg$c107","peg$c108","digits","parseInt","peg$c109","peg$c110","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","undefined","startRule","substring","peg$computeLocation","location1","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","s4","peg$parsevalidTag","peg$parseopeningTag","peg$parseclosingTag","peg$parsetagElement","peg$parsepoundElement","peg$parsedoubleApostrophes","peg$parsequotedString","peg$parseunquotedString","peg$parsenumberSkeletonId","peg$parsewhiteSpace","test","charAt","peg$parsenumberSkeletonTokenOption","s6","peg$parseargName","peg$parsepatternSyntax","peg$parseargNumber","peg$parseescapedChar","peg$parsetagName","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","g3","g4","g5","minimumFractionDigits","parse","opts","els","normalizeHashtagInPlural","forEach","keys","newValue","newEls","matchingLiteralElIndex","literalEl","el_1","splice","getCacheId","inputs","JSON","stringify","obj","ErrorCode","memoizeFormatConstructor","FormatConstructor","cache","args","cacheId","format","bind","FormatError","code","msg","originalMessage","InvalidValueError","variableId","InvalidValueTypeError","PART_TYPE","MissingValueError","formatToParts","locales","formatters","formats","values","currentPluralValue","els_1","varName","value_1","formatFn","chunks","c","other","Intl","PluralRules","rule","getPluralRules","getNumberFormat","getDateTimeFormat","String","lastPart","mergeConfigs","defaultConfig","configs","c1","c2","IntlMessageFormat","defineProperty","get","memoizedDefaultLocale","NumberFormat","resolvedOptions","locale","enumerable","configurable","__parse","percent","short","medium","long","full","overrideFormats","defaultLocale","formatterCache","dateTime","pluralRules","ast","supportedLocalesOf","getAst","TypeError","memoizeIntlConstructor","DateTimeFormat","invariant","condition","Err","ReactIntlErrorCode","ReactIntlError","exception","stack","UnsupportedFormatterError","InvalidConfigError","MissingDataError","MessageFormatError","descriptor","defaultMessage","MissingTranslationError","filterProps","props","whitelist","defaults","filtered","invariantIntlContext","intl","DEFAULT_INTL_CONFIG","messages","timeZone","textComponent","React.Fragment","defaultFormats","onError","createIntlCache","relativeTime","list","displayNames","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getMessageFormat","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","formatType","Symbol","for","e","f","g","h","l","m","q","v","w","y","z","u","$$typeof","A","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","concat","targetStatics","sourceStatics","key","hoistNonReactStatics_.default","IntlContext","React.createContext","IntlConsumer","Consumer","Provider","Context","injectIntl","WrappedComponent","WithIntl","React.createElement","enforceContext","intlProp","intlPropName","ref","forwardRef","forwardedRef","Component","_b","_c","_d","React.forwardRef","DisplayName","DisplayNameParts","__rest","indexOf","propertyIsEnumerable","FormattedNumberParts","formatProps","formatNumberToParts","createFormattedDateTimePartsComponent","ComponentParts","Date","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","shouldWrap","React","formatMessage","state","messageDescriptor","wrapRichTextChunksInFragment","toLowerCase","objA","objB","aKeys","bKeys","LIST_FORMAT_OPTIONS","now","formatList","richValues_1","serializedValues","val","DISPLAY_NAMES_OPTONS","shallowEquals","shallowEquals_.default","processIntlConfig","createIntl","resolvedConfig","formatNumber","formatDate","formatTime","formatPlural","formatDisplayName","of","IntlProvider","React.PureComponent","prevConfig","MINUTE","HOUR","selectUnit","seconds","absValue","Math","abs","getDurationInSeconds","valueToSeconds","INCREMENTABLE_UNITS","canIncrement","includes","FormattedRelativeTime","scheduleNextUpdate","nextValueInSeconds","nextUnit","unitDuration","prevInterestingValueInSeconds","nextInterestingValueInSeconds","delayInSeconds","updateIntervalInSeconds","currentValueInSeconds","clearTimeout","_updateTimer","setTimeout","setState","componentDidMount","componentDidUpdate","componentWillUnmount","prevUnit","prevValue","currentValue","currentUnit","round","formattedRelativeTime","FormattedPlural","formattedPlural","FormattedPluralWithIntl","withIntl","defaultFormatMessage","FormattedMessage","React.Component","shouldComponentUpdate","nextProps","otherProps","nextValues","nextOtherProps","_e","tagName","nodes","FormattedDate","FormattedTime","FormattedNumber","FormattedList","FormattedDisplayName","FormattedDateParts","FormattedTimeParts","msgs","React.useContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-intl.min.js","sources":["../../intl-messageformat-parser/lib/types.js","../../intl-messageformat-parser/lib/parser.js","../../intl-messageformat-parser/lib/normalize.js","../../intl-messageformat-parser/lib/skeleton.js","../../intl-messageformat-parser/lib/index.js","../../intl-format-cache/lib/index.js","../../intl-messageformat/lib/error.js","../../intl-messageformat/lib/formatters.js","../../intl-messageformat/lib/core.js","../../intl-utils/lib/invariant.js","../lib/error.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/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 /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_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 isTagElement(el) {\n return el.type === TYPE.tag;\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//# sourceMappingURL=types.js.map","// 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(\"tagElement\");\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.literal, value: value.join('') }, insertLocation());\n };\n var peg$c11 = function (open, children, close) {\n if (open !== close) {\n error(\"Mismatch tag \\\"\" + open + \"\\\" !== \\\"\" + close + \"\\\"\", location());\n }\n return __assign({ type: TYPE.tag, value: open, children: children }, insertLocation());\n };\n var peg$c12 = function () { messageCtx.push('openingTag'); return true; };\n var peg$c13 = \">\";\n var peg$c14 = peg$literalExpectation(\">\", false);\n var peg$c15 = function (tag) { messageCtx.pop(); return true; };\n var peg$c16 = function (tag) {\n return tag;\n };\n var peg$c17 = \"</\";\n var peg$c18 = peg$literalExpectation(\"</\", false);\n var peg$c19 = function () { messageCtx.push('closingTag'); return true; };\n var peg$c20 = peg$otherExpectation(\"argumentElement\");\n var peg$c21 = \"{\";\n var peg$c22 = peg$literalExpectation(\"{\", false);\n var peg$c23 = \"}\";\n var peg$c24 = peg$literalExpectation(\"}\", false);\n var peg$c25 = function (value) {\n return __assign({ type: TYPE.argument, value: value }, insertLocation());\n };\n var peg$c26 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c27 = /^['\\/{}]/;\n var peg$c28 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c29 = peg$anyExpectation();\n var peg$c30 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c31 = \"/\";\n var peg$c32 = peg$literalExpectation(\"/\", false);\n var peg$c33 = function (option) { return option; };\n var peg$c34 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c35 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c36 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c37 = \"::\";\n var peg$c38 = peg$literalExpectation(\"::\", false);\n var peg$c39 = function (skeleton) { return skeleton; };\n var peg$c40 = function () { messageCtx.push('numberArgStyle'); return true; };\n var peg$c41 = function (style) {\n messageCtx.pop();\n return style.replace(/\\s*$/, '');\n };\n var peg$c42 = \",\";\n var peg$c43 = peg$literalExpectation(\",\", false);\n var peg$c44 = \"number\";\n var peg$c45 = peg$literalExpectation(\"number\", false);\n var peg$c46 = 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$c47 = \"'\";\n var peg$c48 = peg$literalExpectation(\"'\", false);\n var peg$c49 = /^[^']/;\n var peg$c50 = peg$classExpectation([\"'\"], true, false);\n var peg$c51 = /^[^a-zA-Z'{}]/;\n var peg$c52 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c53 = /^[a-zA-Z]/;\n var peg$c54 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c55 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c56 = function () { messageCtx.push('dateOrTimeArgStyle'); return true; };\n var peg$c57 = \"date\";\n var peg$c58 = peg$literalExpectation(\"date\", false);\n var peg$c59 = \"time\";\n var peg$c60 = peg$literalExpectation(\"time\", false);\n var peg$c61 = \"plural\";\n var peg$c62 = peg$literalExpectation(\"plural\", false);\n var peg$c63 = \"selectordinal\";\n var peg$c64 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c65 = \"offset:\";\n var peg$c66 = peg$literalExpectation(\"offset:\", false);\n var peg$c67 = 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$c68 = \"select\";\n var peg$c69 = peg$literalExpectation(\"select\", false);\n var peg$c70 = 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$c71 = \"=\";\n var peg$c72 = peg$literalExpectation(\"=\", false);\n var peg$c73 = function (id) { messageCtx.push('select'); return true; };\n var peg$c74 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c75 = function (id) { messageCtx.push('plural'); return true; };\n var peg$c76 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c77 = peg$otherExpectation(\"whitespace\");\n var peg$c78 = /^[\\t-\\r \\x85\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n var peg$c79 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\"], false, false);\n var peg$c80 = peg$otherExpectation(\"syntax pattern\");\n var peg$c81 = /^[!-\\/:-@[-\\^`{-~\\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$c82 = 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$c83 = peg$otherExpectation(\"optional whitespace\");\n var peg$c84 = peg$otherExpectation(\"number\");\n var peg$c85 = \"-\";\n var peg$c86 = peg$literalExpectation(\"-\", false);\n var peg$c87 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c88 = peg$otherExpectation(\"apostrophe\");\n var peg$c89 = peg$otherExpectation(\"double apostrophes\");\n var peg$c90 = \"''\";\n var peg$c91 = peg$literalExpectation(\"''\", false);\n var peg$c92 = function () { return \"'\"; };\n var peg$c93 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c94 = function (x) {\n return ((ignoreTag() || x !== '<') &&\n x !== '{' &&\n !(isInPluralOption() && x === '#') &&\n !(isNestedMessageText() && x === '}') &&\n !(!ignoreTag() && isNestedMessageText() && x === '>'));\n };\n var peg$c95 = \"\\n\";\n var peg$c96 = peg$literalExpectation(\"\\n\", false);\n var peg$c97 = function (x) {\n return x === '<' || x === '>' || x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c98 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c99 = peg$otherExpectation(\"validTag\");\n var peg$c100 = peg$otherExpectation(\"argNumber\");\n var peg$c101 = \"0\";\n var peg$c102 = peg$literalExpectation(\"0\", false);\n var peg$c103 = function () { return 0; };\n var peg$c104 = /^[1-9]/;\n var peg$c105 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c106 = /^[0-9]/;\n var peg$c107 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c108 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c109 = peg$otherExpectation(\"argName\");\n var peg$c110 = peg$otherExpectation(\"tagName\");\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$parsetagElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\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$parsetagElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 60) {\n s2 = peg$c6;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsevalidTag();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c8) {\n s5 = peg$c8;\n peg$currPos += 2;\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 s2 = [s2, s3, s4, s5];\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 }\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$c10(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseopeningTag();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessage();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseclosingTag();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(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 }\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$parseopeningTag() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 60) {\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 peg$savedPos = peg$currPos;\n s2 = peg$c12();\n if (s2) {\n s2 = undefined;\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsevalidTag();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s4 = peg$c13;\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 peg$savedPos = peg$currPos;\n s5 = peg$c15(s3);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16(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 return s0;\n }\n function peg$parseclosingTag() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c18);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$c19();\n if (s2) {\n s2 = undefined;\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsevalidTag();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s4 = peg$c13;\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 peg$savedPos = peg$currPos;\n s5 = peg$c15(s3);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16(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 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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$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 peg$savedPos = s0;\n s1 = peg$c25(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$c20);\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$c27.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$c28);\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$c29);\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$c27.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$c28);\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$c29);\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$c26);\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$c31;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c32);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c33(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$c30);\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$c35(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$c34);\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$c36(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$c37) {\n s1 = peg$c37;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c38);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(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$c40();\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$c41(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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$c42;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c44) {\n s7 = peg$c44;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c45);\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$c42;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\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$c23;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c46(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$c47;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c49.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$c50);\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$c49.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$c50);\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$c47;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\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$c51.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$c52);\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$c51.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$c52);\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$c53.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$c54);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c53.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$c54);\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$c55(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$c37) {\n s1 = peg$c37;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c38);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(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$c56();\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$c41(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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$c42;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c57) {\n s7 = peg$c57;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c58);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c59) {\n s7 = peg$c59;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c60);\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$c42;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\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$c23;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c46(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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$c42;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c61) {\n s7 = peg$c61;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c63) {\n s7 = peg$c63;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\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$c42;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\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$c65) {\n s12 = peg$c65;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c66);\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$c23;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c67(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$c21;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\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$c42;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c68) {\n s7 = peg$c68;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\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$c42;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\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$c23;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c70(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$c71;\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$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$c21;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c73(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$c23;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c74(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$c21;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c22);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c75(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$c23;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c24);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c76(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$c78.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$c79);\n }\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$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c81.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$c82);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c80);\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$c83);\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$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 s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87(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$c84);\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$c47;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c88);\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$c90) {\n s1 = peg$c90;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c92();\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$c89);\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$c47;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\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$c90) {\n s5 = peg$c90;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c49.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$c50);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c90) {\n s5 = peg$c90;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c49.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$c50);\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$c47;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c48);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c93(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$c29);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c94(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$c95;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c96);\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$c29);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c97(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$c98);\n }\n }\n return s0;\n }\n function peg$parsevalidTag() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parsetagName();\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$c99);\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$c101;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c102);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c103();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c104.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$c105);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c106.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$c107);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c106.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$c107);\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$c108(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$c100);\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$c29);\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$c29);\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$c109);\n }\n }\n return s0;\n }\n function peg$parsetagName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n if (input.charCodeAt(peg$currPos) === 45) {\n s2 = peg$c85;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s2 === peg$FAILED) {\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$c29);\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 if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (input.charCodeAt(peg$currPos) === 45) {\n s2 = peg$c85;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s2 === peg$FAILED) {\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$c29);\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 }\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$c110);\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 function ignoreTag() {\n return options && options.ignoreTag;\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//# sourceMappingURL=parser.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { 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//# sourceMappingURL=normalize.js.map","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+)(\\*)?|(#+)|(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 case '.':\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 // precision-integer case\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, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\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//# sourceMappingURL=skeleton.js.map","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//# sourceMappingURL=index.js.map","/*\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//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \" + this.code + \"] \" + this.message;\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", \"INVALID_VALUE\" /* INVALID_VALUE */, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\" + value + \"\\\" must be of type \" + type, \"INVALID_VALUE\" /* INVALID_VALUE */, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\", \"MISSING_VALUE\" /* MISSING_VALUE */, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n//# sourceMappingURL=error.js.map","import { convertNumberSkeletonToNumberFormatOptions, isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, parseDateTimeSkeleton, isTagElement, } from 'intl-messageformat-parser';\nimport { MissingValueError, InvalidValueError, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== 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}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: 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 MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? 0 /* literal */ : 1 /* object */,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? 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 (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 (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? 0 /* literal */ : 1 /* object */,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\" + 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\", \"MISSING_INTL_API\" /* MISSING_INTL_API */, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n//# sourceMappingURL=formatters.js.map","/*\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 { formatToParts, } 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 var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== 0 /* literal */ ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { 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 ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\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 Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: true,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\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//# sourceMappingURL=core.js.map","export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n//# sourceMappingURL=invariant.js.map","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})();\nexport var ReactIntlErrorCode;\n(function (ReactIntlErrorCode) {\n ReactIntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n ReactIntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n ReactIntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n ReactIntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n ReactIntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(ReactIntlErrorCode || (ReactIntlErrorCode = {}));\nvar ReactIntlError = /** @class */ (function (_super) {\n __extends(ReactIntlError, _super);\n function ReactIntlError(code, message, exception) {\n var _this = _super.call(this, \"[React Intl Error \" + code + \"] \" + message + \" \\n\" + (exception ? \"\\n\" + exception.stack : '')) || this;\n _this.code = code;\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(_this, ReactIntlError);\n }\n return _this;\n }\n return ReactIntlError;\n}(Error));\nexport { ReactIntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, \"UNSUPPORTED_FORMATTER\" /* UNSUPPORTED_FORMATTER */, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(ReactIntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, \"INVALID_CONFIG\" /* INVALID_CONFIG */, message, exception) || this;\n }\n return InvalidConfigError;\n}(ReactIntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, \"MISSING_DATA\" /* MISSING_DATA */, message, exception) || this;\n }\n return MissingDataError;\n}(ReactIntlError));\nexport { MissingDataError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"FORMAT_ERROR\" /* FORMAT_ERROR */, message + \" \\nLocale: \" + locale + \"\\nMessageID: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) + \"\\nDefault Message: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage) + \"\\nDescription: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.description) + \" \\n\", exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(ReactIntlError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, \"MISSING_TRANSLATION\" /* MISSING_TRANSLATION */, \"Missing message: \\\"\" + descriptor.id + \"\\\" for locale \\\"\" + locale + \"\\\", using \" + (descriptor.defaultMessage ? 'default message' : 'id') + \" as fallback.\") || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(ReactIntlError));\nexport { MissingTranslationError };\n//# sourceMappingURL=error.js.map","/*\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';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, whitelist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return whitelist.reduce(function (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 var defaultErrorHandler = function (error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nexport var 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) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var 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 var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \" + type + \" format named: \" + name));\n}\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\n//# sourceMappingURL=utils.js.map","/** @license React v16.13.1\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';var 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?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(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 t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","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};\nimport * 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\nvar 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\nvar IntlContext = React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\" + getDisplayName(WrappedComponent) + \")\";\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n//# sourceMappingURL=injectIntl.js.map","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 var FormattedNumberParts = function (props) { return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n})); };\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n var ComponentParts = function (props) { return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n var 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 var Component = function (props) { return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n var formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n var Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n })); };\n Component.displayName = DisplayName[name];\n return Component;\n}\n//# sourceMappingURL=createFormattedComponent.js.map","import { getNamedFormat, filterProps } from '../utils';\nimport { ReactIntlError } from '../error';\nvar 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 // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting number.', e));\n }\n return [];\n}\n//# sourceMappingURL=number.js.map","import { getNamedFormat, filterProps } from '../utils';\nimport { FormatError } from 'intl-messageformat';\nimport { MessageFormatError } from '../error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new MessageFormatError('Error formatting relative time.', e));\n }\n return String(value);\n}\n//# sourceMappingURL=relativeTime.js.map","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See 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 { filterProps, getNamedFormat } from '../utils';\nimport { ReactIntlError } from '../error';\nvar 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 'hourCycle',\n // 'dateStyle',\n // 'timeStyle',\n 'fractionalSecondDigits',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var 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 = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat, value, options) {\n if (options === void 0) { options = {}; }\n var 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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat, value, options) {\n if (options === void 0) { options = {}; }\n var 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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateToParts(config, getDateTimeFormat, value, options) {\n if (options === void 0) { options = {}; }\n var 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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat, value, options) {\n if (options === void 0) { options = {}; }\n var 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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting time.', e));\n }\n return [];\n}\n//# sourceMappingURL=dateTime.js.map","import { filterProps } from '../utils';\nimport { MessageFormatError } from '../error';\nimport { FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new MessageFormatError('Error formatting plural.', e));\n }\n return 'other';\n}\n//# sourceMappingURL=plural.js.map","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See 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};\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 * as React from 'react';\nimport { invariant } from '@formatjs/intl-utils';\nimport { assignUniqueKeysToParts } from '../utils';\nimport IntlMessageFormat, { isFormatXMLElementFn, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from '../error';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__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 assignUniqueKeysToFormatXMLElementFnArgument(values) {\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nfunction prepareIntlMessageFormatHtmlOutput(chunks, shouldWrap) {\n return Array.isArray(chunks) && shouldWrap\n ? React.createElement.apply(React, __spreadArrays([React.Fragment, null], chunks)) : chunks;\n}\nexport function formatMessage(_a, state, messageDescriptor, values) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, onError = _a.onError, timeZone = _a.timeZone, wrapRichTextChunksInFragment = _a.wrapRichTextChunksInFragment;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var id = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\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 var message = messages && messages[String(id)];\n // IMPORTANT: Hot path straight lookup for performance\n if (!values && message && typeof message === 'string') {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n var patchedValues = values && assignUniqueKeysToFormatXMLElementFnArgument(values);\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n return prepareIntlMessageFormatHtmlOutput(formatter.format(patchedValues), wrapRichTextChunksInFragment);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\" + id + \"\\\", rendering default message verbatim\", locale, messageDescriptor, e));\n return defaultMessage;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n return prepareIntlMessageFormatHtmlOutput(formatter.format(patchedValues), wrapRichTextChunksInFragment);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\" + id + \"\\\", using \" + (defaultMessage ? 'default message' : 'id') + \" as fallback.\", locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n return prepareIntlMessageFormatHtmlOutput(formatter.format(patchedValues), wrapRichTextChunksInFragment);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\" + id + \"\\\", rendering message verbatim\", locale, messageDescriptor, e));\n }\n }\n return message || defaultMessage || id;\n}\n//# sourceMappingURL=message.js.map","'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 } from '../utils';\nimport { FormatError } from 'intl-messageformat';\nimport { ReactIntlError } from '../error';\nvar LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return now + \"_\" + i + \"_\" + now;\n}\nexport function formatList(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues_1).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n var parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce(function (all, el) {\n var val = el.value;\n if (richValues_1[val]) {\n all.push(richValues_1[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(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting list.', e));\n }\n return values;\n}\n//# sourceMappingURL=list.js.map","import { filterProps } from '../utils';\nimport { FormatError } from 'intl-messageformat';\nimport { ReactIntlError } from '../error';\nvar DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new ReactIntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting display name.', e));\n }\n}\n//# sourceMappingURL=displayName.js.map","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\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};\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { 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 } from '../formatters/message';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nimport { formatList } from '../formatters/list';\nimport { formatDisplayName } from '../formatters/displayName';\nimport { InvalidConfigError, MissingDataError } from '../error';\nvar 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 wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\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 var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#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(new MissingDataError(\"Missing locale data for locale: \\\"\" + locale + \"\\\" in Intl.NumberFormat. Using default locale: \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\"));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\" + locale + \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\"));\n }\n return __assign(__assign({}, resolvedConfig), { formatters: 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), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\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 return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var 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 IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n//# sourceMappingURL=provider.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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';\nvar MINUTE = 60;\nvar HOUR = 60 * 60;\nvar DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n var 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}\nvar INCREMENTABLE_UNITS = ['second', 'minute', 'hour'];\nfunction canIncrement(unit) {\n if (unit === void 0) { unit = 'second'; }\n return INCREMENTABLE_UNITS.includes(unit);\n}\nvar FormattedRelativeTime = /** @class */ (function (_super) {\n __extends(FormattedRelativeTime, _super);\n function FormattedRelativeTime(props) {\n var _this = _super.call(this, props) || this;\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 return _this;\n }\n FormattedRelativeTime.prototype.scheduleNextUpdate = function (_a, _b) {\n var _this = this;\n var updateIntervalInSeconds = _a.updateIntervalInSeconds, unit = _a.unit;\n var currentValueInSeconds = _b.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 var nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n var 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 var unitDuration = getDurationInSeconds(nextUnit);\n var remainder = nextValueInSeconds % unitDuration;\n var prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n var nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n ? prevInterestingValueInSeconds - unitDuration\n : prevInterestingValueInSeconds;\n var delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n this._updateTimer = setTimeout(function () {\n return _this.setState({\n currentValueInSeconds: nextInterestingValueInSeconds,\n });\n }, delayInSeconds * 1e3);\n };\n FormattedRelativeTime.prototype.componentDidMount = function () {\n this.scheduleNextUpdate(this.props, this.state);\n };\n FormattedRelativeTime.prototype.componentDidUpdate = function () {\n this.scheduleNextUpdate(this.props, this.state);\n };\n FormattedRelativeTime.prototype.componentWillUnmount = function () {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n };\n FormattedRelativeTime.getDerivedStateFromProps = function (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 FormattedRelativeTime.prototype.render = function () {\n var _this = this;\n return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var formatRelativeTime = intl.formatRelativeTime, Text = intl.textComponent;\n var _a = _this.props, children = _a.children, value = _a.value, unit = _a.unit, updateIntervalInSeconds = _a.updateIntervalInSeconds;\n var currentValueInSeconds = _this.state.currentValueInSeconds;\n var currentValue = value || 0;\n var currentUnit = unit;\n if (canIncrement(unit) &&\n typeof currentValueInSeconds === 'number' &&\n updateIntervalInSeconds) {\n currentUnit = selectUnit(currentValueInSeconds);\n var unitDuration = getDurationInSeconds(currentUnit);\n currentValue = Math.round(currentValueInSeconds / unitDuration);\n }\n var formattedRelativeTime = formatRelativeTime(currentValue, currentUnit, __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 FormattedRelativeTime.displayName = 'FormattedRelativeTime';\n FormattedRelativeTime.defaultProps = {\n value: 0,\n unit: 'second',\n };\n return FormattedRelativeTime;\n}(React.PureComponent));\nexport { FormattedRelativeTime };\nexport default FormattedRelativeTime;\n//# sourceMappingURL=relative.js.map","/*\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';\nvar FormattedPlural = function (props) {\n var value = props.value, other = props.other, children = props.children, _a = props.intl, formatPlural = _a.formatPlural, Text = _a.textComponent;\n var pluralCategory = formatPlural(value, props);\n var 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';\n// Explicitly annotate type here to workaround API extractor's inability to handle `import('./someModule')`\n// type annotations when rolling up DTS file.\nvar FormattedPluralWithIntl = withIntl(FormattedPlural);\nexport default FormattedPluralWithIntl;\n//# sourceMappingURL=plural.js.map","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\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 __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};\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 * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nvar shallowEquals = shallowEquals_.default || shallowEquals_;\nvar FormattedMessage = /** @class */ (function (_super) {\n __extends(FormattedMessage, _super);\n function FormattedMessage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FormattedMessage.prototype.shouldComponentUpdate = function (nextProps) {\n var _a = this.props, values = _a.values, otherProps = __rest(_a, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (!shallowEquals(nextValues, values) ||\n !shallowEquals(otherProps, nextOtherProps));\n };\n FormattedMessage.prototype.render = function () {\n var _this = this;\n return (React.createElement(Context.Consumer, null, function (intl) {\n invariantIntlContext(intl);\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var _b = _this.props, id = _b.id, description = _b.description, defaultMessage = _b.defaultMessage, values = _b.values, children = _b.children, _c = _b.tagName, Component = _c === void 0 ? Text : _c;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var 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.apply(React, __spreadArrays([Component, null], nodes));\n }\n return nodes;\n }));\n };\n FormattedMessage.displayName = 'FormattedMessage';\n return FormattedMessage;\n}(React.Component));\nexport default FormattedMessage;\n//# sourceMappingURL=message.js.map","export function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\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 var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var 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 { createIntlCache } from './utils';\nexport * from './error';\n//# sourceMappingURL=index.js.map","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n//# sourceMappingURL=useIntl.js.map"],"names":["TYPE","SKELETON_TYPE","isLiteralElement","el","type","literal","isSelectElement","select","isPluralElement","plural","isDateTimeSkeleton","extendStatics","_super","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","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","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","peg$c11","open","children","close","error","tag","peg$c12","messageCtx","push","peg$c13","peg$c14","peg$c15","pop","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","peg$c25","argument","peg$c26","peg$c27","peg$c28","peg$classExpectation","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","option","peg$c34","peg$c35","stem","peg$c36","tokens","peg$c37","peg$c38","peg$c39","skeleton","peg$c40","peg$c41","style","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","number","date","time","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","pattern","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","pluralType","offset","reduce","all","_a","id","optionLocation","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","peg$c73","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","peg$c79","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","peg$c86","peg$c87","negative","num","peg$c89","peg$c90","peg$c91","peg$c92","peg$c93","escapedChar","quotedChars","peg$c94","x","ignoreTag","isInPluralOption","isNestedMessageText","peg$c95","peg$c96","peg$c97","peg$c98","peg$c99","peg$c100","peg$c101","peg$c102","peg$c103","peg$c104","peg$c105","peg$c106","peg$c107","peg$c108","digits","parseInt","peg$c109","peg$c110","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","undefined","startRule","substring","peg$computeLocation","location1","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","s4","peg$parsevalidTag","peg$parseopeningTag","peg$parseclosingTag","peg$parsetagElement","peg$parsepoundElement","peg$parsedoubleApostrophes","peg$parsequotedString","peg$parseunquotedString","peg$parsenumberSkeletonId","peg$parsewhiteSpace","test","charAt","peg$parsenumberSkeletonTokenOption","s6","peg$parseargName","peg$parsepatternSyntax","peg$parseargNumber","peg$parseescapedChar","peg$parsetagName","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","g3","g4","g5","minimumFractionDigits","parse","opts","els","normalizeHashtagInPlural","forEach","keys","newValue","newEls","matchingLiteralElIndex","literalEl","el_1","splice","getCacheId","inputs","JSON","stringify","obj","ErrorCode","memoizeFormatConstructor","FormatConstructor","cache","args","cacheId","format","bind","FormatError","code","msg","originalMessage","InvalidValueError","variableId","InvalidValueTypeError","PART_TYPE","MissingValueError","isFormatXMLElementFn","formatToParts","locales","formatters","formats","values","currentPluralValue","els_1","varName","value_1","formatFn","chunks","c","other","Intl","PluralRules","rule","getPluralRules","getNumberFormat","getDateTimeFormat","String","lastPart","mergeConfigs","defaultConfig","configs","c1","c2","IntlMessageFormat","defineProperty","get","memoizedDefaultLocale","NumberFormat","resolvedOptions","locale","enumerable","configurable","__parse","percent","short","medium","long","full","overrideFormats","defaultLocale","formatterCache","dateTime","pluralRules","ast","supportedLocalesOf","getAst","TypeError","memoizeIntlConstructor","DateTimeFormat","invariant","condition","Err","ReactIntlErrorCode","ReactIntlError","exception","stack","UnsupportedFormatterError","InvalidConfigError","MissingDataError","MessageFormatError","descriptor","defaultMessage","MissingTranslationError","filterProps","props","whitelist","defaults","filtered","invariantIntlContext","intl","DEFAULT_INTL_CONFIG","messages","timeZone","textComponent","React.Fragment","defaultFormats","onError","createIntlCache","relativeTime","list","displayNames","getNamedFormat","formatType","Symbol","for","e","f","g","h","l","m","q","v","w","y","z","u","$$typeof","A","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","concat","targetStatics","sourceStatics","key","hoistNonReactStatics_.default","IntlContext","React.createContext","IntlConsumer","Consumer","Provider","Context","injectIntl","WrappedComponent","WithIntl","React.createElement","enforceContext","intlProp","intlPropName","ref","forwardRef","forwardedRef","Component","_b","_c","_d","React.forwardRef","DisplayName","DisplayNameParts","__rest","indexOf","propertyIsEnumerable","FormattedNumberParts","formatProps","formatNumberToParts","createFormattedDateTimePartsComponent","ComponentParts","Date","formatDateToParts","formatTimeToParts","createFormattedComponent","formattedValue","Text","NUMBER_FORMAT_OPTIONS","getFormatter","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","config","getRelativeTimeFormat","RelativeTimeFormat","DATE_TIME_FORMAT_OPTIONS","filteredOptions","PLURAL_FORMAT_OPTIONS","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","assignUniqueKeysToFormatXMLElementFnArgument","acc","formatXMLElementFn","React.Children","toArray","prepareIntlMessageFormatHtmlOutput","shouldWrap","React","objA","objB","aKeys","bKeys","LIST_FORMAT_OPTIONS","now","formatList","getListFormat","ListFormat","richValues_1","serializedValues","val","DISPLAY_NAMES_OPTONS","shallowEquals","shallowEquals_.default","processIntlConfig","wrapRichTextChunksInFragment","createIntl","DisplayNames","getMessageFormat","getDisplayNames","createFormatters","resolvedConfig","formatNumber","formatDate","formatTime","formatPlural","formatMessage","state","messageDescriptor","patchedValues","toLowerCase","formatDisplayName","of","IntlProvider","React.PureComponent","prevConfig","MINUTE","HOUR","selectUnit","seconds","absValue","Math","abs","getDurationInSeconds","valueToSeconds","INCREMENTABLE_UNITS","canIncrement","includes","FormattedRelativeTime","scheduleNextUpdate","nextValueInSeconds","nextUnit","unitDuration","prevInterestingValueInSeconds","nextInterestingValueInSeconds","delayInSeconds","updateIntervalInSeconds","currentValueInSeconds","clearTimeout","_updateTimer","setTimeout","setState","componentDidMount","componentDidUpdate","componentWillUnmount","prevUnit","prevValue","currentValue","currentUnit","round","formattedRelativeTime","FormattedPlural","formattedPlural","FormattedPluralWithIntl","withIntl","FormattedMessage","React.Component","shouldComponentUpdate","nextProps","otherProps","nextValues","nextOtherProps","tagName","nodes","FormattedDate","FormattedTime","FormattedNumber","FormattedList","FormattedDisplayName","FormattedDateParts","FormattedTimeParts","msgs","React.useContext"],"mappings":"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"}
|