@commercetools-frontend/l10n 22.2.0 → 22.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.
- package/dist/commercetools-frontend-l10n.cjs.dev.js +82 -178
- package/dist/commercetools-frontend-l10n.cjs.prod.js +82 -178
- package/dist/commercetools-frontend-l10n.esm.js +82 -178
- package/dist/declarations/src/country-information.d.ts +1 -1
- package/dist/declarations/src/create-l10n-injector/create-l10n-injector.d.ts +1 -1
- package/dist/declarations/src/currency-information.d.ts +1 -1
- package/dist/declarations/src/language-information.d.ts +1 -1
- package/dist/declarations/src/time-zone-information.d.ts +1 -1
- package/package.json +23 -10
|
@@ -50,7 +50,7 @@ var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
|
50
50
|
var omit__default = /*#__PURE__*/_interopDefault(omit);
|
|
51
51
|
|
|
52
52
|
// NOTE: This string will be replaced on build time with the package version.
|
|
53
|
-
var version = "22.
|
|
53
|
+
var version = "22.3.0";
|
|
54
54
|
|
|
55
55
|
const mapLocaleToIntlLocale = locale => {
|
|
56
56
|
if (_startsWithInstanceProperty__default["default"](locale).call(locale, 'de')) return 'de';
|
|
@@ -60,101 +60,88 @@ const mapLocaleToIntlLocale = locale => {
|
|
|
60
60
|
return 'en';
|
|
61
61
|
};
|
|
62
62
|
const supportedLocales = ['en', 'de', 'es', 'fr-FR', 'zh-CN'];
|
|
63
|
-
const defaultLocale = 'en';
|
|
64
|
-
// If not, return a default locale.
|
|
63
|
+
const defaultLocale = 'en';
|
|
65
64
|
|
|
65
|
+
// Given a locale, return the locale only if it's supported.
|
|
66
|
+
// If not, return a default locale.
|
|
66
67
|
function getSupportedLocale(locale) {
|
|
67
68
|
const isSupported = _findInstanceProperty__default["default"](supportedLocales).call(supportedLocales, supportedLocale => _startsWithInstanceProperty__default["default"](locale).call(locale, supportedLocale));
|
|
68
|
-
|
|
69
69
|
return isSupported ? locale : defaultLocale;
|
|
70
|
-
}
|
|
71
|
-
// [{ label, symbol }], we return the symbol.
|
|
70
|
+
}
|
|
72
71
|
|
|
72
|
+
// given a currenyCode and a list of currencies with the following shape
|
|
73
|
+
// [{ label, symbol }], we return the symbol.
|
|
73
74
|
const getSymbolFromCurrency = (currencyCode, currencies) => {
|
|
74
75
|
if (currencies[currencyCode] && currencies[currencyCode].symbol) {
|
|
75
76
|
return currencies[currencyCode].symbol;
|
|
76
77
|
}
|
|
77
|
-
|
|
78
78
|
return '';
|
|
79
|
-
};
|
|
79
|
+
};
|
|
80
80
|
|
|
81
|
+
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
81
82
|
const getDisplayName = Component => {
|
|
82
83
|
if (typeof Component === 'string') {
|
|
83
84
|
return Component;
|
|
84
85
|
}
|
|
85
|
-
|
|
86
86
|
if (!Component) {
|
|
87
87
|
return undefined;
|
|
88
88
|
}
|
|
89
|
-
|
|
90
89
|
return Component.displayName || Component.name || 'Component';
|
|
91
90
|
};
|
|
92
91
|
const getPrimaryLocale = locale => locale.split('-')[0];
|
|
93
92
|
const formatLocalizedFallbackHint = (value, locale) => {
|
|
94
93
|
var _context;
|
|
95
|
-
|
|
96
94
|
return _concatInstanceProperty__default["default"](_context = "".concat(value, " (")).call(_context, locale.toUpperCase(), ")");
|
|
97
95
|
};
|
|
98
96
|
const findFallbackLocale = (localizedString, fallbackOrder) => {
|
|
99
97
|
var _context2;
|
|
100
|
-
|
|
101
98
|
return _findInstanceProperty__default["default"](_context2 = _concatInstanceProperty__default["default"](fallbackOrder).call(fallbackOrder, _Object$keys__default["default"](localizedString))).call(_context2, lang => Boolean(localizedString[lang]));
|
|
102
99
|
};
|
|
103
100
|
|
|
104
101
|
function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
105
|
-
|
|
106
102
|
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
107
103
|
const initialState = {
|
|
108
104
|
isLoading: true,
|
|
109
105
|
// Keep it as an empty object, for backwards compatibility
|
|
110
106
|
data: {}
|
|
111
107
|
};
|
|
112
|
-
|
|
113
108
|
function reducer() {
|
|
114
109
|
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
115
110
|
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
116
|
-
|
|
117
111
|
switch (action.type) {
|
|
118
112
|
case 'loading':
|
|
119
113
|
return _objectSpread$2(_objectSpread$2({}, state), {}, {
|
|
120
114
|
isLoading: true,
|
|
121
115
|
data: {}
|
|
122
116
|
});
|
|
123
|
-
|
|
124
117
|
case 'ok':
|
|
125
118
|
return _objectSpread$2(_objectSpread$2({}, state), {}, {
|
|
126
119
|
isLoading: false,
|
|
127
120
|
data: action.data
|
|
128
121
|
});
|
|
129
|
-
|
|
130
122
|
case 'error':
|
|
131
123
|
return _objectSpread$2(_objectSpread$2({}, state), {}, {
|
|
132
124
|
isLoading: false,
|
|
133
125
|
error: action.error
|
|
134
126
|
});
|
|
135
|
-
|
|
136
127
|
default:
|
|
137
128
|
return state;
|
|
138
129
|
}
|
|
139
130
|
}
|
|
140
|
-
|
|
141
131
|
function createL10NHook(loadLocale) {
|
|
142
132
|
return locale => {
|
|
143
133
|
const _useReducer = react.useReducer(reducer, initialState),
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
134
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
135
|
+
data = _useReducer2[0],
|
|
136
|
+
dispatch = _useReducer2[1];
|
|
148
137
|
react.useEffect(() => {
|
|
149
138
|
let cleaning = false;
|
|
150
139
|
dispatch({
|
|
151
140
|
type: 'loading'
|
|
152
141
|
});
|
|
153
|
-
|
|
154
142
|
async function run() {
|
|
155
143
|
try {
|
|
156
144
|
const data = await loadLocale(locale);
|
|
157
|
-
|
|
158
145
|
if (!cleaning) {
|
|
159
146
|
dispatch({
|
|
160
147
|
type: 'ok',
|
|
@@ -164,7 +151,6 @@ function createL10NHook(loadLocale) {
|
|
|
164
151
|
} catch (error) {
|
|
165
152
|
if (error instanceof Error) {
|
|
166
153
|
sentry.reportErrorToSentry(error);
|
|
167
|
-
|
|
168
154
|
if (!cleaning) {
|
|
169
155
|
dispatch({
|
|
170
156
|
type: 'error',
|
|
@@ -174,7 +160,6 @@ function createL10NHook(loadLocale) {
|
|
|
174
160
|
}
|
|
175
161
|
}
|
|
176
162
|
}
|
|
177
|
-
|
|
178
163
|
run();
|
|
179
164
|
return () => {
|
|
180
165
|
cleaning = true;
|
|
@@ -185,14 +170,13 @@ function createL10NHook(loadLocale) {
|
|
|
185
170
|
}
|
|
186
171
|
function createL10NInjector(_ref) {
|
|
187
172
|
let displayName = _ref.displayName,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
173
|
+
propKey = _ref.propKey,
|
|
174
|
+
propLoadingKey = _ref.propLoadingKey,
|
|
175
|
+
loadLocale = _ref.loadLocale;
|
|
191
176
|
return function createHOC(mapPropsToLocale) {
|
|
192
177
|
const useL10n = createL10NHook(loadLocale);
|
|
193
178
|
return WrappedComponent => {
|
|
194
179
|
var _context;
|
|
195
|
-
|
|
196
180
|
const L10NComponent = props => {
|
|
197
181
|
const state = useL10n(mapPropsToLocale(props));
|
|
198
182
|
return jsxRuntime.jsx(WrappedComponent, _objectSpread$2(_objectSpread$2({}, props), {}, {
|
|
@@ -200,7 +184,6 @@ function createL10NInjector(_ref) {
|
|
|
200
184
|
[propKey]: state.data
|
|
201
185
|
}));
|
|
202
186
|
};
|
|
203
|
-
|
|
204
187
|
L10NComponent.displayName = _concatInstanceProperty__default["default"](_context = "".concat(displayName, "(")).call(_context, getDisplayName(WrappedComponent), ")");
|
|
205
188
|
return L10NComponent;
|
|
206
189
|
};
|
|
@@ -209,52 +192,35 @@ function createL10NInjector(_ref) {
|
|
|
209
192
|
|
|
210
193
|
const getImportChunk$3 = locale => {
|
|
211
194
|
const intlLocale = mapLocaleToIntlLocale(locale);
|
|
212
|
-
|
|
213
195
|
switch (intlLocale) {
|
|
214
196
|
case 'de':
|
|
215
|
-
return Promise.resolve().then(function () { return require(
|
|
216
|
-
/* webpackChunkName: "country-data-de" */
|
|
217
|
-
'./de-d39b5241.cjs.dev.js'); });
|
|
218
|
-
|
|
197
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "country-data-de" */'./de-d39b5241.cjs.dev.js'); });
|
|
219
198
|
case 'es':
|
|
220
|
-
return Promise.resolve().then(function () { return require(
|
|
221
|
-
/* webpackChunkName: "country-data-es" */
|
|
222
|
-
'./es-8c811c5d.cjs.dev.js'); });
|
|
223
|
-
|
|
199
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "country-data-es" */'./es-8c811c5d.cjs.dev.js'); });
|
|
224
200
|
case 'fr-FR':
|
|
225
|
-
return Promise.resolve().then(function () { return require(
|
|
226
|
-
/* webpackChunkName: "country-data-fr-FR" */
|
|
227
|
-
'./fr-FR-25212b0c.cjs.dev.js'); });
|
|
228
|
-
|
|
201
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "country-data-fr-FR" */'./fr-FR-25212b0c.cjs.dev.js'); });
|
|
229
202
|
case 'zh-CN':
|
|
230
|
-
return Promise.resolve().then(function () { return require(
|
|
231
|
-
/* webpackChunkName: "country-data-zh-CN" */
|
|
232
|
-
'./zh-CN-7b011ecd.cjs.dev.js'); });
|
|
233
|
-
|
|
203
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "country-data-zh-CN" */'./zh-CN-7b011ecd.cjs.dev.js'); });
|
|
234
204
|
default:
|
|
235
|
-
return Promise.resolve().then(function () { return require(
|
|
236
|
-
/* webpackChunkName: "country-data-en" */
|
|
237
|
-
'./en-2cb6372d.cjs.dev.js'); });
|
|
205
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "country-data-en" */'./en-2cb6372d.cjs.dev.js'); });
|
|
238
206
|
}
|
|
239
207
|
};
|
|
240
|
-
|
|
241
208
|
const countriesShape = PropTypes__default["default"].objectOf(PropTypes__default["default"].string);
|
|
209
|
+
|
|
242
210
|
/**
|
|
243
211
|
* If running through webpack, code splitting makes `getCountriesForLocale`
|
|
244
212
|
* a function that asynchronously loads the country data.
|
|
245
213
|
*/
|
|
246
|
-
|
|
247
214
|
const getCountriesForLocale = async locale => {
|
|
248
|
-
const supportedLocale = getSupportedLocale(locale);
|
|
215
|
+
const supportedLocale = getSupportedLocale(locale);
|
|
216
|
+
// Use default webpackMode (lazy) so that we generate one file per locale.
|
|
249
217
|
// The files are named like "country-data-en-json.chunk.js" after compilation
|
|
250
218
|
// https://webpack.js.org/api/module-methods/#import-
|
|
251
|
-
|
|
252
|
-
|
|
219
|
+
const countries = await getImportChunk$3(supportedLocale);
|
|
220
|
+
// Prefer loading `default` (for ESM bundles) and
|
|
253
221
|
// fall back to normal import (for CJS bundles).
|
|
254
|
-
|
|
255
222
|
return countries.default || countries;
|
|
256
223
|
};
|
|
257
|
-
|
|
258
224
|
const withCountries = createL10NInjector({
|
|
259
225
|
displayName: 'withCountries',
|
|
260
226
|
propKey: 'countries',
|
|
@@ -265,55 +231,38 @@ const useCountries = createL10NHook(getCountriesForLocale);
|
|
|
265
231
|
|
|
266
232
|
const getImportChunk$2 = locale => {
|
|
267
233
|
const intlLocale = mapLocaleToIntlLocale(locale);
|
|
268
|
-
|
|
269
234
|
switch (intlLocale) {
|
|
270
235
|
case 'de':
|
|
271
|
-
return Promise.resolve().then(function () { return require(
|
|
272
|
-
/* webpackChunkName: "currency-data-de" */
|
|
273
|
-
'./de-d18a0288.cjs.dev.js'); });
|
|
274
|
-
|
|
236
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "currency-data-de" */'./de-d18a0288.cjs.dev.js'); });
|
|
275
237
|
case 'es':
|
|
276
|
-
return Promise.resolve().then(function () { return require(
|
|
277
|
-
/* webpackChunkName: "currency-data-es" */
|
|
278
|
-
'./es-7043188a.cjs.dev.js'); });
|
|
279
|
-
|
|
238
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "currency-data-es" */'./es-7043188a.cjs.dev.js'); });
|
|
280
239
|
case 'fr-FR':
|
|
281
|
-
return Promise.resolve().then(function () { return require(
|
|
282
|
-
/* webpackChunkName: "currency-data-fr-FR" */
|
|
283
|
-
'./fr-FR-a7f43360.cjs.dev.js'); });
|
|
284
|
-
|
|
240
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "currency-data-fr-FR" */'./fr-FR-a7f43360.cjs.dev.js'); });
|
|
285
241
|
case 'zh-CN':
|
|
286
|
-
return Promise.resolve().then(function () { return require(
|
|
287
|
-
/* webpackChunkName: "currency-data-zh-CN" */
|
|
288
|
-
'./zh-CN-10572f2d.cjs.dev.js'); });
|
|
289
|
-
|
|
242
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "currency-data-zh-CN" */'./zh-CN-10572f2d.cjs.dev.js'); });
|
|
290
243
|
default:
|
|
291
|
-
return Promise.resolve().then(function () { return require(
|
|
292
|
-
/* webpackChunkName: "currency-data-en" */
|
|
293
|
-
'./en-68409d0b.cjs.dev.js'); });
|
|
244
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "currency-data-en" */'./en-68409d0b.cjs.dev.js'); });
|
|
294
245
|
}
|
|
295
246
|
};
|
|
296
|
-
|
|
297
247
|
PropTypes__default["default"].objectOf(PropTypes__default["default"].shape({
|
|
298
248
|
label: PropTypes__default["default"].string,
|
|
299
249
|
symbol: PropTypes__default["default"].string
|
|
300
250
|
}));
|
|
251
|
+
|
|
301
252
|
/**
|
|
302
253
|
* If running through webpack, code splitting makes `getCurrenciesForLocale`
|
|
303
254
|
* a function that asynchronously loads the country data.
|
|
304
255
|
*/
|
|
305
|
-
|
|
306
256
|
const getCurrenciesForLocale = async locale => {
|
|
307
|
-
const supportedLocale = getSupportedLocale(locale);
|
|
257
|
+
const supportedLocale = getSupportedLocale(locale);
|
|
258
|
+
// Use default webpackMode (lazy) so that we generate one file per locale.
|
|
308
259
|
// The files are named like "currency-data-en-json.chunk.js" after compilation
|
|
309
260
|
// https://webpack.js.org/api/module-methods/#import-
|
|
310
|
-
|
|
311
|
-
|
|
261
|
+
const currencies = await getImportChunk$2(supportedLocale);
|
|
262
|
+
// Prefer loading `default` (for ESM bundles) and
|
|
312
263
|
// fall back to normal import (for CJS bundles).
|
|
313
|
-
|
|
314
264
|
return currencies.default || currencies;
|
|
315
265
|
};
|
|
316
|
-
|
|
317
266
|
const withCurrencies = createL10NInjector({
|
|
318
267
|
displayName: 'withCurrencies',
|
|
319
268
|
propKey: 'currencies',
|
|
@@ -324,55 +273,38 @@ const useCurrencies = createL10NHook(getCurrenciesForLocale);
|
|
|
324
273
|
|
|
325
274
|
const getImportChunk$1 = locale => {
|
|
326
275
|
const intlLocale = mapLocaleToIntlLocale(locale);
|
|
327
|
-
|
|
328
276
|
switch (intlLocale) {
|
|
329
277
|
case 'de':
|
|
330
|
-
return Promise.resolve().then(function () { return require(
|
|
331
|
-
/* webpackChunkName: "language-data-de" */
|
|
332
|
-
'./de-179da050.cjs.dev.js'); });
|
|
333
|
-
|
|
278
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "language-data-de" */'./de-179da050.cjs.dev.js'); });
|
|
334
279
|
case 'es':
|
|
335
|
-
return Promise.resolve().then(function () { return require(
|
|
336
|
-
/* webpackChunkName: "language-data-es" */
|
|
337
|
-
'./es-2f0ccbcf.cjs.dev.js'); });
|
|
338
|
-
|
|
280
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "language-data-es" */'./es-2f0ccbcf.cjs.dev.js'); });
|
|
339
281
|
case 'fr-FR':
|
|
340
|
-
return Promise.resolve().then(function () { return require(
|
|
341
|
-
/* webpackChunkName: "language-data-fr-FR" */
|
|
342
|
-
'./fr-FR-d5a3cd0b.cjs.dev.js'); });
|
|
343
|
-
|
|
282
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "language-data-fr-FR" */'./fr-FR-d5a3cd0b.cjs.dev.js'); });
|
|
344
283
|
case 'zh-CN':
|
|
345
|
-
return Promise.resolve().then(function () { return require(
|
|
346
|
-
/* webpackChunkName: "language-data-zh-CN" */
|
|
347
|
-
'./zh-CN-028efd5b.cjs.dev.js'); });
|
|
348
|
-
|
|
284
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "language-data-zh-CN" */'./zh-CN-028efd5b.cjs.dev.js'); });
|
|
349
285
|
default:
|
|
350
|
-
return Promise.resolve().then(function () { return require(
|
|
351
|
-
/* webpackChunkName: "language-data-en" */
|
|
352
|
-
'./en-255416b8.cjs.dev.js'); });
|
|
286
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "language-data-en" */'./en-255416b8.cjs.dev.js'); });
|
|
353
287
|
}
|
|
354
288
|
};
|
|
355
|
-
|
|
356
289
|
const languagesShape = PropTypes__default["default"].objectOf(PropTypes__default["default"].shape({
|
|
357
290
|
country: PropTypes__default["default"].string,
|
|
358
291
|
language: PropTypes__default["default"].string.isRequired
|
|
359
292
|
}));
|
|
293
|
+
|
|
360
294
|
/**
|
|
361
295
|
* If running through webpack, code splitting makes `getLanguagesForLocale`
|
|
362
296
|
* a function that asynchronously loads the country data.
|
|
363
297
|
*/
|
|
364
|
-
|
|
365
298
|
const getLanguagesForLocale = async locale => {
|
|
366
|
-
const supportedLocale = getSupportedLocale(locale);
|
|
299
|
+
const supportedLocale = getSupportedLocale(locale);
|
|
300
|
+
// Use default webpackMode (lazy) so that we generate one file per locale.
|
|
367
301
|
// The files are named like "language-data-en-json.chunk.js" after compilation
|
|
368
302
|
// https://webpack.js.org/api/module-methods/#import-
|
|
369
|
-
|
|
370
|
-
|
|
303
|
+
const languages = await getImportChunk$1(supportedLocale);
|
|
304
|
+
// Prefer loading `default` (for ESM bundles) and
|
|
371
305
|
// fall back to normal import (for CJS bundles).
|
|
372
|
-
|
|
373
306
|
return languages.default || languages;
|
|
374
307
|
};
|
|
375
|
-
|
|
376
308
|
const withLanguages = createL10NInjector({
|
|
377
309
|
displayName: 'withLanguages',
|
|
378
310
|
propKey: 'languages',
|
|
@@ -382,32 +314,25 @@ const withLanguages = createL10NInjector({
|
|
|
382
314
|
const useLanguages = createL10NHook(getLanguagesForLocale);
|
|
383
315
|
|
|
384
316
|
function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
385
|
-
|
|
386
317
|
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$1(Object(source), !0)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$1(Object(source))).call(_context5, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
387
|
-
|
|
388
318
|
const getTranslationsMapChunk = async () => {
|
|
389
|
-
const translationsMapChunk = await Promise.resolve().then(function () { return require(
|
|
390
|
-
|
|
391
|
-
'./translations-map-0e2bd91e.cjs.dev.js'); }); // Prefer loading `default` (for ESM bundles) and
|
|
319
|
+
const translationsMapChunk = await Promise.resolve().then(function () { return require( /* webpackChunkName: "time-zone-translations-map" */'./translations-map-0e2bd91e.cjs.dev.js'); });
|
|
320
|
+
// Prefer loading `default` (for ESM bundles) and
|
|
392
321
|
// fall back to normal import (for CJS bundles).
|
|
393
|
-
|
|
394
322
|
return translationsMapChunk.default || translationsMapChunk;
|
|
395
323
|
};
|
|
324
|
+
|
|
396
325
|
/**
|
|
397
326
|
* Build offset and abbreviation data for each timezone at runtime from moment-timezone
|
|
398
327
|
* in order to return accurate offset values for timezones that have daylight time.
|
|
399
328
|
*/
|
|
400
|
-
|
|
401
|
-
|
|
402
329
|
const augmentTimeZoneData = async timeZones => {
|
|
403
330
|
var _context, _context2, _context3;
|
|
404
|
-
|
|
405
331
|
const translationsMap = await getTranslationsMapChunk();
|
|
406
332
|
return _reduceInstanceProperty__default["default"](_context = _sortInstanceProperty__default["default"](_context2 = _mapInstanceProperty__default["default"](_context3 = _Object$entries__default["default"](timeZones)).call(_context3, _ref => {
|
|
407
333
|
let _ref2 = _slicedToArray(_ref, 2),
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
334
|
+
id = _ref2[0],
|
|
335
|
+
name = _ref2[1];
|
|
411
336
|
return {
|
|
412
337
|
id,
|
|
413
338
|
name,
|
|
@@ -419,63 +344,46 @@ const augmentTimeZoneData = async timeZones => {
|
|
|
419
344
|
[timeZone.id]: timeZone
|
|
420
345
|
}), {});
|
|
421
346
|
};
|
|
422
|
-
|
|
423
347
|
const getImportChunk = locale => {
|
|
424
348
|
const intlLocale = mapLocaleToIntlLocale(locale);
|
|
425
|
-
|
|
426
349
|
switch (intlLocale) {
|
|
427
350
|
case 'de':
|
|
428
|
-
return Promise.resolve().then(function () { return require(
|
|
429
|
-
/* webpackChunkName: "timezone-data-de" */
|
|
430
|
-
'./de-a35429c3.cjs.dev.js'); });
|
|
431
|
-
|
|
351
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "timezone-data-de" */'./de-a35429c3.cjs.dev.js'); });
|
|
432
352
|
case 'es':
|
|
433
|
-
return Promise.resolve().then(function () { return require(
|
|
434
|
-
/* webpackChunkName: "timezone-data-es" */
|
|
435
|
-
'./es-dac5d844.cjs.dev.js'); });
|
|
436
|
-
|
|
353
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "timezone-data-es" */'./es-dac5d844.cjs.dev.js'); });
|
|
437
354
|
case 'fr-FR':
|
|
438
|
-
return Promise.resolve().then(function () { return require(
|
|
439
|
-
/* webpackChunkName: "timezone-data-fr-FR" */
|
|
440
|
-
'./fr-FR-0bcee641.cjs.dev.js'); });
|
|
441
|
-
|
|
355
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "timezone-data-fr-FR" */'./fr-FR-0bcee641.cjs.dev.js'); });
|
|
442
356
|
case 'zh-CN':
|
|
443
|
-
return Promise.resolve().then(function () { return require(
|
|
444
|
-
/* webpackChunkName: "timezone-data-zh-CN" */
|
|
445
|
-
'./zh-CN-e4b0166a.cjs.dev.js'); });
|
|
446
|
-
|
|
357
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "timezone-data-zh-CN" */'./zh-CN-e4b0166a.cjs.dev.js'); });
|
|
447
358
|
default:
|
|
448
|
-
return Promise.resolve().then(function () { return require(
|
|
449
|
-
/* webpackChunkName: "timezone-data-en" */
|
|
450
|
-
'./en-c5d0a319.cjs.dev.js'); });
|
|
359
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "timezone-data-en" */'./en-c5d0a319.cjs.dev.js'); });
|
|
451
360
|
}
|
|
452
361
|
};
|
|
453
|
-
|
|
454
362
|
const timeZonesShape = PropTypes__default["default"].objectOf(PropTypes__default["default"].shape({
|
|
455
363
|
label: PropTypes__default["default"].string,
|
|
456
364
|
abbr: PropTypes__default["default"].string,
|
|
457
365
|
offset: PropTypes__default["default"].string,
|
|
458
366
|
translationFor: PropTypes__default["default"].array
|
|
459
367
|
}));
|
|
368
|
+
|
|
460
369
|
/**
|
|
461
370
|
* If running through webpack, code splitting makes `getTimeZonesForLocale`
|
|
462
371
|
* a function that asynchronously loads the country data.
|
|
463
372
|
*/
|
|
464
|
-
|
|
465
373
|
const getTimeZonesForLocale = async locale => {
|
|
466
|
-
const supportedLocale = getSupportedLocale(locale);
|
|
374
|
+
const supportedLocale = getSupportedLocale(locale);
|
|
375
|
+
// Use default webpackMode (lazy) so that we generate one file per locale.
|
|
467
376
|
// The files are named like "time-zone-data-en-json.chunk.js" after compilation
|
|
468
377
|
// https://webpack.js.org/api/module-methods/#import-
|
|
469
|
-
|
|
470
|
-
|
|
378
|
+
const timeZonesChunk = await getImportChunk(supportedLocale);
|
|
379
|
+
// Prefer loading `default` (for ESM bundles) and
|
|
471
380
|
// fall back to normal import (for CJS bundles).
|
|
381
|
+
const timeZones = timeZonesChunk.default || timeZonesChunk;
|
|
472
382
|
|
|
473
|
-
|
|
474
|
-
|
|
383
|
+
// create time zone object with abbreviations and offsets
|
|
475
384
|
const timeZoneData = await augmentTimeZoneData(timeZones);
|
|
476
385
|
return timeZoneData;
|
|
477
386
|
};
|
|
478
|
-
|
|
479
387
|
const withTimeZones = createL10NInjector({
|
|
480
388
|
displayName: 'withTimeZones',
|
|
481
389
|
propKey: 'timeZones',
|
|
@@ -485,37 +393,34 @@ const withTimeZones = createL10NInjector({
|
|
|
485
393
|
const useTimeZones = createL10NHook(getTimeZonesForLocale);
|
|
486
394
|
|
|
487
395
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
488
|
-
|
|
489
396
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
397
|
+
|
|
490
398
|
/**
|
|
491
399
|
* Transforms a list of `LocalizedField` into a `LocalizedString` object
|
|
492
400
|
* [{ locale: 'sv', value: 'Hej' }] -> { sv: 'Hej' }
|
|
493
401
|
*/
|
|
494
|
-
|
|
495
402
|
const transformLocalizedFieldToLocalizedString = localizedFields => {
|
|
496
403
|
if (!localizedFields || localizedFields.length === 0) return null;
|
|
497
404
|
return _reduceInstanceProperty__default["default"](localizedFields).call(localizedFields, (nexLocalizedString, field) => _objectSpread(_objectSpread({}, nexLocalizedString), {}, {
|
|
498
405
|
[field.locale]: field.value
|
|
499
406
|
}), {});
|
|
500
407
|
};
|
|
408
|
+
|
|
501
409
|
/**
|
|
502
410
|
* Transforms a `LocalizedString` object into a list of `LocalizedField`
|
|
503
411
|
*
|
|
504
412
|
* { sv: 'Hej' } -> [{ locale: 'sv', value: 'Hej' }]
|
|
505
413
|
*/
|
|
506
|
-
|
|
507
414
|
const transformLocalizedStringToLocalizedField = localizedString => {
|
|
508
415
|
var _context;
|
|
509
|
-
|
|
510
416
|
if (!localizedString || _Object$keys__default["default"](localizedString).length === 0) return [];
|
|
511
|
-
|
|
512
417
|
const sorted = _sortInstanceProperty__default["default"](_context = _Object$keys__default["default"](localizedString)).call(_context);
|
|
513
|
-
|
|
514
418
|
return _reduceInstanceProperty__default["default"](sorted).call(sorted, (updatedLocalizedField, locale) => [...updatedLocalizedField, {
|
|
515
419
|
locale,
|
|
516
420
|
value: localizedString[locale]
|
|
517
421
|
}], []);
|
|
518
422
|
};
|
|
423
|
+
|
|
519
424
|
/**
|
|
520
425
|
* Given a list of localized field names to map, replace the fields in the
|
|
521
426
|
* format of `LocalizedField` to a `LocalizedString` object.
|
|
@@ -529,17 +434,15 @@ const transformLocalizedStringToLocalizedField = localizedString => {
|
|
|
529
434
|
* * `from`: the field to transform and to remove after
|
|
530
435
|
* * `to`: the target field to write the transformed shape
|
|
531
436
|
*/
|
|
532
|
-
|
|
533
437
|
const applyTransformedLocalizedFields = (objectWithLocalizedFields, fieldNames) => {
|
|
534
438
|
const transformedFieldDefinitions = _reduceInstanceProperty__default["default"](fieldNames).call(fieldNames, (nextTransformed, fieldName) => _objectSpread(_objectSpread({}, nextTransformed), {}, {
|
|
535
439
|
[fieldName.to]: transformLocalizedFieldToLocalizedString(objectWithLocalizedFields[fieldName.from])
|
|
536
440
|
}), {});
|
|
537
|
-
|
|
538
441
|
const namesToOmit = _mapInstanceProperty__default["default"](fieldNames).call(fieldNames, fieldName => fieldName.from);
|
|
539
|
-
|
|
540
442
|
const objectWithouLocalizedFields = omit__default["default"](objectWithLocalizedFields, namesToOmit);
|
|
541
443
|
return _objectSpread(_objectSpread({}, objectWithouLocalizedFields), transformedFieldDefinitions);
|
|
542
444
|
};
|
|
445
|
+
|
|
543
446
|
/**
|
|
544
447
|
* Given a list of localized string names to map, replace the fields in the
|
|
545
448
|
* format of `LocalizedString` to a `LocalizedField` object.
|
|
@@ -553,17 +456,15 @@ const applyTransformedLocalizedFields = (objectWithLocalizedFields, fieldNames)
|
|
|
553
456
|
* * `from`: the field to transform and to remove after
|
|
554
457
|
* * `to`: the target field to write the transformed shape
|
|
555
458
|
*/
|
|
556
|
-
|
|
557
459
|
const applyTransformedLocalizedStrings = (objectWithLocalizedStrings, fieldNames) => {
|
|
558
460
|
const transformedFieldDefinitions = _reduceInstanceProperty__default["default"](fieldNames).call(fieldNames, (nextTransformed, fieldName) => _objectSpread(_objectSpread({}, nextTransformed), {}, {
|
|
559
461
|
[fieldName.to]: transformLocalizedStringToLocalizedField(objectWithLocalizedStrings[fieldName.from])
|
|
560
462
|
}), {});
|
|
561
|
-
|
|
562
463
|
const namesToOmit = _mapInstanceProperty__default["default"](fieldNames).call(fieldNames, fieldName => fieldName.from);
|
|
563
|
-
|
|
564
464
|
const objectWithouLocalizedFields = omit__default["default"](objectWithLocalizedStrings, namesToOmit);
|
|
565
465
|
return _objectSpread(_objectSpread({}, objectWithouLocalizedFields), transformedFieldDefinitions);
|
|
566
466
|
};
|
|
467
|
+
|
|
567
468
|
/**
|
|
568
469
|
* Translates a localized string on an entity.
|
|
569
470
|
*
|
|
@@ -597,32 +498,35 @@ const applyTransformedLocalizedStrings = (objectWithLocalizedStrings, fieldNames
|
|
|
597
498
|
* let c = formatLocalizedString(undefined, { locale: 'en' })
|
|
598
499
|
* a === b && a === c -> true
|
|
599
500
|
*/
|
|
600
|
-
|
|
601
501
|
const formatLocalizedString = (entity, _ref) => {
|
|
602
502
|
let _ref$key = _ref.key,
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
503
|
+
key = _ref$key === void 0 ? '' : _ref$key,
|
|
504
|
+
locale = _ref.locale,
|
|
505
|
+
_ref$fallbackOrder = _ref.fallbackOrder,
|
|
506
|
+
fallbackOrder = _ref$fallbackOrder === void 0 ? [] : _ref$fallbackOrder,
|
|
507
|
+
_ref$fallback = _ref.fallback,
|
|
508
|
+
fallback = _ref$fallback === void 0 ? '' : _ref$fallback;
|
|
609
509
|
if (!entity || !entity[key]) return fallback;
|
|
610
510
|
const localizedString = entity[key];
|
|
611
511
|
const fallbackLocale = findFallbackLocale(localizedString, fallbackOrder);
|
|
612
|
-
const formattedLocalizedFallback = fallbackLocale ? formatLocalizedFallbackHint(localizedString[fallbackLocale], fallbackLocale) : fallback;
|
|
512
|
+
const formattedLocalizedFallback = fallbackLocale ? formatLocalizedFallbackHint(localizedString[fallbackLocale], fallbackLocale) : fallback;
|
|
513
|
+
|
|
514
|
+
// GIVEN no `locale`
|
|
613
515
|
// THEN return formattedFallback by fallbackOrder
|
|
516
|
+
if (!locale) return formattedLocalizedFallback;
|
|
614
517
|
|
|
615
|
-
|
|
518
|
+
// GIVEN locale
|
|
616
519
|
// AND there is a value on `localizedString`
|
|
617
520
|
// THEN return value
|
|
521
|
+
if (localizedString[locale]) return localizedString[locale];
|
|
618
522
|
|
|
619
|
-
|
|
523
|
+
// GIVEN locale
|
|
620
524
|
// AND there is a value on primary locale
|
|
621
525
|
// THEN return value on primary locale
|
|
622
|
-
|
|
623
526
|
const primaryLocale = locale && getPrimaryLocale(locale);
|
|
624
|
-
if (localizedString[primaryLocale]) return localizedString[primaryLocale];
|
|
527
|
+
if (localizedString[primaryLocale]) return localizedString[primaryLocale];
|
|
625
528
|
|
|
529
|
+
// use formattedFallback by fallbackOrder as last resort
|
|
626
530
|
return formattedLocalizedFallback;
|
|
627
531
|
};
|
|
628
532
|
|