@tolgee/core 4.3.0 → 4.4.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tolgee.cjs.min.js","sources":["../node_modules/tslib/tslib.es6.js","../src/Properties.ts","../src/Constants/ModifierKey.ts","../src/services/Subscription.ts","../src/services/EventEmitter.ts","../src/services/EventService.ts","../src/Errors/ApiHttpError.ts","../src/services/ApiHttpService.ts","../src/types/DTOs.ts","../src/services/TranslationService.ts","../src/services/TextService.ts","../src/highlighter/MouseEventHandler.ts","../src/highlighter/TranslationHighlighter.ts","../src/helpers/NodeHelper.ts","../src/Constants/Global.ts","../src/services/ElementRegistrar.ts","../src/Observer.ts","../src/services/CoreService.ts","../src/TolgeeConfig.ts","../src/toolsManager/PluginManager.ts","../src/helpers/sleep.ts","../src/toolsManager/Messages.ts","../src/highlighter/HighlightFunctionsInitializer.ts","../src/services/ScreenshotService.ts","../src/services/ModuleService.ts","../src/wrappers/NodeHandler.ts","../src/wrappers/text/AttributeHandler.ts","../src/helpers/TextHelper.ts","../src/wrappers/text/Coder.ts","../src/wrappers/text/CoreHandler.ts","../src/wrappers/text/ContentHandler.ts","../src/wrappers/WrappedHandler.ts","../src/wrappers/text/TextWrapper.ts","../src/helpers/encoderPolyfill.ts","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../src/helpers/secret.ts","../src/wrappers/invisible/AttributeHandler.ts","../src/wrappers/invisible/ValueMemory.ts","../src/wrappers/invisible/Coder.ts","../src/wrappers/invisible/CoreHandler.ts","../src/wrappers/invisible/ContentHandler.ts","../src/wrappers/invisible/InvisibleWrapper.ts","../src/services/DependencyService.ts","../src/Tolgee.ts","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/intl-messageformat/lib/index.js","../src/modules/IcuFormatter.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","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 === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.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",null,null,null,null,null,null,null,null,null,"// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\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) patterns 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) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\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 case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\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 parseNumberSkeleton(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 case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\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 case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\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 (_, 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 var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\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 var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, 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 !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n 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 !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { 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 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 =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n",null],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","pop","push","__values","o","m","__read","r","ar","error","__spreadArray","to","from","pack","l","slice","concat","ModifierKey","Properties","defineProperty","get","config","_a","forceLanguage","_currentLanguage","getInitialLanguage","set","language","Error","enableLanguageStore","localStorage","setItem","Set","JSON","parse","getItem","languages","stringify","storedLanguage","getStoredLanguage","enableLanguageDetection","detectedLanguage","getLanguageByNavigator","defaultLanguage","availableLanguages","indexOf","window","preferred_1","navigator","exactMatch","find","getTwoLetters_1","fullTag","replace","preferredTwoLetter_1","twoLetterMatch","Subscription","onUnsubscribe","unsubscribe","EventEmitterImpl","idCounter","_subscriptions","Map","emit","data","promiseReturns","_b","subscriptions","values","_c","returned","callback","all","subscribe","_this","newId","subscription","id","delete","console","warn","EventService","TRANSLATION_CHANGED","LANGUAGE_CHANGED","LANGUAGE_LOADED","ELEMENT_REGISTERED","ApiHttpError","_super","response","code","ApiHttpService","properties","handleErrors","status","json","fetch","args","_i","url","getUrl","rest","fetchJson","res","post","init","method","headers","postJson","path","querySeparator","apiUrl","apiKey","TranslationData","key","translations","TranslationService","coreService","apiHttpService","eventService","translationsCache","fetchPromises","fetchedDev","updateTranslationInCache","entries","forEach","lang","translation","cachedData","name","text","getTranslationsOfKey","currentLanguage","checkScope","languagesArray","languagesQuery","map","join","encodeURIComponent","_e","translationData_1","reduce","acc","curr","firstItem","_embedded","keys","langs","_d","selectedLanguages","tag","e_1","getLanguages","preferredLanguages","location","reload","translationByValue","message","defaultValue","initStatic","staticData","setLanguageData","getCachedTranslations","loadTranslations","isFetchNeeded","fetchTranslations","undefined","getTranslation","getFromCache","fallbackLang","fallbackLanguage","updateKeyComplex","screenshotUploadedImageIds","screenshotIdsToDelete","createKey","setTranslations","translationData","keyId","keyName","changeTranslations","old","getFromCacheOrFallback","isDevMode","mode","dataPresent","devFetched","Boolean","fetchTranslationsDevelopment","fetchTranslationsProduction","langStaticData","filesUrlPrefix","setEmptyLanguageData","loadApiKeyDetails","e_4","makeFlat","flatKey","flatValue","root","TextService","translationService","moduleService","format","params","formatter","translate","orEmpty","formatTranslation","instant","MouseEventHandler","keysDown","mouseOn","mouseOnChanged","keysChanged","onConditionsChanged","unhighlight","areKeysDown","getMouseOn","highlight","_tolgee","highlighted","onMouseOut","element","preventClean","onMouseOver","filterMouseOn","add","run","initKeyListener","handle","onclick","listeningForHighlighting","initEventListeners","onClick","currentTarget","stopPropagation","preventDefault","addEventListener","capture","onMouseDownOrUp","removeAllEventListeners","removeEventListener","mouseOnArray","modifierKey","el","document","contains","highlightKeys","has","TranslationHighlighter","dependencies","translationEdit","getRenderer","renderer","getKeyAndDefault","renderViewer","getKeyOptions","node","nodes","k","listen","highlightFunctionInitializer","initFunctions","mouseEventHandler","_renderer","possibleProviders","ui","possibleProviders_1","possibleProviders_1_1","possiblePromise","possibleProvider","possibleObject","UI","mouseEvent","wrappedWithElementOnlyKey","wrappedWithElementOnlyDefaultHtml","keysWithDefaults","keySet","keyWithDefault","size","getKey","openEvent","selectedKey_1","found","kwd","NodeHelper","evaluate","evaluateGenerator","evaluateToSingle","arr","closestElement","Text","parentElement","getParentElement","ownerElement","isElementTargetElement","hasAttribute","markElementAsTargetElement","setAttribute","unmarkElementAsTargetElement","removeAttribute","nodeContains","descendant","Attr","ownerContainsAttr","attributes","expression","targetNode","evaluated","XPathResult","ANY_TYPE","iterateNext","getNodeText","textContent","setNodeText","ElementRegistrar","translationHighlighter","registeredElements","register","getActiveNodes","refreshAll","cleanElementInactiveNodes","cleanElement","cleanAll","registeredElement","findAllByKey","_f","findIndex","keyWithParams","isElementActive","targetElement","Observer","textWrapper","nodeRegistrar","_observer","_observing","MutationObserver","mutationsList","mutationsList_1","mutationsList_1_1","mutation","type","handleText","target","handleSubtree","handleAttribute","observe","observer","childList","subtree","characterData","stopObserving","disconnect","CoreService","languagePromise","bind","filter","getLanguagesFull","getApiKeyDetails","isAuthorizedTo","scope","scopes","details","projectId","DEFAULT_TARGET_ELEMENT_SUPPLIER","TolgeeConfig","inputPrefix","inputSuffix","tagAttributes","textarea","input","img","Alt","passToParent","restrictedElements","highlightColor","wrapperMode","preloadFallback","_targetElement","sessionStorage","watch","PluginManager","messages","elementRegistrar","handshakeSucceed","takeScreenshot","revertChange","highlightAllByKey","ms","setTimeout","send","cancel_1","unhighlightAllByKey","catch","handshake","sharedConfiguration","uiPresent","uiVersion","timer","ping","finish","clearInterval","counter","setInterval","startListening","stop","stopListening","Messages","listeners","receiveMessage","event","source","listener","_stopListening","listenerInfo","splice","postMessage","origin","HighlightFunctionsInitializer","initHighlightFunction","initUnhighlightFunction","initialBackgroundColor","style","backgroundColor","ScreenshotService","uploadImage","blob","formData","FormData","append","deleteImages","ids","ModuleService","addModule","module","instance","NodeHandler","wrapper","initParentElement","filterRestricted","tagName","toLowerCase","closest","handleNodes","nodes_1","nodes_1_1","textNode","tolgeeData","locked","lockNode","unwrap","translatedNode","translateChildNode","unlockNode","newValue","oldTextContent","parent","getSuitableParent","domParent","isArray","elementTagName","AttributeHandler","nodeHandler","attributes_1","attributes_1_1","attribute","TextHelper","splitOnNonEscapedDelimiter","string","delimiter","actual","escaped","char","isCharEscaped","position","fullString","escapeCharsCount","removeEscapes","Coder","textService","escapeForRegExp","escapeParam","param","toString","escapedPrefix","escapedSuffix","parseUnwrapped","unwrappedString","paramName","readingState","unwrappedString_1","unwrappedString_1_1","match","matchRegexp","RegExp","rawUnWrapRegex","keysAndParams","matched","start","exec","pre","fullMatch","wrapped","unwrapped","index","substr","translated","getTranslatedWithMetadata","substring","wrap","paramString","defaultString","CoreHandler","textHandler","attributeHandler","coder","wrappedHandler","refresh","ContentHandler","xPath","filtered","WrappedHandler","elementWithMeta","getAttribute","innerHTML","TextWrapper","coreHandler","PTextEncoder","PTextDecoder","encode","octets","codePoint","codePointAt","c","bits","decode","octet","bytesNeeded","fromCodePoint","ErrorKind","TYPE","SKELETON_TYPE","Encoder","TextEncoder","Decoder","TextDecoder","INVISIBLE_CHARACTERS","INVISIBLE_REGEX","encodeMessage","binary","toBytes","Number","byte","needsToAdd","repeat","padToWholeBytes","decodeMessage","bytes","textBytes","character","codes","Uint8Array","parseInt","ValueMemory","valueToNumber","numberToValue","num","keyMemory","defaultMemory","invisibleMessages","decodeFromText","msg","text_1","text_1_1","stringToCodePoints","keyCode","defaultCode","removeSecrets","_params","invisibleMark","InvisibleWrapper","DependencyService","screenshotService","pluginManager","Tolgee","dependencyService","newLanguage","emitLangChangeEvent","currentLang","fallbackPreloading","isStaticDataProvided","use","changeLanguage","keyOrProps","noWrap","props","onLangChange","isLiteralElement","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","isNumberSkeleton","isDateTimeSkeleton","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","len","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","WHITE_SPACE_REGEX","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","str","roundingPriority","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","test","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","token","scale","currency","options","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","end","hasNativeStartsWith","startsWith","hasNativeFromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","isFinite","Math","floor","abs","REGEX_SUPPORTS_U_AND_Y","RE","matchIdentifierAtIndex","search","codePoints","elements","fromCharCode","obj","entries_1","first","charCodeAt","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","_isWhiteSpace","_isPatternSyntax","Parser","offset","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","parseArgument","err","val","peek","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","startPosition","parseTagName","bumpSpace","bumpIf","childrenResult","children","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","pattern","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","split","x","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","sign","hasDigits","decimal","kind","prefix","currentOffset","targetOffset","min","nextCode","pruneLocation","els","opts","SyntaxError","originalMessage","captureLocation","memoize","fn","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","arg","cacheKey","computedValue","variadic","assemble","context","serialize","ObjectWithoutPrototypeCache","ErrorCode","strategies","PART_TYPE","FormatError","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isFormatXMLElementFn","formatToParts","locales","formatters","formats","currentPluralValue","els_1","getNumberFormat","varName","object","getDateTimeFormat","value_1","formatFn","chunks","other","Intl","PluralRules","MISSING_INTL_API","rule","getPluralRules","parts","part","lastPart","mergeLiteral","mergeConfigs","defaultConfig","configs","c1","c2","createFastMemoizeCache","store","IntlMessageFormat","overrideFormats","defaultLocale","formatterCache","pluralRules","ast","resolvedOptions","locale","NumberFormat","supportedLocalesOf","getAst","__parse","DateTimeFormat","memoizedDefaultLocale","enumerable","configurable","integer","percent","short","medium","long","full","IcuFormatter","class_1"],"mappings":"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AAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,MC7uC7B,SAASqS,GAAcC,GACnBA,EAAI7rB,SAAQ,SAAUsH,GAElB,UADOA,EAAGzF,SACNoc,GAAgB3W,IAAO6W,GAAgB7W,GACvC,IAAK,IAAIe,KAAKf,EAAGma,eACNna,EAAGma,QAAQpZ,GAAGxG,SACrB+pB,GAActkB,EAAGma,QAAQpZ,GAAGzR,YAG3B+mB,GAAgBrW,IAAOkX,GAAiBlX,EAAGkL,SAG1CqL,GAAcvW,IAAOyW,GAAczW,KACzCmX,GAAmBnX,EAAGkL,cAHflL,EAAGkL,MAAM3Q,SAMX0c,GAAajX,IAClBskB,GAActkB,EAAG+e,aAItB,SAAS/rB,GAAM0H,EAAS8pB,QACd,IAATA,IAAmBA,EAAO,IAC9BA,EAAOp2B,EAAS,CAAEsvB,sBAAsB,EAAMD,qBAAqB,GAAQ+G,GAC3E,IAAI70B,EAAS,IAAI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"}
1
+ {"version":3,"file":"tolgee.cjs.min.js","sources":["../node_modules/tslib/tslib.es6.js","../src/Properties.ts","../src/Constants/ModifierKey.ts","../src/services/Subscription.ts","../src/services/EventEmitter.ts","../src/services/EventService.ts","../src/Errors/ApiHttpError.ts","../src/services/ApiHttpService.ts","../src/types/DTOs.ts","../src/services/TranslationService.ts","../src/services/TextService.ts","../src/highlighter/MouseEventHandler.ts","../src/highlighter/TranslationHighlighter.ts","../src/helpers/NodeHelper.ts","../src/Constants/Global.ts","../src/services/ElementRegistrar.ts","../src/Observer.ts","../src/services/CoreService.ts","../src/TolgeeConfig.ts","../src/toolsManager/PluginManager.ts","../src/helpers/sleep.ts","../src/toolsManager/Messages.ts","../src/highlighter/HighlightFunctionsInitializer.ts","../src/services/ScreenshotService.ts","../src/services/ModuleService.ts","../src/wrappers/NodeHandler.ts","../src/wrappers/text/AttributeHandler.ts","../src/helpers/TextHelper.ts","../src/wrappers/text/Coder.ts","../src/wrappers/text/CoreHandler.ts","../src/wrappers/text/ContentHandler.ts","../src/wrappers/WrappedHandler.ts","../src/wrappers/text/TextWrapper.ts","../src/helpers/encoderPolyfill.ts","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../src/helpers/secret.ts","../src/wrappers/invisible/AttributeHandler.ts","../src/wrappers/invisible/ValueMemory.ts","../src/wrappers/invisible/Coder.ts","../src/wrappers/invisible/CoreHandler.ts","../src/wrappers/invisible/ContentHandler.ts","../src/wrappers/invisible/InvisibleWrapper.ts","../src/services/DependencyService.ts","../src/Tolgee.ts","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/intl-messageformat/lib/index.js","../src/modules/IcuFormatter.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","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 === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.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",null,null,null,null,null,null,null,null,null,"// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\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) patterns 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) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\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 case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\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 parseNumberSkeleton(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 case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\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 case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\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 (_, 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 var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\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 var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, 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 !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n 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 !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { 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 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 =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n",null],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","pop","push","__values","o","m","__read","r","ar","error","__spreadArray","to","from","pack","l","slice","concat","ModifierKey","Properties","defineProperty","get","config","_a","forceLanguage","_currentLanguage","getInitialLanguage","set","language","Error","enableLanguageStore","localStorage","setItem","Set","JSON","parse","getItem","languages","stringify","storedLanguage","getStoredLanguage","enableLanguageDetection","detectedLanguage","getLanguageByNavigator","defaultLanguage","availableLanguages","indexOf","window","preferred_1","navigator","exactMatch","find","getTwoLetters_1","fullTag","replace","preferredTwoLetter_1","twoLetterMatch","Subscription","onUnsubscribe","unsubscribe","EventEmitterImpl","idCounter","_subscriptions","Map","emit","data","promiseReturns","_b","subscriptions","values","_c","returned","callback","all","subscribe","_this","newId","subscription","id","delete","console","warn","EventService","TRANSLATION_CHANGED","LANGUAGE_CHANGED","LANGUAGE_LOADED","ELEMENT_REGISTERED","ApiHttpError","_super","response","code","ApiHttpService","properties","handleErrors","status","json","fetch","args","_i","url","getUrl","rest","fetchJson","res","post","init","method","headers","postJson","path","querySeparator","apiUrl","apiKey","TranslationData","key","translations","TranslationService","coreService","apiHttpService","eventService","translationsCache","fetchPromises","fetchedDev","updateTranslationInCache","entries","forEach","lang","translation","cachedData","name","text","getTranslationsOfKey","currentLanguage","checkScope","languagesArray","languagesQuery","map","join","encodeURIComponent","_e","translationData_1","reduce","acc","curr","firstItem","_embedded","keys","langs","_d","selectedLanguages","tag","e_1","getLanguages","preferredLanguages","location","reload","translationByValue","message","defaultValue","initStatic","staticData","setLanguageData","getCachedTranslations","loadTranslations","isFetchNeeded","fetchTranslations","undefined","getTranslation","getFromCache","fallbackLang","fallbackLanguage","updateKeyComplex","screenshotUploadedImageIds","screenshotIdsToDelete","createKey","setTranslations","translationData","keyId","keyName","changeTranslations","old","getFromCacheOrFallback","isDevMode","mode","dataPresent","devFetched","Boolean","fetchTranslationsDevelopment","fetchTranslationsProduction","langStaticData","filesUrlPrefix","setEmptyLanguageData","loadApiKeyDetails","e_4","makeFlat","flatKey","flatValue","root","TextService","translationService","moduleService","format","params","formatter","translate","orEmpty","formatTranslation","instant","MouseEventHandler","keysDown","mouseOn","mouseOnChanged","keysChanged","onConditionsChanged","unhighlight","areKeysDown","getMouseOn","highlight","_tolgee","highlighted","onMouseOut","element","preventClean","onMouseOver","filterMouseOn","add","run","initKeyListener","handle","onclick","listeningForHighlighting","initEventListeners","onClick","currentTarget","stopPropagation","preventDefault","addEventListener","capture","onMouseDownOrUp","removeAllEventListeners","removeEventListener","mouseOnArray","modifierKey","el","document","contains","highlightKeys","has","TranslationHighlighter","dependencies","translationEdit","getRenderer","renderer","getKeyAndDefault","renderViewer","getKeyOptions","node","nodes","k","listen","highlightFunctionInitializer","initFunctions","mouseEventHandler","_renderer","possibleProviders","ui","possibleProviders_1","possibleProviders_1_1","possiblePromise","possibleProvider","possibleObject","UI","mouseEvent","wrappedWithElementOnlyKey","wrappedWithElementOnlyDefaultHtml","keysWithDefaults","keySet","keyWithDefault","size","getKey","openEvent","selectedKey_1","found","kwd","NodeHelper","evaluate","evaluateGenerator","evaluateToSingle","arr","closestElement","Text","parentElement","getParentElement","ownerElement","isElementTargetElement","hasAttribute","markElementAsTargetElement","setAttribute","unmarkElementAsTargetElement","removeAttribute","nodeContains","descendant","Attr","ownerContainsAttr","attributes","expression","targetNode","evaluated","XPathResult","ANY_TYPE","iterateNext","getNodeText","textContent","setNodeText","ElementRegistrar","translationHighlighter","registeredElements","register","getActiveNodes","refreshAll","cleanElementInactiveNodes","cleanElement","cleanAll","registeredElement","findAllByKey","_f","findIndex","keyWithParams","isElementActive","targetElement","Observer","textWrapper","nodeRegistrar","_observer","_observing","MutationObserver","mutationsList","mutationsList_1","mutationsList_1_1","mutation","type","handleText","target","handleSubtree","handleAttribute","observe","observer","childList","subtree","characterData","stopObserving","disconnect","CoreService","languagePromise","bind","filter","getLanguagesFull","getApiKeyDetails","isAuthorizedTo","scope","scopes","details","projectId","permittedLanguageIds","DEFAULT_TARGET_ELEMENT_SUPPLIER","TolgeeConfig","inputPrefix","inputSuffix","tagAttributes","textarea","input","img","Alt","passToParent","restrictedElements","highlightColor","wrapperMode","preloadFallback","_targetElement","sessionStorage","watch","PluginManager","messages","elementRegistrar","handshakeSucceed","takeScreenshot","revertChange","highlightAllByKey","ms","setTimeout","send","cancel_1","unhighlightAllByKey","catch","handshake","sharedConfiguration","uiPresent","uiVersion","timer","ping","finish","clearInterval","counter","setInterval","startListening","stop","stopListening","Messages","listeners","receiveMessage","event","source","listener","_stopListening","listenerInfo","splice","postMessage","origin","HighlightFunctionsInitializer","initHighlightFunction","initUnhighlightFunction","initialBackgroundColor","style","backgroundColor","ScreenshotService","uploadImage","blob","formData","FormData","append","deleteImages","ids","ModuleService","addModule","module","instance","NodeHandler","wrapper","initParentElement","filterRestricted","tagName","toLowerCase","closest","handleNodes","nodes_1","nodes_1_1","textNode","tolgeeData","locked","lockNode","unwrap","translatedNode","translateChildNode","unlockNode","newValue","oldTextContent","parent","getSuitableParent","domParent","isArray","elementTagName","AttributeHandler","nodeHandler","attributes_1","attributes_1_1","attribute","TextHelper","splitOnNonEscapedDelimiter","string","delimiter","actual","escaped","char","isCharEscaped","position","fullString","escapeCharsCount","removeEscapes","Coder","textService","escapeForRegExp","escapeParam","param","toString","escapedPrefix","escapedSuffix","parseUnwrapped","unwrappedString","paramName","readingState","unwrappedString_1","unwrappedString_1_1","match","matchRegexp","RegExp","rawUnWrapRegex","keysAndParams","matched","start","exec","pre","fullMatch","wrapped","unwrapped","index","substr","translated","getTranslatedWithMetadata","substring","wrap","paramString","defaultString","CoreHandler","textHandler","attributeHandler","coder","wrappedHandler","refresh","ContentHandler","xPath","filtered","WrappedHandler","elementWithMeta","getAttribute","innerHTML","TextWrapper","coreHandler","PTextEncoder","PTextDecoder","encode","octets","codePoint","codePointAt","c","bits","decode","octet","bytesNeeded","fromCodePoint","ErrorKind","TYPE","SKELETON_TYPE","Encoder","TextEncoder","Decoder","TextDecoder","INVISIBLE_CHARACTERS","INVISIBLE_REGEX","encodeMessage","binary","toBytes","Number","byte","needsToAdd","repeat","padToWholeBytes","decodeMessage","bytes","textBytes","character","codes","Uint8Array","parseInt","ValueMemory","valueToNumber","numberToValue","num","keyMemory","defaultMemory","invisibleMessages","decodeFromText","msg","text_1","text_1_1","stringToCodePoints","keyCode","defaultCode","removeSecrets","_params","invisibleMark","InvisibleWrapper","DependencyService","screenshotService","pluginManager","Tolgee","dependencyService","newLanguage","emitLangChangeEvent","currentLang","fallbackPreloading","isStaticDataProvided","use","changeLanguage","keyOrProps","noWrap","props","onLangChange","isLiteralElement","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","isNumberSkeleton","isDateTimeSkeleton","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","len","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","WHITE_SPACE_REGEX","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","str","roundingPriority","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","test","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","token","scale","currency","options","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","end","hasNativeStartsWith","startsWith","hasNativeFromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","isFinite","Math","floor","abs","REGEX_SUPPORTS_U_AND_Y","RE","matchIdentifierAtIndex","search","codePoints","elements","fromCharCode","obj","entries_1","first","charCodeAt","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","_isWhiteSpace","_isPatternSyntax","Parser","offset","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","parseArgument","err","val","peek","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","startPosition","parseTagName","bumpSpace","bumpIf","childrenResult","children","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","pattern","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","split","x","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","sign","hasDigits","decimal","kind","prefix","currentOffset","targetOffset","min","nextCode","pruneLocation","els","opts","SyntaxError","originalMessage","captureLocation","memoize","fn","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","arg","cacheKey","computedValue","variadic","assemble","context","serialize","ObjectWithoutPrototypeCache","ErrorCode","strategies","PART_TYPE","FormatError","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isFormatXMLElementFn","formatToParts","locales","formatters","formats","currentPluralValue","els_1","getNumberFormat","varName","object","getDateTimeFormat","value_1","formatFn","chunks","other","Intl","PluralRules","MISSING_INTL_API","rule","getPluralRules","parts","part","lastPart","mergeLiteral","mergeConfigs","defaultConfig","configs","c1","c2","createFastMemoizeCache","store","IntlMessageFormat","overrideFormats","defaultLocale","formatterCache","pluralRules","ast","resolvedOptions","locale","NumberFormat","supportedLocalesOf","getAst","__parse","DateTimeFormat","memoizedDefaultLocale","enumerable","configurable","integer","percent","short","medium","long","full","IcuFormatter","class_1"],"mappings":"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CM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,MC7uC7B,SAASqS,GAAcC,GACnBA,EAAI9rB,SAAQ,SAAUsH,GAElB,UADOA,EAAGzF,SACNqc,GAAgB5W,IAAO8W,GAAgB9W,GACvC,IAAK,IAAIe,KAAKf,EAAGoa,eACNpa,EAAGoa,QAAQrZ,GAAGxG,SACrBgqB,GAAcvkB,EAAGoa,QAAQrZ,GAAGzR,YAG3BgnB,GAAgBtW,IAAOmX,GAAiBnX,EAAGmL,SAG1CqL,GAAcxW,IAAO0W,GAAc1W,KACzCoX,GAAmBpX,EAAGmL,cAHfnL,EAAGmL,MAAM5Q,SAMX2c,GAAalX,IAClBukB,GAAcvkB,EAAGgf,aAItB,SAAShsB,GAAM0H,EAAS+pB,QACd,IAATA,IAAmBA,EAAO,IAC9BA,EAAOr2B,EAAS,CAAEuvB,sBAAsB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"}