@commercetools-frontend-extensions/export-resources-modal 1.3.8 → 1.4.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.
|
@@ -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,10 @@ 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
|
+
projectKey = _ref.projectKey,
|
|
664
690
|
graphQuery = _ref.graphQuery,
|
|
665
691
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
666
692
|
const uri = "/proxy/export/".concat(projectKey, "/export-operations");
|
|
@@ -672,6 +698,9 @@ async function createExportOperation(_ref) {
|
|
|
672
698
|
accept: 'application/json'
|
|
673
699
|
},
|
|
674
700
|
payload: {
|
|
701
|
+
fileName,
|
|
702
|
+
fileFormat,
|
|
703
|
+
columns,
|
|
675
704
|
query: graphQuery
|
|
676
705
|
}
|
|
677
706
|
}));
|
|
@@ -679,7 +708,7 @@ async function createExportOperation(_ref) {
|
|
|
679
708
|
}
|
|
680
709
|
|
|
681
710
|
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
|
|
711
|
+
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
712
|
const getExportLogsLink = (projectKey, msg) => jsxRuntime.jsx(uiKit.Link, {
|
|
684
713
|
to: "/".concat(projectKey, "/operations/export/logs"),
|
|
685
714
|
children: msg
|
|
@@ -741,7 +770,12 @@ function ExportConfirmationModal(props) {
|
|
|
741
770
|
});
|
|
742
771
|
props.closeModal();
|
|
743
772
|
try {
|
|
773
|
+
var _context;
|
|
744
774
|
const response = await createExportOperation({
|
|
775
|
+
fileName: appendCsvOrJsonExtensionIfAbsent(_valuesInstanceProperty__default["default"](formik).fileName, _valuesInstanceProperty__default["default"](formik).outputFormat),
|
|
776
|
+
fileFormat: _valuesInstanceProperty__default["default"](formik).outputFormat,
|
|
777
|
+
locales: _valuesInstanceProperty__default["default"](formik).languages,
|
|
778
|
+
columns: _mapInstanceProperty__default["default"](_context = flattenNestedFields(_valuesInstanceProperty__default["default"](formik).fields)).call(_context, field => field.key),
|
|
745
779
|
projectKey,
|
|
746
780
|
graphQuery,
|
|
747
781
|
asyncDispatchFn: asyncDispatch
|
|
@@ -793,25 +827,10 @@ ExportConfirmationModal.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
793
827
|
} : {};
|
|
794
828
|
|
|
795
829
|
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
|
-
}
|
|
830
|
+
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
831
|
function FieldsRenderer(_ref) {
|
|
813
832
|
let fields = _ref.fields;
|
|
814
|
-
const allFields =
|
|
833
|
+
const allFields = flattenNestedFields(fields);
|
|
815
834
|
return jsxRuntime.jsx(TagList, {
|
|
816
835
|
children: _mapInstanceProperty__default["default"](allFields).call(allFields, field => jsxRuntime.jsx("div", {
|
|
817
836
|
"data-testid": "test-field-".concat(field.key),
|
|
@@ -1115,9 +1134,7 @@ function ExportFileSettings(props) {
|
|
|
1115
1134
|
children: [jsxRuntime.jsx(applicationComponents.PageContentNarrow, {
|
|
1116
1135
|
children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
|
|
1117
1136
|
scale: "xl",
|
|
1118
|
-
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({
|
|
1119
|
-
isDisabled: true
|
|
1120
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1137
|
+
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1121
1138
|
title: intl.formatMessage(messages.outputFormat),
|
|
1122
1139
|
options: outputFormatOptions
|
|
1123
1140
|
})), jsxRuntime.jsx(uiKit.TextField, _objectSpread$2(_objectSpread$2({
|
|
@@ -1165,9 +1182,7 @@ function ExportFileSettings(props) {
|
|
|
1165
1182
|
scale: "l",
|
|
1166
1183
|
children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
|
|
1167
1184
|
scale: "l",
|
|
1168
|
-
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({
|
|
1169
|
-
isDisabled: true
|
|
1170
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1185
|
+
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1171
1186
|
title: intl.formatMessage(messages.outputFormat),
|
|
1172
1187
|
options: outputFormatOptions,
|
|
1173
1188
|
horizontalConstraint: 7
|
|
@@ -1341,7 +1356,7 @@ ExportResourcesModal.defaultProps = {
|
|
|
1341
1356
|
appliedFilters: [],
|
|
1342
1357
|
matchingResourcesCount: 0,
|
|
1343
1358
|
exportSelectionType: EXPORT_SELECTION_TYPES.ALL_RESOURCES,
|
|
1344
|
-
outputFormat: OUTPUT_FORMATS.
|
|
1359
|
+
outputFormat: OUTPUT_FORMATS.CSV
|
|
1345
1360
|
};
|
|
1346
1361
|
|
|
1347
1362
|
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,10 @@ 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
|
+
projectKey = _ref.projectKey,
|
|
647
673
|
graphQuery = _ref.graphQuery,
|
|
648
674
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
649
675
|
const uri = "/proxy/export/".concat(projectKey, "/export-operations");
|
|
@@ -655,6 +681,9 @@ async function createExportOperation(_ref) {
|
|
|
655
681
|
accept: 'application/json'
|
|
656
682
|
},
|
|
657
683
|
payload: {
|
|
684
|
+
fileName,
|
|
685
|
+
fileFormat,
|
|
686
|
+
columns,
|
|
658
687
|
query: graphQuery
|
|
659
688
|
}
|
|
660
689
|
}));
|
|
@@ -662,7 +691,7 @@ async function createExportOperation(_ref) {
|
|
|
662
691
|
}
|
|
663
692
|
|
|
664
693
|
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
|
|
694
|
+
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
695
|
const getExportLogsLink = (projectKey, msg) => jsxRuntime.jsx(uiKit.Link, {
|
|
667
696
|
to: "/".concat(projectKey, "/operations/export/logs"),
|
|
668
697
|
children: msg
|
|
@@ -724,7 +753,12 @@ function ExportConfirmationModal(props) {
|
|
|
724
753
|
});
|
|
725
754
|
props.closeModal();
|
|
726
755
|
try {
|
|
756
|
+
var _context;
|
|
727
757
|
const response = await createExportOperation({
|
|
758
|
+
fileName: appendCsvOrJsonExtensionIfAbsent(_valuesInstanceProperty__default["default"](formik).fileName, _valuesInstanceProperty__default["default"](formik).outputFormat),
|
|
759
|
+
fileFormat: _valuesInstanceProperty__default["default"](formik).outputFormat,
|
|
760
|
+
locales: _valuesInstanceProperty__default["default"](formik).languages,
|
|
761
|
+
columns: _mapInstanceProperty__default["default"](_context = flattenNestedFields(_valuesInstanceProperty__default["default"](formik).fields)).call(_context, field => field.key),
|
|
728
762
|
projectKey,
|
|
729
763
|
graphQuery,
|
|
730
764
|
asyncDispatchFn: asyncDispatch
|
|
@@ -771,25 +805,10 @@ function ExportConfirmationModal(props) {
|
|
|
771
805
|
ExportConfirmationModal.propTypes = {};
|
|
772
806
|
|
|
773
807
|
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
|
-
}
|
|
808
|
+
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
809
|
function FieldsRenderer(_ref) {
|
|
791
810
|
let fields = _ref.fields;
|
|
792
|
-
const allFields =
|
|
811
|
+
const allFields = flattenNestedFields(fields);
|
|
793
812
|
return jsxRuntime.jsx(TagList, {
|
|
794
813
|
children: _mapInstanceProperty__default["default"](allFields).call(allFields, field => jsxRuntime.jsx("div", {
|
|
795
814
|
"data-testid": "test-field-".concat(field.key),
|
|
@@ -1079,9 +1098,7 @@ function ExportFileSettings(props) {
|
|
|
1079
1098
|
children: [jsxRuntime.jsx(applicationComponents.PageContentNarrow, {
|
|
1080
1099
|
children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
|
|
1081
1100
|
scale: "xl",
|
|
1082
|
-
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$1(_objectSpread$1({
|
|
1083
|
-
isDisabled: true
|
|
1084
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1101
|
+
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$1(_objectSpread$1({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1085
1102
|
title: intl.formatMessage(messages.outputFormat),
|
|
1086
1103
|
options: outputFormatOptions
|
|
1087
1104
|
})), jsxRuntime.jsx(uiKit.TextField, _objectSpread$1(_objectSpread$1({
|
|
@@ -1129,9 +1146,7 @@ function ExportFileSettings(props) {
|
|
|
1129
1146
|
scale: "l",
|
|
1130
1147
|
children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
|
|
1131
1148
|
scale: "l",
|
|
1132
|
-
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$1(_objectSpread$1({
|
|
1133
|
-
isDisabled: true
|
|
1134
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1149
|
+
children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$1(_objectSpread$1({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1135
1150
|
title: intl.formatMessage(messages.outputFormat),
|
|
1136
1151
|
options: outputFormatOptions,
|
|
1137
1152
|
horizontalConstraint: 7
|
|
@@ -1299,7 +1314,7 @@ ExportResourcesModal.defaultProps = {
|
|
|
1299
1314
|
appliedFilters: [],
|
|
1300
1315
|
matchingResourcesCount: 0,
|
|
1301
1316
|
exportSelectionType: EXPORT_SELECTION_TYPES.ALL_RESOURCES,
|
|
1302
|
-
outputFormat: OUTPUT_FORMATS.
|
|
1317
|
+
outputFormat: OUTPUT_FORMATS.CSV
|
|
1303
1318
|
};
|
|
1304
1319
|
|
|
1305
1320
|
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,10 @@ 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
|
+
projectKey = _ref.projectKey,
|
|
639
665
|
graphQuery = _ref.graphQuery,
|
|
640
666
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
641
667
|
const uri = "/proxy/export/".concat(projectKey, "/export-operations");
|
|
@@ -647,6 +673,9 @@ async function createExportOperation(_ref) {
|
|
|
647
673
|
accept: 'application/json'
|
|
648
674
|
},
|
|
649
675
|
payload: {
|
|
676
|
+
fileName,
|
|
677
|
+
fileFormat,
|
|
678
|
+
columns,
|
|
650
679
|
query: graphQuery
|
|
651
680
|
}
|
|
652
681
|
}));
|
|
@@ -654,7 +683,7 @@ async function createExportOperation(_ref) {
|
|
|
654
683
|
}
|
|
655
684
|
|
|
656
685
|
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
|
|
686
|
+
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
687
|
const getExportLogsLink = (projectKey, msg) => jsx(Link, {
|
|
659
688
|
to: "/".concat(projectKey, "/operations/export/logs"),
|
|
660
689
|
children: msg
|
|
@@ -716,7 +745,12 @@ function ExportConfirmationModal(props) {
|
|
|
716
745
|
});
|
|
717
746
|
props.closeModal();
|
|
718
747
|
try {
|
|
748
|
+
var _context;
|
|
719
749
|
const response = await createExportOperation({
|
|
750
|
+
fileName: appendCsvOrJsonExtensionIfAbsent(_valuesInstanceProperty(formik).fileName, _valuesInstanceProperty(formik).outputFormat),
|
|
751
|
+
fileFormat: _valuesInstanceProperty(formik).outputFormat,
|
|
752
|
+
locales: _valuesInstanceProperty(formik).languages,
|
|
753
|
+
columns: _mapInstanceProperty(_context = flattenNestedFields(_valuesInstanceProperty(formik).fields)).call(_context, field => field.key),
|
|
720
754
|
projectKey,
|
|
721
755
|
graphQuery,
|
|
722
756
|
asyncDispatchFn: asyncDispatch
|
|
@@ -768,25 +802,10 @@ ExportConfirmationModal.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
768
802
|
} : {};
|
|
769
803
|
|
|
770
804
|
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
|
-
}
|
|
805
|
+
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
806
|
function FieldsRenderer(_ref) {
|
|
788
807
|
let fields = _ref.fields;
|
|
789
|
-
const allFields =
|
|
808
|
+
const allFields = flattenNestedFields(fields);
|
|
790
809
|
return jsx(TagList, {
|
|
791
810
|
children: _mapInstanceProperty(allFields).call(allFields, field => jsx("div", {
|
|
792
811
|
"data-testid": "test-field-".concat(field.key),
|
|
@@ -1090,9 +1109,7 @@ function ExportFileSettings(props) {
|
|
|
1090
1109
|
children: [jsx(PageContentNarrow, {
|
|
1091
1110
|
children: jsxs(Spacings.Stack, {
|
|
1092
1111
|
scale: "xl",
|
|
1093
|
-
children: [jsx(SelectField, _objectSpread$2(_objectSpread$2({
|
|
1094
|
-
isDisabled: true
|
|
1095
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1112
|
+
children: [jsx(SelectField, _objectSpread$2(_objectSpread$2({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1096
1113
|
title: intl.formatMessage(messages.outputFormat),
|
|
1097
1114
|
options: outputFormatOptions
|
|
1098
1115
|
})), jsx(TextField, _objectSpread$2(_objectSpread$2({
|
|
@@ -1140,9 +1157,7 @@ function ExportFileSettings(props) {
|
|
|
1140
1157
|
scale: "l",
|
|
1141
1158
|
children: [jsxs(Spacings.Inline, {
|
|
1142
1159
|
scale: "l",
|
|
1143
|
-
children: [jsx(SelectField, _objectSpread$2(_objectSpread$2({
|
|
1144
|
-
isDisabled: true
|
|
1145
|
-
}, formik.getFieldProps('outputFormat')), {}, {
|
|
1160
|
+
children: [jsx(SelectField, _objectSpread$2(_objectSpread$2({}, formik.getFieldProps('outputFormat')), {}, {
|
|
1146
1161
|
title: intl.formatMessage(messages.outputFormat),
|
|
1147
1162
|
options: outputFormatOptions,
|
|
1148
1163
|
horizontalConstraint: 7
|
|
@@ -1316,7 +1331,7 @@ ExportResourcesModal.defaultProps = {
|
|
|
1316
1331
|
appliedFilters: [],
|
|
1317
1332
|
matchingResourcesCount: 0,
|
|
1318
1333
|
exportSelectionType: EXPORT_SELECTION_TYPES.ALL_RESOURCES,
|
|
1319
|
-
outputFormat: OUTPUT_FORMATS.
|
|
1334
|
+
outputFormat: OUTPUT_FORMATS.CSV
|
|
1320
1335
|
};
|
|
1321
1336
|
|
|
1322
1337
|
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.0",
|
|
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": {
|