@commercetools-frontend-extensions/export-resources-modal 5.0.4 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist/{active-drag-drop-area-677cd139.cjs.prod.js → active-drag-drop-area-20a66ce6.cjs.prod.js} +1 -1
  2. package/dist/{active-drag-drop-area-ab3d5305.cjs.dev.js → active-drag-drop-area-364cae94.cjs.dev.js} +1 -1
  3. package/dist/{active-drag-drop-area-d0b34d8c.esm.js → active-drag-drop-area-418bdbf4.esm.js} +1 -1
  4. package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.dev.js +1 -1
  5. package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.prod.js +1 -1
  6. package/dist/commercetools-frontend-extensions-export-resources-modal.esm.js +1 -1
  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-049033dc.cjs.prod.js → enabled-drop-area-93b7de32.cjs.prod.js} +1 -1
  15. package/dist/{enabled-drop-area-3ac1d564.esm.js → enabled-drop-area-aed3e03e.esm.js} +1 -1
  16. package/dist/{enabled-drop-area-76b49e4a.cjs.dev.js → enabled-drop-area-d120c17d.cjs.dev.js} +1 -1
  17. package/dist/{file-dropped-area-997435fa.esm.js → file-dropped-area-06a60bda.esm.js} +1 -1
  18. package/dist/{file-dropped-area-d2df8c70.cjs.prod.js → file-dropped-area-d6e47d57.cjs.prod.js} +1 -1
  19. package/dist/{file-dropped-area-44d101c3.cjs.dev.js → file-dropped-area-e45600e0.cjs.dev.js} +1 -1
  20. package/dist/{index-969519bd.esm.js → index-1619b654.esm.js} +361 -257
  21. package/dist/{index-1d25c6f7.cjs.prod.js → index-1cb3087e.cjs.prod.js} +360 -256
  22. package/dist/{index-e4706b61.cjs.dev.js → index-deb5c3f9.cjs.dev.js} +360 -256
  23. package/package.json +1 -1
  24. package/dist/declarations/src/@hooks/use-validate-imported-headers.d.ts +0 -15
@@ -622,6 +622,26 @@ var messages = reactIntl.defineMessages({
622
622
  id: 'ExportResourcesModal.uploadErrorsDetected',
623
623
  description: 'Message shown when errors are detected during file upload',
624
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
+ noResourcesToExportForQueryPredicate: {
642
+ id: 'ExportResourcesModal.noResourcesToExportForQueryPredicate',
643
+ description: 'Error message when there are no resources to export for given query predicate',
644
+ defaultMessage: 'No resources match your query predicate. Please check your query predicate and try again.'
625
645
  }
626
646
  });
627
647
 
@@ -645,6 +665,18 @@ function renderLocaleError(key) {
645
665
  return null;
646
666
  }
647
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
+ case 'noResourcesToExportForQueryPredicate':
675
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$h({}, messages.noResourcesToExportForQueryPredicate));
676
+ default:
677
+ return null;
678
+ }
679
+ };
648
680
 
649
681
  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)); }
650
682
  function _isNativeReflectConstruct$3() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$3 = function () { return !!t; })(); }
@@ -789,7 +821,8 @@ const EXPORT_OPERATION_STATES = {
789
821
  const EXPORT_TYPES = {
790
822
  ALL: 'all',
791
823
  FILTERED: 'filtered',
792
- SELECTED: 'selected'
824
+ SELECTED: 'selected',
825
+ QUERY_PREDICATE: 'query-predicate'
793
826
  };
794
827
 
795
828
  const EXPORTABLE_RESOURCES = {
@@ -866,6 +899,140 @@ const DEFAULT_SHORT_LIVED_FLAGS = {};
866
899
  const DEFAULT_LONG_LIVED_FLAGS = {};
867
900
  _objectSpread$f(_objectSpread$f({}, DEFAULT_SHORT_LIVED_FLAGS), DEFAULT_LONG_LIVED_FLAGS);
868
901
 
902
+ function resourceTypeToFileName(resourceType, locale) {
903
+ var _context;
904
+ const date = new Date();
905
+ const dateFormatter = new Intl.DateTimeFormat(locale, {
906
+ year: '2-digit',
907
+ month: '2-digit',
908
+ day: '2-digit',
909
+ hour: '2-digit',
910
+ minute: '2-digit',
911
+ hour12: false
912
+ });
913
+ const parts = dateFormatter.formatToParts(date);
914
+ const dateParts = _reduceInstanceProperty__default["default"](parts).call(parts, (acc, part) => {
915
+ if (part.type !== 'literal') {
916
+ acc[part.type] = part.value;
917
+ }
918
+ return acc;
919
+ }, {});
920
+ 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('-');
921
+ const formattedDate = `${orderedDateParts}_${dateParts.hour}-${dateParts.minute}`;
922
+ const resourceTypeMap = {
923
+ [EXPORTABLE_RESOURCES.CATEGORY]: 'Categories',
924
+ [EXPORTABLE_RESOURCES.PRODUCT]: 'Products',
925
+ [EXPORTABLE_RESOURCES.PRODUCT_TYPE]: 'Product_Types',
926
+ [EXPORTABLE_RESOURCES.DISCOUNT_CODE]: 'Discount_Codes',
927
+ [EXPORTABLE_RESOURCES.INVENTORY_ENTRY]: 'Inventories',
928
+ [EXPORTABLE_RESOURCES.CUSTOMER]: 'Customers',
929
+ [EXPORTABLE_RESOURCES.ORDER]: 'Orders'
930
+ };
931
+ const displayName = resourceTypeMap[resourceType];
932
+ if (!displayName) {
933
+ throw new UnexpectedResourceTypeError(resourceType);
934
+ }
935
+ return `${displayName}_Export_${formattedDate}`;
936
+ }
937
+ function mapLocalesToOptions(locales) {
938
+ return _mapInstanceProperty__default["default"](locales).call(locales, locale => ({
939
+ value: locale,
940
+ label: locale
941
+ }));
942
+ }
943
+ function isFilledArray(maybeArray) {
944
+ return _Array$isArray__default["default"](maybeArray) && maybeArray.length > 0;
945
+ }
946
+ function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
947
+ const extensionRegex = /\.(csv|json)$/i;
948
+ if (!extensionRegex.test(fileName)) return `${fileName}.${fileFormat}`;
949
+ return fileName;
950
+ }
951
+ function getExportLogsLink(projectKey, msg) {
952
+ return jsxRuntime.jsx(uiKit.Link, {
953
+ to: `/${projectKey}/operations/export/logs`,
954
+ children: msg
955
+ }, "link");
956
+ }
957
+ const extractFieldNamesAndAdditionalFieldExtensions = fields => {
958
+ const result = _reduceInstanceProperty__default["default"](fields).call(fields, (acc, field) => {
959
+ if (field.extendedFieldNames) {
960
+ return [...acc, field.name, ...field.extendedFieldNames];
961
+ }
962
+ return [...acc, field.name];
963
+ }, []);
964
+ return [...new _Set__default["default"](result)];
965
+ };
966
+ function sortFieldsByFieldOrder(_ref) {
967
+ let fieldNames = _ref.fieldNames,
968
+ fieldOrder = _ref.fieldOrder;
969
+ if (isFilledArray(fieldOrder)) {
970
+ return _sortInstanceProperty__default["default"](fieldNames).call(fieldNames, (a, b) => {
971
+ 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]);
972
+ 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]);
973
+
974
+ // If a field is not 'custom',then consider it as '*'
975
+ orderA = orderA === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderA;
976
+ orderB = orderB === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderB;
977
+ return orderA - orderB;
978
+ });
979
+ }
980
+ return fieldNames;
981
+ }
982
+ function buildSelectedExportFilters(selectedResourceIds) {
983
+ if (!selectedResourceIds || selectedResourceIds?.length === 0) return undefined;
984
+ const formattedIds = _mapInstanceProperty__default["default"](selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
985
+ return `id in (${formattedIds})`;
986
+ }
987
+ function isQueryFilter(filters) {
988
+ if (!filters) return false;
989
+ return 'query' in filters;
990
+ }
991
+ function isSearchFilter(filters) {
992
+ if (!filters) return false;
993
+ return 'filters' in filters || 'fullText' in filters;
994
+ }
995
+ function isPredicateFilter(filters) {
996
+ if (!filters) return false;
997
+ return 'where' in filters;
998
+ }
999
+ function validateFilters(filtersObject) {
1000
+ if (filtersObject.where && filtersObject.filters) {
1001
+ return false;
1002
+ }
1003
+ return Boolean(isQueryFilter(filtersObject.filters) || isSearchFilter(filtersObject.filters) || isPredicateFilter(filtersObject));
1004
+ }
1005
+ function areFiltersApplied(filtersObject) {
1006
+ var _context2;
1007
+ if (!filtersObject) {
1008
+ return false;
1009
+ }
1010
+ if (filtersObject.where && _trimInstanceProperty__default["default"](_context2 = filtersObject.where).call(_context2) !== '') {
1011
+ return true;
1012
+ }
1013
+ if (isQueryFilter(filtersObject.filters)) {
1014
+ return Boolean(filtersObject.filters.query);
1015
+ }
1016
+ if (isSearchFilter(filtersObject.filters)) {
1017
+ var _context3, _context4;
1018
+ const _filters = filtersObject.filters;
1019
+ 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))?.());
1020
+ }
1021
+ return false;
1022
+ }
1023
+ function getInitialExportType(args) {
1024
+ if (args.selectedResourceIds?.length) {
1025
+ return EXPORT_TYPES.SELECTED;
1026
+ }
1027
+ if (args.filters?.total && areFiltersApplied(args.filters)) {
1028
+ return EXPORT_TYPES.FILTERED;
1029
+ }
1030
+ return EXPORT_TYPES.ALL;
1031
+ }
1032
+ function removeEmptyGroups(groups) {
1033
+ return _filterInstanceProperty__default["default"](groups).call(groups, group => group.fields && group.fields.length > 0);
1034
+ }
1035
+
869
1036
  const isAnyFieldChecked = fields => {
870
1037
  return _someInstanceProperty__default["default"](fields).call(fields, field => field.isChecked || field.fields && isAnyFieldChecked(field.fields));
871
1038
  };
@@ -979,6 +1146,25 @@ const getSelectedFieldLabels = group => {
979
1146
  findSelectedFieldLabels(group.fields);
980
1147
  return selectedLabels;
981
1148
  };
1149
+ const extractFieldNamesFromGroups = (groups, fieldOrder) => {
1150
+ let checkedFields = [];
1151
+ const getCheckedFields = fields => {
1152
+ return _filterInstanceProperty__default["default"](fields).call(fields, field => {
1153
+ if (field.fields) {
1154
+ return getCheckedFields(field.fields);
1155
+ }
1156
+ if (field.isChecked) checkedFields.push(field);
1157
+ return field.isChecked ?? false;
1158
+ });
1159
+ };
1160
+ _forEachInstanceProperty__default["default"](groups).call(groups, group => {
1161
+ getCheckedFields(group.fields);
1162
+ });
1163
+ return sortFieldsByFieldOrder({
1164
+ fieldNames: extractFieldNamesAndAdditionalFieldExtensions(checkedFields),
1165
+ fieldOrder
1166
+ });
1167
+ };
982
1168
 
983
1169
  let Step = /*#__PURE__*/function (Step) {
984
1170
  Step["FileSettings"] = "file-settings";
@@ -999,21 +1185,27 @@ function validate(_ref) {
999
1185
  let values = _valuesInstanceProperty__default["default"](_ref),
1000
1186
  step = _ref.step,
1001
1187
  fieldSelectionMode = _ref.fieldSelectionMode,
1002
- importedHeaders = _ref.importedHeaders;
1188
+ importedHeaders = _ref.importedHeaders,
1189
+ exportType = _ref.exportType;
1003
1190
  const fileName = values.fileName,
1191
+ queryPredicate = values.queryPredicate,
1004
1192
  locales = values.locales,
1005
1193
  groups = values.groups;
1006
1194
  const errors = {
1007
1195
  fileName: {},
1008
1196
  locales: {},
1009
1197
  fields: {},
1010
- importedCsvTemplateFile: {}
1198
+ importedCsvTemplateFile: {},
1199
+ queryPredicate: {}
1011
1200
  };
1012
1201
  if (uiKit.TextInput.isEmpty(fileName)) {
1013
1202
  errors.fileName.missing = true;
1014
1203
  } else if (!/^[a-zA-Z0-9-_.]+$/.test(fileName)) {
1015
1204
  errors.fileName.invalidInput = true;
1016
1205
  }
1206
+ if (exportType === 'query-predicate' && uiKit.TextInput.isEmpty(queryPredicate)) {
1207
+ errors.queryPredicate.missing = true;
1208
+ }
1017
1209
  if (step === Step.FieldsSelection) {
1018
1210
  if (fieldSelectionMode === 'selected-fields') {
1019
1211
  const allFields = _reduceInstanceProperty__default["default"](groups).call(groups, (acc, group) => _concatInstanceProperty__default["default"](acc).call(acc, group.fields), []);
@@ -1043,140 +1235,6 @@ function isFieldNameValid(header) {
1043
1235
  return /^[a-zA-Z0-9._-]+$/.test(processedHeader);
1044
1236
  }
1045
1237
 
1046
- function resourceTypeToFileName(resourceType, locale) {
1047
- var _context;
1048
- const date = new Date();
1049
- const dateFormatter = new Intl.DateTimeFormat(locale, {
1050
- year: '2-digit',
1051
- month: '2-digit',
1052
- day: '2-digit',
1053
- hour: '2-digit',
1054
- minute: '2-digit',
1055
- hour12: false
1056
- });
1057
- const parts = dateFormatter.formatToParts(date);
1058
- const dateParts = _reduceInstanceProperty__default["default"](parts).call(parts, (acc, part) => {
1059
- if (part.type !== 'literal') {
1060
- acc[part.type] = part.value;
1061
- }
1062
- return acc;
1063
- }, {});
1064
- 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('-');
1065
- const formattedDate = `${orderedDateParts}_${dateParts.hour}-${dateParts.minute}`;
1066
- const resourceTypeMap = {
1067
- [EXPORTABLE_RESOURCES.CATEGORY]: 'Categories',
1068
- [EXPORTABLE_RESOURCES.PRODUCT]: 'Products',
1069
- [EXPORTABLE_RESOURCES.PRODUCT_TYPE]: 'Product_Types',
1070
- [EXPORTABLE_RESOURCES.DISCOUNT_CODE]: 'Discount_Codes',
1071
- [EXPORTABLE_RESOURCES.INVENTORY_ENTRY]: 'Inventories',
1072
- [EXPORTABLE_RESOURCES.CUSTOMER]: 'Customers',
1073
- [EXPORTABLE_RESOURCES.ORDER]: 'Orders'
1074
- };
1075
- const displayName = resourceTypeMap[resourceType];
1076
- if (!displayName) {
1077
- throw new UnexpectedResourceTypeError(resourceType);
1078
- }
1079
- return `${displayName}_Export_${formattedDate}`;
1080
- }
1081
- function mapLocalesToOptions(locales) {
1082
- return _mapInstanceProperty__default["default"](locales).call(locales, locale => ({
1083
- value: locale,
1084
- label: locale
1085
- }));
1086
- }
1087
- function isFilledArray(maybeArray) {
1088
- return _Array$isArray__default["default"](maybeArray) && maybeArray.length > 0;
1089
- }
1090
- function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
1091
- const extensionRegex = /\.(csv|json)$/i;
1092
- if (!extensionRegex.test(fileName)) return `${fileName}.${fileFormat}`;
1093
- return fileName;
1094
- }
1095
- function getExportLogsLink(projectKey, msg) {
1096
- return jsxRuntime.jsx(uiKit.Link, {
1097
- to: `/${projectKey}/operations/export/logs`,
1098
- children: msg
1099
- }, "link");
1100
- }
1101
- const extractFieldNamesAndAdditionalFieldExtensions = fields => {
1102
- const result = _reduceInstanceProperty__default["default"](fields).call(fields, (acc, field) => {
1103
- if (field.extendedFieldNames) {
1104
- return [...acc, field.name, ...field.extendedFieldNames];
1105
- }
1106
- return [...acc, field.name];
1107
- }, []);
1108
- return [...new _Set__default["default"](result)];
1109
- };
1110
- function sortFieldsByFieldOrder(_ref) {
1111
- let fieldNames = _ref.fieldNames,
1112
- fieldOrder = _ref.fieldOrder;
1113
- if (isFilledArray(fieldOrder)) {
1114
- return _sortInstanceProperty__default["default"](fieldNames).call(fieldNames, (a, b) => {
1115
- 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]);
1116
- 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]);
1117
-
1118
- // If a field is not 'custom',then consider it as '*'
1119
- orderA = orderA === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderA;
1120
- orderB = orderB === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderB;
1121
- return orderA - orderB;
1122
- });
1123
- }
1124
- return fieldNames;
1125
- }
1126
- function buildSelectedExportFilters(selectedResourceIds) {
1127
- if (!selectedResourceIds || selectedResourceIds?.length === 0) return undefined;
1128
- const formattedIds = _mapInstanceProperty__default["default"](selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
1129
- return `id in (${formattedIds})`;
1130
- }
1131
- function isQueryFilter(filters) {
1132
- if (!filters) return false;
1133
- return 'query' in filters;
1134
- }
1135
- function isSearchFilter(filters) {
1136
- if (!filters) return false;
1137
- return 'filters' in filters || 'fullText' in filters;
1138
- }
1139
- function isPredicateFilter(filters) {
1140
- if (!filters) return false;
1141
- return 'where' in filters;
1142
- }
1143
- function validateFilters(filtersObject) {
1144
- if (filtersObject.where && filtersObject.filters) {
1145
- return false;
1146
- }
1147
- return Boolean(isQueryFilter(filtersObject.filters) || isSearchFilter(filtersObject.filters) || isPredicateFilter(filtersObject));
1148
- }
1149
- function areFiltersApplied(filtersObject) {
1150
- var _context2;
1151
- if (!filtersObject) {
1152
- return false;
1153
- }
1154
- if (filtersObject.where && _trimInstanceProperty__default["default"](_context2 = filtersObject.where).call(_context2) !== '') {
1155
- return true;
1156
- }
1157
- if (isQueryFilter(filtersObject.filters)) {
1158
- return Boolean(filtersObject.filters.query);
1159
- }
1160
- if (isSearchFilter(filtersObject.filters)) {
1161
- var _context3, _context4;
1162
- const _filters = filtersObject.filters;
1163
- 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))?.());
1164
- }
1165
- return false;
1166
- }
1167
- function getInitialExportType(args) {
1168
- if (args.selectedResourceIds?.length) {
1169
- return EXPORT_TYPES.SELECTED;
1170
- }
1171
- if (args.filters?.total && areFiltersApplied(args.filters)) {
1172
- return EXPORT_TYPES.FILTERED;
1173
- }
1174
- return EXPORT_TYPES.ALL;
1175
- }
1176
- function removeEmptyGroups(groups) {
1177
- return _filterInstanceProperty__default["default"](groups).call(groups, group => group.fields && group.fields.length > 0);
1178
- }
1179
-
1180
1238
  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; }
1181
1239
  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; }
1182
1240
  const updateFieldGroupsWithIsCheckedValue = (groups, cachedSelectedGroups) => {
@@ -1401,6 +1459,13 @@ function groupFieldValidationErrors(errors, intl) {
1401
1459
  });
1402
1460
  }
1403
1461
 
1462
+ function isExportApiSuccessResponse(response) {
1463
+ return 'id' in response && 'state' in response && 'resourceType' in response && 'resourceCount' in response;
1464
+ }
1465
+ function isExportApiErrorResponse(error) {
1466
+ 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);
1467
+ }
1468
+
1404
1469
  const useInitialValues = props => {
1405
1470
  var _context;
1406
1471
  const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
@@ -1433,6 +1498,7 @@ const useInitialValues = props => {
1433
1498
  fileName: `${resourceTypeToFileName(props.resourceType, userLocale)}`,
1434
1499
  locales: [locale],
1435
1500
  groups: updateFieldGroupWithAdditionalFieldExtensions(groups),
1501
+ queryPredicate: '',
1436
1502
  // Preferences
1437
1503
  fillRows: false,
1438
1504
  importedCsvTemplateFile: null
@@ -1444,37 +1510,30 @@ const _excluded$3 = ["projectKey"];
1444
1510
  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; }
1445
1511
  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; }
1446
1512
  async function makeExportRequest(params, asyncDispatchFn) {
1447
- try {
1448
- const projectKey = params.projectKey,
1449
- requestData = _objectWithoutProperties(params, _excluded$3);
1450
- const uri = `/${projectKey}/export-operations`;
1451
- const requestAction = sdk.actions.post({
1452
- mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.EXPORT,
1453
- uri,
1454
- headers: {
1455
- accept: 'application/json'
1456
- },
1457
- payload: requestData
1458
- });
1459
- const response = await asyncDispatchFn(requestAction);
1460
- if (!response || typeof response !== 'object') {
1461
- throw new InvalidResponseError();
1462
- }
1463
- if (!('state' in response)) {
1464
- throw new InvalidResponseError('Response missing state field');
1465
- }
1466
- return response;
1467
- } catch (responseError) {
1468
- if (responseError && typeof responseError === 'object' && 'body' in responseError && responseError.body && typeof responseError.body === 'object' && 'validationErrors' in responseError.body) {
1469
- throw responseError.body;
1470
- }
1471
- throw responseError;
1513
+ const projectKey = params.projectKey,
1514
+ requestData = _objectWithoutProperties(params, _excluded$3);
1515
+ const uri = `/${projectKey}/export-operations`;
1516
+ const requestAction = sdk.actions.post({
1517
+ mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.EXPORT,
1518
+ uri,
1519
+ headers: {
1520
+ accept: 'application/json'
1521
+ },
1522
+ payload: requestData
1523
+ });
1524
+ const response = await asyncDispatchFn(requestAction);
1525
+ if (!response || typeof response !== 'object') {
1526
+ throw new InvalidResponseError();
1472
1527
  }
1528
+ if (!('state' in response)) {
1529
+ throw new InvalidResponseError('Response missing state field');
1530
+ }
1531
+ return response;
1473
1532
  }
1474
1533
  function createExportOperation(params, asyncDispatchFn) {
1475
1534
  return makeExportRequest(params, asyncDispatchFn);
1476
1535
  }
1477
- function validateImportedHeaders(params, asyncDispatchFn) {
1536
+ function validateExportOperation(params, asyncDispatchFn) {
1478
1537
  return makeExportRequest(_objectSpread$c(_objectSpread$c({}, params), {}, {
1479
1538
  dryRun: true
1480
1539
  }), asyncDispatchFn);
@@ -1489,25 +1548,6 @@ const useStartExportOperation = props => {
1489
1548
  projectKey: applicationContext.project?.key
1490
1549
  })),
1491
1550
  projectKey = _useApplicationContex.projectKey;
1492
- const extractFieldNamesFromGroups = groups => {
1493
- let checkedFields = [];
1494
- const getCheckedFields = fields => {
1495
- return _filterInstanceProperty__default["default"](fields).call(fields, field => {
1496
- if (field.fields) {
1497
- return getCheckedFields(field.fields);
1498
- }
1499
- if (field.isChecked) checkedFields.push(field);
1500
- return field.isChecked ?? false;
1501
- });
1502
- };
1503
- _forEachInstanceProperty__default["default"](groups).call(groups, group => {
1504
- getCheckedFields(group.fields);
1505
- });
1506
- return sortFieldsByFieldOrder({
1507
- fieldNames: extractFieldNamesAndAdditionalFieldExtensions(checkedFields),
1508
- fieldOrder: props.fieldOrder
1509
- });
1510
- };
1511
1551
  const startExportOperation = async (values, exportType, fieldSelectionMode, localeOption, importedHeaders) => {
1512
1552
  try {
1513
1553
  if (!projectKey) throw new Error('Project key is missing');
@@ -1515,7 +1555,7 @@ const useStartExportOperation = props => {
1515
1555
  if (fieldSelectionMode === 'imported-csv-template' && values.importedCsvTemplateFile) {
1516
1556
  fields = importedHeaders;
1517
1557
  } else {
1518
- fields = extractFieldNamesFromGroups(values.groups);
1558
+ fields = extractFieldNamesFromGroups(values.groups, props.fieldOrder);
1519
1559
  }
1520
1560
  let where = undefined;
1521
1561
  let filters = undefined;
@@ -1528,6 +1568,9 @@ const useStartExportOperation = props => {
1528
1568
  } else if (isSearchFilter(props.filters.filters)) {
1529
1569
  filters = props.filters.filters;
1530
1570
  }
1571
+ } else if (exportType === EXPORT_TYPES.QUERY_PREDICATE) {
1572
+ var _context;
1573
+ where = _trimInstanceProperty__default["default"](_context = values.queryPredicate).call(_context);
1531
1574
  }
1532
1575
  let locales = undefined;
1533
1576
  if (localeOption !== 'onlyLocalesFoundInCsvFile') {
@@ -1544,29 +1587,32 @@ const useStartExportOperation = props => {
1544
1587
  where,
1545
1588
  filters
1546
1589
  }, asyncDispatch);
1547
- switch (response.state) {
1548
- case EXPORT_OPERATION_STATES.QUEUED:
1549
- case EXPORT_OPERATION_STATES.PROCESSING:
1550
- case EXPORT_OPERATION_STATES.COMPLETED:
1551
- showNotification({
1552
- kind: 'info',
1553
- domain: constants.DOMAINS.SIDE,
1554
- // @ts-ignore
1555
- text: intl.formatMessage(messages.exportOperationSuccessMessage, {
1556
- newline: getNewLine,
1557
- logsLink: msg => getExportLogsLink(projectKey, msg),
1558
- b: getBold
1559
- })
1560
- }, {
1561
- dismissAfter: 5000
1562
- });
1563
- if (typeof props.onExportSuccess === 'function') props.onExportSuccess();
1564
- break;
1565
- default:
1566
- throw new UnexpectedExportOperationStateError(response.state);
1590
+ if (isExportApiSuccessResponse(response)) {
1591
+ switch (response.state) {
1592
+ case EXPORT_OPERATION_STATES.QUEUED:
1593
+ case EXPORT_OPERATION_STATES.PROCESSING:
1594
+ case EXPORT_OPERATION_STATES.COMPLETED:
1595
+ showNotification({
1596
+ kind: 'info',
1597
+ domain: constants.DOMAINS.SIDE,
1598
+ // @ts-ignore
1599
+ text: intl.formatMessage(messages.exportOperationSuccessMessage, {
1600
+ newline: getNewLine,
1601
+ logsLink: msg => getExportLogsLink(projectKey, msg),
1602
+ b: getBold
1603
+ })
1604
+ }, {
1605
+ dismissAfter: 5000
1606
+ });
1607
+ if (typeof props.onExportSuccess === 'function') props.onExportSuccess();
1608
+ break;
1609
+ default:
1610
+ throw new UnexpectedExportOperationStateError(response.state);
1611
+ }
1612
+ } else {
1613
+ throw new Error(response.message || 'Unknown error occurred during export operation');
1567
1614
  }
1568
1615
  } catch (error) {
1569
- // TODO: custom error messages for each error type
1570
1616
  showNotification({
1571
1617
  text: intl.formatMessage(messages.unexpectedError),
1572
1618
  kind: 'error',
@@ -1682,7 +1728,7 @@ const useConvertFieldDefinitionsForExport = () => {
1682
1728
  };
1683
1729
  };
1684
1730
 
1685
- const useValidateImportedHeaders = () => {
1731
+ const useValidateExportOperation = () => {
1686
1732
  const intl = reactIntl.useIntl();
1687
1733
  const asyncDispatch = sdk.useAsyncDispatch();
1688
1734
  const showNotification = actionsGlobal.useShowNotification();
@@ -1690,9 +1736,9 @@ const useValidateImportedHeaders = () => {
1690
1736
  projectKey: context.project?.key
1691
1737
  })),
1692
1738
  projectKey = _useApplicationContex.projectKey;
1693
- const validateHeaders = async params => {
1739
+ const validateExport = async params => {
1694
1740
  try {
1695
- var _context;
1741
+ var _context, _context2, _context3;
1696
1742
  if (!projectKey) return;
1697
1743
  const invalidFields = _filterInstanceProperty__default["default"](_context = params.fields).call(_context, field => !isFieldNameValid(field));
1698
1744
  if (invalidFields.length > 0) {
@@ -1704,25 +1750,46 @@ const useValidateImportedHeaders = () => {
1704
1750
  }))
1705
1751
  };
1706
1752
  }
1707
- await validateImportedHeaders({
1753
+ const response = await validateExportOperation({
1708
1754
  projectKey,
1709
1755
  resourceType: params.resourceType,
1710
1756
  fileName: params.fileName,
1711
1757
  fileFormat: params.outputFormat,
1712
1758
  fields: params.fields,
1713
- locales: params.locales
1759
+ locales: params.locales,
1760
+ where: ((_context2 = params.queryPredicate) == null ? void 0 : _bindInstanceProperty__default["default"](_context3 = Function.call).call(_context3, _trimInstanceProperty__default["default"](_context2), _context2))?.() || undefined
1714
1761
  }, asyncDispatch);
1715
- return {
1716
- success: true,
1717
- validationErrors: []
1718
- };
1719
- } catch (error) {
1720
- if (typeof error === 'object' && error && 'validationErrors' in error && _Array$isArray__default["default"](error.validationErrors)) {
1762
+ if (isExportApiSuccessResponse(response) && response.resourceCount === 0) {
1721
1763
  return {
1722
1764
  success: false,
1723
- validationErrors: error.validationErrors
1765
+ noResourcesToExportForQueryPredicate: true
1724
1766
  };
1725
1767
  }
1768
+ return {
1769
+ success: true
1770
+ };
1771
+ } catch (error) {
1772
+ if (isExportApiErrorResponse(error)) {
1773
+ if (error.body.errors?.length) {
1774
+ var _context4;
1775
+ const whereError = _findInstanceProperty__default["default"](_context4 = error.body.errors).call(_context4, error => {
1776
+ var _context5;
1777
+ return error.message && _includesInstanceProperty__default["default"](_context5 = error.message).call(_context5, 'Malformed parameter: where');
1778
+ });
1779
+ if (whereError) {
1780
+ return {
1781
+ success: false,
1782
+ invalidQueryPredicate: true
1783
+ };
1784
+ }
1785
+ }
1786
+ if (error.body.validationErrors?.length) {
1787
+ return {
1788
+ success: false,
1789
+ validationErrors: error.body.validationErrors
1790
+ };
1791
+ }
1792
+ }
1726
1793
  showNotification({
1727
1794
  text: intl.formatMessage(messages.unexpectedError),
1728
1795
  kind: 'error',
@@ -1735,7 +1802,7 @@ const useValidateImportedHeaders = () => {
1735
1802
  }
1736
1803
  };
1737
1804
  return {
1738
- validateHeaders
1805
+ validateExport
1739
1806
  };
1740
1807
  };
1741
1808
 
@@ -1783,6 +1850,7 @@ function ownKeys$9(e, r) { var t = _Object$keys__default["default"](e); if (_Obj
1783
1850
  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; }
1784
1851
  function ExportScopeSection() {
1785
1852
  const _useExportResourcesMo = useExportResourcesModalContext(),
1853
+ formik = _useExportResourcesMo.formik,
1786
1854
  exportType = _useExportResourcesMo.exportType,
1787
1855
  totalResourcesCount = _useExportResourcesMo.totalResourcesCount,
1788
1856
  filters = _useExportResourcesMo.filters,
@@ -1790,10 +1858,11 @@ function ExportScopeSection() {
1790
1858
  selectedResourceIds = _useExportResourcesMo.selectedResourceIds,
1791
1859
  setExportType = _useExportResourcesMo.setExportType,
1792
1860
  resourceType = _useExportResourcesMo.resourceType,
1793
- hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption;
1794
- return jsxRuntime.jsx(uiKit.Spacings.Stack, {
1795
- scale: "m",
1796
- children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
1861
+ hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption,
1862
+ showQueryPredicateOption = _useExportResourcesMo.showQueryPredicateOption;
1863
+ const shouldShowQueryPredicateField = exportType === EXPORT_TYPES.QUERY_PREDICATE;
1864
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1865
+ children: [jsxRuntime.jsxs(uiKit.RadioInput.Group, {
1797
1866
  value: exportType,
1798
1867
  onChange: e => {
1799
1868
  setExportType(e.target.value);
@@ -1833,8 +1902,23 @@ function ExportScopeSection() {
1833
1902
  }
1834
1903
  }) : messages.exportScopeSelectedWithoutCount
1835
1904
  })
1905
+ }), showQueryPredicateOption && jsxRuntime.jsx(uiKit.RadioInput.Option, {
1906
+ value: EXPORT_TYPES.QUERY_PREDICATE,
1907
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
1908
+ intlMessage: messages.queryPredicate
1909
+ })
1836
1910
  })]
1837
- })
1911
+ }), shouldShowQueryPredicateField && jsxRuntime.jsx(uiKit.TextField, {
1912
+ name: "queryPredicate",
1913
+ "data-testid": "query-predicate-field",
1914
+ title: "",
1915
+ onChange: formik.handleChange,
1916
+ onBlur: formik.handleBlur,
1917
+ value: _valuesInstanceProperty__default["default"](formik).queryPredicate,
1918
+ touched: formik.touched.queryPredicate,
1919
+ errors: mapFormikErrors(formik.errors.queryPredicate),
1920
+ renderError: renderQueryPredicateError
1921
+ })]
1838
1922
  });
1839
1923
  }
1840
1924
 
@@ -2711,47 +2795,66 @@ const ExportResourcesProvider = _ref => {
2711
2795
  setValidationErrors = _React$useState12[1];
2712
2796
  const _useStartExportOperat = useStartExportOperation(props),
2713
2797
  startExportOperation = _useStartExportOperat.startExportOperation;
2714
- const _useValidateImportedH = useValidateImportedHeaders(),
2715
- validateHeaders = _useValidateImportedH.validateHeaders;
2716
- const onSubmit = async values => {
2717
- if (currentStep === Step.FileSettings) {
2718
- setCurrentStep(Step.FieldsSelection);
2719
- } else if (currentStep === Step.FieldsSelection) {
2720
- if (fieldSelectionMode !== 'imported-csv-template') {
2721
- setCurrentStep(Step.ConfirmExport);
2722
- return;
2723
- }
2724
- const isUsingImportedCsvLocales = localeOption === 'onlyLocalesFoundInCsvFile';
2725
- const validationResult = await validateHeaders({
2726
- fileName: values.fileName,
2727
- outputFormat: values.outputFormat,
2728
- resourceType: props.resourceType,
2729
- fields: importedHeaders,
2730
- locales: isUsingImportedCsvLocales ? undefined : values.locales
2731
- });
2732
- if (validationResult?.success) {
2733
- setCurrentStep(Step.ConfirmExport);
2734
- } else {
2735
- setValidationErrors(validationResult?.validationErrors);
2736
- setCurrentStep(Step.ValidationErrors);
2737
- }
2738
- } else {
2739
- startExportOperation(values, exportType, fieldSelectionMode, localeOption, importedHeaders);
2740
- }
2741
- };
2798
+ const _useValidateExportOpe = useValidateExportOperation(),
2799
+ validateExport = _useValidateExportOpe.validateExport;
2742
2800
  const formik$1 = formik.useFormik({
2743
2801
  initialValues,
2744
2802
  validate: values => validate({
2745
2803
  values,
2746
2804
  step: currentStep,
2747
2805
  fieldSelectionMode,
2748
- importedHeaders
2806
+ importedHeaders,
2807
+ exportType
2749
2808
  }),
2750
- 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?.noResourcesToExportForQueryPredicate) {
2825
+ formik$1.setFieldError('queryPredicate', 'noResourcesToExportForQueryPredicate');
2826
+ return;
2827
+ }
2828
+ }
2829
+ setCurrentStep(Step.FieldsSelection);
2830
+ } else if (currentStep === Step.FieldsSelection) {
2831
+ if (fieldSelectionMode !== 'imported-csv-template') {
2832
+ setCurrentStep(Step.ConfirmExport);
2833
+ return;
2834
+ }
2835
+ const isUsingImportedCsvLocales = localeOption === 'onlyLocalesFoundInCsvFile';
2836
+ const validationResult = await validateExport({
2837
+ fileName: values.fileName,
2838
+ outputFormat: values.outputFormat,
2839
+ resourceType: props.resourceType,
2840
+ fields: importedHeaders,
2841
+ locales: isUsingImportedCsvLocales ? undefined : values.locales,
2842
+ queryPredicate: values.queryPredicate
2843
+ });
2844
+ if (validationResult?.success) {
2845
+ setCurrentStep(Step.ConfirmExport);
2846
+ } else {
2847
+ setValidationErrors(validationResult?.validationErrors);
2848
+ setCurrentStep(Step.ValidationErrors);
2849
+ }
2850
+ } else {
2851
+ startExportOperation(values, exportType, fieldSelectionMode, localeOption, importedHeaders);
2852
+ }
2853
+ }
2751
2854
  });
2752
2855
  React__default["default"].useEffect(() => {
2753
2856
  formik$1.validateForm();
2754
- }, [currentStep, fieldSelectionMode, importedHeaders]);
2857
+ }, [currentStep, fieldSelectionMode, importedHeaders, exportType]);
2755
2858
  return jsxRuntime.jsx(ExportResourcesContext.Provider, {
2756
2859
  value: {
2757
2860
  formik: formik$1,
@@ -2763,6 +2866,7 @@ const ExportResourcesProvider = _ref => {
2763
2866
  totalResourcesCount: props.totalResourcesCount,
2764
2867
  selectedResourceIds: props.selectedResourceIds,
2765
2868
  hideExportSelectedResourcesOption: props.hideExportSelectedResourcesOption,
2869
+ showQueryPredicateOption: props.showQueryPredicateOption,
2766
2870
  filters: props.filters,
2767
2871
  hasFilters: areFiltersApplied(props.filters),
2768
2872
  setExportType,
@@ -3114,11 +3218,11 @@ function getDefaultDropWrapperStyles(_dropAreaState) {
3114
3218
  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 */");
3115
3219
  }
3116
3220
 
3117
- var ActiveDragDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./active-drag-drop-area-ab3d5305.cjs.dev.js' /* webpackChunkName: "active-drag-drop-area" */); }));
3221
+ var ActiveDragDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./active-drag-drop-area-364cae94.cjs.dev.js' /* webpackChunkName: "active-drag-drop-area" */); }));
3118
3222
 
3119
- var EnabledDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./enabled-drop-area-76b49e4a.cjs.dev.js' /* webpackChunkName: "enabled-drop-area" */); }));
3223
+ var EnabledDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./enabled-drop-area-d120c17d.cjs.dev.js' /* webpackChunkName: "enabled-drop-area" */); }));
3120
3224
 
3121
- var FileDropped = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./file-dropped-area-44d101c3.cjs.dev.js' /* webpackChunkName: "filed-dropped-area" */); }));
3225
+ var FileDropped = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./file-dropped-area-e45600e0.cjs.dev.js' /* webpackChunkName: "filed-dropped-area" */); }));
3122
3226
 
3123
3227
  function getDropArea(_ref) {
3124
3228
  let dropAreaState = _ref.dropAreaState,