@commercetools-frontend-extensions/export-resources-modal 1.3.8 → 1.4.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.
|
@@ -146,6 +146,8 @@ let UnexpectedResourceTypeError = /*#__PURE__*/function (_Error) {
|
|
|
146
146
|
return _createClass(UnexpectedResourceTypeError);
|
|
147
147
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
148
148
|
|
|
149
|
+
function ownKeys$b(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
150
|
+
function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$b(Object(t), !0)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$b(Object(t))).call(_context5, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
149
151
|
function resourceTypeToPlural(_ref) {
|
|
150
152
|
let resourceType = _ref.resourceType,
|
|
151
153
|
_ref$isUpperCase = _ref.isUpperCase,
|
|
@@ -179,6 +181,27 @@ function replaceSpecialCharsWithUnderscore(string) {
|
|
|
179
181
|
function isFilledArray(maybeArray) {
|
|
180
182
|
return _Array$isArray__default["default"](maybeArray) && maybeArray.length;
|
|
181
183
|
}
|
|
184
|
+
function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
|
|
185
|
+
var _context;
|
|
186
|
+
const extensionRegex = /\.(csv|json)$/i;
|
|
187
|
+
if (!extensionRegex.test(fileName)) return _concatInstanceProperty__default["default"](_context = "".concat(fileName, ".")).call(_context, fileFormat);
|
|
188
|
+
return fileName;
|
|
189
|
+
}
|
|
190
|
+
function flattenNestedFields(fields) {
|
|
191
|
+
const result = _mapInstanceProperty__default["default"](fields).call(fields, field => {
|
|
192
|
+
if (isFilledArray(field.fields)) {
|
|
193
|
+
var _context2;
|
|
194
|
+
return _mapInstanceProperty__default["default"](_context2 = flattenNestedFields(field.fields)).call(_context2, nestedField => {
|
|
195
|
+
var _context3;
|
|
196
|
+
return _objectSpread$b(_objectSpread$b({}, nestedField), {}, {
|
|
197
|
+
key: _concatInstanceProperty__default["default"](_context3 = "".concat(field.key, ".")).call(_context3, nestedField.key)
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
return field;
|
|
202
|
+
});
|
|
203
|
+
return _flatInstanceProperty__default["default"](result).call(result);
|
|
204
|
+
}
|
|
182
205
|
|
|
183
206
|
/*
|
|
184
207
|
* This function is responsible for constructing the GraphQL query based on the export settings
|
|
@@ -268,7 +291,7 @@ function validate(values) {
|
|
|
268
291
|
};
|
|
269
292
|
if (uiKit.TextInput.isEmpty(values.fileName)) {
|
|
270
293
|
errors.fileName.missing = true;
|
|
271
|
-
} else if (!/^[a-zA-Z0-9-_]+$/.test(values.fileName)) {
|
|
294
|
+
} else if (!/^[a-zA-Z0-9-_.]+$/.test(values.fileName)) {
|
|
272
295
|
errors.fileName.invalidInput = true;
|
|
273
296
|
}
|
|
274
297
|
if (values.languages.length < 1) {
|
|
@@ -660,7 +683,11 @@ function useExportResourcesContext() {
|
|
|
660
683
|
}
|
|
661
684
|
|
|
662
685
|
async function createExportOperation(_ref) {
|
|
663
|
-
let
|
|
686
|
+
let fileName = _ref.fileName,
|
|
687
|
+
fileFormat = _ref.fileFormat,
|
|
688
|
+
columns = _ref.columns,
|
|
689
|
+
locales = _ref.locales,
|
|
690
|
+
projectKey = _ref.projectKey,
|
|
664
691
|
graphQuery = _ref.graphQuery,
|
|
665
692
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
666
693
|
const uri = "/proxy/export/".concat(projectKey, "/export-operations");
|
|
@@ -672,6 +699,10 @@ async function createExportOperation(_ref) {
|
|
|
672
699
|
accept: 'application/json'
|
|
673
700
|
},
|
|
674
701
|
payload: {
|
|
702
|
+
fileName,
|
|
703
|
+
fileFormat,
|
|
704
|
+
columns,
|
|
705
|
+
locales,
|
|
675
706
|
query: graphQuery
|
|
676
707
|
}
|
|
677
708
|
}));
|
|
@@ -679,7 +710,7 @@ async function createExportOperation(_ref) {
|
|
|
679
710
|
}
|
|
680
711
|
|
|
681
712
|
function ownKeys$7(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
682
|
-
function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
713
|
+
function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$7(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$7(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
683
714
|
const getExportLogsLink = (projectKey, msg) => jsxRuntime.jsx(uiKit.Link, {
|
|
684
715
|
to: "/".concat(projectKey, "/operations/export/logs"),
|
|
685
716
|
children: msg
|
|
@@ -741,7 +772,12 @@ function ExportConfirmationModal(props) {
|
|
|
741
772
|
});
|
|
742
773
|
props.closeModal();
|
|
743
774
|
try {
|
|
775
|
+
var _context;
|
|
744
776
|
const response = await createExportOperation({
|
|
777
|
+
fileName: appendCsvOrJsonExtensionIfAbsent(_valuesInstanceProperty__default["default"](formik).fileName, _valuesInstanceProperty__default["default"](formik).outputFormat),
|
|
778
|
+
fileFormat: _valuesInstanceProperty__default["default"](formik).outputFormat,
|
|
779
|
+
locales: _valuesInstanceProperty__default["default"](formik).languages,
|
|
780
|
+
columns: _mapInstanceProperty__default["default"](_context = flattenNestedFields(_valuesInstanceProperty__default["default"](formik).fields)).call(_context, field => field.key),
|
|
745
781
|
projectKey,
|
|
746
782
|
graphQuery,
|
|
747
783
|
asyncDispatchFn: asyncDispatch
|
|
@@ -793,25 +829,10 @@ ExportConfirmationModal.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
793
829
|
} : {};
|
|
794
830
|
|
|
795
831
|
function ownKeys$6(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
796
|
-
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
797
|
-
function normalizeFields(fields) {
|
|
798
|
-
const result = _mapInstanceProperty__default["default"](fields).call(fields, field => {
|
|
799
|
-
if (isFilledArray(field.fields)) {
|
|
800
|
-
var _context;
|
|
801
|
-
return _mapInstanceProperty__default["default"](_context = normalizeFields(field.fields)).call(_context, nestedField => {
|
|
802
|
-
var _context2;
|
|
803
|
-
return _objectSpread$6(_objectSpread$6({}, nestedField), {}, {
|
|
804
|
-
key: _concatInstanceProperty__default["default"](_context2 = "".concat(field.key, ".")).call(_context2, nestedField.key)
|
|
805
|
-
});
|
|
806
|
-
});
|
|
807
|
-
}
|
|
808
|
-
return field;
|
|
809
|
-
});
|
|
810
|
-
return _flatInstanceProperty__default["default"](result).call(result);
|
|
811
|
-
}
|
|
832
|
+
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$6(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
812
833
|
function FieldsRenderer(_ref) {
|
|
813
834
|
let fields = _ref.fields;
|
|
814
|
-
const allFields =
|
|
835
|
+
const allFields = flattenNestedFields(fields);
|
|
815
836
|
return jsxRuntime.jsx(TagList, {
|
|
816
837
|
children: _mapInstanceProperty__default["default"](allFields).call(allFields, field => jsxRuntime.jsx("div", {
|
|
817
838
|
"data-testid": "test-field-".concat(field.key),
|
|
@@ -1115,9 +1136,7 @@ function ExportFileSettings(props) {
|
|
|
1115
1136
|
children: [jsxRuntime.jsx(applicationComponents.PageContentNarrow, {
|
|
1116
1137
|
children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
|
|
1117
1138
|
scale: "xl",
|
|
1118
|
-
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({
|
|
1119
|
-
isDisabled: true
|
|
1120
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1139
|
+
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1121
1140
|
title: intl.formatMessage(messages.outputFormat),
|
|
1122
1141
|
options: outputFormatOptions
|
|
1123
1142
|
})), jsxRuntime.jsx(uiKit.TextField, _objectSpread$2(_objectSpread$2({
|
|
@@ -1165,9 +1184,7 @@ function ExportFileSettings(props) {
|
|
|
1165
1184
|
scale: "l",
|
|
1166
1185
|
children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
|
|
1167
1186
|
scale: "l",
|
|
1168
|
-
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({
|
|
1169
|
-
isDisabled: true
|
|
1170
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1187
|
+
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1171
1188
|
title: intl.formatMessage(messages.outputFormat),
|
|
1172
1189
|
options: outputFormatOptions,
|
|
1173
1190
|
horizontalConstraint: 7
|
|
@@ -1341,7 +1358,7 @@ ExportResourcesModal.defaultProps = {
|
|
|
1341
1358
|
appliedFilters: [],
|
|
1342
1359
|
matchingResourcesCount: 0,
|
|
1343
1360
|
exportSelectionType: EXPORT_SELECTION_TYPES.ALL_RESOURCES,
|
|
1344
|
-
outputFormat: OUTPUT_FORMATS.
|
|
1361
|
+
outputFormat: OUTPUT_FORMATS.CSV
|
|
1345
1362
|
};
|
|
1346
1363
|
|
|
1347
1364
|
exports.EXPORTABLE_RESOURCES = EXPORTABLE_RESOURCES;
|
|
@@ -146,6 +146,8 @@ let UnexpectedResourceTypeError = /*#__PURE__*/function (_Error) {
|
|
|
146
146
|
return _createClass(UnexpectedResourceTypeError);
|
|
147
147
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
148
148
|
|
|
149
|
+
function ownKeys$a(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
150
|
+
function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$a(Object(t), !0)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$a(Object(t))).call(_context5, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
149
151
|
function resourceTypeToPlural(_ref) {
|
|
150
152
|
let resourceType = _ref.resourceType,
|
|
151
153
|
_ref$isUpperCase = _ref.isUpperCase,
|
|
@@ -179,6 +181,27 @@ function replaceSpecialCharsWithUnderscore(string) {
|
|
|
179
181
|
function isFilledArray(maybeArray) {
|
|
180
182
|
return _Array$isArray__default["default"](maybeArray) && maybeArray.length;
|
|
181
183
|
}
|
|
184
|
+
function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
|
|
185
|
+
var _context;
|
|
186
|
+
const extensionRegex = /\.(csv|json)$/i;
|
|
187
|
+
if (!extensionRegex.test(fileName)) return _concatInstanceProperty__default["default"](_context = "".concat(fileName, ".")).call(_context, fileFormat);
|
|
188
|
+
return fileName;
|
|
189
|
+
}
|
|
190
|
+
function flattenNestedFields(fields) {
|
|
191
|
+
const result = _mapInstanceProperty__default["default"](fields).call(fields, field => {
|
|
192
|
+
if (isFilledArray(field.fields)) {
|
|
193
|
+
var _context2;
|
|
194
|
+
return _mapInstanceProperty__default["default"](_context2 = flattenNestedFields(field.fields)).call(_context2, nestedField => {
|
|
195
|
+
var _context3;
|
|
196
|
+
return _objectSpread$a(_objectSpread$a({}, nestedField), {}, {
|
|
197
|
+
key: _concatInstanceProperty__default["default"](_context3 = "".concat(field.key, ".")).call(_context3, nestedField.key)
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
return field;
|
|
202
|
+
});
|
|
203
|
+
return _flatInstanceProperty__default["default"](result).call(result);
|
|
204
|
+
}
|
|
182
205
|
|
|
183
206
|
/*
|
|
184
207
|
* This function is responsible for constructing the GraphQL query based on the export settings
|
|
@@ -268,7 +291,7 @@ function validate(values) {
|
|
|
268
291
|
};
|
|
269
292
|
if (uiKit.TextInput.isEmpty(values.fileName)) {
|
|
270
293
|
errors.fileName.missing = true;
|
|
271
|
-
} else if (!/^[a-zA-Z0-9-_]+$/.test(values.fileName)) {
|
|
294
|
+
} else if (!/^[a-zA-Z0-9-_.]+$/.test(values.fileName)) {
|
|
272
295
|
errors.fileName.invalidInput = true;
|
|
273
296
|
}
|
|
274
297
|
if (values.languages.length < 1) {
|
|
@@ -643,7 +666,11 @@ function useExportResourcesContext() {
|
|
|
643
666
|
}
|
|
644
667
|
|
|
645
668
|
async function createExportOperation(_ref) {
|
|
646
|
-
let
|
|
669
|
+
let fileName = _ref.fileName,
|
|
670
|
+
fileFormat = _ref.fileFormat,
|
|
671
|
+
columns = _ref.columns,
|
|
672
|
+
locales = _ref.locales,
|
|
673
|
+
projectKey = _ref.projectKey,
|
|
647
674
|
graphQuery = _ref.graphQuery,
|
|
648
675
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
649
676
|
const uri = "/proxy/export/".concat(projectKey, "/export-operations");
|
|
@@ -655,6 +682,10 @@ async function createExportOperation(_ref) {
|
|
|
655
682
|
accept: 'application/json'
|
|
656
683
|
},
|
|
657
684
|
payload: {
|
|
685
|
+
fileName,
|
|
686
|
+
fileFormat,
|
|
687
|
+
columns,
|
|
688
|
+
locales,
|
|
658
689
|
query: graphQuery
|
|
659
690
|
}
|
|
660
691
|
}));
|
|
@@ -662,7 +693,7 @@ async function createExportOperation(_ref) {
|
|
|
662
693
|
}
|
|
663
694
|
|
|
664
695
|
function ownKeys$6(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
665
|
-
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
696
|
+
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$6(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
666
697
|
const getExportLogsLink = (projectKey, msg) => jsxRuntime.jsx(uiKit.Link, {
|
|
667
698
|
to: "/".concat(projectKey, "/operations/export/logs"),
|
|
668
699
|
children: msg
|
|
@@ -724,7 +755,12 @@ function ExportConfirmationModal(props) {
|
|
|
724
755
|
});
|
|
725
756
|
props.closeModal();
|
|
726
757
|
try {
|
|
758
|
+
var _context;
|
|
727
759
|
const response = await createExportOperation({
|
|
760
|
+
fileName: appendCsvOrJsonExtensionIfAbsent(_valuesInstanceProperty__default["default"](formik).fileName, _valuesInstanceProperty__default["default"](formik).outputFormat),
|
|
761
|
+
fileFormat: _valuesInstanceProperty__default["default"](formik).outputFormat,
|
|
762
|
+
locales: _valuesInstanceProperty__default["default"](formik).languages,
|
|
763
|
+
columns: _mapInstanceProperty__default["default"](_context = flattenNestedFields(_valuesInstanceProperty__default["default"](formik).fields)).call(_context, field => field.key),
|
|
728
764
|
projectKey,
|
|
729
765
|
graphQuery,
|
|
730
766
|
asyncDispatchFn: asyncDispatch
|
|
@@ -771,25 +807,10 @@ function ExportConfirmationModal(props) {
|
|
|
771
807
|
ExportConfirmationModal.propTypes = {};
|
|
772
808
|
|
|
773
809
|
function ownKeys$5(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
774
|
-
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
775
|
-
function normalizeFields(fields) {
|
|
776
|
-
const result = _mapInstanceProperty__default["default"](fields).call(fields, field => {
|
|
777
|
-
if (isFilledArray(field.fields)) {
|
|
778
|
-
var _context;
|
|
779
|
-
return _mapInstanceProperty__default["default"](_context = normalizeFields(field.fields)).call(_context, nestedField => {
|
|
780
|
-
var _context2;
|
|
781
|
-
return _objectSpread$5(_objectSpread$5({}, nestedField), {}, {
|
|
782
|
-
key: _concatInstanceProperty__default["default"](_context2 = "".concat(field.key, ".")).call(_context2, nestedField.key)
|
|
783
|
-
});
|
|
784
|
-
});
|
|
785
|
-
}
|
|
786
|
-
return field;
|
|
787
|
-
});
|
|
788
|
-
return _flatInstanceProperty__default["default"](result).call(result);
|
|
789
|
-
}
|
|
810
|
+
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
790
811
|
function FieldsRenderer(_ref) {
|
|
791
812
|
let fields = _ref.fields;
|
|
792
|
-
const allFields =
|
|
813
|
+
const allFields = flattenNestedFields(fields);
|
|
793
814
|
return jsxRuntime.jsx(TagList, {
|
|
794
815
|
children: _mapInstanceProperty__default["default"](allFields).call(allFields, field => jsxRuntime.jsx("div", {
|
|
795
816
|
"data-testid": "test-field-".concat(field.key),
|
|
@@ -1079,9 +1100,7 @@ function ExportFileSettings(props) {
|
|
|
1079
1100
|
children: [jsxRuntime.jsx(applicationComponents.PageContentNarrow, {
|
|
1080
1101
|
children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
|
|
1081
1102
|
scale: "xl",
|
|
1082
|
-
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$1(_objectSpread$1({
|
|
1083
|
-
isDisabled: true
|
|
1084
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1103
|
+
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$1(_objectSpread$1({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1085
1104
|
title: intl.formatMessage(messages.outputFormat),
|
|
1086
1105
|
options: outputFormatOptions
|
|
1087
1106
|
})), jsxRuntime.jsx(uiKit.TextField, _objectSpread$1(_objectSpread$1({
|
|
@@ -1129,9 +1148,7 @@ function ExportFileSettings(props) {
|
|
|
1129
1148
|
scale: "l",
|
|
1130
1149
|
children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
|
|
1131
1150
|
scale: "l",
|
|
1132
|
-
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$1(_objectSpread$1({
|
|
1133
|
-
isDisabled: true
|
|
1134
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1151
|
+
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$1(_objectSpread$1({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1135
1152
|
title: intl.formatMessage(messages.outputFormat),
|
|
1136
1153
|
options: outputFormatOptions,
|
|
1137
1154
|
horizontalConstraint: 7
|
|
@@ -1299,7 +1316,7 @@ ExportResourcesModal.defaultProps = {
|
|
|
1299
1316
|
appliedFilters: [],
|
|
1300
1317
|
matchingResourcesCount: 0,
|
|
1301
1318
|
exportSelectionType: EXPORT_SELECTION_TYPES.ALL_RESOURCES,
|
|
1302
|
-
outputFormat: OUTPUT_FORMATS.
|
|
1319
|
+
outputFormat: OUTPUT_FORMATS.CSV
|
|
1303
1320
|
};
|
|
1304
1321
|
|
|
1305
1322
|
exports.EXPORTABLE_RESOURCES = EXPORTABLE_RESOURCES;
|
|
@@ -121,6 +121,8 @@ let UnexpectedResourceTypeError = /*#__PURE__*/function (_Error) {
|
|
|
121
121
|
return _createClass(UnexpectedResourceTypeError);
|
|
122
122
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
123
123
|
|
|
124
|
+
function ownKeys$b(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
125
|
+
function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context4 = ownKeys$b(Object(t), !0)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context5 = ownKeys$b(Object(t))).call(_context5, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
124
126
|
function resourceTypeToPlural(_ref) {
|
|
125
127
|
let resourceType = _ref.resourceType,
|
|
126
128
|
_ref$isUpperCase = _ref.isUpperCase,
|
|
@@ -154,6 +156,27 @@ function replaceSpecialCharsWithUnderscore(string) {
|
|
|
154
156
|
function isFilledArray(maybeArray) {
|
|
155
157
|
return _Array$isArray(maybeArray) && maybeArray.length;
|
|
156
158
|
}
|
|
159
|
+
function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
|
|
160
|
+
var _context;
|
|
161
|
+
const extensionRegex = /\.(csv|json)$/i;
|
|
162
|
+
if (!extensionRegex.test(fileName)) return _concatInstanceProperty(_context = "".concat(fileName, ".")).call(_context, fileFormat);
|
|
163
|
+
return fileName;
|
|
164
|
+
}
|
|
165
|
+
function flattenNestedFields(fields) {
|
|
166
|
+
const result = _mapInstanceProperty(fields).call(fields, field => {
|
|
167
|
+
if (isFilledArray(field.fields)) {
|
|
168
|
+
var _context2;
|
|
169
|
+
return _mapInstanceProperty(_context2 = flattenNestedFields(field.fields)).call(_context2, nestedField => {
|
|
170
|
+
var _context3;
|
|
171
|
+
return _objectSpread$b(_objectSpread$b({}, nestedField), {}, {
|
|
172
|
+
key: _concatInstanceProperty(_context3 = "".concat(field.key, ".")).call(_context3, nestedField.key)
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
return field;
|
|
177
|
+
});
|
|
178
|
+
return _flatInstanceProperty(result).call(result);
|
|
179
|
+
}
|
|
157
180
|
|
|
158
181
|
/*
|
|
159
182
|
* This function is responsible for constructing the GraphQL query based on the export settings
|
|
@@ -243,7 +266,7 @@ function validate(values) {
|
|
|
243
266
|
};
|
|
244
267
|
if (TextInput.isEmpty(values.fileName)) {
|
|
245
268
|
errors.fileName.missing = true;
|
|
246
|
-
} else if (!/^[a-zA-Z0-9-_]+$/.test(values.fileName)) {
|
|
269
|
+
} else if (!/^[a-zA-Z0-9-_.]+$/.test(values.fileName)) {
|
|
247
270
|
errors.fileName.invalidInput = true;
|
|
248
271
|
}
|
|
249
272
|
if (values.languages.length < 1) {
|
|
@@ -635,7 +658,11 @@ function useExportResourcesContext() {
|
|
|
635
658
|
}
|
|
636
659
|
|
|
637
660
|
async function createExportOperation(_ref) {
|
|
638
|
-
let
|
|
661
|
+
let fileName = _ref.fileName,
|
|
662
|
+
fileFormat = _ref.fileFormat,
|
|
663
|
+
columns = _ref.columns,
|
|
664
|
+
locales = _ref.locales,
|
|
665
|
+
projectKey = _ref.projectKey,
|
|
639
666
|
graphQuery = _ref.graphQuery,
|
|
640
667
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
641
668
|
const uri = "/proxy/export/".concat(projectKey, "/export-operations");
|
|
@@ -647,6 +674,10 @@ async function createExportOperation(_ref) {
|
|
|
647
674
|
accept: 'application/json'
|
|
648
675
|
},
|
|
649
676
|
payload: {
|
|
677
|
+
fileName,
|
|
678
|
+
fileFormat,
|
|
679
|
+
columns,
|
|
680
|
+
locales,
|
|
650
681
|
query: graphQuery
|
|
651
682
|
}
|
|
652
683
|
}));
|
|
@@ -654,7 +685,7 @@ async function createExportOperation(_ref) {
|
|
|
654
685
|
}
|
|
655
686
|
|
|
656
687
|
function ownKeys$7(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
657
|
-
function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
688
|
+
function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys$7(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys$7(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
658
689
|
const getExportLogsLink = (projectKey, msg) => jsx(Link, {
|
|
659
690
|
to: "/".concat(projectKey, "/operations/export/logs"),
|
|
660
691
|
children: msg
|
|
@@ -716,7 +747,12 @@ function ExportConfirmationModal(props) {
|
|
|
716
747
|
});
|
|
717
748
|
props.closeModal();
|
|
718
749
|
try {
|
|
750
|
+
var _context;
|
|
719
751
|
const response = await createExportOperation({
|
|
752
|
+
fileName: appendCsvOrJsonExtensionIfAbsent(_valuesInstanceProperty(formik).fileName, _valuesInstanceProperty(formik).outputFormat),
|
|
753
|
+
fileFormat: _valuesInstanceProperty(formik).outputFormat,
|
|
754
|
+
locales: _valuesInstanceProperty(formik).languages,
|
|
755
|
+
columns: _mapInstanceProperty(_context = flattenNestedFields(_valuesInstanceProperty(formik).fields)).call(_context, field => field.key),
|
|
720
756
|
projectKey,
|
|
721
757
|
graphQuery,
|
|
722
758
|
asyncDispatchFn: asyncDispatch
|
|
@@ -768,25 +804,10 @@ ExportConfirmationModal.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
768
804
|
} : {};
|
|
769
805
|
|
|
770
806
|
function ownKeys$6(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
771
|
-
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
772
|
-
function normalizeFields(fields) {
|
|
773
|
-
const result = _mapInstanceProperty(fields).call(fields, field => {
|
|
774
|
-
if (isFilledArray(field.fields)) {
|
|
775
|
-
var _context;
|
|
776
|
-
return _mapInstanceProperty(_context = normalizeFields(field.fields)).call(_context, nestedField => {
|
|
777
|
-
var _context2;
|
|
778
|
-
return _objectSpread$6(_objectSpread$6({}, nestedField), {}, {
|
|
779
|
-
key: _concatInstanceProperty(_context2 = "".concat(field.key, ".")).call(_context2, nestedField.key)
|
|
780
|
-
});
|
|
781
|
-
});
|
|
782
|
-
}
|
|
783
|
-
return field;
|
|
784
|
-
});
|
|
785
|
-
return _flatInstanceProperty(result).call(result);
|
|
786
|
-
}
|
|
807
|
+
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys$6(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys$6(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
787
808
|
function FieldsRenderer(_ref) {
|
|
788
809
|
let fields = _ref.fields;
|
|
789
|
-
const allFields =
|
|
810
|
+
const allFields = flattenNestedFields(fields);
|
|
790
811
|
return jsx(TagList, {
|
|
791
812
|
children: _mapInstanceProperty(allFields).call(allFields, field => jsx("div", {
|
|
792
813
|
"data-testid": "test-field-".concat(field.key),
|
|
@@ -1090,9 +1111,7 @@ function ExportFileSettings(props) {
|
|
|
1090
1111
|
children: [jsx(PageContentNarrow, {
|
|
1091
1112
|
children: jsxs(Spacings.Stack, {
|
|
1092
1113
|
scale: "xl",
|
|
1093
|
-
children: [jsx(SelectField, _objectSpread$2(_objectSpread$2({
|
|
1094
|
-
isDisabled: true
|
|
1095
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1114
|
+
children: [jsx(SelectField, _objectSpread$2(_objectSpread$2({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1096
1115
|
title: intl.formatMessage(messages.outputFormat),
|
|
1097
1116
|
options: outputFormatOptions
|
|
1098
1117
|
})), jsx(TextField, _objectSpread$2(_objectSpread$2({
|
|
@@ -1140,9 +1159,7 @@ function ExportFileSettings(props) {
|
|
|
1140
1159
|
scale: "l",
|
|
1141
1160
|
children: [jsxs(Spacings.Inline, {
|
|
1142
1161
|
scale: "l",
|
|
1143
|
-
children: [jsx(SelectField, _objectSpread$2(_objectSpread$2({
|
|
1144
|
-
isDisabled: true
|
|
1145
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1162
|
+
children: [jsx(SelectField, _objectSpread$2(_objectSpread$2({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1146
1163
|
title: intl.formatMessage(messages.outputFormat),
|
|
1147
1164
|
options: outputFormatOptions,
|
|
1148
1165
|
horizontalConstraint: 7
|
|
@@ -1316,7 +1333,7 @@ ExportResourcesModal.defaultProps = {
|
|
|
1316
1333
|
appliedFilters: [],
|
|
1317
1334
|
matchingResourcesCount: 0,
|
|
1318
1335
|
exportSelectionType: EXPORT_SELECTION_TYPES.ALL_RESOURCES,
|
|
1319
|
-
outputFormat: OUTPUT_FORMATS.
|
|
1336
|
+
outputFormat: OUTPUT_FORMATS.CSV
|
|
1320
1337
|
};
|
|
1321
1338
|
|
|
1322
1339
|
export { EXPORTABLE_RESOURCES, EXPORT_SELECTION_TYPES, ExportResourcesModal as default };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools-frontend-extensions/export-resources-modal",
|
|
3
3
|
"description": "Shared export modal for exporting resources",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.1",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"README.md"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@babel/runtime": "7.23.
|
|
19
|
-
"@babel/runtime-corejs3": "7.23.
|
|
18
|
+
"@babel/runtime": "7.23.6",
|
|
19
|
+
"@babel/runtime-corejs3": "7.23.6",
|
|
20
20
|
"@emotion/react": "11.11.1",
|
|
21
21
|
"@emotion/styled": "11.11.0",
|
|
22
|
-
"@formatjs/cli": "6.2.
|
|
22
|
+
"@formatjs/cli": "6.2.4",
|
|
23
23
|
"formik": "^2.2.9",
|
|
24
24
|
"gql-query-builder": "^3.8.0",
|
|
25
25
|
"jest": "29.7.0",
|
|
@@ -27,20 +27,20 @@
|
|
|
27
27
|
"omit-empty-es": "^1.1.3",
|
|
28
28
|
"prop-types": "15.8.1",
|
|
29
29
|
"react": "17.0.2",
|
|
30
|
-
"react-intl": "6.5.
|
|
30
|
+
"react-intl": "6.5.5"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@commercetools-frontend/actions-global": "22.
|
|
34
|
-
"@commercetools-frontend/application-components": "22.
|
|
35
|
-
"@commercetools-frontend/application-shell": "22.
|
|
36
|
-
"@commercetools-frontend/application-shell-connectors": "22.
|
|
37
|
-
"@commercetools-frontend/constants": "22.
|
|
38
|
-
"@commercetools-frontend/jest-preset-mc-app": "22.
|
|
39
|
-
"@commercetools-frontend/sdk": "22.
|
|
40
|
-
"@commercetools-frontend/sentry": "22.
|
|
41
|
-
"@commercetools-frontend/ui-kit": "16.
|
|
42
|
-
"@commercetools-uikit/design-system": "16.
|
|
43
|
-
"@preconstruct/cli": "2.2
|
|
33
|
+
"@commercetools-frontend/actions-global": "22.14.3",
|
|
34
|
+
"@commercetools-frontend/application-components": "22.14.3",
|
|
35
|
+
"@commercetools-frontend/application-shell": "22.14.3",
|
|
36
|
+
"@commercetools-frontend/application-shell-connectors": "22.14.3",
|
|
37
|
+
"@commercetools-frontend/constants": "22.14.3",
|
|
38
|
+
"@commercetools-frontend/jest-preset-mc-app": "22.14.3",
|
|
39
|
+
"@commercetools-frontend/sdk": "22.14.3",
|
|
40
|
+
"@commercetools-frontend/sentry": "22.14.3",
|
|
41
|
+
"@commercetools-frontend/ui-kit": "16.12.1",
|
|
42
|
+
"@commercetools-uikit/design-system": "16.12.1",
|
|
43
|
+
"@preconstruct/cli": "2.8.2",
|
|
44
44
|
"rimraf": "5.0.5"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|