@formatjs/intl-pluralrules 4.1.4 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,9 +7,9 @@ var ecma402_abstract_1 = require("@formatjs/ecma402-abstract");
7
7
  * @param s
8
8
  */
9
9
  function GetOperands(s) {
10
- ecma402_abstract_1.invariant(typeof s === 'string', "GetOperands should have been called with a string");
11
- var n = ecma402_abstract_1.ToNumber(s);
12
- ecma402_abstract_1.invariant(isFinite(n), 'n should be finite');
10
+ (0, ecma402_abstract_1.invariant)(typeof s === 'string', "GetOperands should have been called with a string");
11
+ var n = (0, ecma402_abstract_1.ToNumber)(s);
12
+ (0, ecma402_abstract_1.invariant)(isFinite(n), 'n should be finite');
13
13
  var dp = s.indexOf('.');
14
14
  var iv;
15
15
  var f;
@@ -23,16 +23,16 @@ function GetOperands(s) {
23
23
  else {
24
24
  iv = s.slice(0, dp);
25
25
  fv = s.slice(dp, s.length);
26
- f = ecma402_abstract_1.ToNumber(fv);
26
+ f = (0, ecma402_abstract_1.ToNumber)(fv);
27
27
  v = fv.length;
28
28
  }
29
- var i = Math.abs(ecma402_abstract_1.ToNumber(iv));
29
+ var i = Math.abs((0, ecma402_abstract_1.ToNumber)(iv));
30
30
  var w;
31
31
  var t;
32
32
  if (f !== 0) {
33
33
  var ft = fv.replace(/0+$/, '');
34
34
  w = ft.length;
35
- t = ecma402_abstract_1.ToNumber(ft);
35
+ t = (0, ecma402_abstract_1.ToNumber)(ft);
36
36
  }
37
37
  else {
38
38
  w = 0;
@@ -5,16 +5,16 @@ var ecma402_abstract_1 = require("@formatjs/ecma402-abstract");
5
5
  var intl_localematcher_1 = require("@formatjs/intl-localematcher");
6
6
  function InitializePluralRules(pl, locales, options, _a) {
7
7
  var availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getInternalSlots = _a.getInternalSlots;
8
- var requestedLocales = ecma402_abstract_1.CanonicalizeLocaleList(locales);
8
+ var requestedLocales = (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales);
9
9
  var opt = Object.create(null);
10
- var opts = ecma402_abstract_1.CoerceOptionsToObject(options);
10
+ var opts = (0, ecma402_abstract_1.CoerceOptionsToObject)(options);
11
11
  var internalSlots = getInternalSlots(pl);
12
12
  internalSlots.initializedPluralRules = true;
13
- var matcher = ecma402_abstract_1.GetOption(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');
13
+ var matcher = (0, ecma402_abstract_1.GetOption)(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');
14
14
  opt.localeMatcher = matcher;
15
- internalSlots.type = ecma402_abstract_1.GetOption(opts, 'type', 'string', ['cardinal', 'ordinal'], 'cardinal');
16
- ecma402_abstract_1.SetNumberFormatDigitOptions(internalSlots, opts, 0, 3, 'standard');
17
- var r = intl_localematcher_1.ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);
15
+ internalSlots.type = (0, ecma402_abstract_1.GetOption)(opts, 'type', 'string', ['cardinal', 'ordinal'], 'cardinal');
16
+ (0, ecma402_abstract_1.SetNumberFormatDigitOptions)(internalSlots, opts, 0, 3, 'standard');
17
+ var r = (0, intl_localematcher_1.ResolveLocale)(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);
18
18
  internalSlots.locale = r.locale;
19
19
  return pl;
20
20
  }
@@ -12,16 +12,16 @@ var GetOperands_1 = require("./GetOperands");
12
12
  function ResolvePlural(pl, n, _a) {
13
13
  var getInternalSlots = _a.getInternalSlots, PluralRuleSelect = _a.PluralRuleSelect;
14
14
  var internalSlots = getInternalSlots(pl);
15
- ecma402_abstract_1.invariant(ecma402_abstract_1.Type(internalSlots) === 'Object', 'pl has to be an object');
16
- ecma402_abstract_1.invariant('initializedPluralRules' in internalSlots, 'pluralrules must be initialized');
17
- ecma402_abstract_1.invariant(ecma402_abstract_1.Type(n) === 'Number', 'n must be a number');
15
+ (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(internalSlots) === 'Object', 'pl has to be an object');
16
+ (0, ecma402_abstract_1.invariant)('initializedPluralRules' in internalSlots, 'pluralrules must be initialized');
17
+ (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(n) === 'Number', 'n must be a number');
18
18
  if (!isFinite(n)) {
19
19
  return 'other';
20
20
  }
21
21
  var locale = internalSlots.locale, type = internalSlots.type;
22
- var res = ecma402_abstract_1.FormatNumericToString(internalSlots, n);
22
+ var res = (0, ecma402_abstract_1.FormatNumericToString)(internalSlots, n);
23
23
  var s = res.formattedString;
24
- var operands = GetOperands_1.GetOperands(s);
24
+ var operands = (0, GetOperands_1.GetOperands)(s);
25
25
  return PluralRuleSelect(locale, type, n, operands);
26
26
  }
27
27
  exports.ResolvePlural = ResolvePlural;
package/index.js CHANGED
@@ -5,10 +5,10 @@ var tslib_1 = require("tslib");
5
5
  var ecma402_abstract_1 = require("@formatjs/ecma402-abstract");
6
6
  var InitializePluralRules_1 = require("./abstract/InitializePluralRules");
7
7
  var ResolvePlural_1 = require("./abstract/ResolvePlural");
8
- var get_internal_slots_1 = tslib_1.__importDefault(require("./get_internal_slots"));
8
+ var get_internal_slots_1 = (0, tslib_1.__importDefault)(require("./get_internal_slots"));
9
9
  function validateInstance(instance, method) {
10
10
  if (!(instance instanceof PluralRules)) {
11
- throw new TypeError("Method Intl.PluralRules.prototype." + method + " called on incompatible receiver " + String(instance));
11
+ throw new TypeError("Method Intl.PluralRules.prototype.".concat(method, " called on incompatible receiver ").concat(String(instance)));
12
12
  }
13
13
  }
14
14
  /**
@@ -21,7 +21,7 @@ function validateInstance(instance, method) {
21
21
  function PluralRuleSelect(locale, type, _n, _a) {
22
22
  var IntegerDigits = _a.IntegerDigits, NumberOfFractionDigits = _a.NumberOfFractionDigits, FractionDigits = _a.FractionDigits;
23
23
  return PluralRules.localeData[locale].fn(NumberOfFractionDigits
24
- ? IntegerDigits + "." + FractionDigits
24
+ ? "".concat(IntegerDigits, ".").concat(FractionDigits)
25
25
  : IntegerDigits, type === 'ordinal');
26
26
  }
27
27
  var PluralRules = /** @class */ (function () {
@@ -32,7 +32,7 @@ var PluralRules = /** @class */ (function () {
32
32
  if (!newTarget) {
33
33
  throw new TypeError("Intl.PluralRules must be called with 'new'");
34
34
  }
35
- return InitializePluralRules_1.InitializePluralRules(this, locales, options, {
35
+ return (0, InitializePluralRules_1.InitializePluralRules)(this, locales, options, {
36
36
  availableLocales: PluralRules.availableLocales,
37
37
  relevantExtensionKeys: PluralRules.relevantExtensionKeys,
38
38
  localeData: PluralRules.localeData,
@@ -43,7 +43,7 @@ var PluralRules = /** @class */ (function () {
43
43
  PluralRules.prototype.resolvedOptions = function () {
44
44
  validateInstance(this, 'resolvedOptions');
45
45
  var opts = Object.create(null);
46
- var internalSlots = get_internal_slots_1.default(this);
46
+ var internalSlots = (0, get_internal_slots_1.default)(this);
47
47
  opts.locale = internalSlots.locale;
48
48
  opts.type = internalSlots.type;
49
49
  [
@@ -58,20 +58,20 @@ var PluralRules = /** @class */ (function () {
58
58
  opts[field] = val;
59
59
  }
60
60
  });
61
- opts.pluralCategories = tslib_1.__spreadArray([], PluralRules.localeData[opts.locale].categories[opts.type]);
61
+ opts.pluralCategories = (0, tslib_1.__spreadArray)([], PluralRules.localeData[opts.locale].categories[opts.type], true);
62
62
  return opts;
63
63
  };
64
64
  PluralRules.prototype.select = function (val) {
65
65
  var pr = this;
66
66
  validateInstance(pr, 'select');
67
- var n = ecma402_abstract_1.ToNumber(val);
68
- return ResolvePlural_1.ResolvePlural(pr, n, { getInternalSlots: get_internal_slots_1.default, PluralRuleSelect: PluralRuleSelect });
67
+ var n = (0, ecma402_abstract_1.ToNumber)(val);
68
+ return (0, ResolvePlural_1.ResolvePlural)(pr, n, { getInternalSlots: get_internal_slots_1.default, PluralRuleSelect: PluralRuleSelect });
69
69
  };
70
70
  PluralRules.prototype.toString = function () {
71
71
  return '[object Intl.PluralRules]';
72
72
  };
73
73
  PluralRules.supportedLocalesOf = function (locales, options) {
74
- return ecma402_abstract_1.SupportedLocales(PluralRules.availableLocales, ecma402_abstract_1.CanonicalizeLocaleList(locales), options);
74
+ return (0, ecma402_abstract_1.SupportedLocales)(PluralRules.availableLocales, (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales), options);
75
75
  };
76
76
  PluralRules.__addLocaleData = function () {
77
77
  var data = [];
package/lib/index.js CHANGED
@@ -5,7 +5,7 @@ import { ResolvePlural } from './abstract/ResolvePlural';
5
5
  import getInternalSlots from './get_internal_slots';
6
6
  function validateInstance(instance, method) {
7
7
  if (!(instance instanceof PluralRules)) {
8
- throw new TypeError("Method Intl.PluralRules.prototype." + method + " called on incompatible receiver " + String(instance));
8
+ throw new TypeError("Method Intl.PluralRules.prototype.".concat(method, " called on incompatible receiver ").concat(String(instance)));
9
9
  }
10
10
  }
11
11
  /**
@@ -18,7 +18,7 @@ function validateInstance(instance, method) {
18
18
  function PluralRuleSelect(locale, type, _n, _a) {
19
19
  var IntegerDigits = _a.IntegerDigits, NumberOfFractionDigits = _a.NumberOfFractionDigits, FractionDigits = _a.FractionDigits;
20
20
  return PluralRules.localeData[locale].fn(NumberOfFractionDigits
21
- ? IntegerDigits + "." + FractionDigits
21
+ ? "".concat(IntegerDigits, ".").concat(FractionDigits)
22
22
  : IntegerDigits, type === 'ordinal');
23
23
  }
24
24
  var PluralRules = /** @class */ (function () {
@@ -55,7 +55,7 @@ var PluralRules = /** @class */ (function () {
55
55
  opts[field] = val;
56
56
  }
57
57
  });
58
- opts.pluralCategories = __spreadArray([], PluralRules.localeData[opts.locale].categories[opts.type]);
58
+ opts.pluralCategories = __spreadArray([], PluralRules.localeData[opts.locale].categories[opts.type], true);
59
59
  return opts;
60
60
  };
61
61
  PluralRules.prototype.select = function (val) {
@@ -1,2 +1,2 @@
1
- export declare function shouldPolyfill(locale?: string | string[]): boolean;
1
+ export declare function shouldPolyfill(locale?: string): string | undefined;
2
2
  //# sourceMappingURL=should-polyfill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"should-polyfill.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-pluralrules/should-polyfill.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,WAOxD"}
1
+ {"version":3,"file":"should-polyfill.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-pluralrules/should-polyfill.ts"],"names":[],"mappings":"AAWA,wBAAgB,cAAc,CAAC,MAAM,SAAO,sBAS3C"}
@@ -1,3 +1,5 @@
1
+ import { match } from '@formatjs/intl-localematcher';
2
+ import { supportedLocales } from './supported-locales';
1
3
  function supportedLocalesOf(locale) {
2
4
  if (!locale) {
3
5
  return true;
@@ -6,8 +8,11 @@ function supportedLocalesOf(locale) {
6
8
  return Intl.PluralRules.supportedLocalesOf(locales).length === locales.length;
7
9
  }
8
10
  export function shouldPolyfill(locale) {
9
- return (!('PluralRules' in Intl) ||
11
+ if (locale === void 0) { locale = 'en'; }
12
+ if (!('PluralRules' in Intl) ||
10
13
  new Intl.PluralRules('en', { minimumFractionDigits: 2 }).select(1) ===
11
14
  'one' ||
12
- !supportedLocalesOf(locale));
15
+ !supportedLocalesOf(locale)) {
16
+ return locale ? match([locale], supportedLocales, 'en') : undefined;
17
+ }
13
18
  }
@@ -0,0 +1,2 @@
1
+ export declare const supportedLocales: string[];
2
+ //# sourceMappingURL=supported-locales.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supported-locales.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-pluralrules/supported-locales.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAA4nC,CAAA"}
@@ -0,0 +1,2 @@
1
+ // This file is generated from supported-locales-gen.ts
2
+ export var supportedLocales = ["af", "ak", "am", "an", "ar", "ars", "as", "asa", "ast", "az", "be", "bem", "bez", "bg", "bho", "bm", "bn", "bo", "br", "brx", "bs", "ca", "ce", "ceb", "cgg", "chr", "ckb", "cs", "cy", "da", "de", "doi", "dsb", "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff", "fi", "fil", "fo", "fr", "fur", "fy", "ga", "gd", "gl", "gsw", "gu", "guw", "gv", "ha", "haw", "he", "hi", "hr", "hsb", "hu", "hy", "ia", "id", "ig", "ii", "in", "io", "is", "it", "iu", "iw", "ja", "jbo", "jgo", "ji", "jmc", "jv", "jw", "ka", "kab", "kaj", "kcg", "kde", "kea", "kk", "kkj", "kl", "km", "kn", "ko", "ks", "ksb", "ksh", "ku", "kw", "ky", "lag", "lb", "lg", "lij", "lkt", "ln", "lo", "lt", "lv", "mas", "mg", "mgo", "mk", "ml", "mn", "mo", "mr", "ms", "mt", "my", "nah", "naq", "nb", "nd", "ne", "nl", "nn", "nnh", "no", "nqo", "nr", "nso", "ny", "nyn", "om", "or", "os", "osa", "pa", "pap", "pcm", "pl", "prg", "ps", "pt-PT", "pt", "rm", "ro", "rof", "ru", "rwk", "sah", "saq", "sat", "sc", "scn", "sd", "sdh", "se", "seh", "ses", "sg", "sh", "shi", "si", "sk", "sl", "sma", "smi", "smj", "smn", "sms", "sn", "so", "sq", "sr", "ss", "ssy", "st", "su", "sv", "sw", "syr", "ta", "te", "teo", "th", "ti", "tig", "tk", "tl", "tn", "to", "tr", "ts", "tzm", "ug", "uk", "ur", "uz", "ve", "vi", "vo", "vun", "wa", "wae", "wo", "xh", "xog", "yi", "yo", "yue", "zh", "zu"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formatjs/intl-pluralrules",
3
- "version": "4.1.4",
3
+ "version": "4.2.1",
4
4
  "description": "Polyfill for Intl.PluralRules",
5
5
  "keywords": [
6
6
  "polyfill",
@@ -20,8 +20,8 @@
20
20
  "url": "git+https://github.com/formatjs/formatjs.git"
21
21
  },
22
22
  "dependencies": {
23
- "@formatjs/ecma402-abstract": "1.9.9",
24
- "@formatjs/intl-localematcher": "0.2.21",
23
+ "@formatjs/ecma402-abstract": "1.11.1",
24
+ "@formatjs/intl-localematcher": "0.2.22",
25
25
  "tslib": "^2.1.0"
26
26
  },
27
27
  "bugs": {
package/polyfill.iife.js CHANGED
@@ -8,11 +8,8 @@
8
8
  var __markAsModule = function(target) {
9
9
  return __defProp(target, "__esModule", { value: true });
10
10
  };
11
- var __require = typeof require !== "undefined" ? require : function(x) {
12
- throw new Error('Dynamic require of "' + x + '" is not supported');
13
- };
14
11
  var __commonJS = function(cb, mod) {
15
- return function __require2() {
12
+ return function __require() {
16
13
  return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
17
14
  };
18
15
  };
@@ -91,7 +88,7 @@
91
88
  for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
92
89
  var locale = requestedLocales_1[_i];
93
90
  var noExtensionLocale = locale.replace(utils_1.UNICODE_EXTENSION_SEQUENCE_REGEX, "");
94
- var availableLocale = BestAvailableLocale_1.BestAvailableLocale(availableLocales, noExtensionLocale);
91
+ var availableLocale = (0, BestAvailableLocale_1.BestAvailableLocale)(availableLocales, noExtensionLocale);
95
92
  if (availableLocale) {
96
93
  result.locale = availableLocale;
97
94
  if (locale !== noExtensionLocale) {
@@ -116,10 +113,10 @@
116
113
  var BestAvailableLocale_1 = require_BestAvailableLocale();
117
114
  var utils_1 = require_utils();
118
115
  function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
119
- var minimizedAvailableLocaleMap = Array.from(availableLocales).reduce(function(all, l2) {
120
- all[l2] = l2;
121
- return all;
122
- }, {});
116
+ var minimizedAvailableLocaleMap = {};
117
+ availableLocales.forEach(function(l2) {
118
+ return minimizedAvailableLocaleMap[l2] = l2;
119
+ });
123
120
  var minimizedAvailableLocales = new Set();
124
121
  availableLocales.forEach(function(locale2) {
125
122
  var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
@@ -148,7 +145,7 @@
148
145
  foundLocale = minimizedRequestedLocale;
149
146
  break;
150
147
  }
151
- foundLocale = BestAvailableLocale_1.BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
148
+ foundLocale = (0, BestAvailableLocale_1.BestAvailableLocale)(minimizedAvailableLocales, maximizedRequestedLocale);
152
149
  }
153
150
  return {
154
151
  locale: foundLocale && minimizedAvailableLocaleMap[foundLocale] || getDefaultLocale()
@@ -166,9 +163,9 @@
166
163
  exports.UnicodeExtensionValue = void 0;
167
164
  var utils_1 = require_utils();
168
165
  function UnicodeExtensionValue(extension, key) {
169
- utils_1.invariant(key.length === 2, "key must have 2 elements");
166
+ (0, utils_1.invariant)(key.length === 2, "key must have 2 elements");
170
167
  var size = extension.length;
171
- var searchValue = "-" + key + "-";
168
+ var searchValue = "-".concat(key, "-");
172
169
  var pos = extension.indexOf(searchValue);
173
170
  if (pos !== -1) {
174
171
  var start = pos + 4;
@@ -195,7 +192,7 @@
195
192
  }
196
193
  return extension.slice(start, end);
197
194
  }
198
- searchValue = "-" + key;
195
+ searchValue = "-".concat(key);
199
196
  pos = extension.indexOf(searchValue);
200
197
  if (pos !== -1 && pos + 3 === size) {
201
198
  return "";
@@ -220,40 +217,40 @@
220
217
  var matcher = options.localeMatcher;
221
218
  var r;
222
219
  if (matcher === "lookup") {
223
- r = LookupMatcher_1.LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
220
+ r = (0, LookupMatcher_1.LookupMatcher)(availableLocales, requestedLocales, getDefaultLocale);
224
221
  } else {
225
- r = BestFitMatcher_1.BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
222
+ r = (0, BestFitMatcher_1.BestFitMatcher)(availableLocales, requestedLocales, getDefaultLocale);
226
223
  }
227
224
  var foundLocale = r.locale;
228
225
  var result = { locale: "", dataLocale: foundLocale };
229
226
  var supportedExtension = "-u";
230
227
  for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
231
228
  var key = relevantExtensionKeys_1[_i];
232
- utils_1.invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
229
+ (0, utils_1.invariant)(foundLocale in localeData, "Missing locale data for ".concat(foundLocale));
233
230
  var foundLocaleData = localeData[foundLocale];
234
- utils_1.invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
231
+ (0, utils_1.invariant)(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data ".concat(key, " must be an object"));
235
232
  var keyLocaleData = foundLocaleData[key];
236
- utils_1.invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
233
+ (0, utils_1.invariant)(Array.isArray(keyLocaleData), "keyLocaleData for ".concat(key, " must be an array"));
237
234
  var value = keyLocaleData[0];
238
- utils_1.invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
235
+ (0, utils_1.invariant)(typeof value === "string" || value === null, "value must be string or null but got ".concat(typeof value, " in key ").concat(key));
239
236
  var supportedExtensionAddition = "";
240
237
  if (r.extension) {
241
- var requestedValue = UnicodeExtensionValue_1.UnicodeExtensionValue(r.extension, key);
238
+ var requestedValue = (0, UnicodeExtensionValue_1.UnicodeExtensionValue)(r.extension, key);
242
239
  if (requestedValue !== void 0) {
243
240
  if (requestedValue !== "") {
244
241
  if (~keyLocaleData.indexOf(requestedValue)) {
245
242
  value = requestedValue;
246
- supportedExtensionAddition = "-" + key + "-" + value;
243
+ supportedExtensionAddition = "-".concat(key, "-").concat(value);
247
244
  }
248
245
  } else if (~requestedValue.indexOf("true")) {
249
246
  value = "true";
250
- supportedExtensionAddition = "-" + key;
247
+ supportedExtensionAddition = "-".concat(key);
251
248
  }
252
249
  }
253
250
  }
254
251
  if (key in options) {
255
252
  var optionsValue = options[key];
256
- utils_1.invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
253
+ (0, utils_1.invariant)(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
257
254
  if (~keyLocaleData.indexOf(optionsValue)) {
258
255
  if (optionsValue !== value) {
259
256
  value = optionsValue;
@@ -295,7 +292,7 @@
295
292
  for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
296
293
  var locale = requestedLocales_1[_i];
297
294
  var noExtensionLocale = locale.replace(utils_1.UNICODE_EXTENSION_SEQUENCE_REGEX, "");
298
- var availableLocale = BestAvailableLocale_1.BestAvailableLocale(availableLocales, noExtensionLocale);
295
+ var availableLocale = (0, BestAvailableLocale_1.BestAvailableLocale)(availableLocales, noExtensionLocale);
299
296
  if (availableLocale) {
300
297
  subset.push(availableLocale);
301
298
  }
@@ -313,18 +310,18 @@
313
310
  Object.defineProperty(exports, "__esModule", { value: true });
314
311
  exports.ResolveLocale = exports.LookupSupportedLocales = exports.match = void 0;
315
312
  var ResolveLocale_1 = require_ResolveLocale();
316
- function match(requestedLocales, availableLocales, defaultLocale, opts) {
313
+ function match2(requestedLocales, availableLocales, defaultLocale, opts) {
317
314
  var locales = availableLocales.reduce(function(all, l) {
318
315
  all.add(l);
319
316
  return all;
320
317
  }, new Set());
321
- return ResolveLocale_1.ResolveLocale(locales, requestedLocales, {
318
+ return (0, ResolveLocale_1.ResolveLocale)(locales, requestedLocales, {
322
319
  localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || "best fit"
323
320
  }, [], {}, function() {
324
321
  return defaultLocale;
325
322
  }).locale;
326
323
  }
327
- exports.match = match;
324
+ exports.match = match2;
328
325
  var LookupSupportedLocales_1 = require_LookupSupportedLocales();
329
326
  Object.defineProperty(exports, "LookupSupportedLocales", { enumerable: true, get: function() {
330
327
  return LookupSupportedLocales_1.LookupSupportedLocales;
@@ -458,7 +455,7 @@
458
455
  if (val !== void 0) {
459
456
  val = Number(val);
460
457
  if (isNaN(val) || val < min || val > max) {
461
- throw new RangeError(val + " is outside of range [" + min + ", " + max + "]");
458
+ throw new RangeError("".concat(val, " is outside of range [").concat(min, ", ").concat(max, "]"));
462
459
  }
463
460
  return Math.floor(val);
464
461
  }
@@ -490,7 +487,7 @@
490
487
  if (values !== void 0 && !values.filter(function(val) {
491
488
  return val == value;
492
489
  }).length) {
493
- throw new RangeError(value + " is not within " + values.join(", "));
490
+ throw new RangeError("".concat(value, " is not within ").concat(values.join(", ")));
494
491
  }
495
492
  return value;
496
493
  }
@@ -607,10 +604,10 @@
607
604
  m = m + repeat("0", e - p + 1);
608
605
  int = e + 1;
609
606
  } else if (e >= 0) {
610
- m = m.slice(0, e + 1) + "." + m.slice(e + 1);
607
+ m = "".concat(m.slice(0, e + 1), ".").concat(m.slice(e + 1));
611
608
  int = e + 1;
612
609
  } else {
613
- m = "0." + repeat("0", -e - 1) + m;
610
+ m = "0.".concat(repeat("0", -e - 1)).concat(m);
614
611
  int = 1;
615
612
  }
616
613
  if (m.indexOf(".") >= 0 && maxPrecision > minPrecision) {
@@ -653,7 +650,7 @@
653
650
  }
654
651
  var a = m.slice(0, k - f);
655
652
  var b = m.slice(k - f);
656
- m = a + "." + b;
653
+ m = "".concat(a, ".").concat(b);
657
654
  int = a.length;
658
655
  } else {
659
656
  int = m.length;
@@ -709,8 +706,8 @@
709
706
  var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
710
707
 
711
708
  // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/format_to_parts.js
712
- var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
713
- var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
709
+ var CARET_S_UNICODE_REGEX = new RegExp("^".concat(S_UNICODE_REGEX.source));
710
+ var S_DOLLAR_UNICODE_REGEX = new RegExp("".concat(S_UNICODE_REGEX.source, "$"));
714
711
 
715
712
  // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/InitializeNumberFormat.js
716
713
  var import_intl_localematcher = __toModule(require_intl_localematcher());
@@ -868,12 +865,12 @@
868
865
  // bazel-out/darwin-fastbuild/bin/packages/intl-pluralrules/lib/index.js
869
866
  function validateInstance(instance, method) {
870
867
  if (!(instance instanceof PluralRules)) {
871
- throw new TypeError("Method Intl.PluralRules.prototype." + method + " called on incompatible receiver " + String(instance));
868
+ throw new TypeError("Method Intl.PluralRules.prototype.".concat(method, " called on incompatible receiver ").concat(String(instance)));
872
869
  }
873
870
  }
874
871
  function PluralRuleSelect(locale, type, _n, _a) {
875
872
  var IntegerDigits = _a.IntegerDigits, NumberOfFractionDigits = _a.NumberOfFractionDigits, FractionDigits = _a.FractionDigits;
876
- return PluralRules.localeData[locale].fn(NumberOfFractionDigits ? IntegerDigits + "." + FractionDigits : IntegerDigits, type === "ordinal");
873
+ return PluralRules.localeData[locale].fn(NumberOfFractionDigits ? "".concat(IntegerDigits, ".").concat(FractionDigits) : IntegerDigits, type === "ordinal");
877
874
  }
878
875
  var PluralRules = function() {
879
876
  function PluralRules2(locales, options) {
@@ -907,7 +904,7 @@
907
904
  opts[field] = val;
908
905
  }
909
906
  });
910
- opts.pluralCategories = __spreadArray([], PluralRules2.localeData[opts.locale].categories[opts.type]);
907
+ opts.pluralCategories = __spreadArray([], PluralRules2.localeData[opts.locale].categories[opts.type], true);
911
908
  return opts;
912
909
  };
913
910
  PluralRules2.prototype.select = function(val) {
@@ -979,6 +976,12 @@
979
976
  } catch (ex) {
980
977
  }
981
978
 
979
+ // bazel-out/darwin-fastbuild/bin/packages/intl-pluralrules/lib/should-polyfill.js
980
+ var import_intl_localematcher4 = __toModule(require_intl_localematcher());
981
+
982
+ // bazel-out/darwin-fastbuild/bin/packages/intl-pluralrules/lib/supported-locales.js
983
+ var supportedLocales = ["af", "ak", "am", "an", "ar", "ars", "as", "asa", "ast", "az", "be", "bem", "bez", "bg", "bho", "bm", "bn", "bo", "br", "brx", "bs", "ca", "ce", "ceb", "cgg", "chr", "ckb", "cs", "cy", "da", "de", "doi", "dsb", "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff", "fi", "fil", "fo", "fr", "fur", "fy", "ga", "gd", "gl", "gsw", "gu", "guw", "gv", "ha", "haw", "he", "hi", "hr", "hsb", "hu", "hy", "ia", "id", "ig", "ii", "in", "io", "is", "it", "iu", "iw", "ja", "jbo", "jgo", "ji", "jmc", "jv", "jw", "ka", "kab", "kaj", "kcg", "kde", "kea", "kk", "kkj", "kl", "km", "kn", "ko", "ks", "ksb", "ksh", "ku", "kw", "ky", "lag", "lb", "lg", "lij", "lkt", "ln", "lo", "lt", "lv", "mas", "mg", "mgo", "mk", "ml", "mn", "mo", "mr", "ms", "mt", "my", "nah", "naq", "nb", "nd", "ne", "nl", "nn", "nnh", "no", "nqo", "nr", "nso", "ny", "nyn", "om", "or", "os", "osa", "pa", "pap", "pcm", "pl", "prg", "ps", "pt-PT", "pt", "rm", "ro", "rof", "ru", "rwk", "sah", "saq", "sat", "sc", "scn", "sd", "sdh", "se", "seh", "ses", "sg", "sh", "shi", "si", "sk", "sl", "sma", "smi", "smj", "smn", "sms", "sn", "so", "sq", "sr", "ss", "ssy", "st", "su", "sv", "sw", "syr", "ta", "te", "teo", "th", "ti", "tig", "tk", "tl", "tn", "to", "tr", "ts", "tzm", "ug", "uk", "ur", "uz", "ve", "vi", "vo", "vun", "wa", "wae", "wo", "xh", "xog", "yi", "yo", "yue", "zh", "zu"];
984
+
982
985
  // bazel-out/darwin-fastbuild/bin/packages/intl-pluralrules/lib/should-polyfill.js
983
986
  function supportedLocalesOf(locale) {
984
987
  if (!locale) {
@@ -988,7 +991,12 @@
988
991
  return Intl.PluralRules.supportedLocalesOf(locales).length === locales.length;
989
992
  }
990
993
  function shouldPolyfill(locale) {
991
- return !("PluralRules" in Intl) || new Intl.PluralRules("en", { minimumFractionDigits: 2 }).select(1) === "one" || !supportedLocalesOf(locale);
994
+ if (locale === void 0) {
995
+ locale = "en";
996
+ }
997
+ if (!("PluralRules" in Intl) || new Intl.PluralRules("en", { minimumFractionDigits: 2 }).select(1) === "one" || !supportedLocalesOf(locale)) {
998
+ return locale ? (0, import_intl_localematcher4.match)([locale], supportedLocales, "en") : void 0;
999
+ }
992
1000
  }
993
1001
 
994
1002
  // bazel-out/darwin-fastbuild/bin/packages/intl-pluralrules/lib/polyfill.js
package/polyfill.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var _1 = require("./");
4
4
  var should_polyfill_1 = require("./should-polyfill");
5
- if (should_polyfill_1.shouldPolyfill()) {
5
+ if ((0, should_polyfill_1.shouldPolyfill)()) {
6
6
  Object.defineProperty(Intl, 'PluralRules', {
7
7
  value: _1.PluralRules,
8
8
  writable: true,
@@ -1,2 +1,2 @@
1
- export declare function shouldPolyfill(locale?: string | string[]): boolean;
1
+ export declare function shouldPolyfill(locale?: string): string | undefined;
2
2
  //# sourceMappingURL=should-polyfill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"should-polyfill.d.ts","sourceRoot":"","sources":["../../../../../packages/intl-pluralrules/should-polyfill.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,WAOxD"}
1
+ {"version":3,"file":"should-polyfill.d.ts","sourceRoot":"","sources":["../../../../../packages/intl-pluralrules/should-polyfill.ts"],"names":[],"mappings":"AAWA,wBAAgB,cAAc,CAAC,MAAM,SAAO,sBAS3C"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.shouldPolyfill = void 0;
4
+ var intl_localematcher_1 = require("@formatjs/intl-localematcher");
5
+ var supported_locales_1 = require("./supported-locales");
4
6
  function supportedLocalesOf(locale) {
5
7
  if (!locale) {
6
8
  return true;
@@ -9,9 +11,12 @@ function supportedLocalesOf(locale) {
9
11
  return Intl.PluralRules.supportedLocalesOf(locales).length === locales.length;
10
12
  }
11
13
  function shouldPolyfill(locale) {
12
- return (!('PluralRules' in Intl) ||
14
+ if (locale === void 0) { locale = 'en'; }
15
+ if (!('PluralRules' in Intl) ||
13
16
  new Intl.PluralRules('en', { minimumFractionDigits: 2 }).select(1) ===
14
17
  'one' ||
15
- !supportedLocalesOf(locale));
18
+ !supportedLocalesOf(locale)) {
19
+ return locale ? (0, intl_localematcher_1.match)([locale], supported_locales_1.supportedLocales, 'en') : undefined;
20
+ }
16
21
  }
17
22
  exports.shouldPolyfill = shouldPolyfill;
@@ -0,0 +1,2 @@
1
+ export declare const supportedLocales: string[];
2
+ //# sourceMappingURL=supported-locales.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supported-locales.d.ts","sourceRoot":"","sources":["../../../../../packages/intl-pluralrules/supported-locales.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAA4nC,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.supportedLocales = void 0;
4
+ // This file is generated from supported-locales-gen.ts
5
+ exports.supportedLocales = ["af", "ak", "am", "an", "ar", "ars", "as", "asa", "ast", "az", "be", "bem", "bez", "bg", "bho", "bm", "bn", "bo", "br", "brx", "bs", "ca", "ce", "ceb", "cgg", "chr", "ckb", "cs", "cy", "da", "de", "doi", "dsb", "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff", "fi", "fil", "fo", "fr", "fur", "fy", "ga", "gd", "gl", "gsw", "gu", "guw", "gv", "ha", "haw", "he", "hi", "hr", "hsb", "hu", "hy", "ia", "id", "ig", "ii", "in", "io", "is", "it", "iu", "iw", "ja", "jbo", "jgo", "ji", "jmc", "jv", "jw", "ka", "kab", "kaj", "kcg", "kde", "kea", "kk", "kkj", "kl", "km", "kn", "ko", "ks", "ksb", "ksh", "ku", "kw", "ky", "lag", "lb", "lg", "lij", "lkt", "ln", "lo", "lt", "lv", "mas", "mg", "mgo", "mk", "ml", "mn", "mo", "mr", "ms", "mt", "my", "nah", "naq", "nb", "nd", "ne", "nl", "nn", "nnh", "no", "nqo", "nr", "nso", "ny", "nyn", "om", "or", "os", "osa", "pa", "pap", "pcm", "pl", "prg", "ps", "pt-PT", "pt", "rm", "ro", "rof", "ru", "rwk", "sah", "saq", "sat", "sc", "scn", "sd", "sdh", "se", "seh", "ses", "sg", "sh", "shi", "si", "sk", "sl", "sma", "smi", "smj", "smn", "sms", "sn", "so", "sq", "sr", "ss", "ssy", "st", "su", "sv", "sw", "syr", "ta", "te", "teo", "th", "ti", "tig", "tk", "tl", "tn", "to", "tr", "ts", "tzm", "ug", "uk", "ur", "uz", "ve", "vi", "vo", "vun", "wa", "wae", "wo", "xh", "xog", "yi", "yo", "yue", "zh", "zu"];