@commercetools-frontend-extensions/export-resources-modal 5.0.3 → 5.1.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/{active-drag-drop-area-90d26dc9.cjs.prod.js → active-drag-drop-area-56db6919.cjs.dev.js} +4 -3
- package/dist/{active-drag-drop-area-ab9704b7.esm.js → active-drag-drop-area-69b691d5.esm.js} +2 -1
- package/dist/{active-drag-drop-area-b1213fdd.cjs.dev.js → active-drag-drop-area-7fd53916.cjs.prod.js} +4 -3
- package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.dev.js +4 -3
- package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.prod.js +4 -3
- package/dist/commercetools-frontend-extensions-export-resources-modal.esm.js +4 -3
- package/dist/declarations/src/@constants/export-types.d.ts +4 -3
- package/dist/declarations/src/@hooks/index.d.ts +1 -1
- package/dist/declarations/src/@hooks/use-validate-export-operation.d.ts +33 -0
- package/dist/declarations/src/@types/export-api.d.ts +5 -1
- package/dist/declarations/src/@types/export-resources-modal-context.d.ts +1 -0
- package/dist/declarations/src/@types/export-resources-modal-types.d.ts +2 -1
- package/dist/declarations/src/@types/form.d.ts +5 -0
- package/dist/{enabled-drop-area-cd527058.esm.js → enabled-drop-area-48a953a6.esm.js} +2 -1
- package/dist/{enabled-drop-area-f4b604d3.cjs.prod.js → enabled-drop-area-4c8d613f.cjs.prod.js} +2 -1
- package/dist/{enabled-drop-area-0453fd0d.cjs.dev.js → enabled-drop-area-a5fe741d.cjs.dev.js} +2 -1
- package/dist/{file-dropped-area-2e6723f0.cjs.dev.js → file-dropped-area-5979698c.cjs.dev.js} +2 -1
- package/dist/{file-dropped-area-38e2f1eb.cjs.prod.js → file-dropped-area-b685a683.cjs.prod.js} +2 -1
- package/dist/{file-dropped-area-d44a1e01.esm.js → file-dropped-area-c8a5f539.esm.js} +2 -1
- package/dist/{index-44d6c0b4.cjs.dev.js → index-32b358db.cjs.dev.js} +391 -273
- package/dist/{index-6820b049.cjs.prod.js → index-bcefd2cf.cjs.prod.js} +391 -273
- package/dist/{index-f05f7a63.esm.js → index-f7e098bb.esm.js} +391 -274
- package/package.json +5 -5
- package/dist/declarations/src/@hooks/use-validate-imported-headers.d.ts +0 -15
|
@@ -15,7 +15,7 @@ import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/obje
|
|
|
15
15
|
import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
|
|
16
16
|
import { defineMessages, FormattedMessage, useIntl, IntlProvider } from 'react-intl';
|
|
17
17
|
import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
|
|
18
|
-
import { Text,
|
|
18
|
+
import { Text, Link, TextInput, CheckboxInput, RadioInput, TextField, AngleRightIcon, Spacings, Grid, designTokens, SelectField, FieldLabel, Constraints, Tooltip, SupportIcon, Stamp, IconButton, AngleDownIcon, CollapsibleMotion, Card, SearchTextInput, TagList, FlatButton, AngleUpIcon, CheckBoldIcon, DataTable } from '@commercetools-frontend/ui-kit';
|
|
19
19
|
import { jsx, Fragment, jsxs } from '@emotion/react/jsx-runtime';
|
|
20
20
|
import _includesInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/includes';
|
|
21
21
|
import _valuesInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/values';
|
|
@@ -41,6 +41,7 @@ import _Set from '@babel/runtime-corejs3/core-js-stable/set';
|
|
|
41
41
|
import _sortInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/sort';
|
|
42
42
|
import _indexOfInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/index-of';
|
|
43
43
|
import _trimInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/trim';
|
|
44
|
+
import _bindInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/bind';
|
|
44
45
|
import _Promise from '@babel/runtime-corejs3/core-js-stable/promise';
|
|
45
46
|
import _sliceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/slice';
|
|
46
47
|
import _Object$values from '@babel/runtime-corejs3/core-js-stable/object/values';
|
|
@@ -580,6 +581,26 @@ var messages = defineMessages({
|
|
|
580
581
|
id: 'ExportResourcesModal.uploadErrorsDetected',
|
|
581
582
|
description: 'Message shown when errors are detected during file upload',
|
|
582
583
|
defaultMessage: 'There are <b>{total}</b> errors detected while uploading the file <b>{fileName}</b>. Use <templateLink>our template</templateLink> to review the right formatting and supported values, try exporting using our field selection first or visit <documentationLink>our documentation</documentationLink> for further information.'
|
|
584
|
+
},
|
|
585
|
+
queryPredicate: {
|
|
586
|
+
id: 'ExportResourcesModal.queryPredicate',
|
|
587
|
+
description: 'Label for query predicate option',
|
|
588
|
+
defaultMessage: 'Query predicate'
|
|
589
|
+
},
|
|
590
|
+
invalidQueryPredicate: {
|
|
591
|
+
id: 'ExportResourcesModal.invalidQueryPredicate',
|
|
592
|
+
description: 'Error when query predicate field is not valid',
|
|
593
|
+
defaultMessage: 'There is an error with the query predicate. Make sure the syntax is correct.'
|
|
594
|
+
},
|
|
595
|
+
missingQueryPredicateError: {
|
|
596
|
+
id: 'ExportResourcesModal.missingQueryPredicateError',
|
|
597
|
+
description: 'Error when query predicate field is missing',
|
|
598
|
+
defaultMessage: 'Please enter a query predicate'
|
|
599
|
+
},
|
|
600
|
+
noResourcesToExport: {
|
|
601
|
+
id: 'ExportResourcesModal.noResourcesToExport',
|
|
602
|
+
description: 'Error message when there are no resources to export',
|
|
603
|
+
defaultMessage: 'No resources match your query predicate. Please check your query predicate and try again.'
|
|
583
604
|
}
|
|
584
605
|
});
|
|
585
606
|
|
|
@@ -603,6 +624,16 @@ function renderLocaleError(key) {
|
|
|
603
624
|
return null;
|
|
604
625
|
}
|
|
605
626
|
}
|
|
627
|
+
const renderQueryPredicateError = key => {
|
|
628
|
+
switch (key) {
|
|
629
|
+
case 'missing':
|
|
630
|
+
return jsx(FormattedMessage, _objectSpread$h({}, messages.missingQueryPredicateError));
|
|
631
|
+
case 'invalidInput':
|
|
632
|
+
return jsx(FormattedMessage, _objectSpread$h({}, messages.invalidQueryPredicate));
|
|
633
|
+
default:
|
|
634
|
+
return null;
|
|
635
|
+
}
|
|
636
|
+
};
|
|
606
637
|
|
|
607
638
|
function _callSuper$3(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$3() ? _Reflect$construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
608
639
|
function _isNativeReflectConstruct$3() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$3 = function () { return !!t; })(); }
|
|
@@ -747,7 +778,8 @@ const EXPORT_OPERATION_STATES = {
|
|
|
747
778
|
const EXPORT_TYPES = {
|
|
748
779
|
ALL: 'all',
|
|
749
780
|
FILTERED: 'filtered',
|
|
750
|
-
SELECTED: 'selected'
|
|
781
|
+
SELECTED: 'selected',
|
|
782
|
+
QUERY_PREDICATE: 'query-predicate'
|
|
751
783
|
};
|
|
752
784
|
|
|
753
785
|
const EXPORTABLE_RESOURCES = {
|
|
@@ -824,6 +856,140 @@ const DEFAULT_SHORT_LIVED_FLAGS = {};
|
|
|
824
856
|
const DEFAULT_LONG_LIVED_FLAGS = {};
|
|
825
857
|
_objectSpread$f(_objectSpread$f({}, DEFAULT_SHORT_LIVED_FLAGS), DEFAULT_LONG_LIVED_FLAGS);
|
|
826
858
|
|
|
859
|
+
function resourceTypeToFileName(resourceType, locale) {
|
|
860
|
+
var _context;
|
|
861
|
+
const date = new Date();
|
|
862
|
+
const dateFormatter = new Intl.DateTimeFormat(locale, {
|
|
863
|
+
year: '2-digit',
|
|
864
|
+
month: '2-digit',
|
|
865
|
+
day: '2-digit',
|
|
866
|
+
hour: '2-digit',
|
|
867
|
+
minute: '2-digit',
|
|
868
|
+
hour12: false
|
|
869
|
+
});
|
|
870
|
+
const parts = dateFormatter.formatToParts(date);
|
|
871
|
+
const dateParts = _reduceInstanceProperty(parts).call(parts, (acc, part) => {
|
|
872
|
+
if (part.type !== 'literal') {
|
|
873
|
+
acc[part.type] = part.value;
|
|
874
|
+
}
|
|
875
|
+
return acc;
|
|
876
|
+
}, {});
|
|
877
|
+
const orderedDateParts = _mapInstanceProperty(_context = _filterInstanceProperty(parts).call(parts, part => part.type === 'day' || part.type === 'month' || part.type === 'year')).call(_context, part => dateParts[part.type]).join('-');
|
|
878
|
+
const formattedDate = `${orderedDateParts}_${dateParts.hour}-${dateParts.minute}`;
|
|
879
|
+
const resourceTypeMap = {
|
|
880
|
+
[EXPORTABLE_RESOURCES.CATEGORY]: 'Categories',
|
|
881
|
+
[EXPORTABLE_RESOURCES.PRODUCT]: 'Products',
|
|
882
|
+
[EXPORTABLE_RESOURCES.PRODUCT_TYPE]: 'Product_Types',
|
|
883
|
+
[EXPORTABLE_RESOURCES.DISCOUNT_CODE]: 'Discount_Codes',
|
|
884
|
+
[EXPORTABLE_RESOURCES.INVENTORY_ENTRY]: 'Inventories',
|
|
885
|
+
[EXPORTABLE_RESOURCES.CUSTOMER]: 'Customers',
|
|
886
|
+
[EXPORTABLE_RESOURCES.ORDER]: 'Orders'
|
|
887
|
+
};
|
|
888
|
+
const displayName = resourceTypeMap[resourceType];
|
|
889
|
+
if (!displayName) {
|
|
890
|
+
throw new UnexpectedResourceTypeError(resourceType);
|
|
891
|
+
}
|
|
892
|
+
return `${displayName}_Export_${formattedDate}`;
|
|
893
|
+
}
|
|
894
|
+
function mapLocalesToOptions(locales) {
|
|
895
|
+
return _mapInstanceProperty(locales).call(locales, locale => ({
|
|
896
|
+
value: locale,
|
|
897
|
+
label: locale
|
|
898
|
+
}));
|
|
899
|
+
}
|
|
900
|
+
function isFilledArray(maybeArray) {
|
|
901
|
+
return _Array$isArray(maybeArray) && maybeArray.length > 0;
|
|
902
|
+
}
|
|
903
|
+
function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
|
|
904
|
+
const extensionRegex = /\.(csv|json)$/i;
|
|
905
|
+
if (!extensionRegex.test(fileName)) return `${fileName}.${fileFormat}`;
|
|
906
|
+
return fileName;
|
|
907
|
+
}
|
|
908
|
+
function getExportLogsLink(projectKey, msg) {
|
|
909
|
+
return jsx(Link, {
|
|
910
|
+
to: `/${projectKey}/operations/export/logs`,
|
|
911
|
+
children: msg
|
|
912
|
+
}, "link");
|
|
913
|
+
}
|
|
914
|
+
const extractFieldNamesAndAdditionalFieldExtensions = fields => {
|
|
915
|
+
const result = _reduceInstanceProperty(fields).call(fields, (acc, field) => {
|
|
916
|
+
if (field.extendedFieldNames) {
|
|
917
|
+
return [...acc, field.name, ...field.extendedFieldNames];
|
|
918
|
+
}
|
|
919
|
+
return [...acc, field.name];
|
|
920
|
+
}, []);
|
|
921
|
+
return [...new _Set(result)];
|
|
922
|
+
};
|
|
923
|
+
function sortFieldsByFieldOrder(_ref) {
|
|
924
|
+
let fieldNames = _ref.fieldNames,
|
|
925
|
+
fieldOrder = _ref.fieldOrder;
|
|
926
|
+
if (isFilledArray(fieldOrder)) {
|
|
927
|
+
return _sortInstanceProperty(fieldNames).call(fieldNames, (a, b) => {
|
|
928
|
+
let orderA = _indexOfInstanceProperty(fieldOrder).call(fieldOrder, a) !== -1 ? _indexOfInstanceProperty(fieldOrder).call(fieldOrder, a) : _indexOfInstanceProperty(fieldOrder).call(fieldOrder, a.split('.')[0]);
|
|
929
|
+
let orderB = _indexOfInstanceProperty(fieldOrder).call(fieldOrder, b) !== -1 ? _indexOfInstanceProperty(fieldOrder).call(fieldOrder, b) : _indexOfInstanceProperty(fieldOrder).call(fieldOrder, b.split('.')[0]);
|
|
930
|
+
|
|
931
|
+
// If a field is not 'custom',then consider it as '*'
|
|
932
|
+
orderA = orderA === -1 ? _indexOfInstanceProperty(fieldOrder).call(fieldOrder, '*') : orderA;
|
|
933
|
+
orderB = orderB === -1 ? _indexOfInstanceProperty(fieldOrder).call(fieldOrder, '*') : orderB;
|
|
934
|
+
return orderA - orderB;
|
|
935
|
+
});
|
|
936
|
+
}
|
|
937
|
+
return fieldNames;
|
|
938
|
+
}
|
|
939
|
+
function buildSelectedExportFilters(selectedResourceIds) {
|
|
940
|
+
if (!selectedResourceIds || selectedResourceIds?.length === 0) return undefined;
|
|
941
|
+
const formattedIds = _mapInstanceProperty(selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
|
|
942
|
+
return `id in (${formattedIds})`;
|
|
943
|
+
}
|
|
944
|
+
function isQueryFilter(filters) {
|
|
945
|
+
if (!filters) return false;
|
|
946
|
+
return 'query' in filters;
|
|
947
|
+
}
|
|
948
|
+
function isSearchFilter(filters) {
|
|
949
|
+
if (!filters) return false;
|
|
950
|
+
return 'filters' in filters || 'fullText' in filters;
|
|
951
|
+
}
|
|
952
|
+
function isPredicateFilter(filters) {
|
|
953
|
+
if (!filters) return false;
|
|
954
|
+
return 'where' in filters;
|
|
955
|
+
}
|
|
956
|
+
function validateFilters(filtersObject) {
|
|
957
|
+
if (filtersObject.where && filtersObject.filters) {
|
|
958
|
+
return false;
|
|
959
|
+
}
|
|
960
|
+
return Boolean(isQueryFilter(filtersObject.filters) || isSearchFilter(filtersObject.filters) || isPredicateFilter(filtersObject));
|
|
961
|
+
}
|
|
962
|
+
function areFiltersApplied(filtersObject) {
|
|
963
|
+
var _context2;
|
|
964
|
+
if (!filtersObject) {
|
|
965
|
+
return false;
|
|
966
|
+
}
|
|
967
|
+
if (filtersObject.where && _trimInstanceProperty(_context2 = filtersObject.where).call(_context2) !== '') {
|
|
968
|
+
return true;
|
|
969
|
+
}
|
|
970
|
+
if (isQueryFilter(filtersObject.filters)) {
|
|
971
|
+
return Boolean(filtersObject.filters.query);
|
|
972
|
+
}
|
|
973
|
+
if (isSearchFilter(filtersObject.filters)) {
|
|
974
|
+
var _context3, _context4;
|
|
975
|
+
const _filters = filtersObject.filters;
|
|
976
|
+
return Boolean(_filters.filters?.length || ((_context3 = _filters.fullText?.text) == null ? void 0 : _bindInstanceProperty(_context4 = Function.call).call(_context4, _trimInstanceProperty(_context3), _context3))?.());
|
|
977
|
+
}
|
|
978
|
+
return false;
|
|
979
|
+
}
|
|
980
|
+
function getInitialExportType(args) {
|
|
981
|
+
if (args.selectedResourceIds?.length) {
|
|
982
|
+
return EXPORT_TYPES.SELECTED;
|
|
983
|
+
}
|
|
984
|
+
if (args.filters?.total && areFiltersApplied(args.filters)) {
|
|
985
|
+
return EXPORT_TYPES.FILTERED;
|
|
986
|
+
}
|
|
987
|
+
return EXPORT_TYPES.ALL;
|
|
988
|
+
}
|
|
989
|
+
function removeEmptyGroups(groups) {
|
|
990
|
+
return _filterInstanceProperty(groups).call(groups, group => group.fields && group.fields.length > 0);
|
|
991
|
+
}
|
|
992
|
+
|
|
827
993
|
const isAnyFieldChecked = fields => {
|
|
828
994
|
return _someInstanceProperty(fields).call(fields, field => field.isChecked || field.fields && isAnyFieldChecked(field.fields));
|
|
829
995
|
};
|
|
@@ -937,6 +1103,25 @@ const getSelectedFieldLabels = group => {
|
|
|
937
1103
|
findSelectedFieldLabels(group.fields);
|
|
938
1104
|
return selectedLabels;
|
|
939
1105
|
};
|
|
1106
|
+
const extractFieldNamesFromGroups = (groups, fieldOrder) => {
|
|
1107
|
+
let checkedFields = [];
|
|
1108
|
+
const getCheckedFields = fields => {
|
|
1109
|
+
return _filterInstanceProperty(fields).call(fields, field => {
|
|
1110
|
+
if (field.fields) {
|
|
1111
|
+
return getCheckedFields(field.fields);
|
|
1112
|
+
}
|
|
1113
|
+
if (field.isChecked) checkedFields.push(field);
|
|
1114
|
+
return field.isChecked ?? false;
|
|
1115
|
+
});
|
|
1116
|
+
};
|
|
1117
|
+
_forEachInstanceProperty(groups).call(groups, group => {
|
|
1118
|
+
getCheckedFields(group.fields);
|
|
1119
|
+
});
|
|
1120
|
+
return sortFieldsByFieldOrder({
|
|
1121
|
+
fieldNames: extractFieldNamesAndAdditionalFieldExtensions(checkedFields),
|
|
1122
|
+
fieldOrder
|
|
1123
|
+
});
|
|
1124
|
+
};
|
|
940
1125
|
|
|
941
1126
|
let Step = /*#__PURE__*/function (Step) {
|
|
942
1127
|
Step["FileSettings"] = "file-settings";
|
|
@@ -957,21 +1142,27 @@ function validate(_ref) {
|
|
|
957
1142
|
let values = _valuesInstanceProperty(_ref),
|
|
958
1143
|
step = _ref.step,
|
|
959
1144
|
fieldSelectionMode = _ref.fieldSelectionMode,
|
|
960
|
-
importedHeaders = _ref.importedHeaders
|
|
1145
|
+
importedHeaders = _ref.importedHeaders,
|
|
1146
|
+
exportType = _ref.exportType;
|
|
961
1147
|
const fileName = values.fileName,
|
|
1148
|
+
queryPredicate = values.queryPredicate,
|
|
962
1149
|
locales = values.locales,
|
|
963
1150
|
groups = values.groups;
|
|
964
1151
|
const errors = {
|
|
965
1152
|
fileName: {},
|
|
966
1153
|
locales: {},
|
|
967
1154
|
fields: {},
|
|
968
|
-
importedCsvTemplateFile: {}
|
|
1155
|
+
importedCsvTemplateFile: {},
|
|
1156
|
+
queryPredicate: {}
|
|
969
1157
|
};
|
|
970
1158
|
if (TextInput.isEmpty(fileName)) {
|
|
971
1159
|
errors.fileName.missing = true;
|
|
972
1160
|
} else if (!/^[a-zA-Z0-9-_.]+$/.test(fileName)) {
|
|
973
1161
|
errors.fileName.invalidInput = true;
|
|
974
1162
|
}
|
|
1163
|
+
if (exportType === 'query-predicate' && TextInput.isEmpty(queryPredicate)) {
|
|
1164
|
+
errors.queryPredicate.missing = true;
|
|
1165
|
+
}
|
|
975
1166
|
if (step === Step.FieldsSelection) {
|
|
976
1167
|
if (fieldSelectionMode === 'selected-fields') {
|
|
977
1168
|
const allFields = _reduceInstanceProperty(groups).call(groups, (acc, group) => _concatInstanceProperty(acc).call(acc, group.fields), []);
|
|
@@ -1001,139 +1192,6 @@ function isFieldNameValid(header) {
|
|
|
1001
1192
|
return /^[a-zA-Z0-9._-]+$/.test(processedHeader);
|
|
1002
1193
|
}
|
|
1003
1194
|
|
|
1004
|
-
function resourceTypeToFileName(resourceType, locale) {
|
|
1005
|
-
var _context;
|
|
1006
|
-
const date = new Date();
|
|
1007
|
-
const dateFormatter = new Intl.DateTimeFormat(locale, {
|
|
1008
|
-
year: '2-digit',
|
|
1009
|
-
month: '2-digit',
|
|
1010
|
-
day: '2-digit',
|
|
1011
|
-
hour: '2-digit',
|
|
1012
|
-
minute: '2-digit',
|
|
1013
|
-
hour12: false
|
|
1014
|
-
});
|
|
1015
|
-
const parts = dateFormatter.formatToParts(date);
|
|
1016
|
-
const dateParts = _reduceInstanceProperty(parts).call(parts, (acc, part) => {
|
|
1017
|
-
if (part.type !== 'literal') {
|
|
1018
|
-
acc[part.type] = part.value;
|
|
1019
|
-
}
|
|
1020
|
-
return acc;
|
|
1021
|
-
}, {});
|
|
1022
|
-
const orderedDateParts = _mapInstanceProperty(_context = _filterInstanceProperty(parts).call(parts, part => part.type === 'day' || part.type === 'month' || part.type === 'year')).call(_context, part => dateParts[part.type]).join('-');
|
|
1023
|
-
const formattedDate = `${orderedDateParts}_${dateParts.hour}-${dateParts.minute}`;
|
|
1024
|
-
const resourceTypeMap = {
|
|
1025
|
-
[EXPORTABLE_RESOURCES.CATEGORY]: 'Categories',
|
|
1026
|
-
[EXPORTABLE_RESOURCES.PRODUCT]: 'Products',
|
|
1027
|
-
[EXPORTABLE_RESOURCES.PRODUCT_TYPE]: 'Product_Types',
|
|
1028
|
-
[EXPORTABLE_RESOURCES.DISCOUNT_CODE]: 'Discount_Codes',
|
|
1029
|
-
[EXPORTABLE_RESOURCES.INVENTORY_ENTRY]: 'Inventories',
|
|
1030
|
-
[EXPORTABLE_RESOURCES.CUSTOMER]: 'Customers',
|
|
1031
|
-
[EXPORTABLE_RESOURCES.ORDER]: 'Orders'
|
|
1032
|
-
};
|
|
1033
|
-
const displayName = resourceTypeMap[resourceType];
|
|
1034
|
-
if (!displayName) {
|
|
1035
|
-
throw new UnexpectedResourceTypeError(resourceType);
|
|
1036
|
-
}
|
|
1037
|
-
return `${displayName}_Export_${formattedDate}`;
|
|
1038
|
-
}
|
|
1039
|
-
function mapLocalesToOptions(locales) {
|
|
1040
|
-
return _mapInstanceProperty(locales).call(locales, locale => ({
|
|
1041
|
-
value: locale,
|
|
1042
|
-
label: locale
|
|
1043
|
-
}));
|
|
1044
|
-
}
|
|
1045
|
-
function isFilledArray(maybeArray) {
|
|
1046
|
-
return _Array$isArray(maybeArray) && maybeArray.length > 0;
|
|
1047
|
-
}
|
|
1048
|
-
function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
|
|
1049
|
-
const extensionRegex = /\.(csv|json)$/i;
|
|
1050
|
-
if (!extensionRegex.test(fileName)) return `${fileName}.${fileFormat}`;
|
|
1051
|
-
return fileName;
|
|
1052
|
-
}
|
|
1053
|
-
function getExportLogsLink(projectKey, msg) {
|
|
1054
|
-
return jsx(Link, {
|
|
1055
|
-
to: `/${projectKey}/operations/export/logs`,
|
|
1056
|
-
children: msg
|
|
1057
|
-
}, "link");
|
|
1058
|
-
}
|
|
1059
|
-
const extractFieldNamesAndAdditionalFieldExtensions = fields => {
|
|
1060
|
-
const result = _reduceInstanceProperty(fields).call(fields, (acc, field) => {
|
|
1061
|
-
if (field.extendedFieldNames) {
|
|
1062
|
-
return [...acc, field.name, ...field.extendedFieldNames];
|
|
1063
|
-
}
|
|
1064
|
-
return [...acc, field.name];
|
|
1065
|
-
}, []);
|
|
1066
|
-
return [...new _Set(result)];
|
|
1067
|
-
};
|
|
1068
|
-
function sortFieldsByFieldOrder(_ref) {
|
|
1069
|
-
let fieldNames = _ref.fieldNames,
|
|
1070
|
-
fieldOrder = _ref.fieldOrder;
|
|
1071
|
-
if (isFilledArray(fieldOrder)) {
|
|
1072
|
-
return _sortInstanceProperty(fieldNames).call(fieldNames, (a, b) => {
|
|
1073
|
-
let orderA = _indexOfInstanceProperty(fieldOrder).call(fieldOrder, a) !== -1 ? _indexOfInstanceProperty(fieldOrder).call(fieldOrder, a) : _indexOfInstanceProperty(fieldOrder).call(fieldOrder, a.split('.')[0]);
|
|
1074
|
-
let orderB = _indexOfInstanceProperty(fieldOrder).call(fieldOrder, b) !== -1 ? _indexOfInstanceProperty(fieldOrder).call(fieldOrder, b) : _indexOfInstanceProperty(fieldOrder).call(fieldOrder, b.split('.')[0]);
|
|
1075
|
-
|
|
1076
|
-
// If a field is not 'custom',then consider it as '*'
|
|
1077
|
-
orderA = orderA === -1 ? _indexOfInstanceProperty(fieldOrder).call(fieldOrder, '*') : orderA;
|
|
1078
|
-
orderB = orderB === -1 ? _indexOfInstanceProperty(fieldOrder).call(fieldOrder, '*') : orderB;
|
|
1079
|
-
return orderA - orderB;
|
|
1080
|
-
});
|
|
1081
|
-
}
|
|
1082
|
-
return fieldNames;
|
|
1083
|
-
}
|
|
1084
|
-
function buildSelectedExportFilters(selectedResourceIds) {
|
|
1085
|
-
if (!selectedResourceIds || selectedResourceIds?.length === 0) return undefined;
|
|
1086
|
-
const formattedIds = _mapInstanceProperty(selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
|
|
1087
|
-
return `id in (${formattedIds})`;
|
|
1088
|
-
}
|
|
1089
|
-
function isQueryFilter(filters) {
|
|
1090
|
-
if (!filters) return false;
|
|
1091
|
-
return 'query' in filters;
|
|
1092
|
-
}
|
|
1093
|
-
function isSearchFilter(filters) {
|
|
1094
|
-
if (!filters) return false;
|
|
1095
|
-
return 'filters' in filters || 'fullText' in filters;
|
|
1096
|
-
}
|
|
1097
|
-
function isPredicateFilter(filters) {
|
|
1098
|
-
if (!filters) return false;
|
|
1099
|
-
return 'where' in filters;
|
|
1100
|
-
}
|
|
1101
|
-
function validateFilters(filtersObject) {
|
|
1102
|
-
if (filtersObject.where && filtersObject.filters) {
|
|
1103
|
-
return false;
|
|
1104
|
-
}
|
|
1105
|
-
return Boolean(isQueryFilter(filtersObject.filters) || isSearchFilter(filtersObject.filters) || isPredicateFilter(filtersObject));
|
|
1106
|
-
}
|
|
1107
|
-
function areFiltersApplied(filtersObject) {
|
|
1108
|
-
var _context2;
|
|
1109
|
-
if (!filtersObject) {
|
|
1110
|
-
return false;
|
|
1111
|
-
}
|
|
1112
|
-
if (filtersObject.where && _trimInstanceProperty(_context2 = filtersObject.where).call(_context2) !== '') {
|
|
1113
|
-
return true;
|
|
1114
|
-
}
|
|
1115
|
-
if (isQueryFilter(filtersObject.filters)) {
|
|
1116
|
-
return Boolean(filtersObject.filters.query);
|
|
1117
|
-
}
|
|
1118
|
-
if (isSearchFilter(filtersObject.filters)) {
|
|
1119
|
-
const _filters = filtersObject.filters;
|
|
1120
|
-
return Boolean(_filters.filters?.length || _filters.fullText?.text?.trim());
|
|
1121
|
-
}
|
|
1122
|
-
return false;
|
|
1123
|
-
}
|
|
1124
|
-
function getInitialExportType(args) {
|
|
1125
|
-
if (args.selectedResourceIds?.length) {
|
|
1126
|
-
return EXPORT_TYPES.SELECTED;
|
|
1127
|
-
}
|
|
1128
|
-
if (args.filters?.total && areFiltersApplied(args.filters)) {
|
|
1129
|
-
return EXPORT_TYPES.FILTERED;
|
|
1130
|
-
}
|
|
1131
|
-
return EXPORT_TYPES.ALL;
|
|
1132
|
-
}
|
|
1133
|
-
function removeEmptyGroups(groups) {
|
|
1134
|
-
return _filterInstanceProperty(groups).call(groups, group => group.fields && group.fields.length > 0);
|
|
1135
|
-
}
|
|
1136
|
-
|
|
1137
1195
|
function ownKeys$e(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; }
|
|
1138
1196
|
function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys$e(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys$e(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1139
1197
|
const updateFieldGroupsWithIsCheckedValue = (groups, cachedSelectedGroups) => {
|
|
@@ -1358,6 +1416,13 @@ function groupFieldValidationErrors(errors, intl) {
|
|
|
1358
1416
|
});
|
|
1359
1417
|
}
|
|
1360
1418
|
|
|
1419
|
+
function isExportApiSuccessResponse(response) {
|
|
1420
|
+
return 'id' in response && 'state' in response && 'resourceType' in response && 'resourceCount' in response;
|
|
1421
|
+
}
|
|
1422
|
+
function isExportApiErrorResponse(error) {
|
|
1423
|
+
return Boolean(error && typeof error === 'object' && 'body' in error && error.body && typeof error.body === 'object' && ('validationErrors' in error.body || 'errors' in error.body) && 'message' in error.body && 'statusCode' in error.body && 'error' in error.body);
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1361
1426
|
const useInitialValues = props => {
|
|
1362
1427
|
var _context;
|
|
1363
1428
|
const _useApplicationContex = useApplicationContext(applicationContext => ({
|
|
@@ -1390,6 +1455,7 @@ const useInitialValues = props => {
|
|
|
1390
1455
|
fileName: `${resourceTypeToFileName(props.resourceType, userLocale)}`,
|
|
1391
1456
|
locales: [locale],
|
|
1392
1457
|
groups: updateFieldGroupWithAdditionalFieldExtensions(groups),
|
|
1458
|
+
queryPredicate: '',
|
|
1393
1459
|
// Preferences
|
|
1394
1460
|
fillRows: false,
|
|
1395
1461
|
importedCsvTemplateFile: null
|
|
@@ -1401,37 +1467,30 @@ const _excluded$3 = ["projectKey"];
|
|
|
1401
1467
|
function ownKeys$c(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; }
|
|
1402
1468
|
function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys$c(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys$c(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1403
1469
|
async function makeExportRequest(params, asyncDispatchFn) {
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
throw new InvalidResponseError('Response missing state field');
|
|
1422
|
-
}
|
|
1423
|
-
return response;
|
|
1424
|
-
} catch (responseError) {
|
|
1425
|
-
if (responseError && typeof responseError === 'object' && 'body' in responseError && responseError.body && typeof responseError.body === 'object' && 'validationErrors' in responseError.body) {
|
|
1426
|
-
throw responseError.body;
|
|
1427
|
-
}
|
|
1428
|
-
throw responseError;
|
|
1470
|
+
const projectKey = params.projectKey,
|
|
1471
|
+
requestData = _objectWithoutProperties(params, _excluded$3);
|
|
1472
|
+
const uri = `/${projectKey}/export-operations`;
|
|
1473
|
+
const requestAction = actions.post({
|
|
1474
|
+
mcApiProxyTarget: MC_API_PROXY_TARGETS.EXPORT,
|
|
1475
|
+
uri,
|
|
1476
|
+
headers: {
|
|
1477
|
+
accept: 'application/json'
|
|
1478
|
+
},
|
|
1479
|
+
payload: requestData
|
|
1480
|
+
});
|
|
1481
|
+
const response = await asyncDispatchFn(requestAction);
|
|
1482
|
+
if (!response || typeof response !== 'object') {
|
|
1483
|
+
throw new InvalidResponseError();
|
|
1484
|
+
}
|
|
1485
|
+
if (!('state' in response)) {
|
|
1486
|
+
throw new InvalidResponseError('Response missing state field');
|
|
1429
1487
|
}
|
|
1488
|
+
return response;
|
|
1430
1489
|
}
|
|
1431
1490
|
function createExportOperation(params, asyncDispatchFn) {
|
|
1432
1491
|
return makeExportRequest(params, asyncDispatchFn);
|
|
1433
1492
|
}
|
|
1434
|
-
function
|
|
1493
|
+
function validateExportOperation(params, asyncDispatchFn) {
|
|
1435
1494
|
return makeExportRequest(_objectSpread$c(_objectSpread$c({}, params), {}, {
|
|
1436
1495
|
dryRun: true
|
|
1437
1496
|
}), asyncDispatchFn);
|
|
@@ -1446,25 +1505,6 @@ const useStartExportOperation = props => {
|
|
|
1446
1505
|
projectKey: applicationContext.project?.key
|
|
1447
1506
|
})),
|
|
1448
1507
|
projectKey = _useApplicationContex.projectKey;
|
|
1449
|
-
const extractFieldNamesFromGroups = groups => {
|
|
1450
|
-
let checkedFields = [];
|
|
1451
|
-
const getCheckedFields = fields => {
|
|
1452
|
-
return _filterInstanceProperty(fields).call(fields, field => {
|
|
1453
|
-
if (field.fields) {
|
|
1454
|
-
return getCheckedFields(field.fields);
|
|
1455
|
-
}
|
|
1456
|
-
if (field.isChecked) checkedFields.push(field);
|
|
1457
|
-
return field.isChecked ?? false;
|
|
1458
|
-
});
|
|
1459
|
-
};
|
|
1460
|
-
_forEachInstanceProperty(groups).call(groups, group => {
|
|
1461
|
-
getCheckedFields(group.fields);
|
|
1462
|
-
});
|
|
1463
|
-
return sortFieldsByFieldOrder({
|
|
1464
|
-
fieldNames: extractFieldNamesAndAdditionalFieldExtensions(checkedFields),
|
|
1465
|
-
fieldOrder: props.fieldOrder
|
|
1466
|
-
});
|
|
1467
|
-
};
|
|
1468
1508
|
const startExportOperation = async (values, exportType, fieldSelectionMode, localeOption, importedHeaders) => {
|
|
1469
1509
|
try {
|
|
1470
1510
|
if (!projectKey) throw new Error('Project key is missing');
|
|
@@ -1472,7 +1512,7 @@ const useStartExportOperation = props => {
|
|
|
1472
1512
|
if (fieldSelectionMode === 'imported-csv-template' && values.importedCsvTemplateFile) {
|
|
1473
1513
|
fields = importedHeaders;
|
|
1474
1514
|
} else {
|
|
1475
|
-
fields = extractFieldNamesFromGroups(values.groups);
|
|
1515
|
+
fields = extractFieldNamesFromGroups(values.groups, props.fieldOrder);
|
|
1476
1516
|
}
|
|
1477
1517
|
let where = undefined;
|
|
1478
1518
|
let filters = undefined;
|
|
@@ -1485,6 +1525,9 @@ const useStartExportOperation = props => {
|
|
|
1485
1525
|
} else if (isSearchFilter(props.filters.filters)) {
|
|
1486
1526
|
filters = props.filters.filters;
|
|
1487
1527
|
}
|
|
1528
|
+
} else if (exportType === EXPORT_TYPES.QUERY_PREDICATE) {
|
|
1529
|
+
var _context;
|
|
1530
|
+
where = _trimInstanceProperty(_context = values.queryPredicate).call(_context);
|
|
1488
1531
|
}
|
|
1489
1532
|
let locales = undefined;
|
|
1490
1533
|
if (localeOption !== 'onlyLocalesFoundInCsvFile') {
|
|
@@ -1501,29 +1544,32 @@ const useStartExportOperation = props => {
|
|
|
1501
1544
|
where,
|
|
1502
1545
|
filters
|
|
1503
1546
|
}, asyncDispatch);
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1547
|
+
if (isExportApiSuccessResponse(response)) {
|
|
1548
|
+
switch (response.state) {
|
|
1549
|
+
case EXPORT_OPERATION_STATES.QUEUED:
|
|
1550
|
+
case EXPORT_OPERATION_STATES.PROCESSING:
|
|
1551
|
+
case EXPORT_OPERATION_STATES.COMPLETED:
|
|
1552
|
+
showNotification({
|
|
1553
|
+
kind: 'info',
|
|
1554
|
+
domain: DOMAINS.SIDE,
|
|
1555
|
+
// @ts-ignore
|
|
1556
|
+
text: intl.formatMessage(messages.exportOperationSuccessMessage, {
|
|
1557
|
+
newline: getNewLine,
|
|
1558
|
+
logsLink: msg => getExportLogsLink(projectKey, msg),
|
|
1559
|
+
b: getBold
|
|
1560
|
+
})
|
|
1561
|
+
}, {
|
|
1562
|
+
dismissAfter: 5000
|
|
1563
|
+
});
|
|
1564
|
+
if (typeof props.onExportSuccess === 'function') props.onExportSuccess();
|
|
1565
|
+
break;
|
|
1566
|
+
default:
|
|
1567
|
+
throw new UnexpectedExportOperationStateError(response.state);
|
|
1568
|
+
}
|
|
1569
|
+
} else {
|
|
1570
|
+
throw new Error(response.message || 'Unknown error occurred during export operation');
|
|
1524
1571
|
}
|
|
1525
1572
|
} catch (error) {
|
|
1526
|
-
// TODO: custom error messages for each error type
|
|
1527
1573
|
showNotification({
|
|
1528
1574
|
text: intl.formatMessage(messages.unexpectedError),
|
|
1529
1575
|
kind: 'error',
|
|
@@ -1540,7 +1586,7 @@ const useStartExportOperation = props => {
|
|
|
1540
1586
|
|
|
1541
1587
|
const _excluded$2 = ["fields"];
|
|
1542
1588
|
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; }
|
|
1543
|
-
function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
1589
|
+
function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var _context6, _context7; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context6 = ownKeys$b(Object(t), !0)).call(_context6, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context7 = ownKeys$b(Object(t))).call(_context7, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1544
1590
|
const getFieldFullName = _ref => {
|
|
1545
1591
|
var _context;
|
|
1546
1592
|
let fieldPrefix = _ref.fieldPrefix,
|
|
@@ -1550,6 +1596,7 @@ const getFieldFullName = _ref => {
|
|
|
1550
1596
|
const localizeTypeDefinitionLabels = function () {
|
|
1551
1597
|
let fieldDefinitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
1552
1598
|
return _mapInstanceProperty(fieldDefinitions).call(fieldDefinitions, _ref2 => {
|
|
1599
|
+
var _context2, _context3;
|
|
1553
1600
|
let fields = _ref2.fields,
|
|
1554
1601
|
fieldsType = _objectWithoutProperties(_ref2, _excluded$2);
|
|
1555
1602
|
const isFieldTypeLabelLocalized = _Array$isArray(fieldsType.label);
|
|
@@ -1559,7 +1606,7 @@ const localizeTypeDefinitionLabels = function () {
|
|
|
1559
1606
|
from: 'label',
|
|
1560
1607
|
to: 'label'
|
|
1561
1608
|
}]).label : fieldsType.label,
|
|
1562
|
-
fields: fields?.
|
|
1609
|
+
fields: ((_context2 = fields) == null ? void 0 : _bindInstanceProperty(_context3 = Function.call).call(_context3, _mapInstanceProperty(_context2), _context2))?.(field => {
|
|
1563
1610
|
const isFieldLabelLocalized = _Array$isArray(field.label);
|
|
1564
1611
|
if (!isFieldLabelLocalized) {
|
|
1565
1612
|
return field;
|
|
@@ -1597,6 +1644,7 @@ const useConvertFieldDefinitionsForExport = () => {
|
|
|
1597
1644
|
if (!fieldDefinitions) return [];
|
|
1598
1645
|
const localizedTypeDefinitions = localizeTypeDefinitionLabels(fieldDefinitions);
|
|
1599
1646
|
const results = _mapInstanceProperty(localizedTypeDefinitions).call(localizedTypeDefinitions, transformedType => {
|
|
1647
|
+
var _context4, _context5;
|
|
1600
1648
|
const isTypeLabelLocalized = typeof transformedType.label !== 'string';
|
|
1601
1649
|
return {
|
|
1602
1650
|
isExpandable: true,
|
|
@@ -1610,7 +1658,7 @@ const useConvertFieldDefinitionsForExport = () => {
|
|
|
1610
1658
|
fallbackOrder: languages,
|
|
1611
1659
|
fallback: transformedType.name
|
|
1612
1660
|
}) : transformedType.label,
|
|
1613
|
-
fields: sortByField(transformedType.fields?.
|
|
1661
|
+
fields: sortByField(((_context4 = transformedType.fields) == null ? void 0 : _bindInstanceProperty(_context5 = Function.call).call(_context5, _mapInstanceProperty(_context4), _context4))?.(fieldDefinition => {
|
|
1614
1662
|
const isFieldLabelLocalized = typeof fieldDefinition.label !== 'string';
|
|
1615
1663
|
return {
|
|
1616
1664
|
name: getFieldFullName({
|
|
@@ -1637,7 +1685,7 @@ const useConvertFieldDefinitionsForExport = () => {
|
|
|
1637
1685
|
};
|
|
1638
1686
|
};
|
|
1639
1687
|
|
|
1640
|
-
const
|
|
1688
|
+
const useValidateExportOperation = () => {
|
|
1641
1689
|
const intl = useIntl();
|
|
1642
1690
|
const asyncDispatch = useAsyncDispatch();
|
|
1643
1691
|
const showNotification = useShowNotification();
|
|
@@ -1645,9 +1693,9 @@ const useValidateImportedHeaders = () => {
|
|
|
1645
1693
|
projectKey: context.project?.key
|
|
1646
1694
|
})),
|
|
1647
1695
|
projectKey = _useApplicationContex.projectKey;
|
|
1648
|
-
const
|
|
1696
|
+
const validateExport = async params => {
|
|
1649
1697
|
try {
|
|
1650
|
-
var _context;
|
|
1698
|
+
var _context, _context2, _context3;
|
|
1651
1699
|
if (!projectKey) return;
|
|
1652
1700
|
const invalidFields = _filterInstanceProperty(_context = params.fields).call(_context, field => !isFieldNameValid(field));
|
|
1653
1701
|
if (invalidFields.length > 0) {
|
|
@@ -1659,25 +1707,46 @@ const useValidateImportedHeaders = () => {
|
|
|
1659
1707
|
}))
|
|
1660
1708
|
};
|
|
1661
1709
|
}
|
|
1662
|
-
await
|
|
1710
|
+
const response = await validateExportOperation({
|
|
1663
1711
|
projectKey,
|
|
1664
1712
|
resourceType: params.resourceType,
|
|
1665
1713
|
fileName: params.fileName,
|
|
1666
1714
|
fileFormat: params.outputFormat,
|
|
1667
1715
|
fields: params.fields,
|
|
1668
|
-
locales: params.locales
|
|
1716
|
+
locales: params.locales,
|
|
1717
|
+
where: ((_context2 = params.queryPredicate) == null ? void 0 : _bindInstanceProperty(_context3 = Function.call).call(_context3, _trimInstanceProperty(_context2), _context2))?.() || undefined
|
|
1669
1718
|
}, asyncDispatch);
|
|
1670
|
-
|
|
1671
|
-
success: true,
|
|
1672
|
-
validationErrors: []
|
|
1673
|
-
};
|
|
1674
|
-
} catch (error) {
|
|
1675
|
-
if (typeof error === 'object' && error && 'validationErrors' in error && _Array$isArray(error.validationErrors)) {
|
|
1719
|
+
if (isExportApiSuccessResponse(response) && response.resourceCount === 0) {
|
|
1676
1720
|
return {
|
|
1677
1721
|
success: false,
|
|
1678
|
-
|
|
1722
|
+
noResourcesToExport: true
|
|
1679
1723
|
};
|
|
1680
1724
|
}
|
|
1725
|
+
return {
|
|
1726
|
+
success: true
|
|
1727
|
+
};
|
|
1728
|
+
} catch (error) {
|
|
1729
|
+
if (isExportApiErrorResponse(error)) {
|
|
1730
|
+
if (error.body.errors?.length) {
|
|
1731
|
+
var _context4;
|
|
1732
|
+
const whereError = _findInstanceProperty(_context4 = error.body.errors).call(_context4, error => {
|
|
1733
|
+
var _context5;
|
|
1734
|
+
return error.message && _includesInstanceProperty(_context5 = error.message).call(_context5, 'Malformed parameter: where');
|
|
1735
|
+
});
|
|
1736
|
+
if (whereError) {
|
|
1737
|
+
return {
|
|
1738
|
+
success: false,
|
|
1739
|
+
invalidQueryPredicate: true
|
|
1740
|
+
};
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
if (error.body.validationErrors?.length) {
|
|
1744
|
+
return {
|
|
1745
|
+
success: false,
|
|
1746
|
+
validationErrors: error.body.validationErrors
|
|
1747
|
+
};
|
|
1748
|
+
}
|
|
1749
|
+
}
|
|
1681
1750
|
showNotification({
|
|
1682
1751
|
text: intl.formatMessage(messages.unexpectedError),
|
|
1683
1752
|
kind: 'error',
|
|
@@ -1690,7 +1759,7 @@ const useValidateImportedHeaders = () => {
|
|
|
1690
1759
|
}
|
|
1691
1760
|
};
|
|
1692
1761
|
return {
|
|
1693
|
-
|
|
1762
|
+
validateExport
|
|
1694
1763
|
};
|
|
1695
1764
|
};
|
|
1696
1765
|
|
|
@@ -1738,6 +1807,7 @@ function ownKeys$9(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySy
|
|
|
1738
1807
|
function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys$9(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys$9(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1739
1808
|
function ExportScopeSection() {
|
|
1740
1809
|
const _useExportResourcesMo = useExportResourcesModalContext(),
|
|
1810
|
+
formik = _useExportResourcesMo.formik,
|
|
1741
1811
|
exportType = _useExportResourcesMo.exportType,
|
|
1742
1812
|
totalResourcesCount = _useExportResourcesMo.totalResourcesCount,
|
|
1743
1813
|
filters = _useExportResourcesMo.filters,
|
|
@@ -1745,10 +1815,11 @@ function ExportScopeSection() {
|
|
|
1745
1815
|
selectedResourceIds = _useExportResourcesMo.selectedResourceIds,
|
|
1746
1816
|
setExportType = _useExportResourcesMo.setExportType,
|
|
1747
1817
|
resourceType = _useExportResourcesMo.resourceType,
|
|
1748
|
-
hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1818
|
+
hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption,
|
|
1819
|
+
showQueryPredicateOption = _useExportResourcesMo.showQueryPredicateOption;
|
|
1820
|
+
const shouldShowQueryPredicateField = exportType === EXPORT_TYPES.QUERY_PREDICATE;
|
|
1821
|
+
return jsxs(Fragment, {
|
|
1822
|
+
children: [jsxs(RadioInput.Group, {
|
|
1752
1823
|
value: exportType,
|
|
1753
1824
|
onChange: e => {
|
|
1754
1825
|
setExportType(e.target.value);
|
|
@@ -1788,8 +1859,23 @@ function ExportScopeSection() {
|
|
|
1788
1859
|
}
|
|
1789
1860
|
}) : messages.exportScopeSelectedWithoutCount
|
|
1790
1861
|
})
|
|
1862
|
+
}), showQueryPredicateOption && jsx(RadioInput.Option, {
|
|
1863
|
+
value: EXPORT_TYPES.QUERY_PREDICATE,
|
|
1864
|
+
children: jsx(Text.Body, {
|
|
1865
|
+
intlMessage: messages.queryPredicate
|
|
1866
|
+
})
|
|
1791
1867
|
})]
|
|
1792
|
-
})
|
|
1868
|
+
}), shouldShowQueryPredicateField && jsx(TextField, {
|
|
1869
|
+
name: "queryPredicate",
|
|
1870
|
+
"data-testid": "query-predicate-field",
|
|
1871
|
+
title: "",
|
|
1872
|
+
onChange: formik.handleChange,
|
|
1873
|
+
onBlur: formik.handleBlur,
|
|
1874
|
+
value: _valuesInstanceProperty(formik).queryPredicate,
|
|
1875
|
+
touched: formik.touched.queryPredicate,
|
|
1876
|
+
errors: mapFormikErrors(formik.errors.queryPredicate),
|
|
1877
|
+
renderError: renderQueryPredicateError
|
|
1878
|
+
})]
|
|
1793
1879
|
});
|
|
1794
1880
|
}
|
|
1795
1881
|
|
|
@@ -2085,6 +2171,7 @@ const CollapsibleFieldWrapper = _ref => {
|
|
|
2085
2171
|
});
|
|
2086
2172
|
};
|
|
2087
2173
|
const FieldSection = _ref3 => {
|
|
2174
|
+
var _context, _context2, _context7, _context8;
|
|
2088
2175
|
let fields = _ref3.fields,
|
|
2089
2176
|
parentKeys = _ref3.parentKeys,
|
|
2090
2177
|
formik = _ref3.formik,
|
|
@@ -2094,9 +2181,12 @@ const FieldSection = _ref3 => {
|
|
|
2094
2181
|
maxVisibleChildren = _ref3.maxVisibleChildren;
|
|
2095
2182
|
const _useExportFieldSelect = useExportFieldSelectionContext(),
|
|
2096
2183
|
updateExpandedGroups = _useExportFieldSelect.updateExpandedGroups;
|
|
2097
|
-
const visibleFields = isSearchActive || !maxVisibleChildren ? fields : fields?.
|
|
2184
|
+
const visibleFields = isSearchActive || !maxVisibleChildren ? fields : ((_context = fields) == null ? void 0 : _bindInstanceProperty(_context2 = Function.call).call(_context2, _sliceInstanceProperty(_context), _context))?.(0, maxVisibleChildren);
|
|
2098
2185
|
const hasMoreFields = maxVisibleChildren && !isSearchActive && fields && fields.length > maxVisibleChildren;
|
|
2099
|
-
const visibleIndex = field =>
|
|
2186
|
+
const visibleIndex = field => {
|
|
2187
|
+
var _context3, _context4, _context5, _context6;
|
|
2188
|
+
return ((_context3 = ((_context4 = fields) == null ? void 0 : _bindInstanceProperty(_context5 = Function.call).call(_context5, _filterInstanceProperty(_context4), _context4))?.(f => !f.isHidden)) == null ? void 0 : _bindInstanceProperty(_context6 = Function.call).call(_context6, _indexOfInstanceProperty(_context3), _context3))?.(field) || -1;
|
|
2189
|
+
};
|
|
2100
2190
|
const shouldDisplayField = field => {
|
|
2101
2191
|
if (field.isHidden) return false;
|
|
2102
2192
|
if (!maxVisibleChildren) return true;
|
|
@@ -2107,7 +2197,7 @@ const FieldSection = _ref3 => {
|
|
|
2107
2197
|
};
|
|
2108
2198
|
return jsxs(Spacings.Stack, {
|
|
2109
2199
|
scale: "s",
|
|
2110
|
-
children: [visibleFields?.
|
|
2200
|
+
children: [((_context7 = visibleFields) == null ? void 0 : _bindInstanceProperty(_context8 = Function.call).call(_context8, _mapInstanceProperty(_context7), _context7))?.((field, index) => {
|
|
2111
2201
|
const isChildrenCountDisplayed = shouldDisplayChildrenCount(field);
|
|
2112
2202
|
const hasDependents = Boolean(field.dependentGroupNames?.length || field.dependentFieldNames?.length);
|
|
2113
2203
|
const isAnyOfTheChildFieldsChecked = isAnyFieldChecked(field.fields || []);
|
|
@@ -2155,8 +2245,8 @@ const FieldSection = _ref3 => {
|
|
|
2155
2245
|
const updateAllChildFieldsChecked = (path, checked) => {
|
|
2156
2246
|
const item = get(_valuesInstanceProperty(formik), path);
|
|
2157
2247
|
if (item && item.fields) {
|
|
2158
|
-
var
|
|
2159
|
-
_forEachInstanceProperty(
|
|
2248
|
+
var _context9;
|
|
2249
|
+
_forEachInstanceProperty(_context9 = item.fields).call(_context9, (field, i) => {
|
|
2160
2250
|
const fieldPath = `${path}.fields[${i}]`;
|
|
2161
2251
|
if (!field.fields?.length) {
|
|
2162
2252
|
formik.setFieldValue(`${fieldPath}.isChecked`, checked || field.isRequired,
|
|
@@ -2392,7 +2482,7 @@ const NoSearchResults = () => {
|
|
|
2392
2482
|
};
|
|
2393
2483
|
|
|
2394
2484
|
function ownKeys$5(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; }
|
|
2395
|
-
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
2485
|
+
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var _context7, _context8; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context7 = ownKeys$5(Object(t), !0)).call(_context7, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context8 = ownKeys$5(Object(t))).call(_context8, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2396
2486
|
const totalSpacing = 56 +
|
|
2397
2487
|
// MC header
|
|
2398
2488
|
32 * 2 + (
|
|
@@ -2437,6 +2527,7 @@ const StyledGridCard = /*#__PURE__*/_styled(Card, process.env.NODE_ENV === "prod
|
|
|
2437
2527
|
label: "StyledGridCard"
|
|
2438
2528
|
})("max-height:calc(100vh - ", totalSpacing, "px);overflow:auto;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlbGVjdGVkLWZpZWxkcy1mb3JtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0Q21DIiwiZmlsZSI6InNlbGVjdGVkLWZpZWxkcy1mb3JtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUludGwgfSBmcm9tICdyZWFjdC1pbnRsJ1xuaW1wb3J0IHsgdXNlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tc2hlbGwtY29ubmVjdG9ycydcbmltcG9ydCB7XG4gIENhcmQsXG4gIEdyaWQsXG4gIFNwYWNpbmdzLFxuICBTZWFyY2hUZXh0SW5wdXQsXG4gIGRlc2lnblRva2Vucyxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvdWkta2l0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoL2RlYm91bmNlJ1xuaW1wb3J0IEV4cG9ydEZpZWxkU2VsZWN0aW9uUHJvdmlkZXIgZnJvbSAnLi9leHBvcnQtZmllbGQtc2VsZWN0aW9uLXByb3ZpZGVyJ1xuaW1wb3J0IHsgRmllbGRHcm91cFNlY3Rpb24gfSBmcm9tICcuL2ZpZWxkLWdyb3VwLXNlY3Rpb24nXG5pbXBvcnQgeyBPUEVSQVRJT05TX0VYUE9SVF9SRVNPVVJDRVNfTU9EQUxfU0VMRUNUSU9OIH0gZnJvbSAnLi4vLi4vQGNvbnN0YW50cydcbmltcG9ydCB7IHVzZUV4cG9ydFJlc291cmNlc01vZGFsQ29udGV4dCwgdXNlU3RvcmFnZSB9IGZyb20gJy4uLy4uL0Bob29rcydcbmltcG9ydCB7IHR5cGUgRm9ybUZpZWxkLCB0eXBlIEZvcm1Hcm91cCB9IGZyb20gJy4uLy4uL0B0eXBlcydcbmltcG9ydCB7IHVwZGF0ZUZpZWxkRGVwZW5kZW5jaWVzU3RhdHVzIH0gZnJvbSAnLi4vLi4vQHV0aWxzJ1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uLy4uL21lc3NhZ2VzJ1xuaW1wb3J0IHsgTm9TZWFyY2hSZXN1bHRzIH0gZnJvbSAnLi4vbm8tc2VhcmNoLXJlc3VsdHMnXG5cbmNvbnN0IHRvdGFsU3BhY2luZyA9XG4gIDU2ICsgLy8gTUMgaGVhZGVyXG4gIDMyICogMiArIC8vIG91dGVyIG1vZGFsIHNwYWNpbmdcbiAgKDMyICsgNDApICsgLy8gZm9vdGVyIChkaWFsb2cgYnV0dG9ucyArIG1hcmdpbilcbiAgNDAgKyAvLyBzZWFyY2ggaW5wdXRcbiAgMjQgKyAvLyBzZWFyY2ggaW5wdXQgcGFkZGluZ1xuICAyNCArIC8vIG1vZGFsIGhlYWRlclxuICAxNiArIC8vIG1vZGFsIGhlYWRlciBtYXJnaW5cbiAgOCArIC8vIHNwYWNpbmcgYmV0d2VlbiBzZWFyY2ggaW5wdXQgYW5kIGdyaWQgY2FyZFxuICAoMTYgKiAyICsgOCAqIDIpICsgLy8gbW9kYWwgcGFkZGluZ3NcbiAgMjYgKyAvLyBcIlNlbGVjdCBmaWVsZHMgZnJvbSBhIGxpbWl0ZWQgbGlzdFwiIHJhZGlvIGJ1dHRvbiBoZWlnaHRcbiAgMjYgKyAvLyBcIlNlbGVjdCBmaWVsZHMgZnJvbSBhbiBpbXBvcnRlZCBDU1YgdGVtcGxhdGVcIiByYWRpbyBidXR0b24gaGVpZ2h0XG4gIDQ4ICsgLy8gSW5zZXQgcGFkZGluZ3MgKHRvcCArIGJvdHRvbSlcbiAgMSArIC8vIDFzdCBEaXZpZGVyIGhlaWdodFxuICAxICsgLy8gMm5kIERpdmlkZXIgaGVpZ2h0XG4gIDggK1xuICA4ICsgLy8gRGl2aWRlciBtYXJnaW5zXG4gIDg2ICsgLy8gbG9jYWxlIHNlbGVjdG9yXG4gIDMyICsgLy8gbG9jYWxlcyBzZWxlY3RvciBtYXJnaW5cbiAgNCAvLyBib3JkZXJzXG5cbmNvbnN0IE1JTl9TRUFSQ0hfTEVOR1RIID0gM1xuXG5jb25zdCBTdHlsZWRHcmlkQ2FyZCA9IHN0eWxlZChDYXJkKWBcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICR7dG90YWxTcGFjaW5nfXB4KTtcbiAgb3ZlcmZsb3c6IGF1dG87XG5gXG5cbmV4cG9ydCBjb25zdCBTZWxlY3RlZEZpZWxkc0Zvcm0gPSAoKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKClcbiAgY29uc3QgW2ZpZWxkU2VhcmNoVGVybSwgc2V0RmllbGRTZWFyY2hUZXJtXSA9IFJlYWN0LnVzZVN0YXRlKCcnKVxuICBjb25zdCB7IHByb2plY3RLZXkgfSA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dCgoY29udGV4dCkgPT4gKHtcbiAgICBwcm9qZWN0S2V5OiBjb250ZXh0LnByb2plY3Q/LmtleSxcbiAgfSkpXG4gIGNvbnN0IFtfLCBzZXRDYWNoZWRTZWxlY3RlZEdyb3Vwc10gPSB1c2VTdG9yYWdlKFxuICAgIGAke3Byb2plY3RLZXl9LyR7T1BFUkFUSU9OU19FWFBPUlRfUkVTT1VSQ0VTX01PREFMX1NFTEVDVElPTn1gLFxuICAgIHt9XG4gIClcbiAgY29uc3QgeyBmb3JtaWssIHJlc291cmNlVHlwZSB9ID0gdXNlRXhwb3J0UmVzb3VyY2VzTW9kYWxDb250ZXh0KClcblxuICBjb25zdCBpc1NlYXJjaEFjdGl2ZSA9IGZpZWxkU2VhcmNoVGVybT8udHJpbSgpPy5sZW5ndGggPj0gTUlOX1NFQVJDSF9MRU5HVEhcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHVwZGF0ZUZpZWxkRGVwZW5kZW5jaWVzU3RhdHVzKGZvcm1paylcbiAgICBjb25zdCBjaGVja2VkRmllbGRzID0ge31cbiAgICBmdW5jdGlvbiBnZXRDaGVja2VkRmllbGRzKGZpZWxkOiBGb3JtRmllbGQsIGdyb3VwTmFtZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZC5uYW1lID8gYCR7Z3JvdXBOYW1lfS4ke2ZpZWxkLm5hbWV9YCA6IGdyb3VwTmFtZVxuICAgICAgaWYgKGZpZWxkLmZpZWxkcykge1xuICAgICAgICByZXR1cm4gZmllbGQuZmllbGRzLmZvckVhY2goKGYpID0+IGdldENoZWNrZWRGaWVsZHMoZiwgZmllbGROYW1lKSlcbiAgICAgIH1cblxuICAgICAgY2hlY2tlZEZpZWxkc1tmaWVsZE5hbWVdID0gZmllbGQuaXNDaGVja2VkXG4gICAgfVxuICAgIGZvcm1pay52YWx1ZXMuZ3JvdXBzLmZvckVhY2goKGdyb3VwOiBGb3JtR3JvdXApID0+IHtcbiAgICAgIGdyb3VwLmZpZWxkcy5mb3JFYWNoKChmaWVsZDogRm9ybUZpZWxkKSA9PiB7XG4gICAgICAgIGdldENoZWNrZWRGaWVsZHMoZmllbGQsIGdyb3VwLmdyb3VwTmFtZSlcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHNldENhY2hlZFNlbGVjdGVkR3JvdXBzKHtcbiAgICAgIFtyZXNvdXJjZVR5cGVdOiBjaGVja2VkRmllbGRzLFxuICAgIH0pXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbZm9ybWlrLnZhbHVlcy5ncm91cHNdKVxuICAvLyBhZGRzIGBpc0hpZGRlbmAgcHJvcGVydHkgdG8gZWFjaCBmaWVsZCBiYXNlZCBvbiBzZWFyY2ggdGVybVxuICBjb25zdCBmaWx0ZXJlZEdyb3VwcyA9IFJlYWN0LnVzZU1lbW88Rm9ybUdyb3VwW10+KCgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVGaWVsZHMgPSAoXG4gICAgICBmaWVsZHM6IEZvcm1GaWVsZFtdLFxuICAgICAgcGFyZW50TWF0Y2hlczogYm9vbGVhblxuICAgICk6IEZvcm1GaWVsZFtdID0+IHtcbiAgICAgIHJldHVybiBmaWVsZHMubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gZmllbGQubGFiZWxcbiAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIC5pbmNsdWRlcyhmaWVsZFNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSlcbiAgICAgICAgbGV0IGlzSGlkZGVuID0gIW1hdGNoZXMgJiYgIXBhcmVudE1hdGNoZXNcbiAgICAgICAgaWYgKGZpZWxkLmZpZWxkcykge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZHMgPSB1cGRhdGVGaWVsZHMoZmllbGQuZmllbGRzLCBtYXRjaGVzKVxuICAgICAgICAgIGlzSGlkZGVuID0gaXNIaWRkZW4gJiYgdXBkYXRlZEZpZWxkcy5ldmVyeSgoZikgPT4gZi5pc0hpZGRlbilcbiAgICAgICAgICBmaWVsZCA9IHtcbiAgICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICAgICAgZmllbGRzOiB1cGRhdGVkRmllbGRzLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyAuLi5maWVsZCwgaXNIaWRkZW4gfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoIWlzU2VhcmNoQWN0aXZlKSByZXR1cm4gZm9ybWlrLnZhbHVlcy5ncm91cHNcblxuICAgIGNvbnN0IHVwZGF0ZUdyb3VwcyA9IChncm91cHM6IEZvcm1Hcm91cFtdKTogRm9ybUdyb3VwW10gPT4ge1xuICAgICAgcmV0dXJuIGdyb3Vwcy5tYXAoKGdyb3VwKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZHMgPSB1cGRhdGVGaWVsZHMoZ3JvdXAuZmllbGRzLCBmYWxzZSlcbiAgICAgICAgY29uc3QgaXNIaWRkZW4gPSB1cGRhdGVkRmllbGRzLmV2ZXJ5KChmaWVsZCkgPT4gZmllbGQuaXNIaWRkZW4pXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgZmllbGRzOiB1cGRhdGVkRmllbGRzLFxuICAgICAgICAgIGlzSGlkZGVuLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gdXBkYXRlR3JvdXBzKGZvcm1pay52YWx1ZXMuZ3JvdXBzKVxuICB9LCBbZm9ybWlrLnZhbHVlcy5ncm91cHMsIGZpZWxkU2VhcmNoVGVybSwgaXNTZWFyY2hBY3RpdmVdKVxuXG4gIGNvbnN0IG9uU2VhcmNoQ2hhbmdlID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBzZXRGaWVsZFNlYXJjaFRlcm0oZXZlbnQudGFyZ2V0LnZhbHVlKVxuICAgIH0sXG4gICAgW3NldEZpZWxkU2VhcmNoVGVybV1cbiAgKVxuXG4gIGNvbnN0IGhhc1Jlc3VsdHMgPSBCb29sZWFuKGZpbHRlcmVkR3JvdXBzLmZpbmQoKGdyb3VwKSA9PiAhZ3JvdXAuaXNIaWRkZW4pKVxuXG4gIGNvbnN0IG9uU2VhcmNoQ2hhbmdlRGVib3VuY2VkID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiBkZWJvdW5jZShvblNlYXJjaENoYW5nZSwgNTAwKSxcbiAgICBbb25TZWFyY2hDaGFuZ2VdXG4gIClcblxuICBjb25zdCBvblNlYXJjaFJlc2V0ID0gKCkgPT4ge1xuICAgIHNldEZpZWxkU2VhcmNoVGVybSgnJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEV4cG9ydEZpZWxkU2VsZWN0aW9uUHJvdmlkZXIgcmVzb3VyY2VUeXBlPXtyZXNvdXJjZVR5cGV9PlxuICAgICAgPFNwYWNpbmdzLlN0YWNrIHNjYWxlPVwic1wiPlxuICAgICAgICA8U2VhcmNoVGV4dElucHV0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hGb3JGaWVsZHMpfVxuICAgICAgICAgIHZhbHVlPXtmaWVsZFNlYXJjaFRlcm19XG4gICAgICAgICAgb25DaGFuZ2U9e29uU2VhcmNoQ2hhbmdlRGVib3VuY2VkfVxuICAgICAgICAgIG9uUmVzZXQ9e29uU2VhcmNoUmVzZXR9XG4gICAgICAgICAgLy8gVE9ETzogYFNlYXJjaFRleHRJbnB1dGAgcHJvcHMgdG8gYmUgaW1wcm92ZWQuIFRoZSBgb25TdWJtaXRgIGNhbGxiYWNrIHNob3VsZG4ndCBiZSBtYW5kYXRvcnlcbiAgICAgICAgICBvblN1Ym1pdD17KCkgPT4ge319XG4gICAgICAgICAgaWQ9XCJleHBvcnQtZmllbGRzLXNlYXJjaFwiXG4gICAgICAgIC8+XG4gICAgICAgIHtoYXNSZXN1bHRzID8gKFxuICAgICAgICAgIDxTdHlsZWRHcmlkQ2FyZCBpbnNldFNjYWxlPVwibm9uZVwiPlxuICAgICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgICAgZ3JpZEF1dG9GbG93PVwicm93XCJcbiAgICAgICAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1ucz17YGNhbGMoJHtkZXNpZ25Ub2tlbnMuc3BhY2luZ0x9ICsgJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDV9ICsgJHtkZXNpZ25Ub2tlbnMuc3BhY2luZ0x9KSBhdXRvYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2ZpbHRlcmVkR3JvdXBzLm1hcCgoZ3JvdXAsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgPEZpZWxkR3JvdXBTZWN0aW9uXG4gICAgICAgICAgICAgICAgICBrZXk9e2dyb3VwLmdyb3VwTmFtZX1cbiAgICAgICAgICAgICAgICAgIGdyb3VwPXtncm91cH1cbiAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGZvcm1paz17Zm9ybWlrfVxuICAgICAgICAgICAgICAgICAgaXNTZWFyY2hBY3RpdmU9e2lzU2VhcmNoQWN0aXZlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgIDwvU3R5bGVkR3JpZENhcmQ+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPE5vU2VhcmNoUmVzdWx0cyAvPlxuICAgICAgICApfVxuICAgICAgPC9TcGFjaW5ncy5TdGFjaz5cbiAgICA8L0V4cG9ydEZpZWxkU2VsZWN0aW9uUHJvdmlkZXI+XG4gIClcbn1cbiJdfQ== */"));
|
|
2439
2529
|
const SelectedFieldsForm = () => {
|
|
2530
|
+
var _context, _context2;
|
|
2440
2531
|
const intl = useIntl();
|
|
2441
2532
|
const _React$useState = React.useState(''),
|
|
2442
2533
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -2453,22 +2544,22 @@ const SelectedFieldsForm = () => {
|
|
|
2453
2544
|
const _useExportResourcesMo = useExportResourcesModalContext(),
|
|
2454
2545
|
formik = _useExportResourcesMo.formik,
|
|
2455
2546
|
resourceType = _useExportResourcesMo.resourceType;
|
|
2456
|
-
const isSearchActive = fieldSearchTerm?.
|
|
2547
|
+
const isSearchActive = ((_context = fieldSearchTerm) == null ? void 0 : _bindInstanceProperty(_context2 = Function.call).call(_context2, _trimInstanceProperty(_context), _context))?.()?.length >= MIN_SEARCH_LENGTH;
|
|
2457
2548
|
React.useEffect(() => {
|
|
2458
|
-
var
|
|
2549
|
+
var _context4;
|
|
2459
2550
|
updateFieldDependenciesStatus(formik);
|
|
2460
2551
|
const checkedFields = {};
|
|
2461
2552
|
function getCheckedFields(field, groupName) {
|
|
2462
2553
|
const fieldName = field.name ? `${groupName}.${field.name}` : groupName;
|
|
2463
2554
|
if (field.fields) {
|
|
2464
|
-
var
|
|
2465
|
-
return _forEachInstanceProperty(
|
|
2555
|
+
var _context3;
|
|
2556
|
+
return _forEachInstanceProperty(_context3 = field.fields).call(_context3, f => getCheckedFields(f, fieldName));
|
|
2466
2557
|
}
|
|
2467
2558
|
checkedFields[fieldName] = field.isChecked;
|
|
2468
2559
|
}
|
|
2469
|
-
_forEachInstanceProperty(
|
|
2470
|
-
var
|
|
2471
|
-
_forEachInstanceProperty(
|
|
2560
|
+
_forEachInstanceProperty(_context4 = _valuesInstanceProperty(formik).groups).call(_context4, group => {
|
|
2561
|
+
var _context5;
|
|
2562
|
+
_forEachInstanceProperty(_context5 = group.fields).call(_context5, field => {
|
|
2472
2563
|
getCheckedFields(field, group.groupName);
|
|
2473
2564
|
});
|
|
2474
2565
|
});
|
|
@@ -2481,8 +2572,8 @@ const SelectedFieldsForm = () => {
|
|
|
2481
2572
|
const filteredGroups = React.useMemo(() => {
|
|
2482
2573
|
const updateFields = (fields, parentMatches) => {
|
|
2483
2574
|
return _mapInstanceProperty(fields).call(fields, field => {
|
|
2484
|
-
var
|
|
2485
|
-
const matches = _includesInstanceProperty(
|
|
2575
|
+
var _context6;
|
|
2576
|
+
const matches = _includesInstanceProperty(_context6 = field.label.toLowerCase()).call(_context6, fieldSearchTerm.toLowerCase());
|
|
2486
2577
|
let isHidden = !matches && !parentMatches;
|
|
2487
2578
|
if (field.fields) {
|
|
2488
2579
|
const updatedFields = updateFields(field.fields, matches);
|
|
@@ -2631,6 +2722,8 @@ const _excluded$1 = ["children"];
|
|
|
2631
2722
|
const ExportResourcesProvider = _ref => {
|
|
2632
2723
|
let children = _ref.children,
|
|
2633
2724
|
props = _objectWithoutProperties(_ref, _excluded$1);
|
|
2725
|
+
const intl = useIntl();
|
|
2726
|
+
const showNotification = useShowNotification();
|
|
2634
2727
|
const initialValues = useInitialValues(props);
|
|
2635
2728
|
const _React$useState = React.useState(Step.FileSettings),
|
|
2636
2729
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -2661,47 +2754,70 @@ const ExportResourcesProvider = _ref => {
|
|
|
2661
2754
|
setValidationErrors = _React$useState12[1];
|
|
2662
2755
|
const _useStartExportOperat = useStartExportOperation(props),
|
|
2663
2756
|
startExportOperation = _useStartExportOperat.startExportOperation;
|
|
2664
|
-
const
|
|
2665
|
-
|
|
2666
|
-
const onSubmit = async values => {
|
|
2667
|
-
if (currentStep === Step.FileSettings) {
|
|
2668
|
-
setCurrentStep(Step.FieldsSelection);
|
|
2669
|
-
} else if (currentStep === Step.FieldsSelection) {
|
|
2670
|
-
if (fieldSelectionMode !== 'imported-csv-template') {
|
|
2671
|
-
setCurrentStep(Step.ConfirmExport);
|
|
2672
|
-
return;
|
|
2673
|
-
}
|
|
2674
|
-
const isUsingImportedCsvLocales = localeOption === 'onlyLocalesFoundInCsvFile';
|
|
2675
|
-
const validationResult = await validateHeaders({
|
|
2676
|
-
fileName: values.fileName,
|
|
2677
|
-
outputFormat: values.outputFormat,
|
|
2678
|
-
resourceType: props.resourceType,
|
|
2679
|
-
fields: importedHeaders,
|
|
2680
|
-
locales: isUsingImportedCsvLocales ? undefined : values.locales
|
|
2681
|
-
});
|
|
2682
|
-
if (validationResult?.success) {
|
|
2683
|
-
setCurrentStep(Step.ConfirmExport);
|
|
2684
|
-
} else {
|
|
2685
|
-
setValidationErrors(validationResult?.validationErrors);
|
|
2686
|
-
setCurrentStep(Step.ValidationErrors);
|
|
2687
|
-
}
|
|
2688
|
-
} else {
|
|
2689
|
-
startExportOperation(values, exportType, fieldSelectionMode, localeOption, importedHeaders);
|
|
2690
|
-
}
|
|
2691
|
-
};
|
|
2757
|
+
const _useValidateExportOpe = useValidateExportOperation(),
|
|
2758
|
+
validateExport = _useValidateExportOpe.validateExport;
|
|
2692
2759
|
const formik = useFormik({
|
|
2693
2760
|
initialValues,
|
|
2694
2761
|
validate: values => validate({
|
|
2695
2762
|
values,
|
|
2696
2763
|
step: currentStep,
|
|
2697
2764
|
fieldSelectionMode,
|
|
2698
|
-
importedHeaders
|
|
2765
|
+
importedHeaders,
|
|
2766
|
+
exportType
|
|
2699
2767
|
}),
|
|
2700
|
-
onSubmit
|
|
2768
|
+
onSubmit: async values => {
|
|
2769
|
+
if (currentStep === Step.FileSettings) {
|
|
2770
|
+
if (exportType === EXPORT_TYPES.QUERY_PREDICATE) {
|
|
2771
|
+
const validationResult = await validateExport({
|
|
2772
|
+
fileName: values.fileName,
|
|
2773
|
+
outputFormat: values.outputFormat,
|
|
2774
|
+
resourceType: props.resourceType,
|
|
2775
|
+
fields: extractFieldNamesFromGroups(values.groups, props.fieldOrder),
|
|
2776
|
+
locales: values.locales,
|
|
2777
|
+
queryPredicate: values.queryPredicate
|
|
2778
|
+
});
|
|
2779
|
+
if (validationResult?.invalidQueryPredicate) {
|
|
2780
|
+
formik.setFieldError('queryPredicate', 'invalidInput');
|
|
2781
|
+
return;
|
|
2782
|
+
}
|
|
2783
|
+
if (validationResult?.noResourcesToExport) {
|
|
2784
|
+
showNotification({
|
|
2785
|
+
text: intl.formatMessage(messages.noResourcesToExport),
|
|
2786
|
+
kind: 'error',
|
|
2787
|
+
domain: DOMAINS.PAGE
|
|
2788
|
+
});
|
|
2789
|
+
return;
|
|
2790
|
+
}
|
|
2791
|
+
}
|
|
2792
|
+
setCurrentStep(Step.FieldsSelection);
|
|
2793
|
+
} else if (currentStep === Step.FieldsSelection) {
|
|
2794
|
+
if (fieldSelectionMode !== 'imported-csv-template') {
|
|
2795
|
+
setCurrentStep(Step.ConfirmExport);
|
|
2796
|
+
return;
|
|
2797
|
+
}
|
|
2798
|
+
const isUsingImportedCsvLocales = localeOption === 'onlyLocalesFoundInCsvFile';
|
|
2799
|
+
const validationResult = await validateExport({
|
|
2800
|
+
fileName: values.fileName,
|
|
2801
|
+
outputFormat: values.outputFormat,
|
|
2802
|
+
resourceType: props.resourceType,
|
|
2803
|
+
fields: importedHeaders,
|
|
2804
|
+
locales: isUsingImportedCsvLocales ? undefined : values.locales,
|
|
2805
|
+
queryPredicate: values.queryPredicate
|
|
2806
|
+
});
|
|
2807
|
+
if (validationResult?.success) {
|
|
2808
|
+
setCurrentStep(Step.ConfirmExport);
|
|
2809
|
+
} else {
|
|
2810
|
+
setValidationErrors(validationResult?.validationErrors);
|
|
2811
|
+
setCurrentStep(Step.ValidationErrors);
|
|
2812
|
+
}
|
|
2813
|
+
} else {
|
|
2814
|
+
startExportOperation(values, exportType, fieldSelectionMode, localeOption, importedHeaders);
|
|
2815
|
+
}
|
|
2816
|
+
}
|
|
2701
2817
|
});
|
|
2702
2818
|
React.useEffect(() => {
|
|
2703
2819
|
formik.validateForm();
|
|
2704
|
-
}, [currentStep, fieldSelectionMode, importedHeaders]);
|
|
2820
|
+
}, [currentStep, fieldSelectionMode, importedHeaders, exportType]);
|
|
2705
2821
|
return jsx(ExportResourcesContext.Provider, {
|
|
2706
2822
|
value: {
|
|
2707
2823
|
formik,
|
|
@@ -2713,6 +2829,7 @@ const ExportResourcesProvider = _ref => {
|
|
|
2713
2829
|
totalResourcesCount: props.totalResourcesCount,
|
|
2714
2830
|
selectedResourceIds: props.selectedResourceIds,
|
|
2715
2831
|
hideExportSelectedResourcesOption: props.hideExportSelectedResourcesOption,
|
|
2832
|
+
showQueryPredicateOption: props.showQueryPredicateOption,
|
|
2716
2833
|
filters: props.filters,
|
|
2717
2834
|
hasFilters: areFiltersApplied(props.filters),
|
|
2718
2835
|
setExportType,
|
|
@@ -3064,11 +3181,11 @@ function getDefaultDropWrapperStyles(_dropAreaState) {
|
|
|
3064
3181
|
return /*#__PURE__*/css(process.env.NODE_ENV === "production" ? "" : ";label:getDefaultDropWrapperStyles;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRyb3AtYXJlYS13cmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QlkiLCJmaWxlIjoiZHJvcC1hcmVhLXdyYXBwZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEcm9wem9uZVJvb3RQcm9wcyB9IGZyb20gJ3JlYWN0LWRyb3B6b25lJ1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IHN0eWxlcyB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdHlwZSBEcm9wQXJlYVN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vQHR5cGVzJ1xuXG5pbnRlcmZhY2UgRHJvcFdyYXBwZXJQcm9wcyBleHRlbmRzIERyb3B6b25lUm9vdFByb3BzIHtcbiAgZHJvcEFyZWFTdGF0ZTogRHJvcEFyZWFTdGF0ZVxufVxuZXhwb3J0IGNvbnN0IERyb3BXcmFwcGVyID0gc3R5bGVkLmRpdjxEcm9wV3JhcHBlclByb3BzPmBcbiAgJHtzdHlsZXMuYmFzZX1cbiAgJHsocHJvcHMpID0+IHtcbiAgICBpZiAocHJvcHMuZHJvcEFyZWFTdGF0ZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gc3R5bGVzLnJlYWR5Rm9yRHJvcFxuICAgIH1cbiAgICBpZiAocHJvcHMuZHJvcEFyZWFTdGF0ZSA9PT0gJ2FjdGl2ZS1kcmFnJykge1xuICAgICAgcmV0dXJuIHN0eWxlcy5hY3RpdmVEcmFnXG4gICAgfVxuICAgIGlmIChwcm9wcy5kcm9wQXJlYVN0YXRlID09PSAnZmlsZS1kcm9wcGVkJykge1xuICAgICAgcmV0dXJuIHN0eWxlcy5maWxlRHJvcHBlZFxuICAgIH1cbiAgICByZXR1cm4gZ2V0RGVmYXVsdERyb3BXcmFwcGVyU3R5bGVzKHByb3BzLmRyb3BBcmVhU3RhdGUpXG4gIH19XG5gXG5mdW5jdGlvbiBnZXREZWZhdWx0RHJvcFdyYXBwZXJTdHlsZXMoX2Ryb3BBcmVhU3RhdGU6IG5ldmVyKSB7XG4gIHJldHVybiBjc3NgYFxufVxuIl19 */");
|
|
3065
3182
|
}
|
|
3066
3183
|
|
|
3067
|
-
var ActiveDragDropArea = /*#__PURE__*/lazy(() => import('./active-drag-drop-area-
|
|
3184
|
+
var ActiveDragDropArea = /*#__PURE__*/lazy(() => import('./active-drag-drop-area-69b691d5.esm.js' /* webpackChunkName: "active-drag-drop-area" */));
|
|
3068
3185
|
|
|
3069
|
-
var EnabledDropArea = /*#__PURE__*/lazy(() => import('./enabled-drop-area-
|
|
3186
|
+
var EnabledDropArea = /*#__PURE__*/lazy(() => import('./enabled-drop-area-48a953a6.esm.js' /* webpackChunkName: "enabled-drop-area" */));
|
|
3070
3187
|
|
|
3071
|
-
var FileDropped = /*#__PURE__*/lazy(() => import('./file-dropped-area-
|
|
3188
|
+
var FileDropped = /*#__PURE__*/lazy(() => import('./file-dropped-area-c8a5f539.esm.js' /* webpackChunkName: "filed-dropped-area" */));
|
|
3072
3189
|
|
|
3073
3190
|
function getDropArea(_ref) {
|
|
3074
3191
|
let dropAreaState = _ref.dropAreaState,
|