@commercetools-frontend-extensions/export-resources-modal 4.0.5 → 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.
package/README.md CHANGED
@@ -27,7 +27,6 @@ import ExportResourcesModal from '@commercetools-frontend-extensions/export-reso
27
27
  // Use case: Exporting all resources
28
28
  <ExportResourcesModal
29
29
  isOpen={true}
30
- exportType="all"
31
30
  outputFormat="csv"
32
31
  resourceType="category"
33
32
  totalResourcesCount={143}
@@ -130,7 +129,6 @@ import ExportResourcesModal from '@commercetools-frontend-extensions/export-reso
130
129
  // Use case: Exporting only selected resources by their IDs
131
130
  <ExportResourcesModal
132
131
  isOpen={true}
133
- exportType="selected"
134
132
  outputFormat="csv"
135
133
  resourceType="category"
136
134
  selectedResourceIds={['02ed9a7d-7c1f-40da-b2b7-4cca6752bf29', '04051276-1641-4e01-a03e-d4de16b7e4eb', 'ac7d9f7b-5c7d-4dd3-b82b-8555ab4a2a6e']}
@@ -235,9 +233,8 @@ import ExportResourcesModal from '@commercetools-frontend-extensions/export-reso
235
233
  | `onExportSuccess` | `function` | | | Callback function that is called when the export operation is successful |
236
234
  | `onClose` | `function` | | | Callback function invoked when the modal is requested to close (on overlay click, close button click or `ESC` press). This function is also called after an export operation regardless of its success or failure |
237
235
  | `resourceType` | `string` | ✅ | | The type of the resource, example: `category`, `product`... |
238
- | `totalResourcesCount` | `number` | () Required only if the `exportType` is `all` | | The count of all resources of identified `resourceType` |
239
- | `exportType` | `string` <br/>Possible values:<br/>`all` and `selected` | | `all` | The type of export, so either export `all` resources or export only `selected` resources |
240
- | `selectedResourceIds` | `array` | (✅) Required only if the `exportType` is `selected` | | Array of Ids of the selected resources |
236
+ | `totalResourcesCount` | `number` | | | The count of all resources of identified `resourceType` |
237
+ | `selectedResourceIds` | `array` | | | Array of Ids of the selected resources |
241
238
  | `fieldGroups` | `array` | ✅ | | Array of the grouped `fields` to export. |
242
239
  | `fieldGroups[].groupLabel` | `array` | ✅ | | Array of the grouped `fields` to export. |
243
240
  | `fieldGroups[].fields` | `array` | ✅ | | Array of the fields to export. The fields must align with the [commercetools API schema](https://docs.commercetools.com/api/). Field can have nested `fields` array. |
@@ -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,9 +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
29
  var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
29
- var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
30
30
  var moment = require('moment');
31
31
  var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
32
32
  var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
@@ -64,9 +64,9 @@ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_O
64
64
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
65
65
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
66
66
  var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
67
- var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
68
- var React__default = /*#__PURE__*/_interopDefault(React);
69
67
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
68
+ var React__default = /*#__PURE__*/_interopDefault(React);
69
+ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
70
70
  var moment__default = /*#__PURE__*/_interopDefault(moment);
71
71
  var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
72
72
  var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
@@ -246,17 +246,37 @@ var messages = reactIntl.defineMessages({
246
246
  id: 'ExportResourcesModal.searchByEnteringTheExactFieldName',
247
247
  description: 'In Export fields selection - Search by entering the exact field name message',
248
248
  defaultMessage: 'Try searching by entering the exact field name.'
249
+ },
250
+ exportScope: {
251
+ id: 'ExportResourcesModal.exportScope',
252
+ description: 'Label for Export Scope',
253
+ defaultMessage: 'Scope'
254
+ },
255
+ exportScopeAll: {
256
+ id: 'ExportResourcesModal.exportScopeAll',
257
+ description: 'Label for Export All',
258
+ defaultMessage: 'Export all: {total} categories'
259
+ },
260
+ exportScopeSelected: {
261
+ id: 'ExportResourcesModal.exportScopeSelected',
262
+ description: 'Label for Export Selected',
263
+ defaultMessage: 'Export selected{total, select, 0 {} other {: {total} categories}}'
264
+ },
265
+ exportSettings: {
266
+ id: 'ExportResourcesModal.exportSettings',
267
+ description: 'Label for Export Settings',
268
+ defaultMessage: 'Settings'
249
269
  }
250
270
  });
251
271
 
252
- 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; }
253
- 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; }
272
+ 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; }
273
+ 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; }
254
274
  function renderFileNameError(key) {
255
275
  switch (key) {
256
276
  case 'missing':
257
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.missingFileNameError));
277
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.missingFileNameError));
258
278
  case 'invalidInput':
259
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.invalidFileNameError));
279
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.invalidFileNameError));
260
280
  default:
261
281
  return null;
262
282
  }
@@ -264,64 +284,12 @@ function renderFileNameError(key) {
264
284
  function renderLocaleError(key) {
265
285
  switch (key) {
266
286
  case 'missing':
267
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.missingLocaleError));
287
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.missingLocaleError));
268
288
  default:
269
289
  return null;
270
290
  }
271
291
  }
272
292
 
273
- const Z_INDEX_DROPDOWN = 30000;
274
- const OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION = 'OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION';
275
-
276
- const EXPORT_OPERATION_STATES = {
277
- PROCESSING: 'processing',
278
- COMPLETED: 'completed',
279
- FAILED: 'failed'
280
- };
281
-
282
- const EXPORT_TYPES = {
283
- ALL: 'all',
284
- FILTERED: 'filtered',
285
- SELECTED: 'selected'
286
- };
287
-
288
- const EXPORTABLE_RESOURCES = {
289
- CATEGORY: 'category',
290
- PRODUCT: 'product',
291
- DISCOUNT_CODE: 'discountCode'
292
- };
293
-
294
- const OUTPUT_FORMATS = {
295
- JSON: 'json',
296
- CSV: 'csv'
297
- };
298
- const OUTPUT_FORMAT_OPTIONS = [{
299
- value: OUTPUT_FORMATS.CSV,
300
- label: 'CSV'
301
- }, {
302
- value: OUTPUT_FORMATS.JSON,
303
- label: 'JSON'
304
- }];
305
-
306
- const FIELD_DEFINITIONS_URLS = {
307
- category: 'https://docs.commercetools.com/merchant-center/import-categories#supported-headers-and-values'
308
- };
309
-
310
- 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); }; }
311
- function _isNativeReflectConstruct$4() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$4 = function () { return !!t; })(); }
312
- let UnexpectedExportTypeError = /*#__PURE__*/function (_Error) {
313
- _inherits(UnexpectedExportTypeError, _Error);
314
- var _super = _createSuper$4(UnexpectedExportTypeError);
315
- function UnexpectedExportTypeError(exportType) {
316
- var _this;
317
- _classCallCheck(this, UnexpectedExportTypeError);
318
- _this = _super.call(this, "Unexpected export type: ".concat(exportType));
319
- _this.name = 'UnexpectedExportTypeError';
320
- return _this;
321
- }
322
- return _createClass(UnexpectedExportTypeError);
323
- }( /*#__PURE__*/_wrapNativeSuper(Error));
324
-
325
293
  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); }; }
326
294
  function _isNativeReflectConstruct$3() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$3 = function () { return !!t; })(); }
327
295
  let MissingExportResourceProviderError = /*#__PURE__*/function (_Error) {
@@ -434,6 +402,43 @@ function validate(_ref) {
434
402
  return omitEmpty__default["default"](errors);
435
403
  }
436
404
 
405
+ const Z_INDEX_DROPDOWN = 30000;
406
+ const OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION = 'OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION';
407
+
408
+ const EXPORT_OPERATION_STATES = {
409
+ PROCESSING: 'processing',
410
+ COMPLETED: 'completed',
411
+ FAILED: 'failed'
412
+ };
413
+
414
+ const EXPORT_TYPES = {
415
+ ALL: 'all',
416
+ FILTERED: 'filtered',
417
+ SELECTED: 'selected'
418
+ };
419
+
420
+ const EXPORTABLE_RESOURCES = {
421
+ CATEGORY: 'category',
422
+ PRODUCT: 'product',
423
+ DISCOUNT_CODE: 'discountCode'
424
+ };
425
+
426
+ const OUTPUT_FORMATS = {
427
+ JSON: 'json',
428
+ CSV: 'csv'
429
+ };
430
+ const OUTPUT_FORMAT_OPTIONS = [{
431
+ value: OUTPUT_FORMATS.CSV,
432
+ label: 'CSV'
433
+ }, {
434
+ value: OUTPUT_FORMATS.JSON,
435
+ label: 'JSON'
436
+ }];
437
+
438
+ const FIELD_DEFINITIONS_URLS = {
439
+ category: 'https://docs.commercetools.com/merchant-center/import-categories#supported-headers-and-values'
440
+ };
441
+
437
442
  function resourceTypeToDisplayName(_ref) {
438
443
  let resourceType = _ref.resourceType,
439
444
  _ref$isUpperCase = _ref.isUpperCase,
@@ -513,8 +518,8 @@ function tmpBuildFilters(selectedResourceIds) {
513
518
  return ["id in (".concat(formattedIds, ")")];
514
519
  }
515
520
 
516
- 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; }
517
- function _objectSpread$3(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$3(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$3(Object(t))).call(_context5, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
521
+ 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; }
522
+ 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; }
518
523
  const updateFieldGroupsWithIsCheckedValue = (groups, cachedSelectedGroups) => {
519
524
  const updateFields = (fields, parentChecked, fieldName) => {
520
525
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
@@ -538,14 +543,14 @@ const updateFieldGroupsWithIsCheckedValue = (groups, cachedSelectedGroups) => {
538
543
  isChecked = false;
539
544
  field.fields = updatedFields;
540
545
  }
541
- return _objectSpread$3(_objectSpread$3({}, field), {}, {
546
+ return _objectSpread$4(_objectSpread$4({}, field), {}, {
542
547
  isChecked
543
548
  });
544
549
  });
545
550
  };
546
551
  return _mapInstanceProperty__default["default"](groups).call(groups, group => {
547
552
  const updatedFields = updateFields(group.fields, false, group.groupLabel);
548
- return _objectSpread$3(_objectSpread$3({}, group), {}, {
553
+ return _objectSpread$4(_objectSpread$4({}, group), {}, {
549
554
  fields: updatedFields
550
555
  });
551
556
  });
@@ -557,13 +562,13 @@ const updateFieldGroupWithAdditionalFieldExtensions = groups => {
557
562
  if (field.fields) {
558
563
  field.fields = updateAdditionalFieldExtensions(field.fields, updatedAdditionalFieldExtensions);
559
564
  }
560
- return _objectSpread$3(_objectSpread$3({}, field), {}, {
565
+ return _objectSpread$4(_objectSpread$4({}, field), {}, {
561
566
  additionalFieldExtensions: updatedAdditionalFieldExtensions
562
567
  });
563
568
  });
564
569
  }
565
570
  return _mapInstanceProperty__default["default"](groups).call(groups, group => {
566
- return _objectSpread$3(_objectSpread$3({}, group), {}, {
571
+ return _objectSpread$4(_objectSpread$4({}, group), {}, {
567
572
  fields: updateAdditionalFieldExtensions(group.fields, group.additionalFieldExtensions || [])
568
573
  });
569
574
  });
@@ -713,46 +718,53 @@ const useStartExportOperation = props => {
713
718
  };
714
719
  };
715
720
 
716
- 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; }
717
- 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; }
718
- function ExportTextMessage() {
719
- const intl = reactIntl.useIntl();
721
+ 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; }
722
+ 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; }
723
+ function ExportScopeSection() {
724
+ var _originalSelectedReso;
720
725
  const _useExportResourcesCo = useExportResourcesContext(),
721
- resourceType = _useExportResourcesCo.resourceType,
726
+ exportType = _useExportResourcesCo.exportType,
722
727
  totalResourcesCount = _useExportResourcesCo.totalResourcesCount,
723
- selectedResourceIds = _useExportResourcesCo.selectedResourceIds,
724
- exportType = _useExportResourcesCo.exportType;
725
- const resourceTypePlural = resourceTypeToDisplayName({
726
- resourceType: resourceType,
727
- isPlural: true
728
- });
729
- let message;
730
- let count;
731
- switch (exportType) {
732
- case EXPORT_TYPES.ALL:
733
- message = messages.exportAllMessage;
734
- count = totalResourcesCount;
735
- break;
736
- case EXPORT_TYPES.SELECTED:
737
- message = messages.exportSelectedMessage;
738
- count = selectedResourceIds.length;
739
- break;
740
- default:
741
- throw new UnexpectedExportTypeError(exportType);
742
- }
743
- return jsxRuntime.jsx(uiKit.Text.Body, {
744
- "data-testid": "export-description",
745
- intlMessage: _objectSpread$2(_objectSpread$2({}, message), {}, {
746
- values: {
747
- count: intl.formatNumber(count),
748
- resourceType: resourceTypePlural,
749
- b: getBold
750
- }
728
+ originalSelectedResourceIds = _useExportResourcesCo.originalSelectedResourceIds,
729
+ onScopeChange = _useExportResourcesCo.onScopeChange;
730
+ return jsxRuntime.jsx(uiKit.Spacings.Stack, {
731
+ scale: "m",
732
+ children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
733
+ value: exportType,
734
+ onChange: e => {
735
+ onScopeChange(e.target.value);
736
+ },
737
+ direction: "stack",
738
+ directionProps: {
739
+ scale: 's'
740
+ },
741
+ children: [jsxRuntime.jsx(uiKit.RadioInput.Option, {
742
+ value: EXPORT_TYPES.ALL,
743
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
744
+ intlMessage: _objectSpread$3(_objectSpread$3({}, messages.exportScopeAll), {}, {
745
+ values: {
746
+ total: new Intl.NumberFormat().format(totalResourcesCount)
747
+ }
748
+ })
749
+ })
750
+ }), jsxRuntime.jsx(uiKit.RadioInput.Option, {
751
+ value: EXPORT_TYPES.SELECTED,
752
+ isDisabled: !(originalSelectedResourceIds !== null && originalSelectedResourceIds !== void 0 && originalSelectedResourceIds.length),
753
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
754
+ tone: !(originalSelectedResourceIds !== null && originalSelectedResourceIds !== void 0 && originalSelectedResourceIds.length) ? 'tertiary' : undefined,
755
+ intlMessage: _objectSpread$3(_objectSpread$3({}, messages.exportScopeSelected), {}, {
756
+ values: {
757
+ total: new Intl.NumberFormat().format((_originalSelectedReso = originalSelectedResourceIds === null || originalSelectedResourceIds === void 0 ? void 0 : originalSelectedResourceIds.length) !== null && _originalSelectedReso !== void 0 ? _originalSelectedReso : 0)
758
+ }
759
+ })
760
+ })
761
+ })]
751
762
  })
752
763
  });
753
764
  }
754
765
 
755
766
  const ExportFileSettingsStep = () => {
767
+ var _context;
756
768
  const intl = reactIntl.useIntl();
757
769
  const _useExportResourcesCo = useExportResourcesContext(),
758
770
  formik = _useExportResourcesCo.formik,
@@ -785,57 +797,67 @@ const ExportFileSettingsStep = () => {
785
797
  size: 16,
786
798
  children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
787
799
  scale: "xxxl",
788
- children: [jsxRuntime.jsxs(uiKit.Spacings.Stack, {
800
+ children: [jsxRuntime.jsx(uiKit.Spacings.Stack, {
789
801
  scale: "l",
790
- children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
791
- alignItems: "center",
792
- children: [jsxRuntime.jsx(uiKit.ExportIcon, {
793
- size: "medium",
794
- color: "neutral60"
795
- }), jsxRuntime.jsx(ExportTextMessage, {})]
796
- }), jsxRuntime.jsxs(uiKit.Spacings.Stack, {
797
- scale: "m",
798
- children: [jsxRuntime.jsx(uiKit.SelectField, {
799
- name: "outputFormat",
800
- onChange: formik.handleChange,
801
- onBlur: formik.handleBlur,
802
- value: _valuesInstanceProperty__default["default"](formik).outputFormat,
803
- title: intl.formatMessage(messages.outputFormat),
804
- options: OUTPUT_FORMAT_OPTIONS
805
- }), jsxRuntime.jsx(uiKit.TextField, {
806
- name: "fileName",
807
- onChange: formik.handleChange,
808
- onBlur: formik.handleBlur,
809
- value: _valuesInstanceProperty__default["default"](formik).fileName,
810
- title: intl.formatMessage(messages.fileName),
811
- touched: formik.touched.fileName,
812
- errors: formik.errors.fileName,
813
- renderError: renderFileNameError
814
- }), jsxRuntime.jsxs(uiKit.Spacings.Stack, {
815
- scale: "xs",
816
- children: [jsxRuntime.jsx(uiKit.SelectField, {
817
- id: "locales",
818
- name: "locales",
819
- value: _valuesInstanceProperty__default["default"](formik).locales,
820
- title: intl.formatMessage(messages.locale),
821
- options: mapLocalesToOptions(locales),
822
- isMulti: true,
823
- onChange: formik.handleChange,
824
- onBlur: formik.handleBlur,
825
- touched: formik.touched.locales,
826
- errors: formik.errors.locales,
827
- renderError: renderLocaleError,
828
- menuPortalTarget: document.body,
829
- menuPortalZIndex: Z_INDEX_DROPDOWN
830
- }), jsxRuntime.jsx(uiKit.CheckboxInput, {
831
- isChecked: areAllLocalesChecked,
832
- onChange: e => {
833
- if (e.target.checked) formik.setFieldValue('locales', locales);else formik.setFieldValue('locales', [locale]);
834
- },
835
- children: intl.formatMessage(messages.selectAllLocales)
836
- })]
802
+ children: jsxRuntime.jsxs(uiKit.Grid, {
803
+ gridRowGap: uiKit.designTokens.spacingL,
804
+ gridTemplateColumns: _concatInstanceProperty__default["default"](_context = "calc(".concat(uiKit.designTokens.constraint3, " + ")).call(_context, uiKit.designTokens.spacingL, ") auto"),
805
+ children: [jsxRuntime.jsx(uiKit.Grid.Item, {
806
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
807
+ intlMessage: messages.exportScope
808
+ })
809
+ }), jsxRuntime.jsx(uiKit.Grid.Item, {
810
+ children: jsxRuntime.jsx(ExportScopeSection, {})
811
+ }), jsxRuntime.jsx(uiKit.Grid.Item, {
812
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
813
+ intlMessage: messages.exportSettings
814
+ })
815
+ }), jsxRuntime.jsx(uiKit.Grid.Item, {
816
+ children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
817
+ scale: "m",
818
+ children: [jsxRuntime.jsx(uiKit.SelectField, {
819
+ name: "outputFormat",
820
+ onChange: formik.handleChange,
821
+ onBlur: formik.handleBlur,
822
+ value: _valuesInstanceProperty__default["default"](formik).outputFormat,
823
+ title: intl.formatMessage(messages.outputFormat),
824
+ options: OUTPUT_FORMAT_OPTIONS
825
+ }), jsxRuntime.jsx(uiKit.TextField, {
826
+ name: "fileName",
827
+ onChange: formik.handleChange,
828
+ onBlur: formik.handleBlur,
829
+ value: _valuesInstanceProperty__default["default"](formik).fileName,
830
+ title: intl.formatMessage(messages.fileName),
831
+ touched: formik.touched.fileName,
832
+ errors: formik.errors.fileName,
833
+ renderError: renderFileNameError
834
+ }), jsxRuntime.jsxs(uiKit.Spacings.Stack, {
835
+ scale: "xs",
836
+ children: [jsxRuntime.jsx(uiKit.SelectField, {
837
+ id: "locales",
838
+ name: "locales",
839
+ value: _valuesInstanceProperty__default["default"](formik).locales,
840
+ title: intl.formatMessage(messages.locale),
841
+ options: mapLocalesToOptions(locales),
842
+ isMulti: true,
843
+ onChange: formik.handleChange,
844
+ onBlur: formik.handleBlur,
845
+ touched: formik.touched.locales,
846
+ errors: formik.errors.locales,
847
+ renderError: renderLocaleError,
848
+ menuPortalTarget: document.body,
849
+ menuPortalZIndex: Z_INDEX_DROPDOWN
850
+ }), jsxRuntime.jsx(uiKit.CheckboxInput, {
851
+ isChecked: areAllLocalesChecked,
852
+ onChange: e => {
853
+ if (e.target.checked) formik.setFieldValue('locales', locales);else formik.setFieldValue('locales', [locale]);
854
+ },
855
+ children: intl.formatMessage(messages.selectAllLocales)
856
+ })]
857
+ })]
858
+ })
837
859
  })]
838
- })]
860
+ })
839
861
  }), jsxRuntime.jsx("div", {})]
840
862
  })
841
863
  });
@@ -877,8 +899,8 @@ const NoSearchResults = () => {
877
899
  });
878
900
  };
879
901
 
880
- 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; }
881
- function _objectSpread$1(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$1(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$1(Object(t))).call(_context12, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
902
+ 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; }
903
+ 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; }
882
904
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
883
905
  const StyledGridCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, process.env.NODE_ENV === "production" ? {
884
906
  target: "e3xiyhb2"
@@ -1001,17 +1023,17 @@ const FieldGroupSection = _ref2 => {
1001
1023
  function updateAllFields(fields, checked) {
1002
1024
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
1003
1025
  if (field.fields) {
1004
- return _objectSpread$1(_objectSpread$1({}, field), {}, {
1026
+ return _objectSpread$2(_objectSpread$2({}, field), {}, {
1005
1027
  fields: updateAllFields(field.fields, checked)
1006
1028
  });
1007
1029
  }
1008
1030
  if (field.isReadOnly || field.isRequired) return field;
1009
- return _objectSpread$1(_objectSpread$1({}, field), {}, {
1031
+ return _objectSpread$2(_objectSpread$2({}, field), {}, {
1010
1032
  isChecked: checked
1011
1033
  });
1012
1034
  });
1013
1035
  }
1014
- formik.setFieldValue(parentKey, _objectSpread$1(_objectSpread$1({}, item), {}, {
1036
+ formik.setFieldValue(parentKey, _objectSpread$2(_objectSpread$2({}, item), {}, {
1015
1037
  fields: updateAllFields(item.fields, e.target.checked)
1016
1038
  }));
1017
1039
  };
@@ -1104,11 +1126,11 @@ const ExportFieldsSelectionStep = () => {
1104
1126
  if (field.fields) {
1105
1127
  const updatedFields = updateFields(field.fields, matches);
1106
1128
  isHidden = isHidden && _everyInstanceProperty__default["default"](updatedFields).call(updatedFields, f => f.isHidden);
1107
- field = _objectSpread$1(_objectSpread$1({}, field), {}, {
1129
+ field = _objectSpread$2(_objectSpread$2({}, field), {}, {
1108
1130
  fields: updatedFields
1109
1131
  });
1110
1132
  }
1111
- return _objectSpread$1(_objectSpread$1({}, field), {}, {
1133
+ return _objectSpread$2(_objectSpread$2({}, field), {}, {
1112
1134
  isHidden
1113
1135
  });
1114
1136
  });
@@ -1117,7 +1139,7 @@ const ExportFieldsSelectionStep = () => {
1117
1139
  return _mapInstanceProperty__default["default"](_context10 = _valuesInstanceProperty__default["default"](formik).groups).call(_context10, group => {
1118
1140
  const updatedFields = updateFields(group.fields, false);
1119
1141
  const isHidden = _everyInstanceProperty__default["default"](updatedFields).call(updatedFields, field => field.isHidden);
1120
- return _objectSpread$1(_objectSpread$1({}, group), {}, {
1142
+ return _objectSpread$2(_objectSpread$2({}, group), {}, {
1121
1143
  fields: updatedFields,
1122
1144
  isHidden
1123
1145
  });
@@ -1188,14 +1210,24 @@ process.env.NODE_ENV !== "production" ? {
1188
1210
 
1189
1211
  const ExportResourcesContext = /*#__PURE__*/React.createContext();
1190
1212
 
1213
+ 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; }
1214
+ 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; }
1191
1215
  const ExportResourcesProvider = props => {
1216
+ var _props$selectedResour;
1192
1217
  const initialValues = useInitialValues(props);
1193
- const _useStartExportOperat = useStartExportOperation(props),
1194
- startExportOperation = _useStartExportOperat.startExportOperation;
1195
1218
  const _React$useState = React__default["default"].useState(1),
1196
1219
  _React$useState2 = _slicedToArray(_React$useState, 2),
1197
1220
  currentStep = _React$useState2[0],
1198
1221
  setCurrentStep = _React$useState2[1];
1222
+ const _React$useState3 = React__default["default"].useState({
1223
+ exportType: (_props$selectedResour = props.selectedResourceIds) !== null && _props$selectedResour !== void 0 && _props$selectedResour.length ? EXPORT_TYPES.SELECTED : EXPORT_TYPES.ALL,
1224
+ selectedResourceIds: props.selectedResourceIds
1225
+ }),
1226
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
1227
+ scope = _React$useState4[0],
1228
+ setScope = _React$useState4[1];
1229
+ const _useStartExportOperat = useStartExportOperation(_objectSpread$1(_objectSpread$1({}, props), scope)),
1230
+ startExportOperation = _useStartExportOperat.startExportOperation;
1199
1231
  const onSubmit = async values => {
1200
1232
  if (currentStep === 1) {
1201
1233
  setCurrentStep(2);
@@ -1203,6 +1235,19 @@ const ExportResourcesProvider = props => {
1203
1235
  startExportOperation(values);
1204
1236
  }
1205
1237
  };
1238
+ const onScopeChange = value => {
1239
+ if (value === EXPORT_TYPES.ALL) {
1240
+ setScope({
1241
+ exportType: value,
1242
+ selectedResourceIds: []
1243
+ });
1244
+ } else {
1245
+ setScope({
1246
+ exportType: value,
1247
+ selectedResourceIds: props.selectedResourceIds
1248
+ });
1249
+ }
1250
+ };
1206
1251
  const formik$1 = formik.useFormik({
1207
1252
  initialValues,
1208
1253
  validate: values => validate({
@@ -1221,9 +1266,11 @@ const ExportResourcesProvider = props => {
1221
1266
  setCurrentStep,
1222
1267
  onClose: props.onClose,
1223
1268
  resourceType: props.resourceType,
1224
- exportType: props.exportType,
1269
+ exportType: scope.exportType,
1225
1270
  totalResourcesCount: props.totalResourcesCount,
1226
- selectedResourceIds: props.selectedResourceIds
1271
+ selectedResourceIds: scope.selectedResourceIds,
1272
+ originalSelectedResourceIds: props.selectedResourceIds,
1273
+ onScopeChange
1227
1274
  },
1228
1275
  children: props.children
1229
1276
  });
@@ -1328,7 +1375,6 @@ ExportResourcesModal.displayName = 'ExportResourcesModal';
1328
1375
  ExportResourcesModal.defaultProps = {
1329
1376
  isOpen: false,
1330
1377
  selectedResourceIds: [],
1331
- exportType: EXPORT_TYPES.ALL,
1332
1378
  outputFormat: OUTPUT_FORMATS.CSV,
1333
1379
  fieldGroups: []
1334
1380
  };