@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
@@ -43,6 +43,7 @@ var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
43
43
  var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
44
44
  var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
45
45
  var _trimInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/trim');
46
+ var _bindInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/bind');
46
47
  var _Promise = require('@babel/runtime-corejs3/core-js-stable/promise');
47
48
  var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
48
49
  var _Object$values = require('@babel/runtime-corejs3/core-js-stable/object/values');
@@ -91,6 +92,7 @@ var _Set__default = /*#__PURE__*/_interopDefault(_Set);
91
92
  var _sortInstanceProperty__default = /*#__PURE__*/_interopDefault(_sortInstanceProperty);
92
93
  var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfInstanceProperty);
93
94
  var _trimInstanceProperty__default = /*#__PURE__*/_interopDefault(_trimInstanceProperty);
95
+ var _bindInstanceProperty__default = /*#__PURE__*/_interopDefault(_bindInstanceProperty);
94
96
  var _Promise__default = /*#__PURE__*/_interopDefault(_Promise);
95
97
  var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
96
98
  var _Object$values__default = /*#__PURE__*/_interopDefault(_Object$values);
@@ -620,6 +622,26 @@ var messages = reactIntl.defineMessages({
620
622
  id: 'ExportResourcesModal.uploadErrorsDetected',
621
623
  description: 'Message shown when errors are detected during file upload',
622
624
  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.'
625
+ },
626
+ queryPredicate: {
627
+ id: 'ExportResourcesModal.queryPredicate',
628
+ description: 'Label for query predicate option',
629
+ defaultMessage: 'Query predicate'
630
+ },
631
+ invalidQueryPredicate: {
632
+ id: 'ExportResourcesModal.invalidQueryPredicate',
633
+ description: 'Error when query predicate field is not valid',
634
+ defaultMessage: 'There is an error with the query predicate. Make sure the syntax is correct.'
635
+ },
636
+ missingQueryPredicateError: {
637
+ id: 'ExportResourcesModal.missingQueryPredicateError',
638
+ description: 'Error when query predicate field is missing',
639
+ defaultMessage: 'Please enter a query predicate'
640
+ },
641
+ noResourcesToExport: {
642
+ id: 'ExportResourcesModal.noResourcesToExport',
643
+ description: 'Error message when there are no resources to export',
644
+ defaultMessage: 'No resources match your query predicate. Please check your query predicate and try again.'
623
645
  }
624
646
  });
625
647
 
@@ -643,6 +665,16 @@ function renderLocaleError(key) {
643
665
  return null;
644
666
  }
645
667
  }
668
+ const renderQueryPredicateError = key => {
669
+ switch (key) {
670
+ case 'missing':
671
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$h({}, messages.missingQueryPredicateError));
672
+ case 'invalidInput':
673
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$h({}, messages.invalidQueryPredicate));
674
+ default:
675
+ return null;
676
+ }
677
+ };
646
678
 
647
679
  function _callSuper$3(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$3() ? _Reflect$construct__default["default"](o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
648
680
  function _isNativeReflectConstruct$3() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$3 = function () { return !!t; })(); }
@@ -787,7 +819,8 @@ const EXPORT_OPERATION_STATES = {
787
819
  const EXPORT_TYPES = {
788
820
  ALL: 'all',
789
821
  FILTERED: 'filtered',
790
- SELECTED: 'selected'
822
+ SELECTED: 'selected',
823
+ QUERY_PREDICATE: 'query-predicate'
791
824
  };
792
825
 
793
826
  const EXPORTABLE_RESOURCES = {
@@ -864,6 +897,140 @@ const DEFAULT_SHORT_LIVED_FLAGS = {};
864
897
  const DEFAULT_LONG_LIVED_FLAGS = {};
865
898
  _objectSpread$f(_objectSpread$f({}, DEFAULT_SHORT_LIVED_FLAGS), DEFAULT_LONG_LIVED_FLAGS);
866
899
 
900
+ function resourceTypeToFileName(resourceType, locale) {
901
+ var _context;
902
+ const date = new Date();
903
+ const dateFormatter = new Intl.DateTimeFormat(locale, {
904
+ year: '2-digit',
905
+ month: '2-digit',
906
+ day: '2-digit',
907
+ hour: '2-digit',
908
+ minute: '2-digit',
909
+ hour12: false
910
+ });
911
+ const parts = dateFormatter.formatToParts(date);
912
+ const dateParts = _reduceInstanceProperty__default["default"](parts).call(parts, (acc, part) => {
913
+ if (part.type !== 'literal') {
914
+ acc[part.type] = part.value;
915
+ }
916
+ return acc;
917
+ }, {});
918
+ const orderedDateParts = _mapInstanceProperty__default["default"](_context = _filterInstanceProperty__default["default"](parts).call(parts, part => part.type === 'day' || part.type === 'month' || part.type === 'year')).call(_context, part => dateParts[part.type]).join('-');
919
+ const formattedDate = `${orderedDateParts}_${dateParts.hour}-${dateParts.minute}`;
920
+ const resourceTypeMap = {
921
+ [EXPORTABLE_RESOURCES.CATEGORY]: 'Categories',
922
+ [EXPORTABLE_RESOURCES.PRODUCT]: 'Products',
923
+ [EXPORTABLE_RESOURCES.PRODUCT_TYPE]: 'Product_Types',
924
+ [EXPORTABLE_RESOURCES.DISCOUNT_CODE]: 'Discount_Codes',
925
+ [EXPORTABLE_RESOURCES.INVENTORY_ENTRY]: 'Inventories',
926
+ [EXPORTABLE_RESOURCES.CUSTOMER]: 'Customers',
927
+ [EXPORTABLE_RESOURCES.ORDER]: 'Orders'
928
+ };
929
+ const displayName = resourceTypeMap[resourceType];
930
+ if (!displayName) {
931
+ throw new UnexpectedResourceTypeError(resourceType);
932
+ }
933
+ return `${displayName}_Export_${formattedDate}`;
934
+ }
935
+ function mapLocalesToOptions(locales) {
936
+ return _mapInstanceProperty__default["default"](locales).call(locales, locale => ({
937
+ value: locale,
938
+ label: locale
939
+ }));
940
+ }
941
+ function isFilledArray(maybeArray) {
942
+ return _Array$isArray__default["default"](maybeArray) && maybeArray.length > 0;
943
+ }
944
+ function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
945
+ const extensionRegex = /\.(csv|json)$/i;
946
+ if (!extensionRegex.test(fileName)) return `${fileName}.${fileFormat}`;
947
+ return fileName;
948
+ }
949
+ function getExportLogsLink(projectKey, msg) {
950
+ return jsxRuntime.jsx(uiKit.Link, {
951
+ to: `/${projectKey}/operations/export/logs`,
952
+ children: msg
953
+ }, "link");
954
+ }
955
+ const extractFieldNamesAndAdditionalFieldExtensions = fields => {
956
+ const result = _reduceInstanceProperty__default["default"](fields).call(fields, (acc, field) => {
957
+ if (field.extendedFieldNames) {
958
+ return [...acc, field.name, ...field.extendedFieldNames];
959
+ }
960
+ return [...acc, field.name];
961
+ }, []);
962
+ return [...new _Set__default["default"](result)];
963
+ };
964
+ function sortFieldsByFieldOrder(_ref) {
965
+ let fieldNames = _ref.fieldNames,
966
+ fieldOrder = _ref.fieldOrder;
967
+ if (isFilledArray(fieldOrder)) {
968
+ return _sortInstanceProperty__default["default"](fieldNames).call(fieldNames, (a, b) => {
969
+ let orderA = _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, a) !== -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, a) : _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, a.split('.')[0]);
970
+ let orderB = _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, b) !== -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, b) : _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, b.split('.')[0]);
971
+
972
+ // If a field is not 'custom',then consider it as '*'
973
+ orderA = orderA === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderA;
974
+ orderB = orderB === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderB;
975
+ return orderA - orderB;
976
+ });
977
+ }
978
+ return fieldNames;
979
+ }
980
+ function buildSelectedExportFilters(selectedResourceIds) {
981
+ if (!selectedResourceIds || selectedResourceIds?.length === 0) return undefined;
982
+ const formattedIds = _mapInstanceProperty__default["default"](selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
983
+ return `id in (${formattedIds})`;
984
+ }
985
+ function isQueryFilter(filters) {
986
+ if (!filters) return false;
987
+ return 'query' in filters;
988
+ }
989
+ function isSearchFilter(filters) {
990
+ if (!filters) return false;
991
+ return 'filters' in filters || 'fullText' in filters;
992
+ }
993
+ function isPredicateFilter(filters) {
994
+ if (!filters) return false;
995
+ return 'where' in filters;
996
+ }
997
+ function validateFilters(filtersObject) {
998
+ if (filtersObject.where && filtersObject.filters) {
999
+ return false;
1000
+ }
1001
+ return Boolean(isQueryFilter(filtersObject.filters) || isSearchFilter(filtersObject.filters) || isPredicateFilter(filtersObject));
1002
+ }
1003
+ function areFiltersApplied(filtersObject) {
1004
+ var _context2;
1005
+ if (!filtersObject) {
1006
+ return false;
1007
+ }
1008
+ if (filtersObject.where && _trimInstanceProperty__default["default"](_context2 = filtersObject.where).call(_context2) !== '') {
1009
+ return true;
1010
+ }
1011
+ if (isQueryFilter(filtersObject.filters)) {
1012
+ return Boolean(filtersObject.filters.query);
1013
+ }
1014
+ if (isSearchFilter(filtersObject.filters)) {
1015
+ var _context3, _context4;
1016
+ const _filters = filtersObject.filters;
1017
+ return Boolean(_filters.filters?.length || ((_context3 = _filters.fullText?.text) == null ? void 0 : _bindInstanceProperty__default["default"](_context4 = Function.call).call(_context4, _trimInstanceProperty__default["default"](_context3), _context3))?.());
1018
+ }
1019
+ return false;
1020
+ }
1021
+ function getInitialExportType(args) {
1022
+ if (args.selectedResourceIds?.length) {
1023
+ return EXPORT_TYPES.SELECTED;
1024
+ }
1025
+ if (args.filters?.total && areFiltersApplied(args.filters)) {
1026
+ return EXPORT_TYPES.FILTERED;
1027
+ }
1028
+ return EXPORT_TYPES.ALL;
1029
+ }
1030
+ function removeEmptyGroups(groups) {
1031
+ return _filterInstanceProperty__default["default"](groups).call(groups, group => group.fields && group.fields.length > 0);
1032
+ }
1033
+
867
1034
  const isAnyFieldChecked = fields => {
868
1035
  return _someInstanceProperty__default["default"](fields).call(fields, field => field.isChecked || field.fields && isAnyFieldChecked(field.fields));
869
1036
  };
@@ -977,6 +1144,25 @@ const getSelectedFieldLabels = group => {
977
1144
  findSelectedFieldLabels(group.fields);
978
1145
  return selectedLabels;
979
1146
  };
1147
+ const extractFieldNamesFromGroups = (groups, fieldOrder) => {
1148
+ let checkedFields = [];
1149
+ const getCheckedFields = fields => {
1150
+ return _filterInstanceProperty__default["default"](fields).call(fields, field => {
1151
+ if (field.fields) {
1152
+ return getCheckedFields(field.fields);
1153
+ }
1154
+ if (field.isChecked) checkedFields.push(field);
1155
+ return field.isChecked ?? false;
1156
+ });
1157
+ };
1158
+ _forEachInstanceProperty__default["default"](groups).call(groups, group => {
1159
+ getCheckedFields(group.fields);
1160
+ });
1161
+ return sortFieldsByFieldOrder({
1162
+ fieldNames: extractFieldNamesAndAdditionalFieldExtensions(checkedFields),
1163
+ fieldOrder
1164
+ });
1165
+ };
980
1166
 
981
1167
  let Step = /*#__PURE__*/function (Step) {
982
1168
  Step["FileSettings"] = "file-settings";
@@ -997,21 +1183,27 @@ function validate(_ref) {
997
1183
  let values = _valuesInstanceProperty__default["default"](_ref),
998
1184
  step = _ref.step,
999
1185
  fieldSelectionMode = _ref.fieldSelectionMode,
1000
- importedHeaders = _ref.importedHeaders;
1186
+ importedHeaders = _ref.importedHeaders,
1187
+ exportType = _ref.exportType;
1001
1188
  const fileName = values.fileName,
1189
+ queryPredicate = values.queryPredicate,
1002
1190
  locales = values.locales,
1003
1191
  groups = values.groups;
1004
1192
  const errors = {
1005
1193
  fileName: {},
1006
1194
  locales: {},
1007
1195
  fields: {},
1008
- importedCsvTemplateFile: {}
1196
+ importedCsvTemplateFile: {},
1197
+ queryPredicate: {}
1009
1198
  };
1010
1199
  if (uiKit.TextInput.isEmpty(fileName)) {
1011
1200
  errors.fileName.missing = true;
1012
1201
  } else if (!/^[a-zA-Z0-9-_.]+$/.test(fileName)) {
1013
1202
  errors.fileName.invalidInput = true;
1014
1203
  }
1204
+ if (exportType === 'query-predicate' && uiKit.TextInput.isEmpty(queryPredicate)) {
1205
+ errors.queryPredicate.missing = true;
1206
+ }
1015
1207
  if (step === Step.FieldsSelection) {
1016
1208
  if (fieldSelectionMode === 'selected-fields') {
1017
1209
  const allFields = _reduceInstanceProperty__default["default"](groups).call(groups, (acc, group) => _concatInstanceProperty__default["default"](acc).call(acc, group.fields), []);
@@ -1041,139 +1233,6 @@ function isFieldNameValid(header) {
1041
1233
  return /^[a-zA-Z0-9._-]+$/.test(processedHeader);
1042
1234
  }
1043
1235
 
1044
- function resourceTypeToFileName(resourceType, locale) {
1045
- var _context;
1046
- const date = new Date();
1047
- const dateFormatter = new Intl.DateTimeFormat(locale, {
1048
- year: '2-digit',
1049
- month: '2-digit',
1050
- day: '2-digit',
1051
- hour: '2-digit',
1052
- minute: '2-digit',
1053
- hour12: false
1054
- });
1055
- const parts = dateFormatter.formatToParts(date);
1056
- const dateParts = _reduceInstanceProperty__default["default"](parts).call(parts, (acc, part) => {
1057
- if (part.type !== 'literal') {
1058
- acc[part.type] = part.value;
1059
- }
1060
- return acc;
1061
- }, {});
1062
- const orderedDateParts = _mapInstanceProperty__default["default"](_context = _filterInstanceProperty__default["default"](parts).call(parts, part => part.type === 'day' || part.type === 'month' || part.type === 'year')).call(_context, part => dateParts[part.type]).join('-');
1063
- const formattedDate = `${orderedDateParts}_${dateParts.hour}-${dateParts.minute}`;
1064
- const resourceTypeMap = {
1065
- [EXPORTABLE_RESOURCES.CATEGORY]: 'Categories',
1066
- [EXPORTABLE_RESOURCES.PRODUCT]: 'Products',
1067
- [EXPORTABLE_RESOURCES.PRODUCT_TYPE]: 'Product_Types',
1068
- [EXPORTABLE_RESOURCES.DISCOUNT_CODE]: 'Discount_Codes',
1069
- [EXPORTABLE_RESOURCES.INVENTORY_ENTRY]: 'Inventories',
1070
- [EXPORTABLE_RESOURCES.CUSTOMER]: 'Customers',
1071
- [EXPORTABLE_RESOURCES.ORDER]: 'Orders'
1072
- };
1073
- const displayName = resourceTypeMap[resourceType];
1074
- if (!displayName) {
1075
- throw new UnexpectedResourceTypeError(resourceType);
1076
- }
1077
- return `${displayName}_Export_${formattedDate}`;
1078
- }
1079
- function mapLocalesToOptions(locales) {
1080
- return _mapInstanceProperty__default["default"](locales).call(locales, locale => ({
1081
- value: locale,
1082
- label: locale
1083
- }));
1084
- }
1085
- function isFilledArray(maybeArray) {
1086
- return _Array$isArray__default["default"](maybeArray) && maybeArray.length > 0;
1087
- }
1088
- function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
1089
- const extensionRegex = /\.(csv|json)$/i;
1090
- if (!extensionRegex.test(fileName)) return `${fileName}.${fileFormat}`;
1091
- return fileName;
1092
- }
1093
- function getExportLogsLink(projectKey, msg) {
1094
- return jsxRuntime.jsx(uiKit.Link, {
1095
- to: `/${projectKey}/operations/export/logs`,
1096
- children: msg
1097
- }, "link");
1098
- }
1099
- const extractFieldNamesAndAdditionalFieldExtensions = fields => {
1100
- const result = _reduceInstanceProperty__default["default"](fields).call(fields, (acc, field) => {
1101
- if (field.extendedFieldNames) {
1102
- return [...acc, field.name, ...field.extendedFieldNames];
1103
- }
1104
- return [...acc, field.name];
1105
- }, []);
1106
- return [...new _Set__default["default"](result)];
1107
- };
1108
- function sortFieldsByFieldOrder(_ref) {
1109
- let fieldNames = _ref.fieldNames,
1110
- fieldOrder = _ref.fieldOrder;
1111
- if (isFilledArray(fieldOrder)) {
1112
- return _sortInstanceProperty__default["default"](fieldNames).call(fieldNames, (a, b) => {
1113
- let orderA = _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, a) !== -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, a) : _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, a.split('.')[0]);
1114
- let orderB = _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, b) !== -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, b) : _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, b.split('.')[0]);
1115
-
1116
- // If a field is not 'custom',then consider it as '*'
1117
- orderA = orderA === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderA;
1118
- orderB = orderB === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderB;
1119
- return orderA - orderB;
1120
- });
1121
- }
1122
- return fieldNames;
1123
- }
1124
- function buildSelectedExportFilters(selectedResourceIds) {
1125
- if (!selectedResourceIds || selectedResourceIds?.length === 0) return undefined;
1126
- const formattedIds = _mapInstanceProperty__default["default"](selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
1127
- return `id in (${formattedIds})`;
1128
- }
1129
- function isQueryFilter(filters) {
1130
- if (!filters) return false;
1131
- return 'query' in filters;
1132
- }
1133
- function isSearchFilter(filters) {
1134
- if (!filters) return false;
1135
- return 'filters' in filters || 'fullText' in filters;
1136
- }
1137
- function isPredicateFilter(filters) {
1138
- if (!filters) return false;
1139
- return 'where' in filters;
1140
- }
1141
- function validateFilters(filtersObject) {
1142
- if (filtersObject.where && filtersObject.filters) {
1143
- return false;
1144
- }
1145
- return Boolean(isQueryFilter(filtersObject.filters) || isSearchFilter(filtersObject.filters) || isPredicateFilter(filtersObject));
1146
- }
1147
- function areFiltersApplied(filtersObject) {
1148
- var _context2;
1149
- if (!filtersObject) {
1150
- return false;
1151
- }
1152
- if (filtersObject.where && _trimInstanceProperty__default["default"](_context2 = filtersObject.where).call(_context2) !== '') {
1153
- return true;
1154
- }
1155
- if (isQueryFilter(filtersObject.filters)) {
1156
- return Boolean(filtersObject.filters.query);
1157
- }
1158
- if (isSearchFilter(filtersObject.filters)) {
1159
- const _filters = filtersObject.filters;
1160
- return Boolean(_filters.filters?.length || _filters.fullText?.text?.trim());
1161
- }
1162
- return false;
1163
- }
1164
- function getInitialExportType(args) {
1165
- if (args.selectedResourceIds?.length) {
1166
- return EXPORT_TYPES.SELECTED;
1167
- }
1168
- if (args.filters?.total && areFiltersApplied(args.filters)) {
1169
- return EXPORT_TYPES.FILTERED;
1170
- }
1171
- return EXPORT_TYPES.ALL;
1172
- }
1173
- function removeEmptyGroups(groups) {
1174
- return _filterInstanceProperty__default["default"](groups).call(groups, group => group.fields && group.fields.length > 0);
1175
- }
1176
-
1177
1236
  function ownKeys$e(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1178
1237
  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__default["default"](_context2 = ownKeys$e(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$e(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1179
1238
  const updateFieldGroupsWithIsCheckedValue = (groups, cachedSelectedGroups) => {
@@ -1398,6 +1457,13 @@ function groupFieldValidationErrors(errors, intl) {
1398
1457
  });
1399
1458
  }
1400
1459
 
1460
+ function isExportApiSuccessResponse(response) {
1461
+ return 'id' in response && 'state' in response && 'resourceType' in response && 'resourceCount' in response;
1462
+ }
1463
+ function isExportApiErrorResponse(error) {
1464
+ 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);
1465
+ }
1466
+
1401
1467
  const useInitialValues = props => {
1402
1468
  var _context;
1403
1469
  const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
@@ -1430,6 +1496,7 @@ const useInitialValues = props => {
1430
1496
  fileName: `${resourceTypeToFileName(props.resourceType, userLocale)}`,
1431
1497
  locales: [locale],
1432
1498
  groups: updateFieldGroupWithAdditionalFieldExtensions(groups),
1499
+ queryPredicate: '',
1433
1500
  // Preferences
1434
1501
  fillRows: false,
1435
1502
  importedCsvTemplateFile: null
@@ -1441,37 +1508,30 @@ const _excluded$3 = ["projectKey"];
1441
1508
  function ownKeys$c(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1442
1509
  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__default["default"](_context = ownKeys$c(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$c(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1443
1510
  async function makeExportRequest(params, asyncDispatchFn) {
1444
- try {
1445
- const projectKey = params.projectKey,
1446
- requestData = _objectWithoutProperties(params, _excluded$3);
1447
- const uri = `/${projectKey}/export-operations`;
1448
- const requestAction = sdk.actions.post({
1449
- mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.EXPORT,
1450
- uri,
1451
- headers: {
1452
- accept: 'application/json'
1453
- },
1454
- payload: requestData
1455
- });
1456
- const response = await asyncDispatchFn(requestAction);
1457
- if (!response || typeof response !== 'object') {
1458
- throw new InvalidResponseError();
1459
- }
1460
- if (!('state' in response)) {
1461
- throw new InvalidResponseError('Response missing state field');
1462
- }
1463
- return response;
1464
- } catch (responseError) {
1465
- if (responseError && typeof responseError === 'object' && 'body' in responseError && responseError.body && typeof responseError.body === 'object' && 'validationErrors' in responseError.body) {
1466
- throw responseError.body;
1467
- }
1468
- throw responseError;
1511
+ const projectKey = params.projectKey,
1512
+ requestData = _objectWithoutProperties(params, _excluded$3);
1513
+ const uri = `/${projectKey}/export-operations`;
1514
+ const requestAction = sdk.actions.post({
1515
+ mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.EXPORT,
1516
+ uri,
1517
+ headers: {
1518
+ accept: 'application/json'
1519
+ },
1520
+ payload: requestData
1521
+ });
1522
+ const response = await asyncDispatchFn(requestAction);
1523
+ if (!response || typeof response !== 'object') {
1524
+ throw new InvalidResponseError();
1525
+ }
1526
+ if (!('state' in response)) {
1527
+ throw new InvalidResponseError('Response missing state field');
1469
1528
  }
1529
+ return response;
1470
1530
  }
1471
1531
  function createExportOperation(params, asyncDispatchFn) {
1472
1532
  return makeExportRequest(params, asyncDispatchFn);
1473
1533
  }
1474
- function validateImportedHeaders(params, asyncDispatchFn) {
1534
+ function validateExportOperation(params, asyncDispatchFn) {
1475
1535
  return makeExportRequest(_objectSpread$c(_objectSpread$c({}, params), {}, {
1476
1536
  dryRun: true
1477
1537
  }), asyncDispatchFn);
@@ -1486,25 +1546,6 @@ const useStartExportOperation = props => {
1486
1546
  projectKey: applicationContext.project?.key
1487
1547
  })),
1488
1548
  projectKey = _useApplicationContex.projectKey;
1489
- const extractFieldNamesFromGroups = groups => {
1490
- let checkedFields = [];
1491
- const getCheckedFields = fields => {
1492
- return _filterInstanceProperty__default["default"](fields).call(fields, field => {
1493
- if (field.fields) {
1494
- return getCheckedFields(field.fields);
1495
- }
1496
- if (field.isChecked) checkedFields.push(field);
1497
- return field.isChecked ?? false;
1498
- });
1499
- };
1500
- _forEachInstanceProperty__default["default"](groups).call(groups, group => {
1501
- getCheckedFields(group.fields);
1502
- });
1503
- return sortFieldsByFieldOrder({
1504
- fieldNames: extractFieldNamesAndAdditionalFieldExtensions(checkedFields),
1505
- fieldOrder: props.fieldOrder
1506
- });
1507
- };
1508
1549
  const startExportOperation = async (values, exportType, fieldSelectionMode, localeOption, importedHeaders) => {
1509
1550
  try {
1510
1551
  if (!projectKey) throw new Error('Project key is missing');
@@ -1512,7 +1553,7 @@ const useStartExportOperation = props => {
1512
1553
  if (fieldSelectionMode === 'imported-csv-template' && values.importedCsvTemplateFile) {
1513
1554
  fields = importedHeaders;
1514
1555
  } else {
1515
- fields = extractFieldNamesFromGroups(values.groups);
1556
+ fields = extractFieldNamesFromGroups(values.groups, props.fieldOrder);
1516
1557
  }
1517
1558
  let where = undefined;
1518
1559
  let filters = undefined;
@@ -1525,6 +1566,9 @@ const useStartExportOperation = props => {
1525
1566
  } else if (isSearchFilter(props.filters.filters)) {
1526
1567
  filters = props.filters.filters;
1527
1568
  }
1569
+ } else if (exportType === EXPORT_TYPES.QUERY_PREDICATE) {
1570
+ var _context;
1571
+ where = _trimInstanceProperty__default["default"](_context = values.queryPredicate).call(_context);
1528
1572
  }
1529
1573
  let locales = undefined;
1530
1574
  if (localeOption !== 'onlyLocalesFoundInCsvFile') {
@@ -1541,29 +1585,32 @@ const useStartExportOperation = props => {
1541
1585
  where,
1542
1586
  filters
1543
1587
  }, asyncDispatch);
1544
- switch (response.state) {
1545
- case EXPORT_OPERATION_STATES.QUEUED:
1546
- case EXPORT_OPERATION_STATES.PROCESSING:
1547
- case EXPORT_OPERATION_STATES.COMPLETED:
1548
- showNotification({
1549
- kind: 'info',
1550
- domain: constants.DOMAINS.SIDE,
1551
- // @ts-ignore
1552
- text: intl.formatMessage(messages.exportOperationSuccessMessage, {
1553
- newline: getNewLine,
1554
- logsLink: msg => getExportLogsLink(projectKey, msg),
1555
- b: getBold
1556
- })
1557
- }, {
1558
- dismissAfter: 5000
1559
- });
1560
- if (typeof props.onExportSuccess === 'function') props.onExportSuccess();
1561
- break;
1562
- default:
1563
- throw new UnexpectedExportOperationStateError(response.state);
1588
+ if (isExportApiSuccessResponse(response)) {
1589
+ switch (response.state) {
1590
+ case EXPORT_OPERATION_STATES.QUEUED:
1591
+ case EXPORT_OPERATION_STATES.PROCESSING:
1592
+ case EXPORT_OPERATION_STATES.COMPLETED:
1593
+ showNotification({
1594
+ kind: 'info',
1595
+ domain: constants.DOMAINS.SIDE,
1596
+ // @ts-ignore
1597
+ text: intl.formatMessage(messages.exportOperationSuccessMessage, {
1598
+ newline: getNewLine,
1599
+ logsLink: msg => getExportLogsLink(projectKey, msg),
1600
+ b: getBold
1601
+ })
1602
+ }, {
1603
+ dismissAfter: 5000
1604
+ });
1605
+ if (typeof props.onExportSuccess === 'function') props.onExportSuccess();
1606
+ break;
1607
+ default:
1608
+ throw new UnexpectedExportOperationStateError(response.state);
1609
+ }
1610
+ } else {
1611
+ throw new Error(response.message || 'Unknown error occurred during export operation');
1564
1612
  }
1565
1613
  } catch (error) {
1566
- // TODO: custom error messages for each error type
1567
1614
  showNotification({
1568
1615
  text: intl.formatMessage(messages.unexpectedError),
1569
1616
  kind: 'error',
@@ -1580,7 +1627,7 @@ const useStartExportOperation = props => {
1580
1627
 
1581
1628
  const _excluded$2 = ["fields"];
1582
1629
  function ownKeys$b(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1583
- 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__default["default"](_context2 = ownKeys$b(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$b(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1630
+ 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__default["default"](_context6 = ownKeys$b(Object(t), !0)).call(_context6, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context7 = ownKeys$b(Object(t))).call(_context7, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1584
1631
  const getFieldFullName = _ref => {
1585
1632
  var _context;
1586
1633
  let fieldPrefix = _ref.fieldPrefix,
@@ -1590,6 +1637,7 @@ const getFieldFullName = _ref => {
1590
1637
  const localizeTypeDefinitionLabels = function () {
1591
1638
  let fieldDefinitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1592
1639
  return _mapInstanceProperty__default["default"](fieldDefinitions).call(fieldDefinitions, _ref2 => {
1640
+ var _context2, _context3;
1593
1641
  let fields = _ref2.fields,
1594
1642
  fieldsType = _objectWithoutProperties(_ref2, _excluded$2);
1595
1643
  const isFieldTypeLabelLocalized = _Array$isArray__default["default"](fieldsType.label);
@@ -1599,7 +1647,7 @@ const localizeTypeDefinitionLabels = function () {
1599
1647
  from: 'label',
1600
1648
  to: 'label'
1601
1649
  }]).label : fieldsType.label,
1602
- fields: fields?.map(field => {
1650
+ fields: ((_context2 = fields) == null ? void 0 : _bindInstanceProperty__default["default"](_context3 = Function.call).call(_context3, _mapInstanceProperty__default["default"](_context2), _context2))?.(field => {
1603
1651
  const isFieldLabelLocalized = _Array$isArray__default["default"](field.label);
1604
1652
  if (!isFieldLabelLocalized) {
1605
1653
  return field;
@@ -1637,6 +1685,7 @@ const useConvertFieldDefinitionsForExport = () => {
1637
1685
  if (!fieldDefinitions) return [];
1638
1686
  const localizedTypeDefinitions = localizeTypeDefinitionLabels(fieldDefinitions);
1639
1687
  const results = _mapInstanceProperty__default["default"](localizedTypeDefinitions).call(localizedTypeDefinitions, transformedType => {
1688
+ var _context4, _context5;
1640
1689
  const isTypeLabelLocalized = typeof transformedType.label !== 'string';
1641
1690
  return {
1642
1691
  isExpandable: true,
@@ -1650,7 +1699,7 @@ const useConvertFieldDefinitionsForExport = () => {
1650
1699
  fallbackOrder: languages,
1651
1700
  fallback: transformedType.name
1652
1701
  }) : transformedType.label,
1653
- fields: sortByField(transformedType.fields?.map(fieldDefinition => {
1702
+ fields: sortByField(((_context4 = transformedType.fields) == null ? void 0 : _bindInstanceProperty__default["default"](_context5 = Function.call).call(_context5, _mapInstanceProperty__default["default"](_context4), _context4))?.(fieldDefinition => {
1654
1703
  const isFieldLabelLocalized = typeof fieldDefinition.label !== 'string';
1655
1704
  return {
1656
1705
  name: getFieldFullName({
@@ -1677,7 +1726,7 @@ const useConvertFieldDefinitionsForExport = () => {
1677
1726
  };
1678
1727
  };
1679
1728
 
1680
- const useValidateImportedHeaders = () => {
1729
+ const useValidateExportOperation = () => {
1681
1730
  const intl = reactIntl.useIntl();
1682
1731
  const asyncDispatch = sdk.useAsyncDispatch();
1683
1732
  const showNotification = actionsGlobal.useShowNotification();
@@ -1685,9 +1734,9 @@ const useValidateImportedHeaders = () => {
1685
1734
  projectKey: context.project?.key
1686
1735
  })),
1687
1736
  projectKey = _useApplicationContex.projectKey;
1688
- const validateHeaders = async params => {
1737
+ const validateExport = async params => {
1689
1738
  try {
1690
- var _context;
1739
+ var _context, _context2, _context3;
1691
1740
  if (!projectKey) return;
1692
1741
  const invalidFields = _filterInstanceProperty__default["default"](_context = params.fields).call(_context, field => !isFieldNameValid(field));
1693
1742
  if (invalidFields.length > 0) {
@@ -1699,25 +1748,46 @@ const useValidateImportedHeaders = () => {
1699
1748
  }))
1700
1749
  };
1701
1750
  }
1702
- await validateImportedHeaders({
1751
+ const response = await validateExportOperation({
1703
1752
  projectKey,
1704
1753
  resourceType: params.resourceType,
1705
1754
  fileName: params.fileName,
1706
1755
  fileFormat: params.outputFormat,
1707
1756
  fields: params.fields,
1708
- locales: params.locales
1757
+ locales: params.locales,
1758
+ where: ((_context2 = params.queryPredicate) == null ? void 0 : _bindInstanceProperty__default["default"](_context3 = Function.call).call(_context3, _trimInstanceProperty__default["default"](_context2), _context2))?.() || undefined
1709
1759
  }, asyncDispatch);
1710
- return {
1711
- success: true,
1712
- validationErrors: []
1713
- };
1714
- } catch (error) {
1715
- if (typeof error === 'object' && error && 'validationErrors' in error && _Array$isArray__default["default"](error.validationErrors)) {
1760
+ if (isExportApiSuccessResponse(response) && response.resourceCount === 0) {
1716
1761
  return {
1717
1762
  success: false,
1718
- validationErrors: error.validationErrors
1763
+ noResourcesToExport: true
1719
1764
  };
1720
1765
  }
1766
+ return {
1767
+ success: true
1768
+ };
1769
+ } catch (error) {
1770
+ if (isExportApiErrorResponse(error)) {
1771
+ if (error.body.errors?.length) {
1772
+ var _context4;
1773
+ const whereError = _findInstanceProperty__default["default"](_context4 = error.body.errors).call(_context4, error => {
1774
+ var _context5;
1775
+ return error.message && _includesInstanceProperty__default["default"](_context5 = error.message).call(_context5, 'Malformed parameter: where');
1776
+ });
1777
+ if (whereError) {
1778
+ return {
1779
+ success: false,
1780
+ invalidQueryPredicate: true
1781
+ };
1782
+ }
1783
+ }
1784
+ if (error.body.validationErrors?.length) {
1785
+ return {
1786
+ success: false,
1787
+ validationErrors: error.body.validationErrors
1788
+ };
1789
+ }
1790
+ }
1721
1791
  showNotification({
1722
1792
  text: intl.formatMessage(messages.unexpectedError),
1723
1793
  kind: 'error',
@@ -1730,7 +1800,7 @@ const useValidateImportedHeaders = () => {
1730
1800
  }
1731
1801
  };
1732
1802
  return {
1733
- validateHeaders
1803
+ validateExport
1734
1804
  };
1735
1805
  };
1736
1806
 
@@ -1778,6 +1848,7 @@ function ownKeys$9(e, r) { var t = _Object$keys__default["default"](e); if (_Obj
1778
1848
  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__default["default"](_context = ownKeys$9(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$9(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1779
1849
  function ExportScopeSection() {
1780
1850
  const _useExportResourcesMo = useExportResourcesModalContext(),
1851
+ formik = _useExportResourcesMo.formik,
1781
1852
  exportType = _useExportResourcesMo.exportType,
1782
1853
  totalResourcesCount = _useExportResourcesMo.totalResourcesCount,
1783
1854
  filters = _useExportResourcesMo.filters,
@@ -1785,10 +1856,11 @@ function ExportScopeSection() {
1785
1856
  selectedResourceIds = _useExportResourcesMo.selectedResourceIds,
1786
1857
  setExportType = _useExportResourcesMo.setExportType,
1787
1858
  resourceType = _useExportResourcesMo.resourceType,
1788
- hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption;
1789
- return jsxRuntime.jsx(uiKit.Spacings.Stack, {
1790
- scale: "m",
1791
- children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
1859
+ hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption,
1860
+ showQueryPredicateOption = _useExportResourcesMo.showQueryPredicateOption;
1861
+ const shouldShowQueryPredicateField = exportType === EXPORT_TYPES.QUERY_PREDICATE;
1862
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1863
+ children: [jsxRuntime.jsxs(uiKit.RadioInput.Group, {
1792
1864
  value: exportType,
1793
1865
  onChange: e => {
1794
1866
  setExportType(e.target.value);
@@ -1828,8 +1900,23 @@ function ExportScopeSection() {
1828
1900
  }
1829
1901
  }) : messages.exportScopeSelectedWithoutCount
1830
1902
  })
1903
+ }), showQueryPredicateOption && jsxRuntime.jsx(uiKit.RadioInput.Option, {
1904
+ value: EXPORT_TYPES.QUERY_PREDICATE,
1905
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
1906
+ intlMessage: messages.queryPredicate
1907
+ })
1831
1908
  })]
1832
- })
1909
+ }), shouldShowQueryPredicateField && jsxRuntime.jsx(uiKit.TextField, {
1910
+ name: "queryPredicate",
1911
+ "data-testid": "query-predicate-field",
1912
+ title: "",
1913
+ onChange: formik.handleChange,
1914
+ onBlur: formik.handleBlur,
1915
+ value: _valuesInstanceProperty__default["default"](formik).queryPredicate,
1916
+ touched: formik.touched.queryPredicate,
1917
+ errors: mapFormikErrors(formik.errors.queryPredicate),
1918
+ renderError: renderQueryPredicateError
1919
+ })]
1833
1920
  });
1834
1921
  }
1835
1922
 
@@ -2125,6 +2212,7 @@ const CollapsibleFieldWrapper = _ref => {
2125
2212
  });
2126
2213
  };
2127
2214
  const FieldSection = _ref3 => {
2215
+ var _context, _context2, _context7, _context8;
2128
2216
  let fields = _ref3.fields,
2129
2217
  parentKeys = _ref3.parentKeys,
2130
2218
  formik = _ref3.formik,
@@ -2134,9 +2222,12 @@ const FieldSection = _ref3 => {
2134
2222
  maxVisibleChildren = _ref3.maxVisibleChildren;
2135
2223
  const _useExportFieldSelect = useExportFieldSelectionContext(),
2136
2224
  updateExpandedGroups = _useExportFieldSelect.updateExpandedGroups;
2137
- const visibleFields = isSearchActive || !maxVisibleChildren ? fields : fields?.slice(0, maxVisibleChildren);
2225
+ const visibleFields = isSearchActive || !maxVisibleChildren ? fields : ((_context = fields) == null ? void 0 : _bindInstanceProperty__default["default"](_context2 = Function.call).call(_context2, _sliceInstanceProperty__default["default"](_context), _context))?.(0, maxVisibleChildren);
2138
2226
  const hasMoreFields = maxVisibleChildren && !isSearchActive && fields && fields.length > maxVisibleChildren;
2139
- const visibleIndex = field => fields?.filter(f => !f.isHidden).indexOf(field) || -1;
2227
+ const visibleIndex = field => {
2228
+ var _context3, _context4, _context5, _context6;
2229
+ return ((_context3 = ((_context4 = fields) == null ? void 0 : _bindInstanceProperty__default["default"](_context5 = Function.call).call(_context5, _filterInstanceProperty__default["default"](_context4), _context4))?.(f => !f.isHidden)) == null ? void 0 : _bindInstanceProperty__default["default"](_context6 = Function.call).call(_context6, _indexOfInstanceProperty__default["default"](_context3), _context3))?.(field) || -1;
2230
+ };
2140
2231
  const shouldDisplayField = field => {
2141
2232
  if (field.isHidden) return false;
2142
2233
  if (!maxVisibleChildren) return true;
@@ -2147,7 +2238,7 @@ const FieldSection = _ref3 => {
2147
2238
  };
2148
2239
  return jsxRuntime.jsxs(uiKit.Spacings.Stack, {
2149
2240
  scale: "s",
2150
- children: [visibleFields?.map((field, index) => {
2241
+ children: [((_context7 = visibleFields) == null ? void 0 : _bindInstanceProperty__default["default"](_context8 = Function.call).call(_context8, _mapInstanceProperty__default["default"](_context7), _context7))?.((field, index) => {
2151
2242
  const isChildrenCountDisplayed = shouldDisplayChildrenCount(field);
2152
2243
  const hasDependents = Boolean(field.dependentGroupNames?.length || field.dependentFieldNames?.length);
2153
2244
  const isAnyOfTheChildFieldsChecked = isAnyFieldChecked(field.fields || []);
@@ -2195,8 +2286,8 @@ const FieldSection = _ref3 => {
2195
2286
  const updateAllChildFieldsChecked = (path, checked) => {
2196
2287
  const item = get__default["default"](_valuesInstanceProperty__default["default"](formik), path);
2197
2288
  if (item && item.fields) {
2198
- var _context;
2199
- _forEachInstanceProperty__default["default"](_context = item.fields).call(_context, (field, i) => {
2289
+ var _context9;
2290
+ _forEachInstanceProperty__default["default"](_context9 = item.fields).call(_context9, (field, i) => {
2200
2291
  const fieldPath = `${path}.fields[${i}]`;
2201
2292
  if (!field.fields?.length) {
2202
2293
  formik.setFieldValue(`${fieldPath}.isChecked`, checked || field.isRequired,
@@ -2432,7 +2523,7 @@ const NoSearchResults = () => {
2432
2523
  };
2433
2524
 
2434
2525
  function ownKeys$5(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
2435
- 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__default["default"](_context5 = ownKeys$5(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys$5(Object(t))).call(_context6, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
2526
+ 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__default["default"](_context7 = ownKeys$5(Object(t), !0)).call(_context7, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context8 = ownKeys$5(Object(t))).call(_context8, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
2436
2527
  const totalSpacing = 56 +
2437
2528
  // MC header
2438
2529
  32 * 2 + (
@@ -2477,6 +2568,7 @@ const StyledGridCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, proc
2477
2568
  label: "StyledGridCard"
2478
2569
  })("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== */"));
2479
2570
  const SelectedFieldsForm = () => {
2571
+ var _context, _context2;
2480
2572
  const intl = reactIntl.useIntl();
2481
2573
  const _React$useState = React__default["default"].useState(''),
2482
2574
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -2493,22 +2585,22 @@ const SelectedFieldsForm = () => {
2493
2585
  const _useExportResourcesMo = useExportResourcesModalContext(),
2494
2586
  formik = _useExportResourcesMo.formik,
2495
2587
  resourceType = _useExportResourcesMo.resourceType;
2496
- const isSearchActive = fieldSearchTerm?.trim()?.length >= MIN_SEARCH_LENGTH;
2588
+ const isSearchActive = ((_context = fieldSearchTerm) == null ? void 0 : _bindInstanceProperty__default["default"](_context2 = Function.call).call(_context2, _trimInstanceProperty__default["default"](_context), _context))?.()?.length >= MIN_SEARCH_LENGTH;
2497
2589
  React__default["default"].useEffect(() => {
2498
- var _context2;
2590
+ var _context4;
2499
2591
  updateFieldDependenciesStatus(formik);
2500
2592
  const checkedFields = {};
2501
2593
  function getCheckedFields(field, groupName) {
2502
2594
  const fieldName = field.name ? `${groupName}.${field.name}` : groupName;
2503
2595
  if (field.fields) {
2504
- var _context;
2505
- return _forEachInstanceProperty__default["default"](_context = field.fields).call(_context, f => getCheckedFields(f, fieldName));
2596
+ var _context3;
2597
+ return _forEachInstanceProperty__default["default"](_context3 = field.fields).call(_context3, f => getCheckedFields(f, fieldName));
2506
2598
  }
2507
2599
  checkedFields[fieldName] = field.isChecked;
2508
2600
  }
2509
- _forEachInstanceProperty__default["default"](_context2 = _valuesInstanceProperty__default["default"](formik).groups).call(_context2, group => {
2510
- var _context3;
2511
- _forEachInstanceProperty__default["default"](_context3 = group.fields).call(_context3, field => {
2601
+ _forEachInstanceProperty__default["default"](_context4 = _valuesInstanceProperty__default["default"](formik).groups).call(_context4, group => {
2602
+ var _context5;
2603
+ _forEachInstanceProperty__default["default"](_context5 = group.fields).call(_context5, field => {
2512
2604
  getCheckedFields(field, group.groupName);
2513
2605
  });
2514
2606
  });
@@ -2521,8 +2613,8 @@ const SelectedFieldsForm = () => {
2521
2613
  const filteredGroups = React__default["default"].useMemo(() => {
2522
2614
  const updateFields = (fields, parentMatches) => {
2523
2615
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
2524
- var _context4;
2525
- const matches = _includesInstanceProperty__default["default"](_context4 = field.label.toLowerCase()).call(_context4, fieldSearchTerm.toLowerCase());
2616
+ var _context6;
2617
+ const matches = _includesInstanceProperty__default["default"](_context6 = field.label.toLowerCase()).call(_context6, fieldSearchTerm.toLowerCase());
2526
2618
  let isHidden = !matches && !parentMatches;
2527
2619
  if (field.fields) {
2528
2620
  const updatedFields = updateFields(field.fields, matches);
@@ -2671,6 +2763,8 @@ const _excluded$1 = ["children"];
2671
2763
  const ExportResourcesProvider = _ref => {
2672
2764
  let children = _ref.children,
2673
2765
  props = _objectWithoutProperties(_ref, _excluded$1);
2766
+ const intl = reactIntl.useIntl();
2767
+ const showNotification = actionsGlobal.useShowNotification();
2674
2768
  const initialValues = useInitialValues(props);
2675
2769
  const _React$useState = React__default["default"].useState(Step.FileSettings),
2676
2770
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -2701,47 +2795,70 @@ const ExportResourcesProvider = _ref => {
2701
2795
  setValidationErrors = _React$useState12[1];
2702
2796
  const _useStartExportOperat = useStartExportOperation(props),
2703
2797
  startExportOperation = _useStartExportOperat.startExportOperation;
2704
- const _useValidateImportedH = useValidateImportedHeaders(),
2705
- validateHeaders = _useValidateImportedH.validateHeaders;
2706
- const onSubmit = async values => {
2707
- if (currentStep === Step.FileSettings) {
2708
- setCurrentStep(Step.FieldsSelection);
2709
- } else if (currentStep === Step.FieldsSelection) {
2710
- if (fieldSelectionMode !== 'imported-csv-template') {
2711
- setCurrentStep(Step.ConfirmExport);
2712
- return;
2713
- }
2714
- const isUsingImportedCsvLocales = localeOption === 'onlyLocalesFoundInCsvFile';
2715
- const validationResult = await validateHeaders({
2716
- fileName: values.fileName,
2717
- outputFormat: values.outputFormat,
2718
- resourceType: props.resourceType,
2719
- fields: importedHeaders,
2720
- locales: isUsingImportedCsvLocales ? undefined : values.locales
2721
- });
2722
- if (validationResult?.success) {
2723
- setCurrentStep(Step.ConfirmExport);
2724
- } else {
2725
- setValidationErrors(validationResult?.validationErrors);
2726
- setCurrentStep(Step.ValidationErrors);
2727
- }
2728
- } else {
2729
- startExportOperation(values, exportType, fieldSelectionMode, localeOption, importedHeaders);
2730
- }
2731
- };
2798
+ const _useValidateExportOpe = useValidateExportOperation(),
2799
+ validateExport = _useValidateExportOpe.validateExport;
2732
2800
  const formik$1 = formik.useFormik({
2733
2801
  initialValues,
2734
2802
  validate: values => validate({
2735
2803
  values,
2736
2804
  step: currentStep,
2737
2805
  fieldSelectionMode,
2738
- importedHeaders
2806
+ importedHeaders,
2807
+ exportType
2739
2808
  }),
2740
- onSubmit
2809
+ onSubmit: async values => {
2810
+ if (currentStep === Step.FileSettings) {
2811
+ if (exportType === EXPORT_TYPES.QUERY_PREDICATE) {
2812
+ const validationResult = await validateExport({
2813
+ fileName: values.fileName,
2814
+ outputFormat: values.outputFormat,
2815
+ resourceType: props.resourceType,
2816
+ fields: extractFieldNamesFromGroups(values.groups, props.fieldOrder),
2817
+ locales: values.locales,
2818
+ queryPredicate: values.queryPredicate
2819
+ });
2820
+ if (validationResult?.invalidQueryPredicate) {
2821
+ formik$1.setFieldError('queryPredicate', 'invalidInput');
2822
+ return;
2823
+ }
2824
+ if (validationResult?.noResourcesToExport) {
2825
+ showNotification({
2826
+ text: intl.formatMessage(messages.noResourcesToExport),
2827
+ kind: 'error',
2828
+ domain: constants.DOMAINS.PAGE
2829
+ });
2830
+ return;
2831
+ }
2832
+ }
2833
+ setCurrentStep(Step.FieldsSelection);
2834
+ } else if (currentStep === Step.FieldsSelection) {
2835
+ if (fieldSelectionMode !== 'imported-csv-template') {
2836
+ setCurrentStep(Step.ConfirmExport);
2837
+ return;
2838
+ }
2839
+ const isUsingImportedCsvLocales = localeOption === 'onlyLocalesFoundInCsvFile';
2840
+ const validationResult = await validateExport({
2841
+ fileName: values.fileName,
2842
+ outputFormat: values.outputFormat,
2843
+ resourceType: props.resourceType,
2844
+ fields: importedHeaders,
2845
+ locales: isUsingImportedCsvLocales ? undefined : values.locales,
2846
+ queryPredicate: values.queryPredicate
2847
+ });
2848
+ if (validationResult?.success) {
2849
+ setCurrentStep(Step.ConfirmExport);
2850
+ } else {
2851
+ setValidationErrors(validationResult?.validationErrors);
2852
+ setCurrentStep(Step.ValidationErrors);
2853
+ }
2854
+ } else {
2855
+ startExportOperation(values, exportType, fieldSelectionMode, localeOption, importedHeaders);
2856
+ }
2857
+ }
2741
2858
  });
2742
2859
  React__default["default"].useEffect(() => {
2743
2860
  formik$1.validateForm();
2744
- }, [currentStep, fieldSelectionMode, importedHeaders]);
2861
+ }, [currentStep, fieldSelectionMode, importedHeaders, exportType]);
2745
2862
  return jsxRuntime.jsx(ExportResourcesContext.Provider, {
2746
2863
  value: {
2747
2864
  formik: formik$1,
@@ -2753,6 +2870,7 @@ const ExportResourcesProvider = _ref => {
2753
2870
  totalResourcesCount: props.totalResourcesCount,
2754
2871
  selectedResourceIds: props.selectedResourceIds,
2755
2872
  hideExportSelectedResourcesOption: props.hideExportSelectedResourcesOption,
2873
+ showQueryPredicateOption: props.showQueryPredicateOption,
2756
2874
  filters: props.filters,
2757
2875
  hasFilters: areFiltersApplied(props.filters),
2758
2876
  setExportType,
@@ -3104,11 +3222,11 @@ function getDefaultDropWrapperStyles(_dropAreaState) {
3104
3222
  return /*#__PURE__*/react.css(process.env.NODE_ENV === "production" ? "" : ";label:getDefaultDropWrapperStyles;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRyb3AtYXJlYS13cmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QlkiLCJmaWxlIjoiZHJvcC1hcmVhLXdyYXBwZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEcm9wem9uZVJvb3RQcm9wcyB9IGZyb20gJ3JlYWN0LWRyb3B6b25lJ1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IHN0eWxlcyB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdHlwZSBEcm9wQXJlYVN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vQHR5cGVzJ1xuXG5pbnRlcmZhY2UgRHJvcFdyYXBwZXJQcm9wcyBleHRlbmRzIERyb3B6b25lUm9vdFByb3BzIHtcbiAgZHJvcEFyZWFTdGF0ZTogRHJvcEFyZWFTdGF0ZVxufVxuZXhwb3J0IGNvbnN0IERyb3BXcmFwcGVyID0gc3R5bGVkLmRpdjxEcm9wV3JhcHBlclByb3BzPmBcbiAgJHtzdHlsZXMuYmFzZX1cbiAgJHsocHJvcHMpID0+IHtcbiAgICBpZiAocHJvcHMuZHJvcEFyZWFTdGF0ZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gc3R5bGVzLnJlYWR5Rm9yRHJvcFxuICAgIH1cbiAgICBpZiAocHJvcHMuZHJvcEFyZWFTdGF0ZSA9PT0gJ2FjdGl2ZS1kcmFnJykge1xuICAgICAgcmV0dXJuIHN0eWxlcy5hY3RpdmVEcmFnXG4gICAgfVxuICAgIGlmIChwcm9wcy5kcm9wQXJlYVN0YXRlID09PSAnZmlsZS1kcm9wcGVkJykge1xuICAgICAgcmV0dXJuIHN0eWxlcy5maWxlRHJvcHBlZFxuICAgIH1cbiAgICByZXR1cm4gZ2V0RGVmYXVsdERyb3BXcmFwcGVyU3R5bGVzKHByb3BzLmRyb3BBcmVhU3RhdGUpXG4gIH19XG5gXG5mdW5jdGlvbiBnZXREZWZhdWx0RHJvcFdyYXBwZXJTdHlsZXMoX2Ryb3BBcmVhU3RhdGU6IG5ldmVyKSB7XG4gIHJldHVybiBjc3NgYFxufVxuIl19 */");
3105
3223
  }
3106
3224
 
3107
- var ActiveDragDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./active-drag-drop-area-b1213fdd.cjs.dev.js' /* webpackChunkName: "active-drag-drop-area" */); }));
3225
+ var ActiveDragDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./active-drag-drop-area-56db6919.cjs.dev.js' /* webpackChunkName: "active-drag-drop-area" */); }));
3108
3226
 
3109
- var EnabledDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./enabled-drop-area-0453fd0d.cjs.dev.js' /* webpackChunkName: "enabled-drop-area" */); }));
3227
+ var EnabledDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./enabled-drop-area-a5fe741d.cjs.dev.js' /* webpackChunkName: "enabled-drop-area" */); }));
3110
3228
 
3111
- var FileDropped = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./file-dropped-area-2e6723f0.cjs.dev.js' /* webpackChunkName: "filed-dropped-area" */); }));
3229
+ var FileDropped = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./file-dropped-area-5979698c.cjs.dev.js' /* webpackChunkName: "filed-dropped-area" */); }));
3112
3230
 
3113
3231
  function getDropArea(_ref) {
3114
3232
  let dropAreaState = _ref.dropAreaState,