@tolgee/core 1.2.4 → 1.3.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.
Files changed (36) hide show
  1. package/dist/tolgee.cjs.js +100 -48
  2. package/dist/tolgee.cjs.js.map +1 -1
  3. package/dist/tolgee.cjs.min.js +1 -1
  4. package/dist/tolgee.cjs.min.js.map +1 -1
  5. package/dist/tolgee.umd.js +100 -48
  6. package/dist/tolgee.umd.js.map +1 -1
  7. package/lib/Constants/Global.d.ts +1 -0
  8. package/lib/Constants/Global.js +1 -0
  9. package/lib/Constants/Global.js.map +1 -1
  10. package/lib/Tolgee.d.ts +1 -3
  11. package/lib/Tolgee.js +7 -0
  12. package/lib/Tolgee.js.map +1 -1
  13. package/lib/handlers/AbstractHandler.d.ts +2 -2
  14. package/lib/handlers/AbstractHandler.js.map +1 -1
  15. package/lib/handlers/CoreHandler.d.ts +3 -1
  16. package/lib/handlers/CoreHandler.js +5 -1
  17. package/lib/handlers/CoreHandler.js.map +1 -1
  18. package/lib/handlers/WrappedHandler.d.ts +13 -0
  19. package/lib/handlers/WrappedHandler.js +85 -0
  20. package/lib/handlers/WrappedHandler.js.map +1 -0
  21. package/lib/highlighter/TranslationHighlighter.d.ts +3 -3
  22. package/lib/highlighter/TranslationHighlighter.js +25 -22
  23. package/lib/highlighter/TranslationHighlighter.js.map +1 -1
  24. package/lib/index.d.ts +3 -1
  25. package/lib/index.js +3 -1
  26. package/lib/index.js.map +1 -1
  27. package/lib/services/DependencyStore.d.ts +2 -0
  28. package/lib/services/DependencyStore.js +3 -1
  29. package/lib/services/DependencyStore.js.map +1 -1
  30. package/lib/services/ElementRegistrar.js +4 -2
  31. package/lib/services/ElementRegistrar.js.map +1 -1
  32. package/lib/services/TextService.d.ts +2 -2
  33. package/lib/services/TextService.js +24 -22
  34. package/lib/services/TextService.js.map +1 -1
  35. package/lib/types.d.ts +1 -0
  36. package/package.json +2 -2
@@ -124,6 +124,7 @@ function __spreadArray(to, from, pack) {
124
124
  var RESTRICTED_ASCENDANT_ATTRIBUTE = 'data-tolgee-restricted';
125
125
  var TOLGEE_ATTRIBUTE_NAME = '_tolgee';
126
126
  var TOLGEE_TARGET_ATTRIBUTE = '_tolgee-target';
127
+ var TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE = 'data-tolgee-key-only';
127
128
 
128
129
  var NodeHelper = /** @class */ (function () {
129
130
  function NodeHelper() {
@@ -3283,7 +3284,9 @@ var TextService = /** @class */ (function () {
3283
3284
  this.translationService = translationService;
3284
3285
  this.format = function (translation, params) {
3285
3286
  try {
3286
- return new IntlMessageFormat(translation, _this.properties.currentLanguage).format(params);
3287
+ return new IntlMessageFormat(translation, _this.properties.currentLanguage, undefined, {
3288
+ ignoreTag: true,
3289
+ }).format(params);
3287
3290
  }
3288
3291
  catch (e) {
3289
3292
  if (e.code === 'MISSING_VALUE') {
@@ -3310,6 +3313,27 @@ var TextService = /** @class */ (function () {
3310
3313
  return param;
3311
3314
  };
3312
3315
  }
3316
+ Object.defineProperty(TextService.prototype, "rawUnWrapRegex", {
3317
+ get: function () {
3318
+ var escapedPrefix = this.escapeForRegExp(this.properties.config.inputPrefix);
3319
+ var escapedSuffix = this.escapeForRegExp(this.properties.config.inputSuffix);
3320
+ return "(\\\\?)(" + escapedPrefix + "(.*?)" + escapedSuffix + ")";
3321
+ },
3322
+ enumerable: false,
3323
+ configurable: true
3324
+ });
3325
+ TextService.parseUnwrapped = function (unWrappedString) {
3326
+ var strings = unWrappedString.match(/(?:[^\\,:\n]|\\.)+/g);
3327
+ var result = {
3328
+ key: TextHelper.removeEscapes(strings.shift()),
3329
+ params: {},
3330
+ };
3331
+ while (strings.length) {
3332
+ var _a = __read(strings.splice(0, 2), 2), name_1 = _a[0], value = _a[1];
3333
+ result.params[name_1] = value;
3334
+ }
3335
+ return result;
3336
+ };
3313
3337
  TextService.prototype.translate = function (key, params, lang, orEmpty) {
3314
3338
  if (lang === void 0) { lang = this.properties.currentLanguage; }
3315
3339
  return __awaiter(this, void 0, void 0, function () {
@@ -3395,27 +3419,6 @@ var TextService = /** @class */ (function () {
3395
3419
  });
3396
3420
  });
3397
3421
  };
3398
- TextService.parseUnwrapped = function (unWrappedString) {
3399
- var strings = unWrappedString.match(/(?:[^\\,:\n]|\\.)+/g);
3400
- var result = {
3401
- key: TextHelper.removeEscapes(strings.shift()),
3402
- params: {},
3403
- };
3404
- while (strings.length) {
3405
- var _a = __read(strings.splice(0, 2), 2), name_1 = _a[0], value = _a[1];
3406
- result.params[name_1] = value;
3407
- }
3408
- return result;
3409
- };
3410
- Object.defineProperty(TextService.prototype, "rawUnWrapRegex", {
3411
- get: function () {
3412
- var escapedPrefix = this.escapeForRegExp(this.properties.config.inputPrefix);
3413
- var escapedSuffix = this.escapeForRegExp(this.properties.config.inputSuffix);
3414
- return "(\\\\?)(" + escapedPrefix + "(.*?)" + escapedSuffix + ")";
3415
- },
3416
- enumerable: false,
3417
- configurable: true
3418
- });
3419
3422
  return TextService;
3420
3423
  }());
3421
3424
 
@@ -3592,6 +3595,28 @@ var TranslationHighlighter = /** @class */ (function () {
3592
3595
  });
3593
3596
  }); };
3594
3597
  }
3598
+ Object.defineProperty(TranslationHighlighter.prototype, "renderer", {
3599
+ get: function () {
3600
+ if (this._renderer === undefined) {
3601
+ if (typeof this.properties.config.ui === 'function') {
3602
+ this._renderer = new this.properties.config.ui({
3603
+ coreService: this.service,
3604
+ properties: this.properties,
3605
+ eventService: this.eventService,
3606
+ translationService: this.translationService,
3607
+ });
3608
+ }
3609
+ }
3610
+ return this._renderer;
3611
+ },
3612
+ enumerable: false,
3613
+ configurable: true
3614
+ });
3615
+ TranslationHighlighter.getKeyOptions = function (node) {
3616
+ var nodes = Array.from(node._tolgee.nodes);
3617
+ var keys = nodes.reduce(function (acc, curr) { return __spreadArray(__spreadArray([], __read(acc)), __read(curr._tolgee.keys.map(function (k) { return k.key; }))); }, []);
3618
+ return new Set(keys);
3619
+ };
3595
3620
  TranslationHighlighter.prototype.listen = function (element) {
3596
3621
  var _this = this;
3597
3622
  this.mouseEventHandler.handle(element, function (e) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
@@ -3607,6 +3632,9 @@ var TranslationHighlighter = /** @class */ (function () {
3607
3632
  return __generator(this, function (_a) {
3608
3633
  switch (_a.label) {
3609
3634
  case 0:
3635
+ if (element._tolgee.wrappedWithElementOnlyKey) {
3636
+ return [2 /*return*/, element._tolgee.wrappedWithElementOnlyKey];
3637
+ }
3610
3638
  keys = TranslationHighlighter.getKeyOptions(element);
3611
3639
  if (!(keys.size > 1)) return [3 /*break*/, 2];
3612
3640
  return [4 /*yield*/, this.renderer.getKey({ keys: keys, openEvent: mouseEvent })];
@@ -3622,28 +3650,6 @@ var TranslationHighlighter = /** @class */ (function () {
3622
3650
  });
3623
3651
  });
3624
3652
  };
3625
- TranslationHighlighter.getKeyOptions = function (node) {
3626
- var nodes = Array.from(node._tolgee.nodes);
3627
- var keys = nodes.reduce(function (acc, curr) { return __spreadArray(__spreadArray([], __read(acc)), __read(curr._tolgee.keys.map(function (k) { return k.key; }))); }, []);
3628
- return new Set(keys);
3629
- };
3630
- Object.defineProperty(TranslationHighlighter.prototype, "renderer", {
3631
- get: function () {
3632
- if (this._renderer === undefined) {
3633
- if (typeof this.properties.config.ui === 'function') {
3634
- this._renderer = new this.properties.config.ui({
3635
- coreService: this.service,
3636
- properties: this.properties,
3637
- eventService: this.eventService,
3638
- translationService: this.translationService,
3639
- });
3640
- }
3641
- }
3642
- return this._renderer;
3643
- },
3644
- enumerable: false,
3645
- configurable: true
3646
- });
3647
3653
  return TranslationHighlighter;
3648
3654
  }());
3649
3655
 
@@ -3655,7 +3661,8 @@ var ElementRegistrar = /** @class */ (function () {
3655
3661
  }
3656
3662
  ElementRegistrar.prototype.register = function (element) {
3657
3663
  //ignore element with no active nodes
3658
- if (this.getActiveNodes(element).next().value === undefined) {
3664
+ if (this.getActiveNodes(element).next().value === undefined &&
3665
+ !element._tolgee.wrappedWithElementOnlyKey) {
3659
3666
  return;
3660
3667
  }
3661
3668
  if (this.properties.config.mode === 'development' &&
@@ -3670,7 +3677,8 @@ var ElementRegistrar = /** @class */ (function () {
3670
3677
  for (var _b = __values(this.registeredElements), _c = _b.next(); !_c.done; _c = _b.next()) {
3671
3678
  var element = _c.value;
3672
3679
  this.cleanElementInactiveNodes(element);
3673
- if (element._tolgee.nodes.size === 0) {
3680
+ if (element._tolgee.nodes.size === 0 &&
3681
+ !element._tolgee.wrappedWithElementOnlyKey) {
3674
3682
  this.cleanElement(element);
3675
3683
  }
3676
3684
  }
@@ -3993,13 +4001,14 @@ var AttributeHandler = /** @class */ (function (_super) {
3993
4001
  }(AbstractHandler));
3994
4002
 
3995
4003
  var CoreHandler = /** @class */ (function () {
3996
- function CoreHandler(service, textHandler, eventService, properties, attributeHandler, textService) {
4004
+ function CoreHandler(service, textHandler, eventService, properties, attributeHandler, textService, wrappedHandler) {
3997
4005
  this.service = service;
3998
4006
  this.textHandler = textHandler;
3999
4007
  this.eventService = eventService;
4000
4008
  this.properties = properties;
4001
4009
  this.attributeHandler = attributeHandler;
4002
4010
  this.textService = textService;
4011
+ this.wrappedHandler = wrappedHandler;
4003
4012
  eventService.LANGUAGE_CHANGED.subscribe(this.refresh.bind(this));
4004
4013
  eventService.TRANSLATION_CHANGED.subscribe(this.refresh.bind(this));
4005
4014
  }
@@ -4012,6 +4021,9 @@ var CoreHandler = /** @class */ (function () {
4012
4021
  _a.sent();
4013
4022
  return [4 /*yield*/, this.textHandler.handle(target)];
4014
4023
  case 2:
4024
+ _a.sent();
4025
+ return [4 /*yield*/, this.wrappedHandler.handle(target)];
4026
+ case 3:
4015
4027
  _a.sent();
4016
4028
  return [2 /*return*/];
4017
4029
  }
@@ -4232,6 +4244,36 @@ var CoreService = /** @class */ (function () {
4232
4244
  return CoreService;
4233
4245
  }());
4234
4246
 
4247
+ var WrappedHandler = /** @class */ (function (_super) {
4248
+ __extends(WrappedHandler, _super);
4249
+ function WrappedHandler(properties, translationHighlighter, textService, elementRegistrar) {
4250
+ var _this = _super.call(this, properties, textService, elementRegistrar, translationHighlighter) || this;
4251
+ _this.properties = properties;
4252
+ _this.translationHighlighter = translationHighlighter;
4253
+ _this.textService = textService;
4254
+ _this.elementRegistrar = elementRegistrar;
4255
+ return _this;
4256
+ }
4257
+ WrappedHandler.prototype.handle = function (node) {
4258
+ return __awaiter(this, void 0, void 0, function () {
4259
+ var xPath, nodes, filtered;
4260
+ var _this = this;
4261
+ return __generator(this, function (_a) {
4262
+ xPath = "./descendant-or-self::*[@" + TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE + "]";
4263
+ nodes = NodeHelper.evaluate(xPath, node);
4264
+ filtered = this.filterRestricted(nodes);
4265
+ filtered.forEach(function (element) {
4266
+ var elementWithMeta = AbstractHandler.initParentElement(element);
4267
+ elementWithMeta._tolgee.wrappedWithElementOnlyKey = element.getAttribute(TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE);
4268
+ _this.elementRegistrar.register(elementWithMeta);
4269
+ });
4270
+ return [2 /*return*/];
4271
+ });
4272
+ });
4273
+ };
4274
+ return WrappedHandler;
4275
+ }(AbstractHandler));
4276
+
4235
4277
  var DependencyStore = /** @class */ (function () {
4236
4278
  function DependencyStore(config) {
4237
4279
  if (config === void 0) { config = new TolgeeConfig(); }
@@ -4246,7 +4288,8 @@ var DependencyStore = /** @class */ (function () {
4246
4288
  this.elementRegistrar = new ElementRegistrar(this.properties, this.translationHighlighter);
4247
4289
  this.textHandler = new TextHandler(this.properties, this.translationHighlighter, this.textService, this.elementRegistrar);
4248
4290
  this.attributeHandler = new AttributeHandler(this.properties, this.textService, this.elementRegistrar, this.translationHighlighter);
4249
- this.coreHandler = new CoreHandler(this.coreService, this.textHandler, this.eventService, this.properties, this.attributeHandler, this.textService);
4291
+ this.wrappedHandler = new WrappedHandler(this.properties, this.translationHighlighter, this.textService, this.elementRegistrar);
4292
+ this.coreHandler = new CoreHandler(this.coreService, this.textHandler, this.eventService, this.properties, this.attributeHandler, this.textService, this.wrappedHandler);
4250
4293
  this.observer = new Observer(this.properties, this.coreHandler, this.textHandler, this.attributeHandler, this.elementRegistrar);
4251
4294
  this.properties.config = config;
4252
4295
  this.translationService.initStatic();
@@ -4339,6 +4382,13 @@ var Tolgee = /** @class */ (function () {
4339
4382
  enumerable: false,
4340
4383
  configurable: true
4341
4384
  });
4385
+ Object.defineProperty(Tolgee.prototype, "onTranslationChange", {
4386
+ get: function () {
4387
+ return this.dependencyStore.eventService.TRANSLATION_CHANGED;
4388
+ },
4389
+ enumerable: false,
4390
+ configurable: true
4391
+ });
4342
4392
  Object.defineProperty(Tolgee.prototype, "onLangLoaded", {
4343
4393
  get: function () {
4344
4394
  return this.dependencyStore.eventService.LANGUAGE_LOADED;
@@ -4428,6 +4478,8 @@ var Tolgee = /** @class */ (function () {
4428
4478
  return Tolgee;
4429
4479
  }());
4430
4480
 
4481
+ exports.TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE = TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE;
4431
4482
  exports.Tolgee = Tolgee;
4432
4483
  exports.TolgeeConfig = TolgeeConfig;
4484
+ exports.TranslationData = TranslationData;
4433
4485
  //# sourceMappingURL=tolgee.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tolgee.cjs.js","sources":["../node_modules/tslib/tslib.es6.js","../src/src/Constants/Global.ts","../src/src/helpers/NodeHelper.ts","../src/src/Constants/ModifierKey.ts","../src/src/TolgeeConfig.ts","../src/src/Properties.ts","../src/src/services/Subscription.ts","../src/src/services/EventEmitter.ts","../src/src/services/EventService.ts","../src/src/Errors/ApiHttpError.ts","../src/src/services/ApiHttpService.ts","../src/src/DTOs/TranslationData.ts","../src/src/helpers/TextHelper.ts","../src/src/services/TranslationService.ts","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../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/src/services/TextService.ts","../src/src/highlighter/MouseEventHandler.ts","../src/src/highlighter/TranslationHighlighter.ts","../src/src/services/ElementRegistrar.ts","../src/src/handlers/AbstractHandler.ts","../src/src/handlers/TextHandler.ts","../src/src/handlers/AttributeHandler.ts","../src/src/handlers/CoreHandler.ts","../src/src/Observer.ts","../src/src/services/CoreService.ts","../src/src/services/DependencyStore.ts","../src/src/Tolgee.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,"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","// @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 = /^(@+)?(\\+|#+)?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n 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 if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\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(\"^\" + SPACE_SEPARATOR_REGEX.source + \"*\");\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(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: \"<\" + 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 \" + 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 \" + targetOffset + \" must be greater than or equal to the current offset \" + 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 \" + 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: \" + this.code + \"] \" + this.message;\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", 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 \\\"\" + value + \"\\\" must be of type \" + 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 \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + 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[\"=\" + 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)))();\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)))();\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)))();\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,null,null,null,null,null,null,null,null,null,null,null],"names":["ModifierKey","IntlMessageFormat"],"mappings":"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Q,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;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"}
1
+ {"version":3,"file":"tolgee.cjs.js","sources":["../node_modules/tslib/tslib.es6.js","../src/src/Constants/Global.ts","../src/src/helpers/NodeHelper.ts","../src/src/Constants/ModifierKey.ts","../src/src/TolgeeConfig.ts","../src/src/Properties.ts","../src/src/services/Subscription.ts","../src/src/services/EventEmitter.ts","../src/src/services/EventService.ts","../src/src/Errors/ApiHttpError.ts","../src/src/services/ApiHttpService.ts","../src/src/DTOs/TranslationData.ts","../src/src/helpers/TextHelper.ts","../src/src/services/TranslationService.ts","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../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/src/services/TextService.ts","../src/src/highlighter/MouseEventHandler.ts","../src/src/highlighter/TranslationHighlighter.ts","../src/src/services/ElementRegistrar.ts","../src/src/handlers/AbstractHandler.ts","../src/src/handlers/TextHandler.ts","../src/src/handlers/AttributeHandler.ts","../src/src/handlers/CoreHandler.ts","../src/src/Observer.ts","../src/src/services/CoreService.ts","../src/src/handlers/WrappedHandler.ts","../src/src/services/DependencyStore.ts","../src/src/Tolgee.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,"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","// @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 = /^(@+)?(\\+|#+)?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n 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 if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\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(\"^\" + SPACE_SEPARATOR_REGEX.source + \"*\");\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(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: \"<\" + 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 \" + 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 \" + targetOffset + \" must be greater than or equal to the current offset \" + 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 \" + 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: \" + this.code + \"] \" + this.message;\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", 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 \\\"\" + value + \"\\\" must be of type \" + 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 \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + 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[\"=\" + 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)))();\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)))();\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)))();\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,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModifierKey","IntlMessageFormat"],"mappings":"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KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,Q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"}
@@ -13,5 +13,5 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
15
  ***************************************************************************** */
16
- var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};function t(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}var r=function(){return(r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function n(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))}function i(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function o(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s}function a(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}var u,c=function(){function e(){}return e.evaluateGenerator=function(e,t){var r,n;return i(this,(function(i){switch(i.label){case 0:n=document.evaluate(e,t,void 0,XPathResult.ANY_TYPE),i.label=1;case 1:return null===(r=n.iterateNext())?[3,3]:[4,r];case 2:return i.sent(),[3,1];case 3:return[2]}}))},e.evaluate=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Array.from(this.evaluateGenerator.apply(this,a([],s(e))))},e.evaluateToSingle=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=this.evaluate.apply(this,a([],s(e)));if(1===r.length)return r[0];if(r.length<1)throw new Error("No element found");throw new Error("Multiple elements found")},e.closestElement=function(e){return e instanceof Text?e.parentElement:e},e.getParentElement=function(e){return e.parentElement?e.parentElement:e.ownerElement?e.ownerElement:void 0},e.isElementTargetElement=function(e){return e.hasAttribute("_tolgee-target")},e.markElementAsTargetElement=function(e){e.setAttribute("_tolgee-target","")},e.unmarkElementAsTargetElement=function(e){e.removeAttribute("_tolgee-target")},e.nodeContains=function(e,t){if(e.contains(t))return!0;if(t instanceof Attr){var r=Object.values(t.ownerElement.attributes).indexOf(t)>-1;if(e.contains(t.ownerElement)&&r)return!0}return!1},e}();exports.ModifierKey=void 0,(u=exports.ModifierKey||(exports.ModifierKey={}))[u.Alt=0]="Alt",u[u.Control=1]="Control",u[u.Shift=2]="Shift",u[u.Meta=3]="Meta";var l,h,p,f=function(){if("undefined"!=typeof document)return document.body},g=function(e){this.apiUrl="https://app.tolgee.io",this.inputPrefix="%-%tolgee:",this.inputSuffix="%-%",this.defaultLanguage="en",this.filesUrlPrefix="i18n/",this.tagAttributes={textarea:["placeholder"],input:["value","placeholder"],img:["alt"],"*":["aria-label","title"]},this.highlightKeys=[exports.ModifierKey.Alt],this.passToParent=["option","optgroup"],this.restrictedElements=["script","style"],this.highlightColor="rgb(224 240 255)",this.preloadFallback=!1,Object.defineProperty(this,"targetElement",{set:function(e){if(void 0!==this.targetElement)throw new Error("Target element is already defined!");if(void 0===e&&(this._targetElement=f()),c.isElementTargetElement(e))throw console.error("Target element: ",this._targetElement),new Error("An tolgee instance is inited with provided target element");this._targetElement=e,c.markElementAsTargetElement(this._targetElement)},get:function(){return this._targetElement}}),Object.assign(this,e||{}),void 0===this._targetElement&&(this._targetElement=f()),this.mode=this.mode||(this.apiKey?"development":"production"),this.fallbackLanguage=this.fallbackLanguage||this.defaultLanguage,void 0===this.watch&&(this.watch="development"===this.mode)},d=function(){function e(){}return Object.defineProperty(e.prototype,"currentLanguage",{get:function(){var e;if(this.config.forceLanguage)return this.config.forceLanguage;"undefined"!=typeof localStorage?(e=localStorage.getItem("__tolgee_currentLanguage"),this.config.availableLanguages&&(this.config.availableLanguages.indexOf(e)>-1||(e=void 0))):e=this._currentLanguage;return e||(e=this.getLanguageByNavigator(),this.currentLanguage=e),e},set:function(e){"undefined"!=typeof localStorage?localStorage.setItem("__tolgee_currentLanguage",e):this._currentLanguage=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"preferredLanguages",{get:function(){return new Set(JSON.parse(localStorage.getItem("__tolgee_preferredLanguages")))},set:function(e){localStorage.setItem("__tolgee_preferredLanguages",JSON.stringify(Array.from(e)))},enumerable:!1,configurable:!0}),e.prototype.getLanguageByNavigator=function(){if("undefined"!=typeof window&&this.config.availableLanguages){var e=window.navigator.language,t=this.config.availableLanguages.find((function(t){return t===e}));if(t)return t;var r=function(e){return e.replace(/^(.+?)(-.*)?$/,"$1")},n=r(window.navigator.language),i=this.config.availableLanguages.find((function(e){return r(e)===n}));if(i)return i}return this.config.defaultLanguage},e}(),v=function(){function e(e){this.onUnsubscribe=e}return e.prototype.unsubscribe=function(){this.onUnsubscribe()},e}(),m=function(){function e(){this.idCounter=0,this._subscriptions=new Map}return Object.defineProperty(e.prototype,"subscriptions",{get:function(){return this._subscriptions},enumerable:!1,configurable:!0}),e.prototype.emit=function(e){var t,r,n=[];try{for(var i=o(this.subscriptions.values()),s=i.next();!s.done;s=i.next()){var a=(0,s.value)(e);"function"==typeof(null==a?void 0:a.then)&&n.push(a)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}if(0!==n.length)return new Promise((function(e){return Promise.all(n).then((function(){return e()}))}))},e.prototype.subscribe=function(e){var t=this,r=this.idCounter++,n=new v((function(){return t.unsubscribe(r)}));return this.subscriptions.set(r,e),n},e.prototype.unsubscribe=function(e){this._subscriptions.delete(e)||console.warn("Event to unsubscribe was not found")},e}(),y=function(){this.TRANSLATION_CHANGED=new m,this.LANGUAGE_CHANGED=new m,this.LANGUAGE_LOADED=new m},E=function(e){function r(t,n){var i=e.call(this,"Api http error")||this;return i.response=t,i.code=n,Object.setPrototypeOf(i,r.prototype),i}return t(r,e),r}(Error),b=function(){function e(e){this.properties=e}return e.handleErrors=function(e){return n(this,void 0,void 0,(function(){var t,r;return i(this,(function(n){switch(n.label){case 0:if(!(e.status>=400))return[3,5];t=new E(e),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,e.json()];case 2:return r=n.sent(),t.code=r.code,[3,4];case 3:return n.sent(),console.warn("Tolgee server responded with invalid status code."),[3,4];case 4:throw t;case 5:return[2,e]}}))}))},e.prototype.fetch=function(){for(var t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];return n(this,void 0,void 0,(function(){var n,o,u;return i(this,(function(i){switch(i.label){case 0:return"object"!=typeof t[0]?[3,2]:[4,fetch(r(r({},t[0]),{url:this.getUrl(t[0].url)})).then((function(t){return e.handleErrors(t)}))];case 1:return[2,i.sent()];case 2:return n=s(t),o=n[0],u=n.slice(1),[4,fetch.apply(void 0,a([this.getUrl(o)],s(u))).then((function(t){return e.handleErrors(t)}))];case 3:return[2,i.sent()]}}))}))},e.prototype.fetchJson=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.fetch.apply(this,a([],s(e))).then((function(e){return e.json()}))];case 1:return[2,t.sent()]}}))}))},e.prototype.post=function(e,t,o){void 0===o&&(o={});for(var u=[],c=3;c<arguments.length;c++)u[c-3]=arguments[c];return n(this,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return[4,this.fetch.apply(this,a([e,r({body:JSON.stringify(t),method:"POST",headers:{"Content-Type":"application/json"}},o)],s(u)))];case 1:return[2,n.sent()]}}))}))},e.prototype.postJson=function(e,t,r){void 0===r&&(r={});for(var o=[],u=3;u<arguments.length;u++)o[u-3]=arguments[u];return n(this,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return[4,this.post.apply(this,a([e,t,r],s(o))).then((function(e){return e.json()}))];case 1:return[2,n.sent()]}}))}))},e.prototype.getUrl=function(e){var t=e.indexOf("?")<0?"?":"&";return this.properties.config.apiUrl+"/"+e+t+"ak="+this.properties.config.apiKey},e}(),_=function(e,t){this.key=e,this.translations=t},T=function(){function e(){}return e.splitOnNonEscapedDelimiter=function(e,t){for(var r=[],n="",i=0;i<e.length;i++){e[i]!==t||this.isCharEscaped(i,e)?n+=e[i]:(r.push(this.removeEscapes(n)),n="")}return r.push(this.removeEscapes(n)),r},e.isCharEscaped=function(e,t){for(var r=0;e>-1&&"\\"===t[e-1];)r++,e--;return r%2==1},e.removeEscapes=function(e){return e.replace(/\\?\\?/g,(function(e){return"\\\\"==e?"\\":""}))},e}(),S=function(){function e(e,t,o,u){var c=this;this.properties=e,this.coreService=t,this.apiHttpService=o,this.eventService=u,this.translationsCache=new Map,this.fetchPromises={},this.getTranslationsOfKey=function(e,t){return void 0===t&&(t=new Set([c.properties.currentLanguage])),n(c,void 0,void 0,(function(){var n,o,u,c,l,h,p,f,g,d,v,m;return i(this,(function(i){switch(i.label){case 0:this.coreService.checkScope("translations.view"),i.label=1;case 1:return i.trys.push([1,3,,6]),n=a([],s(t)),o=n.map((function(e){return"languages="+e})).join("&"),[4,this.apiHttpService.fetchJson("v2/projects/translations?"+o+"&filterKeyName="+encodeURIComponent(e))];case 2:return u=i.sent(),c=n.reduce((function(e,t){var n;return r(r({},e),((n={})[t]="",n))}),{}),(null===(g=null===(f=null===(p=u._embedded)||void 0===p?void 0:p.keys)||void 0===f?void 0:f[0])||void 0===g?void 0:g.translations)&&Object.entries(null===(m=null===(v=null===(d=u._embedded)||void 0===d?void 0:d.keys)||void 0===v?void 0:v[0])||void 0===m?void 0:m.translations).forEach((function(e){var t=s(e,2),r=t[0],n=t[1];return c[r]=n.text})),[2,new _(e,c)];case 3:return(l=i.sent())instanceof E?404!==l.response.status||"language_not_found"!==l.code?[3,5]:(h=this.properties,[4,this.coreService.getLanguages()]):[3,5];case 4:return h.preferredLanguages=i.sent(),console.error("Requested language not found, refreshing the page!"),location.reload(),[2];case 5:throw l;case 6:return[2]}}))}))}}return e.translationByValue=function(e,t,r){if(e)return e;if(r)return"";var n=T.splitOnNonEscapedDelimiter(t,".");return n[n.length-1]},e.prototype.initStatic=function(){var e,t=this;"production"===this.properties.config.mode&&"object"==typeof(null===(e=this.properties.config)||void 0===e?void 0:e.staticData)&&Object.entries(this.properties.config.staticData).forEach((function(e){var r=s(e,2),n=r[0],i=r[1];"function"!=typeof i&&t.translationsCache.set(n,i)}))},e.prototype.loadTranslations=function(e){return void 0===e&&(e=this.properties.currentLanguage),n(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return null!=this.translationsCache.get(e)?[3,2]:(this.fetchPromises[e]instanceof Promise||(this.fetchPromises[e]=this.fetchTranslations(e)),[4,this.fetchPromises[e]]);case 1:t.sent(),this.eventService.LANGUAGE_LOADED.emit(e),t.label=2;case 2:return this.fetchPromises[e]=void 0,[2]}}))}))},e.prototype.getTranslation=function(t,r,o){return void 0===r&&(r=this.properties.currentLanguage),void 0===o&&(o=!1),n(this,void 0,void 0,(function(){var n;return i(this,(function(i){switch(i.label){case 0:return(n=this.getFromCache(t,r))?[3,3]:[4,this.loadTranslations(r)];case 1:return i.sent(),(n=this.getFromCache(t,r))?[3,3]:(n=this.getFromCache(t,this.properties.config.fallbackLanguage))?[3,3]:[4,this.loadTranslations(this.properties.config.fallbackLanguage)];case 2:i.sent(),n=this.getFromCache(t,this.properties.config.fallbackLanguage),i.label=3;case 3:return[2,e.translationByValue(n,t,o)]}}))}))},e.prototype.setTranslations=function(e){return n(this,void 0,void 0,(function(){var t=this;return i(this,(function(r){switch(r.label){case 0:return this.coreService.checkScope("translations.edit"),[4,this.apiHttpService.post("v2/projects/translations",e)];case 1:return r.sent(),Object.keys(e.translations).forEach((function(r){if(t.translationsCache.get(r))for(var n=T.splitOnNonEscapedDelimiter(e.key,"."),i=t.translationsCache.get(r),o=0;o<n.length;o++){var s=n[o];if(void 0===i[s]&&(i[s]={}),o===n.length-1)return void(i[s]=e.translations[r]);i=i[s]}})),[2]}}))}))},e.prototype.getFromCacheOrFallback=function(t,r,n){void 0===r&&(r=this.properties.currentLanguage),void 0===n&&(n=!1);var i=this.getFromCache(t,r)||this.getFromCache(t,this.properties.config.fallbackLanguage);return e.translationByValue(i,t,n)},e.prototype.fetchTranslations=function(e){return n(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return"development"!==this.properties.config.mode?[3,2]:[4,this.fetchTranslationsDevelopment(e)];case 1:return[2,t.sent()];case 2:return[4,this.fetchTranslationsProduction(e)];case 3:return[2,t.sent()]}}))}))},e.prototype.fetchTranslationsProduction=function(e){var t,r;return n(this,void 0,void 0,(function(){var n,o,s,a;return i(this,(function(i){switch(i.label){case 0:return"function"!=typeof(n=null===(r=null===(t=this.properties.config)||void 0===t?void 0:t.staticData)||void 0===r?void 0:r[e])?[3,2]:[4,n()];case 1:return a=i.sent(),this.translationsCache.set(e,a),[2];case 2:if(void 0!==n)return this.translationsCache.set(e,n),[2];i.label=3;case 3:o=""+(this.properties.config.filesUrlPrefix||"/")+e+".json",i.label=4;case 4:return i.trys.push([4,10,,11]),[4,fetch(o)];case 5:if((s=i.sent()).status>=400)return console.error("Server responded with error status while loading localization data."),this.translationsCache.set(e,{}),[2];i.label=6;case 6:return i.trys.push([6,8,,9]),[4,s.json()];case 7:return a=i.sent(),this.translationsCache.set(e,a),[3,9];case 8:return i.sent(),console.error("Error parsing json retrieved from "+o+"."),this.setEmptyLanguageData(e),[3,9];case 9:return[3,11];case 10:return i.sent(),console.error("Error fetching localization data from "+o+"."),this.setEmptyLanguageData(e),[3,11];case 11:return[2]}}))}))},e.prototype.fetchTranslationsDevelopment=function(e){return n(this,void 0,void 0,(function(){var t,r;return i(this,(function(n){switch(n.label){case 0:this.coreService.checkScope("translations.view"),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.apiHttpService.fetchJson("v2/projects/translations/"+e)];case 2:return t=n.sent(),this.translationsCache.set(e,t[e]||{}),[3,4];case 3:return r=n.sent(),console.error("Error while fetching localization data from API.",r),this.setEmptyLanguageData(e),[2];case 4:return[2]}}))}))},e.prototype.setEmptyLanguageData=function(e){this.translationsCache.set(e,{})},e.prototype.getFromCache=function(e,t){var r,n;void 0===t&&(t=this.properties.currentLanguage);var i=T.splitOnNonEscapedDelimiter(e,"."),s=this.translationsCache.get(t);if(void 0!==s){if("string"==typeof s[e])return s[e];try{for(var a=o(i),u=a.next();!u.done;u=a.next()){var c=u.value;if(void 0===s[c])return;s=s[c]}}catch(e){r={error:e}}finally{try{u&&!u.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return s}},e}();function w(e){return e.type===h.literal}function A(e){return e.type===h.argument}function L(e){return e.type===h.number}function P(e){return e.type===h.date}function N(e){return e.type===h.time}function O(e){return e.type===h.select}function C(e){return e.type===h.plural}function R(e){return e.type===h.pound}function I(e){return e.type===h.tag}function U(e){return!(!e||"object"!=typeof e||e.type!==p.number)}function M(e){return!(!e||"object"!=typeof e||e.type!==p.dateTime)}!function(e){e[e.EXPECT_ARGUMENT_CLOSING_BRACE=1]="EXPECT_ARGUMENT_CLOSING_BRACE",e[e.EMPTY_ARGUMENT=2]="EMPTY_ARGUMENT",e[e.MALFORMED_ARGUMENT=3]="MALFORMED_ARGUMENT",e[e.EXPECT_ARGUMENT_TYPE=4]="EXPECT_ARGUMENT_TYPE",e[e.INVALID_ARGUMENT_TYPE=5]="INVALID_ARGUMENT_TYPE",e[e.EXPECT_ARGUMENT_STYLE=6]="EXPECT_ARGUMENT_STYLE",e[e.INVALID_NUMBER_SKELETON=7]="INVALID_NUMBER_SKELETON",e[e.INVALID_DATE_TIME_SKELETON=8]="INVALID_DATE_TIME_SKELETON",e[e.EXPECT_NUMBER_SKELETON=9]="EXPECT_NUMBER_SKELETON",e[e.EXPECT_DATE_TIME_SKELETON=10]="EXPECT_DATE_TIME_SKELETON",e[e.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE=11]="UNCLOSED_QUOTE_IN_ARGUMENT_STYLE",e[e.EXPECT_SELECT_ARGUMENT_OPTIONS=12]="EXPECT_SELECT_ARGUMENT_OPTIONS",e[e.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE=13]="EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE",e[e.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE=14]="INVALID_PLURAL_ARGUMENT_OFFSET_VALUE",e[e.EXPECT_SELECT_ARGUMENT_SELECTOR=15]="EXPECT_SELECT_ARGUMENT_SELECTOR",e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR=16]="EXPECT_PLURAL_ARGUMENT_SELECTOR",e[e.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT=17]="EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT",e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT=18]="EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT",e[e.INVALID_PLURAL_ARGUMENT_SELECTOR=19]="INVALID_PLURAL_ARGUMENT_SELECTOR",e[e.DUPLICATE_PLURAL_ARGUMENT_SELECTOR=20]="DUPLICATE_PLURAL_ARGUMENT_SELECTOR",e[e.DUPLICATE_SELECT_ARGUMENT_SELECTOR=21]="DUPLICATE_SELECT_ARGUMENT_SELECTOR",e[e.MISSING_OTHER_CLAUSE=22]="MISSING_OTHER_CLAUSE",e[e.INVALID_TAG=23]="INVALID_TAG",e[e.INVALID_TAG_NAME=25]="INVALID_TAG_NAME",e[e.UNMATCHED_CLOSING_TAG=26]="UNMATCHED_CLOSING_TAG",e[e.UNCLOSED_TAG=27]="UNCLOSED_TAG"}(l||(l={})),function(e){e[e.literal=0]="literal",e[e.argument=1]="argument",e[e.number=2]="number",e[e.date=3]="date",e[e.time=4]="time",e[e.select=5]="select",e[e.plural=6]="plural",e[e.pound=7]="pound",e[e.tag=8]="tag"}(h||(h={})),function(e){e[e.number=0]="number",e[e.dateTime=1]="dateTime"}(p||(p={}));var D=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,k=/(?:[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;function x(e){var t={};return e.replace(k,(function(e){var r=e.length;switch(e[0]){case"G":t.era=4===r?"long":5===r?"narrow":"short";break;case"y":t.year=2===r?"2-digit":"numeric";break;case"Y":case"u":case"U":case"r":throw new RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");case"q":case"Q":throw new RangeError("`q/Q` (quarter) patterns are not supported");case"M":case"L":t.month=["numeric","2-digit","short","long","narrow"][r-1];break;case"w":case"W":throw new RangeError("`w/W` (week) patterns are not supported");case"d":t.day=["numeric","2-digit"][r-1];break;case"D":case"F":case"g":throw new RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");case"E":t.weekday=4===r?"short":5===r?"narrow":"short";break;case"e":if(r<4)throw new RangeError("`e..eee` (weekday) patterns are not supported");t.weekday=["short","long","narrow","short"][r-4];break;case"c":if(r<4)throw new RangeError("`c..ccc` (weekday) patterns are not supported");t.weekday=["short","long","narrow","short"][r-4];break;case"a":t.hour12=!0;break;case"b":case"B":throw new RangeError("`b/B` (period) patterns are not supported, use `a` instead");case"h":t.hourCycle="h12",t.hour=["numeric","2-digit"][r-1];break;case"H":t.hourCycle="h23",t.hour=["numeric","2-digit"][r-1];break;case"K":t.hourCycle="h11",t.hour=["numeric","2-digit"][r-1];break;case"k":t.hourCycle="h24",t.hour=["numeric","2-digit"][r-1];break;case"j":case"J":case"C":throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");case"m":t.minute=["numeric","2-digit"][r-1];break;case"s":t.second=["numeric","2-digit"][r-1];break;case"S":case"A":throw new RangeError("`S/A` (second) patterns are not supported, use `s` instead");case"z":t.timeZoneName=r<4?"short":"long";break;case"Z":case"O":case"v":case"V":case"X":case"x":throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead")}return""})),t}var G=/[\t-\r \x85\u200E\u200F\u2028\u2029]/i;var F,j=/^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g,H=/^(@+)?(\+|#+)?$/g,V=/(\*)(0+)|(#+)(0+)|(0+)/g,K=/^(0+)$/;function X(e){var t={};return e.replace(H,(function(e,r,n){return"string"!=typeof n?(t.minimumSignificantDigits=r.length,t.maximumSignificantDigits=r.length):"+"===n?t.minimumSignificantDigits=r.length:"#"===r[0]?t.maximumSignificantDigits=r.length:(t.minimumSignificantDigits=r.length,t.maximumSignificantDigits=r.length+("string"==typeof n?n.length:0)),""})),t}function z(e){switch(e){case"sign-auto":return{signDisplay:"auto"};case"sign-accounting":case"()":return{currencySign:"accounting"};case"sign-always":case"+!":return{signDisplay:"always"};case"sign-accounting-always":case"()!":return{signDisplay:"always",currencySign:"accounting"};case"sign-except-zero":case"+?":return{signDisplay:"exceptZero"};case"sign-accounting-except-zero":case"()?":return{signDisplay:"exceptZero",currencySign:"accounting"};case"sign-never":case"+_":return{signDisplay:"never"}}}function B(e){var t;if("E"===e[0]&&"E"===e[1]?(t={notation:"engineering"},e=e.slice(2)):"E"===e[0]&&(t={notation:"scientific"},e=e.slice(1)),t){var r=e.slice(0,2);if("+!"===r?(t.signDisplay="always",e=e.slice(2)):"+?"===r&&(t.signDisplay="exceptZero",e=e.slice(2)),!K.test(e))throw new Error("Malformed concise eng/scientific notation");t.minimumIntegerDigits=e.length}return t}function Y(e){var t=z(e);return t||{}}function W(e){for(var t={},n=0,i=e;n<i.length;n++){var o=i[n];switch(o.stem){case"percent":case"%":t.style="percent";continue;case"%x100":t.style="percent",t.scale=100;continue;case"currency":t.style="currency",t.currency=o.options[0];continue;case"group-off":case",_":t.useGrouping=!1;continue;case"precision-integer":case".":t.maximumFractionDigits=0;continue;case"measure-unit":case"unit":t.style="unit",t.unit=o.options[0].replace(/^(.*?)-/,"");continue;case"compact-short":case"K":t.notation="compact",t.compactDisplay="short";continue;case"compact-long":case"KK":t.notation="compact",t.compactDisplay="long";continue;case"scientific":t=r(r(r({},t),{notation:"scientific"}),o.options.reduce((function(e,t){return r(r({},e),Y(t))}),{}));continue;case"engineering":t=r(r(r({},t),{notation:"engineering"}),o.options.reduce((function(e,t){return r(r({},e),Y(t))}),{}));continue;case"notation-simple":t.notation="standard";continue;case"unit-width-narrow":t.currencyDisplay="narrowSymbol",t.unitDisplay="narrow";continue;case"unit-width-short":t.currencyDisplay="code",t.unitDisplay="short";continue;case"unit-width-full-name":t.currencyDisplay="name",t.unitDisplay="long";continue;case"unit-width-iso-code":t.currencyDisplay="symbol";continue;case"scale":t.scale=parseFloat(o.options[0]);continue;case"integer-width":if(o.options.length>1)throw new RangeError("integer-width stems only accept a single optional option");o.options[0].replace(V,(function(e,r,n,i,o,s){if(r)t.minimumIntegerDigits=n.length;else{if(i&&o)throw new Error("We currently do not support maximum integer digits");if(s)throw new Error("We currently do not support exact integer digits")}return""}));continue}if(K.test(o.stem))t.minimumIntegerDigits=o.stem.length;else if(j.test(o.stem)){if(o.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");o.stem.replace(j,(function(e,r,n,i,o,s){return"*"===n?t.minimumFractionDigits=r.length:i&&"#"===i[0]?t.maximumFractionDigits=i.length:o&&s?(t.minimumFractionDigits=o.length,t.maximumFractionDigits=o.length+s.length):(t.minimumFractionDigits=r.length,t.maximumFractionDigits=r.length),""})),o.options.length&&(t=r(r({},t),X(o.options[0])))}else if(H.test(o.stem))t=r(r({},t),X(o.stem));else{var s=z(o.stem);s&&(t=r(r({},t),s));var a=B(o.stem);a&&(t=r(r({},t),a))}}return t}var q=new RegExp("^"+D.source+"*"),J=new RegExp(D.source+"*$");function Z(e,t){return{start:e,end:t}}var $=!!String.prototype.startsWith,Q=!!String.fromCodePoint,ee=!!Object.fromEntries,te=!!String.prototype.codePointAt,re=!!String.prototype.trimStart,ne=!!String.prototype.trimEnd,ie=!!Number.isSafeInteger?Number.isSafeInteger:function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},oe=!0;try{oe="a"===(null===(F=fe("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu").exec("a"))||void 0===F?void 0:F[0])}catch(e){oe=!1}var se,ae=$?function(e,t,r){return e.startsWith(t,r)}:function(e,t,r){return e.slice(r,r+t.length)===t},ue=Q?String.fromCodePoint:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r,n="",i=e.length,o=0;i>o;){if((r=e[o++])>1114111)throw RangeError(r+" is not a valid code point");n+=r<65536?String.fromCharCode(r):String.fromCharCode(55296+((r-=65536)>>10),r%1024+56320)}return n},ce=ee?Object.fromEntries:function(e){for(var t={},r=0,n=e;r<n.length;r++){var i=n[r],o=i[0],s=i[1];t[o]=s}return t},le=te?function(e,t){return e.codePointAt(t)}:function(e,t){var r=e.length;if(!(t<0||t>=r)){var n,i=e.charCodeAt(t);return i<55296||i>56319||t+1===r||(n=e.charCodeAt(t+1))<56320||n>57343?i:n-56320+(i-55296<<10)+65536}},he=re?function(e){return e.trimStart()}:function(e){return e.replace(q,"")},pe=ne?function(e){return e.trimEnd()}:function(e){return e.replace(J,"")};function fe(e,t){return new RegExp(e,t)}if(oe){var ge=fe("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");se=function(e,t){var r;return ge.lastIndex=t,null!==(r=ge.exec(e)[1])&&void 0!==r?r:""}}else se=function(e,t){for(var r=[];;){var n=le(e,t);if(void 0===n||me(n)||ye(n))break;r.push(n),t+=n>=65536?2:1}return ue.apply(void 0,r)};var de=function(){function e(e,t){void 0===t&&(t={}),this.message=e,this.position={offset:0,line:1,column:1},this.ignoreTag=!!t.ignoreTag,this.requiresOtherClause=!!t.requiresOtherClause,this.shouldParseSkeletons=!!t.shouldParseSkeletons}return e.prototype.parse=function(){if(0!==this.offset())throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},e.prototype.parseMessage=function(e,t,r){for(var n=[];!this.isEOF();){var i=this.char();if(123===i){if((o=this.parseArgument(e,r)).err)return o;n.push(o.val)}else{if(125===i&&e>0)break;if(35!==i||"plural"!==t&&"selectordinal"!==t){if(60===i&&!this.ignoreTag&&47===this.peek()){if(r)break;return this.error(l.UNMATCHED_CLOSING_TAG,Z(this.clonePosition(),this.clonePosition()))}if(60===i&&!this.ignoreTag&&ve(this.peek()||0)){if((o=this.parseTag(e,t)).err)return o;n.push(o.val)}else{var o;if((o=this.parseLiteral(e,t)).err)return o;n.push(o.val)}}else{var s=this.clonePosition();this.bump(),n.push({type:h.pound,location:Z(s,this.clonePosition())})}}}return{val:n,err:null}},e.prototype.parseTag=function(e,t){var r=this.clonePosition();this.bump();var n=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:h.literal,value:"<"+n+"/>",location:Z(r,this.clonePosition())},err:null};if(this.bumpIf(">")){var i=this.parseMessage(e+1,t,!0);if(i.err)return i;var o=i.val,s=this.clonePosition();if(this.bumpIf("</")){if(this.isEOF()||!ve(this.char()))return this.error(l.INVALID_TAG,Z(s,this.clonePosition()));var a=this.clonePosition();return n!==this.parseTagName()?this.error(l.UNMATCHED_CLOSING_TAG,Z(a,this.clonePosition())):(this.bumpSpace(),this.bumpIf(">")?{val:{type:h.tag,value:n,children:o,location:Z(r,this.clonePosition())},err:null}:this.error(l.INVALID_TAG,Z(s,this.clonePosition())))}return this.error(l.UNCLOSED_TAG,Z(r,this.clonePosition()))}return this.error(l.INVALID_TAG,Z(r,this.clonePosition()))},e.prototype.parseTagName=function(){var e,t=this.offset();for(this.bump();!this.isEOF()&&(45===(e=this.char())||46===e||e>=48&&e<=57||95===e||e>=97&&e<=122||e>=65&&e<=90||183==e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039);)this.bump();return this.message.slice(t,this.offset())},e.prototype.parseLiteral=function(e,t){for(var r=this.clonePosition(),n="";;){var i=this.tryParseQuote(t);if(i)n+=i;else{var o=this.tryParseUnquoted(e,t);if(o)n+=o;else{var s=this.tryParseLeftAngleBracket();if(!s)break;n+=s}}}var a=Z(r,this.clonePosition());return{val:{type:h.literal,value:n,location:a},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return this.isEOF()||60!==this.char()||!this.ignoreTag&&(ve(e=this.peek()||0)||47===e)?null:(this.bump(),"<");var e},e.prototype.tryParseQuote=function(e){if(this.isEOF()||39!==this.char())return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if("plural"===e||"selectordinal"===e)break;return null;default:return null}this.bump();var t=[this.char()];for(this.bump();!this.isEOF();){var r=this.char();if(39===r){if(39!==this.peek()){this.bump();break}t.push(39),this.bump()}else t.push(r);this.bump()}return ue.apply(void 0,t)},e.prototype.tryParseUnquoted=function(e,t){if(this.isEOF())return null;var r=this.char();return 60===r||123===r||35===r&&("plural"===t||"selectordinal"===t)||125===r&&e>0?null:(this.bump(),ue(r))},e.prototype.parseArgument=function(e,t){var r=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(l.EXPECT_ARGUMENT_CLOSING_BRACE,Z(r,this.clonePosition()));if(125===this.char())return this.bump(),this.error(l.EMPTY_ARGUMENT,Z(r,this.clonePosition()));var n=this.parseIdentifierIfPossible().value;if(!n)return this.error(l.MALFORMED_ARGUMENT,Z(r,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(l.EXPECT_ARGUMENT_CLOSING_BRACE,Z(r,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:h.argument,value:n,location:Z(r,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(l.EXPECT_ARGUMENT_CLOSING_BRACE,Z(r,this.clonePosition())):this.parseArgumentOptions(e,t,n,r);default:return this.error(l.MALFORMED_ARGUMENT,Z(r,this.clonePosition()))}},e.prototype.parseIdentifierIfPossible=function(){var e=this.clonePosition(),t=this.offset(),r=se(this.message,t),n=t+r.length;return this.bumpTo(n),{value:r,location:Z(e,this.clonePosition())}},e.prototype.parseArgumentOptions=function(e,t,n,i){var o,s=this.clonePosition(),a=this.parseIdentifierIfPossible().value,u=this.clonePosition();switch(a){case"":return this.error(l.EXPECT_ARGUMENT_TYPE,Z(s,u));case"number":case"date":case"time":this.bumpSpace();var c=null;if(this.bumpIf(",")){this.bumpSpace();var f=this.clonePosition();if((b=this.parseSimpleArgStyleIfPossible()).err)return b;if(0===(v=pe(b.val)).length)return this.error(l.EXPECT_ARGUMENT_STYLE,Z(this.clonePosition(),this.clonePosition()));c={style:v,styleLocation:Z(f,this.clonePosition())}}if((_=this.tryParseArgumentClose(i)).err)return _;var g=Z(i,this.clonePosition());if(c&&ae(null==c?void 0:c.style,"::",0)){var d=he(c.style.slice(2));if("number"===a)return(b=this.parseNumberSkeletonFromString(d,c.styleLocation)).err?b:{val:{type:h.number,value:n,location:g,style:b.val},err:null};if(0===d.length)return this.error(l.EXPECT_DATE_TIME_SKELETON,g);var v={type:p.dateTime,pattern:d,location:c.styleLocation,parsedOptions:this.shouldParseSkeletons?x(d):{}};return{val:{type:"date"===a?h.date:h.time,value:n,location:g,style:v},err:null}}return{val:{type:"number"===a?h.number:"date"===a?h.date:h.time,value:n,location:g,style:null!==(o=null==c?void 0:c.style)&&void 0!==o?o:null},err:null};case"plural":case"selectordinal":case"select":var m=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(l.EXPECT_SELECT_ARGUMENT_OPTIONS,Z(m,r({},m)));this.bumpSpace();var y=this.parseIdentifierIfPossible(),E=0;if("select"!==a&&"offset"===y.value){if(!this.bumpIf(":"))return this.error(l.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,Z(this.clonePosition(),this.clonePosition()));var b;if(this.bumpSpace(),(b=this.tryParseDecimalInteger(l.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,l.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE)).err)return b;this.bumpSpace(),y=this.parseIdentifierIfPossible(),E=b.val}var _,T=this.tryParsePluralOrSelectOptions(e,a,t,y);if(T.err)return T;if((_=this.tryParseArgumentClose(i)).err)return _;var S=Z(i,this.clonePosition());return"select"===a?{val:{type:h.select,value:n,options:ce(T.val),location:S},err:null}:{val:{type:h.plural,value:n,options:ce(T.val),offset:E,pluralType:"plural"===a?"cardinal":"ordinal",location:S},err:null};default:return this.error(l.INVALID_ARGUMENT_TYPE,Z(s,u))}},e.prototype.tryParseArgumentClose=function(e){return this.isEOF()||125!==this.char()?this.error(l.EXPECT_ARGUMENT_CLOSING_BRACE,Z(e,this.clonePosition())):(this.bump(),{val:!0,err:null})},e.prototype.parseSimpleArgStyleIfPossible=function(){for(var e=0,t=this.clonePosition();!this.isEOF();){switch(this.char()){case 39:this.bump();var r=this.clonePosition();if(!this.bumpUntil("'"))return this.error(l.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,Z(r,this.clonePosition()));this.bump();break;case 123:e+=1,this.bump();break;case 125:if(!(e>0))return{val:this.message.slice(t.offset,this.offset()),err:null};e-=1;break;default:this.bump()}}return{val:this.message.slice(t.offset,this.offset()),err:null}},e.prototype.parseNumberSkeletonFromString=function(e,t){var r=[];try{r=function(e){if(0===e.length)throw new Error("Number skeleton cannot be empty");for(var t=[],r=0,n=e.split(G).filter((function(e){return e.length>0}));r<n.length;r++){var i=n[r].split("/");if(0===i.length)throw new Error("Invalid number skeleton");for(var o=i[0],s=i.slice(1),a=0,u=s;a<u.length;a++)if(0===u[a].length)throw new Error("Invalid number skeleton");t.push({stem:o,options:s})}return t}(e)}catch(e){return this.error(l.INVALID_NUMBER_SKELETON,t)}return{val:{type:p.number,tokens:r,location:t,parsedOptions:this.shouldParseSkeletons?W(r):{}},err:null}},e.prototype.tryParsePluralOrSelectOptions=function(e,t,r,n){for(var i,o=!1,s=[],a=new Set,u=n.value,c=n.location;;){if(0===u.length){var h=this.clonePosition();if("select"===t||!this.bumpIf("="))break;var p=this.tryParseDecimalInteger(l.EXPECT_PLURAL_ARGUMENT_SELECTOR,l.INVALID_PLURAL_ARGUMENT_SELECTOR);if(p.err)return p;c=Z(h,this.clonePosition()),u=this.message.slice(h.offset,this.offset())}if(a.has(u))return this.error("select"===t?l.DUPLICATE_SELECT_ARGUMENT_SELECTOR:l.DUPLICATE_PLURAL_ARGUMENT_SELECTOR,c);"other"===u&&(o=!0),this.bumpSpace();var f=this.clonePosition();if(!this.bumpIf("{"))return this.error("select"===t?l.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT:l.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT,Z(this.clonePosition(),this.clonePosition()));var g=this.parseMessage(e+1,t,r);if(g.err)return g;var d=this.tryParseArgumentClose(f);if(d.err)return d;s.push([u,{value:g.val,location:Z(f,this.clonePosition())}]),a.add(u),this.bumpSpace(),u=(i=this.parseIdentifierIfPossible()).value,c=i.location}return 0===s.length?this.error("select"===t?l.EXPECT_SELECT_ARGUMENT_SELECTOR:l.EXPECT_PLURAL_ARGUMENT_SELECTOR,Z(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!o?this.error(l.MISSING_OTHER_CLAUSE,Z(this.clonePosition(),this.clonePosition())):{val:s,err:null}},e.prototype.tryParseDecimalInteger=function(e,t){var r=1,n=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(r=-1);for(var i=!1,o=0;!this.isEOF();){var s=this.char();if(!(s>=48&&s<=57))break;i=!0,o=10*o+(s-48),this.bump()}var a=Z(n,this.clonePosition());return i?ie(o*=r)?{val:o,err:null}:this.error(t,a):this.error(e,a)},e.prototype.offset=function(){return this.position.offset},e.prototype.isEOF=function(){return this.offset()===this.message.length},e.prototype.clonePosition=function(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}},e.prototype.char=function(){var e=this.position.offset;if(e>=this.message.length)throw Error("out of bound");var t=le(this.message,e);if(void 0===t)throw Error("Offset "+e+" is at invalid UTF-16 code unit boundary");return t},e.prototype.error=function(e,t){return{val:null,err:{kind:e,message:this.message,location:t}}},e.prototype.bump=function(){if(!this.isEOF()){var e=this.char();10===e?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=e<65536?1:2)}},e.prototype.bumpIf=function(e){if(ae(this.message,e,this.offset())){for(var t=0;t<e.length;t++)this.bump();return!0}return!1},e.prototype.bumpUntil=function(e){var t=this.offset(),r=this.message.indexOf(e,t);return r>=0?(this.bumpTo(r),!0):(this.bumpTo(this.message.length),!1)},e.prototype.bumpTo=function(e){if(this.offset()>e)throw Error("targetOffset "+e+" must be greater than or equal to the current offset "+this.offset());for(e=Math.min(e,this.message.length);;){var t=this.offset();if(t===e)break;if(t>e)throw Error("targetOffset "+e+" is at invalid UTF-16 code unit boundary");if(this.bump(),this.isEOF())break}},e.prototype.bumpSpace=function(){for(;!this.isEOF()&&me(this.char());)this.bump()},e.prototype.peek=function(){if(this.isEOF())return null;var e=this.char(),t=this.offset(),r=this.message.charCodeAt(t+(e>=65536?2:1));return null!=r?r:null},e}();function ve(e){return e>=97&&e<=122||e>=65&&e<=90}function me(e){return e>=9&&e<=13||32===e||133===e||e>=8206&&e<=8207||8232===e||8233===e}function ye(e){return e>=33&&e<=35||36===e||e>=37&&e<=39||40===e||41===e||42===e||43===e||44===e||45===e||e>=46&&e<=47||e>=58&&e<=59||e>=60&&e<=62||e>=63&&e<=64||91===e||92===e||93===e||94===e||96===e||123===e||124===e||125===e||126===e||161===e||e>=162&&e<=165||166===e||167===e||169===e||171===e||172===e||174===e||176===e||177===e||182===e||187===e||191===e||215===e||247===e||e>=8208&&e<=8213||e>=8214&&e<=8215||8216===e||8217===e||8218===e||e>=8219&&e<=8220||8221===e||8222===e||8223===e||e>=8224&&e<=8231||e>=8240&&e<=8248||8249===e||8250===e||e>=8251&&e<=8254||e>=8257&&e<=8259||8260===e||8261===e||8262===e||e>=8263&&e<=8273||8274===e||8275===e||e>=8277&&e<=8286||e>=8592&&e<=8596||e>=8597&&e<=8601||e>=8602&&e<=8603||e>=8604&&e<=8607||8608===e||e>=8609&&e<=8610||8611===e||e>=8612&&e<=8613||8614===e||e>=8615&&e<=8621||8622===e||e>=8623&&e<=8653||e>=8654&&e<=8655||e>=8656&&e<=8657||8658===e||8659===e||8660===e||e>=8661&&e<=8691||e>=8692&&e<=8959||e>=8960&&e<=8967||8968===e||8969===e||8970===e||8971===e||e>=8972&&e<=8991||e>=8992&&e<=8993||e>=8994&&e<=9e3||9001===e||9002===e||e>=9003&&e<=9083||9084===e||e>=9085&&e<=9114||e>=9115&&e<=9139||e>=9140&&e<=9179||e>=9180&&e<=9185||e>=9186&&e<=9254||e>=9255&&e<=9279||e>=9280&&e<=9290||e>=9291&&e<=9311||e>=9472&&e<=9654||9655===e||e>=9656&&e<=9664||9665===e||e>=9666&&e<=9719||e>=9720&&e<=9727||e>=9728&&e<=9838||9839===e||e>=9840&&e<=10087||10088===e||10089===e||10090===e||10091===e||10092===e||10093===e||10094===e||10095===e||10096===e||10097===e||10098===e||10099===e||10100===e||10101===e||e>=10132&&e<=10175||e>=10176&&e<=10180||10181===e||10182===e||e>=10183&&e<=10213||10214===e||10215===e||10216===e||10217===e||10218===e||10219===e||10220===e||10221===e||10222===e||10223===e||e>=10224&&e<=10239||e>=10240&&e<=10495||e>=10496&&e<=10626||10627===e||10628===e||10629===e||10630===e||10631===e||10632===e||10633===e||10634===e||10635===e||10636===e||10637===e||10638===e||10639===e||10640===e||10641===e||10642===e||10643===e||10644===e||10645===e||10646===e||10647===e||10648===e||e>=10649&&e<=10711||10712===e||10713===e||10714===e||10715===e||e>=10716&&e<=10747||10748===e||10749===e||e>=10750&&e<=11007||e>=11008&&e<=11055||e>=11056&&e<=11076||e>=11077&&e<=11078||e>=11079&&e<=11084||e>=11085&&e<=11123||e>=11124&&e<=11125||e>=11126&&e<=11157||11158===e||e>=11159&&e<=11263||e>=11776&&e<=11777||11778===e||11779===e||11780===e||11781===e||e>=11782&&e<=11784||11785===e||11786===e||11787===e||11788===e||11789===e||e>=11790&&e<=11798||11799===e||e>=11800&&e<=11801||11802===e||11803===e||11804===e||11805===e||e>=11806&&e<=11807||11808===e||11809===e||11810===e||11811===e||11812===e||11813===e||11814===e||11815===e||11816===e||11817===e||e>=11818&&e<=11822||11823===e||e>=11824&&e<=11833||e>=11834&&e<=11835||e>=11836&&e<=11839||11840===e||11841===e||11842===e||e>=11843&&e<=11855||e>=11856&&e<=11857||11858===e||e>=11859&&e<=11903||e>=12289&&e<=12291||12296===e||12297===e||12298===e||12299===e||12300===e||12301===e||12302===e||12303===e||12304===e||12305===e||e>=12306&&e<=12307||12308===e||12309===e||12310===e||12311===e||12312===e||12313===e||12314===e||12315===e||12316===e||12317===e||e>=12318&&e<=12319||12320===e||12336===e||64830===e||64831===e||e>=65093&&e<=65094}function Ee(e){e.forEach((function(e){if(delete e.location,O(e)||C(e))for(var t in e.options)delete e.options[t].location,Ee(e.options[t].value);else L(e)&&U(e.style)||(P(e)||N(e))&&M(e.style)?delete e.style.location:I(e)&&Ee(e.children)}))}function be(e,t){void 0===t&&(t={}),t=r({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var n=new de(e,t).parse();if(n.err){var i=SyntaxError(l[n.err.kind]);throw i.location=n.err.location,i.originalMessage=n.err.message,i}return(null==t?void 0:t.captureLocation)||Ee(n.val),n.val}function _e(e,t){var r=t&&t.cache?t.cache:Oe,n=t&&t.serializer?t.serializer:Le;return(t&&t.strategy?t.strategy:Ae)(e,{cache:r,serializer:n})}function Te(e,t,r,n){var i,o=null==(i=n)||"number"==typeof i||"boolean"==typeof i?n:r(n),s=t.get(o);return void 0===s&&(s=e.call(this,n),t.set(o,s)),s}function Se(e,t,r){var n=Array.prototype.slice.call(arguments,3),i=r(n),o=t.get(i);return void 0===o&&(o=e.apply(this,n),t.set(i,o)),o}function we(e,t,r,n,i){return r.bind(t,e,n,i)}function Ae(e,t){return we(e,this,1===e.length?Te:Se,t.cache.create(),t.serializer)}var Le=function(){return JSON.stringify(arguments)};function Pe(){this.cache=Object.create(null)}Pe.prototype.get=function(e){return this.cache[e]},Pe.prototype.set=function(e,t){this.cache[e]=t};var Ne,Oe={create:function(){return new Pe}},Ce={variadic:function(e,t){return we(e,this,Se,t.cache.create(),t.serializer)},monadic:function(e,t){return we(e,this,Te,t.cache.create(),t.serializer)}};!function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"}(Ne||(Ne={}));var Re,Ie=function(e){function r(t,r,n){var i=e.call(this,t)||this;return i.code=r,i.originalMessage=n,i}return t(r,e),r.prototype.toString=function(){return"[formatjs Error: "+this.code+"] "+this.message},r}(Error),Ue=function(e){function r(t,r,n,i){return e.call(this,'Invalid values for "'+t+'": "'+r+'". Options are "'+Object.keys(n).join('", "')+'"',Ne.INVALID_VALUE,i)||this}return t(r,e),r}(Ie),Me=function(e){function r(t,r,n){return e.call(this,'Value for "'+t+'" must be of type '+r,Ne.INVALID_VALUE,n)||this}return t(r,e),r}(Ie),De=function(e){function r(t,r){return e.call(this,'The intl string context variable "'+t+'" was not provided to the string "'+r+'"',Ne.MISSING_VALUE,r)||this}return t(r,e),r}(Ie);function ke(e){return"function"==typeof e}function xe(e,t,r,n,i,o,s){if(1===e.length&&w(e[0]))return[{type:Re.literal,value:e[0].value}];for(var a=[],u=0,c=e;u<c.length;u++){var l=c[u];if(w(l))a.push({type:Re.literal,value:l.value});else if(R(l))"number"==typeof o&&a.push({type:Re.literal,value:r.getNumberFormat(t).format(o)});else{var h=l.value;if(!i||!(h in i))throw new De(h,s);var p=i[h];if(A(l))p&&"string"!=typeof p&&"number"!=typeof p||(p="string"==typeof p||"number"==typeof p?String(p):""),a.push({type:"string"==typeof p?Re.literal:Re.object,value:p});else if(P(l)){var f="string"==typeof l.style?n.date[l.style]:M(l.style)?l.style.parsedOptions:void 0;a.push({type:Re.literal,value:r.getDateTimeFormat(t,f).format(p)})}else if(N(l)){f="string"==typeof l.style?n.time[l.style]:M(l.style)?l.style.parsedOptions:void 0;a.push({type:Re.literal,value:r.getDateTimeFormat(t,f).format(p)})}else if(L(l)){(f="string"==typeof l.style?n.number[l.style]:U(l.style)?l.style.parsedOptions:void 0)&&f.scale&&(p*=f.scale||1),a.push({type:Re.literal,value:r.getNumberFormat(t,f).format(p)})}else{if(I(l)){var g=l.children,d=l.value,v=i[d];if(!ke(v))throw new Me(d,"function",s);var m=v(xe(g,t,r,n,i,o).map((function(e){return e.value})));Array.isArray(m)||(m=[m]),a.push.apply(a,m.map((function(e){return{type:"string"==typeof e?Re.literal:Re.object,value:e}})))}if(O(l)){if(!(y=l.options[p]||l.options.other))throw new Ue(l.value,p,Object.keys(l.options),s);a.push.apply(a,xe(y.value,t,r,n,i))}else if(C(l)){var y;if(!(y=l.options["="+p])){if(!Intl.PluralRules)throw new Ie('Intl.PluralRules is not available in this environment.\nTry polyfilling it using "@formatjs/intl-pluralrules"\n',Ne.MISSING_INTL_API,s);var E=r.getPluralRules(t,{type:l.pluralType}).select(p-(l.offset||0));y=l.options[E]||l.options.other}if(!y)throw new Ue(l.value,p,Object.keys(l.options),s);a.push.apply(a,xe(y.value,t,r,n,i,p-(l.offset||0)))}else;}}}return function(e){return e.length<2?e:e.reduce((function(e,t){var r=e[e.length-1];return r&&r.type===Re.literal&&t.type===Re.literal?r.value+=t.value:e.push(t),e}),[])}(a)}function Ge(e,t){return t?Object.keys(e).reduce((function(n,i){var o,s;return n[i]=(o=e[i],(s=t[i])?r(r(r({},o||{}),s||{}),Object.keys(o).reduce((function(e,t){return e[t]=r(r({},o[t]),s[t]||{}),e}),{})):o),n}),r({},e)):e}function Fe(e){return{create:function(){return{get:function(t){return e[t]},set:function(t,r){e[t]=r}}}}}!function(e){e[e.literal=0]="literal",e[e.object=1]="object"}(Re||(Re={}));var je=function(){function e(t,r,n,i){var o,s=this;if(void 0===r&&(r=e.defaultLocale),this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=function(e){var t=s.formatToParts(e);if(1===t.length)return t[0].value;var r=t.reduce((function(e,t){return e.length&&t.type===Re.literal&&"string"==typeof e[e.length-1]?e[e.length-1]+=t.value:e.push(t.value),e}),[]);return r.length<=1?r[0]||"":r},this.formatToParts=function(e){return xe(s.ast,s.locales,s.formatters,s.formats,e,void 0,s.message)},this.resolvedOptions=function(){return{locale:Intl.NumberFormat.supportedLocalesOf(s.locales)[0]}},this.getAst=function(){return s.ast},"string"==typeof t){if(this.message=t,!e.__parse)throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");this.ast=e.__parse(t,{ignoreTag:null==i?void 0:i.ignoreTag})}else this.ast=t;if(!Array.isArray(this.ast))throw new TypeError("A message must be provided as a String or AST.");this.formats=Ge(e.formats,n),this.locales=r,this.formatters=i&&i.formatters||(void 0===(o=this.formatterCache)&&(o={number:{},dateTime:{},pluralRules:{}}),{getNumberFormat:_e((function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new((e=Intl.NumberFormat).bind.apply(e,a([void 0],t)))}),{cache:Fe(o.number),strategy:Ce.variadic}),getDateTimeFormat:_e((function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new((e=Intl.DateTimeFormat).bind.apply(e,a([void 0],t)))}),{cache:Fe(o.dateTime),strategy:Ce.variadic}),getPluralRules:_e((function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new((e=Intl.PluralRules).bind.apply(e,a([void 0],t)))}),{cache:Fe(o.pluralRules),strategy:Ce.variadic})})}return Object.defineProperty(e,"defaultLocale",{get:function(){return e.memoizedDefaultLocale||(e.memoizedDefaultLocale=(new Intl.NumberFormat).resolvedOptions().locale),e.memoizedDefaultLocale},enumerable:!1,configurable:!0}),e.memoizedDefaultLocale=null,e.__parse=be,e.formats={number:{integer:{maximumFractionDigits:0},currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},e}(),He=function(){function e(e,t){var r=this;this.properties=e,this.translationService=t,this.format=function(e,t){try{return new je(e,r.properties.currentLanguage).format(t)}catch(t){if("MISSING_VALUE"===t.code)return console.warn(t.message),e}},this.escapeForRegExp=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},this.escapeParam=function(e){return"string"==typeof e?e.replace(/[,:\\]/gs,"\\$&"):"number"==typeof e||"bigint"==typeof e?e.toString():(console.warn(e),console.warn("Unsupported value type of above param. Consider converting to string."),e)}}return e.prototype.translate=function(e,t,r,o){return void 0===r&&(r=this.properties.currentLanguage),n(this,void 0,void 0,(function(){var n;return i(this,(function(i){switch(i.label){case 0:return n=this.format,[4,this.translationService.getTranslation(e,r,o)];case 1:return[2,n.apply(this,[i.sent(),t])]}}))}))},e.prototype.instant=function(e,t,r,n){return void 0===r&&(r=this.properties.currentLanguage),this.format(this.translationService.getFromCacheOrFallback(e,r,n),t)},e.prototype.replace=function(e){return n(this,void 0,void 0,(function(){var t,r,n,o,a,u,c,l,h,p,f,g,d,v,m;return i(this,(function(i){switch(i.label){case 0:t=new RegExp(this.rawUnWrapRegex,"gs"),r=[],n=!1,a=0,u="",i.label=1;case 1:return null===(o=t.exec(e))?[3,3]:(c=s(o,4),l=c[0],h=c[1],p=c[2],f=c[3],g=o.index,d=o.input,u+=d.substr(a,g-a),a=g+l.length,"\\"!==h||T.isCharEscaped(g,e)?[4,this.getTranslatedWithMetadata(f)]:(u+=p,[3,1]));case 2:return v=i.sent(),r.push({key:v.key,params:v.params}),n=!0,u+=h+v.translated,[3,1];case 3:return u+=e.substring(a),m=T.removeEscapes(u),n?[2,{text:m,keys:r}]:[2,void 0]}}))}))},e.prototype.wrap=function(e,t){var r=this;void 0===t&&(t={});var n=Object.entries(t).map((function(e){var t=s(e,2),n=t[0],i=t[1];return r.escapeParam(n)+":"+r.escapeParam(i)})).join(",");return n=n.length?":"+n:"",""+this.properties.config.inputPrefix+this.escapeParam(e)+n+this.properties.config.inputSuffix},e.prototype.getTranslatedWithMetadata=function(t){return n(this,void 0,void 0,(function(){var r,n,o;return i(this,(function(i){switch(i.label){case 0:return r=e.parseUnwrapped(t),n=r.key,o=r.params,[4,this.translate(n,o,void 0,!1)];case 1:return[2,{translated:i.sent(),key:n,params:o}]}}))}))},e.parseUnwrapped=function(e){for(var t=e.match(/(?:[^\\,:\n]|\\.)+/g),r={key:T.removeEscapes(t.shift()),params:{}};t.length;){var n=s(t.splice(0,2),2),i=n[0],o=n[1];r.params[i]=o}return r},Object.defineProperty(e.prototype,"rawUnWrapRegex",{get:function(){return"(\\\\?)("+this.escapeForRegExp(this.properties.config.inputPrefix)+"(.*?)"+this.escapeForRegExp(this.properties.config.inputSuffix)+")"},enumerable:!1,configurable:!0}),e}(),Ve=function(){function e(e){this.properties=e,this.keysDown=new Set,this.mouseOn=new Set,this.mouseOnChanged=new m,this.keysChanged=new m,"undefined"==typeof window||this.initKeyListener()}return e.prototype.handle=function(e,t){var r=this;e._tolgee.listeningForHighlighting?console.error("Element is already listening mouse events! This is probably bug in tolgee"):(e._tolgee.listeningForHighlighting=!0,this.initEventListeners(e,t),this.mouseOnChanged.subscribe((function(){r.highlighted!==r.getMouseOn()&&r.onConditionsChanged()})),this.keysChanged.subscribe((function(){r.onConditionsChanged()})))},e.prototype.initEventListeners=function(e,t){var r=this,n=function(){return r.onMouseOver(e)},i=function(){return r.onMouseOut(e)},o=function(e){r.areKeysDown()&&(e.stopPropagation(),e.preventDefault(),t(e))};e.addEventListener("mouseover",n),e.addEventListener("click",o);var s=function(e){r.areKeysDown()&&(e.stopPropagation(),e.preventDefault())};e.addEventListener("mousedown",s),e.addEventListener("mouseup",s),e.addEventListener("mouseout",i),e._tolgee.removeAllEventListeners=function(){e.removeEventListener("mousedown",s),e.removeEventListener("mouseup",s),e.removeEventListener("mouseover",n),e.removeEventListener("click",o),e.removeEventListener("mouseout",i)}},e.prototype.onConditionsChanged=function(){this.unhighlight(),this.areKeysDown()&&this.getMouseOn()&&this.highlight()},e.prototype.highlight=function(){this.highlightedInitialBackgroundColor=this.getMouseOn().style.backgroundColor,this.getMouseOn().style.backgroundColor=this.properties.config.highlightColor,this.highlighted=this.getMouseOn()},e.prototype.unhighlight=function(){this.highlighted&&(this.highlighted.style.backgroundColor=this.highlightedInitialBackgroundColor,this.highlighted=null)},e.prototype.onMouseOut=function(e){this.mouseOn.delete(e),this.mouseOnChanged.emit(this.getMouseOn())},e.prototype.onMouseOver=function(e){this.filterMouseOn(),this.mouseOn.delete(e),this.mouseOn.add(e),this.mouseOnChanged.emit(this.getMouseOn())},e.prototype.getMouseOn=function(){var e=Array.from(this.mouseOn);return e.length?e[0]:void 0},e.prototype.initKeyListener=function(){var e=this;window.addEventListener("blur",(function(){e.keysDown=new Set,e.keysChanged.emit(e.areKeysDown())})),window.addEventListener("keydown",(function(t){var r=exports.ModifierKey[t.key];void 0!==r&&(e.keysDown.add(r),e.keysChanged.emit(e.areKeysDown()))})),window.addEventListener("keyup",(function(t){e.keysDown.delete(exports.ModifierKey[t.key]),e.keysChanged.emit(e.areKeysDown())}))},e.prototype.filterMouseOn=function(){var e=this;this.mouseOn.forEach((function(t){document.contains(t)||e.mouseOn.delete(t)}))},e.prototype.areKeysDown=function(){var e,t;try{for(var r=o(this.properties.config.highlightKeys),n=r.next();!n.done;n=r.next()){var i=n.value;if(!this.keysDown.has(i))return!1}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return!0},e}(),Ke=function(){function e(e,t,r,o,s){var a=this;this.service=e,this.properties=t,this.eventService=r,this.translationService=o,this.mouseEventHandler=s,this.translationEdit=function(e,t){return n(a,void 0,void 0,(function(){var r;return i(this,(function(n){switch(n.label){case 0:return"object"!=typeof this.renderer?[3,2]:[4,this.getKey(e,t)];case 1:return(r=n.sent())?(this.renderer.renderViewer(r),[2]):[2];case 2:return console.warn('Tolgee UI is not provided. To translate interactively provide tolgee ui constructor to "ui" configuration property. To disable highlighting use production mode.'),[2]}}))}))}}return e.prototype.listen=function(e){var t=this;this.mouseEventHandler.handle(e,(function(r){return n(t,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.translationEdit(r,e)];case 1:return[2,t.sent()]}}))}))}))},e.prototype.getKey=function(t,r){return n(this,void 0,void 0,(function(){var n;return i(this,(function(i){switch(i.label){case 0:return(n=e.getKeyOptions(r)).size>1?[4,this.renderer.getKey({keys:n,openEvent:t})]:[3,2];case 1:return[2,i.sent()];case 2:return 1===n.size?[2,Array.from(n)[0]]:(console.error("No key to translate. This seems like a bug in tolgee."),[2])}}))}))},e.getKeyOptions=function(e){var t=Array.from(e._tolgee.nodes).reduce((function(e,t){return a(a([],s(e)),s(t._tolgee.keys.map((function(e){return e.key}))))}),[]);return new Set(t)},Object.defineProperty(e.prototype,"renderer",{get:function(){return void 0===this._renderer&&"function"==typeof this.properties.config.ui&&(this._renderer=new this.properties.config.ui({coreService:this.service,properties:this.properties,eventService:this.eventService,translationService:this.translationService})),this._renderer},enumerable:!1,configurable:!0}),e}(),Xe=function(){function e(e,t){this.properties=e,this.translationHighlighter=t,this.registeredElements=new Set}return e.prototype.register=function(e){void 0!==this.getActiveNodes(e).next().value&&("development"!==this.properties.config.mode||this.registeredElements.has(e)||this.translationHighlighter.listen(e),this.registeredElements.add(e))},e.prototype.refreshAll=function(){var e,t;try{for(var r=o(this.registeredElements),n=r.next();!n.done;n=r.next()){var i=n.value;this.cleanElementInactiveNodes(i),0===i._tolgee.nodes.size&&this.cleanElement(i)}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},e.prototype.cleanAll=function(){var e,t;try{for(var r=o(this.registeredElements),n=r.next();!n.done;n=r.next()){var i=n.value;this.cleanElement(i)}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},e.prototype.cleanElementInactiveNodes=function(e){this.isElementActive(e)&&(e._tolgee.nodes=new Set(this.getActiveNodes(e)))},e.prototype.cleanElement=function(e){"function"==typeof e._tolgee.removeAllEventListeners&&e._tolgee.removeAllEventListeners(),e.removeAttribute("_tolgee"),delete e._tolgee,this.registeredElements.delete(e)},e.prototype.getActiveNodes=function(e){var t,r,n,s,a,u;return i(this,(function(i){switch(i.label){case 0:i.trys.push([0,5,6,7]),t=o(e._tolgee.nodes),r=t.next(),i.label=1;case 1:return r.done?[3,4]:(n=r.value,c.nodeContains(this.properties.config.targetElement,n)?[4,n]:[3,3]);case 2:i.sent(),i.label=3;case 3:return r=t.next(),[3,1];case 4:return[3,7];case 5:return s=i.sent(),a={error:s},[3,7];case 6:try{r&&!r.done&&(u=t.return)&&u.call(t)}finally{if(a)throw a.error}return[7];case 7:return[2]}}))},e.prototype.isElementActive=function(e){return this.properties.config.targetElement.contains(e)},e}(),ze=function(){function e(e,t,r,n){this.properties=e,this.textService=t,this.elementRegistrar=r,this.translationHighlighter=n}return e.initParentElement=function(e){return void 0===e._tolgee&&(e._tolgee={nodes:new Set},e.setAttribute("_tolgee","")),e},e.prototype.filterRestricted=function(e){var t=this.properties.config.restrictedElements;return e.filter((function(e){var r=c.closestElement(e);return-1===t.indexOf(r.tagName.toLowerCase())&&null===r.closest('[data-tolgee-restricted="true"]')}))},e.prototype.handleNodes=function(e){return n(this,void 0,void 0,(function(){var t,r,n,s,a,u,c,l,h,p,f,g;return i(this,(function(i){switch(i.label){case 0:i.trys.push([0,5,6,7]),t=o(e),r=t.next(),i.label=1;case 1:return r.done?[3,4]:(void 0===(n=r.value)._tolgee&&(n._tolgee={}),!0===(null==(s=n._tolgee)?void 0:s.locked)?[3,3]:(this.lockNode(n),[4,this.textService.replace(n.textContent)]));case 2:(a=i.sent())&&(u=a.text,c=a.keys,l=this.translateChildNode(n,u,c),(h=this.getParentElement(l))._tolgee.nodes.add(l),this.elementRegistrar.register(h)),this.unlockNode(n),i.label=3;case 3:return r=t.next(),[3,1];case 4:return[3,7];case 5:return p=i.sent(),f={error:p},[3,7];case 6:try{r&&!r.done&&(g=t.return)&&g.call(t)}finally{if(f)throw f.error}return[7];case 7:return[2]}}))}))},e.prototype.translateChildNode=function(e,t,r){return e._tolgee={oldTextContent:e.textContent,keys:r},e.textContent=t,e},e.prototype.lockNode=function(e){void 0===e._tolgee&&(e._tolgee={});var t=e._tolgee;return!0!==(null==t?void 0:t.locked)&&(t.locked=!0),e},e.prototype.unlockNode=function(e){e._tolgee&&(e._tolgee.locked=!1)},e.prototype.getParentElement=function(t){var r=this.getSuitableParent(t);return e.initParentElement(r)},e.prototype.getSuitableParent=function(e){var t=c.getParentElement(e);if(void 0===t)throw console.error(e),new Error("No suitable parent found for node above.");if(!this.properties.config.passToParent)return t;if(Array.isArray(this.properties.config.passToParent)){if(-1===this.properties.config.passToParent.findIndex((function(e){return t.tagName.toLowerCase()===e.toLowerCase()})))return t}return"function"!=typeof this.properties.config.passToParent||this.properties.config.passToParent(t)?this.getSuitableParent(t):t},e}(),Be=function(e){function r(t,r,n,i){var o=e.call(this,t,n,i,r)||this;return o.properties=t,o.translationHighlighter=r,o.textService=n,o.nodeRegistrar=i,o}return t(r,e),r.prototype.handle=function(e){return n(this,void 0,void 0,(function(){var t,r,n,o,s;return i(this,(function(i){switch(i.label){case 0:return t=this.properties.config.inputPrefix,r=this.properties.config.inputSuffix,n="./descendant-or-self::text()[contains(., '"+t+"') and contains(., '"+r+"')]",o=c.evaluate(n,e),s=this.filterRestricted(o),[4,this.handleNodes(s)];case 1:return i.sent(),[2]}}))}))},r}(ze),Ye=function(e){function r(t,r,n,i){var o=e.call(this,t,r,n,i)||this;return o.properties=t,o.textService=r,o.elementRegistrar=n,o.translationHighlighter=i,o}return t(r,e),r.prototype.handle=function(e){return n(this,void 0,void 0,(function(){var t,r,n,a,u,l,h,p,f,g,d,v,m,y,E,b,_,T;return i(this,(function(i){switch(i.label){case 0:t=this.properties.config.inputPrefix,r=this.properties.config.inputSuffix,i.label=1;case 1:i.trys.push([1,12,13,14]),n=o(Object.entries(this.properties.config.tagAttributes)),a=n.next(),i.label=2;case 2:if(a.done)return[3,11];u=s(a.value,2),l=u[0],h=u[1],i.label=3;case 3:i.trys.push([3,8,9,10]),_=void 0,p=o(h),f=p.next(),i.label=4;case 4:return f.done?[3,7]:(g=f.value,d="descendant-or-self::"+l+"/@"+g+"[contains(., '"+t+"') and contains(., '"+r+"')]",v=c.evaluate(d,e),[4,this.handleNodes(v)]);case 5:i.sent(),i.label=6;case 6:return f=p.next(),[3,4];case 7:return[3,10];case 8:return m=i.sent(),_={error:m},[3,10];case 9:try{f&&!f.done&&(T=p.return)&&T.call(p)}finally{if(_)throw _.error}return[7];case 10:return a=n.next(),[3,2];case 11:return[3,14];case 12:return y=i.sent(),E={error:y},[3,14];case 13:try{a&&!a.done&&(b=n.return)&&b.call(n)}finally{if(E)throw E.error}return[7];case 14:return[2]}}))}))},r}(ze),We=function(){function e(e,t,r,n,i,o){this.service=e,this.textHandler=t,this.eventService=r,this.properties=n,this.attributeHandler=i,this.textService=o,r.LANGUAGE_CHANGED.subscribe(this.refresh.bind(this)),r.TRANSLATION_CHANGED.subscribe(this.refresh.bind(this))}return e.prototype.handleSubtree=function(e){return n(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.attributeHandler.handle(e)];case 1:return t.sent(),[4,this.textHandler.handle(e)];case 2:return t.sent(),[2]}}))}))},e.prototype.refresh=function(){return n(this,void 0,void 0,(function(){var e,t,r,n,s,a,u,l,h,p,f,g,d,v;return i(this,(function(i){switch(i.label){case 0:e=c.evaluate("//*[@_tolgee]",this.properties.config.targetElement),i.label=1;case 1:i.trys.push([1,12,13,14]),t=o(e),r=t.next(),i.label=2;case 2:if(r.done)return[3,11];n=r.value,i.label=3;case 3:i.trys.push([3,8,9,10]),d=void 0,s=o(n._tolgee.nodes),a=s.next(),i.label=4;case 4:return a.done?[3,7]:(u=a.value,[4,this.textService.replace(u._tolgee.oldTextContent)]);case 5:(l=i.sent())&&(u.textContent=l.text),i.label=6;case 6:return a=s.next(),[3,4];case 7:return[3,10];case 8:return h=i.sent(),d={error:h},[3,10];case 9:try{a&&!a.done&&(v=s.return)&&v.call(s)}finally{if(d)throw d.error}return[7];case 10:return r=t.next(),[3,2];case 11:return[3,14];case 12:return p=i.sent(),f={error:p},[3,14];case 13:try{r&&!r.done&&(g=t.return)&&g.call(t)}finally{if(f)throw f.error}return[7];case 14:return[2]}}))}))},e}(),qe=function(){function e(e,t,r,n,i){this.properties=e,this.coreHandler=t,this.basicTextHandler=r,this.attributeHandler=n,this.nodeRegistrar=i,this._observer=void 0}return Object.defineProperty(e.prototype,"observer",{get:function(){var e=this;return this._observer||"undefined"==typeof window||(this._observer=new MutationObserver((function(t){return n(e,void 0,void 0,(function(){var e,r,n,s,a,u;return i(this,(function(i){switch(i.label){case 0:i.trys.push([0,9,10,11]),e=o(t),r=e.next(),i.label=1;case 1:return r.done?[3,8]:"characterData"!==(n=r.value).type?[3,3]:[4,this.basicTextHandler.handle(n.target)];case 2:return i.sent(),[3,7];case 3:return"childList"!==n.type?[3,5]:[4,this.coreHandler.handleSubtree(n.target)];case 4:return i.sent(),[3,7];case 5:return"attributes"!==n.type?[3,7]:[4,this.attributeHandler.handle(n.target)];case 6:i.sent(),i.label=7;case 7:return r=e.next(),[3,1];case 8:return[3,11];case 9:return s=i.sent(),a={error:s},[3,11];case 10:try{r&&!r.done&&(u=e.return)&&u.call(e)}finally{if(a)throw a.error}return[7];case 11:return this.nodeRegistrar.refreshAll(),[2]}}))}))}))),this._observer},enumerable:!1,configurable:!0}),e.prototype.observe=function(){this.observer&&this.observer.observe(this.properties.config.targetElement,{attributes:!0,childList:!0,subtree:!0,characterData:!0})},e.prototype.stopObserving=function(){this.observer&&this.observer.disconnect()},e}(),Je=function(){function e(e,t){this.properties=e,this.apiHttpService=t}return e.prototype.getLanguages=function(){return n(this,void 0,void 0,(function(){var e,t;return i(this,(function(r){switch(r.label){case 0:return this.languagePromise instanceof Promise||(this.languagePromise=this.apiHttpService.fetchJson("v2/projects/languages?size=1000")),t=Set.bind,[4,this.languagePromise];case 1:return e=new(t.apply(Set,[void 0,r.sent()._embedded.languages.map((function(e){return e.tag}))])),this.properties.preferredLanguages=new Set(Array.from(this.properties.preferredLanguages).filter((function(t){return e.has(t)}))),[2,e]}}))}))},e.prototype.getScopes=function(){return n(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.apiHttpService.fetchJson("api/apiKeys/scopes")];case 1:return[2,t.sent()];case 2:return e=t.sent(),console.error(e),console.error("Error getting scopes. Trying to switch to production mode!"),this.properties.config.mode="production",[3,3];case 3:return[2]}}))}))},e.prototype.isAuthorizedTo=function(e){return this.properties.scopes.indexOf(e)>-1},e.prototype.checkScope=function(e){if(!this.isAuthorizedTo(e))throw new Error("Api key not permitted to do this, please add 'translations.view' scope.")},e}(),Ze=function(e){void 0===e&&(e=new g),this.properties=new d,this.eventService=new y,this.apiHttpService=new b(this.properties),this.mouseEventHandler=new Ve(this.properties),this.coreService=new Je(this.properties,this.apiHttpService),this.translationService=new S(this.properties,this.coreService,this.apiHttpService,this.eventService),this.textService=new He(this.properties,this.translationService),this.translationHighlighter=new Ke(this.coreService,this.properties,this.eventService,this.translationService,this.mouseEventHandler),this.elementRegistrar=new Xe(this.properties,this.translationHighlighter),this.textHandler=new Be(this.properties,this.translationHighlighter,this.textService,this.elementRegistrar),this.attributeHandler=new Ye(this.properties,this.textService,this.elementRegistrar,this.translationHighlighter),this.coreHandler=new We(this.coreService,this.textHandler,this.eventService,this.properties,this.attributeHandler,this.textService),this.observer=new qe(this.properties,this.coreHandler,this.textHandler,this.attributeHandler,this.elementRegistrar),this.properties.config=e,this.translationService.initStatic()},$e=function(){function e(e){var t=this;this.translate=function(e,r,o){return void 0===r&&(r={}),void 0===o&&(o=!1),n(t,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return"development"!==this.properties.config.mode||o?[3,3]:[4,this.loadScopes()];case 1:return t.sent(),[4,this.translationService.loadTranslations()];case 2:return t.sent(),[2,this.dependencyStore.textService.wrap(e,r)];case 3:return[2,this.dependencyStore.textService.translate(e,r)]}}))}))},this.instant=function(e,r,n,i){return void 0===r&&(r={}),void 0===n&&(n=!1),"development"!==t.properties.config.mode||n?t.dependencyStore.textService.instant(e,r,void 0,i):t.dependencyStore.textService.wrap(e,r)},this.stop=function(){t.dependencyStore.observer.stopObserving(),t.dependencyStore.elementRegistrar.cleanAll(),c.unmarkElementAsTargetElement(t.properties.config.targetElement)},this.dependencyStore=new Ze(new g(e))}return Object.defineProperty(e.prototype,"properties",{get:function(){return this.dependencyStore.properties},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"translationService",{get:function(){return this.dependencyStore.translationService},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"coreService",{get:function(){return this.dependencyStore.coreService},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lang",{get:function(){return this.properties.currentLanguage},set:function(e){this.properties.currentLanguage=e,this.dependencyStore.eventService.LANGUAGE_CHANGED.emit(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"defaultLanguage",{get:function(){return this.properties.config.defaultLanguage},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onLangChange",{get:function(){return this.dependencyStore.eventService.LANGUAGE_CHANGED},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onLangLoaded",{get:function(){return this.dependencyStore.eventService.LANGUAGE_LOADED},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"initialLoading",{get:function(){var e,t,r,n;if("production"!==(null===(t=null===(e=this.properties)||void 0===e?void 0:e.config)||void 0===t?void 0:t.mode))return!0;var i=this.properties.currentLanguage,o=this.properties.config.fallbackLanguage,s=this.properties.config.preloadFallback,a=function(e){return void 0!==e&&"function"!=typeof e};return!a(null===(r=this.properties.config.staticData)||void 0===r?void 0:r[i])||!!s&&!a(null===(n=this.properties.config.staticData)||void 0===n?void 0:n[o])},enumerable:!1,configurable:!0}),e.prototype.run=function(){return n(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return"development"!==this.properties.config.mode?[3,2]:[4,this.loadScopes()];case 1:e.sent(),e.label=2;case 2:return[4,this.translationService.loadTranslations()];case 3:return e.sent(),this.properties.config.preloadFallback?[4,this.translationService.loadTranslations(this.properties.config.fallbackLanguage)]:[3,5];case 4:e.sent(),e.label=5;case 5:return[4,this.refresh()];case 6:return e.sent(),this.properties.config.watch&&this.dependencyStore.observer.observe(),[2]}}))}))},e.prototype.refresh=function(){return n(this,void 0,void 0,(function(){return i(this,(function(e){return[2,this.dependencyStore.coreHandler.handleSubtree(this.properties.config.targetElement)]}))}))},e.prototype.loadScopes=function(){return n(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return void 0!==this.properties.scopes?[3,2]:(e=this.properties,[4,this.dependencyStore.coreService.getScopes()]);case 1:e.scopes=t.sent(),t.label=2;case 2:return[2]}}))}))},e}();exports.Tolgee=$e,exports.TolgeeConfig=g;
16
+ var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};function t(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}var r=function(){return(r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function n(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))}function i(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function o(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s}function a(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}var u,c=function(){function e(){}return e.evaluateGenerator=function(e,t){var r,n;return i(this,(function(i){switch(i.label){case 0:n=document.evaluate(e,t,void 0,XPathResult.ANY_TYPE),i.label=1;case 1:return null===(r=n.iterateNext())?[3,3]:[4,r];case 2:return i.sent(),[3,1];case 3:return[2]}}))},e.evaluate=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Array.from(this.evaluateGenerator.apply(this,a([],s(e))))},e.evaluateToSingle=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=this.evaluate.apply(this,a([],s(e)));if(1===r.length)return r[0];if(r.length<1)throw new Error("No element found");throw new Error("Multiple elements found")},e.closestElement=function(e){return e instanceof Text?e.parentElement:e},e.getParentElement=function(e){return e.parentElement?e.parentElement:e.ownerElement?e.ownerElement:void 0},e.isElementTargetElement=function(e){return e.hasAttribute("_tolgee-target")},e.markElementAsTargetElement=function(e){e.setAttribute("_tolgee-target","")},e.unmarkElementAsTargetElement=function(e){e.removeAttribute("_tolgee-target")},e.nodeContains=function(e,t){if(e.contains(t))return!0;if(t instanceof Attr){var r=Object.values(t.ownerElement.attributes).indexOf(t)>-1;if(e.contains(t.ownerElement)&&r)return!0}return!1},e}();exports.ModifierKey=void 0,(u=exports.ModifierKey||(exports.ModifierKey={}))[u.Alt=0]="Alt",u[u.Control=1]="Control",u[u.Shift=2]="Shift",u[u.Meta=3]="Meta";var l,h,p,f=function(){if("undefined"!=typeof document)return document.body},g=function(e){this.apiUrl="https://app.tolgee.io",this.inputPrefix="%-%tolgee:",this.inputSuffix="%-%",this.defaultLanguage="en",this.filesUrlPrefix="i18n/",this.tagAttributes={textarea:["placeholder"],input:["value","placeholder"],img:["alt"],"*":["aria-label","title"]},this.highlightKeys=[exports.ModifierKey.Alt],this.passToParent=["option","optgroup"],this.restrictedElements=["script","style"],this.highlightColor="rgb(224 240 255)",this.preloadFallback=!1,Object.defineProperty(this,"targetElement",{set:function(e){if(void 0!==this.targetElement)throw new Error("Target element is already defined!");if(void 0===e&&(this._targetElement=f()),c.isElementTargetElement(e))throw console.error("Target element: ",this._targetElement),new Error("An tolgee instance is inited with provided target element");this._targetElement=e,c.markElementAsTargetElement(this._targetElement)},get:function(){return this._targetElement}}),Object.assign(this,e||{}),void 0===this._targetElement&&(this._targetElement=f()),this.mode=this.mode||(this.apiKey?"development":"production"),this.fallbackLanguage=this.fallbackLanguage||this.defaultLanguage,void 0===this.watch&&(this.watch="development"===this.mode)},d=function(){function e(){}return Object.defineProperty(e.prototype,"currentLanguage",{get:function(){var e;if(this.config.forceLanguage)return this.config.forceLanguage;"undefined"!=typeof localStorage?(e=localStorage.getItem("__tolgee_currentLanguage"),this.config.availableLanguages&&(this.config.availableLanguages.indexOf(e)>-1||(e=void 0))):e=this._currentLanguage;return e||(e=this.getLanguageByNavigator(),this.currentLanguage=e),e},set:function(e){"undefined"!=typeof localStorage?localStorage.setItem("__tolgee_currentLanguage",e):this._currentLanguage=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"preferredLanguages",{get:function(){return new Set(JSON.parse(localStorage.getItem("__tolgee_preferredLanguages")))},set:function(e){localStorage.setItem("__tolgee_preferredLanguages",JSON.stringify(Array.from(e)))},enumerable:!1,configurable:!0}),e.prototype.getLanguageByNavigator=function(){if("undefined"!=typeof window&&this.config.availableLanguages){var e=window.navigator.language,t=this.config.availableLanguages.find((function(t){return t===e}));if(t)return t;var r=function(e){return e.replace(/^(.+?)(-.*)?$/,"$1")},n=r(window.navigator.language),i=this.config.availableLanguages.find((function(e){return r(e)===n}));if(i)return i}return this.config.defaultLanguage},e}(),v=function(){function e(e){this.onUnsubscribe=e}return e.prototype.unsubscribe=function(){this.onUnsubscribe()},e}(),m=function(){function e(){this.idCounter=0,this._subscriptions=new Map}return Object.defineProperty(e.prototype,"subscriptions",{get:function(){return this._subscriptions},enumerable:!1,configurable:!0}),e.prototype.emit=function(e){var t,r,n=[];try{for(var i=o(this.subscriptions.values()),s=i.next();!s.done;s=i.next()){var a=(0,s.value)(e);"function"==typeof(null==a?void 0:a.then)&&n.push(a)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}if(0!==n.length)return new Promise((function(e){return Promise.all(n).then((function(){return e()}))}))},e.prototype.subscribe=function(e){var t=this,r=this.idCounter++,n=new v((function(){return t.unsubscribe(r)}));return this.subscriptions.set(r,e),n},e.prototype.unsubscribe=function(e){this._subscriptions.delete(e)||console.warn("Event to unsubscribe was not found")},e}(),y=function(){this.TRANSLATION_CHANGED=new m,this.LANGUAGE_CHANGED=new m,this.LANGUAGE_LOADED=new m},E=function(e){function r(t,n){var i=e.call(this,"Api http error")||this;return i.response=t,i.code=n,Object.setPrototypeOf(i,r.prototype),i}return t(r,e),r}(Error),b=function(){function e(e){this.properties=e}return e.handleErrors=function(e){return n(this,void 0,void 0,(function(){var t,r;return i(this,(function(n){switch(n.label){case 0:if(!(e.status>=400))return[3,5];t=new E(e),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,e.json()];case 2:return r=n.sent(),t.code=r.code,[3,4];case 3:return n.sent(),console.warn("Tolgee server responded with invalid status code."),[3,4];case 4:throw t;case 5:return[2,e]}}))}))},e.prototype.fetch=function(){for(var t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];return n(this,void 0,void 0,(function(){var n,o,u;return i(this,(function(i){switch(i.label){case 0:return"object"!=typeof t[0]?[3,2]:[4,fetch(r(r({},t[0]),{url:this.getUrl(t[0].url)})).then((function(t){return e.handleErrors(t)}))];case 1:return[2,i.sent()];case 2:return n=s(t),o=n[0],u=n.slice(1),[4,fetch.apply(void 0,a([this.getUrl(o)],s(u))).then((function(t){return e.handleErrors(t)}))];case 3:return[2,i.sent()]}}))}))},e.prototype.fetchJson=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.fetch.apply(this,a([],s(e))).then((function(e){return e.json()}))];case 1:return[2,t.sent()]}}))}))},e.prototype.post=function(e,t,o){void 0===o&&(o={});for(var u=[],c=3;c<arguments.length;c++)u[c-3]=arguments[c];return n(this,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return[4,this.fetch.apply(this,a([e,r({body:JSON.stringify(t),method:"POST",headers:{"Content-Type":"application/json"}},o)],s(u)))];case 1:return[2,n.sent()]}}))}))},e.prototype.postJson=function(e,t,r){void 0===r&&(r={});for(var o=[],u=3;u<arguments.length;u++)o[u-3]=arguments[u];return n(this,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return[4,this.post.apply(this,a([e,t,r],s(o))).then((function(e){return e.json()}))];case 1:return[2,n.sent()]}}))}))},e.prototype.getUrl=function(e){var t=e.indexOf("?")<0?"?":"&";return this.properties.config.apiUrl+"/"+e+t+"ak="+this.properties.config.apiKey},e}(),_=function(e,t){this.key=e,this.translations=t},T=function(){function e(){}return e.splitOnNonEscapedDelimiter=function(e,t){for(var r=[],n="",i=0;i<e.length;i++){e[i]!==t||this.isCharEscaped(i,e)?n+=e[i]:(r.push(this.removeEscapes(n)),n="")}return r.push(this.removeEscapes(n)),r},e.isCharEscaped=function(e,t){for(var r=0;e>-1&&"\\"===t[e-1];)r++,e--;return r%2==1},e.removeEscapes=function(e){return e.replace(/\\?\\?/g,(function(e){return"\\\\"==e?"\\":""}))},e}(),S=function(){function e(e,t,o,u){var c=this;this.properties=e,this.coreService=t,this.apiHttpService=o,this.eventService=u,this.translationsCache=new Map,this.fetchPromises={},this.getTranslationsOfKey=function(e,t){return void 0===t&&(t=new Set([c.properties.currentLanguage])),n(c,void 0,void 0,(function(){var n,o,u,c,l,h,p,f,g,d,v,m;return i(this,(function(i){switch(i.label){case 0:this.coreService.checkScope("translations.view"),i.label=1;case 1:return i.trys.push([1,3,,6]),n=a([],s(t)),o=n.map((function(e){return"languages="+e})).join("&"),[4,this.apiHttpService.fetchJson("v2/projects/translations?"+o+"&filterKeyName="+encodeURIComponent(e))];case 2:return u=i.sent(),c=n.reduce((function(e,t){var n;return r(r({},e),((n={})[t]="",n))}),{}),(null===(g=null===(f=null===(p=u._embedded)||void 0===p?void 0:p.keys)||void 0===f?void 0:f[0])||void 0===g?void 0:g.translations)&&Object.entries(null===(m=null===(v=null===(d=u._embedded)||void 0===d?void 0:d.keys)||void 0===v?void 0:v[0])||void 0===m?void 0:m.translations).forEach((function(e){var t=s(e,2),r=t[0],n=t[1];return c[r]=n.text})),[2,new _(e,c)];case 3:return(l=i.sent())instanceof E?404!==l.response.status||"language_not_found"!==l.code?[3,5]:(h=this.properties,[4,this.coreService.getLanguages()]):[3,5];case 4:return h.preferredLanguages=i.sent(),console.error("Requested language not found, refreshing the page!"),location.reload(),[2];case 5:throw l;case 6:return[2]}}))}))}}return e.translationByValue=function(e,t,r){if(e)return e;if(r)return"";var n=T.splitOnNonEscapedDelimiter(t,".");return n[n.length-1]},e.prototype.initStatic=function(){var e,t=this;"production"===this.properties.config.mode&&"object"==typeof(null===(e=this.properties.config)||void 0===e?void 0:e.staticData)&&Object.entries(this.properties.config.staticData).forEach((function(e){var r=s(e,2),n=r[0],i=r[1];"function"!=typeof i&&t.translationsCache.set(n,i)}))},e.prototype.loadTranslations=function(e){return void 0===e&&(e=this.properties.currentLanguage),n(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return null!=this.translationsCache.get(e)?[3,2]:(this.fetchPromises[e]instanceof Promise||(this.fetchPromises[e]=this.fetchTranslations(e)),[4,this.fetchPromises[e]]);case 1:t.sent(),this.eventService.LANGUAGE_LOADED.emit(e),t.label=2;case 2:return this.fetchPromises[e]=void 0,[2]}}))}))},e.prototype.getTranslation=function(t,r,o){return void 0===r&&(r=this.properties.currentLanguage),void 0===o&&(o=!1),n(this,void 0,void 0,(function(){var n;return i(this,(function(i){switch(i.label){case 0:return(n=this.getFromCache(t,r))?[3,3]:[4,this.loadTranslations(r)];case 1:return i.sent(),(n=this.getFromCache(t,r))?[3,3]:(n=this.getFromCache(t,this.properties.config.fallbackLanguage))?[3,3]:[4,this.loadTranslations(this.properties.config.fallbackLanguage)];case 2:i.sent(),n=this.getFromCache(t,this.properties.config.fallbackLanguage),i.label=3;case 3:return[2,e.translationByValue(n,t,o)]}}))}))},e.prototype.setTranslations=function(e){return n(this,void 0,void 0,(function(){var t=this;return i(this,(function(r){switch(r.label){case 0:return this.coreService.checkScope("translations.edit"),[4,this.apiHttpService.post("v2/projects/translations",e)];case 1:return r.sent(),Object.keys(e.translations).forEach((function(r){if(t.translationsCache.get(r))for(var n=T.splitOnNonEscapedDelimiter(e.key,"."),i=t.translationsCache.get(r),o=0;o<n.length;o++){var s=n[o];if(void 0===i[s]&&(i[s]={}),o===n.length-1)return void(i[s]=e.translations[r]);i=i[s]}})),[2]}}))}))},e.prototype.getFromCacheOrFallback=function(t,r,n){void 0===r&&(r=this.properties.currentLanguage),void 0===n&&(n=!1);var i=this.getFromCache(t,r)||this.getFromCache(t,this.properties.config.fallbackLanguage);return e.translationByValue(i,t,n)},e.prototype.fetchTranslations=function(e){return n(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return"development"!==this.properties.config.mode?[3,2]:[4,this.fetchTranslationsDevelopment(e)];case 1:return[2,t.sent()];case 2:return[4,this.fetchTranslationsProduction(e)];case 3:return[2,t.sent()]}}))}))},e.prototype.fetchTranslationsProduction=function(e){var t,r;return n(this,void 0,void 0,(function(){var n,o,s,a;return i(this,(function(i){switch(i.label){case 0:return"function"!=typeof(n=null===(r=null===(t=this.properties.config)||void 0===t?void 0:t.staticData)||void 0===r?void 0:r[e])?[3,2]:[4,n()];case 1:return a=i.sent(),this.translationsCache.set(e,a),[2];case 2:if(void 0!==n)return this.translationsCache.set(e,n),[2];i.label=3;case 3:o=""+(this.properties.config.filesUrlPrefix||"/")+e+".json",i.label=4;case 4:return i.trys.push([4,10,,11]),[4,fetch(o)];case 5:if((s=i.sent()).status>=400)return console.error("Server responded with error status while loading localization data."),this.translationsCache.set(e,{}),[2];i.label=6;case 6:return i.trys.push([6,8,,9]),[4,s.json()];case 7:return a=i.sent(),this.translationsCache.set(e,a),[3,9];case 8:return i.sent(),console.error("Error parsing json retrieved from "+o+"."),this.setEmptyLanguageData(e),[3,9];case 9:return[3,11];case 10:return i.sent(),console.error("Error fetching localization data from "+o+"."),this.setEmptyLanguageData(e),[3,11];case 11:return[2]}}))}))},e.prototype.fetchTranslationsDevelopment=function(e){return n(this,void 0,void 0,(function(){var t,r;return i(this,(function(n){switch(n.label){case 0:this.coreService.checkScope("translations.view"),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.apiHttpService.fetchJson("v2/projects/translations/"+e)];case 2:return t=n.sent(),this.translationsCache.set(e,t[e]||{}),[3,4];case 3:return r=n.sent(),console.error("Error while fetching localization data from API.",r),this.setEmptyLanguageData(e),[2];case 4:return[2]}}))}))},e.prototype.setEmptyLanguageData=function(e){this.translationsCache.set(e,{})},e.prototype.getFromCache=function(e,t){var r,n;void 0===t&&(t=this.properties.currentLanguage);var i=T.splitOnNonEscapedDelimiter(e,"."),s=this.translationsCache.get(t);if(void 0!==s){if("string"==typeof s[e])return s[e];try{for(var a=o(i),u=a.next();!u.done;u=a.next()){var c=u.value;if(void 0===s[c])return;s=s[c]}}catch(e){r={error:e}}finally{try{u&&!u.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return s}},e}();function w(e){return e.type===h.literal}function A(e){return e.type===h.argument}function L(e){return e.type===h.number}function P(e){return e.type===h.date}function O(e){return e.type===h.time}function N(e){return e.type===h.select}function C(e){return e.type===h.plural}function R(e){return e.type===h.pound}function I(e){return e.type===h.tag}function U(e){return!(!e||"object"!=typeof e||e.type!==p.number)}function D(e){return!(!e||"object"!=typeof e||e.type!==p.dateTime)}!function(e){e[e.EXPECT_ARGUMENT_CLOSING_BRACE=1]="EXPECT_ARGUMENT_CLOSING_BRACE",e[e.EMPTY_ARGUMENT=2]="EMPTY_ARGUMENT",e[e.MALFORMED_ARGUMENT=3]="MALFORMED_ARGUMENT",e[e.EXPECT_ARGUMENT_TYPE=4]="EXPECT_ARGUMENT_TYPE",e[e.INVALID_ARGUMENT_TYPE=5]="INVALID_ARGUMENT_TYPE",e[e.EXPECT_ARGUMENT_STYLE=6]="EXPECT_ARGUMENT_STYLE",e[e.INVALID_NUMBER_SKELETON=7]="INVALID_NUMBER_SKELETON",e[e.INVALID_DATE_TIME_SKELETON=8]="INVALID_DATE_TIME_SKELETON",e[e.EXPECT_NUMBER_SKELETON=9]="EXPECT_NUMBER_SKELETON",e[e.EXPECT_DATE_TIME_SKELETON=10]="EXPECT_DATE_TIME_SKELETON",e[e.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE=11]="UNCLOSED_QUOTE_IN_ARGUMENT_STYLE",e[e.EXPECT_SELECT_ARGUMENT_OPTIONS=12]="EXPECT_SELECT_ARGUMENT_OPTIONS",e[e.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE=13]="EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE",e[e.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE=14]="INVALID_PLURAL_ARGUMENT_OFFSET_VALUE",e[e.EXPECT_SELECT_ARGUMENT_SELECTOR=15]="EXPECT_SELECT_ARGUMENT_SELECTOR",e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR=16]="EXPECT_PLURAL_ARGUMENT_SELECTOR",e[e.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT=17]="EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT",e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT=18]="EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT",e[e.INVALID_PLURAL_ARGUMENT_SELECTOR=19]="INVALID_PLURAL_ARGUMENT_SELECTOR",e[e.DUPLICATE_PLURAL_ARGUMENT_SELECTOR=20]="DUPLICATE_PLURAL_ARGUMENT_SELECTOR",e[e.DUPLICATE_SELECT_ARGUMENT_SELECTOR=21]="DUPLICATE_SELECT_ARGUMENT_SELECTOR",e[e.MISSING_OTHER_CLAUSE=22]="MISSING_OTHER_CLAUSE",e[e.INVALID_TAG=23]="INVALID_TAG",e[e.INVALID_TAG_NAME=25]="INVALID_TAG_NAME",e[e.UNMATCHED_CLOSING_TAG=26]="UNMATCHED_CLOSING_TAG",e[e.UNCLOSED_TAG=27]="UNCLOSED_TAG"}(l||(l={})),function(e){e[e.literal=0]="literal",e[e.argument=1]="argument",e[e.number=2]="number",e[e.date=3]="date",e[e.time=4]="time",e[e.select=5]="select",e[e.plural=6]="plural",e[e.pound=7]="pound",e[e.tag=8]="tag"}(h||(h={})),function(e){e[e.number=0]="number",e[e.dateTime=1]="dateTime"}(p||(p={}));var k=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,M=/(?:[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;function x(e){var t={};return e.replace(M,(function(e){var r=e.length;switch(e[0]){case"G":t.era=4===r?"long":5===r?"narrow":"short";break;case"y":t.year=2===r?"2-digit":"numeric";break;case"Y":case"u":case"U":case"r":throw new RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");case"q":case"Q":throw new RangeError("`q/Q` (quarter) patterns are not supported");case"M":case"L":t.month=["numeric","2-digit","short","long","narrow"][r-1];break;case"w":case"W":throw new RangeError("`w/W` (week) patterns are not supported");case"d":t.day=["numeric","2-digit"][r-1];break;case"D":case"F":case"g":throw new RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");case"E":t.weekday=4===r?"short":5===r?"narrow":"short";break;case"e":if(r<4)throw new RangeError("`e..eee` (weekday) patterns are not supported");t.weekday=["short","long","narrow","short"][r-4];break;case"c":if(r<4)throw new RangeError("`c..ccc` (weekday) patterns are not supported");t.weekday=["short","long","narrow","short"][r-4];break;case"a":t.hour12=!0;break;case"b":case"B":throw new RangeError("`b/B` (period) patterns are not supported, use `a` instead");case"h":t.hourCycle="h12",t.hour=["numeric","2-digit"][r-1];break;case"H":t.hourCycle="h23",t.hour=["numeric","2-digit"][r-1];break;case"K":t.hourCycle="h11",t.hour=["numeric","2-digit"][r-1];break;case"k":t.hourCycle="h24",t.hour=["numeric","2-digit"][r-1];break;case"j":case"J":case"C":throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");case"m":t.minute=["numeric","2-digit"][r-1];break;case"s":t.second=["numeric","2-digit"][r-1];break;case"S":case"A":throw new RangeError("`S/A` (second) patterns are not supported, use `s` instead");case"z":t.timeZoneName=r<4?"short":"long";break;case"Z":case"O":case"v":case"V":case"X":case"x":throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead")}return""})),t}var G=/[\t-\r \x85\u200E\u200F\u2028\u2029]/i;var F,j=/^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g,H=/^(@+)?(\+|#+)?$/g,K=/(\*)(0+)|(#+)(0+)|(0+)/g,V=/^(0+)$/;function X(e){var t={};return e.replace(H,(function(e,r,n){return"string"!=typeof n?(t.minimumSignificantDigits=r.length,t.maximumSignificantDigits=r.length):"+"===n?t.minimumSignificantDigits=r.length:"#"===r[0]?t.maximumSignificantDigits=r.length:(t.minimumSignificantDigits=r.length,t.maximumSignificantDigits=r.length+("string"==typeof n?n.length:0)),""})),t}function z(e){switch(e){case"sign-auto":return{signDisplay:"auto"};case"sign-accounting":case"()":return{currencySign:"accounting"};case"sign-always":case"+!":return{signDisplay:"always"};case"sign-accounting-always":case"()!":return{signDisplay:"always",currencySign:"accounting"};case"sign-except-zero":case"+?":return{signDisplay:"exceptZero"};case"sign-accounting-except-zero":case"()?":return{signDisplay:"exceptZero",currencySign:"accounting"};case"sign-never":case"+_":return{signDisplay:"never"}}}function B(e){var t;if("E"===e[0]&&"E"===e[1]?(t={notation:"engineering"},e=e.slice(2)):"E"===e[0]&&(t={notation:"scientific"},e=e.slice(1)),t){var r=e.slice(0,2);if("+!"===r?(t.signDisplay="always",e=e.slice(2)):"+?"===r&&(t.signDisplay="exceptZero",e=e.slice(2)),!V.test(e))throw new Error("Malformed concise eng/scientific notation");t.minimumIntegerDigits=e.length}return t}function Y(e){var t=z(e);return t||{}}function W(e){for(var t={},n=0,i=e;n<i.length;n++){var o=i[n];switch(o.stem){case"percent":case"%":t.style="percent";continue;case"%x100":t.style="percent",t.scale=100;continue;case"currency":t.style="currency",t.currency=o.options[0];continue;case"group-off":case",_":t.useGrouping=!1;continue;case"precision-integer":case".":t.maximumFractionDigits=0;continue;case"measure-unit":case"unit":t.style="unit",t.unit=o.options[0].replace(/^(.*?)-/,"");continue;case"compact-short":case"K":t.notation="compact",t.compactDisplay="short";continue;case"compact-long":case"KK":t.notation="compact",t.compactDisplay="long";continue;case"scientific":t=r(r(r({},t),{notation:"scientific"}),o.options.reduce((function(e,t){return r(r({},e),Y(t))}),{}));continue;case"engineering":t=r(r(r({},t),{notation:"engineering"}),o.options.reduce((function(e,t){return r(r({},e),Y(t))}),{}));continue;case"notation-simple":t.notation="standard";continue;case"unit-width-narrow":t.currencyDisplay="narrowSymbol",t.unitDisplay="narrow";continue;case"unit-width-short":t.currencyDisplay="code",t.unitDisplay="short";continue;case"unit-width-full-name":t.currencyDisplay="name",t.unitDisplay="long";continue;case"unit-width-iso-code":t.currencyDisplay="symbol";continue;case"scale":t.scale=parseFloat(o.options[0]);continue;case"integer-width":if(o.options.length>1)throw new RangeError("integer-width stems only accept a single optional option");o.options[0].replace(K,(function(e,r,n,i,o,s){if(r)t.minimumIntegerDigits=n.length;else{if(i&&o)throw new Error("We currently do not support maximum integer digits");if(s)throw new Error("We currently do not support exact integer digits")}return""}));continue}if(V.test(o.stem))t.minimumIntegerDigits=o.stem.length;else if(j.test(o.stem)){if(o.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");o.stem.replace(j,(function(e,r,n,i,o,s){return"*"===n?t.minimumFractionDigits=r.length:i&&"#"===i[0]?t.maximumFractionDigits=i.length:o&&s?(t.minimumFractionDigits=o.length,t.maximumFractionDigits=o.length+s.length):(t.minimumFractionDigits=r.length,t.maximumFractionDigits=r.length),""})),o.options.length&&(t=r(r({},t),X(o.options[0])))}else if(H.test(o.stem))t=r(r({},t),X(o.stem));else{var s=z(o.stem);s&&(t=r(r({},t),s));var a=B(o.stem);a&&(t=r(r({},t),a))}}return t}var q=new RegExp("^"+k.source+"*"),J=new RegExp(k.source+"*$");function Z(e,t){return{start:e,end:t}}var $=!!String.prototype.startsWith,Q=!!String.fromCodePoint,ee=!!Object.fromEntries,te=!!String.prototype.codePointAt,re=!!String.prototype.trimStart,ne=!!String.prototype.trimEnd,ie=!!Number.isSafeInteger?Number.isSafeInteger:function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},oe=!0;try{oe="a"===(null===(F=fe("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu").exec("a"))||void 0===F?void 0:F[0])}catch(e){oe=!1}var se,ae=$?function(e,t,r){return e.startsWith(t,r)}:function(e,t,r){return e.slice(r,r+t.length)===t},ue=Q?String.fromCodePoint:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r,n="",i=e.length,o=0;i>o;){if((r=e[o++])>1114111)throw RangeError(r+" is not a valid code point");n+=r<65536?String.fromCharCode(r):String.fromCharCode(55296+((r-=65536)>>10),r%1024+56320)}return n},ce=ee?Object.fromEntries:function(e){for(var t={},r=0,n=e;r<n.length;r++){var i=n[r],o=i[0],s=i[1];t[o]=s}return t},le=te?function(e,t){return e.codePointAt(t)}:function(e,t){var r=e.length;if(!(t<0||t>=r)){var n,i=e.charCodeAt(t);return i<55296||i>56319||t+1===r||(n=e.charCodeAt(t+1))<56320||n>57343?i:n-56320+(i-55296<<10)+65536}},he=re?function(e){return e.trimStart()}:function(e){return e.replace(q,"")},pe=ne?function(e){return e.trimEnd()}:function(e){return e.replace(J,"")};function fe(e,t){return new RegExp(e,t)}if(oe){var ge=fe("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");se=function(e,t){var r;return ge.lastIndex=t,null!==(r=ge.exec(e)[1])&&void 0!==r?r:""}}else se=function(e,t){for(var r=[];;){var n=le(e,t);if(void 0===n||me(n)||ye(n))break;r.push(n),t+=n>=65536?2:1}return ue.apply(void 0,r)};var de=function(){function e(e,t){void 0===t&&(t={}),this.message=e,this.position={offset:0,line:1,column:1},this.ignoreTag=!!t.ignoreTag,this.requiresOtherClause=!!t.requiresOtherClause,this.shouldParseSkeletons=!!t.shouldParseSkeletons}return e.prototype.parse=function(){if(0!==this.offset())throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},e.prototype.parseMessage=function(e,t,r){for(var n=[];!this.isEOF();){var i=this.char();if(123===i){if((o=this.parseArgument(e,r)).err)return o;n.push(o.val)}else{if(125===i&&e>0)break;if(35!==i||"plural"!==t&&"selectordinal"!==t){if(60===i&&!this.ignoreTag&&47===this.peek()){if(r)break;return this.error(l.UNMATCHED_CLOSING_TAG,Z(this.clonePosition(),this.clonePosition()))}if(60===i&&!this.ignoreTag&&ve(this.peek()||0)){if((o=this.parseTag(e,t)).err)return o;n.push(o.val)}else{var o;if((o=this.parseLiteral(e,t)).err)return o;n.push(o.val)}}else{var s=this.clonePosition();this.bump(),n.push({type:h.pound,location:Z(s,this.clonePosition())})}}}return{val:n,err:null}},e.prototype.parseTag=function(e,t){var r=this.clonePosition();this.bump();var n=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:h.literal,value:"<"+n+"/>",location:Z(r,this.clonePosition())},err:null};if(this.bumpIf(">")){var i=this.parseMessage(e+1,t,!0);if(i.err)return i;var o=i.val,s=this.clonePosition();if(this.bumpIf("</")){if(this.isEOF()||!ve(this.char()))return this.error(l.INVALID_TAG,Z(s,this.clonePosition()));var a=this.clonePosition();return n!==this.parseTagName()?this.error(l.UNMATCHED_CLOSING_TAG,Z(a,this.clonePosition())):(this.bumpSpace(),this.bumpIf(">")?{val:{type:h.tag,value:n,children:o,location:Z(r,this.clonePosition())},err:null}:this.error(l.INVALID_TAG,Z(s,this.clonePosition())))}return this.error(l.UNCLOSED_TAG,Z(r,this.clonePosition()))}return this.error(l.INVALID_TAG,Z(r,this.clonePosition()))},e.prototype.parseTagName=function(){var e,t=this.offset();for(this.bump();!this.isEOF()&&(45===(e=this.char())||46===e||e>=48&&e<=57||95===e||e>=97&&e<=122||e>=65&&e<=90||183==e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039);)this.bump();return this.message.slice(t,this.offset())},e.prototype.parseLiteral=function(e,t){for(var r=this.clonePosition(),n="";;){var i=this.tryParseQuote(t);if(i)n+=i;else{var o=this.tryParseUnquoted(e,t);if(o)n+=o;else{var s=this.tryParseLeftAngleBracket();if(!s)break;n+=s}}}var a=Z(r,this.clonePosition());return{val:{type:h.literal,value:n,location:a},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return this.isEOF()||60!==this.char()||!this.ignoreTag&&(ve(e=this.peek()||0)||47===e)?null:(this.bump(),"<");var e},e.prototype.tryParseQuote=function(e){if(this.isEOF()||39!==this.char())return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if("plural"===e||"selectordinal"===e)break;return null;default:return null}this.bump();var t=[this.char()];for(this.bump();!this.isEOF();){var r=this.char();if(39===r){if(39!==this.peek()){this.bump();break}t.push(39),this.bump()}else t.push(r);this.bump()}return ue.apply(void 0,t)},e.prototype.tryParseUnquoted=function(e,t){if(this.isEOF())return null;var r=this.char();return 60===r||123===r||35===r&&("plural"===t||"selectordinal"===t)||125===r&&e>0?null:(this.bump(),ue(r))},e.prototype.parseArgument=function(e,t){var r=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(l.EXPECT_ARGUMENT_CLOSING_BRACE,Z(r,this.clonePosition()));if(125===this.char())return this.bump(),this.error(l.EMPTY_ARGUMENT,Z(r,this.clonePosition()));var n=this.parseIdentifierIfPossible().value;if(!n)return this.error(l.MALFORMED_ARGUMENT,Z(r,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(l.EXPECT_ARGUMENT_CLOSING_BRACE,Z(r,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:h.argument,value:n,location:Z(r,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(l.EXPECT_ARGUMENT_CLOSING_BRACE,Z(r,this.clonePosition())):this.parseArgumentOptions(e,t,n,r);default:return this.error(l.MALFORMED_ARGUMENT,Z(r,this.clonePosition()))}},e.prototype.parseIdentifierIfPossible=function(){var e=this.clonePosition(),t=this.offset(),r=se(this.message,t),n=t+r.length;return this.bumpTo(n),{value:r,location:Z(e,this.clonePosition())}},e.prototype.parseArgumentOptions=function(e,t,n,i){var o,s=this.clonePosition(),a=this.parseIdentifierIfPossible().value,u=this.clonePosition();switch(a){case"":return this.error(l.EXPECT_ARGUMENT_TYPE,Z(s,u));case"number":case"date":case"time":this.bumpSpace();var c=null;if(this.bumpIf(",")){this.bumpSpace();var f=this.clonePosition();if((b=this.parseSimpleArgStyleIfPossible()).err)return b;if(0===(v=pe(b.val)).length)return this.error(l.EXPECT_ARGUMENT_STYLE,Z(this.clonePosition(),this.clonePosition()));c={style:v,styleLocation:Z(f,this.clonePosition())}}if((_=this.tryParseArgumentClose(i)).err)return _;var g=Z(i,this.clonePosition());if(c&&ae(null==c?void 0:c.style,"::",0)){var d=he(c.style.slice(2));if("number"===a)return(b=this.parseNumberSkeletonFromString(d,c.styleLocation)).err?b:{val:{type:h.number,value:n,location:g,style:b.val},err:null};if(0===d.length)return this.error(l.EXPECT_DATE_TIME_SKELETON,g);var v={type:p.dateTime,pattern:d,location:c.styleLocation,parsedOptions:this.shouldParseSkeletons?x(d):{}};return{val:{type:"date"===a?h.date:h.time,value:n,location:g,style:v},err:null}}return{val:{type:"number"===a?h.number:"date"===a?h.date:h.time,value:n,location:g,style:null!==(o=null==c?void 0:c.style)&&void 0!==o?o:null},err:null};case"plural":case"selectordinal":case"select":var m=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(l.EXPECT_SELECT_ARGUMENT_OPTIONS,Z(m,r({},m)));this.bumpSpace();var y=this.parseIdentifierIfPossible(),E=0;if("select"!==a&&"offset"===y.value){if(!this.bumpIf(":"))return this.error(l.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,Z(this.clonePosition(),this.clonePosition()));var b;if(this.bumpSpace(),(b=this.tryParseDecimalInteger(l.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,l.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE)).err)return b;this.bumpSpace(),y=this.parseIdentifierIfPossible(),E=b.val}var _,T=this.tryParsePluralOrSelectOptions(e,a,t,y);if(T.err)return T;if((_=this.tryParseArgumentClose(i)).err)return _;var S=Z(i,this.clonePosition());return"select"===a?{val:{type:h.select,value:n,options:ce(T.val),location:S},err:null}:{val:{type:h.plural,value:n,options:ce(T.val),offset:E,pluralType:"plural"===a?"cardinal":"ordinal",location:S},err:null};default:return this.error(l.INVALID_ARGUMENT_TYPE,Z(s,u))}},e.prototype.tryParseArgumentClose=function(e){return this.isEOF()||125!==this.char()?this.error(l.EXPECT_ARGUMENT_CLOSING_BRACE,Z(e,this.clonePosition())):(this.bump(),{val:!0,err:null})},e.prototype.parseSimpleArgStyleIfPossible=function(){for(var e=0,t=this.clonePosition();!this.isEOF();){switch(this.char()){case 39:this.bump();var r=this.clonePosition();if(!this.bumpUntil("'"))return this.error(l.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,Z(r,this.clonePosition()));this.bump();break;case 123:e+=1,this.bump();break;case 125:if(!(e>0))return{val:this.message.slice(t.offset,this.offset()),err:null};e-=1;break;default:this.bump()}}return{val:this.message.slice(t.offset,this.offset()),err:null}},e.prototype.parseNumberSkeletonFromString=function(e,t){var r=[];try{r=function(e){if(0===e.length)throw new Error("Number skeleton cannot be empty");for(var t=[],r=0,n=e.split(G).filter((function(e){return e.length>0}));r<n.length;r++){var i=n[r].split("/");if(0===i.length)throw new Error("Invalid number skeleton");for(var o=i[0],s=i.slice(1),a=0,u=s;a<u.length;a++)if(0===u[a].length)throw new Error("Invalid number skeleton");t.push({stem:o,options:s})}return t}(e)}catch(e){return this.error(l.INVALID_NUMBER_SKELETON,t)}return{val:{type:p.number,tokens:r,location:t,parsedOptions:this.shouldParseSkeletons?W(r):{}},err:null}},e.prototype.tryParsePluralOrSelectOptions=function(e,t,r,n){for(var i,o=!1,s=[],a=new Set,u=n.value,c=n.location;;){if(0===u.length){var h=this.clonePosition();if("select"===t||!this.bumpIf("="))break;var p=this.tryParseDecimalInteger(l.EXPECT_PLURAL_ARGUMENT_SELECTOR,l.INVALID_PLURAL_ARGUMENT_SELECTOR);if(p.err)return p;c=Z(h,this.clonePosition()),u=this.message.slice(h.offset,this.offset())}if(a.has(u))return this.error("select"===t?l.DUPLICATE_SELECT_ARGUMENT_SELECTOR:l.DUPLICATE_PLURAL_ARGUMENT_SELECTOR,c);"other"===u&&(o=!0),this.bumpSpace();var f=this.clonePosition();if(!this.bumpIf("{"))return this.error("select"===t?l.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT:l.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT,Z(this.clonePosition(),this.clonePosition()));var g=this.parseMessage(e+1,t,r);if(g.err)return g;var d=this.tryParseArgumentClose(f);if(d.err)return d;s.push([u,{value:g.val,location:Z(f,this.clonePosition())}]),a.add(u),this.bumpSpace(),u=(i=this.parseIdentifierIfPossible()).value,c=i.location}return 0===s.length?this.error("select"===t?l.EXPECT_SELECT_ARGUMENT_SELECTOR:l.EXPECT_PLURAL_ARGUMENT_SELECTOR,Z(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!o?this.error(l.MISSING_OTHER_CLAUSE,Z(this.clonePosition(),this.clonePosition())):{val:s,err:null}},e.prototype.tryParseDecimalInteger=function(e,t){var r=1,n=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(r=-1);for(var i=!1,o=0;!this.isEOF();){var s=this.char();if(!(s>=48&&s<=57))break;i=!0,o=10*o+(s-48),this.bump()}var a=Z(n,this.clonePosition());return i?ie(o*=r)?{val:o,err:null}:this.error(t,a):this.error(e,a)},e.prototype.offset=function(){return this.position.offset},e.prototype.isEOF=function(){return this.offset()===this.message.length},e.prototype.clonePosition=function(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}},e.prototype.char=function(){var e=this.position.offset;if(e>=this.message.length)throw Error("out of bound");var t=le(this.message,e);if(void 0===t)throw Error("Offset "+e+" is at invalid UTF-16 code unit boundary");return t},e.prototype.error=function(e,t){return{val:null,err:{kind:e,message:this.message,location:t}}},e.prototype.bump=function(){if(!this.isEOF()){var e=this.char();10===e?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=e<65536?1:2)}},e.prototype.bumpIf=function(e){if(ae(this.message,e,this.offset())){for(var t=0;t<e.length;t++)this.bump();return!0}return!1},e.prototype.bumpUntil=function(e){var t=this.offset(),r=this.message.indexOf(e,t);return r>=0?(this.bumpTo(r),!0):(this.bumpTo(this.message.length),!1)},e.prototype.bumpTo=function(e){if(this.offset()>e)throw Error("targetOffset "+e+" must be greater than or equal to the current offset "+this.offset());for(e=Math.min(e,this.message.length);;){var t=this.offset();if(t===e)break;if(t>e)throw Error("targetOffset "+e+" is at invalid UTF-16 code unit boundary");if(this.bump(),this.isEOF())break}},e.prototype.bumpSpace=function(){for(;!this.isEOF()&&me(this.char());)this.bump()},e.prototype.peek=function(){if(this.isEOF())return null;var e=this.char(),t=this.offset(),r=this.message.charCodeAt(t+(e>=65536?2:1));return null!=r?r:null},e}();function ve(e){return e>=97&&e<=122||e>=65&&e<=90}function me(e){return e>=9&&e<=13||32===e||133===e||e>=8206&&e<=8207||8232===e||8233===e}function ye(e){return e>=33&&e<=35||36===e||e>=37&&e<=39||40===e||41===e||42===e||43===e||44===e||45===e||e>=46&&e<=47||e>=58&&e<=59||e>=60&&e<=62||e>=63&&e<=64||91===e||92===e||93===e||94===e||96===e||123===e||124===e||125===e||126===e||161===e||e>=162&&e<=165||166===e||167===e||169===e||171===e||172===e||174===e||176===e||177===e||182===e||187===e||191===e||215===e||247===e||e>=8208&&e<=8213||e>=8214&&e<=8215||8216===e||8217===e||8218===e||e>=8219&&e<=8220||8221===e||8222===e||8223===e||e>=8224&&e<=8231||e>=8240&&e<=8248||8249===e||8250===e||e>=8251&&e<=8254||e>=8257&&e<=8259||8260===e||8261===e||8262===e||e>=8263&&e<=8273||8274===e||8275===e||e>=8277&&e<=8286||e>=8592&&e<=8596||e>=8597&&e<=8601||e>=8602&&e<=8603||e>=8604&&e<=8607||8608===e||e>=8609&&e<=8610||8611===e||e>=8612&&e<=8613||8614===e||e>=8615&&e<=8621||8622===e||e>=8623&&e<=8653||e>=8654&&e<=8655||e>=8656&&e<=8657||8658===e||8659===e||8660===e||e>=8661&&e<=8691||e>=8692&&e<=8959||e>=8960&&e<=8967||8968===e||8969===e||8970===e||8971===e||e>=8972&&e<=8991||e>=8992&&e<=8993||e>=8994&&e<=9e3||9001===e||9002===e||e>=9003&&e<=9083||9084===e||e>=9085&&e<=9114||e>=9115&&e<=9139||e>=9140&&e<=9179||e>=9180&&e<=9185||e>=9186&&e<=9254||e>=9255&&e<=9279||e>=9280&&e<=9290||e>=9291&&e<=9311||e>=9472&&e<=9654||9655===e||e>=9656&&e<=9664||9665===e||e>=9666&&e<=9719||e>=9720&&e<=9727||e>=9728&&e<=9838||9839===e||e>=9840&&e<=10087||10088===e||10089===e||10090===e||10091===e||10092===e||10093===e||10094===e||10095===e||10096===e||10097===e||10098===e||10099===e||10100===e||10101===e||e>=10132&&e<=10175||e>=10176&&e<=10180||10181===e||10182===e||e>=10183&&e<=10213||10214===e||10215===e||10216===e||10217===e||10218===e||10219===e||10220===e||10221===e||10222===e||10223===e||e>=10224&&e<=10239||e>=10240&&e<=10495||e>=10496&&e<=10626||10627===e||10628===e||10629===e||10630===e||10631===e||10632===e||10633===e||10634===e||10635===e||10636===e||10637===e||10638===e||10639===e||10640===e||10641===e||10642===e||10643===e||10644===e||10645===e||10646===e||10647===e||10648===e||e>=10649&&e<=10711||10712===e||10713===e||10714===e||10715===e||e>=10716&&e<=10747||10748===e||10749===e||e>=10750&&e<=11007||e>=11008&&e<=11055||e>=11056&&e<=11076||e>=11077&&e<=11078||e>=11079&&e<=11084||e>=11085&&e<=11123||e>=11124&&e<=11125||e>=11126&&e<=11157||11158===e||e>=11159&&e<=11263||e>=11776&&e<=11777||11778===e||11779===e||11780===e||11781===e||e>=11782&&e<=11784||11785===e||11786===e||11787===e||11788===e||11789===e||e>=11790&&e<=11798||11799===e||e>=11800&&e<=11801||11802===e||11803===e||11804===e||11805===e||e>=11806&&e<=11807||11808===e||11809===e||11810===e||11811===e||11812===e||11813===e||11814===e||11815===e||11816===e||11817===e||e>=11818&&e<=11822||11823===e||e>=11824&&e<=11833||e>=11834&&e<=11835||e>=11836&&e<=11839||11840===e||11841===e||11842===e||e>=11843&&e<=11855||e>=11856&&e<=11857||11858===e||e>=11859&&e<=11903||e>=12289&&e<=12291||12296===e||12297===e||12298===e||12299===e||12300===e||12301===e||12302===e||12303===e||12304===e||12305===e||e>=12306&&e<=12307||12308===e||12309===e||12310===e||12311===e||12312===e||12313===e||12314===e||12315===e||12316===e||12317===e||e>=12318&&e<=12319||12320===e||12336===e||64830===e||64831===e||e>=65093&&e<=65094}function Ee(e){e.forEach((function(e){if(delete e.location,N(e)||C(e))for(var t in e.options)delete e.options[t].location,Ee(e.options[t].value);else L(e)&&U(e.style)||(P(e)||O(e))&&D(e.style)?delete e.style.location:I(e)&&Ee(e.children)}))}function be(e,t){void 0===t&&(t={}),t=r({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var n=new de(e,t).parse();if(n.err){var i=SyntaxError(l[n.err.kind]);throw i.location=n.err.location,i.originalMessage=n.err.message,i}return(null==t?void 0:t.captureLocation)||Ee(n.val),n.val}function _e(e,t){var r=t&&t.cache?t.cache:Ne,n=t&&t.serializer?t.serializer:Le;return(t&&t.strategy?t.strategy:Ae)(e,{cache:r,serializer:n})}function Te(e,t,r,n){var i,o=null==(i=n)||"number"==typeof i||"boolean"==typeof i?n:r(n),s=t.get(o);return void 0===s&&(s=e.call(this,n),t.set(o,s)),s}function Se(e,t,r){var n=Array.prototype.slice.call(arguments,3),i=r(n),o=t.get(i);return void 0===o&&(o=e.apply(this,n),t.set(i,o)),o}function we(e,t,r,n,i){return r.bind(t,e,n,i)}function Ae(e,t){return we(e,this,1===e.length?Te:Se,t.cache.create(),t.serializer)}var Le=function(){return JSON.stringify(arguments)};function Pe(){this.cache=Object.create(null)}Pe.prototype.get=function(e){return this.cache[e]},Pe.prototype.set=function(e,t){this.cache[e]=t};var Oe,Ne={create:function(){return new Pe}},Ce={variadic:function(e,t){return we(e,this,Se,t.cache.create(),t.serializer)},monadic:function(e,t){return we(e,this,Te,t.cache.create(),t.serializer)}};!function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"}(Oe||(Oe={}));var Re,Ie=function(e){function r(t,r,n){var i=e.call(this,t)||this;return i.code=r,i.originalMessage=n,i}return t(r,e),r.prototype.toString=function(){return"[formatjs Error: "+this.code+"] "+this.message},r}(Error),Ue=function(e){function r(t,r,n,i){return e.call(this,'Invalid values for "'+t+'": "'+r+'". Options are "'+Object.keys(n).join('", "')+'"',Oe.INVALID_VALUE,i)||this}return t(r,e),r}(Ie),De=function(e){function r(t,r,n){return e.call(this,'Value for "'+t+'" must be of type '+r,Oe.INVALID_VALUE,n)||this}return t(r,e),r}(Ie),ke=function(e){function r(t,r){return e.call(this,'The intl string context variable "'+t+'" was not provided to the string "'+r+'"',Oe.MISSING_VALUE,r)||this}return t(r,e),r}(Ie);function Me(e){return"function"==typeof e}function xe(e,t,r,n,i,o,s){if(1===e.length&&w(e[0]))return[{type:Re.literal,value:e[0].value}];for(var a=[],u=0,c=e;u<c.length;u++){var l=c[u];if(w(l))a.push({type:Re.literal,value:l.value});else if(R(l))"number"==typeof o&&a.push({type:Re.literal,value:r.getNumberFormat(t).format(o)});else{var h=l.value;if(!i||!(h in i))throw new ke(h,s);var p=i[h];if(A(l))p&&"string"!=typeof p&&"number"!=typeof p||(p="string"==typeof p||"number"==typeof p?String(p):""),a.push({type:"string"==typeof p?Re.literal:Re.object,value:p});else if(P(l)){var f="string"==typeof l.style?n.date[l.style]:D(l.style)?l.style.parsedOptions:void 0;a.push({type:Re.literal,value:r.getDateTimeFormat(t,f).format(p)})}else if(O(l)){f="string"==typeof l.style?n.time[l.style]:D(l.style)?l.style.parsedOptions:void 0;a.push({type:Re.literal,value:r.getDateTimeFormat(t,f).format(p)})}else if(L(l)){(f="string"==typeof l.style?n.number[l.style]:U(l.style)?l.style.parsedOptions:void 0)&&f.scale&&(p*=f.scale||1),a.push({type:Re.literal,value:r.getNumberFormat(t,f).format(p)})}else{if(I(l)){var g=l.children,d=l.value,v=i[d];if(!Me(v))throw new De(d,"function",s);var m=v(xe(g,t,r,n,i,o).map((function(e){return e.value})));Array.isArray(m)||(m=[m]),a.push.apply(a,m.map((function(e){return{type:"string"==typeof e?Re.literal:Re.object,value:e}})))}if(N(l)){if(!(y=l.options[p]||l.options.other))throw new Ue(l.value,p,Object.keys(l.options),s);a.push.apply(a,xe(y.value,t,r,n,i))}else if(C(l)){var y;if(!(y=l.options["="+p])){if(!Intl.PluralRules)throw new Ie('Intl.PluralRules is not available in this environment.\nTry polyfilling it using "@formatjs/intl-pluralrules"\n',Oe.MISSING_INTL_API,s);var E=r.getPluralRules(t,{type:l.pluralType}).select(p-(l.offset||0));y=l.options[E]||l.options.other}if(!y)throw new Ue(l.value,p,Object.keys(l.options),s);a.push.apply(a,xe(y.value,t,r,n,i,p-(l.offset||0)))}else;}}}return function(e){return e.length<2?e:e.reduce((function(e,t){var r=e[e.length-1];return r&&r.type===Re.literal&&t.type===Re.literal?r.value+=t.value:e.push(t),e}),[])}(a)}function Ge(e,t){return t?Object.keys(e).reduce((function(n,i){var o,s;return n[i]=(o=e[i],(s=t[i])?r(r(r({},o||{}),s||{}),Object.keys(o).reduce((function(e,t){return e[t]=r(r({},o[t]),s[t]||{}),e}),{})):o),n}),r({},e)):e}function Fe(e){return{create:function(){return{get:function(t){return e[t]},set:function(t,r){e[t]=r}}}}}!function(e){e[e.literal=0]="literal",e[e.object=1]="object"}(Re||(Re={}));var je=function(){function e(t,r,n,i){var o,s=this;if(void 0===r&&(r=e.defaultLocale),this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=function(e){var t=s.formatToParts(e);if(1===t.length)return t[0].value;var r=t.reduce((function(e,t){return e.length&&t.type===Re.literal&&"string"==typeof e[e.length-1]?e[e.length-1]+=t.value:e.push(t.value),e}),[]);return r.length<=1?r[0]||"":r},this.formatToParts=function(e){return xe(s.ast,s.locales,s.formatters,s.formats,e,void 0,s.message)},this.resolvedOptions=function(){return{locale:Intl.NumberFormat.supportedLocalesOf(s.locales)[0]}},this.getAst=function(){return s.ast},"string"==typeof t){if(this.message=t,!e.__parse)throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");this.ast=e.__parse(t,{ignoreTag:null==i?void 0:i.ignoreTag})}else this.ast=t;if(!Array.isArray(this.ast))throw new TypeError("A message must be provided as a String or AST.");this.formats=Ge(e.formats,n),this.locales=r,this.formatters=i&&i.formatters||(void 0===(o=this.formatterCache)&&(o={number:{},dateTime:{},pluralRules:{}}),{getNumberFormat:_e((function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new((e=Intl.NumberFormat).bind.apply(e,a([void 0],t)))}),{cache:Fe(o.number),strategy:Ce.variadic}),getDateTimeFormat:_e((function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new((e=Intl.DateTimeFormat).bind.apply(e,a([void 0],t)))}),{cache:Fe(o.dateTime),strategy:Ce.variadic}),getPluralRules:_e((function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new((e=Intl.PluralRules).bind.apply(e,a([void 0],t)))}),{cache:Fe(o.pluralRules),strategy:Ce.variadic})})}return Object.defineProperty(e,"defaultLocale",{get:function(){return e.memoizedDefaultLocale||(e.memoizedDefaultLocale=(new Intl.NumberFormat).resolvedOptions().locale),e.memoizedDefaultLocale},enumerable:!1,configurable:!0}),e.memoizedDefaultLocale=null,e.__parse=be,e.formats={number:{integer:{maximumFractionDigits:0},currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},e}(),He=function(){function e(e,t){var r=this;this.properties=e,this.translationService=t,this.format=function(e,t){try{return new je(e,r.properties.currentLanguage,void 0,{ignoreTag:!0}).format(t)}catch(t){if("MISSING_VALUE"===t.code)return console.warn(t.message),e}},this.escapeForRegExp=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},this.escapeParam=function(e){return"string"==typeof e?e.replace(/[,:\\]/gs,"\\$&"):"number"==typeof e||"bigint"==typeof e?e.toString():(console.warn(e),console.warn("Unsupported value type of above param. Consider converting to string."),e)}}return Object.defineProperty(e.prototype,"rawUnWrapRegex",{get:function(){return"(\\\\?)("+this.escapeForRegExp(this.properties.config.inputPrefix)+"(.*?)"+this.escapeForRegExp(this.properties.config.inputSuffix)+")"},enumerable:!1,configurable:!0}),e.parseUnwrapped=function(e){for(var t=e.match(/(?:[^\\,:\n]|\\.)+/g),r={key:T.removeEscapes(t.shift()),params:{}};t.length;){var n=s(t.splice(0,2),2),i=n[0],o=n[1];r.params[i]=o}return r},e.prototype.translate=function(e,t,r,o){return void 0===r&&(r=this.properties.currentLanguage),n(this,void 0,void 0,(function(){var n;return i(this,(function(i){switch(i.label){case 0:return n=this.format,[4,this.translationService.getTranslation(e,r,o)];case 1:return[2,n.apply(this,[i.sent(),t])]}}))}))},e.prototype.instant=function(e,t,r,n){return void 0===r&&(r=this.properties.currentLanguage),this.format(this.translationService.getFromCacheOrFallback(e,r,n),t)},e.prototype.replace=function(e){return n(this,void 0,void 0,(function(){var t,r,n,o,a,u,c,l,h,p,f,g,d,v,m;return i(this,(function(i){switch(i.label){case 0:t=new RegExp(this.rawUnWrapRegex,"gs"),r=[],n=!1,a=0,u="",i.label=1;case 1:return null===(o=t.exec(e))?[3,3]:(c=s(o,4),l=c[0],h=c[1],p=c[2],f=c[3],g=o.index,d=o.input,u+=d.substr(a,g-a),a=g+l.length,"\\"!==h||T.isCharEscaped(g,e)?[4,this.getTranslatedWithMetadata(f)]:(u+=p,[3,1]));case 2:return v=i.sent(),r.push({key:v.key,params:v.params}),n=!0,u+=h+v.translated,[3,1];case 3:return u+=e.substring(a),m=T.removeEscapes(u),n?[2,{text:m,keys:r}]:[2,void 0]}}))}))},e.prototype.wrap=function(e,t){var r=this;void 0===t&&(t={});var n=Object.entries(t).map((function(e){var t=s(e,2),n=t[0],i=t[1];return r.escapeParam(n)+":"+r.escapeParam(i)})).join(",");return n=n.length?":"+n:"",""+this.properties.config.inputPrefix+this.escapeParam(e)+n+this.properties.config.inputSuffix},e.prototype.getTranslatedWithMetadata=function(t){return n(this,void 0,void 0,(function(){var r,n,o;return i(this,(function(i){switch(i.label){case 0:return r=e.parseUnwrapped(t),n=r.key,o=r.params,[4,this.translate(n,o,void 0,!1)];case 1:return[2,{translated:i.sent(),key:n,params:o}]}}))}))},e}(),Ke=function(){function e(e){this.properties=e,this.keysDown=new Set,this.mouseOn=new Set,this.mouseOnChanged=new m,this.keysChanged=new m,"undefined"==typeof window||this.initKeyListener()}return e.prototype.handle=function(e,t){var r=this;e._tolgee.listeningForHighlighting?console.error("Element is already listening mouse events! This is probably bug in tolgee"):(e._tolgee.listeningForHighlighting=!0,this.initEventListeners(e,t),this.mouseOnChanged.subscribe((function(){r.highlighted!==r.getMouseOn()&&r.onConditionsChanged()})),this.keysChanged.subscribe((function(){r.onConditionsChanged()})))},e.prototype.initEventListeners=function(e,t){var r=this,n=function(){return r.onMouseOver(e)},i=function(){return r.onMouseOut(e)},o=function(e){r.areKeysDown()&&(e.stopPropagation(),e.preventDefault(),t(e))};e.addEventListener("mouseover",n),e.addEventListener("click",o);var s=function(e){r.areKeysDown()&&(e.stopPropagation(),e.preventDefault())};e.addEventListener("mousedown",s),e.addEventListener("mouseup",s),e.addEventListener("mouseout",i),e._tolgee.removeAllEventListeners=function(){e.removeEventListener("mousedown",s),e.removeEventListener("mouseup",s),e.removeEventListener("mouseover",n),e.removeEventListener("click",o),e.removeEventListener("mouseout",i)}},e.prototype.onConditionsChanged=function(){this.unhighlight(),this.areKeysDown()&&this.getMouseOn()&&this.highlight()},e.prototype.highlight=function(){this.highlightedInitialBackgroundColor=this.getMouseOn().style.backgroundColor,this.getMouseOn().style.backgroundColor=this.properties.config.highlightColor,this.highlighted=this.getMouseOn()},e.prototype.unhighlight=function(){this.highlighted&&(this.highlighted.style.backgroundColor=this.highlightedInitialBackgroundColor,this.highlighted=null)},e.prototype.onMouseOut=function(e){this.mouseOn.delete(e),this.mouseOnChanged.emit(this.getMouseOn())},e.prototype.onMouseOver=function(e){this.filterMouseOn(),this.mouseOn.delete(e),this.mouseOn.add(e),this.mouseOnChanged.emit(this.getMouseOn())},e.prototype.getMouseOn=function(){var e=Array.from(this.mouseOn);return e.length?e[0]:void 0},e.prototype.initKeyListener=function(){var e=this;window.addEventListener("blur",(function(){e.keysDown=new Set,e.keysChanged.emit(e.areKeysDown())})),window.addEventListener("keydown",(function(t){var r=exports.ModifierKey[t.key];void 0!==r&&(e.keysDown.add(r),e.keysChanged.emit(e.areKeysDown()))})),window.addEventListener("keyup",(function(t){e.keysDown.delete(exports.ModifierKey[t.key]),e.keysChanged.emit(e.areKeysDown())}))},e.prototype.filterMouseOn=function(){var e=this;this.mouseOn.forEach((function(t){document.contains(t)||e.mouseOn.delete(t)}))},e.prototype.areKeysDown=function(){var e,t;try{for(var r=o(this.properties.config.highlightKeys),n=r.next();!n.done;n=r.next()){var i=n.value;if(!this.keysDown.has(i))return!1}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return!0},e}(),Ve=function(){function e(e,t,r,o,s){var a=this;this.service=e,this.properties=t,this.eventService=r,this.translationService=o,this.mouseEventHandler=s,this.translationEdit=function(e,t){return n(a,void 0,void 0,(function(){var r;return i(this,(function(n){switch(n.label){case 0:return"object"!=typeof this.renderer?[3,2]:[4,this.getKey(e,t)];case 1:return(r=n.sent())?(this.renderer.renderViewer(r),[2]):[2];case 2:return console.warn('Tolgee UI is not provided. To translate interactively provide tolgee ui constructor to "ui" configuration property. To disable highlighting use production mode.'),[2]}}))}))}}return Object.defineProperty(e.prototype,"renderer",{get:function(){return void 0===this._renderer&&"function"==typeof this.properties.config.ui&&(this._renderer=new this.properties.config.ui({coreService:this.service,properties:this.properties,eventService:this.eventService,translationService:this.translationService})),this._renderer},enumerable:!1,configurable:!0}),e.getKeyOptions=function(e){var t=Array.from(e._tolgee.nodes).reduce((function(e,t){return a(a([],s(e)),s(t._tolgee.keys.map((function(e){return e.key}))))}),[]);return new Set(t)},e.prototype.listen=function(e){var t=this;this.mouseEventHandler.handle(e,(function(r){return n(t,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.translationEdit(r,e)];case 1:return[2,t.sent()]}}))}))}))},e.prototype.getKey=function(t,r){return n(this,void 0,void 0,(function(){var n;return i(this,(function(i){switch(i.label){case 0:return r._tolgee.wrappedWithElementOnlyKey?[2,r._tolgee.wrappedWithElementOnlyKey]:(n=e.getKeyOptions(r)).size>1?[4,this.renderer.getKey({keys:n,openEvent:t})]:[3,2];case 1:return[2,i.sent()];case 2:return 1===n.size?[2,Array.from(n)[0]]:(console.error("No key to translate. This seems like a bug in tolgee."),[2])}}))}))},e}(),Xe=function(){function e(e,t){this.properties=e,this.translationHighlighter=t,this.registeredElements=new Set}return e.prototype.register=function(e){(void 0!==this.getActiveNodes(e).next().value||e._tolgee.wrappedWithElementOnlyKey)&&("development"!==this.properties.config.mode||this.registeredElements.has(e)||this.translationHighlighter.listen(e),this.registeredElements.add(e))},e.prototype.refreshAll=function(){var e,t;try{for(var r=o(this.registeredElements),n=r.next();!n.done;n=r.next()){var i=n.value;this.cleanElementInactiveNodes(i),0!==i._tolgee.nodes.size||i._tolgee.wrappedWithElementOnlyKey||this.cleanElement(i)}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},e.prototype.cleanAll=function(){var e,t;try{for(var r=o(this.registeredElements),n=r.next();!n.done;n=r.next()){var i=n.value;this.cleanElement(i)}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},e.prototype.cleanElementInactiveNodes=function(e){this.isElementActive(e)&&(e._tolgee.nodes=new Set(this.getActiveNodes(e)))},e.prototype.cleanElement=function(e){"function"==typeof e._tolgee.removeAllEventListeners&&e._tolgee.removeAllEventListeners(),e.removeAttribute("_tolgee"),delete e._tolgee,this.registeredElements.delete(e)},e.prototype.getActiveNodes=function(e){var t,r,n,s,a,u;return i(this,(function(i){switch(i.label){case 0:i.trys.push([0,5,6,7]),t=o(e._tolgee.nodes),r=t.next(),i.label=1;case 1:return r.done?[3,4]:(n=r.value,c.nodeContains(this.properties.config.targetElement,n)?[4,n]:[3,3]);case 2:i.sent(),i.label=3;case 3:return r=t.next(),[3,1];case 4:return[3,7];case 5:return s=i.sent(),a={error:s},[3,7];case 6:try{r&&!r.done&&(u=t.return)&&u.call(t)}finally{if(a)throw a.error}return[7];case 7:return[2]}}))},e.prototype.isElementActive=function(e){return this.properties.config.targetElement.contains(e)},e}(),ze=function(){function e(e,t,r,n){this.properties=e,this.textService=t,this.elementRegistrar=r,this.translationHighlighter=n}return e.initParentElement=function(e){return void 0===e._tolgee&&(e._tolgee={nodes:new Set},e.setAttribute("_tolgee","")),e},e.prototype.filterRestricted=function(e){var t=this.properties.config.restrictedElements;return e.filter((function(e){var r=c.closestElement(e);return-1===t.indexOf(r.tagName.toLowerCase())&&null===r.closest('[data-tolgee-restricted="true"]')}))},e.prototype.handleNodes=function(e){return n(this,void 0,void 0,(function(){var t,r,n,s,a,u,c,l,h,p,f,g;return i(this,(function(i){switch(i.label){case 0:i.trys.push([0,5,6,7]),t=o(e),r=t.next(),i.label=1;case 1:return r.done?[3,4]:(void 0===(n=r.value)._tolgee&&(n._tolgee={}),!0===(null==(s=n._tolgee)?void 0:s.locked)?[3,3]:(this.lockNode(n),[4,this.textService.replace(n.textContent)]));case 2:(a=i.sent())&&(u=a.text,c=a.keys,l=this.translateChildNode(n,u,c),(h=this.getParentElement(l))._tolgee.nodes.add(l),this.elementRegistrar.register(h)),this.unlockNode(n),i.label=3;case 3:return r=t.next(),[3,1];case 4:return[3,7];case 5:return p=i.sent(),f={error:p},[3,7];case 6:try{r&&!r.done&&(g=t.return)&&g.call(t)}finally{if(f)throw f.error}return[7];case 7:return[2]}}))}))},e.prototype.translateChildNode=function(e,t,r){return e._tolgee={oldTextContent:e.textContent,keys:r},e.textContent=t,e},e.prototype.lockNode=function(e){void 0===e._tolgee&&(e._tolgee={});var t=e._tolgee;return!0!==(null==t?void 0:t.locked)&&(t.locked=!0),e},e.prototype.unlockNode=function(e){e._tolgee&&(e._tolgee.locked=!1)},e.prototype.getParentElement=function(t){var r=this.getSuitableParent(t);return e.initParentElement(r)},e.prototype.getSuitableParent=function(e){var t=c.getParentElement(e);if(void 0===t)throw console.error(e),new Error("No suitable parent found for node above.");if(!this.properties.config.passToParent)return t;if(Array.isArray(this.properties.config.passToParent)){if(-1===this.properties.config.passToParent.findIndex((function(e){return t.tagName.toLowerCase()===e.toLowerCase()})))return t}return"function"!=typeof this.properties.config.passToParent||this.properties.config.passToParent(t)?this.getSuitableParent(t):t},e}(),Be=function(e){function r(t,r,n,i){var o=e.call(this,t,n,i,r)||this;return o.properties=t,o.translationHighlighter=r,o.textService=n,o.nodeRegistrar=i,o}return t(r,e),r.prototype.handle=function(e){return n(this,void 0,void 0,(function(){var t,r,n,o,s;return i(this,(function(i){switch(i.label){case 0:return t=this.properties.config.inputPrefix,r=this.properties.config.inputSuffix,n="./descendant-or-self::text()[contains(., '"+t+"') and contains(., '"+r+"')]",o=c.evaluate(n,e),s=this.filterRestricted(o),[4,this.handleNodes(s)];case 1:return i.sent(),[2]}}))}))},r}(ze),Ye=function(e){function r(t,r,n,i){var o=e.call(this,t,r,n,i)||this;return o.properties=t,o.textService=r,o.elementRegistrar=n,o.translationHighlighter=i,o}return t(r,e),r.prototype.handle=function(e){return n(this,void 0,void 0,(function(){var t,r,n,a,u,l,h,p,f,g,d,v,m,y,E,b,_,T;return i(this,(function(i){switch(i.label){case 0:t=this.properties.config.inputPrefix,r=this.properties.config.inputSuffix,i.label=1;case 1:i.trys.push([1,12,13,14]),n=o(Object.entries(this.properties.config.tagAttributes)),a=n.next(),i.label=2;case 2:if(a.done)return[3,11];u=s(a.value,2),l=u[0],h=u[1],i.label=3;case 3:i.trys.push([3,8,9,10]),_=void 0,p=o(h),f=p.next(),i.label=4;case 4:return f.done?[3,7]:(g=f.value,d="descendant-or-self::"+l+"/@"+g+"[contains(., '"+t+"') and contains(., '"+r+"')]",v=c.evaluate(d,e),[4,this.handleNodes(v)]);case 5:i.sent(),i.label=6;case 6:return f=p.next(),[3,4];case 7:return[3,10];case 8:return m=i.sent(),_={error:m},[3,10];case 9:try{f&&!f.done&&(T=p.return)&&T.call(p)}finally{if(_)throw _.error}return[7];case 10:return a=n.next(),[3,2];case 11:return[3,14];case 12:return y=i.sent(),E={error:y},[3,14];case 13:try{a&&!a.done&&(b=n.return)&&b.call(n)}finally{if(E)throw E.error}return[7];case 14:return[2]}}))}))},r}(ze),We=function(){function e(e,t,r,n,i,o,s){this.service=e,this.textHandler=t,this.eventService=r,this.properties=n,this.attributeHandler=i,this.textService=o,this.wrappedHandler=s,r.LANGUAGE_CHANGED.subscribe(this.refresh.bind(this)),r.TRANSLATION_CHANGED.subscribe(this.refresh.bind(this))}return e.prototype.handleSubtree=function(e){return n(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.attributeHandler.handle(e)];case 1:return t.sent(),[4,this.textHandler.handle(e)];case 2:return t.sent(),[4,this.wrappedHandler.handle(e)];case 3:return t.sent(),[2]}}))}))},e.prototype.refresh=function(){return n(this,void 0,void 0,(function(){var e,t,r,n,s,a,u,l,h,p,f,g,d,v;return i(this,(function(i){switch(i.label){case 0:e=c.evaluate("//*[@_tolgee]",this.properties.config.targetElement),i.label=1;case 1:i.trys.push([1,12,13,14]),t=o(e),r=t.next(),i.label=2;case 2:if(r.done)return[3,11];n=r.value,i.label=3;case 3:i.trys.push([3,8,9,10]),d=void 0,s=o(n._tolgee.nodes),a=s.next(),i.label=4;case 4:return a.done?[3,7]:(u=a.value,[4,this.textService.replace(u._tolgee.oldTextContent)]);case 5:(l=i.sent())&&(u.textContent=l.text),i.label=6;case 6:return a=s.next(),[3,4];case 7:return[3,10];case 8:return h=i.sent(),d={error:h},[3,10];case 9:try{a&&!a.done&&(v=s.return)&&v.call(s)}finally{if(d)throw d.error}return[7];case 10:return r=t.next(),[3,2];case 11:return[3,14];case 12:return p=i.sent(),f={error:p},[3,14];case 13:try{r&&!r.done&&(g=t.return)&&g.call(t)}finally{if(f)throw f.error}return[7];case 14:return[2]}}))}))},e}(),qe=function(){function e(e,t,r,n,i){this.properties=e,this.coreHandler=t,this.basicTextHandler=r,this.attributeHandler=n,this.nodeRegistrar=i,this._observer=void 0}return Object.defineProperty(e.prototype,"observer",{get:function(){var e=this;return this._observer||"undefined"==typeof window||(this._observer=new MutationObserver((function(t){return n(e,void 0,void 0,(function(){var e,r,n,s,a,u;return i(this,(function(i){switch(i.label){case 0:i.trys.push([0,9,10,11]),e=o(t),r=e.next(),i.label=1;case 1:return r.done?[3,8]:"characterData"!==(n=r.value).type?[3,3]:[4,this.basicTextHandler.handle(n.target)];case 2:return i.sent(),[3,7];case 3:return"childList"!==n.type?[3,5]:[4,this.coreHandler.handleSubtree(n.target)];case 4:return i.sent(),[3,7];case 5:return"attributes"!==n.type?[3,7]:[4,this.attributeHandler.handle(n.target)];case 6:i.sent(),i.label=7;case 7:return r=e.next(),[3,1];case 8:return[3,11];case 9:return s=i.sent(),a={error:s},[3,11];case 10:try{r&&!r.done&&(u=e.return)&&u.call(e)}finally{if(a)throw a.error}return[7];case 11:return this.nodeRegistrar.refreshAll(),[2]}}))}))}))),this._observer},enumerable:!1,configurable:!0}),e.prototype.observe=function(){this.observer&&this.observer.observe(this.properties.config.targetElement,{attributes:!0,childList:!0,subtree:!0,characterData:!0})},e.prototype.stopObserving=function(){this.observer&&this.observer.disconnect()},e}(),Je=function(){function e(e,t){this.properties=e,this.apiHttpService=t}return e.prototype.getLanguages=function(){return n(this,void 0,void 0,(function(){var e,t;return i(this,(function(r){switch(r.label){case 0:return this.languagePromise instanceof Promise||(this.languagePromise=this.apiHttpService.fetchJson("v2/projects/languages?size=1000")),t=Set.bind,[4,this.languagePromise];case 1:return e=new(t.apply(Set,[void 0,r.sent()._embedded.languages.map((function(e){return e.tag}))])),this.properties.preferredLanguages=new Set(Array.from(this.properties.preferredLanguages).filter((function(t){return e.has(t)}))),[2,e]}}))}))},e.prototype.getScopes=function(){return n(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.apiHttpService.fetchJson("api/apiKeys/scopes")];case 1:return[2,t.sent()];case 2:return e=t.sent(),console.error(e),console.error("Error getting scopes. Trying to switch to production mode!"),this.properties.config.mode="production",[3,3];case 3:return[2]}}))}))},e.prototype.isAuthorizedTo=function(e){return this.properties.scopes.indexOf(e)>-1},e.prototype.checkScope=function(e){if(!this.isAuthorizedTo(e))throw new Error("Api key not permitted to do this, please add 'translations.view' scope.")},e}(),Ze=function(e){function r(t,r,n,i){var o=e.call(this,t,n,i,r)||this;return o.properties=t,o.translationHighlighter=r,o.textService=n,o.elementRegistrar=i,o}return t(r,e),r.prototype.handle=function(e){return n(this,void 0,void 0,(function(){var t,r=this;return i(this,(function(n){return"./descendant-or-self::*[@data-tolgee-key-only]",t=c.evaluate("./descendant-or-self::*[@data-tolgee-key-only]",e),this.filterRestricted(t).forEach((function(e){var t=ze.initParentElement(e);t._tolgee.wrappedWithElementOnlyKey=e.getAttribute("data-tolgee-key-only"),r.elementRegistrar.register(t)})),[2]}))}))},r}(ze),$e=function(e){void 0===e&&(e=new g),this.properties=new d,this.eventService=new y,this.apiHttpService=new b(this.properties),this.mouseEventHandler=new Ke(this.properties),this.coreService=new Je(this.properties,this.apiHttpService),this.translationService=new S(this.properties,this.coreService,this.apiHttpService,this.eventService),this.textService=new He(this.properties,this.translationService),this.translationHighlighter=new Ve(this.coreService,this.properties,this.eventService,this.translationService,this.mouseEventHandler),this.elementRegistrar=new Xe(this.properties,this.translationHighlighter),this.textHandler=new Be(this.properties,this.translationHighlighter,this.textService,this.elementRegistrar),this.attributeHandler=new Ye(this.properties,this.textService,this.elementRegistrar,this.translationHighlighter),this.wrappedHandler=new Ze(this.properties,this.translationHighlighter,this.textService,this.elementRegistrar),this.coreHandler=new We(this.coreService,this.textHandler,this.eventService,this.properties,this.attributeHandler,this.textService,this.wrappedHandler),this.observer=new qe(this.properties,this.coreHandler,this.textHandler,this.attributeHandler,this.elementRegistrar),this.properties.config=e,this.translationService.initStatic()},Qe=function(){function e(e){var t=this;this.translate=function(e,r,o){return void 0===r&&(r={}),void 0===o&&(o=!1),n(t,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return"development"!==this.properties.config.mode||o?[3,3]:[4,this.loadScopes()];case 1:return t.sent(),[4,this.translationService.loadTranslations()];case 2:return t.sent(),[2,this.dependencyStore.textService.wrap(e,r)];case 3:return[2,this.dependencyStore.textService.translate(e,r)]}}))}))},this.instant=function(e,r,n,i){return void 0===r&&(r={}),void 0===n&&(n=!1),"development"!==t.properties.config.mode||n?t.dependencyStore.textService.instant(e,r,void 0,i):t.dependencyStore.textService.wrap(e,r)},this.stop=function(){t.dependencyStore.observer.stopObserving(),t.dependencyStore.elementRegistrar.cleanAll(),c.unmarkElementAsTargetElement(t.properties.config.targetElement)},this.dependencyStore=new $e(new g(e))}return Object.defineProperty(e.prototype,"properties",{get:function(){return this.dependencyStore.properties},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"translationService",{get:function(){return this.dependencyStore.translationService},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"coreService",{get:function(){return this.dependencyStore.coreService},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lang",{get:function(){return this.properties.currentLanguage},set:function(e){this.properties.currentLanguage=e,this.dependencyStore.eventService.LANGUAGE_CHANGED.emit(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"defaultLanguage",{get:function(){return this.properties.config.defaultLanguage},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onLangChange",{get:function(){return this.dependencyStore.eventService.LANGUAGE_CHANGED},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onTranslationChange",{get:function(){return this.dependencyStore.eventService.TRANSLATION_CHANGED},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onLangLoaded",{get:function(){return this.dependencyStore.eventService.LANGUAGE_LOADED},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"initialLoading",{get:function(){var e,t,r,n;if("production"!==(null===(t=null===(e=this.properties)||void 0===e?void 0:e.config)||void 0===t?void 0:t.mode))return!0;var i=this.properties.currentLanguage,o=this.properties.config.fallbackLanguage,s=this.properties.config.preloadFallback,a=function(e){return void 0!==e&&"function"!=typeof e};return!a(null===(r=this.properties.config.staticData)||void 0===r?void 0:r[i])||!!s&&!a(null===(n=this.properties.config.staticData)||void 0===n?void 0:n[o])},enumerable:!1,configurable:!0}),e.prototype.run=function(){return n(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return"development"!==this.properties.config.mode?[3,2]:[4,this.loadScopes()];case 1:e.sent(),e.label=2;case 2:return[4,this.translationService.loadTranslations()];case 3:return e.sent(),this.properties.config.preloadFallback?[4,this.translationService.loadTranslations(this.properties.config.fallbackLanguage)]:[3,5];case 4:e.sent(),e.label=5;case 5:return[4,this.refresh()];case 6:return e.sent(),this.properties.config.watch&&this.dependencyStore.observer.observe(),[2]}}))}))},e.prototype.refresh=function(){return n(this,void 0,void 0,(function(){return i(this,(function(e){return[2,this.dependencyStore.coreHandler.handleSubtree(this.properties.config.targetElement)]}))}))},e.prototype.loadScopes=function(){return n(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return void 0!==this.properties.scopes?[3,2]:(e=this.properties,[4,this.dependencyStore.coreService.getScopes()]);case 1:e.scopes=t.sent(),t.label=2;case 2:return[2]}}))}))},e}();exports.TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE="data-tolgee-key-only",exports.Tolgee=Qe,exports.TolgeeConfig=g,exports.TranslationData=_;
17
17
  //# sourceMappingURL=tolgee.cjs.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tolgee.cjs.min.js","sources":["../node_modules/tslib/tslib.es6.js","../src/src/Constants/Global.ts","../src/src/Constants/ModifierKey.ts","../src/src/helpers/NodeHelper.ts","../src/src/TolgeeConfig.ts","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../src/src/Properties.ts","../src/src/services/Subscription.ts","../src/src/services/EventEmitter.ts","../src/src/services/EventService.ts","../src/src/Errors/ApiHttpError.ts","../src/src/services/ApiHttpService.ts","../src/src/DTOs/TranslationData.ts","../src/src/helpers/TextHelper.ts","../src/src/services/TranslationService.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","../src/src/services/TextService.ts","../src/src/highlighter/MouseEventHandler.ts","../src/src/highlighter/TranslationHighlighter.ts","../src/src/services/ElementRegistrar.ts","../src/src/handlers/AbstractHandler.ts","../src/src/handlers/TextHandler.ts","../src/src/handlers/AttributeHandler.ts","../src/src/handlers/CoreHandler.ts","../src/src/Observer.ts","../src/src/services/CoreService.ts","../src/src/services/DependencyStore.ts","../src/src/Tolgee.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,"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 = /^(@+)?(\\+|#+)?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n 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 if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\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(\"^\" + SPACE_SEPARATOR_REGEX.source + \"*\");\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(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: \"<\" + 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 \" + 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 \" + targetOffset + \" must be greater than or equal to the current offset \" + 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 \" + 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: \" + this.code + \"] \" + this.message;\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", 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 \\\"\" + value + \"\\\" must be of type \" + 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 \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + 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[\"=\" + 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)))();\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)))();\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)))();\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",null,null,null,null,null,null,null,null,null,null,null,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","NodeHelper","expression","targetNode","evaluated","document","evaluate","undefined","XPathResult","ANY_TYPE","node","iterateNext","_a","_i","args","evaluateGenerator","arr","Error","Text","parentElement","ownerElement","element","hasAttribute","setAttribute","removeAttribute","descendant","contains","Attr","ownerContainsAttr","values","attributes","indexOf","ErrorKind","TYPE","SKELETON_TYPE","DEFAULT_TARGET_ELEMENT_SUPPLIER","config","textarea","input","img","Alt","defineProperty","set","targetElement","_targetElement","isElementTargetElement","console","markElementAsTargetElement","get","mode","apiKey","fallbackLanguage","defaultLanguage","watch","Properties","forceLanguage","localStorage","getItem","availableLanguages","_currentLanguage","getLanguageByNavigator","currentLanguage","language","setItem","Set","JSON","parse","languages","stringify","window","preferred_1","navigator","exactMatch","find","getTwoLetters_1","fullTag","replace","preferredTwoLetter_1","twoLetterMatch","onUnsubscribe","Subscription","Map","EventEmitterImpl","_subscriptions","data","promiseReturns","_b","subscriptions","returned","callback","all","newId","idCounter","subscription","_this","unsubscribe","id","delete","warn","response","code","_super","ApiHttpError","properties","ApiHttpService","status","json","fetch","url","getUrl","handleErrors","rest","res","init","method","headers","post","path","querySeparator","apiUrl","key","translations","TextHelper","string","delimiter","actual","isCharEscaped","removeEscapes","position","fullString","escapeCharsCount","text","match","coreService","apiHttpService","eventService","checkScope","languagesArray","languagesQuery","map","join","fetchJson","encodeURIComponent","_h","translationData_1","reduce","acc","curr","_embedded","keys","entries","forEach","translation","TranslationData","e_1","getLanguages","preferredLanguages","location","reload","TranslationService","message","orEmpty","splitOnNonEscapedDelimiter","staticData","translationsCache","lang","fetchPromises","fetchTranslations","LANGUAGE_LOADED","emit","getFromCache","loadTranslations","translationByValue","translationData","root","item","fetchTranslationsDevelopment","fetchTranslationsProduction","langStaticData","_c","filesUrlPrefix","setEmptyLanguageData","e_4","path_1","isLiteralElement","el","type","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","tag","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","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","test","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","token","style","scale","currency","options","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","RegExp","source","SPACE_SEPARATOR_END_REGEX","createLocation","start","end","hasNativeStartsWith","startsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","Number","isFinite","Math","floor","abs","REGEX_SUPPORTS_U_AND_Y","RE","exec","matchIdentifierAtIndex","search","codePoints","elements","fromCharCode","obj","entries_1","k","index","size","first","charCodeAt","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","c","_isWhiteSpace","_isPatternSyntax","Parser","offset","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","err","val","peek","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","startPosition","tagName","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","filter","x","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","has","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","add","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","bind","ObjectWithoutPrototypeCache","ErrorCode","strategies","PART_TYPE","FormatError","msg","toString","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isFormatXMLElementFn","formatToParts","locales","formatters","formats","currentPluralValue","els_1","getNumberFormat","format","varName","object","getDateTimeFormat","value_1","formatFn","chunks","isArray","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","translationService","params","param","TextService","getTranslation","getFromCacheOrFallback","matchRegexp","rawUnWrapRegex","keysAndParams","matched","fullMatch","pre","wrapped","unwrapped","substr","getTranslatedWithMetadata","translated","substring","withoutEscapes","paramString","name","escapeParam","inputPrefix","inputSuffix","parseUnwrapped","translate","unWrappedString","strings","shift","splice","name_1","escapeForRegExp","initKeyListener","MouseEventHandler","onclick","_tolgee","listeningForHighlighting","initEventListeners","mouseOnChanged","subscribe","highlighted","getMouseOn","onConditionsChanged","keysChanged","onMouseOver","onMouseOut","onClick","areKeysDown","stopPropagation","preventDefault","addEventListener","onMouseDownOrUp","removeAllEventListeners","removeEventListener","unhighlight","highlight","highlightedInitialBackgroundColor","backgroundColor","highlightColor","mouseOn","filterMouseOn","mouseOnArray","keysDown","modifierKey","highlightKeys","service","mouseEventHandler","renderer","getKey","renderViewer","TranslationHighlighter","handle","translationEdit","mouseEvent","getKeyOptions","openEvent","nodes","_renderer","ui","translationHighlighter","ElementRegistrar","getActiveNodes","registeredElements","listen","cleanElementInactiveNodes","cleanElement","registeredElement","isElementActive","nodeContains","_d","textService","elementRegistrar","AbstractHandler","restrictedElements","closestElement","toLowerCase","closest","nodes_1","textNode","tolgeeData","locked","lockNode","textContent","translatedNode","translateChildNode","getParentElement","register","unlockNode","newValue","oldTextContent","parent","getSuitableParent","initParentElement","domParent","passToParent","findIndex","elementTagName","nodeRegistrar","TextHandler","xPath","filtered","filterRestricted","handleNodes","AttributeHandler","tagAttributes","attributes_1","attribute","_f","textHandler","attributeHandler","LANGUAGE_CHANGED","refresh","TRANSLATION_CHANGED","CoreHandler","target","_e","coreHandler","basicTextHandler","Observer","_observer","MutationObserver","mutationsList","mutationsList_1","mutation","handleSubtree","refreshAll","observer","observe","childList","subtree","characterData","disconnect","CoreService","languagePromise","scope","scopes","isAuthorizedTo","TolgeeConfig","EventService","initStatic","noWrap","loadScopes","dependencyStore","wrap","instant","stopObserving","cleanAll","unmarkElementAsTargetElement","DependencyStore","Tolgee","currentLang","fallbackLang","fallbackPreloading","preloadFallback","isStaticDataProvided","getScopes"],"mappings":"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QACL,QAKZX,EAAO7X,UAAUuZ,UAAY,WACzB,MAAQhZ,KAAKiY,SAAWb,GAAcpX,KAAKkY,SACvClY,KAAK4Y,QAObtB,EAAO7X,UAAU6Y,KAAO,WACpB,GAAItY,KAAKiY,QACL,OAAO,KAEX,IAAI/N,EAAOlK,KAAKkY,OACZX,EAASvX,KAAKuX,SACdqH,EAAW5e,KAAK8N,QAAQiJ,WAAWQ,GAAUrN,GAAQ,MAAU,EAAI,IACvE,OAAO0U,MAAAA,EAA2CA,EAAW,MAE1DtH,KAQX,SAASmB,GAASsB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,GA+BzC,SAAS3C,GAAcD,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,EAMR,SAASE,GAAiBF,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,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,SAAS0H,GAAcC,GACnBA,EAAIzR,SAAQ,SAAUkC,GAElB,UADOA,EAAG5B,SACNuC,EAAgBX,IAAOa,EAAgBb,GACvC,IAAK,IAAIoH,KAAKpH,EAAGoE,eACNpE,EAAGoE,QAAQgD,GAAGhJ,SACrBkR,GAActP,EAAGoE,QAAQgD,GAAGtV,YAG3BuO,EAAgBL,IAAOmB,EAAiBnB,EAAGiE,SAG1C1D,EAAcP,IAAOS,EAAcT,KACzCoB,EAAmBpB,EAAGiE,cAHfjE,EAAGiE,MAAM7F,SAMX6C,EAAajB,IAClBsP,GAActP,EAAG4J,aAItB,SAASnR,GAAM8F,EAASiR,QACd,IAATA,IAAmBA,EAAO,IAC9BA,EAAO5e,EAAS,CAAEyX,sBAAsB,EAAMD,qBAAqB,GAAQoH,GAC3E,IAAIrd,EAAS,IAAI4V,GAAOxJ,EAASiR,GAAM/W,QACvC,GAAItG,EAAO0W,IAAK,CACZ,IAAI9U,EAAQ0b,YAAYlZ,EAAUpE,EAAO0W,IAAImG,OAK7C,MAHAjb,EAAMqK,SAAWjM,EAAO0W,IAAIzK,SAE5BrK,EAAM2b,gBAAkBvd,EAAO0W,IAAItK,QAC7BxK,EAKV,OAHMyb,MAAAA,OAAmC,EAASA,EAAKG,kBACnDL,GAAcnd,EAAO2W,KAElB3W,EAAO2W,ICrCH,SAAS8G,GAAQC,EAAIzL,GAChC,IAAI0L,EAAQ1L,GAAWA,EAAQ0L,MAAQ1L,EAAQ0L,MAAQC,GACnDC,EAAa5L,GAAWA,EAAQ4L,WAAa5L,EAAQ4L,WAAaC,GAEtE,OADe7L,GAAWA,EAAQ8L,SAAW9L,EAAQ8L,SAAWC,IAChDN,EAAI,CAChBC,MAAOA,EACPE,WAAYA,IASpB,SAASI,GAAQP,EAAIC,EAAOE,EAAYK,GACpC,IAJiBve,EAIbwe,EAHa,OADAxe,EAIUue,IAHe,iBAAVve,GAAuC,kBAAVA,EAG3Bue,EAAML,EAAWK,GAC/CE,EAAgBT,EAAMvY,IAAI+Y,GAK9B,YAJ6B,IAAlBC,IACPA,EAAgBV,EAAGzf,KAAKK,KAAM4f,GAC9BP,EAAM7Y,IAAIqZ,EAAUC,IAEjBA,EAEX,SAASC,GAASX,EAAIC,EAAOE,GACzB,IAAI3a,EAAOrF,MAAME,UAAUmE,MAAMjE,KAAKc,UAAW,GAC7Cof,EAAWN,EAAW3a,GACtBkb,EAAgBT,EAAMvY,IAAI+Y,GAK9B,YAJ6B,IAAlBC,IACPA,EAAgBV,EAAGze,MAAMX,KAAM4E,GAC/Bya,EAAM7Y,IAAIqZ,EAAUC,IAEjBA,EAEX,SAASE,GAASZ,EAAIa,EAASR,EAAUJ,EAAOa,GAC5C,OAAOT,EAASU,KAAKF,EAASb,EAAIC,EAAOa,GAE7C,SAASR,GAAgBN,EAAIzL,GAEzB,OAAOqM,GAASZ,EAAIpf,KADS,IAAdof,EAAG1e,OAAeif,GAAUI,GACPpM,EAAQ0L,MAAMnf,SAAUyT,EAAQ4L,YAWxE,IAAIC,GAAoB,WACpB,OAAOzX,KAAKG,UAAUzH,YAK1B,SAAS2f,KACLpgB,KAAKqf,MAAQjgB,OAAOc,OAAO,MAE/BkgB,GAA4B3gB,UAAUqH,IAAM,SAAUwE,GAClD,OAAOtL,KAAKqf,MAAM/T,IAEtB8U,GAA4B3gB,UAAU+G,IAAM,SAAU8E,EAAKjK,GACvDrB,KAAKqf,MAAM/T,GAAOjK,GAEtB,ICnEWgf,GDmEPf,GAAe,CACfpf,OAAQ,WAEJ,OAAO,IAAIkgB,KAGRE,GAAa,CACpBP,SA/BJ,SAA0BX,EAAIzL,GAC1B,OAAOqM,GAASZ,EAAIpf,KAAM+f,GAAUpM,EAAQ0L,MAAMnf,SAAUyT,EAAQ4L,aA+BpEI,QA7BJ,SAAyBP,EAAIzL,GACzB,OAAOqM,GAASZ,EAAIpf,KAAM2f,GAAShM,EAAQ0L,MAAMnf,SAAUyT,EAAQ4L,eC9CvE,SAAWc,GAEPA,EAAyB,cAAI,gBAE7BA,EAAyB,cAAI,gBAE7BA,EAA4B,iBAAI,mBANpC,CAOGA,KAAcA,GAAY,KAC7B,ICRWE,GDQPC,GAA6B,SAAUrW,GAEvC,SAASqW,EAAYC,EAAKvW,EAAM+U,GAC5B,IAAIrV,EAAQO,EAAOxK,KAAKK,KAAMygB,IAAQzgB,KAGtC,OAFA4J,EAAMM,KAAOA,EACbN,EAAMqV,gBAAkBA,EACjBrV,EAKX,OAVAhK,EAAU4gB,EAAarW,GAOvBqW,EAAY/gB,UAAUihB,SAAW,WAC7B,MAAO,oBAAsB1gB,KAAKkK,KAAO,KAAOlK,KAAK8N,SAElD0S,GACTzb,OAEE4b,GAAmC,SAAUxW,GAE7C,SAASwW,EAAkBC,EAAYvf,EAAOsS,EAASsL,GACnD,OAAO9U,EAAOxK,KAAKK,KAAM,uBAA0B4gB,EAAa,OAAWvf,EAAQ,mBAAuBjC,OAAO+N,KAAKwG,GAASjH,KAAK,QAAU,IAAM2T,GAAUQ,cAAe5B,IAAoBjf,KAErM,OAJAJ,EAAU+gB,EAAmBxW,GAItBwW,GACTH,IAEEM,GAAuC,SAAU3W,GAEjD,SAAS2W,EAAsBzf,EAAOmO,EAAMyP,GACxC,OAAO9U,EAAOxK,KAAKK,KAAM,cAAiBqB,EAAQ,qBAAwBmO,EAAM6Q,GAAUQ,cAAe5B,IAAoBjf,KAEjI,OAJAJ,EAAUkhB,EAAuB3W,GAI1B2W,GACTN,IAEEO,GAAmC,SAAU5W,GAE7C,SAAS4W,EAAkBH,EAAY3B,GACnC,OAAO9U,EAAOxK,KAAKK,KAAM,qCAAwC4gB,EAAa,qCAAyC3B,EAAkB,IAAMoB,GAAUW,cAAe/B,IAAoBjf,KAEhM,OAJAJ,EAAUmhB,EAAmB5W,GAItB4W,GACTP,ICtBK,SAASS,GAAqB1R,GACjC,MAAqB,mBAAPA,EAGX,SAAS2R,GAAcpC,EAAKqC,EAASC,EAAYC,EAAS1b,EAAQ2b,EAEzErC,GAEI,GAAmB,IAAfH,EAAIpe,QAAgB4O,EAAiBwP,EAAI,IACzC,MAAO,CACH,CACItP,KAAM+Q,GAAU9Q,QAChBpO,MAAOyd,EAAI,GAAGzd,QAK1B,IADA,IAAIK,EAAS,GACJiD,EAAK,EAAG4c,EAAQzC,EAAKna,EAAK4c,EAAM7gB,OAAQiE,IAAM,CACnD,IAAI4K,EAAKgS,EAAM5c,GAEf,GAAI2K,EAAiBC,GACjB7N,EAAOqB,KAAK,CACRyM,KAAM+Q,GAAU9Q,QAChBpO,MAAOkO,EAAGlO,aAMlB,GAAIiP,EAAef,GACmB,iBAAvB+R,GACP5f,EAAOqB,KAAK,CACRyM,KAAM+Q,GAAU9Q,QAChBpO,MAAO+f,EAAWI,gBAAgBL,GAASM,OAAOH,SAJ9D,CASA,IAAII,EAAUnS,EAAGlO,MAEjB,IAAMsE,KAAU+b,KAAW/b,GACvB,MAAM,IAAIob,GAAkBW,EAASzC,GAEzC,IAAI5d,EAAQsE,EAAO+b,GACnB,GAAIhS,EAAkBH,GACblO,GAA0B,iBAAVA,GAAuC,iBAAVA,IAC9CA,EACqB,iBAAVA,GAAuC,iBAAVA,EAC9BvB,OAAOuB,GACP,IAEdK,EAAOqB,KAAK,CACRyM,KAAuB,iBAAVnO,EAAqBkf,GAAU9Q,QAAU8Q,GAAUoB,OAChEtgB,MAAOA,SAOf,GAAIyO,EAAcP,GAAlB,CACI,IAAIiE,EAA4B,iBAAbjE,EAAGiE,MAChB6N,EAAQtR,KAAKR,EAAGiE,OAChB7C,EAAmBpB,EAAGiE,OAClBjE,EAAGiE,MAAMiI,mBACTpX,EACV3C,EAAOqB,KAAK,CACRyM,KAAM+Q,GAAU9Q,QAChBpO,MAAO+f,EACFQ,kBAAkBT,EAAS3N,GAC3BiO,OAAOpgB,UAIpB,GAAI2O,EAAcT,GAAlB,CACQiE,EAA4B,iBAAbjE,EAAGiE,MAChB6N,EAAQpR,KAAKV,EAAGiE,OAChB7C,EAAmBpB,EAAGiE,OAClBjE,EAAGiE,MAAMiI,mBACTpX,EACV3C,EAAOqB,KAAK,CACRyM,KAAM+Q,GAAU9Q,QAChBpO,MAAO+f,EACFQ,kBAAkBT,EAAS3N,GAC3BiO,OAAOpgB,UAIpB,GAAIuO,EAAgBL,GAApB,EACQiE,EAA4B,iBAAbjE,EAAGiE,MAChB6N,EAAQxR,OAAON,EAAGiE,OAClB9C,EAAiBnB,EAAGiE,OAChBjE,EAAGiE,MAAMiI,mBACTpX,IACGmP,EAAMC,QACfpS,GAESmS,EAAMC,OAAS,GAE5B/R,EAAOqB,KAAK,CACRyM,KAAM+Q,GAAU9Q,QAChBpO,MAAO+f,EACFI,gBAAgBL,EAAS3N,GACzBiO,OAAOpgB,SAfpB,CAmBA,GAAImP,EAAajB,GAAK,CAClB,IAAI4J,EAAW5J,EAAG4J,SAAU0I,EAAUtS,EAAGlO,MACrCygB,EAAWnc,EAAOkc,GACtB,IAAKZ,GAAqBa,GACtB,MAAM,IAAIhB,GAAsBe,EAAS,WAAY5C,GAEzD,IACI8C,EAASD,EADDZ,GAAc/H,EAAUgI,EAASC,EAAYC,EAAS1b,EAAQ2b,GAC9C7U,KAAI,SAAUjN,GAAK,OAAOA,EAAE6B,UACnD9B,MAAMyiB,QAAQD,KACfA,EAAS,CAACA,IAEdrgB,EAAOqB,KAAKpC,MAAMe,EAAQqgB,EAAOtV,KAAI,SAAU0K,GAC3C,MAAO,CACH3H,KAAmB,iBAAN2H,EAAiBoJ,GAAU9Q,QAAU8Q,GAAUoB,OAC5DtgB,MAAO8V,OAInB,GAAIjH,EAAgBX,GAApB,CAEI,KADI2D,EAAM3D,EAAGoE,QAAQtS,IAAUkO,EAAGoE,QAAQsO,OAEtC,MAAM,IAAItB,GAAkBpR,EAAGlO,MAAOA,EAAOjC,OAAO+N,KAAKoC,EAAGoE,SAAUsL,GAE1Evd,EAAOqB,KAAKpC,MAAMe,EAAQwf,GAAchO,EAAI7R,MAAO8f,EAASC,EAAYC,EAAS1b,SAGrF,GAAIyK,EAAgBb,GAApB,CACI,IAAI2D,EACJ,KADIA,EAAM3D,EAAGoE,QAAQ,IAAMtS,IACjB,CACN,IAAK6gB,KAAKC,YACN,MAAM,IAAI3B,GAAY,kHAAqHH,GAAU+B,iBAAkBnD,GAE3K,IAAIoD,EAAOjB,EACNkB,eAAenB,EAAS,CAAE3R,KAAMD,EAAG6M,aACnCjM,OAAO9O,GAASkO,EAAGgI,QAAU,IAClCrE,EAAM3D,EAAGoE,QAAQ0O,IAAS9S,EAAGoE,QAAQsO,MAEzC,IAAK/O,EACD,MAAM,IAAIyN,GAAkBpR,EAAGlO,MAAOA,EAAOjC,OAAO+N,KAAKoC,EAAGoE,SAAUsL,GAE1Evd,EAAOqB,KAAKpC,MAAMe,EAAQwf,GAAchO,EAAI7R,MAAO8f,EAASC,EAAYC,EAAS1b,EAAQtE,GAASkO,EAAGgI,QAAU,aAIvH,OAxKJ,SAAsBgL,GAClB,OAAIA,EAAM7hB,OAAS,EACR6hB,EAEJA,EAAMxV,QAAO,SAAUvD,EAAKgZ,GAC/B,IAAIC,EAAWjZ,EAAIA,EAAI9I,OAAS,GAShC,OARK+hB,GACDA,EAASjT,OAAS+Q,GAAU9Q,SAC5B+S,EAAKhT,OAAS+Q,GAAU9Q,QAIxBgT,EAASphB,OAASmhB,EAAKnhB,MAHvBmI,EAAIzG,KAAKyf,GAKNhZ,IACR,IAyJIkZ,CAAahhB,GC5JxB,SAASihB,GAAaC,EAAeC,GACjC,OAAKA,EAGEzjB,OAAO+N,KAAKyV,GAAe7V,QAAO,SAAUvD,EAAKmN,GAb5D,IAAqBmM,EAAIC,EAejB,OADAvZ,EAAImN,IAdSmM,EAcQF,EAAcjM,IAdlBoM,EAcsBF,EAAQlM,IAV5CxW,EAASA,EAASA,EAAS,GAAK2iB,GAAM,IAAOC,GAAM,IAAM3jB,OAAO+N,KAAK2V,GAAI/V,QAAO,SAAUvD,EAAKmN,GAElG,OADAnN,EAAImN,GAAKxW,EAASA,EAAS,GAAI2iB,EAAGnM,IAAMoM,EAAGpM,IAAM,IAC1CnN,IACR,KALQsZ,GAaAtZ,IACRrJ,EAAS,GAAIyiB,IALLA,EAOf,SAASI,GAAuBC,GAC5B,MAAO,CACH/iB,OAAQ,WACJ,MAAO,CACH4G,IAAK,SAAUwE,GACX,OAAO2X,EAAM3X,IAEjB9E,IAAK,SAAU8E,EAAKjK,GAChB4hB,EAAM3X,GAAOjK,ODjCjC,SAAWkf,GACPA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAkB,OAAI,GAAK,SAFzC,CAGGA,KAAcA,GAAY,KC8E7B,OAAuC,WACnC,SAAS2C,EAAkBpV,EAASqT,EAASgC,EAAiBpE,GAC1D,IA5CyBM,EA4CrBzV,EAAQ5J,KAoCZ,QAnCgB,IAAZmhB,IAAsBA,EAAU+B,EAAkBE,eACtDpjB,KAAKqjB,eAAiB,CAClBxT,OAAQ,GACRe,SAAU,GACV0S,YAAa,IAEjBtjB,KAAKyhB,OAAS,SAAU9b,GACpB,IAAI4c,EAAQ3Y,EAAMsX,cAAcvb,GAEhC,GAAqB,IAAjB4c,EAAM7hB,OACN,OAAO6hB,EAAM,GAAGlhB,MAEpB,IAAIK,EAAS6gB,EAAMxV,QAAO,SAAUvD,EAAKgZ,GASrC,OARKhZ,EAAI9I,QACL8hB,EAAKhT,OAAS+Q,GAAU9Q,SACO,iBAAxBjG,EAAIA,EAAI9I,OAAS,GAIxB8I,EAAIA,EAAI9I,OAAS,IAAM8hB,EAAKnhB,MAH5BmI,EAAIzG,KAAKyf,EAAKnhB,OAKXmI,IACR,IACH,OAAI9H,EAAOhB,QAAU,EACVgB,EAAO,IAAM,GAEjBA,GAEX1B,KAAKkhB,cAAgB,SAAUvb,GAC3B,OAAOub,GAActX,EAAM2Z,IAAK3Z,EAAMuX,QAASvX,EAAMwX,WAAYxX,EAAMyX,QAAS1b,OAAQtB,EAAWuF,EAAMkE,UAE7G9N,KAAKwjB,gBAAkB,WAAc,OACjCC,OAAQvB,KAAKwB,aAAaC,mBAAmB/Z,EAAMuX,SAAS,KAEhEnhB,KAAK4jB,OAAS,WAAc,OAAOha,EAAM2Z,KAClB,iBAAZzV,EAAsB,CAE7B,GADA9N,KAAK8N,QAAUA,GACVoV,EAAkBW,QACnB,MAAM,IAAIhkB,UAAU,+EAGxBG,KAAKujB,IAAML,EAAkBW,QAAQ/V,EAAS,CAC1C4J,UAAWqH,MAAAA,OAAmC,EAASA,EAAKrH,iBAIhE1X,KAAKujB,IAAMzV,EAEf,IAAKvO,MAAMyiB,QAAQhiB,KAAKujB,KACpB,MAAM,IAAI1jB,UAAU,kDAIxBG,KAAKqhB,QAAUsB,GAAaO,EAAkB7B,QAAS8B,GAEvDnjB,KAAKmhB,QAAUA,EACfnhB,KAAKohB,WACArC,GAAQA,EAAKqC,kBArGR,KADe/B,EAsGgCrf,KAAKqjB,kBArG1ChE,EAAQ,CAC5BxP,OAAQ,GACRe,SAAU,GACV0S,YAAa,KAEV,CACH9B,gBAAiBrC,IAAQ,WAGrB,IAFA,IAAIza,EACAE,EAAO,GACFD,EAAK,EAAGA,EAAKlE,UAAUC,OAAQiE,IACpCC,EAAKD,GAAMlE,UAAUkE,GAEzB,OAAO,KAAMD,EAAKwd,KAAKwB,cAAcvD,KAAKxf,MAAM+D,EAAInB,EAAc,MAAC,GAASqB,OAC7E,CACCya,MAAO2D,GAAuB3D,EAAMxP,QACpC4P,SAAUa,GAAWP,WAEzB6B,kBAAmBzC,IAAQ,WAGvB,IAFA,IAAIza,EACAE,EAAO,GACFD,EAAK,EAAGA,EAAKlE,UAAUC,OAAQiE,IACpCC,EAAKD,GAAMlE,UAAUkE,GAEzB,OAAO,KAAMD,EAAKwd,KAAK4B,gBAAgB3D,KAAKxf,MAAM+D,EAAInB,EAAc,MAAC,GAASqB,OAC/E,CACCya,MAAO2D,GAAuB3D,EAAMzO,UACpC6O,SAAUa,GAAWP,WAEzBuC,eAAgBnD,IAAQ,WAGpB,IAFA,IAAIza,EACAE,EAAO,GACFD,EAAK,EAAGA,EAAKlE,UAAUC,OAAQiE,IACpCC,EAAKD,GAAMlE,UAAUkE,GAEzB,OAAO,KAAMD,EAAKwd,KAAKC,aAAahC,KAAKxf,MAAM+D,EAAInB,EAAc,MAAC,GAASqB,OAC5E,CACCya,MAAO2D,GAAuB3D,EAAMiE,aACpC7D,SAAUa,GAAWP,aA6I7B,OA3EA3gB,OAAOmH,eAAe2c,EAAmB,gBAAiB,CACtDpc,IAAK,WAKD,OAJKoc,EAAkBa,wBACnBb,EAAkBa,uBACd,IAAI7B,KAAKwB,cAAeF,kBAAkBC,QAE3CP,EAAkBa,uBAE7BC,YAAY,EACZC,cAAc,IAElBf,EAAkBa,sBAAwB,KAC1Cb,EAAkBW,QAAU7b,GAI5Bkb,EAAkB7B,QAAU,CACxBxR,OAAQ,CACJqU,QAAS,CACLrQ,sBAAuB,GAE3BH,SAAU,CACNF,MAAO,YAEX2Q,QAAS,CACL3Q,MAAO,YAGfzD,KAAM,CACFqU,MAAO,CACH/S,MAAO,UACPC,IAAK,UACLH,KAAM,WAEVkT,OAAQ,CACJhT,MAAO,QACPC,IAAK,UACLH,KAAM,WAEVmT,KAAM,CACFjT,MAAO,OACPC,IAAK,UACLH,KAAM,WAEVoT,KAAM,CACFhT,QAAS,OACTF,MAAO,OACPC,IAAK,UACLH,KAAM,YAGdlB,KAAM,CACFmU,MAAO,CACH1S,KAAM,UACNC,OAAQ,WAEZ0S,OAAQ,CACJ3S,KAAM,UACNC,OAAQ,UACRC,OAAQ,WAEZ0S,KAAM,CACF5S,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,SAElB0S,KAAM,CACF7S,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,WAInBqR,mBChNT,WACU7Y,EACAma,GAFV,WACUxkB,gBAAAqK,EACArK,wBAAAwkB,EAuGOxkB,YAAS,SACxBsN,EACAmX,GAEA,IACE,OAAO,IAAIvB,GACT5V,EACA1D,EAAKS,WAAW1C,iBAChB8Z,OAAOgD,GACT,MAAOjjB,GACP,GAAe,kBAAXA,EAAE0I,KAGJ,OADAtD,QAAQoD,KAAKxI,EAAEsM,SACRR,IAKItN,qBAAkB,SAACyL,GAClC,OAAOA,EAAO/C,QAAQ,sBAAuB,SAa9B1I,iBAAc,SAAC0kB,GAC9B,MAAqB,iBAAVA,EACFA,EAAMhc,QAAQ,WAAY,QAEd,iBAAVgc,GAAuC,iBAAVA,EAC/BA,EAAMhE,YAGf9Z,QAAQoD,KAAK0a,GAEb9d,QAAQoD,KACN,yEAEK0a,IAEX,OAnJQC,sBAAN,SACErZ,EACAmZ,EACAtW,EACAJ,uBADAI,EAAOnO,KAAKqK,WAAW1C,0GAIrB,OADKjD,EAAA1E,KAAKyhB,UACJzhB,KAAKwkB,mBAAmBI,eAAetZ,EAAK6C,EAAMJ,WAD1D,SAAOrJ,QAAA1E,MACLoJ,SACAqb,aAIJE,oBAAA,SACErZ,EACAmZ,EACAtW,EACAJ,GAEA,oBAHAI,EAAOnO,KAAKqK,WAAW1C,iBAGhB3H,KAAKyhB,OACVzhB,KAAKwkB,mBAAmBK,uBAAuBvZ,EAAK6C,EAAMJ,GAC1D0W,IAIEE,oBAAN,SAAc1Y,+HACN6Y,EAAc,IAAIrQ,OAAOzU,KAAK+kB,eAAgB,MAE9CC,EAAgC,GAElCC,GAAU,EAGVpQ,EAAQ,EACRnT,EAAS,2BAC+B,QAApCwK,EAAQ4Y,EAAY3O,KAAKlK,WACzBvH,EAAAvB,EAAuC+I,KAAtCgZ,OAAWC,OAAKC,OAASC,OAMxBzO,EAAiB1K,QAAV9F,EAAU8F,QACzBxK,GAAU0E,EAAMkf,OAAOzQ,EAAO+B,EAAQ/B,GACtCA,EAAQ+B,EAAQsO,EAAUxkB,OACd,OAARykB,GAAiB3Z,EAAWI,cAAcgL,EAAO3K,MAI5BjM,KAAKulB,0BAA0BF,KAHtD3jB,GAAU0jB,wBAGNI,EAAapc,SACnB4b,EAAcjiB,KAAK,CAAEuI,IAAKka,EAAWla,IAAKmZ,OAAQe,EAAWf,SAC7DQ,GAAU,EACVvjB,GAAUyjB,EAAMK,EAAWA,wBAO7B,OAJA9jB,GAAUuK,EAAKwZ,UAAU5Q,GAEnB6Q,EAAiBla,EAAWK,cAAcnK,GAE5CujB,KACK,CAAEhZ,KAAMyZ,EAAgBvY,KAAM6X,YAGhC3gB,WAGFsgB,iBAAP,SAAYrZ,EAAamZ,GAAzB,wBAAyBA,MACvB,IAAIkB,EAAcvmB,OAAOgO,QAAQqX,GAC9BhY,KACC,SAAC/H,OAAA0E,EAAAjG,OAACyiB,OAAMvkB,OACN,OAAGuI,EAAKic,YAAYD,OAAShc,EAAKic,YAAYxkB,MAEjDqL,KAAK,KAER,OADAiZ,EAAcA,EAAYjlB,OAAS,IAAIilB,EAAgB,GAChD,GAAG3lB,KAAKqK,WAAWnE,OAAO4f,YAAc9lB,KAAK6lB,YAClDva,GACEqa,EAAc3lB,KAAKqK,WAAWnE,OAAO6f,aAG7BpB,sCAAd,SACE1Y,uGAGmB,OADbvH,EAAkBigB,EAAYqB,eAAe/Z,GAA3CX,QAAKmZ,cACYzkB,KAAKimB,UAAU3a,EAAKmZ,OAAQpgB,GAAW,WAChE,SAAO,CAAEmhB,WADUpc,SACEkC,IAAKA,EAAKmZ,mBAGlBE,iBAAf,SAA8BuB,GAO5B,IANA,IAAMC,EAAUD,EAAgBha,MAAM,uBAChCxK,EAAS,CACb4J,IAAKE,EAAWK,cAAcsa,EAAQC,SACtC3B,OAAQ,IAGH0B,EAAQzlB,QAAQ,CACf,IAAAgE,EAAAvB,EAAgBgjB,EAAQE,OAAO,EAAG,MAAjCC,OAAMjlB,OACbK,EAAO+iB,OAAO6B,GAAQjlB,EAExB,OAAOK,GAyBTtC,sBAAYulB,kCAAZ,WAOE,MAAO,WANe3kB,KAAKumB,gBACzBvmB,KAAKqK,WAAWnE,OAAO4f,qBAEH9lB,KAAKumB,gBACzBvmB,KAAKqK,WAAWnE,OAAO6f,qECnI3B,WAAoB1b,GAAArK,gBAAAqK,EARZrK,cAAW,IAAI8H,IACf9H,aAAgC,IAAI8H,IAGpC9H,oBAAiB,IAAIgJ,EACrBhJ,iBACN,IAAIgJ,EAGkB,oBAAXb,QACTnI,KAAKwmB,kBA8IX,OAzIEC,mBAAA,SACEthB,EACAuhB,GAFF,WAIMvhB,EAAQwhB,QAAQC,yBAElBhgB,QAAQtD,MACN,8EAIJ6B,EAAQwhB,QAAQC,0BAA2B,EAE3C5mB,KAAK6mB,mBAAmB1hB,EAASuhB,GAEjC1mB,KAAK8mB,eAAeC,WAAU,WACxBnd,EAAKod,cAAgBpd,EAAKqd,cAC5Brd,EAAKsd,yBAITlnB,KAAKmnB,YAAYJ,WAAU,WACzBnd,EAAKsd,2BAIDT,+BAAR,SACEthB,EACAuhB,GAFF,WAIQU,EAAc,WAAM,OAAAxd,EAAKwd,YAAYjiB,IACrCkiB,EAAa,WAAM,OAAAzd,EAAKyd,WAAWliB,IACnCmiB,EAAU,SAAC9lB,GACXoI,EAAK2d,gBACP/lB,EAAEgmB,kBACFhmB,EAAEimB,iBACFf,EAAQllB,KAGZ2D,EAAQuiB,iBAAiB,YAAaN,GACtCjiB,EAAQuiB,iBAAiB,QAASJ,GAElC,IAAMK,EAAkB,SAACnmB,GACnBoI,EAAK2d,gBACP/lB,EAAEgmB,kBACFhmB,EAAEimB,mBAINtiB,EAAQuiB,iBAAiB,YAAaC,GACtCxiB,EAAQuiB,iBAAiB,UAAWC,GACpCxiB,EAAQuiB,iBAAiB,WAAYL,GAErCliB,EAAQwhB,QAAQiB,wBAA0B,WACxCziB,EAAQ0iB,oBAAoB,YAAaF,GACzCxiB,EAAQ0iB,oBAAoB,UAAWF,GACvCxiB,EAAQ0iB,oBAAoB,YAAaT,GACzCjiB,EAAQ0iB,oBAAoB,QAASP,GACrCniB,EAAQ0iB,oBAAoB,WAAYR,KAIpCZ,gCAAR,WACEzmB,KAAK8nB,cACD9nB,KAAKunB,eAAiBvnB,KAAKinB,cAC7BjnB,KAAK+nB,aAIDtB,sBAAR,WACEzmB,KAAKgoB,kCACHhoB,KAAKinB,aAAazT,MAAMyU,gBAC1BjoB,KAAKinB,aAAazT,MAAMyU,gBACtBjoB,KAAKqK,WAAWnE,OAAOgiB,eACzBloB,KAAKgnB,YAAchnB,KAAKinB,cAGlBR,wBAAR,WACMzmB,KAAKgnB,cACPhnB,KAAKgnB,YAAYxT,MAAMyU,gBACrBjoB,KAAKgoB,kCACPhoB,KAAKgnB,YAAc,OAIfP,uBAAR,SAAmBthB,GACjBnF,KAAKmoB,QAAQpe,OAAO5E,GACpBnF,KAAK8mB,eAAevY,KAAKvO,KAAKinB,eAGxBR,wBAAR,SAAoBthB,GAClBnF,KAAKooB,gBACLpoB,KAAKmoB,QAAQpe,OAAO5E,GACpBnF,KAAKmoB,QAAQpK,IAAI5Y,GACjBnF,KAAK8mB,eAAevY,KAAKvO,KAAKinB,eAGxBR,uBAAR,WACE,IAAM4B,EAAe9oB,MAAMkE,KAAKzD,KAAKmoB,SACrC,OAAOE,EAAa3nB,OAAS2nB,EAAa,QAAKhkB,GAGzCoiB,4BAAR,WAAA,WACEte,OAAOuf,iBAAiB,QAAQ,WAC9B9d,EAAK0e,SAAW,IAAIxgB,IACpB8B,EAAKud,YAAY5Y,KAAK3E,EAAK2d,kBAG7Bpf,OAAOuf,iBAAiB,WAAW,SAAClmB,GAClC,IAAM+mB,EAAczkB,oBAAYtC,EAAE8J,UACdjH,IAAhBkkB,IACF3e,EAAK0e,SAASvK,IAAIwK,GAClB3e,EAAKud,YAAY5Y,KAAK3E,EAAK2d,mBAG/Bpf,OAAOuf,iBAAiB,SAAS,SAAClmB,GAChCoI,EAAK0e,SAASve,OAAOjG,oBAAYtC,EAAE8J,MACnC1B,EAAKud,YAAY5Y,KAAK3E,EAAK2d,mBAIvBd,0BAAR,WAAA,WACEzmB,KAAKmoB,QAAQ9a,SAAQ,SAACkC,GACfpL,SAASqB,SAAS+J,IACrB3F,EAAKue,QAAQpe,OAAOwF,OAKlBkX,wBAAR,uBACE,IAAkB,IAAArd,EAAApG,EAAAhD,KAAKqK,WAAWnE,OAAOsiB,6CAAe,CAAnD,IAAMld,UACT,IAAKtL,KAAKsoB,SAAS7K,IAAInS,GACrB,OAAO,oGAGX,OAAO,sBClJT,WACUmd,EACApe,EACAgC,EACAmY,EACAkE,GALV,WACU1oB,aAAAyoB,EACAzoB,gBAAAqK,EACArK,kBAAAqM,EACArM,wBAAAwkB,EACAxkB,uBAAA0oB,EAkCF1oB,qBAAkB,SAAOwB,EAAe2D,sGACjB,iBAAlBnF,KAAK2oB,kBACI3oB,KAAK4oB,OAAOpnB,EAAG2D,WACjC,OADMmG,EAAM5G,WAEV1E,KAAK2oB,SAASE,aAAavd,0BAM/B1E,QAAQoD,KACN,gLAkBN,OA5DE8e,mBAAA,SAAO3jB,GAAP,WACEnF,KAAK0oB,kBAAkBK,OACrB5jB,GACA,SAAO3D,0FAAM,SAAMxB,KAAKgpB,gBAAgBxnB,EAAG2D,WAA9B,SAAAT,qBAIHokB,mBAAd,SACEG,EACA9jB,0GAEMgI,EAAO2b,EAAuBI,cAAc/jB,IACzC0R,KAAO,KACD7W,KAAK2oB,SAASC,OAAO,CAAEzb,KAAMA,EAAMgc,UAAWF,kBAA3D,SAAOvkB,iBAET,OAAkB,IAAdyI,EAAK0J,QACAtX,MAAMkE,KAAK0J,GAAM,KAG1BvG,QAAQtD,MAAM,sEAGDwlB,gBAAf,SAA6BtkB,GAC3B,IACM2I,EADQ5N,MAAMkE,KAAKe,EAAKmiB,QAAQyC,OACnBrc,QACjB,SAACC,EAAKC,GAAS,gBAAID,MAAQC,EAAK0Z,QAAQxZ,KAAKV,KAAI,SAACkK,GAAM,OAAAA,EAAErL,WAC1D,IAEF,OAAO,IAAIxD,IAAIqF,IAmBjB/N,sBAAY0pB,4BAAZ,WAWE,YAVuBzkB,IAAnBrE,KAAKqpB,WACkC,mBAA9BrpB,KAAKqK,WAAWnE,OAAOojB,KAChCtpB,KAAKqpB,UAAY,IAAIrpB,KAAKqK,WAAWnE,OAAOojB,GAAG,CAC7Cnd,YAAanM,KAAKyoB,QAClBpe,WAAYrK,KAAKqK,WACjBgC,aAAcrM,KAAKqM,aACnBmY,mBAAoBxkB,KAAKwkB,sBAIxBxkB,KAAKqpB,8DCnEd,WACUhf,EACAkf,GADAvpB,gBAAAqK,EACArK,4BAAAupB,EAJFvpB,wBAA2C,IAAI8H,IA+DzD,OAxDE0hB,qBAAA,SAASrkB,QAE2Cd,IAA9CrE,KAAKypB,eAAetkB,GAAS5D,OAAOF,QAIN,gBAAhCrB,KAAKqK,WAAWnE,OAAOa,MACtB/G,KAAK0pB,mBAAmBjM,IAAItY,IAE7BnF,KAAKupB,uBAAuBI,OAAOxkB,GAErCnF,KAAK0pB,mBAAmB3L,IAAI5Y,KAG9BqkB,uBAAA,uBACE,IAAsB,IAAApgB,EAAApG,EAAAhD,KAAK0pB,kDAAoB,CAA1C,IAAMvkB,UACTnF,KAAK4pB,0BAA0BzkB,GACI,IAA/BA,EAAQwhB,QAAQyC,MAAMvS,MACxB7W,KAAK6pB,aAAa1kB,uGAKxBqkB,qBAAA,uBACE,IAAgC,IAAApgB,EAAApG,EAAAhD,KAAK0pB,kDAAoB,CAApD,IAAMI,UACT9pB,KAAK6pB,aAAaC,uGAIdN,sCAAR,SAAkCrkB,GAC5BnF,KAAK+pB,gBAAgB5kB,KACvBA,EAAQwhB,QAAQyC,MAAQ,IAAIthB,IAAI9H,KAAKypB,eAAetkB,MAKhDqkB,yBAAR,SAAqBrkB,GACoC,mBAA5CA,EAAQwhB,QAAQiB,yBACzBziB,EAAQwhB,QAAQiB,0BAElBziB,EAAQG,gB5BpDyB,kB4BqD1BH,EAAQwhB,QACf3mB,KAAK0pB,mBAAmB3f,OAAO5E,IAGxBqkB,2BAAT,SAAwBrkB,4FACHT,EAAA1B,EAAAmC,EAAQwhB,QAAQyC,wDAAxB5kB,UACLT,EAAWimB,aAAahqB,KAAKqK,WAAWnE,OAAOO,cAAejC,MAC1DA,iBAANylB,0NAKET,4BAAR,SAAwBrkB,GACtB,OAAOnF,KAAKqK,WAAWnE,OAAOO,cAAcjB,SAASL,uBChDvD,WACYkF,EACA6f,EACAC,EACAZ,GAHAvpB,gBAAAqK,EACArK,iBAAAkqB,EACAlqB,sBAAAmqB,EACAnqB,4BAAAupB,EAqHd,OAlHiBa,oBAAf,SAAiCjlB,GAQ/B,YAPuCd,IAAnCc,EAA6B,UAC/BA,EAA6B,QAAI,CAC/BikB,MAAO,IAAIthB,KAEb3C,EAAQE,a7B9BuB,U6B8Ba,KAGvCF,GAKCilB,6BAAV,SAAqDhB,GACnD,IAAMiB,EAAqBrqB,KAAKqK,WAAWnE,OAAOmkB,mBAClD,OAAOjB,EAAMxM,QAAO,SAACpc,GACnB,IAAMgB,EAAIuC,EAAWumB,eAAe9pB,GACpC,OAC2D,IAAzD6pB,EAAmBxkB,QAAQrE,EAAEsX,QAAQyR,gBACuB,OAA5D/oB,EAAEgpB,QAAQ,uCAKAJ,wBAAhB,SAA4BhB,gJACHqB,EAAAznB,EAAAomB,yDACmB/kB,KAD/BqmB,WACyB,UAChCA,EAA8B,QAAI,KAMT,KAAvBC,OAJEA,EAAaD,EAA8B,gBAI7CC,EAAYC,eACd5qB,KAAK6qB,SAASH,MACO1qB,KAAKkqB,YAAYxhB,QAAQgiB,EAASI,wBAAjDppB,EAAS0H,YAEL6C,EAAevK,OAATyL,EAASzL,OACjBqpB,EAAiB/qB,KAAKgrB,mBAAmBN,EAAUze,EAAMkB,IACzDlI,EAAgBjF,KAAKirB,iBAAiBF,IAC9BpE,QAAQyC,MAAMrL,IAAIgN,GAChC/qB,KAAKmqB,iBAAiBe,SAASjmB,IAEjCjF,KAAKmrB,WAAWT,uNAKZN,+BAAV,SACE5lB,EACA4mB,EACAje,GAOA,OALA3I,EAA0B,QAAI,CAC5B6mB,eAAgB7mB,EAAKsmB,YACrB3d,QAEF3I,EAAKsmB,YAAcM,EACZ5mB,GAGD4lB,qBAAR,SAAiB5lB,QACqBH,IAAhCG,EAA0B,UAC5BA,EAA0B,QAAI,IAGhC,IAAMmmB,EAAanmB,EAA0B,QAK7C,OAJ2B,KAAvBmmB,MAAAA,SAAAA,EAAYC,UACdD,EAAWC,QAAS,GAGfpmB,GAGD4lB,uBAAR,SAAmB5lB,GACbA,EAA0B,UAC5BA,EAA0B,QAAEomB,QAAS,IAIjCR,6BAAR,SAAyB5lB,GACvB,IAAM8mB,EAAStrB,KAAKurB,kBAAkB/mB,GACtC,OAAO4lB,EAAgBoB,kBAAkBF,IAGnClB,8BAAR,SAA0B5lB,GACxB,IAAMinB,EAAY1nB,EAAWknB,iBAAiBzmB,GAE9C,QAAkBH,IAAdonB,EAGF,MADA7kB,QAAQtD,MAAMkB,GACR,IAAIO,MAAM,4CAGlB,IAAK/E,KAAKqK,WAAWnE,OAAOwlB,aAC1B,OAAOD,EAGT,GAAIlsB,MAAMyiB,QAAQhiB,KAAKqK,WAAWnE,OAAOwlB,cAAe,CAGtD,IAAsE,IAAlE1rB,KAAKqK,WAAWnE,OAAOwlB,aAAaC,WAFlB,SAACC,GACrB,OAAAH,EAAU3S,QAAQyR,gBAAkBqB,EAAerB,iBAEnD,OAAOkB,EAIX,MAAmD,mBAAxCzrB,KAAKqK,WAAWnE,OAAOwlB,cAC3B1rB,KAAKqK,WAAWnE,OAAOwlB,aAAaD,GAKpCzrB,KAAKurB,kBAAkBE,GAJnBA,uBC/Hb,WACYphB,EACAkf,EACAW,EACA2B,GAJZ,MAME1hB,YAAME,EAAY6f,EAAa2B,EAAetC,gBALpC3f,aAAAS,EACAT,yBAAA2f,EACA3f,cAAAsgB,EACAtgB,gBAAAiiB,IAed,OApBiCjsB,OAUzBksB,mBAAN,SAAatnB,2GAQX,OAPMshB,EAAc9lB,KAAKqK,WAAWnE,OAAO4f,YACrCC,EAAc/lB,KAAKqK,WAAWnE,OAAO6f,YAErCgG,EAAQ,6CAA6CjG,yBAAkCC,QACvFqD,EAAQrlB,EAAWK,SAAS2nB,EAAOvnB,GACnCwnB,EAAmBhsB,KAAKisB,iBAAiB7C,MAEzCppB,KAAKksB,YAAYF,kBAAvBtnB,wBAlB6B0lB,mBCC/B,WACY/f,EACA6f,EACAC,EACAZ,GAJZ,MAMEpf,YAAME,EAAY6f,EAAaC,EAAkBZ,gBALvC3f,aAAAS,EACAT,cAAAsgB,EACAtgB,mBAAAugB,EACAvgB,yBAAA2f,IAmBd,OAxBsC3pB,OAU9BusB,mBAAN,SAAa3nB,qIACLshB,EAAc9lB,KAAKqK,WAAWnE,OAAO4f,YACrCC,EAAc/lB,KAAKqK,WAAWnE,OAAO6f,uDAEXrhB,EAAA1B,EAAA5D,OAAOgO,QACrCpN,KAAKqK,WAAWnE,OAAOkmB,mEADdnd,EAAA9L,aAACsN,OAAK7K,yDAGSymB,EAAArpB,EAAA4C,oDAAb0mB,UACHtoB,EAAa,uBAAuByM,OAAQ6b,mBAA0BxG,yBAAkCC,QACxGqD,EAA4BrlB,EAAWK,SAASJ,EAAYQ,MAC5DxE,KAAKksB,YAAY9C,YAAvBmD,0ZApB8BnC,kBCGpC,WACU3B,EACA+D,EACAngB,EACAhC,EACAoiB,EACAvC,GALAlqB,aAAAyoB,EACAzoB,iBAAAwsB,EACAxsB,kBAAAqM,EACArM,gBAAAqK,EACArK,sBAAAysB,EACAzsB,iBAAAkqB,EAER7d,EAAaqgB,iBAAiB3F,UAAU/mB,KAAK2sB,QAAQxM,KAAKngB,OAC1DqM,EAAaugB,oBAAoB7F,UAAU/mB,KAAK2sB,QAAQxM,KAAKngB,OAwBjE,OArBe6sB,0BAAb,SAA2BC,6FACzB,SAAM9sB,KAAKysB,iBAAiB1D,OAAO+D,WACnC,OADApoB,YACM1E,KAAKwsB,YAAYzD,OAAO+D,kBAA9BpoB,qBAGYmoB,oBAAd,qIACQzD,EAA2BrlB,EAAWK,SAC1C,gBACApE,KAAKqK,WAAWnE,OAAOO,0DAENgkB,EAAAznB,EAAAomB,sDAAR5kB,4DACcE,EAAA1B,EAAAwB,EAAKmiB,QAAQyC,wDAAzBsB,aACY1qB,KAAKkqB,YAAYxhB,QACpCgiB,EAAS/D,QAAQ0E,0BADb3pB,EAASqrB,YAIbrC,EAASI,YAAcppB,EAAOuK,uaC/BtC,WACU5B,EACA2iB,EACAC,EACAR,EACAZ,GAJA7rB,gBAAAqK,EACArK,iBAAAgtB,EACAhtB,sBAAAitB,EACAjtB,sBAAAysB,EACAzsB,mBAAA6rB,EAGF7rB,oBAAYqE,EA4CtB,OA1CEjF,sBAAY8tB,4BAAZ,WAAA,WAqBE,OApBKltB,KAAKmtB,WAA+B,oBAAXhlB,SAC5BnI,KAAKmtB,UAAY,IAAIC,kBACnB,SAAOC,mIACkBC,EAAAtqB,EAAAqqB,mDACC,mBADbE,WACI/d,cACLxP,KAAKitB,iBAAiBlE,OAAOwE,EAAST,gBAC5C,OADA1jB,4BAGoB,cAAlBmkB,EAAS/d,cACLxP,KAAKgtB,YAAYQ,cAAcD,EAAST,gBAC9C,OADA1jB,4BAGoB,eAAlBmkB,EAAS/d,cACLxP,KAAKysB,iBAAiB1D,OAAOwE,EAAST,gBAA5C1jB,sNAGJpJ,KAAK6rB,cAAc4B,4BAIlBztB,KAAKmtB,2CAGPD,oBAAP,WACOltB,KAAK0tB,UAGV1tB,KAAK0tB,SAASC,QAAQ3tB,KAAKqK,WAAWnE,OAAOO,cAAe,CAC1Db,YAAY,EACZgoB,WAAW,EACXC,SAAS,EACTC,eAAe,KAIZZ,0BAAP,WACOltB,KAAK0tB,UAGV1tB,KAAK0tB,SAASK,iCCzChB,WACU1jB,EACA+B,GADApM,gBAAAqK,EACArK,oBAAAoM,EA8CZ,OA3CQ4hB,yBAAN,6GAQK,OAPGhuB,KAAKiuB,2BAA2BhtB,UACpCjB,KAAKiuB,gBAAkBjuB,KAAKoM,eAAeO,UACzC,sCAIkB7E,YACb9H,KAAKiuB,wBAOd,OARMhmB,EAAY,YAAIH,YACnBsB,SAA4B8D,UAAUjF,UAAUwE,KAAI,SAAC9I,GAAM,OAAAA,EAAE8M,UAEhEzQ,KAAKqK,WAAWqD,mBAAqB,IAAI5F,IACvCvI,MAAMkE,KAAKzD,KAAKqK,WAAWqD,oBAAoBkP,QAAO,SAACjZ,GACrD,OAAAsE,EAAUwV,IAAI9Z,UAGXsE,WAGH+lB,sBAAN,2GAEW,gCAAMhuB,KAAKoM,eAAeO,UAAU,8BAA3C,SAAOjI,mCAGPkC,QAAQtD,MAAMkK,GAEd5G,QAAQtD,MACN,8DAEFtD,KAAKqK,WAAWnE,OAAOa,KAAO,4CAIlCinB,2BAAA,SAAeE,GACb,OAAOluB,KAAKqK,WAAW8jB,OAAOtoB,QAAQqoB,IAAU,GAGlDF,uBAAA,SAAWE,GACT,IAAKluB,KAAKouB,eAAeF,GACvB,MAAM,IAAInpB,MACR,oFCaN,SAAYmB,gBAAAA,MAA2BmoB,GAzDhCruB,gBAAyB,IAAIoH,EAC7BpH,kBAA6B,IAAIsuB,EACjCtuB,oBAAiC,IAAIsK,EAAetK,KAAKqK,YACzDrK,uBAAoB,IAAIymB,GAAkBzmB,KAAKqK,YAC/CrK,iBAA2B,IAAIguB,GACpChuB,KAAKqK,WACLrK,KAAKoM,gBAEApM,wBAAyC,IAAI6N,EAClD7N,KAAKqK,WACLrK,KAAKmM,YACLnM,KAAKoM,eACLpM,KAAKqM,cAEArM,iBAA2B,IAAI2kB,GACpC3kB,KAAKqK,WACLrK,KAAKwkB,oBAEAxkB,4BAAyB,IAAI8oB,GAClC9oB,KAAKmM,YACLnM,KAAKqK,WACLrK,KAAKqM,aACLrM,KAAKwkB,mBACLxkB,KAAK0oB,mBAEA1oB,sBAAqC,IAAIwpB,GAC9CxpB,KAAKqK,WACLrK,KAAKupB,wBAEAvpB,iBAAc,IAAI8rB,GACvB9rB,KAAKqK,WACLrK,KAAKupB,uBACLvpB,KAAKkqB,YACLlqB,KAAKmqB,kBAEAnqB,sBAAmB,IAAImsB,GAC5BnsB,KAAKqK,WACLrK,KAAKkqB,YACLlqB,KAAKmqB,iBACLnqB,KAAKupB,wBAEAvpB,iBAA2B,IAAI6sB,GACpC7sB,KAAKmM,YACLnM,KAAKwsB,YACLxsB,KAAKqM,aACLrM,KAAKqK,WACLrK,KAAKysB,iBACLzsB,KAAKkqB,aAEAlqB,cAAqB,IAAIktB,GAC9BltB,KAAKqK,WACLrK,KAAKgtB,YACLhtB,KAAKwsB,YACLxsB,KAAKysB,iBACLzsB,KAAKmqB,kBAILnqB,KAAKqK,WAAWnE,OAASA,EACzBlG,KAAKwkB,mBAAmB+J,4BC/D1B,WAAYroB,GAAZ,WA6FAlG,eAAY,SACVsL,EACAmZ,EACA+J,uBADA/J,mBACA+J,4FAEoC,gBAAhCxuB,KAAKqK,WAAWnE,OAAOa,MAA2BynB,WAC9CxuB,KAAKyuB,qBACX,OADA/pB,YACM1E,KAAKwkB,mBAAmB/V,2BAC9B,OADA/J,YACO1E,KAAK0uB,gBAAgBxE,YAAYyE,KAAKrjB,EAAKmZ,WAEpD,SAAOzkB,KAAK0uB,gBAAgBxE,YAAYjE,UAAU3a,EAAKmZ,YAGzDzkB,aAAU,SACRsL,EACAmZ,EACA+J,EACAzgB,GAEA,oBAJA0W,mBACA+J,MAGoC,gBAAhC5kB,EAAKS,WAAWnE,OAAOa,MAA2BynB,EAG/C5kB,EAAK8kB,gBAAgBxE,YAAY0E,QACtCtjB,EACAmZ,OACApgB,EACA0J,GANOnE,EAAK8kB,gBAAgBxE,YAAYyE,KAAKrjB,EAAKmZ,IAU/CzkB,UAAO,WACZ4J,EAAK8kB,gBAAgBhB,SAASmB,gBAC9BjlB,EAAK8kB,gBAAgBvE,iBAAiB2E,WACtC/qB,EAAWgrB,6BACTnlB,EAAKS,WAAWnE,OAAOO,gBA9HzBzG,KAAK0uB,gBAAkB,IAAIM,GAAgB,IAAIX,EAAanoB,IAwIhE,OArIE9G,sBAAI6vB,8BAAJ,WACE,OAAOjvB,KAAK0uB,gBAAgBrkB,4CAG9BjL,sBAAI6vB,sCAAJ,WACE,OAAOjvB,KAAK0uB,gBAAgBlK,oDAG9BplB,sBAAI6vB,+BAAJ,WACE,OAAOjvB,KAAK0uB,gBAAgBviB,6CAG9B/M,sBAAW6vB,wBAAX,WACE,OAAOjvB,KAAKqK,WAAW1C,qBAGzB,SAAgBtG,GACdrB,KAAKqK,WAAW1C,gBAAkBtG,EAEhCrB,KAAK0uB,gBAAgBriB,aAClBqgB,iBACHne,KAAKlN,oCAGTjC,sBAAW6vB,mCAAX,WACE,OAAOjvB,KAAKqK,WAAWnE,OAAOgB,iDAGhC9H,sBAAW6vB,gCAAX,WACE,OAAOjvB,KAAK0uB,gBAAgBriB,aAAaqgB,kDAG3CttB,sBAAW6vB,gCAAX,WACE,OAAOjvB,KAAK0uB,gBAAgBriB,aAAaiC,iDAS3ClP,sBAAI6vB,kCAAJ,uBACE,GAAsC,oCAAlCjvB,KAAKqK,iCAAYnE,6BAAQa,MAC3B,OAAO,EAGT,IAAMmoB,EAAclvB,KAAKqK,WAAW1C,gBAC9BwnB,EAAenvB,KAAKqK,WAAWnE,OAAOe,iBACtCmoB,EAAqBpvB,KAAKqK,WAAWnE,OAAOmpB,gBAC5CC,EAAuB,SAACpmB,GAC5B,YAAgB7E,IAAT6E,GAAsC,mBAATA,GAGtC,OACGomB,YAAqBtvB,KAAKqK,WAAWnE,OAAO+H,iCAAaihB,OACvDE,IACAE,YACCtvB,KAAKqK,WAAWnE,OAAO+H,iCAAakhB,qCAK/BF,gBAAb,2GACsC,gBAAhCjvB,KAAKqK,WAAWnE,OAAOa,cACnB/G,KAAKyuB,qBAAX/pB,0BAGF,SAAM1E,KAAKwkB,mBAAmB/V,kCAA9B/J,SAEI1E,KAAKqK,WAAWnE,OAAOmpB,mBACnBrvB,KAAKwkB,mBAAmB/V,iBAC5BzO,KAAKqK,WAAWnE,OAAOe,gCADzBvC,0BAKF,SAAM1E,KAAK2sB,yBAAXjoB,SAEI1E,KAAKqK,WAAWnE,OAAOiB,OACzBnH,KAAK0uB,gBAAgBhB,SAASC,sBAIrBsB,oBAAb,8EACE,SAAOjvB,KAAK0uB,gBAAgB1B,YAAYQ,cACtCxtB,KAAKqK,WAAWnE,OAAOO,uBA0CbwoB,uBAAd,uHACiC5qB,IAA3BrE,KAAKqK,WAAW8jB,cAClBzpB,EAAA1E,KAAKqK,cACGrK,KAAK0uB,gBAAgBviB,YAAYojB,qBADzC7qB,EAAgBypB,OACd/kB"}
1
+ {"version":3,"file":"tolgee.cjs.min.js","sources":["../node_modules/tslib/tslib.es6.js","../src/src/Constants/Global.ts","../src/src/Constants/ModifierKey.ts","../src/src/helpers/NodeHelper.ts","../src/src/TolgeeConfig.ts","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../src/src/Properties.ts","../src/src/services/Subscription.ts","../src/src/services/EventEmitter.ts","../src/src/services/EventService.ts","../src/src/Errors/ApiHttpError.ts","../src/src/services/ApiHttpService.ts","../src/src/DTOs/TranslationData.ts","../src/src/helpers/TextHelper.ts","../src/src/services/TranslationService.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","../src/src/services/TextService.ts","../src/src/highlighter/MouseEventHandler.ts","../src/src/highlighter/TranslationHighlighter.ts","../src/src/services/ElementRegistrar.ts","../src/src/handlers/AbstractHandler.ts","../src/src/handlers/TextHandler.ts","../src/src/handlers/AttributeHandler.ts","../src/src/handlers/CoreHandler.ts","../src/src/Observer.ts","../src/src/services/CoreService.ts","../src/src/handlers/WrappedHandler.ts","../src/src/services/DependencyStore.ts","../src/src/Tolgee.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,"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 = /^(@+)?(\\+|#+)?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n 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 if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\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(\"^\" + SPACE_SEPARATOR_REGEX.source + \"*\");\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(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: \"<\" + 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 \" + 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 \" + targetOffset + \" must be greater than or equal to the current offset \" + 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 \" + 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: \" + this.code + \"] \" + this.message;\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", 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 \\\"\" + value + \"\\\" must be of type \" + 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 \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + 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[\"=\" + 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)))();\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)))();\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)))();\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",null,null,null,null,null,null,null,null,null,null,null,null,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","NodeHelper","expression","targetNode","evaluated","document","evaluate","undefined","XPathResult","ANY_TYPE","node","iterateNext","_a","_i","args","evaluateGenerator","arr","Error","Text","parentElement","ownerElement","element","hasAttribute","setAttribute","removeAttribute","descendant","contains","Attr","ownerContainsAttr","values","attributes","indexOf","ErrorKind","TYPE","SKELETON_TYPE","DEFAULT_TARGET_ELEMENT_SUPPLIER","config","textarea","input","img","Alt","defineProperty","set","targetElement","_targetElement","isElementTargetElement","console","markElementAsTargetElement","get","mode","apiKey","fallbackLanguage","defaultLanguage","watch","Properties","forceLanguage","localStorage","getItem","availableLanguages","_currentLanguage","getLanguageByNavigator","currentLanguage","language","setItem","Set","JSON","parse","languages","stringify","window","preferred_1","navigator","exactMatch","find","getTwoLetters_1","fullTag","replace","preferredTwoLetter_1","twoLetterMatch","onUnsubscribe","Subscription","Map","EventEmitterImpl","_subscriptions","data","promiseReturns","_b","subscriptions","returned","callback","all","newId","idCounter","subscription","_this","unsubscribe","id","delete","warn","response","code","_super","ApiHttpError","properties","ApiHttpService","status","json","fetch","url","getUrl","handleErrors","rest","res","init","method","headers","post","path","querySeparator","apiUrl","key","translations","TextHelper","string","delimiter","actual","isCharEscaped","removeEscapes","position","fullString","escapeCharsCount","text","match","coreService","apiHttpService","eventService","checkScope","languagesArray","languagesQuery","map","join","fetchJson","encodeURIComponent","_h","translationData_1","reduce","acc","curr","_embedded","keys","entries","forEach","translation","TranslationData","e_1","getLanguages","preferredLanguages","location","reload","TranslationService","message","orEmpty","splitOnNonEscapedDelimiter","staticData","translationsCache","lang","fetchPromises","fetchTranslations","LANGUAGE_LOADED","emit","getFromCache","loadTranslations","translationByValue","translationData","root","item","fetchTranslationsDevelopment","fetchTranslationsProduction","langStaticData","_c","filesUrlPrefix","setEmptyLanguageData","e_4","path_1","isLiteralElement","el","type","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","tag","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","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","test","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","token","style","scale","currency","options","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","RegExp","source","SPACE_SEPARATOR_END_REGEX","createLocation","start","end","hasNativeStartsWith","startsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","Number","isFinite","Math","floor","abs","REGEX_SUPPORTS_U_AND_Y","RE","exec","matchIdentifierAtIndex","search","codePoints","elements","fromCharCode","obj","entries_1","k","index","size","first","charCodeAt","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","c","_isWhiteSpace","_isPatternSyntax","Parser","offset","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","err","val","peek","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","startPosition","tagName","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","filter","x","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","has","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","add","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","bind","ObjectWithoutPrototypeCache","ErrorCode","strategies","PART_TYPE","FormatError","msg","toString","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isFormatXMLElementFn","formatToParts","locales","formatters","formats","currentPluralValue","els_1","getNumberFormat","format","varName","object","getDateTimeFormat","value_1","formatFn","chunks","isArray","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","translationService","params","param","TextService","escapeForRegExp","inputPrefix","inputSuffix","unWrappedString","strings","shift","splice","name_1","getTranslation","getFromCacheOrFallback","matchRegexp","rawUnWrapRegex","keysAndParams","matched","fullMatch","pre","wrapped","unwrapped","substr","getTranslatedWithMetadata","translated","substring","withoutEscapes","paramString","name","escapeParam","parseUnwrapped","translate","initKeyListener","MouseEventHandler","onclick","_tolgee","listeningForHighlighting","initEventListeners","mouseOnChanged","subscribe","highlighted","getMouseOn","onConditionsChanged","keysChanged","onMouseOver","onMouseOut","onClick","areKeysDown","stopPropagation","preventDefault","addEventListener","onMouseDownOrUp","removeAllEventListeners","removeEventListener","unhighlight","highlight","highlightedInitialBackgroundColor","backgroundColor","highlightColor","mouseOn","filterMouseOn","mouseOnArray","keysDown","modifierKey","highlightKeys","service","mouseEventHandler","renderer","getKey","renderViewer","TranslationHighlighter","_renderer","ui","nodes","handle","translationEdit","mouseEvent","wrappedWithElementOnlyKey","getKeyOptions","openEvent","translationHighlighter","ElementRegistrar","getActiveNodes","registeredElements","listen","cleanElementInactiveNodes","cleanElement","registeredElement","isElementActive","nodeContains","_d","textService","elementRegistrar","AbstractHandler","restrictedElements","closestElement","toLowerCase","closest","nodes_1","textNode","tolgeeData","locked","lockNode","textContent","translatedNode","translateChildNode","getParentElement","register","unlockNode","newValue","oldTextContent","parent","getSuitableParent","initParentElement","domParent","passToParent","findIndex","elementTagName","nodeRegistrar","TextHandler","xPath","filtered","filterRestricted","handleNodes","AttributeHandler","tagAttributes","attributes_1","attribute","_f","textHandler","attributeHandler","wrappedHandler","LANGUAGE_CHANGED","refresh","TRANSLATION_CHANGED","CoreHandler","target","_e","coreHandler","basicTextHandler","Observer","_observer","MutationObserver","mutationsList","mutationsList_1","mutation","handleSubtree","refreshAll","observer","observe","childList","subtree","characterData","disconnect","CoreService","languagePromise","scope","scopes","isAuthorizedTo","WrappedHandler","elementWithMeta","getAttribute","TolgeeConfig","EventService","initStatic","noWrap","loadScopes","dependencyStore","wrap","instant","stopObserving","cleanAll","unmarkElementAsTargetElement","DependencyStore","Tolgee","currentLang","fallbackLang","fallbackPreloading","preloadFallback","isStaticDataProvided","getScopes"],"mappings":"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QACL,QAKZX,EAAO7X,UAAUuZ,UAAY,WACzB,MAAQhZ,KAAKiY,SAAWb,GAAcpX,KAAKkY,SACvClY,KAAK4Y,QAObtB,EAAO7X,UAAU6Y,KAAO,WACpB,GAAItY,KAAKiY,QACL,OAAO,KAEX,IAAI/N,EAAOlK,KAAKkY,OACZX,EAASvX,KAAKuX,SACdqH,EAAW5e,KAAK8N,QAAQiJ,WAAWQ,GAAUrN,GAAQ,MAAU,EAAI,IACvE,OAAO0U,MAAAA,EAA2CA,EAAW,MAE1DtH,KAQX,SAASmB,GAASsB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,GA+BzC,SAAS3C,GAAcD,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,EAMR,SAASE,GAAiBF,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,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,OAC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"}
@@ -126,6 +126,7 @@
126
126
  var RESTRICTED_ASCENDANT_ATTRIBUTE = 'data-tolgee-restricted';
127
127
  var TOLGEE_ATTRIBUTE_NAME = '_tolgee';
128
128
  var TOLGEE_TARGET_ATTRIBUTE = '_tolgee-target';
129
+ var TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE = 'data-tolgee-key-only';
129
130
 
130
131
  var NodeHelper = /** @class */ (function () {
131
132
  function NodeHelper() {
@@ -3285,7 +3286,9 @@
3285
3286
  this.translationService = translationService;
3286
3287
  this.format = function (translation, params) {
3287
3288
  try {
3288
- return new IntlMessageFormat(translation, _this.properties.currentLanguage).format(params);
3289
+ return new IntlMessageFormat(translation, _this.properties.currentLanguage, undefined, {
3290
+ ignoreTag: true,
3291
+ }).format(params);
3289
3292
  }
3290
3293
  catch (e) {
3291
3294
  if (e.code === 'MISSING_VALUE') {
@@ -3312,6 +3315,27 @@
3312
3315
  return param;
3313
3316
  };
3314
3317
  }
3318
+ Object.defineProperty(TextService.prototype, "rawUnWrapRegex", {
3319
+ get: function () {
3320
+ var escapedPrefix = this.escapeForRegExp(this.properties.config.inputPrefix);
3321
+ var escapedSuffix = this.escapeForRegExp(this.properties.config.inputSuffix);
3322
+ return "(\\\\?)(" + escapedPrefix + "(.*?)" + escapedSuffix + ")";
3323
+ },
3324
+ enumerable: false,
3325
+ configurable: true
3326
+ });
3327
+ TextService.parseUnwrapped = function (unWrappedString) {
3328
+ var strings = unWrappedString.match(/(?:[^\\,:\n]|\\.)+/g);
3329
+ var result = {
3330
+ key: TextHelper.removeEscapes(strings.shift()),
3331
+ params: {},
3332
+ };
3333
+ while (strings.length) {
3334
+ var _a = __read(strings.splice(0, 2), 2), name_1 = _a[0], value = _a[1];
3335
+ result.params[name_1] = value;
3336
+ }
3337
+ return result;
3338
+ };
3315
3339
  TextService.prototype.translate = function (key, params, lang, orEmpty) {
3316
3340
  if (lang === void 0) { lang = this.properties.currentLanguage; }
3317
3341
  return __awaiter(this, void 0, void 0, function () {
@@ -3397,27 +3421,6 @@
3397
3421
  });
3398
3422
  });
3399
3423
  };
3400
- TextService.parseUnwrapped = function (unWrappedString) {
3401
- var strings = unWrappedString.match(/(?:[^\\,:\n]|\\.)+/g);
3402
- var result = {
3403
- key: TextHelper.removeEscapes(strings.shift()),
3404
- params: {},
3405
- };
3406
- while (strings.length) {
3407
- var _a = __read(strings.splice(0, 2), 2), name_1 = _a[0], value = _a[1];
3408
- result.params[name_1] = value;
3409
- }
3410
- return result;
3411
- };
3412
- Object.defineProperty(TextService.prototype, "rawUnWrapRegex", {
3413
- get: function () {
3414
- var escapedPrefix = this.escapeForRegExp(this.properties.config.inputPrefix);
3415
- var escapedSuffix = this.escapeForRegExp(this.properties.config.inputSuffix);
3416
- return "(\\\\?)(" + escapedPrefix + "(.*?)" + escapedSuffix + ")";
3417
- },
3418
- enumerable: false,
3419
- configurable: true
3420
- });
3421
3424
  return TextService;
3422
3425
  }());
3423
3426
 
@@ -3594,6 +3597,28 @@
3594
3597
  });
3595
3598
  }); };
3596
3599
  }
3600
+ Object.defineProperty(TranslationHighlighter.prototype, "renderer", {
3601
+ get: function () {
3602
+ if (this._renderer === undefined) {
3603
+ if (typeof this.properties.config.ui === 'function') {
3604
+ this._renderer = new this.properties.config.ui({
3605
+ coreService: this.service,
3606
+ properties: this.properties,
3607
+ eventService: this.eventService,
3608
+ translationService: this.translationService,
3609
+ });
3610
+ }
3611
+ }
3612
+ return this._renderer;
3613
+ },
3614
+ enumerable: false,
3615
+ configurable: true
3616
+ });
3617
+ TranslationHighlighter.getKeyOptions = function (node) {
3618
+ var nodes = Array.from(node._tolgee.nodes);
3619
+ var keys = nodes.reduce(function (acc, curr) { return __spreadArray(__spreadArray([], __read(acc)), __read(curr._tolgee.keys.map(function (k) { return k.key; }))); }, []);
3620
+ return new Set(keys);
3621
+ };
3597
3622
  TranslationHighlighter.prototype.listen = function (element) {
3598
3623
  var _this = this;
3599
3624
  this.mouseEventHandler.handle(element, function (e) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
@@ -3609,6 +3634,9 @@
3609
3634
  return __generator(this, function (_a) {
3610
3635
  switch (_a.label) {
3611
3636
  case 0:
3637
+ if (element._tolgee.wrappedWithElementOnlyKey) {
3638
+ return [2 /*return*/, element._tolgee.wrappedWithElementOnlyKey];
3639
+ }
3612
3640
  keys = TranslationHighlighter.getKeyOptions(element);
3613
3641
  if (!(keys.size > 1)) return [3 /*break*/, 2];
3614
3642
  return [4 /*yield*/, this.renderer.getKey({ keys: keys, openEvent: mouseEvent })];
@@ -3624,28 +3652,6 @@
3624
3652
  });
3625
3653
  });
3626
3654
  };
3627
- TranslationHighlighter.getKeyOptions = function (node) {
3628
- var nodes = Array.from(node._tolgee.nodes);
3629
- var keys = nodes.reduce(function (acc, curr) { return __spreadArray(__spreadArray([], __read(acc)), __read(curr._tolgee.keys.map(function (k) { return k.key; }))); }, []);
3630
- return new Set(keys);
3631
- };
3632
- Object.defineProperty(TranslationHighlighter.prototype, "renderer", {
3633
- get: function () {
3634
- if (this._renderer === undefined) {
3635
- if (typeof this.properties.config.ui === 'function') {
3636
- this._renderer = new this.properties.config.ui({
3637
- coreService: this.service,
3638
- properties: this.properties,
3639
- eventService: this.eventService,
3640
- translationService: this.translationService,
3641
- });
3642
- }
3643
- }
3644
- return this._renderer;
3645
- },
3646
- enumerable: false,
3647
- configurable: true
3648
- });
3649
3655
  return TranslationHighlighter;
3650
3656
  }());
3651
3657
 
@@ -3657,7 +3663,8 @@
3657
3663
  }
3658
3664
  ElementRegistrar.prototype.register = function (element) {
3659
3665
  //ignore element with no active nodes
3660
- if (this.getActiveNodes(element).next().value === undefined) {
3666
+ if (this.getActiveNodes(element).next().value === undefined &&
3667
+ !element._tolgee.wrappedWithElementOnlyKey) {
3661
3668
  return;
3662
3669
  }
3663
3670
  if (this.properties.config.mode === 'development' &&
@@ -3672,7 +3679,8 @@
3672
3679
  for (var _b = __values(this.registeredElements), _c = _b.next(); !_c.done; _c = _b.next()) {
3673
3680
  var element = _c.value;
3674
3681
  this.cleanElementInactiveNodes(element);
3675
- if (element._tolgee.nodes.size === 0) {
3682
+ if (element._tolgee.nodes.size === 0 &&
3683
+ !element._tolgee.wrappedWithElementOnlyKey) {
3676
3684
  this.cleanElement(element);
3677
3685
  }
3678
3686
  }
@@ -3995,13 +4003,14 @@
3995
4003
  }(AbstractHandler));
3996
4004
 
3997
4005
  var CoreHandler = /** @class */ (function () {
3998
- function CoreHandler(service, textHandler, eventService, properties, attributeHandler, textService) {
4006
+ function CoreHandler(service, textHandler, eventService, properties, attributeHandler, textService, wrappedHandler) {
3999
4007
  this.service = service;
4000
4008
  this.textHandler = textHandler;
4001
4009
  this.eventService = eventService;
4002
4010
  this.properties = properties;
4003
4011
  this.attributeHandler = attributeHandler;
4004
4012
  this.textService = textService;
4013
+ this.wrappedHandler = wrappedHandler;
4005
4014
  eventService.LANGUAGE_CHANGED.subscribe(this.refresh.bind(this));
4006
4015
  eventService.TRANSLATION_CHANGED.subscribe(this.refresh.bind(this));
4007
4016
  }
@@ -4014,6 +4023,9 @@
4014
4023
  _a.sent();
4015
4024
  return [4 /*yield*/, this.textHandler.handle(target)];
4016
4025
  case 2:
4026
+ _a.sent();
4027
+ return [4 /*yield*/, this.wrappedHandler.handle(target)];
4028
+ case 3:
4017
4029
  _a.sent();
4018
4030
  return [2 /*return*/];
4019
4031
  }
@@ -4234,6 +4246,36 @@
4234
4246
  return CoreService;
4235
4247
  }());
4236
4248
 
4249
+ var WrappedHandler = /** @class */ (function (_super) {
4250
+ __extends(WrappedHandler, _super);
4251
+ function WrappedHandler(properties, translationHighlighter, textService, elementRegistrar) {
4252
+ var _this = _super.call(this, properties, textService, elementRegistrar, translationHighlighter) || this;
4253
+ _this.properties = properties;
4254
+ _this.translationHighlighter = translationHighlighter;
4255
+ _this.textService = textService;
4256
+ _this.elementRegistrar = elementRegistrar;
4257
+ return _this;
4258
+ }
4259
+ WrappedHandler.prototype.handle = function (node) {
4260
+ return __awaiter(this, void 0, void 0, function () {
4261
+ var xPath, nodes, filtered;
4262
+ var _this = this;
4263
+ return __generator(this, function (_a) {
4264
+ xPath = "./descendant-or-self::*[@" + TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE + "]";
4265
+ nodes = NodeHelper.evaluate(xPath, node);
4266
+ filtered = this.filterRestricted(nodes);
4267
+ filtered.forEach(function (element) {
4268
+ var elementWithMeta = AbstractHandler.initParentElement(element);
4269
+ elementWithMeta._tolgee.wrappedWithElementOnlyKey = element.getAttribute(TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE);
4270
+ _this.elementRegistrar.register(elementWithMeta);
4271
+ });
4272
+ return [2 /*return*/];
4273
+ });
4274
+ });
4275
+ };
4276
+ return WrappedHandler;
4277
+ }(AbstractHandler));
4278
+
4237
4279
  var DependencyStore = /** @class */ (function () {
4238
4280
  function DependencyStore(config) {
4239
4281
  if (config === void 0) { config = new TolgeeConfig(); }
@@ -4248,7 +4290,8 @@
4248
4290
  this.elementRegistrar = new ElementRegistrar(this.properties, this.translationHighlighter);
4249
4291
  this.textHandler = new TextHandler(this.properties, this.translationHighlighter, this.textService, this.elementRegistrar);
4250
4292
  this.attributeHandler = new AttributeHandler(this.properties, this.textService, this.elementRegistrar, this.translationHighlighter);
4251
- this.coreHandler = new CoreHandler(this.coreService, this.textHandler, this.eventService, this.properties, this.attributeHandler, this.textService);
4293
+ this.wrappedHandler = new WrappedHandler(this.properties, this.translationHighlighter, this.textService, this.elementRegistrar);
4294
+ this.coreHandler = new CoreHandler(this.coreService, this.textHandler, this.eventService, this.properties, this.attributeHandler, this.textService, this.wrappedHandler);
4252
4295
  this.observer = new Observer(this.properties, this.coreHandler, this.textHandler, this.attributeHandler, this.elementRegistrar);
4253
4296
  this.properties.config = config;
4254
4297
  this.translationService.initStatic();
@@ -4341,6 +4384,13 @@
4341
4384
  enumerable: false,
4342
4385
  configurable: true
4343
4386
  });
4387
+ Object.defineProperty(Tolgee.prototype, "onTranslationChange", {
4388
+ get: function () {
4389
+ return this.dependencyStore.eventService.TRANSLATION_CHANGED;
4390
+ },
4391
+ enumerable: false,
4392
+ configurable: true
4393
+ });
4344
4394
  Object.defineProperty(Tolgee.prototype, "onLangLoaded", {
4345
4395
  get: function () {
4346
4396
  return this.dependencyStore.eventService.LANGUAGE_LOADED;
@@ -4430,8 +4480,10 @@
4430
4480
  return Tolgee;
4431
4481
  }());
4432
4482
 
4483
+ exports.TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE = TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE;
4433
4484
  exports.Tolgee = Tolgee;
4434
4485
  exports.TolgeeConfig = TolgeeConfig;
4486
+ exports.TranslationData = TranslationData;
4435
4487
 
4436
4488
  Object.defineProperty(exports, '__esModule', { value: true });
4437
4489