@commercetools-frontend-extensions/export-resources-modal 3.7.0 → 4.0.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 (40) hide show
  1. package/README.md +166 -138
  2. package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.d.ts +3 -0
  3. package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.dev.js +417 -412
  4. package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.prod.js +410 -402
  5. package/dist/commercetools-frontend-extensions-export-resources-modal.esm.js +410 -405
  6. package/dist/de-a34c5dd4.cjs.dev.js +6 -0
  7. package/dist/de-cd6c45d3.esm.js +4 -0
  8. package/dist/de-d954fe3d.cjs.prod.js +6 -0
  9. package/dist/declarations/src/@constants/delimiters.d.ts +4 -0
  10. package/dist/declarations/src/@constants/export-operation-states.d.ts +5 -0
  11. package/dist/declarations/src/@constants/export-types.d.ts +5 -0
  12. package/dist/declarations/src/@constants/exportable-resources.d.ts +5 -0
  13. package/dist/declarations/src/@constants/index.d.ts +7 -0
  14. package/dist/declarations/src/@constants/misc.d.ts +1 -0
  15. package/dist/declarations/src/@constants/output-formats.d.ts +8 -0
  16. package/dist/declarations/src/@constants/urls.d.ts +3 -0
  17. package/dist/declarations/src/@types/export-resources-modal-shape.d.ts +27 -0
  18. package/dist/declarations/src/@types/formik.d.ts +11 -0
  19. package/dist/declarations/src/@types/index.d.ts +2 -0
  20. package/dist/declarations/src/export-resources-modal.d.ts +13 -0
  21. package/dist/declarations/src/index.d.ts +3 -0
  22. package/dist/en-3a9aa2d4.esm.js +4 -0
  23. package/dist/en-6b3694f6.cjs.dev.js +6 -0
  24. package/dist/en-c7757448.cjs.prod.js +6 -0
  25. package/dist/es-042343bd.cjs.prod.js +6 -0
  26. package/dist/es-8b3ecab1.cjs.dev.js +6 -0
  27. package/dist/es-e544023d.esm.js +4 -0
  28. package/dist/fr-FR-9d9081ee.esm.js +4 -0
  29. package/dist/fr-FR-e7126fcc.cjs.dev.js +6 -0
  30. package/dist/fr-FR-fce1ca96.cjs.prod.js +6 -0
  31. package/dist/ja-37632763.cjs.prod.js +6 -0
  32. package/dist/ja-73c088a7.esm.js +4 -0
  33. package/dist/ja-9bd5f452.cjs.dev.js +6 -0
  34. package/dist/pt-BR-b37d730b.esm.js +4 -0
  35. package/dist/pt-BR-ea6b3251.cjs.dev.js +6 -0
  36. package/dist/pt-BR-ec2a1a11.cjs.prod.js +6 -0
  37. package/dist/zh-CN-4780d88e.esm.js +4 -0
  38. package/dist/zh-CN-52baa549.cjs.prod.js +6 -0
  39. package/dist/zh-CN-d4bc6d26.cjs.dev.js +6 -0
  40. package/package.json +30 -19
@@ -11,14 +11,13 @@ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-
11
11
  var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
12
12
  var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
13
13
  var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
14
- var React = require('react');
14
+ var reactIntl = require('react-intl');
15
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
15
16
  var uiKit = require('@commercetools-frontend/ui-kit');
16
17
  var jsxRuntime = require('@emotion/react/jsx-runtime');
17
18
  require('@commercetools-uikit/design-system');
18
- var reactIntl = require('react-intl');
19
19
  var _valuesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/values');
20
20
  var applicationComponents = require('@commercetools-frontend/application-components');
21
- var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
22
21
  var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
23
22
  var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
24
23
  var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
@@ -26,31 +25,33 @@ var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
26
25
  var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
27
26
  var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
28
27
  var _wrapNativeSuper = require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
29
- var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
30
- var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
28
+ var React = require('react');
31
29
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
32
30
  var moment = require('moment');
31
+ var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
33
32
  var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
34
33
  var omitEmpty = require('omit-empty-es');
34
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
35
35
  var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
36
- var _flatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/flat');
37
- var _flatMapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/flat-map');
38
36
  var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
39
37
  var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
40
- var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
41
- var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
38
+ var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
42
39
  var sdk = require('@commercetools-frontend/sdk');
43
40
  var actionsGlobal = require('@commercetools-frontend/actions-global');
44
41
  var constants = require('@commercetools-frontend/constants');
45
42
  var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
46
43
  var _styled = require('@emotion/styled/base');
47
44
  var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
48
- var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
45
+ var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
49
46
  var _trimInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/trim');
47
+ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
50
48
  var throttle = require('lodash/throttle');
51
49
  var react = require('@emotion/react');
52
- var PropTypes = require('prop-types');
50
+ var get = require('lodash/get');
51
+ require('prop-types');
53
52
  var formik = require('formik');
53
+ var sentry = require('@commercetools-frontend/sentry');
54
+ var i18n = require('@commercetools-frontend/i18n');
54
55
 
55
56
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
56
57
 
@@ -62,27 +63,26 @@ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachIns
62
63
  var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
63
64
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
64
65
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
65
- var React__default = /*#__PURE__*/_interopDefault(React);
66
66
  var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
67
67
  var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
68
- var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
68
+ var React__default = /*#__PURE__*/_interopDefault(React);
69
69
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
70
70
  var moment__default = /*#__PURE__*/_interopDefault(moment);
71
+ var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
71
72
  var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
72
73
  var omitEmpty__default = /*#__PURE__*/_interopDefault(omitEmpty);
74
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
73
75
  var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
74
- var _flatInstanceProperty__default = /*#__PURE__*/_interopDefault(_flatInstanceProperty);
75
- var _flatMapInstanceProperty__default = /*#__PURE__*/_interopDefault(_flatMapInstanceProperty);
76
76
  var _Set__default = /*#__PURE__*/_interopDefault(_Set);
77
77
  var _sortInstanceProperty__default = /*#__PURE__*/_interopDefault(_sortInstanceProperty);
78
- var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
79
- var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
78
+ var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfInstanceProperty);
80
79
  var _styled__default = /*#__PURE__*/_interopDefault(_styled);
81
80
  var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
82
- var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
81
+ var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
83
82
  var _trimInstanceProperty__default = /*#__PURE__*/_interopDefault(_trimInstanceProperty);
83
+ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
84
84
  var throttle__default = /*#__PURE__*/_interopDefault(throttle);
85
- var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
85
+ var get__default = /*#__PURE__*/_interopDefault(get);
86
86
 
87
87
  function getBold(msg) {
88
88
  return jsxRuntime.jsx(uiKit.Text.Body, {
@@ -216,21 +216,6 @@ var messages = reactIntl.defineMessages({
216
216
  description: 'Label for "Field definitions" link',
217
217
  defaultMessage: 'Field definitions'
218
218
  },
219
- allGeneralFields: {
220
- id: 'ExportResourcesModal.allGeneralFields',
221
- description: 'Label for "All general fields" checkbox',
222
- defaultMessage: 'All general fields'
223
- },
224
- allCustomFields: {
225
- id: 'ExportResourcesModal.allCustomFields',
226
- description: 'Label for "All custom fields" checkbox',
227
- defaultMessage: 'All custom fields'
228
- },
229
- customTypeKeyAndTypeId: {
230
- id: 'ExportResourcesModal.customTypeKeyAndTypeId',
231
- description: 'Label for "Custom type key and typeId" checkbox',
232
- defaultMessage: 'Custom type key and typeId'
233
- },
234
219
  unexpectedError: {
235
220
  id: 'ExportResourcesModal.unexpectedError',
236
221
  description: 'Generic notification message when starting export process fails',
@@ -263,14 +248,14 @@ var messages = reactIntl.defineMessages({
263
248
  }
264
249
  });
265
250
 
266
- 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; }
267
- function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
251
+ function ownKeys$4(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; }
252
+ function _objectSpread$4(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$4(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$4(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
268
253
  function renderFileNameError(key) {
269
254
  switch (key) {
270
255
  case 'missing':
271
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.missingFileNameError));
256
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.missingFileNameError));
272
257
  case 'invalidInput':
273
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.invalidFileNameError));
258
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.invalidFileNameError));
274
259
  default:
275
260
  return null;
276
261
  }
@@ -278,7 +263,7 @@ function renderFileNameError(key) {
278
263
  function renderLocaleError(key) {
279
264
  switch (key) {
280
265
  case 'missing':
281
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.missingLocaleError));
266
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.missingLocaleError));
282
267
  default:
283
268
  return null;
284
269
  }
@@ -373,7 +358,7 @@ let UnexpectedResourceTypeError = /*#__PURE__*/function (_Error) {
373
358
  function UnexpectedResourceTypeError(resourceType) {
374
359
  var _this;
375
360
  _classCallCheck(this, UnexpectedResourceTypeError);
376
- _this = _super.call(this, "Unexpected resource type: ".concat(resourceType));
361
+ _this = _super.call(this, "Unexpected resource type \"".concat(resourceType, "\""));
377
362
  _this.name = 'UnexpectedResourceTypeError';
378
363
  return _this;
379
364
  }
@@ -403,41 +388,50 @@ function useExportResourcesContext() {
403
388
  return context;
404
389
  }
405
390
 
391
+ function checkAtLeastOneFieldChecked$1(fields) {
392
+ return _someInstanceProperty__default["default"](fields).call(fields, field => {
393
+ if (field.fields) {
394
+ return field.isChecked || checkAtLeastOneFieldChecked$1(field.fields);
395
+ }
396
+ return field.isChecked;
397
+ });
398
+ }
406
399
  function validate(_ref) {
407
400
  let values = _valuesInstanceProperty__default["default"](_ref),
408
401
  step = _ref.step;
409
402
  const fileName = values.fileName,
410
403
  locales = values.locales,
411
- fields = values.fields,
412
- customFields = values.customFields;
404
+ groups = values.groups;
413
405
  const errors = {
414
406
  fileName: {},
415
407
  locales: {},
416
408
  fields: {}
417
409
  };
418
410
  if (uiKit.TextInput.isEmpty(fileName)) {
411
+ // @ts-ignore
419
412
  errors.fileName.missing = true;
420
413
  } else if (!/^[a-zA-Z0-9-_.]+$/.test(fileName)) {
414
+ // @ts-ignore
421
415
  errors.fileName.invalidInput = true;
422
416
  }
423
417
  if (locales.length < 1) {
418
+ // @ts-ignore
424
419
  errors.locales.missing = true;
425
420
  }
426
421
  if (step === 2) {
427
- const checkedGeneralFieldsCount = _filterInstanceProperty__default["default"](fields).call(fields, field => field.isChecked).length;
428
- const checkedCustomFieldsCount = _reduceInstanceProperty__default["default"](customFields).call(customFields, (count, customType) => {
429
- var _context;
430
- return count + _filterInstanceProperty__default["default"](_context = customType.fields).call(_context, field => field.isChecked).length;
431
- }, 0);
432
- if (checkedGeneralFieldsCount + checkedCustomFieldsCount < 2) {
422
+ const allFields = _reduceInstanceProperty__default["default"](groups).call(groups, (acc, group) => _concatInstanceProperty__default["default"](acc).call(acc, group.fields), []);
423
+ const checkedFieldsCount = _filterInstanceProperty__default["default"](allFields).call(allFields, field => {
424
+ if (field.fields) return checkAtLeastOneFieldChecked$1(field.fields);
425
+ return !field.isRequired && !field.isReadOnly && field.isChecked;
426
+ }).length;
427
+ if (checkedFieldsCount < 1) {
428
+ // @ts-ignore
433
429
  errors.fields.missing = true;
434
430
  }
435
431
  }
436
432
  return omitEmpty__default["default"](errors);
437
433
  }
438
434
 
439
- function ownKeys$4(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; }
440
- function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var _context8, _context9; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context8 = ownKeys$4(Object(t), !0)).call(_context8, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context9 = ownKeys$4(Object(t))).call(_context9, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
441
435
  function resourceTypeToDisplayName(_ref) {
442
436
  let resourceType = _ref.resourceType,
443
437
  _ref$isUpperCase = _ref.isUpperCase,
@@ -456,7 +450,7 @@ function resourceTypeToDisplayName(_ref) {
456
450
  displayName = isPlural ? 'Discount codes' : 'Discount code';
457
451
  break;
458
452
  default:
459
- throw UnexpectedResourceTypeError(resourceType);
453
+ throw new UnexpectedResourceTypeError(resourceType);
460
454
  }
461
455
  return isUpperCase ? displayName : displayName.toLowerCase();
462
456
  }
@@ -475,84 +469,36 @@ function appendCsvOrJsonExtensionIfAbsent(fileName, fileFormat) {
475
469
  if (!extensionRegex.test(fileName)) return _concatInstanceProperty__default["default"](_context = "".concat(fileName, ".")).call(_context, fileFormat);
476
470
  return fileName;
477
471
  }
478
- function flattenNestedFields(fields) {
479
- const result = (fields === null || fields === void 0 ? void 0 : _mapInstanceProperty__default["default"](fields).call(fields, field => {
480
- if (isFilledArray(field.fields)) {
481
- var _context2;
482
- return _mapInstanceProperty__default["default"](_context2 = flattenNestedFields(field.fields)).call(_context2, nestedField => {
483
- var _context3;
484
- return _objectSpread$4(_objectSpread$4({}, nestedField), {}, {
485
- name: _concatInstanceProperty__default["default"](_context3 = "".concat(field.name, ".")).call(_context3, nestedField.name)
486
- });
487
- });
488
- }
489
- return field;
490
- })) || [];
491
- return _flatInstanceProperty__default["default"](result).call(result);
492
- }
493
- function getSelectedGeneralFields(fields) {
494
- return _filterInstanceProperty__default["default"](fields).call(fields, field => field.isChecked);
495
- }
496
- function getSelectedCustomFields(customFields) {
497
- return _mapInstanceProperty__default["default"](customFields).call(customFields, customType => {
498
- var _context4;
499
- return _objectSpread$4(_objectSpread$4({}, customType), {}, {
500
- fields: _filterInstanceProperty__default["default"](_context4 = customType.fields).call(_context4, field => field.isChecked)
501
- });
502
- });
503
- }
504
- function checkRequiredFields(fields) {
505
- return _mapInstanceProperty__default["default"](fields).call(fields, field => field.isRequired ? _objectSpread$4(_objectSpread$4({}, field), {}, {
506
- isChecked: true
507
- }) : field);
508
- }
509
472
  function getExportLogsLink(projectKey, msg) {
510
473
  return jsxRuntime.jsx(uiKit.Link, {
511
474
  to: "/".concat(projectKey, "/operations/export/logs"),
512
475
  children: msg
513
476
  });
514
477
  }
515
- function setInitialCheckedStateForCustomFields(customFields) {
516
- return _mapInstanceProperty__default["default"](customFields).call(customFields, customType => {
517
- var _context5;
518
- return _objectSpread$4(_objectSpread$4({}, customType), {}, {
519
- fields: _mapInstanceProperty__default["default"](_context5 = customType.fields).call(_context5, field => _objectSpread$4(_objectSpread$4({}, field), {}, {
520
- isChecked: false
521
- }))
522
- });
523
- });
524
- }
525
- function extractGeneralFieldNames(generalFields) {
526
- return _mapInstanceProperty__default["default"](generalFields).call(generalFields, field => field.name);
527
- }
528
- function extractCustomFieldNamesWithPrefix(customFields) {
529
- const fields = _flatMapInstanceProperty__default["default"](customFields).call(customFields, customType => {
530
- var _context6;
531
- return _flatMapInstanceProperty__default["default"](_context6 = customType.fields).call(_context6, field => {
532
- return getCustomFieldNameWithPrefix(field, customType.type.resourceTypeIds);
533
- });
534
- });
535
- return [...new _Set__default["default"](fields)];
536
- }
537
- function getCustomFieldNameWithPrefix(field, resourceTypeIds) {
538
- const prefixes = _mapInstanceProperty__default["default"](resourceTypeIds).call(resourceTypeIds, type => {
539
- switch (type) {
540
- case 'asset':
541
- return 'assets.custom.fields.';
542
- default:
543
- return 'custom.fields.';
478
+ const extractFieldNamesAndAdditionalFieldExtensions = fields => {
479
+ const result = _reduceInstanceProperty__default["default"](fields).call(fields, (acc, field) => {
480
+ if (field.additionalFieldExtensions) {
481
+ return [...acc, ...field.additionalFieldExtensions, field.name];
544
482
  }
545
- });
546
- return _mapInstanceProperty__default["default"](prefixes).call(prefixes, prefix => {
547
- var _context7;
548
- return _concatInstanceProperty__default["default"](_context7 = "".concat(prefix)).call(_context7, field.name);
549
- });
550
- }
483
+ return [...acc, field.name];
484
+ }, []);
485
+ return [...new _Set__default["default"](result)];
486
+ };
487
+ function sortFieldsByFieldOrder(_ref2) {
488
+ let fields = _ref2.fields,
489
+ fieldOrder = _ref2.fieldOrder;
490
+ if (isFilledArray(fieldOrder)) {
491
+ return _sortInstanceProperty__default["default"](fields).call(fields, (a, b) => {
492
+ 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]);
493
+ 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]);
551
494
 
552
- // Sorts an array of custom field names placing those starting with 'assets.custom.fields.' first
553
- // This function doesn't affect the order of other custom fields
554
- function sortCustomFields(fields) {
555
- return _sortInstanceProperty__default["default"](fields).call(fields, (a, b) => _startsWithInstanceProperty__default["default"](b).call(b, 'assets.custom.fields.') - _startsWithInstanceProperty__default["default"](a).call(a, 'assets.custom.fields.'));
495
+ // If a field is not 'custom',then consider it as '*'
496
+ orderA = orderA === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderA;
497
+ orderB = orderB === -1 ? _indexOfInstanceProperty__default["default"](fieldOrder).call(fieldOrder, '*') : orderB;
498
+ return orderA - orderB;
499
+ });
500
+ }
501
+ return fields;
556
502
  }
557
503
 
558
504
  // TODO: remove this function when filters are passed directly from parent views
@@ -565,71 +511,69 @@ function tmpBuildFilters(selectedResourceIds) {
565
511
  return ["id in (".concat(formattedIds, ")")];
566
512
  }
567
513
 
568
- const parentKeyExtension = ['parent.key', 'parent.typeId'];
569
- const customFieldsExtension = ['custom.type.key', 'custom.type.typeId'];
570
- const assetsCustomFieldsExtension = ['assets.custom.type.key', 'assets.custom.type.typeId'];
571
- const assetsExtension = ['assets.key', 'assets.name', 'assets.sources.key', 'assets.sources.uri', 'assets.sources.contentType', 'assets.sources.dimensions.w', 'assets.sources.dimensions.h', 'assets.description', 'assets.tags'];
572
- const categoryFieldExtension = fields => {
573
- return _reduceInstanceProperty__default["default"](fields).call(fields, (acc, field) => {
574
- if (field === 'parent.key') {
575
- return [...acc, ...parentKeyExtension];
576
- }
577
- if (_startsWithInstanceProperty__default["default"](field).call(field, 'custom.fields.') && !_includesInstanceProperty__default["default"](acc).call(acc, 'custom.type.key')) {
578
- return [...acc, ...customFieldsExtension, field];
579
- }
580
- if (field === 'assets') {
581
- return [...acc, ...assetsExtension];
582
- }
583
- if (_startsWithInstanceProperty__default["default"](field).call(field, 'assets.custom.fields.') && !_includesInstanceProperty__default["default"](acc).call(acc, 'assets.custom.type.key')) {
584
- return [...acc, ...assetsCustomFieldsExtension, field];
585
- }
586
- return [...acc, field];
587
- }, []);
588
- };
589
- const defaultFieldExtension = fields => fields;
590
- const fieldExtensionByResourceType = {
591
- default: defaultFieldExtension,
592
- category: categoryFieldExtension
514
+ function ownKeys$3(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; }
515
+ function _objectSpread$3(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$3(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$3(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
516
+ const updateFieldGroupsWithIsCheckedValue = groups => {
517
+ const updateFields = (fields, parentChecked) => {
518
+ return _mapInstanceProperty__default["default"](fields).call(fields, field => {
519
+ var _field$isRequired;
520
+ let isChecked = ((_field$isRequired = field.isRequired) !== null && _field$isRequired !== void 0 ? _field$isRequired : !field.isReadOnly && field.isSelectedByDefault) || parentChecked;
521
+ if (field.fields) {
522
+ const updatedFields = updateFields(field.fields, isChecked);
523
+ isChecked = false;
524
+ field.fields = updatedFields;
525
+ }
526
+ return _objectSpread$3(_objectSpread$3({}, field), {}, {
527
+ isChecked
528
+ });
529
+ });
530
+ };
531
+ return _mapInstanceProperty__default["default"](groups).call(groups, group => {
532
+ const updatedFields = updateFields(group.fields, false);
533
+ return _objectSpread$3(_objectSpread$3({}, group), {}, {
534
+ fields: updatedFields
535
+ });
536
+ });
593
537
  };
594
-
595
- const extendFields = _ref => {
596
- let resourceType = _ref.resourceType,
597
- fields = _ref.fields;
598
- const extensionFunction = fieldExtensionByResourceType[resourceType] || fieldExtensionByResourceType.default;
599
- return extensionFunction(fields);
538
+ const updateFieldGroupWithAdditionalFieldExtensions = groups => {
539
+ function updateAdditionalFieldExtensions(fields, additionalFieldExtensions) {
540
+ return _mapInstanceProperty__default["default"](fields).call(fields, field => {
541
+ const updatedAdditionalFieldExtensions = [...additionalFieldExtensions, ...(field.additionalFieldExtensions || [])];
542
+ if (field.fields) {
543
+ field.fields = updateAdditionalFieldExtensions(field.fields, updatedAdditionalFieldExtensions);
544
+ }
545
+ return _objectSpread$3(_objectSpread$3({}, field), {}, {
546
+ additionalFieldExtensions: updatedAdditionalFieldExtensions
547
+ });
548
+ });
549
+ }
550
+ return _mapInstanceProperty__default["default"](groups).call(groups, group => {
551
+ return _objectSpread$3(_objectSpread$3({}, group), {}, {
552
+ fields: updateAdditionalFieldExtensions(group.fields, group.additionalFieldExtensions || [])
553
+ });
554
+ });
600
555
  };
601
556
 
602
- const _excluded = ["isSelectedByDefault"];
603
- function ownKeys$3(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; }
604
- function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$3(Object(t), !0)).call(_context3, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$3(Object(t))).call(_context4, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
605
557
  const useInitialValues = props => {
606
- var _context;
607
558
  const todayFormatted = moment__default["default"]().format('DD-MM-YY_HH-mm');
608
559
  const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
609
560
  locale: applicationContext.dataLocale
610
561
  })),
611
562
  locale = _useApplicationContex.locale;
612
- const fields = _mapInstanceProperty__default["default"](_context = flattenNestedFields(props.fields)).call(_context, _ref => {
613
- let isSelectedByDefault = _ref.isSelectedByDefault,
614
- field = _objectWithoutProperties(_ref, _excluded);
615
- return _objectSpread$3(_objectSpread$3({}, field), {}, {
616
- isChecked: isSelectedByDefault !== null && isSelectedByDefault !== void 0 ? isSelectedByDefault : true
617
- });
618
- });
563
+ const groups = updateFieldGroupsWithIsCheckedValue(props.fieldGroups);
619
564
  return React__default["default"].useMemo(() => {
620
- var _context2;
565
+ var _context;
621
566
  return {
622
567
  outputFormat: props.outputFormat,
623
- fileName: _concatInstanceProperty__default["default"](_context2 = "".concat(resourceTypeToDisplayName({
568
+ fileName: _concatInstanceProperty__default["default"](_context = "".concat(resourceTypeToDisplayName({
624
569
  resourceType: props.resourceType,
625
570
  isUpperCase: true,
626
571
  isPlural: true
627
- }), "_Export_")).call(_context2, todayFormatted),
572
+ }), "_Export_")).call(_context, todayFormatted),
628
573
  locales: [locale],
629
- fields: checkRequiredFields(fields),
630
- customFields: setInitialCheckedStateForCustomFields(props.customFields)
574
+ groups: updateFieldGroupWithAdditionalFieldExtensions(groups)
631
575
  };
632
- }, [props, locale, todayFormatted, fields]);
576
+ }, [props, locale, todayFormatted, groups]);
633
577
  };
634
578
 
635
579
  async function createExportOperation(_ref) {
@@ -644,6 +588,7 @@ async function createExportOperation(_ref) {
644
588
  const uri = "/proxy/export/".concat(projectKey, "/export-operations");
645
589
  const response = await asyncDispatchFn(sdk.actions.post({
646
590
  // FIXME: EXPORT is undefined
591
+ // @ts-ignore
647
592
  mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.EXPORT,
648
593
  uri: uri,
649
594
  headers: {
@@ -674,12 +619,29 @@ const useStartExportOperation = props => {
674
619
  };
675
620
  }),
676
621
  projectKey = _useApplicationContex.projectKey;
622
+ const extractFieldsFromGroups = groups => {
623
+ let selectedGeneralFields = [];
624
+ const getSelectedFields = fields => {
625
+ return _filterInstanceProperty__default["default"](fields).call(fields, field => {
626
+ var _field$isChecked;
627
+ if (field.fields) {
628
+ return getSelectedFields(field.fields);
629
+ }
630
+ if (field.isChecked) selectedGeneralFields.push(field);
631
+ return (_field$isChecked = field.isChecked) !== null && _field$isChecked !== void 0 ? _field$isChecked : false;
632
+ });
633
+ };
634
+ _forEachInstanceProperty__default["default"](groups).call(groups, group => {
635
+ getSelectedFields(group.fields);
636
+ });
637
+ return sortFieldsByFieldOrder({
638
+ fields: extractFieldNamesAndAdditionalFieldExtensions(selectedGeneralFields),
639
+ fieldOrder: props.fieldOrder
640
+ });
641
+ };
677
642
  const startExportOperation = async values => {
678
643
  try {
679
- const selectedGeneralFields = getSelectedGeneralFields(values.fields);
680
- const selectedCustomFields = getSelectedCustomFields(values.customFields);
681
- const generalFields = extractGeneralFieldNames(selectedGeneralFields);
682
- const customFields = sortCustomFields(extractCustomFieldNamesWithPrefix(selectedCustomFields));
644
+ const fields = extractFieldsFromGroups(values.groups);
683
645
  const filters = tmpBuildFilters(props.selectedResourceIds);
684
646
  const response = await createExportOperation({
685
647
  projectKey,
@@ -687,10 +649,7 @@ const useStartExportOperation = props => {
687
649
  fileName: appendCsvOrJsonExtensionIfAbsent(values.fileName, values.outputFormat),
688
650
  fileFormat: values.outputFormat,
689
651
  locales: values.locales,
690
- fields: extendFields({
691
- resourceType: props.resourceType,
692
- fields: [...generalFields, ...customFields]
693
- }),
652
+ fields,
694
653
  filters,
695
654
  asyncDispatchFn: asyncDispatch
696
655
  });
@@ -700,6 +659,7 @@ const useStartExportOperation = props => {
700
659
  showNotification({
701
660
  kind: 'info',
702
661
  domain: constants.DOMAINS.SIDE,
662
+ // @ts-ignore
703
663
  text: intl.formatMessage(messages.exportOperationSuccessMessage, {
704
664
  newline: getNewLine,
705
665
  logsLink: msg => getExportLogsLink(projectKey, msg),
@@ -888,13 +848,154 @@ const NoSearchResults = () => {
888
848
  };
889
849
 
890
850
  function ownKeys$1(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; }
891
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context22, _context23; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context22 = ownKeys$1(Object(t), !0)).call(_context22, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context23 = ownKeys$1(Object(t))).call(_context23, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
851
+ function _objectSpread$1(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$1(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$1(Object(t))).call(_context8, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
892
852
  const StyledGroupCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
893
- target: "e1ocu3bb1"
853
+ target: "e3xiyhb1"
894
854
  } )("border-right:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";background-color:", uiKit.designTokens.colorNeutral98, ";height:100%;border-radius:0;", props => props.showTopBorder && /*#__PURE__*/react.css("border-top:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";" + ("" ), "" ), ";" + ("" ));
895
855
  const StyledFieldsCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
896
- target: "e1ocu3bb0"
856
+ target: "e3xiyhb0"
897
857
  } )("border-radius:0;", props => props.showTopBorder && /*#__PURE__*/react.css("border-top:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";" + ("" ), "" ), ";" + ("" ));
858
+ const FieldSections = _ref => {
859
+ let fields = _ref.fields,
860
+ parentKeys = _ref.parentKeys,
861
+ formik = _ref.formik,
862
+ isAnySiblingChecked = _ref.isAnySiblingChecked;
863
+ return jsxRuntime.jsx(uiKit.Spacings.Stack, {
864
+ scale: "s",
865
+ children: fields === null || fields === void 0 ? void 0 : _mapInstanceProperty__default["default"](fields).call(fields, (field, index) => {
866
+ var _context, _field$fields3;
867
+ const isAtleastOneChildChecked = () => {
868
+ function checkAtLeastOneFieldChecked(fields) {
869
+ return fields === null || fields === void 0 ? void 0 : _someInstanceProperty__default["default"](fields).call(fields, field => {
870
+ if (field.fields) {
871
+ return field.isChecked || checkAtLeastOneFieldChecked(field.fields);
872
+ }
873
+ return field.isChecked;
874
+ });
875
+ }
876
+ return checkAtLeastOneFieldChecked(field.fields);
877
+ };
878
+ const isAnyOfTheChildFieldsChecked = isAtleastOneChildChecked();
879
+ if (field.isHidden) return null;
880
+ return jsxRuntime.jsxs(React__default["default"].Fragment, {
881
+ children: [jsxRuntime.jsxs(uiKit.CheckboxInput, {
882
+ isChecked: field.isReadOnly ? isAnySiblingChecked : isAnyOfTheChildFieldsChecked || field.isChecked,
883
+ isReadOnly: field.isReadOnly || field.isRequired,
884
+ onChange: e => {
885
+ var _context2, _field$fields2;
886
+ const path = _concatInstanceProperty__default["default"](_context2 = "".concat(parentKeys.join('.'), ".fields[")).call(_context2, index, "]");
887
+ // Update all child fields
888
+ const updateAllChildFieldsChecked = (path, checked) => {
889
+ const item = get__default["default"](_valuesInstanceProperty__default["default"](formik), path);
890
+ if (item && item.fields) {
891
+ var _context3;
892
+ _forEachInstanceProperty__default["default"](_context3 = item.fields).call(_context3, (field, i) => {
893
+ var _context4, _field$fields;
894
+ const fieldPath = _concatInstanceProperty__default["default"](_context4 = "".concat(path, ".fields[")).call(_context4, i, "]");
895
+ if (!((_field$fields = field.fields) !== null && _field$fields !== void 0 && _field$fields.length)) {
896
+ formik.setFieldValue("".concat(fieldPath, ".isChecked"), checked,
897
+ // pass `false` to avoid revalidating the form with intermediate values
898
+ false);
899
+ }
900
+ updateAllChildFieldsChecked(fieldPath, checked);
901
+ });
902
+ }
903
+ };
904
+ if (!((_field$fields2 = field.fields) !== null && _field$fields2 !== void 0 && _field$fields2.length)) {
905
+ formik.setFieldValue("".concat(path, ".isChecked"), e.target.checked,
906
+ // pass `false` to avoid revalidating the form with intermediate values
907
+ false);
908
+ }
909
+ updateAllChildFieldsChecked(path, e.target.checked);
910
+ },
911
+ children: [field.label, " ", field.isRequired && '*']
912
+ }), field.fields && ((_field$fields3 = field.fields) === null || _field$fields3 === void 0 ? void 0 : _field$fields3.length) > 0 && jsxRuntime.jsxs(uiKit.Spacings.Inline, {
913
+ scale: "l",
914
+ children: [jsxRuntime.jsx("div", {}), jsxRuntime.jsx(FieldSections, {
915
+ fields: field.fields,
916
+ formik: formik,
917
+ parentKeys: [...parentKeys, "fields[".concat(index, "]")],
918
+ isAnySiblingChecked: isAnySiblingChecked
919
+ })]
920
+ })]
921
+ }, _concatInstanceProperty__default["default"](_context = "".concat(field.name, "-")).call(_context, index));
922
+ })
923
+ });
924
+ };
925
+ function checkAllFieldsSelected(fields) {
926
+ return _everyInstanceProperty__default["default"](fields).call(fields, field => {
927
+ if (field.fields) {
928
+ return checkAllFieldsSelected(field.fields);
929
+ }
930
+ return field.isChecked || field.isRequired || field.isReadOnly;
931
+ });
932
+ }
933
+ function checkAtLeastOneFieldChecked(fields) {
934
+ return _someInstanceProperty__default["default"](fields).call(fields, field => {
935
+ if (field.fields) {
936
+ return field.isChecked || checkAtLeastOneFieldChecked(field.fields);
937
+ }
938
+ return field.isChecked;
939
+ });
940
+ }
941
+ const FieldGroupSection = _ref2 => {
942
+ let group = _ref2.group,
943
+ index = _ref2.index,
944
+ formik = _ref2.formik;
945
+ const allAllFieldsSelected = React__default["default"].useMemo(() => checkAllFieldsSelected(group.fields), [group.fields]);
946
+ const isAtleastOneFieldChecked = React__default["default"].useMemo(() => checkAtLeastOneFieldChecked(group.fields), [group.fields]);
947
+ const parentKey = "groups[".concat(index, "]");
948
+ const handleChangeAllFields = e => {
949
+ const item = get__default["default"](_valuesInstanceProperty__default["default"](formik), parentKey);
950
+ function updateAllFields(fields, checked) {
951
+ return _mapInstanceProperty__default["default"](fields).call(fields, field => {
952
+ if (field.fields) {
953
+ return _objectSpread$1(_objectSpread$1({}, field), {}, {
954
+ fields: updateAllFields(field.fields, checked)
955
+ });
956
+ }
957
+ if (field.isReadOnly || field.isRequired) return field;
958
+ return _objectSpread$1(_objectSpread$1({}, field), {}, {
959
+ isChecked: checked
960
+ });
961
+ });
962
+ }
963
+ formik.setFieldValue(parentKey, _objectSpread$1(_objectSpread$1({}, item), {}, {
964
+ fields: updateAllFields(item.fields, e.target.checked)
965
+ }));
966
+ };
967
+ if (group.isHidden) return null;
968
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
969
+ children: [jsxRuntime.jsx(uiKit.Grid.Item, {
970
+ children: jsxRuntime.jsx(StyledGroupCard, {
971
+ type: "flat",
972
+ insetScale: "l",
973
+ showTopBorder: true,
974
+ children: jsxRuntime.jsx(uiKit.CheckboxInput, {
975
+ isIndeterminate: !allAllFieldsSelected && isAtleastOneFieldChecked,
976
+ isChecked: allAllFieldsSelected,
977
+ onChange: handleChangeAllFields,
978
+ children: group.groupLabel
979
+ })
980
+ })
981
+ }), jsxRuntime.jsx(uiKit.Grid.Item, {
982
+ children: jsxRuntime.jsx(StyledFieldsCard, {
983
+ type: "flat",
984
+ insetScale: "l",
985
+ showTopBorder: true,
986
+ children: jsxRuntime.jsx(uiKit.Spacings.Stack, {
987
+ scale: "s",
988
+ children: jsxRuntime.jsx(FieldSections, {
989
+ fields: group.fields,
990
+ formik: formik,
991
+ parentKeys: [parentKey],
992
+ isAnySiblingChecked: isAtleastOneFieldChecked
993
+ })
994
+ })
995
+ })
996
+ })]
997
+ });
998
+ };
898
999
  const ExportFieldsSelectionStep = () => {
899
1000
  const intl = reactIntl.useIntl();
900
1001
  const _React$useState = React__default["default"].useState(''),
@@ -910,47 +1011,44 @@ const ExportFieldsSelectionStep = () => {
910
1011
  resourceType: resourceType,
911
1012
  isPlural: true
912
1013
  });
913
- const areAllGeneralFieldsChecked = React__default["default"].useMemo(() => {
914
- var _context;
915
- return _everyInstanceProperty__default["default"](_context = _valuesInstanceProperty__default["default"](formik).fields).call(_context, field => field.isChecked);
916
- }, [_valuesInstanceProperty__default["default"](formik).fields]);
917
- const isAtLeastOneGeneralFieldChecked = React__default["default"].useMemo(() => {
918
- var _context2;
919
- return _someInstanceProperty__default["default"](_context2 = _valuesInstanceProperty__default["default"](formik).fields).call(_context2, field => field.isChecked);
920
- }, [_valuesInstanceProperty__default["default"](formik).fields]);
921
- const allCustomFields = React__default["default"].useMemo(() => {
922
- var _context3;
923
- return _flatMapInstanceProperty__default["default"](_context3 = _valuesInstanceProperty__default["default"](formik).customFields).call(_context3, customType => customType.fields);
924
- }, [_valuesInstanceProperty__default["default"](formik).customFields]);
925
- const areAllCustomFieldsChecked = React__default["default"].useMemo(() => {
926
- return _everyInstanceProperty__default["default"](allCustomFields).call(allCustomFields, field => field.isChecked);
927
- }, [allCustomFields]);
928
- const isAtLeastOneCustomFieldChecked = React__default["default"].useMemo(() => {
929
- return _someInstanceProperty__default["default"](allCustomFields).call(allCustomFields, field => field.isChecked);
930
- }, [allCustomFields]);
931
- const filteredGeneralFields = React__default["default"].useMemo(() => {
932
- var _context4;
933
- return _filterInstanceProperty__default["default"](_context4 = _valuesInstanceProperty__default["default"](formik).fields).call(_context4, field => {
934
- var _context5;
935
- return _includesInstanceProperty__default["default"](_context5 = field.label.toLowerCase()).call(_context5, _trimInstanceProperty__default["default"](fieldSearchTerm).call(fieldSearchTerm).toLowerCase());
936
- });
937
- }, [_valuesInstanceProperty__default["default"](formik).fields, fieldSearchTerm]);
938
- const filteredCustomFields = React__default["default"].useMemo(() => {
939
- var _context6, _context7;
940
- return _filterInstanceProperty__default["default"](_context6 = _mapInstanceProperty__default["default"](_context7 = _valuesInstanceProperty__default["default"](formik).customFields).call(_context7, customType => {
941
- var _context8, _context9;
942
- return _objectSpread$1(_objectSpread$1({}, customType), {}, {
943
- fields: _includesInstanceProperty__default["default"](_context8 = customType.type.label.toLowerCase()).call(_context8, _trimInstanceProperty__default["default"](fieldSearchTerm).call(fieldSearchTerm).toLowerCase()) ? customType.fields : _filterInstanceProperty__default["default"](_context9 = customType.fields).call(_context9, field => {
944
- var _context10;
945
- return _includesInstanceProperty__default["default"](_context10 = field.label.toLowerCase()).call(_context10, _trimInstanceProperty__default["default"](fieldSearchTerm).call(fieldSearchTerm).toLowerCase());
946
- })
1014
+ React__default["default"].useEffect(() => {
1015
+ formik.validateForm();
1016
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1017
+ }, [_valuesInstanceProperty__default["default"](formik).groups]);
1018
+ // adds `isHidden` property to each field based on search term
1019
+ const filteredGroups = React__default["default"].useMemo(() => {
1020
+ var _fieldSearchTerm$trim, _context6;
1021
+ const updateFields = (fields, parentMatches) => {
1022
+ return _mapInstanceProperty__default["default"](fields).call(fields, field => {
1023
+ var _context5;
1024
+ const matches = _includesInstanceProperty__default["default"](_context5 = field.label.toLowerCase()).call(_context5, fieldSearchTerm.toLowerCase());
1025
+ let isHidden = !matches && !parentMatches;
1026
+ if (field.fields) {
1027
+ const updatedFields = updateFields(field.fields, matches);
1028
+ isHidden = isHidden && _everyInstanceProperty__default["default"](updatedFields).call(updatedFields, f => f.isHidden);
1029
+ field = _objectSpread$1(_objectSpread$1({}, field), {}, {
1030
+ fields: updatedFields
1031
+ });
1032
+ }
1033
+ return _objectSpread$1(_objectSpread$1({}, field), {}, {
1034
+ isHidden
1035
+ });
947
1036
  });
948
- })).call(_context6, customType => customType.fields.length > 0);
949
- }, [_valuesInstanceProperty__default["default"](formik).customFields, fieldSearchTerm]);
1037
+ };
1038
+ if (!(fieldSearchTerm !== null && fieldSearchTerm !== void 0 && (_fieldSearchTerm$trim = _trimInstanceProperty__default["default"](fieldSearchTerm).call(fieldSearchTerm)) !== null && _fieldSearchTerm$trim !== void 0 && _fieldSearchTerm$trim.length)) return _valuesInstanceProperty__default["default"](formik).groups;
1039
+ return _mapInstanceProperty__default["default"](_context6 = _valuesInstanceProperty__default["default"](formik).groups).call(_context6, group => {
1040
+ const updatedFields = updateFields(group.fields, false);
1041
+ const isHidden = _everyInstanceProperty__default["default"](updatedFields).call(updatedFields, field => field.isHidden);
1042
+ return _objectSpread$1(_objectSpread$1({}, group), {}, {
1043
+ fields: updatedFields,
1044
+ isHidden
1045
+ });
1046
+ });
1047
+ }, [_valuesInstanceProperty__default["default"](formik).groups, fieldSearchTerm]);
950
1048
  const onSearchChange = React__default["default"].useCallback(event => {
951
1049
  setFieldSearchTerm(event.target.value);
952
1050
  }, [setFieldSearchTerm]);
953
- const hasResults = filteredGeneralFields.length > 0 || filteredCustomFields.length > 0;
1051
+ const hasResults = Boolean(_findInstanceProperty__default["default"](filteredGroups).call(filteredGroups, group => !group.isHidden));
954
1052
  const onSearchChangeThrottled = React__default["default"].useMemo(() => throttle__default["default"](onSearchChange, 300), [onSearchChange]);
955
1053
  const onSearchReset = () => {
956
1054
  setFieldSearchTerm('');
@@ -986,194 +1084,28 @@ const ExportFieldsSelectionStep = () => {
986
1084
  value: fieldSearchTerm,
987
1085
  onChange: onSearchChangeThrottled,
988
1086
  onReset: onSearchReset
989
- }), !hasResults && jsxRuntime.jsx(NoSearchResults, {}), hasResults && jsxRuntime.jsx(uiKit.Card, {
1087
+ // TODO: `SearchTextInput` props to be improved. The `onSubmit` callback shouldn't be mandatory
1088
+ ,
1089
+ onSubmit: () => {}
1090
+ }), hasResults ? jsxRuntime.jsx(uiKit.Card, {
990
1091
  insetScale: "none",
991
- children: jsxRuntime.jsxs(uiKit.Grid, {
1092
+ children: jsxRuntime.jsx(uiKit.Grid, {
992
1093
  gridAutoFlow: "row",
993
1094
  gridTemplateColumns: "".concat(uiKit.designTokens.constraint5, " auto"),
994
- children: [filteredGeneralFields.length > 0 && jsxRuntime.jsxs(jsxRuntime.Fragment, {
995
- children: [jsxRuntime.jsx(uiKit.Grid.Item, {
996
- children: jsxRuntime.jsx(StyledGroupCard, {
997
- type: "flat",
998
- insetScale: "l",
999
- children: jsxRuntime.jsx(uiKit.CheckboxInput, {
1000
- isIndeterminate: !areAllGeneralFieldsChecked && isAtLeastOneGeneralFieldChecked,
1001
- isChecked: areAllGeneralFieldsChecked,
1002
- onChange: e => {
1003
- var _context11;
1004
- formik.setFieldValue('fields', _mapInstanceProperty__default["default"](_context11 = _valuesInstanceProperty__default["default"](formik).fields).call(_context11, field => _objectSpread$1(_objectSpread$1({}, field), {}, {
1005
- isChecked: field.isRequired ? true : e.target.checked
1006
- })));
1007
- },
1008
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$1({}, messages.allGeneralFields))
1009
- })
1010
- })
1011
- }), jsxRuntime.jsx(uiKit.Grid.Item, {
1012
- children: jsxRuntime.jsx(StyledFieldsCard, {
1013
- type: "flat",
1014
- insetScale: "l",
1015
- children: jsxRuntime.jsx(uiKit.Spacings.Stack, {
1016
- scale: "s",
1017
- children: jsxRuntime.jsx(GeneralFieldsSelection, {
1018
- fields: filteredGeneralFields,
1019
- formik: formik
1020
- })
1021
- })
1022
- })
1023
- })]
1024
- }), filteredCustomFields.length > 0 && jsxRuntime.jsxs(jsxRuntime.Fragment, {
1025
- children: [jsxRuntime.jsx(uiKit.Grid.Item, {
1026
- children: jsxRuntime.jsx(StyledGroupCard, {
1027
- type: "flat",
1028
- insetScale: "l",
1029
- showTopBorder: filteredGeneralFields.length > 0,
1030
- children: jsxRuntime.jsx(uiKit.CheckboxInput, {
1031
- isIndeterminate: !areAllCustomFieldsChecked && isAtLeastOneCustomFieldChecked,
1032
- isChecked: areAllCustomFieldsChecked,
1033
- onChange: e => {
1034
- var _context12;
1035
- formik.setFieldValue('customFields', _mapInstanceProperty__default["default"](_context12 = _valuesInstanceProperty__default["default"](formik).customFields).call(_context12, customType => {
1036
- var _context13;
1037
- return _objectSpread$1(_objectSpread$1({}, customType), {}, {
1038
- fields: _mapInstanceProperty__default["default"](_context13 = customType.fields).call(_context13, field => _objectSpread$1(_objectSpread$1({}, field), {}, {
1039
- isChecked: e.target.checked
1040
- }))
1041
- });
1042
- }));
1043
- },
1044
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$1({}, messages.allCustomFields))
1045
- })
1046
- })
1047
- }), jsxRuntime.jsx(uiKit.Grid.Item, {
1048
- children: jsxRuntime.jsx(StyledFieldsCard, {
1049
- type: "flat",
1050
- insetScale: "l",
1051
- showTopBorder: filteredGeneralFields.length > 0,
1052
- children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1053
- scale: "s",
1054
- children: [jsxRuntime.jsxs(uiKit.CheckboxInput, {
1055
- isReadOnly: true,
1056
- onChange: () => {},
1057
- isChecked: isAtLeastOneCustomFieldChecked,
1058
- children: [jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$1({}, messages.customTypeKeyAndTypeId)), ' ', "*"]
1059
- }), jsxRuntime.jsx(CustomFieldsSelection, {
1060
- customFields: filteredCustomFields,
1061
- formik: formik
1062
- })]
1063
- })
1064
- })
1065
- })]
1066
- })]
1095
+ children: _mapInstanceProperty__default["default"](filteredGroups).call(filteredGroups, (group, index) => jsxRuntime.jsx(FieldGroupSection, {
1096
+ group: group,
1097
+ index: index,
1098
+ formik: formik
1099
+ }, group.groupLabel))
1067
1100
  })
1068
- })]
1101
+ }) : jsxRuntime.jsx(NoSearchResults, {})]
1069
1102
  })
1070
1103
  })
1071
1104
  });
1072
1105
  };
1073
- const GeneralFieldsSelection = _ref => {
1074
- let fields = _ref.fields,
1075
- formik = _ref.formik;
1076
- return _mapInstanceProperty__default["default"](fields).call(fields, field => jsxRuntime.jsxs(uiKit.CheckboxInput, {
1077
- isChecked: field.isChecked,
1078
- isReadOnly: field.isRequired,
1079
- onChange: e => {
1080
- var _context14;
1081
- formik.setFieldValue('fields', _mapInstanceProperty__default["default"](_context14 = _valuesInstanceProperty__default["default"](formik).fields).call(_context14, _field => field.name === _field.name ? _objectSpread$1(_objectSpread$1({}, _field), {}, {
1082
- isChecked: e.target.checked
1083
- }) : _field));
1084
- },
1085
- children: [field.label, " ", field.isRequired && '*']
1086
- }, field.name));
1087
- };
1088
- const CustomFieldsSelection = _ref2 => {
1089
- let customFields = _ref2.customFields,
1090
- formik = _ref2.formik;
1091
- return _mapInstanceProperty__default["default"](customFields).call(customFields, customType => {
1092
- var _context15, _context16, _context19;
1093
- const areAllFieldsChecked = _everyInstanceProperty__default["default"](_context15 = customType.fields).call(_context15, field => field.isChecked);
1094
- const isAtLeastOneFieldChecked = _someInstanceProperty__default["default"](_context16 = customType.fields).call(_context16, field => field.isChecked);
1095
- return jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1096
- scale: "s",
1097
- children: [jsxRuntime.jsx(uiKit.CheckboxInput, {
1098
- isIndeterminate: !areAllFieldsChecked && isAtLeastOneFieldChecked,
1099
- isChecked: areAllFieldsChecked,
1100
- onChange: e => {
1101
- var _context17;
1102
- formik.setFieldValue('customFields', _mapInstanceProperty__default["default"](_context17 = _valuesInstanceProperty__default["default"](formik).customFields).call(_context17, _customType => {
1103
- var _context18;
1104
- return _customType.type.key === customType.type.key ? _objectSpread$1(_objectSpread$1({}, _customType), {}, {
1105
- fields: _mapInstanceProperty__default["default"](_context18 = _customType.fields).call(_context18, field => _objectSpread$1(_objectSpread$1({}, field), {}, {
1106
- isChecked: e.target.checked
1107
- }))
1108
- }) : _customType;
1109
- }));
1110
- },
1111
- children: jsxRuntime.jsx(uiKit.Text.Body, {
1112
- children: customType.type.label
1113
- })
1114
- }), jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1115
- scale: "l",
1116
- children: [jsxRuntime.jsx("div", {}), jsxRuntime.jsx(uiKit.Spacings.Stack, {
1117
- scale: "s",
1118
- children: _mapInstanceProperty__default["default"](_context19 = customType.fields).call(_context19, field => jsxRuntime.jsx(uiKit.CheckboxInput, {
1119
- isChecked: field.isChecked,
1120
- onChange: e => {
1121
- var _context20;
1122
- formik.setFieldValue('customFields', _mapInstanceProperty__default["default"](_context20 = _valuesInstanceProperty__default["default"](formik).customFields).call(_context20, _customType => {
1123
- var _context21;
1124
- return _customType.type.key === customType.type.key ? _objectSpread$1(_objectSpread$1({}, _customType), {}, {
1125
- fields: _mapInstanceProperty__default["default"](_context21 = _customType.fields).call(_context21, _field => _field.name === field.name ? _objectSpread$1(_objectSpread$1({}, _field), {}, {
1126
- isChecked: e.target.checked
1127
- }) : _field)
1128
- }) : _customType;
1129
- }));
1130
- },
1131
- children: jsxRuntime.jsx(uiKit.Text.Body, {
1132
- children: field.label
1133
- })
1134
- }, field.name))
1135
- })]
1136
- })]
1137
- }, customType.type.key);
1138
- });
1139
- };
1140
1106
 
1141
1107
  const ExportResourcesContext = /*#__PURE__*/React.createContext();
1142
1108
 
1143
- PropTypes__default["default"].shape({
1144
- isOpen: PropTypes__default["default"].bool,
1145
- resourceType: PropTypes__default["default"].string.isRequired,
1146
- outputFormat: PropTypes__default["default"].string,
1147
- onClose: PropTypes__default["default"].func,
1148
- onExportSuccess: PropTypes__default["default"].func,
1149
- totalResourcesCount: PropTypes__default["default"].number.isRequired,
1150
- selectedResourceIds: PropTypes__default["default"].array,
1151
- // TODO: Circular reference
1152
- fields: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
1153
- name: PropTypes__default["default"].string.isRequired,
1154
- label: PropTypes__default["default"].string,
1155
- fields: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
1156
- name: PropTypes__default["default"].string.isRequired,
1157
- label: PropTypes__default["default"].string,
1158
- isSelectedByDefault: PropTypes__default["default"].bool,
1159
- isRequired: PropTypes__default["default"].bool
1160
- }))
1161
- })).isRequired,
1162
- customFields: PropTypes__default["default"].shape({
1163
- type: PropTypes__default["default"].shape({
1164
- key: PropTypes__default["default"].string.isRequired,
1165
- label: PropTypes__default["default"].string.isRequired,
1166
- resourceTypeIds: PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)
1167
- }).isRequired,
1168
- fields: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
1169
- name: PropTypes__default["default"].string.isRequired,
1170
- label: PropTypes__default["default"].string
1171
- })).isRequired
1172
- }),
1173
- exportType: PropTypes__default["default"].string,
1174
- renderProperties: PropTypes__default["default"].func
1175
- }).isRequired;
1176
-
1177
1109
  const ExportResourcesProvider = props => {
1178
1110
  const initialValues = useInitialValues(props);
1179
1111
  const _useStartExportOperat = useStartExportOperation(props),
@@ -1214,8 +1146,6 @@ const ExportResourcesProvider = props => {
1214
1146
  children: props.children
1215
1147
  });
1216
1148
  };
1217
- ExportResourcesProvider.displayName = 'ExportResourcesProvider';
1218
- ExportResourcesProvider.propTypes = {};
1219
1149
 
1220
1150
  const CurrentStep = () => {
1221
1151
  const _useExportResourcesCo = useExportResourcesContext(),
@@ -1227,22 +1157,100 @@ const CurrentStep = () => {
1227
1157
  return steps[currentStep] || null;
1228
1158
  };
1229
1159
 
1160
+ const loadMessages = locale => {
1161
+ const intlLocale = i18n.mapLocaleToIntlLocale(locale);
1162
+ switch (intlLocale) {
1163
+ case 'de':
1164
+ return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-d954fe3d.cjs.prod.js'); });
1165
+ case 'es':
1166
+ return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-042343bd.cjs.prod.js'); });
1167
+ case 'fr-FR':
1168
+ return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-fce1ca96.cjs.prod.js'); });
1169
+ case 'zh-CN':
1170
+ return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-52baa549.cjs.prod.js'); });
1171
+ case 'ja':
1172
+ return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-ja" */'./ja-37632763.cjs.prod.js'); });
1173
+ case 'pt-BR':
1174
+ return Promise.resolve().then(function () { return require( /* webpackChunkName: "change-history-i18n-pt-BR" */'./pt-BR-ec2a1a11.cjs.prod.js'); });
1175
+ default:
1176
+ return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-en" */'./en-c7757448.cjs.prod.js'); });
1177
+ }
1178
+ };
1179
+
1180
+ // eslint-disable-next-line import/prefer-default-export
1181
+ const loadI18n = async locale => {
1182
+ try {
1183
+ const messages = await loadMessages(locale);
1184
+ return messages.default || messages;
1185
+ } catch (error) {
1186
+ // eslint-disable-next-line no-console
1187
+ console.warn("Something went wrong while loading the export-resources-modal messages for ".concat(locale), error);
1188
+ sentry.reportErrorToSentry(new Error("Something went wrong while loading the export-resources-modal messages for ".concat(locale)), {
1189
+ extra: error
1190
+ });
1191
+ return {};
1192
+ }
1193
+ };
1194
+
1195
+ const useAsyncIntlMessages = (locale, loader) => {
1196
+ const _useState = React.useState({
1197
+ isLoading: true,
1198
+ messages: undefined,
1199
+ error: undefined
1200
+ }),
1201
+ _useState2 = _slicedToArray(_useState, 2),
1202
+ state = _useState2[0],
1203
+ setState = _useState2[1];
1204
+ React.useEffect(() => {
1205
+ let _isUnmounting = false;
1206
+ async function load() {
1207
+ try {
1208
+ if (!_isUnmounting) {
1209
+ const messages = await loader(locale);
1210
+ setState({
1211
+ isLoading: false,
1212
+ messages
1213
+ });
1214
+ }
1215
+ } catch (error) {
1216
+ setState({
1217
+ isLoading: false,
1218
+ error
1219
+ });
1220
+ }
1221
+ }
1222
+ if (locale) load();
1223
+ return () => {
1224
+ _isUnmounting = true;
1225
+ };
1226
+ }, [locale, loader]);
1227
+ return state;
1228
+ };
1229
+
1230
1230
  function ownKeys(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; }
1231
1231
  function _objectSpread(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(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(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1232
1232
  const ExportResourcesModal = props => {
1233
- if (!props.isOpen) return null;
1234
- return jsxRuntime.jsx(ExportResourcesProvider, _objectSpread(_objectSpread({}, props), {}, {
1235
- children: jsxRuntime.jsx(CurrentStep, {})
1236
- }));
1233
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(context => ({
1234
+ locale: context.user && context.user.locale
1235
+ })),
1236
+ locale = _useApplicationContex.locale;
1237
+ const messages = useAsyncIntlMessages('en', loadI18n);
1238
+ if (!props.isOpen || messages.isLoading) return null;
1239
+ return jsxRuntime.jsx(reactIntl.IntlProvider, {
1240
+ locale: locale,
1241
+ messages: messages.messages,
1242
+ children: jsxRuntime.jsx(ExportResourcesProvider, _objectSpread(_objectSpread({}, props), {}, {
1243
+ children: jsxRuntime.jsx(CurrentStep, {})
1244
+ }))
1245
+ });
1237
1246
  };
1238
1247
  ExportResourcesModal.displayName = 'ExportResourcesModal';
1239
- ExportResourcesModal.propTypes = {};
1240
1248
  ExportResourcesModal.defaultProps = {
1241
1249
  isOpen: false,
1242
1250
  selectedResourceIds: [],
1243
1251
  exportType: EXPORT_TYPES.ALL,
1244
1252
  outputFormat: OUTPUT_FORMATS.CSV,
1245
- customFields: []
1253
+ fieldGroups: []
1246
1254
  };
1247
1255
 
1248
1256
  exports.EXPORTABLE_RESOURCES = EXPORTABLE_RESOURCES;