@formatjs/intl-datetimeformat 7.0.4 → 7.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -5
- package/polyfill.iife.js +107 -10
- package/src/types.d.ts +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@formatjs/intl-datetimeformat",
|
|
3
3
|
"description": "Intl.DateTimeFormat polyfill",
|
|
4
|
-
"version": "7.0.
|
|
4
|
+
"version": "7.0.6",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Long Ho <holevietlong@gmail.com>",
|
|
7
7
|
"type": "module",
|
|
@@ -12,17 +12,18 @@
|
|
|
12
12
|
"./polyfill-force.js": "./polyfill-force.js",
|
|
13
13
|
"./should-polyfill.js": "./should-polyfill.js",
|
|
14
14
|
"./add-all-tz.js": "./add-all-tz.js",
|
|
15
|
+
"./add-golden-tz.js": "./add-golden-tz.js",
|
|
15
16
|
"./locale-data/*": "./locale-data/*"
|
|
16
17
|
},
|
|
17
18
|
"dependencies": {
|
|
18
19
|
"decimal.js": "^10.4.3",
|
|
19
20
|
"tslib": "^2.8.0",
|
|
20
|
-
"@formatjs/ecma402-abstract": "3.0.
|
|
21
|
-
"@formatjs/intl-localematcher": "0.7.
|
|
21
|
+
"@formatjs/ecma402-abstract": "3.0.5",
|
|
22
|
+
"@formatjs/intl-localematcher": "0.7.3"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
24
|
-
"@formatjs/intl-getcanonicallocales": "3.0.
|
|
25
|
-
"@formatjs/intl-locale": "5.0.
|
|
25
|
+
"@formatjs/intl-getcanonicallocales": "3.0.4",
|
|
26
|
+
"@formatjs/intl-locale": "5.0.6"
|
|
26
27
|
},
|
|
27
28
|
"bugs": "https://github.com/formatjs/formatjs/issues",
|
|
28
29
|
"homepage": "https://github.com/formatjs/formatjs#readme",
|
package/polyfill.iife.js
CHANGED
|
@@ -2987,6 +2987,11 @@
|
|
|
2987
2987
|
return zoneNames.has(uppercasedTz) || linkNames.has(uppercasedTz);
|
|
2988
2988
|
}
|
|
2989
2989
|
|
|
2990
|
+
// node_modules/.aspect_rules_js/@formatjs+ecma402-abstract@0.0.0/node_modules/@formatjs/ecma402-abstract/NumberFormat/decimal-cache.js
|
|
2991
|
+
var getPowerOf10 = memoize(function(exponent) {
|
|
2992
|
+
return Decimal.pow(10, exponent);
|
|
2993
|
+
});
|
|
2994
|
+
|
|
2990
2995
|
// node_modules/.aspect_rules_js/@formatjs+ecma402-abstract@0.0.0/node_modules/@formatjs/ecma402-abstract/NumberFormat/ComputeExponentForMagnitude.js
|
|
2991
2996
|
Decimal.set({
|
|
2992
2997
|
toExpPos: 100
|
|
@@ -7048,7 +7053,7 @@
|
|
|
7048
7053
|
}
|
|
7049
7054
|
throw new Error("No matching distance found");
|
|
7050
7055
|
}
|
|
7051
|
-
function
|
|
7056
|
+
function findMatchingDistanceImpl(desired, supported) {
|
|
7052
7057
|
var desiredLocale = new Intl.Locale(desired).maximize();
|
|
7053
7058
|
var supportedLocale = new Intl.Locale(supported).maximize();
|
|
7054
7059
|
var desiredLSR = {
|
|
@@ -7090,7 +7095,26 @@
|
|
|
7090
7095
|
}
|
|
7091
7096
|
return matchingDistance;
|
|
7092
7097
|
}
|
|
7098
|
+
var findMatchingDistance = memoize(findMatchingDistanceImpl, {
|
|
7099
|
+
serializer: function(args) {
|
|
7100
|
+
return "".concat(args[0], "|").concat(args[1]);
|
|
7101
|
+
}
|
|
7102
|
+
});
|
|
7103
|
+
function getFallbackCandidates(locale) {
|
|
7104
|
+
var candidates = [];
|
|
7105
|
+
var current = locale;
|
|
7106
|
+
while (current) {
|
|
7107
|
+
candidates.push(current);
|
|
7108
|
+
var lastDash = current.lastIndexOf("-");
|
|
7109
|
+
if (lastDash === -1)
|
|
7110
|
+
break;
|
|
7111
|
+
current = current.substring(0, lastDash);
|
|
7112
|
+
}
|
|
7113
|
+
return candidates;
|
|
7114
|
+
}
|
|
7115
|
+
var canonicalizedSupportedCache = /* @__PURE__ */ new WeakMap();
|
|
7093
7116
|
function findBestMatch(requestedLocales, supportedLocales2, threshold) {
|
|
7117
|
+
var _a;
|
|
7094
7118
|
if (threshold === void 0) {
|
|
7095
7119
|
threshold = DEFAULT_MATCHING_THRESHOLD;
|
|
7096
7120
|
}
|
|
@@ -7099,17 +7123,84 @@
|
|
|
7099
7123
|
matchedDesiredLocale: "",
|
|
7100
7124
|
distances: {}
|
|
7101
7125
|
};
|
|
7102
|
-
|
|
7103
|
-
|
|
7104
|
-
|
|
7105
|
-
|
|
7106
|
-
|
|
7107
|
-
|
|
7108
|
-
|
|
7126
|
+
var canonicalizedSupportedLocales = canonicalizedSupportedCache.get(supportedLocales2);
|
|
7127
|
+
if (!canonicalizedSupportedLocales) {
|
|
7128
|
+
canonicalizedSupportedLocales = supportedLocales2.map(function(locale) {
|
|
7129
|
+
try {
|
|
7130
|
+
var canonical = Intl.getCanonicalLocales([locale]);
|
|
7131
|
+
return canonical[0] || locale;
|
|
7132
|
+
} catch (_a2) {
|
|
7133
|
+
return locale;
|
|
7134
|
+
}
|
|
7135
|
+
});
|
|
7136
|
+
canonicalizedSupportedCache.set(supportedLocales2, canonicalizedSupportedLocales);
|
|
7137
|
+
}
|
|
7138
|
+
var supportedSet = new Set(canonicalizedSupportedLocales);
|
|
7139
|
+
for (var i = 0; i < requestedLocales.length; i++) {
|
|
7140
|
+
var desired = requestedLocales[i];
|
|
7141
|
+
if (supportedSet.has(desired)) {
|
|
7142
|
+
var distance = 0 + i * 40;
|
|
7143
|
+
result.distances[desired] = (_a = {}, _a[desired] = distance, _a);
|
|
7109
7144
|
if (distance < lowestDistance) {
|
|
7110
7145
|
lowestDistance = distance;
|
|
7111
7146
|
result.matchedDesiredLocale = desired;
|
|
7112
|
-
result.matchedSupportedLocale =
|
|
7147
|
+
result.matchedSupportedLocale = desired;
|
|
7148
|
+
}
|
|
7149
|
+
if (i === 0) {
|
|
7150
|
+
return result;
|
|
7151
|
+
}
|
|
7152
|
+
}
|
|
7153
|
+
}
|
|
7154
|
+
for (var i = 0; i < requestedLocales.length; i++) {
|
|
7155
|
+
var desired = requestedLocales[i];
|
|
7156
|
+
try {
|
|
7157
|
+
var maximized = new Intl.Locale(desired).maximize().toString();
|
|
7158
|
+
if (maximized !== desired) {
|
|
7159
|
+
var maximizedCandidates = getFallbackCandidates(maximized);
|
|
7160
|
+
for (var j = 0; j < maximizedCandidates.length; j++) {
|
|
7161
|
+
var candidate = maximizedCandidates[j];
|
|
7162
|
+
if (candidate === desired)
|
|
7163
|
+
continue;
|
|
7164
|
+
if (supportedSet.has(candidate)) {
|
|
7165
|
+
var distance = void 0;
|
|
7166
|
+
try {
|
|
7167
|
+
var candidateMaximized = new Intl.Locale(candidate).maximize().toString();
|
|
7168
|
+
distance = candidateMaximized === maximized ? 0 + i * 40 : j * 10 + i * 40;
|
|
7169
|
+
} catch (_b) {
|
|
7170
|
+
distance = j * 10 + i * 40;
|
|
7171
|
+
}
|
|
7172
|
+
if (!result.distances[desired]) {
|
|
7173
|
+
result.distances[desired] = {};
|
|
7174
|
+
}
|
|
7175
|
+
result.distances[desired][candidate] = distance;
|
|
7176
|
+
if (distance < lowestDistance) {
|
|
7177
|
+
lowestDistance = distance;
|
|
7178
|
+
result.matchedDesiredLocale = desired;
|
|
7179
|
+
result.matchedSupportedLocale = candidate;
|
|
7180
|
+
}
|
|
7181
|
+
break;
|
|
7182
|
+
}
|
|
7183
|
+
}
|
|
7184
|
+
}
|
|
7185
|
+
} catch (_c) {
|
|
7186
|
+
}
|
|
7187
|
+
}
|
|
7188
|
+
if (result.matchedSupportedLocale && lowestDistance === 0) {
|
|
7189
|
+
return result;
|
|
7190
|
+
}
|
|
7191
|
+
requestedLocales.forEach(function(desired2, i2) {
|
|
7192
|
+
if (!result.distances[desired2]) {
|
|
7193
|
+
result.distances[desired2] = {};
|
|
7194
|
+
}
|
|
7195
|
+
canonicalizedSupportedLocales.forEach(function(canonicalLocale, supportedIndex) {
|
|
7196
|
+
var originalSupported = supportedLocales2[supportedIndex];
|
|
7197
|
+
var distance2 = findMatchingDistance(desired2, canonicalLocale);
|
|
7198
|
+
var finalDistance = distance2 + 0 + i2 * 40;
|
|
7199
|
+
result.distances[desired2][originalSupported] = finalDistance;
|
|
7200
|
+
if (finalDistance < lowestDistance) {
|
|
7201
|
+
lowestDistance = finalDistance;
|
|
7202
|
+
result.matchedDesiredLocale = desired2;
|
|
7203
|
+
result.matchedSupportedLocale = originalSupported;
|
|
7113
7204
|
}
|
|
7114
7205
|
});
|
|
7115
7206
|
});
|
|
@@ -7190,10 +7281,16 @@
|
|
|
7190
7281
|
}
|
|
7191
7282
|
|
|
7192
7283
|
// node_modules/.aspect_rules_js/@formatjs+intl-localematcher@0.0.0/node_modules/@formatjs/intl-localematcher/abstract/BestAvailableLocale.js
|
|
7284
|
+
var availableLocalesSetCache = /* @__PURE__ */ new WeakMap();
|
|
7193
7285
|
function BestAvailableLocale(availableLocales, locale) {
|
|
7286
|
+
var availableSet = availableLocalesSetCache.get(availableLocales);
|
|
7287
|
+
if (!availableSet) {
|
|
7288
|
+
availableSet = new Set(availableLocales);
|
|
7289
|
+
availableLocalesSetCache.set(availableLocales, availableSet);
|
|
7290
|
+
}
|
|
7194
7291
|
var candidate = locale;
|
|
7195
7292
|
while (true) {
|
|
7196
|
-
if (
|
|
7293
|
+
if (availableSet.has(candidate)) {
|
|
7197
7294
|
return candidate;
|
|
7198
7295
|
}
|
|
7199
7296
|
var pos = candidate.lastIndexOf("-");
|