@commercetools-frontend-extensions/export-resources-modal 4.1.2 → 4.1.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.
- package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.dev.js +62 -75
- package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.prod.js +59 -72
- package/dist/commercetools-frontend-extensions-export-resources-modal.esm.js +61 -74
- package/dist/{de-39735288.esm.js → de-46061c8d.esm.js} +7 -3
- package/dist/{de-d2b26aa9.cjs.dev.js → de-82710cdd.cjs.dev.js} +7 -3
- package/dist/{de-d3199184.cjs.prod.js → de-b9d63c63.cjs.prod.js} +7 -3
- package/dist/declarations/src/@constants/index.d.ts +1 -0
- package/dist/declarations/src/@constants/resource-type-messages.d.ts +2 -0
- package/dist/declarations/src/@constants/urls.d.ts +2 -3
- package/dist/declarations/src/@types/index.d.ts +1 -0
- package/dist/declarations/src/@types/resource-type.d.ts +7 -0
- package/dist/{en-d27c9cc6.cjs.dev.js → en-3ff78dd6.cjs.prod.js} +22 -30
- package/dist/{en-9154a09c.cjs.prod.js → en-824a97a4.cjs.dev.js} +22 -30
- package/dist/{en-e9679129.esm.js → en-918b9076.esm.js} +22 -30
- package/dist/{es-85b30e13.cjs.prod.js → es-27083d0c.cjs.prod.js} +8 -4
- package/dist/{es-8a6a2dee.cjs.dev.js → es-4070c248.cjs.dev.js} +8 -4
- package/dist/{es-9dd22c84.esm.js → es-bc8419ea.esm.js} +8 -4
- package/dist/{fr-FR-2f22db42.esm.js → fr-FR-88c9c9ec.esm.js} +8 -4
- package/dist/{fr-FR-75b735ea.cjs.dev.js → fr-FR-8f0fa6f5.cjs.dev.js} +8 -4
- package/dist/{fr-FR-832b636d.cjs.prod.js → fr-FR-a10662d7.cjs.prod.js} +8 -4
- package/dist/{pt-BR-f1e9f28a.cjs.dev.js → pt-BR-6dc77a9e.cjs.dev.js} +23 -31
- package/dist/{pt-BR-62408d52.esm.js → pt-BR-aef7dfa4.esm.js} +23 -31
- package/dist/{pt-BR-11e4c627.cjs.prod.js → pt-BR-b8807555.cjs.prod.js} +23 -31
- package/dist/{zh-CN-35db5160.esm.js → zh-CN-5b6b0a01.esm.js} +8 -4
- package/dist/{zh-CN-896408dc.cjs.dev.js → zh-CN-8bc9c078.cjs.dev.js} +8 -4
- package/dist/{zh-CN-42d4a424.cjs.prod.js → zh-CN-ed634d04.cjs.prod.js} +8 -4
- package/package.json +15 -15
|
@@ -26,7 +26,6 @@ var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
|
|
|
26
26
|
var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
|
|
27
27
|
var _wrapNativeSuper = require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
|
|
28
28
|
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
29
|
-
var moment = require('moment');
|
|
30
29
|
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
|
|
31
30
|
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
32
31
|
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
@@ -36,6 +35,7 @@ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-arr
|
|
|
36
35
|
var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
|
|
37
36
|
var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
|
|
38
37
|
var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
|
|
38
|
+
var moment = require('moment');
|
|
39
39
|
var experimentalComponents = require('@commercetools-frontend/experimental-components');
|
|
40
40
|
var sdk = require('@commercetools-frontend/sdk');
|
|
41
41
|
var actionsGlobal = require('@commercetools-frontend/actions-global');
|
|
@@ -65,7 +65,6 @@ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defin
|
|
|
65
65
|
var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
|
|
66
66
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
67
67
|
var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
|
|
68
|
-
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
69
68
|
var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
|
|
70
69
|
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
71
70
|
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
@@ -75,6 +74,7 @@ var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
|
75
74
|
var _Set__default = /*#__PURE__*/_interopDefault(_Set);
|
|
76
75
|
var _sortInstanceProperty__default = /*#__PURE__*/_interopDefault(_sortInstanceProperty);
|
|
77
76
|
var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfInstanceProperty);
|
|
77
|
+
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
78
78
|
var _styled__default = /*#__PURE__*/_interopDefault(_styled);
|
|
79
79
|
var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
|
|
80
80
|
var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
|
|
@@ -95,10 +95,15 @@ function getNewLine() {
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
var messages = reactIntl.defineMessages({
|
|
98
|
-
modalTitle: {
|
|
99
|
-
id: 'ExportResourcesModal.modalTitle',
|
|
100
|
-
description: 'Label for the modal title',
|
|
101
|
-
defaultMessage: 'Export
|
|
98
|
+
'modalTitle.category': {
|
|
99
|
+
id: 'ExportResourcesModal.modalTitle.category',
|
|
100
|
+
description: 'Label for the categories modal title',
|
|
101
|
+
defaultMessage: 'Export categories'
|
|
102
|
+
},
|
|
103
|
+
'modalTitle.product': {
|
|
104
|
+
id: 'ExportResourcesModal.modalTitle.product',
|
|
105
|
+
description: 'Label for the products modal title',
|
|
106
|
+
defaultMessage: 'Export products'
|
|
102
107
|
},
|
|
103
108
|
outputFormat: {
|
|
104
109
|
id: 'ExportResourcesModal.outputFormat',
|
|
@@ -115,36 +120,6 @@ var messages = reactIntl.defineMessages({
|
|
|
115
120
|
description: 'Locale',
|
|
116
121
|
defaultMessage: 'Locale'
|
|
117
122
|
},
|
|
118
|
-
exportSelection: {
|
|
119
|
-
id: 'ExportResourcesModal.exportSelection',
|
|
120
|
-
description: 'Export selection',
|
|
121
|
-
defaultMessage: 'Export selection'
|
|
122
|
-
},
|
|
123
|
-
exportAllResources: {
|
|
124
|
-
id: 'ExportResourcesModal.exportAllResources',
|
|
125
|
-
description: 'Export All selection',
|
|
126
|
-
defaultMessage: 'Export all {resourceType} ({count})'
|
|
127
|
-
},
|
|
128
|
-
exportOnlySelectedResources: {
|
|
129
|
-
id: 'ExportResourcesModal.exportOnlySelectedResources',
|
|
130
|
-
description: 'Export only selected resources',
|
|
131
|
-
defaultMessage: 'Export selected {resourceType} ({count})'
|
|
132
|
-
},
|
|
133
|
-
exportAllMessage: {
|
|
134
|
-
id: 'ExportResourcesModal.exportAllMessage',
|
|
135
|
-
description: 'All resources will be exported',
|
|
136
|
-
defaultMessage: 'All <b>{count}</b> {resourceType} will be exported.'
|
|
137
|
-
},
|
|
138
|
-
exportMatchingMessage: {
|
|
139
|
-
id: 'ExportResourcesModal.exportMatchingMessage',
|
|
140
|
-
description: 'resources will be exported',
|
|
141
|
-
defaultMessage: '<b>{count}</b> {resourceType} will be exported.'
|
|
142
|
-
},
|
|
143
|
-
exportSelectedMessage: {
|
|
144
|
-
id: 'ExportResourcesModal.exportSelectedMessage',
|
|
145
|
-
description: 'resources are selected and will be exported',
|
|
146
|
-
defaultMessage: '<b>{count}</b> {resourceType} are selected and will be exported.'
|
|
147
|
-
},
|
|
148
123
|
exportBasedOnMyViewsMessage: {
|
|
149
124
|
id: 'ExportResourcesModal.exportBasedOnMyViewsMessage',
|
|
150
125
|
description: 'Select Export setttings based on my views',
|
|
@@ -249,16 +224,26 @@ var messages = reactIntl.defineMessages({
|
|
|
249
224
|
description: 'Label for Export Scope',
|
|
250
225
|
defaultMessage: 'Scope'
|
|
251
226
|
},
|
|
252
|
-
|
|
253
|
-
id: 'ExportResourcesModal.
|
|
254
|
-
description: 'Label for Export All',
|
|
227
|
+
exportScopeAllCategories: {
|
|
228
|
+
id: 'ExportResourcesModal.exportScopeAllCategories',
|
|
229
|
+
description: 'Label for Export All categories',
|
|
255
230
|
defaultMessage: 'Export all: {total} categories'
|
|
256
231
|
},
|
|
257
|
-
|
|
258
|
-
id: 'ExportResourcesModal.
|
|
259
|
-
description: 'Label for Export Selected',
|
|
232
|
+
exportScopeSelectedCategories: {
|
|
233
|
+
id: 'ExportResourcesModal.exportScopeSelectedCategories',
|
|
234
|
+
description: 'Label for Export Selected categories',
|
|
260
235
|
defaultMessage: 'Export selected: {total} categories'
|
|
261
236
|
},
|
|
237
|
+
exportScopeAllProducts: {
|
|
238
|
+
id: 'ExportResourcesModal.exportScopeAllProducts',
|
|
239
|
+
description: 'Label for Export All products',
|
|
240
|
+
defaultMessage: 'Export all: {total} products'
|
|
241
|
+
},
|
|
242
|
+
exportScopeSelectedProducts: {
|
|
243
|
+
id: 'ExportResourcesModal.exportScopeSelectedProducts',
|
|
244
|
+
description: 'Label for Export Selected products',
|
|
245
|
+
defaultMessage: 'Export selected: {total} products'
|
|
246
|
+
},
|
|
262
247
|
exportScopeSelectedWithoutCount: {
|
|
263
248
|
id: 'ExportResourcesModal.exportScopeSelectedWithoutCount',
|
|
264
249
|
description: 'Label for Export Selected without count',
|
|
@@ -434,15 +419,28 @@ const OUTPUT_FORMAT_OPTIONS = [{
|
|
|
434
419
|
}];
|
|
435
420
|
|
|
436
421
|
const FIELD_DEFINITIONS_URLS = {
|
|
437
|
-
category: 'https://docs.commercetools.com/merchant-center/import-categories#supported-headers-and-values'
|
|
422
|
+
category: 'https://docs.commercetools.com/merchant-center/import-categories#supported-headers-and-values',
|
|
423
|
+
product: 'https://docs.commercetools.com/merchant-center/import-products#supported-headers-and-values'
|
|
424
|
+
};
|
|
425
|
+
|
|
426
|
+
const resourceTypeMessages = {
|
|
427
|
+
category: {
|
|
428
|
+
exportScopeAll: messages.exportScopeAllCategories,
|
|
429
|
+
exportScopeSelected: messages.exportScopeSelectedCategories
|
|
430
|
+
},
|
|
431
|
+
product: {
|
|
432
|
+
exportScopeAll: messages.exportScopeAllProducts,
|
|
433
|
+
exportScopeSelected: messages.exportScopeSelectedProducts
|
|
434
|
+
}
|
|
438
435
|
};
|
|
439
436
|
|
|
440
|
-
function
|
|
437
|
+
function resourceTypeToFileName(_ref) {
|
|
441
438
|
let resourceType = _ref.resourceType,
|
|
442
439
|
_ref$isUpperCase = _ref.isUpperCase,
|
|
443
440
|
isUpperCase = _ref$isUpperCase === void 0 ? false : _ref$isUpperCase,
|
|
444
441
|
_ref$isPlural = _ref.isPlural,
|
|
445
442
|
isPlural = _ref$isPlural === void 0 ? false : _ref$isPlural;
|
|
443
|
+
const todayFormatted = moment__default["default"]().format('DD-MM-YY_HH-mm');
|
|
446
444
|
let displayName;
|
|
447
445
|
switch (resourceType) {
|
|
448
446
|
case EXPORTABLE_RESOURCES.CATEGORY:
|
|
@@ -457,7 +455,8 @@ function resourceTypeToDisplayName(_ref) {
|
|
|
457
455
|
default:
|
|
458
456
|
throw new UnexpectedResourceTypeError(resourceType);
|
|
459
457
|
}
|
|
460
|
-
|
|
458
|
+
const result = isUpperCase ? displayName : displayName.toLowerCase();
|
|
459
|
+
return `${result}_Export_${todayFormatted}`;
|
|
461
460
|
}
|
|
462
461
|
function mapLocalesToOptions(locales) {
|
|
463
462
|
return _mapInstanceProperty__default["default"](locales).call(locales, locale => ({
|
|
@@ -569,7 +568,6 @@ const updateFieldGroupWithAdditionalFieldExtensions = groups => {
|
|
|
569
568
|
};
|
|
570
569
|
|
|
571
570
|
const useInitialValues = props => {
|
|
572
|
-
const todayFormatted = moment__default["default"]().format('DD-MM-YY_HH-mm');
|
|
573
571
|
const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
|
|
574
572
|
locale: applicationContext.dataLocale
|
|
575
573
|
})),
|
|
@@ -585,15 +583,15 @@ const useInitialValues = props => {
|
|
|
585
583
|
const groups = updateFieldGroupsWithIsCheckedValue(props.fieldGroups, cachedSelectedGroups[props.resourceType] || {});
|
|
586
584
|
return {
|
|
587
585
|
outputFormat: props.outputFormat,
|
|
588
|
-
fileName: `${
|
|
586
|
+
fileName: `${resourceTypeToFileName({
|
|
589
587
|
resourceType: props.resourceType,
|
|
590
588
|
isUpperCase: true,
|
|
591
589
|
isPlural: true
|
|
592
|
-
})}
|
|
590
|
+
})}`,
|
|
593
591
|
locales: [locale],
|
|
594
592
|
groups: updateFieldGroupWithAdditionalFieldExtensions(groups)
|
|
595
593
|
};
|
|
596
|
-
}, [props.fieldGroups, props.outputFormat, props.resourceType, cachedSelectedGroups,
|
|
594
|
+
}, [props.fieldGroups, props.outputFormat, props.resourceType, cachedSelectedGroups, locale]);
|
|
597
595
|
};
|
|
598
596
|
|
|
599
597
|
async function createExportOperation(_ref) {
|
|
@@ -710,7 +708,8 @@ function ExportScopeSection() {
|
|
|
710
708
|
exportType = _useExportResourcesCo.exportType,
|
|
711
709
|
totalResourcesCount = _useExportResourcesCo.totalResourcesCount,
|
|
712
710
|
originalSelectedResourceIds = _useExportResourcesCo.originalSelectedResourceIds,
|
|
713
|
-
onScopeChange = _useExportResourcesCo.onScopeChange
|
|
711
|
+
onScopeChange = _useExportResourcesCo.onScopeChange,
|
|
712
|
+
resourceType = _useExportResourcesCo.resourceType;
|
|
714
713
|
return jsxRuntime.jsx(uiKit.Spacings.Stack, {
|
|
715
714
|
scale: "m",
|
|
716
715
|
children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
|
|
@@ -725,7 +724,7 @@ function ExportScopeSection() {
|
|
|
725
724
|
children: [jsxRuntime.jsx(uiKit.RadioInput.Option, {
|
|
726
725
|
value: EXPORT_TYPES.ALL,
|
|
727
726
|
children: jsxRuntime.jsx(uiKit.Text.Body, {
|
|
728
|
-
intlMessage: _objectSpread$3(_objectSpread$3({},
|
|
727
|
+
intlMessage: _objectSpread$3(_objectSpread$3({}, resourceTypeMessages[resourceType].exportScopeAll), {}, {
|
|
729
728
|
values: {
|
|
730
729
|
total: new Intl.NumberFormat().format(totalResourcesCount)
|
|
731
730
|
}
|
|
@@ -736,7 +735,7 @@ function ExportScopeSection() {
|
|
|
736
735
|
isDisabled: !originalSelectedResourceIds?.length,
|
|
737
736
|
children: jsxRuntime.jsx(uiKit.Text.Body, {
|
|
738
737
|
tone: !originalSelectedResourceIds?.length ? 'tertiary' : undefined,
|
|
739
|
-
intlMessage: originalSelectedResourceIds?.length ? _objectSpread$3(_objectSpread$3({},
|
|
738
|
+
intlMessage: originalSelectedResourceIds?.length ? _objectSpread$3(_objectSpread$3({}, resourceTypeMessages[resourceType].exportScopeSelected), {}, {
|
|
740
739
|
values: {
|
|
741
740
|
total: new Intl.NumberFormat().format(originalSelectedResourceIds?.length ?? 0)
|
|
742
741
|
}
|
|
@@ -753,10 +752,6 @@ const ExportFileSettingsStep = () => {
|
|
|
753
752
|
formik = _useExportResourcesCo.formik,
|
|
754
753
|
resourceType = _useExportResourcesCo.resourceType,
|
|
755
754
|
onClose = _useExportResourcesCo.onClose;
|
|
756
|
-
const resourceTypePlural = resourceTypeToDisplayName({
|
|
757
|
-
resourceType: resourceType,
|
|
758
|
-
isPlural: true
|
|
759
|
-
});
|
|
760
755
|
const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
|
|
761
756
|
locale: applicationContext.dataLocale,
|
|
762
757
|
locales: applicationContext.project?.languages || []
|
|
@@ -766,9 +761,7 @@ const ExportFileSettingsStep = () => {
|
|
|
766
761
|
const areAllLocalesChecked = _valuesInstanceProperty__default["default"](formik).locales.length === locales.length;
|
|
767
762
|
return jsxRuntime.jsx(applicationComponents.FormDialog, {
|
|
768
763
|
isOpen: true,
|
|
769
|
-
title: intl.formatMessage(messages
|
|
770
|
-
resourceType: resourceTypePlural
|
|
771
|
-
}),
|
|
764
|
+
title: intl.formatMessage(messages[`modalTitle.${resourceType}`]),
|
|
772
765
|
labelPrimary: intl.formatMessage(messages.continue),
|
|
773
766
|
onPrimaryButtonClick: formik.submitForm,
|
|
774
767
|
isPrimaryButtonDisabled: !formik.isValid,
|
|
@@ -1044,10 +1037,6 @@ const ExportFieldsSelectionStep = () => {
|
|
|
1044
1037
|
setCurrentStep = _useExportResourcesCo.setCurrentStep,
|
|
1045
1038
|
resourceType = _useExportResourcesCo.resourceType,
|
|
1046
1039
|
onClose = _useExportResourcesCo.onClose;
|
|
1047
|
-
const resourceTypePlural = resourceTypeToDisplayName({
|
|
1048
|
-
resourceType: resourceType,
|
|
1049
|
-
isPlural: true
|
|
1050
|
-
});
|
|
1051
1040
|
React__default["default"].useEffect(() => {
|
|
1052
1041
|
var _context3;
|
|
1053
1042
|
formik.validateForm();
|
|
@@ -1106,9 +1095,7 @@ const ExportFieldsSelectionStep = () => {
|
|
|
1106
1095
|
};
|
|
1107
1096
|
return jsxRuntime.jsx(applicationComponents.FormDialog, {
|
|
1108
1097
|
isOpen: true,
|
|
1109
|
-
title: intl.formatMessage(messages
|
|
1110
|
-
resourceType: resourceTypePlural
|
|
1111
|
-
}),
|
|
1098
|
+
title: intl.formatMessage(messages[`modalTitle.${resourceType}`]),
|
|
1112
1099
|
labelPrimary: intl.formatMessage(messages.startExport),
|
|
1113
1100
|
onPrimaryButtonClick: formik.submitForm,
|
|
1114
1101
|
isPrimaryButtonDisabled: !formik.isValid,
|
|
@@ -1236,19 +1223,19 @@ const getChunkImport = locale => {
|
|
|
1236
1223
|
const intlLocale = i18n.mapLocaleToIntlLocale(locale);
|
|
1237
1224
|
switch (intlLocale) {
|
|
1238
1225
|
case 'de':
|
|
1239
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-
|
|
1226
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-b9d63c63.cjs.prod.js'); });
|
|
1240
1227
|
case 'es':
|
|
1241
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-
|
|
1228
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-27083d0c.cjs.prod.js'); });
|
|
1242
1229
|
case 'fr-FR':
|
|
1243
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-
|
|
1230
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-a10662d7.cjs.prod.js'); });
|
|
1244
1231
|
case 'zh-CN':
|
|
1245
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-
|
|
1232
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-ed634d04.cjs.prod.js'); });
|
|
1246
1233
|
case 'ja':
|
|
1247
1234
|
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-ja" */'./ja-37632763.cjs.prod.js'); });
|
|
1248
1235
|
case 'pt-BR':
|
|
1249
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "change-history-i18n-pt-BR" */'./pt-BR-
|
|
1236
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "change-history-i18n-pt-BR" */'./pt-BR-b8807555.cjs.prod.js'); });
|
|
1250
1237
|
default:
|
|
1251
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-en" */'./en-
|
|
1238
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-en" */'./en-3ff78dd6.cjs.prod.js'); });
|
|
1252
1239
|
}
|
|
1253
1240
|
};
|
|
1254
1241
|
const loadMessages = async locale => {
|