@commercetools-frontend-extensions/export-resources-modal 4.0.4 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,9 @@ var applicationShellConnectors = require('@commercetools-frontend/application-sh
16
16
  var uiKit = require('@commercetools-frontend/ui-kit');
17
17
  var jsxRuntime = require('@emotion/react/jsx-runtime');
18
18
  var _valuesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/values');
19
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
19
20
  var applicationComponents = require('@commercetools-frontend/application-components');
21
+ var React = require('react');
20
22
  var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
21
23
  var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
22
24
  var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
@@ -24,8 +26,7 @@ var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
24
26
  var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
25
27
  var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
26
28
  var _wrapNativeSuper = require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
27
- var React = require('react');
28
- var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
29
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
29
30
  var moment = require('moment');
30
31
  var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
31
32
  var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
@@ -35,10 +36,10 @@ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-arr
35
36
  var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
36
37
  var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
37
38
  var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
39
+ var experimentalComponents = require('@commercetools-frontend/experimental-components');
38
40
  var sdk = require('@commercetools-frontend/sdk');
39
41
  var actionsGlobal = require('@commercetools-frontend/actions-global');
40
42
  var constants = require('@commercetools-frontend/constants');
41
- var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
42
43
  var _styled = require('@emotion/styled/base');
43
44
  var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
44
45
  var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
@@ -63,9 +64,9 @@ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_O
63
64
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
64
65
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
65
66
  var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
66
- var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
67
- var React__default = /*#__PURE__*/_interopDefault(React);
68
67
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
68
+ var React__default = /*#__PURE__*/_interopDefault(React);
69
+ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
69
70
  var moment__default = /*#__PURE__*/_interopDefault(moment);
70
71
  var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
71
72
  var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
@@ -244,17 +245,37 @@ var messages = reactIntl.defineMessages({
244
245
  id: 'ExportResourcesModal.searchByEnteringTheExactFieldName',
245
246
  description: 'In Export fields selection - Search by entering the exact field name message',
246
247
  defaultMessage: 'Try searching by entering the exact field name.'
248
+ },
249
+ exportScope: {
250
+ id: 'ExportResourcesModal.exportScope',
251
+ description: 'Label for Export Scope',
252
+ defaultMessage: 'Scope'
253
+ },
254
+ exportScopeAll: {
255
+ id: 'ExportResourcesModal.exportScopeAll',
256
+ description: 'Label for Export All',
257
+ defaultMessage: 'Export all: {total} categories'
258
+ },
259
+ exportScopeSelected: {
260
+ id: 'ExportResourcesModal.exportScopeSelected',
261
+ description: 'Label for Export Selected',
262
+ defaultMessage: 'Export selected{total, select, 0 {} other {: {total} categories}}'
263
+ },
264
+ exportSettings: {
265
+ id: 'ExportResourcesModal.exportSettings',
266
+ description: 'Label for Export Settings',
267
+ defaultMessage: 'Settings'
247
268
  }
248
269
  });
249
270
 
250
- 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; }
251
- 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; }
271
+ 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; }
272
+ 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; }
252
273
  function renderFileNameError(key) {
253
274
  switch (key) {
254
275
  case 'missing':
255
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.missingFileNameError));
276
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.missingFileNameError));
256
277
  case 'invalidInput':
257
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.invalidFileNameError));
278
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.invalidFileNameError));
258
279
  default:
259
280
  return null;
260
281
  }
@@ -262,63 +283,12 @@ function renderFileNameError(key) {
262
283
  function renderLocaleError(key) {
263
284
  switch (key) {
264
285
  case 'missing':
265
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.missingLocaleError));
286
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.missingLocaleError));
266
287
  default:
267
288
  return null;
268
289
  }
269
290
  }
270
291
 
271
- const Z_INDEX_DROPDOWN = 30000;
272
-
273
- const EXPORT_OPERATION_STATES = {
274
- PROCESSING: 'processing',
275
- COMPLETED: 'completed',
276
- FAILED: 'failed'
277
- };
278
-
279
- const EXPORT_TYPES = {
280
- ALL: 'all',
281
- FILTERED: 'filtered',
282
- SELECTED: 'selected'
283
- };
284
-
285
- const EXPORTABLE_RESOURCES = {
286
- CATEGORY: 'category',
287
- PRODUCT: 'product',
288
- DISCOUNT_CODE: 'discountCode'
289
- };
290
-
291
- const OUTPUT_FORMATS = {
292
- JSON: 'json',
293
- CSV: 'csv'
294
- };
295
- const OUTPUT_FORMAT_OPTIONS = [{
296
- value: OUTPUT_FORMATS.CSV,
297
- label: 'CSV'
298
- }, {
299
- value: OUTPUT_FORMATS.JSON,
300
- label: 'JSON'
301
- }];
302
-
303
- const FIELD_DEFINITIONS_URLS = {
304
- category: 'https://docs.commercetools.com/merchant-center/import-categories#supported-headers-and-values'
305
- };
306
-
307
- function _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct__default["default"](Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
308
- function _isNativeReflectConstruct$4() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$4 = function () { return !!t; })(); }
309
- let UnexpectedExportTypeError = /*#__PURE__*/function (_Error) {
310
- _inherits(UnexpectedExportTypeError, _Error);
311
- var _super = _createSuper$4(UnexpectedExportTypeError);
312
- function UnexpectedExportTypeError(exportType) {
313
- var _this;
314
- _classCallCheck(this, UnexpectedExportTypeError);
315
- _this = _super.call(this, "Unexpected export type: ".concat(exportType));
316
- _this.name = 'UnexpectedExportTypeError';
317
- return _this;
318
- }
319
- return _createClass(UnexpectedExportTypeError);
320
- }( /*#__PURE__*/_wrapNativeSuper(Error));
321
-
322
292
  function _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct__default["default"](Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
323
293
  function _isNativeReflectConstruct$3() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$3 = function () { return !!t; })(); }
324
294
  let MissingExportResourceProviderError = /*#__PURE__*/function (_Error) {
@@ -431,6 +401,43 @@ function validate(_ref) {
431
401
  return omitEmpty__default["default"](errors);
432
402
  }
433
403
 
404
+ const Z_INDEX_DROPDOWN = 30000;
405
+ const OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION = 'OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION';
406
+
407
+ const EXPORT_OPERATION_STATES = {
408
+ PROCESSING: 'processing',
409
+ COMPLETED: 'completed',
410
+ FAILED: 'failed'
411
+ };
412
+
413
+ const EXPORT_TYPES = {
414
+ ALL: 'all',
415
+ FILTERED: 'filtered',
416
+ SELECTED: 'selected'
417
+ };
418
+
419
+ const EXPORTABLE_RESOURCES = {
420
+ CATEGORY: 'category',
421
+ PRODUCT: 'product',
422
+ DISCOUNT_CODE: 'discountCode'
423
+ };
424
+
425
+ const OUTPUT_FORMATS = {
426
+ JSON: 'json',
427
+ CSV: 'csv'
428
+ };
429
+ const OUTPUT_FORMAT_OPTIONS = [{
430
+ value: OUTPUT_FORMATS.CSV,
431
+ label: 'CSV'
432
+ }, {
433
+ value: OUTPUT_FORMATS.JSON,
434
+ label: 'JSON'
435
+ }];
436
+
437
+ const FIELD_DEFINITIONS_URLS = {
438
+ category: 'https://docs.commercetools.com/merchant-center/import-categories#supported-headers-and-values'
439
+ };
440
+
434
441
  function resourceTypeToDisplayName(_ref) {
435
442
  let resourceType = _ref.resourceType,
436
443
  _ref$isUpperCase = _ref.isUpperCase,
@@ -510,26 +517,39 @@ function tmpBuildFilters(selectedResourceIds) {
510
517
  return ["id in (".concat(formattedIds, ")")];
511
518
  }
512
519
 
513
- 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; }
514
- 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; }
515
- const updateFieldGroupsWithIsCheckedValue = groups => {
516
- const updateFields = (fields, parentChecked) => {
520
+ 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; }
521
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$4(Object(t), !0)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$4(Object(t))).call(_context5, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
522
+ const updateFieldGroupsWithIsCheckedValue = (groups, cachedSelectedGroups) => {
523
+ const updateFields = (fields, parentChecked, fieldName) => {
517
524
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
518
- var _field$isRequired;
519
- let isChecked = ((_field$isRequired = field.isRequired) !== null && _field$isRequired !== void 0 ? _field$isRequired : !field.isReadOnly && field.isSelectedByDefault) || parentChecked;
525
+ let isChecked = false;
526
+ if (field.isRequired) {
527
+ isChecked = true;
528
+ } else {
529
+ var _context;
530
+ if (cachedSelectedGroups[_concatInstanceProperty__default["default"](_context = "".concat(fieldName, ".")).call(_context, field.name)] !== undefined) {
531
+ var _context2;
532
+ isChecked = cachedSelectedGroups[_concatInstanceProperty__default["default"](_context2 = "".concat(fieldName, ".")).call(_context2, field.name)];
533
+ } else if (!field.isReadOnly && field.isSelectedByDefault) {
534
+ isChecked = true;
535
+ } else if (parentChecked) {
536
+ isChecked = true;
537
+ }
538
+ }
520
539
  if (field.fields) {
521
- const updatedFields = updateFields(field.fields, isChecked);
540
+ var _context3;
541
+ const updatedFields = updateFields(field.fields, isChecked, _concatInstanceProperty__default["default"](_context3 = "".concat(fieldName, ".")).call(_context3, field.name));
522
542
  isChecked = false;
523
543
  field.fields = updatedFields;
524
544
  }
525
- return _objectSpread$3(_objectSpread$3({}, field), {}, {
545
+ return _objectSpread$4(_objectSpread$4({}, field), {}, {
526
546
  isChecked
527
547
  });
528
548
  });
529
549
  };
530
550
  return _mapInstanceProperty__default["default"](groups).call(groups, group => {
531
- const updatedFields = updateFields(group.fields, false);
532
- return _objectSpread$3(_objectSpread$3({}, group), {}, {
551
+ const updatedFields = updateFields(group.fields, false, group.groupLabel);
552
+ return _objectSpread$4(_objectSpread$4({}, group), {}, {
533
553
  fields: updatedFields
534
554
  });
535
555
  });
@@ -541,38 +561,49 @@ const updateFieldGroupWithAdditionalFieldExtensions = groups => {
541
561
  if (field.fields) {
542
562
  field.fields = updateAdditionalFieldExtensions(field.fields, updatedAdditionalFieldExtensions);
543
563
  }
544
- return _objectSpread$3(_objectSpread$3({}, field), {}, {
564
+ return _objectSpread$4(_objectSpread$4({}, field), {}, {
545
565
  additionalFieldExtensions: updatedAdditionalFieldExtensions
546
566
  });
547
567
  });
548
568
  }
549
569
  return _mapInstanceProperty__default["default"](groups).call(groups, group => {
550
- return _objectSpread$3(_objectSpread$3({}, group), {}, {
570
+ return _objectSpread$4(_objectSpread$4({}, group), {}, {
551
571
  fields: updateAdditionalFieldExtensions(group.fields, group.additionalFieldExtensions || [])
552
572
  });
553
573
  });
554
574
  };
555
575
 
556
576
  const useInitialValues = props => {
577
+ var _context;
557
578
  const todayFormatted = moment__default["default"]().format('DD-MM-YY_HH-mm');
558
579
  const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
559
580
  locale: applicationContext.dataLocale
560
581
  })),
561
582
  locale = _useApplicationContex.locale;
562
- const groups = updateFieldGroupsWithIsCheckedValue(props.fieldGroups);
583
+ const _useApplicationContex2 = applicationShellConnectors.useApplicationContext(context => {
584
+ var _context$project;
585
+ return {
586
+ projectKey: (_context$project = context.project) === null || _context$project === void 0 ? void 0 : _context$project.key
587
+ };
588
+ }),
589
+ projectKey = _useApplicationContex2.projectKey;
590
+ const _useStorage = experimentalComponents.useStorage(_concatInstanceProperty__default["default"](_context = "".concat(projectKey, "/")).call(_context, OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION), {}),
591
+ _useStorage2 = _slicedToArray(_useStorage, 1),
592
+ cachedSelectedGroups = _useStorage2[0];
563
593
  return React__default["default"].useMemo(() => {
564
- var _context;
594
+ var _context2;
595
+ const groups = updateFieldGroupsWithIsCheckedValue(props.fieldGroups, cachedSelectedGroups[props.resourceType] || {});
565
596
  return {
566
597
  outputFormat: props.outputFormat,
567
- fileName: _concatInstanceProperty__default["default"](_context = "".concat(resourceTypeToDisplayName({
598
+ fileName: _concatInstanceProperty__default["default"](_context2 = "".concat(resourceTypeToDisplayName({
568
599
  resourceType: props.resourceType,
569
600
  isUpperCase: true,
570
601
  isPlural: true
571
- }), "_Export_")).call(_context, todayFormatted),
602
+ }), "_Export_")).call(_context2, todayFormatted),
572
603
  locales: [locale],
573
604
  groups: updateFieldGroupWithAdditionalFieldExtensions(groups)
574
605
  };
575
- }, [props, locale, todayFormatted, groups]);
606
+ }, [props.fieldGroups, props.outputFormat, props.resourceType, cachedSelectedGroups, todayFormatted, locale]);
576
607
  };
577
608
 
578
609
  async function createExportOperation(_ref) {
@@ -686,46 +717,53 @@ const useStartExportOperation = props => {
686
717
  };
687
718
  };
688
719
 
689
- function ownKeys$2(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; }
690
- function _objectSpread$2(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$2(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$2(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
691
- function ExportTextMessage() {
692
- const intl = reactIntl.useIntl();
720
+ 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; }
721
+ 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; }
722
+ function ExportScopeSection() {
723
+ var _originalSelectedReso;
693
724
  const _useExportResourcesCo = useExportResourcesContext(),
694
- resourceType = _useExportResourcesCo.resourceType,
725
+ exportType = _useExportResourcesCo.exportType,
695
726
  totalResourcesCount = _useExportResourcesCo.totalResourcesCount,
696
- selectedResourceIds = _useExportResourcesCo.selectedResourceIds,
697
- exportType = _useExportResourcesCo.exportType;
698
- const resourceTypePlural = resourceTypeToDisplayName({
699
- resourceType: resourceType,
700
- isPlural: true
701
- });
702
- let message;
703
- let count;
704
- switch (exportType) {
705
- case EXPORT_TYPES.ALL:
706
- message = messages.exportAllMessage;
707
- count = totalResourcesCount;
708
- break;
709
- case EXPORT_TYPES.SELECTED:
710
- message = messages.exportSelectedMessage;
711
- count = selectedResourceIds.length;
712
- break;
713
- default:
714
- throw new UnexpectedExportTypeError(exportType);
715
- }
716
- return jsxRuntime.jsx(uiKit.Text.Body, {
717
- "data-testid": "export-description",
718
- intlMessage: _objectSpread$2(_objectSpread$2({}, message), {}, {
719
- values: {
720
- count: intl.formatNumber(count),
721
- resourceType: resourceTypePlural,
722
- b: getBold
723
- }
727
+ originalSelectedResourceIds = _useExportResourcesCo.originalSelectedResourceIds,
728
+ onScopeChange = _useExportResourcesCo.onScopeChange;
729
+ return jsxRuntime.jsx(uiKit.Spacings.Stack, {
730
+ scale: "m",
731
+ children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
732
+ value: exportType,
733
+ onChange: e => {
734
+ onScopeChange(e.target.value);
735
+ },
736
+ direction: "stack",
737
+ directionProps: {
738
+ scale: 's'
739
+ },
740
+ children: [jsxRuntime.jsx(uiKit.RadioInput.Option, {
741
+ value: EXPORT_TYPES.ALL,
742
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
743
+ intlMessage: _objectSpread$3(_objectSpread$3({}, messages.exportScopeAll), {}, {
744
+ values: {
745
+ total: new Intl.NumberFormat().format(totalResourcesCount)
746
+ }
747
+ })
748
+ })
749
+ }), jsxRuntime.jsx(uiKit.RadioInput.Option, {
750
+ value: EXPORT_TYPES.SELECTED,
751
+ isDisabled: !(originalSelectedResourceIds !== null && originalSelectedResourceIds !== void 0 && originalSelectedResourceIds.length),
752
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
753
+ tone: !(originalSelectedResourceIds !== null && originalSelectedResourceIds !== void 0 && originalSelectedResourceIds.length) ? 'tertiary' : undefined,
754
+ intlMessage: _objectSpread$3(_objectSpread$3({}, messages.exportScopeSelected), {}, {
755
+ values: {
756
+ total: new Intl.NumberFormat().format((_originalSelectedReso = originalSelectedResourceIds === null || originalSelectedResourceIds === void 0 ? void 0 : originalSelectedResourceIds.length) !== null && _originalSelectedReso !== void 0 ? _originalSelectedReso : 0)
757
+ }
758
+ })
759
+ })
760
+ })]
724
761
  })
725
762
  });
726
763
  }
727
764
 
728
765
  const ExportFileSettingsStep = () => {
766
+ var _context;
729
767
  const intl = reactIntl.useIntl();
730
768
  const _useExportResourcesCo = useExportResourcesContext(),
731
769
  formik = _useExportResourcesCo.formik,
@@ -758,57 +796,67 @@ const ExportFileSettingsStep = () => {
758
796
  size: 16,
759
797
  children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
760
798
  scale: "xxxl",
761
- children: [jsxRuntime.jsxs(uiKit.Spacings.Stack, {
799
+ children: [jsxRuntime.jsx(uiKit.Spacings.Stack, {
762
800
  scale: "l",
763
- children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
764
- alignItems: "center",
765
- children: [jsxRuntime.jsx(uiKit.ExportIcon, {
766
- size: "medium",
767
- color: "neutral60"
768
- }), jsxRuntime.jsx(ExportTextMessage, {})]
769
- }), jsxRuntime.jsxs(uiKit.Spacings.Stack, {
770
- scale: "m",
771
- children: [jsxRuntime.jsx(uiKit.SelectField, {
772
- name: "outputFormat",
773
- onChange: formik.handleChange,
774
- onBlur: formik.handleBlur,
775
- value: _valuesInstanceProperty__default["default"](formik).outputFormat,
776
- title: intl.formatMessage(messages.outputFormat),
777
- options: OUTPUT_FORMAT_OPTIONS
778
- }), jsxRuntime.jsx(uiKit.TextField, {
779
- name: "fileName",
780
- onChange: formik.handleChange,
781
- onBlur: formik.handleBlur,
782
- value: _valuesInstanceProperty__default["default"](formik).fileName,
783
- title: intl.formatMessage(messages.fileName),
784
- touched: formik.touched.fileName,
785
- errors: formik.errors.fileName,
786
- renderError: renderFileNameError
787
- }), jsxRuntime.jsxs(uiKit.Spacings.Stack, {
788
- scale: "xs",
789
- children: [jsxRuntime.jsx(uiKit.SelectField, {
790
- id: "locales",
791
- name: "locales",
792
- value: _valuesInstanceProperty__default["default"](formik).locales,
793
- title: intl.formatMessage(messages.locale),
794
- options: mapLocalesToOptions(locales),
795
- isMulti: true,
796
- onChange: formik.handleChange,
797
- onBlur: formik.handleBlur,
798
- touched: formik.touched.locales,
799
- errors: formik.errors.locales,
800
- renderError: renderLocaleError,
801
- menuPortalTarget: document.body,
802
- menuPortalZIndex: Z_INDEX_DROPDOWN
803
- }), jsxRuntime.jsx(uiKit.CheckboxInput, {
804
- isChecked: areAllLocalesChecked,
805
- onChange: e => {
806
- if (e.target.checked) formik.setFieldValue('locales', locales);else formik.setFieldValue('locales', [locale]);
807
- },
808
- children: intl.formatMessage(messages.selectAllLocales)
809
- })]
801
+ children: jsxRuntime.jsxs(uiKit.Grid, {
802
+ gridRowGap: uiKit.designTokens.spacingL,
803
+ gridTemplateColumns: _concatInstanceProperty__default["default"](_context = "calc(".concat(uiKit.designTokens.constraint3, " + ")).call(_context, uiKit.designTokens.spacingL, ") auto"),
804
+ children: [jsxRuntime.jsx(uiKit.Grid.Item, {
805
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
806
+ intlMessage: messages.exportScope
807
+ })
808
+ }), jsxRuntime.jsx(uiKit.Grid.Item, {
809
+ children: jsxRuntime.jsx(ExportScopeSection, {})
810
+ }), jsxRuntime.jsx(uiKit.Grid.Item, {
811
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
812
+ intlMessage: messages.exportSettings
813
+ })
814
+ }), jsxRuntime.jsx(uiKit.Grid.Item, {
815
+ children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
816
+ scale: "m",
817
+ children: [jsxRuntime.jsx(uiKit.SelectField, {
818
+ name: "outputFormat",
819
+ onChange: formik.handleChange,
820
+ onBlur: formik.handleBlur,
821
+ value: _valuesInstanceProperty__default["default"](formik).outputFormat,
822
+ title: intl.formatMessage(messages.outputFormat),
823
+ options: OUTPUT_FORMAT_OPTIONS
824
+ }), jsxRuntime.jsx(uiKit.TextField, {
825
+ name: "fileName",
826
+ onChange: formik.handleChange,
827
+ onBlur: formik.handleBlur,
828
+ value: _valuesInstanceProperty__default["default"](formik).fileName,
829
+ title: intl.formatMessage(messages.fileName),
830
+ touched: formik.touched.fileName,
831
+ errors: formik.errors.fileName,
832
+ renderError: renderFileNameError
833
+ }), jsxRuntime.jsxs(uiKit.Spacings.Stack, {
834
+ scale: "xs",
835
+ children: [jsxRuntime.jsx(uiKit.SelectField, {
836
+ id: "locales",
837
+ name: "locales",
838
+ value: _valuesInstanceProperty__default["default"](formik).locales,
839
+ title: intl.formatMessage(messages.locale),
840
+ options: mapLocalesToOptions(locales),
841
+ isMulti: true,
842
+ onChange: formik.handleChange,
843
+ onBlur: formik.handleBlur,
844
+ touched: formik.touched.locales,
845
+ errors: formik.errors.locales,
846
+ renderError: renderLocaleError,
847
+ menuPortalTarget: document.body,
848
+ menuPortalZIndex: Z_INDEX_DROPDOWN
849
+ }), jsxRuntime.jsx(uiKit.CheckboxInput, {
850
+ isChecked: areAllLocalesChecked,
851
+ onChange: e => {
852
+ if (e.target.checked) formik.setFieldValue('locales', locales);else formik.setFieldValue('locales', [locale]);
853
+ },
854
+ children: intl.formatMessage(messages.selectAllLocales)
855
+ })]
856
+ })]
857
+ })
810
858
  })]
811
- })]
859
+ })
812
860
  }), jsxRuntime.jsx("div", {})]
813
861
  })
814
862
  });
@@ -844,8 +892,8 @@ const NoSearchResults = () => {
844
892
  });
845
893
  };
846
894
 
847
- 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; }
848
- 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; }
895
+ function ownKeys$2(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; }
896
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context11, _context12; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context11 = ownKeys$2(Object(t), !0)).call(_context11, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context12 = ownKeys$2(Object(t))).call(_context12, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
849
897
  const StyledGridCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
850
898
  target: "e3xiyhb2"
851
899
  } )({
@@ -953,17 +1001,17 @@ const FieldGroupSection = _ref2 => {
953
1001
  function updateAllFields(fields, checked) {
954
1002
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
955
1003
  if (field.fields) {
956
- return _objectSpread$1(_objectSpread$1({}, field), {}, {
1004
+ return _objectSpread$2(_objectSpread$2({}, field), {}, {
957
1005
  fields: updateAllFields(field.fields, checked)
958
1006
  });
959
1007
  }
960
1008
  if (field.isReadOnly || field.isRequired) return field;
961
- return _objectSpread$1(_objectSpread$1({}, field), {}, {
1009
+ return _objectSpread$2(_objectSpread$2({}, field), {}, {
962
1010
  isChecked: checked
963
1011
  });
964
1012
  });
965
1013
  }
966
- formik.setFieldValue(parentKey, _objectSpread$1(_objectSpread$1({}, item), {}, {
1014
+ formik.setFieldValue(parentKey, _objectSpread$2(_objectSpread$2({}, item), {}, {
967
1015
  fields: updateAllFields(item.fields, e.target.checked)
968
1016
  }));
969
1017
  };
@@ -1000,11 +1048,23 @@ const FieldGroupSection = _ref2 => {
1000
1048
  });
1001
1049
  };
1002
1050
  const ExportFieldsSelectionStep = () => {
1051
+ var _context5;
1003
1052
  const intl = reactIntl.useIntl();
1004
1053
  const _React$useState = React__default["default"].useState(''),
1005
1054
  _React$useState2 = _slicedToArray(_React$useState, 2),
1006
1055
  fieldSearchTerm = _React$useState2[0],
1007
1056
  setFieldSearchTerm = _React$useState2[1];
1057
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(context => {
1058
+ var _context$project;
1059
+ return {
1060
+ projectKey: (_context$project = context.project) === null || _context$project === void 0 ? void 0 : _context$project.key
1061
+ };
1062
+ }),
1063
+ projectKey = _useApplicationContex.projectKey;
1064
+ const _useStorage = experimentalComponents.useStorage(_concatInstanceProperty__default["default"](_context5 = "".concat(projectKey, "/")).call(_context5, OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION), {}),
1065
+ _useStorage2 = _slicedToArray(_useStorage, 2);
1066
+ _useStorage2[0];
1067
+ const setCachedSelectedGroups = _useStorage2[1];
1008
1068
  const _useExportResourcesCo = useExportResourcesContext(),
1009
1069
  formik = _useExportResourcesCo.formik,
1010
1070
  setCurrentStep = _useExportResourcesCo.setCurrentStep,
@@ -1015,34 +1075,49 @@ const ExportFieldsSelectionStep = () => {
1015
1075
  isPlural: true
1016
1076
  });
1017
1077
  React__default["default"].useEffect(() => {
1078
+ var _context8;
1018
1079
  formik.validateForm();
1080
+ const selectedFields = {};
1081
+ function getSelectedFields(field, groupName) {
1082
+ var _context6;
1083
+ const fieldName = field.name ? _concatInstanceProperty__default["default"](_context6 = "".concat(groupName, ".")).call(_context6, field.name) : groupName;
1084
+ if (field.fields) {
1085
+ var _context7;
1086
+ return _forEachInstanceProperty__default["default"](_context7 = field.fields).call(_context7, f => getSelectedFields(f, fieldName));
1087
+ }
1088
+ selectedFields[fieldName] = field.isChecked;
1089
+ }
1090
+ _forEachInstanceProperty__default["default"](_context8 = _valuesInstanceProperty__default["default"](formik).groups).call(_context8, group => getSelectedFields(group, group.groupLabel));
1091
+ setCachedSelectedGroups({
1092
+ [resourceType]: selectedFields
1093
+ });
1019
1094
  // eslint-disable-next-line react-hooks/exhaustive-deps
1020
1095
  }, [_valuesInstanceProperty__default["default"](formik).groups]);
1021
1096
  // adds `isHidden` property to each field based on search term
1022
1097
  const filteredGroups = React__default["default"].useMemo(() => {
1023
- var _fieldSearchTerm$trim, _context6;
1098
+ var _fieldSearchTerm$trim, _context10;
1024
1099
  const updateFields = (fields, parentMatches) => {
1025
1100
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
1026
- var _context5;
1027
- const matches = _includesInstanceProperty__default["default"](_context5 = field.label.toLowerCase()).call(_context5, fieldSearchTerm.toLowerCase());
1101
+ var _context9;
1102
+ const matches = _includesInstanceProperty__default["default"](_context9 = field.label.toLowerCase()).call(_context9, fieldSearchTerm.toLowerCase());
1028
1103
  let isHidden = !matches && !parentMatches;
1029
1104
  if (field.fields) {
1030
1105
  const updatedFields = updateFields(field.fields, matches);
1031
1106
  isHidden = isHidden && _everyInstanceProperty__default["default"](updatedFields).call(updatedFields, f => f.isHidden);
1032
- field = _objectSpread$1(_objectSpread$1({}, field), {}, {
1107
+ field = _objectSpread$2(_objectSpread$2({}, field), {}, {
1033
1108
  fields: updatedFields
1034
1109
  });
1035
1110
  }
1036
- return _objectSpread$1(_objectSpread$1({}, field), {}, {
1111
+ return _objectSpread$2(_objectSpread$2({}, field), {}, {
1037
1112
  isHidden
1038
1113
  });
1039
1114
  });
1040
1115
  };
1041
1116
  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;
1042
- return _mapInstanceProperty__default["default"](_context6 = _valuesInstanceProperty__default["default"](formik).groups).call(_context6, group => {
1117
+ return _mapInstanceProperty__default["default"](_context10 = _valuesInstanceProperty__default["default"](formik).groups).call(_context10, group => {
1043
1118
  const updatedFields = updateFields(group.fields, false);
1044
1119
  const isHidden = _everyInstanceProperty__default["default"](updatedFields).call(updatedFields, field => field.isHidden);
1045
- return _objectSpread$1(_objectSpread$1({}, group), {}, {
1120
+ return _objectSpread$2(_objectSpread$2({}, group), {}, {
1046
1121
  fields: updatedFields,
1047
1122
  isHidden
1048
1123
  });
@@ -1109,14 +1184,24 @@ const ExportFieldsSelectionStep = () => {
1109
1184
 
1110
1185
  const ExportResourcesContext = /*#__PURE__*/React.createContext();
1111
1186
 
1187
+ 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; }
1188
+ function _objectSpread$1(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$1(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$1(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1112
1189
  const ExportResourcesProvider = props => {
1190
+ var _props$selectedResour;
1113
1191
  const initialValues = useInitialValues(props);
1114
- const _useStartExportOperat = useStartExportOperation(props),
1115
- startExportOperation = _useStartExportOperat.startExportOperation;
1116
1192
  const _React$useState = React__default["default"].useState(1),
1117
1193
  _React$useState2 = _slicedToArray(_React$useState, 2),
1118
1194
  currentStep = _React$useState2[0],
1119
1195
  setCurrentStep = _React$useState2[1];
1196
+ const _React$useState3 = React__default["default"].useState({
1197
+ exportType: (_props$selectedResour = props.selectedResourceIds) !== null && _props$selectedResour !== void 0 && _props$selectedResour.length ? EXPORT_TYPES.SELECTED : EXPORT_TYPES.ALL,
1198
+ selectedResourceIds: props.selectedResourceIds
1199
+ }),
1200
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
1201
+ scope = _React$useState4[0],
1202
+ setScope = _React$useState4[1];
1203
+ const _useStartExportOperat = useStartExportOperation(_objectSpread$1(_objectSpread$1({}, props), scope)),
1204
+ startExportOperation = _useStartExportOperat.startExportOperation;
1120
1205
  const onSubmit = async values => {
1121
1206
  if (currentStep === 1) {
1122
1207
  setCurrentStep(2);
@@ -1124,6 +1209,19 @@ const ExportResourcesProvider = props => {
1124
1209
  startExportOperation(values);
1125
1210
  }
1126
1211
  };
1212
+ const onScopeChange = value => {
1213
+ if (value === EXPORT_TYPES.ALL) {
1214
+ setScope({
1215
+ exportType: value,
1216
+ selectedResourceIds: []
1217
+ });
1218
+ } else {
1219
+ setScope({
1220
+ exportType: value,
1221
+ selectedResourceIds: props.selectedResourceIds
1222
+ });
1223
+ }
1224
+ };
1127
1225
  const formik$1 = formik.useFormik({
1128
1226
  initialValues,
1129
1227
  validate: values => validate({
@@ -1142,9 +1240,11 @@ const ExportResourcesProvider = props => {
1142
1240
  setCurrentStep,
1143
1241
  onClose: props.onClose,
1144
1242
  resourceType: props.resourceType,
1145
- exportType: props.exportType,
1243
+ exportType: scope.exportType,
1146
1244
  totalResourcesCount: props.totalResourcesCount,
1147
- selectedResourceIds: props.selectedResourceIds
1245
+ selectedResourceIds: scope.selectedResourceIds,
1246
+ originalSelectedResourceIds: props.selectedResourceIds,
1247
+ onScopeChange
1148
1248
  },
1149
1249
  children: props.children
1150
1250
  });
@@ -1249,7 +1349,6 @@ ExportResourcesModal.displayName = 'ExportResourcesModal';
1249
1349
  ExportResourcesModal.defaultProps = {
1250
1350
  isOpen: false,
1251
1351
  selectedResourceIds: [],
1252
- exportType: EXPORT_TYPES.ALL,
1253
1352
  outputFormat: OUTPUT_FORMATS.CSV,
1254
1353
  fieldGroups: []
1255
1354
  };