@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.
Files changed (24) hide show
  1. package/dist/{active-drag-drop-area-90d26dc9.cjs.prod.js → active-drag-drop-area-56db6919.cjs.dev.js} +4 -3
  2. package/dist/{active-drag-drop-area-ab9704b7.esm.js → active-drag-drop-area-69b691d5.esm.js} +2 -1
  3. package/dist/{active-drag-drop-area-b1213fdd.cjs.dev.js → active-drag-drop-area-7fd53916.cjs.prod.js} +4 -3
  4. package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.dev.js +4 -3
  5. package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.prod.js +4 -3
  6. package/dist/commercetools-frontend-extensions-export-resources-modal.esm.js +4 -3
  7. package/dist/declarations/src/@constants/export-types.d.ts +4 -3
  8. package/dist/declarations/src/@hooks/index.d.ts +1 -1
  9. package/dist/declarations/src/@hooks/use-validate-export-operation.d.ts +33 -0
  10. package/dist/declarations/src/@types/export-api.d.ts +5 -1
  11. package/dist/declarations/src/@types/export-resources-modal-context.d.ts +1 -0
  12. package/dist/declarations/src/@types/export-resources-modal-types.d.ts +2 -1
  13. package/dist/declarations/src/@types/form.d.ts +5 -0
  14. package/dist/{enabled-drop-area-cd527058.esm.js → enabled-drop-area-48a953a6.esm.js} +2 -1
  15. package/dist/{enabled-drop-area-f4b604d3.cjs.prod.js → enabled-drop-area-4c8d613f.cjs.prod.js} +2 -1
  16. package/dist/{enabled-drop-area-0453fd0d.cjs.dev.js → enabled-drop-area-a5fe741d.cjs.dev.js} +2 -1
  17. package/dist/{file-dropped-area-2e6723f0.cjs.dev.js → file-dropped-area-5979698c.cjs.dev.js} +2 -1
  18. package/dist/{file-dropped-area-38e2f1eb.cjs.prod.js → file-dropped-area-b685a683.cjs.prod.js} +2 -1
  19. package/dist/{file-dropped-area-d44a1e01.esm.js → file-dropped-area-c8a5f539.esm.js} +2 -1
  20. package/dist/{index-44d6c0b4.cjs.dev.js → index-32b358db.cjs.dev.js} +391 -273
  21. package/dist/{index-6820b049.cjs.prod.js → index-bcefd2cf.cjs.prod.js} +391 -273
  22. package/dist/{index-f05f7a63.esm.js → index-f7e098bb.esm.js} +391 -274
  23. package/package.json +5 -5
  24. 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, TextInput, Link, CheckboxInput, Spacings, RadioInput, AngleRightIcon, Grid, designTokens, SelectField, TextField, FieldLabel, Constraints, Tooltip, SupportIcon, Stamp, IconButton, AngleDownIcon, CollapsibleMotion, Card, SearchTextInput, TagList, FlatButton, AngleUpIcon, CheckBoldIcon, DataTable } from '@commercetools-frontend/ui-kit';
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
- try {
1405
- const projectKey = params.projectKey,
1406
- requestData = _objectWithoutProperties(params, _excluded$3);
1407
- const uri = `/${projectKey}/export-operations`;
1408
- const requestAction = actions.post({
1409
- mcApiProxyTarget: MC_API_PROXY_TARGETS.EXPORT,
1410
- uri,
1411
- headers: {
1412
- accept: 'application/json'
1413
- },
1414
- payload: requestData
1415
- });
1416
- const response = await asyncDispatchFn(requestAction);
1417
- if (!response || typeof response !== 'object') {
1418
- throw new InvalidResponseError();
1419
- }
1420
- if (!('state' in response)) {
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 validateImportedHeaders(params, asyncDispatchFn) {
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
- switch (response.state) {
1505
- case EXPORT_OPERATION_STATES.QUEUED:
1506
- case EXPORT_OPERATION_STATES.PROCESSING:
1507
- case EXPORT_OPERATION_STATES.COMPLETED:
1508
- showNotification({
1509
- kind: 'info',
1510
- domain: DOMAINS.SIDE,
1511
- // @ts-ignore
1512
- text: intl.formatMessage(messages.exportOperationSuccessMessage, {
1513
- newline: getNewLine,
1514
- logsLink: msg => getExportLogsLink(projectKey, msg),
1515
- b: getBold
1516
- })
1517
- }, {
1518
- dismissAfter: 5000
1519
- });
1520
- if (typeof props.onExportSuccess === 'function') props.onExportSuccess();
1521
- break;
1522
- default:
1523
- throw new UnexpectedExportOperationStateError(response.state);
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 _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys$b(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys$b(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
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?.map(field => {
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?.map(fieldDefinition => {
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 useValidateImportedHeaders = () => {
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 validateHeaders = async params => {
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 validateImportedHeaders({
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
- return {
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
- validationErrors: error.validationErrors
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
- validateHeaders
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
- return jsx(Spacings.Stack, {
1750
- scale: "m",
1751
- children: jsxs(RadioInput.Group, {
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?.slice(0, maxVisibleChildren);
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 => fields?.filter(f => !f.isHidden).indexOf(field) || -1;
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?.map((field, index) => {
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 _context;
2159
- _forEachInstanceProperty(_context = item.fields).call(_context, (field, i) => {
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 _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context5 = ownKeys$5(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context6 = ownKeys$5(Object(t))).call(_context6, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
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?.trim()?.length >= MIN_SEARCH_LENGTH;
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 _context2;
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 _context;
2465
- return _forEachInstanceProperty(_context = field.fields).call(_context, f => getCheckedFields(f, fieldName));
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(_context2 = _valuesInstanceProperty(formik).groups).call(_context2, group => {
2470
- var _context3;
2471
- _forEachInstanceProperty(_context3 = group.fields).call(_context3, field => {
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 _context4;
2485
- const matches = _includesInstanceProperty(_context4 = field.label.toLowerCase()).call(_context4, fieldSearchTerm.toLowerCase());
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 _useValidateImportedH = useValidateImportedHeaders(),
2665
- validateHeaders = _useValidateImportedH.validateHeaders;
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-ab9704b7.esm.js' /* webpackChunkName: "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-cd527058.esm.js' /* webpackChunkName: "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-d44a1e01.esm.js' /* webpackChunkName: "filed-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,