@formatjs/intl-locale 4.2.2 → 4.2.3

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 (2) hide show
  1. package/package.json +3 -3
  2. package/polyfill.iife.js +50 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formatjs/intl-locale",
3
- "version": "4.2.2",
3
+ "version": "4.2.3",
4
4
  "description": "Intl.Locale polyfill",
5
5
  "keywords": [
6
6
  "intl",
@@ -25,8 +25,8 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "tslib": "2",
28
- "@formatjs/ecma402-abstract": "2.2.2",
29
- "@formatjs/intl-enumerator": "1.8.2",
28
+ "@formatjs/intl-enumerator": "1.8.3",
29
+ "@formatjs/ecma402-abstract": "2.2.3",
30
30
  "@formatjs/intl-getcanonicallocales": "2.5.2"
31
31
  }
32
32
  }
package/polyfill.iife.js CHANGED
@@ -1309,7 +1309,54 @@
1309
1309
  "use strict";
1310
1310
  Object.defineProperty(exports, "__esModule", { value: true });
1311
1311
  exports.CollapseNumberRange = CollapseNumberRange2;
1312
- function CollapseNumberRange2(result) {
1312
+ var PART_TYPES_TO_COLLAPSE = /* @__PURE__ */ new Set([
1313
+ "unit",
1314
+ "exponentMinusSign",
1315
+ "minusSign",
1316
+ "plusSign",
1317
+ "percentSign",
1318
+ "exponentSeparator",
1319
+ "percent",
1320
+ "percentSign",
1321
+ "currency",
1322
+ "literal"
1323
+ ]);
1324
+ function CollapseNumberRange2(numberFormat, result, _a) {
1325
+ var getInternalSlots2 = _a.getInternalSlots;
1326
+ var internalSlots = getInternalSlots2(numberFormat);
1327
+ var symbols = internalSlots.dataLocaleData.numbers.symbols[internalSlots.numberingSystem];
1328
+ var rangeSignRegex = new RegExp("s?[".concat(symbols.rangeSign, "]s?"));
1329
+ var rangeSignIndex = result.findIndex(function(r) {
1330
+ return r.type === "literal" && rangeSignRegex.test(r.value);
1331
+ });
1332
+ var prefixSignParts = [];
1333
+ for (var i = rangeSignIndex - 1; i >= 0; i--) {
1334
+ if (!PART_TYPES_TO_COLLAPSE.has(result[i].type)) {
1335
+ break;
1336
+ }
1337
+ prefixSignParts.unshift(result[i]);
1338
+ }
1339
+ if (Array.from(prefixSignParts.map(function(p) {
1340
+ return p.value;
1341
+ }).join("")).length > 1) {
1342
+ var newResult = Array.from(result);
1343
+ newResult.splice(rangeSignIndex - prefixSignParts.length, prefixSignParts.length);
1344
+ return newResult;
1345
+ }
1346
+ var suffixSignParts = [];
1347
+ for (var i = rangeSignIndex + 1; i < result.length; i++) {
1348
+ if (!PART_TYPES_TO_COLLAPSE.has(result[i].type)) {
1349
+ break;
1350
+ }
1351
+ suffixSignParts.push(result[i]);
1352
+ }
1353
+ if (Array.from(suffixSignParts.map(function(p) {
1354
+ return p.value;
1355
+ }).join("")).length > 1) {
1356
+ var newResult = Array.from(result);
1357
+ newResult.splice(rangeSignIndex + 1, suffixSignParts.length);
1358
+ return newResult;
1359
+ }
1313
1360
  return result;
1314
1361
  }
1315
1362
  }
@@ -3014,9 +3061,9 @@
3014
3061
  "use strict";
3015
3062
  Object.defineProperty(exports, "__esModule", { value: true });
3016
3063
  exports.PartitionNumberRangePattern = PartitionNumberRangePattern2;
3017
- var PartitionNumberPattern_1 = require_PartitionNumberPattern();
3018
3064
  var CollapseNumberRange_1 = require_CollapseNumberRange();
3019
3065
  var FormatApproximately_1 = require_FormatApproximately();
3066
+ var PartitionNumberPattern_1 = require_PartitionNumberPattern();
3020
3067
  function PartitionNumberRangePattern2(numberFormat, x, y, _a) {
3021
3068
  var getInternalSlots2 = _a.getInternalSlots;
3022
3069
  if (isNaN(x) || isNaN(y)) {
@@ -3041,7 +3088,7 @@
3041
3088
  r.source = "endRange";
3042
3089
  }
3043
3090
  result = result.concat(yResult);
3044
- return (0, CollapseNumberRange_1.CollapseNumberRange)(result);
3091
+ return (0, CollapseNumberRange_1.CollapseNumberRange)(numberFormat, result, { getInternalSlots: getInternalSlots2 });
3045
3092
  }
3046
3093
  }
3047
3094
  });