@commercetools-frontend-extensions/export-resources-modal 1.3.1 → 1.3.2

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.
@@ -26,21 +26,21 @@ var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibl
26
26
  var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
27
27
  var _wrapNativeSuper = require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
28
28
  var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
29
- var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
30
- var PropTypes = require('prop-types');
31
- var formik = require('formik');
32
- var moment = require('moment');
33
- var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
34
- var react = require('react');
35
29
  var uiKit = require('@commercetools-frontend/ui-kit');
36
30
  var omitEmpty = require('omit-empty-es');
37
31
  var jsxRuntime = require('@emotion/react/jsx-runtime');
38
- var _valuesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/values');
39
32
  var designSystem = require('@commercetools-uikit/design-system');
40
- var react$1 = require('@emotion/react');
33
+ var PropTypes = require('prop-types');
34
+ var React = require('react');
35
+ var react = require('@emotion/react');
41
36
  var _styled = require('@emotion/styled/base');
37
+ var _valuesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/values');
38
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
42
39
  var sdk = require('@commercetools-frontend/sdk');
43
40
  var actionsGlobal = require('@commercetools-frontend/actions-global');
41
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
42
+ var formik = require('formik');
43
+ var moment = require('moment');
44
44
  var constants = require('@commercetools-frontend/constants');
45
45
 
46
46
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
@@ -58,31 +58,35 @@ var _flatInstanceProperty__default = /*#__PURE__*/_interopDefault(_flatInstanceP
58
58
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
59
59
  var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
60
60
  var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
61
- var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
62
- var moment__default = /*#__PURE__*/_interopDefault(moment);
63
61
  var omitEmpty__default = /*#__PURE__*/_interopDefault(omitEmpty);
64
- var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
62
+ var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
63
+ var React__default = /*#__PURE__*/_interopDefault(React);
65
64
  var _styled__default = /*#__PURE__*/_interopDefault(_styled);
65
+ var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
66
+ var moment__default = /*#__PURE__*/_interopDefault(moment);
66
67
 
67
- const EXPORTABLE_RESOURCES = {
68
- CATEGORY: 'category',
69
- PRODUCT: 'product',
70
- DISCOUNT_CODE: 'discountCode'
68
+ const EXPORT_OPERATION_STATES = {
69
+ PROCESSING: 'processing',
70
+ COMPLETED: 'completed',
71
+ FAILED: 'failed'
71
72
  };
73
+
72
74
  const EXPORT_SELECTION_TYPES = {
73
75
  ALL_RESOURCES: 'allResources',
74
76
  ONLY_MATCHING: 'onlyMatching',
75
77
  ONLY_SELECTED: 'onlySelected'
76
78
  };
79
+
80
+ const EXPORTABLE_RESOURCES = {
81
+ CATEGORY: 'category',
82
+ PRODUCT: 'product',
83
+ DISCOUNT_CODE: 'discountCode'
84
+ };
85
+
77
86
  const OUTPUT_FORMATS = {
78
87
  JSON: 'json',
79
88
  CSV: 'csv'
80
89
  };
81
- const EXPORT_OPERATION_STATES = {
82
- PROCESSING: 'processing',
83
- COMPLETED: 'completed',
84
- FAILED: 'failed'
85
- };
86
90
 
87
91
  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); }; }
88
92
  function _isNativeReflectConstruct$3() { if (typeof Reflect === "undefined" || !_Reflect$construct__default["default"]) return false; if (_Reflect$construct__default["default"].sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -178,6 +182,14 @@ function isFilledArray(maybeArray) {
178
182
  return _Array$isArray__default["default"](maybeArray) && maybeArray.length;
179
183
  }
180
184
 
185
+ /*
186
+ * This function is responsible for constructing the GraphQL query based on the export settings
187
+ *
188
+ * Depending on the type of export selection (all resources, only selected, or only matching/filtered) it constructs different types of queries:
189
+ * - For 'all resources', it generates a query that fetches all fields and languages specified in the export settings.
190
+ * - For 'only selected', it creates a query that fetches only the fields and languages of the selected resources. The ids of the selected resources are included in the query.
191
+ * - The 'only matching' case is a placeholder for future development where a query will be constructed based on certain filtering criteria using the `where` parameter.
192
+ */
181
193
  function buildGraphQuery(exportSettings) {
182
194
  var _context;
183
195
  const operation = resourceTypeToOperationName(exportSettings.resourceType);
@@ -213,6 +225,21 @@ function buildGraphQuery(exportSettings) {
213
225
  throw new UnexpectedSelectionTypeError(exportSettings.exportSelectionType);
214
226
  }
215
227
  }
228
+
229
+ /*
230
+ * This function builds the necessary field structure for our GraphQL queries, tt is specifically designed to handle different types of fields
231
+ *
232
+ * For fields whose values change depending on the language aka localised fields, a unique request format is used
233
+ * This format combines the field and the language, separated by '_____'. This approach is adopted as our system disallows the use of hyphens `-` in these situations
234
+ *
235
+ * Fields that don't vary by language but contain additional subfields (known as 'nested fields') are also addressed
236
+ * In these cases the function is used recursively on these subfields to generate the appropriate request.
237
+ *
238
+ * Overall, this function enables us to accurately request different types of data, including those varying by language or containing subfields.
239
+ *
240
+ * More details can be found in the related PR: https://github.com/commercetools/commercetools-exporter/pull/103
241
+ */
242
+
216
243
  function buildFields(_ref) {
217
244
  var _context2;
218
245
  let fields = _ref.fields,
@@ -220,7 +247,7 @@ function buildFields(_ref) {
220
247
  return _flatInstanceProperty__default["default"](_context2 = _mapInstanceProperty__default["default"](fields).call(fields, field => {
221
248
  if (field.isLocalized) return _mapInstanceProperty__default["default"](languages).call(languages, language => {
222
249
  var _context3, _context4, _context5;
223
- const alias = replaceSpecialCharsWithUnderscore(_concatInstanceProperty__default["default"](_context3 = "".concat(field.key, "_")).call(_context3, language));
250
+ const alias = replaceSpecialCharsWithUnderscore(_concatInstanceProperty__default["default"](_context3 = "".concat(field.key, "_____")).call(_context3, language));
224
251
  return _concatInstanceProperty__default["default"](_context4 = _concatInstanceProperty__default["default"](_context5 = "".concat(alias, ": ")).call(_context5, field.key, "(locale: \"")).call(_context4, language, "\")");
225
252
  });else {
226
253
  if (isFilledArray(field.fields)) {
@@ -236,6 +263,22 @@ function buildFields(_ref) {
236
263
  })).call(_context2);
237
264
  }
238
265
 
266
+ function validate(values) {
267
+ const errors = {
268
+ fileName: {},
269
+ languages: {}
270
+ };
271
+ if (uiKit.TextInput.isEmpty(values.fileName)) {
272
+ errors.fileName.missing = true;
273
+ } else if (!/^[a-zA-Z0-9-_]+$/.test(values.fileName)) {
274
+ errors.fileName.invalidInput = true;
275
+ }
276
+ if (values.languages.length < 1) {
277
+ errors.languages.missing = true;
278
+ }
279
+ return omitEmpty__default["default"](errors);
280
+ }
281
+
239
282
  var messages = reactIntl.defineMessages({
240
283
  modalTitle: {
241
284
  id: 'ExportResourcesModal.modalTitle',
@@ -389,112 +432,26 @@ var messages = reactIntl.defineMessages({
389
432
  }
390
433
  });
391
434
 
392
- const ExportResourcesContext = /*#__PURE__*/react.createContext();
393
-
394
- PropTypes__default["default"].shape({
395
- resourceType: PropTypes__default["default"].string.isRequired,
396
- outputFormat: PropTypes__default["default"].string,
397
- isOpen: PropTypes__default["default"].bool.isRequired,
398
- closeModal: PropTypes__default["default"].func.isRequired,
399
- allResourcesCount: PropTypes__default["default"].number.isRequired,
400
- matchingResourcesCount: PropTypes__default["default"].number,
401
- selectedResourceIds: PropTypes__default["default"].array,
402
- // TODO: Circular reference
403
- fields: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
404
- key: PropTypes__default["default"].string.isRequired,
405
- label: PropTypes__default["default"].string,
406
- isLocalized: PropTypes__default["default"].bool,
407
- fields: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
408
- key: PropTypes__default["default"].string.isRequired,
409
- label: PropTypes__default["default"].string,
410
- isLocalized: PropTypes__default["default"].bool
411
- }))
412
- })).isRequired,
413
- exportSelectionType: PropTypes__default["default"].string,
414
- appliedSearchTerms: PropTypes__default["default"].array,
415
- appliedFilters: PropTypes__default["default"].array,
416
- renderProperties: PropTypes__default["default"].func
417
- }).isRequired;
418
-
419
- function validate(values) {
420
- const errors = {
421
- fileName: {},
422
- languages: {}
423
- };
424
- if (uiKit.TextInput.isEmpty(values.fileName)) {
425
- errors.fileName.missing = true;
426
- } else if (!/^[a-zA-Z0-9-_]+$/.test(values.fileName)) {
427
- errors.fileName.invalidInput = true;
428
- }
429
- if (values.languages.length < 1) {
430
- errors.languages.missing = true;
431
- }
432
- return omitEmpty__default["default"](errors);
433
- }
434
-
435
- const ExportResourcesContextProvider = props => {
436
- var _context;
437
- const todayFormatted = moment__default["default"]().format('DD-MM-YY_HH-mm');
438
- const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
439
- language: applicationContext.dataLocale
440
- })),
441
- language = _useApplicationContex.language;
442
- const formik$1 = formik.useFormik({
443
- initialValues: {
444
- outputFormat: props.outputFormat,
445
- fileName: _concatInstanceProperty__default["default"](_context = "".concat(resourceTypeToPlural({
446
- resourceType: props.resourceType,
447
- isUpperCase: true
448
- }), "_Export_")).call(_context, todayFormatted),
449
- languages: [language],
450
- fields: props.fields,
451
- appliedSearchTerms: props.appliedSearchTerms,
452
- appliedFilters: props.appliedFilters,
453
- exportSelectionType: props.exportSelectionType,
454
- isAllLanguagesChecked: false
455
- },
456
- validate
457
- });
458
- const _useState = react.useState(false),
459
- _useState2 = _slicedToArray(_useState, 2),
460
- exportOperationStarted = _useState2[0],
461
- setExportOperationStarted = _useState2[1];
462
- return jsxRuntime.jsx(ExportResourcesContext.Provider, {
463
- value: {
464
- formik: formik$1,
465
- resourceType: props.resourceType,
466
- allResourcesCount: props.allResourcesCount,
467
- matchingResourcesCount: props.matchingResourcesCount,
468
- selectedResourceIds: props.selectedResourceIds,
469
- exportOperationStarted,
470
- setExportOperationStarted
471
- },
472
- children: props.children
435
+ function getBold(msg) {
436
+ return jsxRuntime.jsx(uiKit.Text.Body, {
437
+ as: "span",
438
+ isBold: true,
439
+ children: msg
473
440
  });
474
- };
475
- ExportResourcesContextProvider.displayName = 'ExportResourcesContextProvider';
476
- ExportResourcesContextProvider.propTypes = {};
477
-
478
- function useExportResourcesContext() {
479
- const context = react.useContext(ExportResourcesContext);
480
- if (!context) {
481
- throw new MissingExportResourceProviderError();
482
- }
483
- return context;
484
441
  }
485
442
 
486
- const smallTopPadding = /*#__PURE__*/react$1.css("padding-top:", designSystem.customProperties.spacingXs, ";" + ("" ), "" );
443
+ const smallTopPadding = /*#__PURE__*/react.css("padding-top:", designSystem.customProperties.spacingXs, ";" + ("" ), "" );
487
444
  const tagListContainer = _ref => {
488
445
  let isNewTheme = _ref.isNewTheme;
489
- return /*#__PURE__*/react$1.css("width:100%;display:flex;flex-wrap:wrap;display:inline-flex;padding:0 ", isNewTheme ? 0 : designSystem.customProperties.spacingL, ";&>div{margin:0 ", designSystem.customProperties.spacingS, " ", designSystem.customProperties.spacingS, " 0;}" + ("" ), "" );
446
+ return /*#__PURE__*/react.css("width:100%;display:flex;flex-wrap:wrap;display:inline-flex;padding:0 ", isNewTheme ? 0 : designSystem.customProperties.spacingL, ";&>div{margin:0 ", designSystem.customProperties.spacingS, " ", designSystem.customProperties.spacingS, " 0;}" + ("" ), "" );
490
447
  };
491
- const tagListItem = /*#__PURE__*/react$1.css("margin:0 ", designSystem.customProperties.spacingXs, " ", designSystem.customProperties.spacingXs, " 0;display:flex;min-width:0;" + ("" ), "" );
492
- const divider = /*#__PURE__*/react$1.css("box-sizing:border-box;width:100%;margin:0;border:0;border-top:1px solid ", designSystem.customProperties.colorNeutral60, ";" + ("" ), "" );
448
+ const tagListItem = /*#__PURE__*/react.css("margin:0 ", designSystem.customProperties.spacingXs, " ", designSystem.customProperties.spacingXs, " 0;display:flex;min-width:0;" + ("" ), "" );
449
+ const divider = /*#__PURE__*/react.css("box-sizing:border-box;width:100%;margin:0;border:0;border-top:1px solid ", designSystem.customProperties.colorNeutral60, ";" + ("" ), "" );
493
450
  const notBold = {
494
451
  name: "lugakg",
495
452
  styles: "font-weight:normal"
496
453
  } ;
497
- const successMessage = /*#__PURE__*/react$1.css("margin-bottom:", designSystem.customProperties.spacingL, ";" + ("" ), "" );
454
+ const successMessage = /*#__PURE__*/react.css("margin-bottom:", designSystem.customProperties.spacingL, ";" + ("" ), "" );
498
455
  const styles = {
499
456
  tagListItem,
500
457
  tagListContainer,
@@ -504,173 +461,50 @@ const styles = {
504
461
  successMessage
505
462
  };
506
463
 
464
+ function TagList(props) {
465
+ const _useTheme = designSystem.useTheme(),
466
+ isNewTheme = _useTheme.isNewTheme;
467
+ return jsxRuntime.jsx("div", {
468
+ css: styles.tagListContainer({
469
+ isNewTheme
470
+ }),
471
+ "data-testid": props['data-testid'],
472
+ children: _mapInstanceProperty__default["default"](React.Children).call(React.Children, props.children, tag => jsxRuntime.jsx("div", {
473
+ css: styles.tagListItem,
474
+ children: tag
475
+ }))
476
+ });
477
+ }
478
+ TagList.displayName = 'TagList';
479
+ TagList.propTypes = {};
480
+
507
481
  function ownKeys$a(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
508
482
  function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$a(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$a(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
509
- function ExportSelectionRadioButtons() {
483
+ function AppliedFilters(_ref) {
484
+ let filters = _ref.filters,
485
+ onFilterRemove = _ref.onFilterRemove;
510
486
  const _useTheme = designSystem.useTheme(),
511
487
  isNewTheme = _useTheme.isNewTheme;
512
- const intl = reactIntl.useIntl();
513
- const _useExportResourcesCo = useExportResourcesContext(),
514
- formik = _useExportResourcesCo.formik,
515
- resourceType = _useExportResourcesCo.resourceType,
516
- allResourcesCount = _useExportResourcesCo.allResourcesCount,
517
- matchingResourcesCount = _useExportResourcesCo.matchingResourcesCount,
518
- selectedResourceIds = _useExportResourcesCo.selectedResourceIds;
519
- const resourceTypePlural = resourceTypeToPlural({
520
- resourceType: resourceType
521
- });
522
- return jsxRuntime.jsx(uiKit.Spacings.Inline, {
523
- scale: "xl",
524
- children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
525
- name: "exportSelectionType",
526
- value: _valuesInstanceProperty__default["default"](formik).exportSelectionType,
527
- direction: "inline",
528
- directionProps: {
529
- scale: 'xl'
530
- },
531
- onChange: formik.handleChange,
532
- children: [jsxRuntime.jsx(uiKit.RadioInput.Option, {
533
- value: EXPORT_SELECTION_TYPES.ALL_RESOURCES,
534
- "data-testid": 'test-all-resources',
535
- children: jsxRuntime.jsx(uiKit.Text.Body, {
536
- isBold: !isNewTheme,
537
- intlMessage: _objectSpread$a(_objectSpread$a({}, messages.exportAllResources), {}, {
538
- values: {
539
- resourceType: resourceTypePlural,
540
- count: allResourcesCount
541
- }
542
- })
543
- })
544
- }), jsxRuntime.jsx(uiKit.RadioInput.Option, {
545
- value: EXPORT_SELECTION_TYPES.ONLY_MATCHING,
546
- "data-testid": 'test-only-matching',
547
- isDisabled: !Boolean(matchingResourcesCount),
548
- children: jsxRuntime.jsx(uiKit.Text.Body, {
549
- isBold: !isNewTheme,
550
- intlMessage: _objectSpread$a(_objectSpread$a({}, messages.exportOnlyMatchingResources), {}, {
551
- values: {
552
- count: matchingResourcesCount || intl.formatMessage(messages.nothingApplied)
553
- }
554
- })
555
- })
556
- }), jsxRuntime.jsx(uiKit.RadioInput.Option, {
557
- value: EXPORT_SELECTION_TYPES.ONLY_SELECTED,
558
- "data-testid": 'test-only-selected',
559
- isDisabled: !Boolean(selectedResourceIds.length),
560
- children: jsxRuntime.jsx(uiKit.Text.Body, {
561
- isBold: !isNewTheme,
562
- intlMessage: _objectSpread$a(_objectSpread$a({}, messages.exportOnlySelectedResources), {}, {
563
- values: {
564
- resourceType: resourceTypePlural,
565
- count: selectedResourceIds.length
566
- }
567
- })
488
+ if (isNewTheme) return jsxRuntime.jsx(uiKit.CollapsiblePanel, {
489
+ condensed: true,
490
+ isDefaultClosed: !Boolean(filters.length),
491
+ header: jsxRuntime.jsx(uiKit.Text.Body, {
492
+ intlMessage: _objectSpread$a(_objectSpread$a({}, messages.appliedFiltersMessage), {}, {
493
+ values: {
494
+ filtersCount: filters.length
495
+ }
496
+ })
497
+ }),
498
+ children: jsxRuntime.jsx(TagList, {
499
+ children: _mapInstanceProperty__default["default"](filters).call(filters, filter => jsxRuntime.jsx("div", {
500
+ "data-testid": "test-filter-".concat(filter),
501
+ children: jsxRuntime.jsx(uiKit.Tag, {
502
+ onRemove: () => {
503
+ onFilterRemove(filter);
504
+ },
505
+ children: filter
568
506
  })
569
- })]
570
- })
571
- });
572
- }
573
-
574
- function getBold(msg) {
575
- return jsxRuntime.jsx(uiKit.Text.Body, {
576
- as: "span",
577
- isBold: true,
578
- children: msg
579
- });
580
- }
581
-
582
- function ownKeys$9(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
583
- function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$9(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$9(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
584
- function ExportTextMessage() {
585
- const _useExportResourcesCo = useExportResourcesContext(),
586
- resourceType = _useExportResourcesCo.resourceType,
587
- allResourcesCount = _useExportResourcesCo.allResourcesCount,
588
- selectedResourceIds = _useExportResourcesCo.selectedResourceIds,
589
- matchingResourcesCount = _useExportResourcesCo.matchingResourcesCount,
590
- formik = _useExportResourcesCo.formik;
591
- const resourceTypePlural = resourceTypeToPlural({
592
- resourceType: resourceType
593
- });
594
- switch (_valuesInstanceProperty__default["default"](formik).exportSelectionType) {
595
- case EXPORT_SELECTION_TYPES.ALL_RESOURCES:
596
- return jsxRuntime.jsx(uiKit.Text.Body, {
597
- intlMessage: _objectSpread$9(_objectSpread$9({}, messages.exportAllMessage), {}, {
598
- values: {
599
- count: allResourcesCount,
600
- resourceType: resourceTypePlural,
601
- b: getBold
602
- }
603
- })
604
- });
605
- case EXPORT_SELECTION_TYPES.ONLY_MATCHING:
606
- return jsxRuntime.jsx(uiKit.Text.Body, {
607
- intlMessage: _objectSpread$9(_objectSpread$9({}, messages.exportMatchingMessage), {}, {
608
- values: {
609
- count: matchingResourcesCount,
610
- resourceType: resourceTypePlural,
611
- b: getBold
612
- }
613
- })
614
- });
615
- case EXPORT_SELECTION_TYPES.ONLY_SELECTED:
616
- return jsxRuntime.jsx(uiKit.Text.Body, {
617
- intlMessage: _objectSpread$9(_objectSpread$9({}, messages.exportSelectedMessage), {}, {
618
- values: {
619
- count: selectedResourceIds.length,
620
- resourceType: resourceTypePlural,
621
- b: getBold
622
- }
623
- })
624
- });
625
- default:
626
- throw new UnexpectedSelectionTypeError(_valuesInstanceProperty__default["default"](formik).exportSelectionType);
627
- }
628
- }
629
-
630
- function TagList(props) {
631
- const _useTheme = designSystem.useTheme(),
632
- isNewTheme = _useTheme.isNewTheme;
633
- return jsxRuntime.jsx("div", {
634
- css: styles.tagListContainer({
635
- isNewTheme
636
- }),
637
- "data-testid": props['data-testid'],
638
- children: _mapInstanceProperty__default["default"](react.Children).call(react.Children, props.children, tag => jsxRuntime.jsx("div", {
639
- css: styles.tagListItem,
640
- children: tag
641
- }))
642
- });
643
- }
644
- TagList.displayName = 'TagList';
645
- TagList.propTypes = {};
646
-
647
- function ownKeys$8(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
648
- function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$8(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$8(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
649
- function AppliedFilters(_ref) {
650
- let filters = _ref.filters,
651
- onFilterRemove = _ref.onFilterRemove;
652
- const _useTheme = designSystem.useTheme(),
653
- isNewTheme = _useTheme.isNewTheme;
654
- if (isNewTheme) return jsxRuntime.jsx(uiKit.CollapsiblePanel, {
655
- condensed: true,
656
- isDefaultClosed: !Boolean(filters.length),
657
- header: jsxRuntime.jsx(uiKit.Text.Body, {
658
- intlMessage: _objectSpread$8(_objectSpread$8({}, messages.appliedFiltersMessage), {}, {
659
- values: {
660
- filtersCount: filters.length
661
- }
662
- })
663
- }),
664
- children: jsxRuntime.jsx(TagList, {
665
- children: _mapInstanceProperty__default["default"](filters).call(filters, filter => jsxRuntime.jsx("div", {
666
- "data-testid": "test-filter-".concat(filter),
667
- children: jsxRuntime.jsx(uiKit.Tag, {
668
- onRemove: () => {
669
- onFilterRemove(filter);
670
- },
671
- children: filter
672
- })
673
- }, filter))
507
+ }, filter))
674
508
  })
675
509
  });
676
510
  return jsxRuntime.jsxs(uiKit.Spacings.Stack, {
@@ -684,7 +518,7 @@ function AppliedFilters(_ref) {
684
518
  color: "neutral60"
685
519
  }), jsxRuntime.jsx(uiKit.Text.Body, {
686
520
  isBold: true,
687
- intlMessage: _objectSpread$8(_objectSpread$8({}, messages.appliedFiltersMessage), {}, {
521
+ intlMessage: _objectSpread$a(_objectSpread$a({}, messages.appliedFiltersMessage), {}, {
688
522
  values: {
689
523
  filtersCount: filters.length
690
524
  }
@@ -705,31 +539,10 @@ function AppliedFilters(_ref) {
705
539
  }
706
540
  AppliedFilters.propTypes = {};
707
541
 
708
- // TODO: @redesign cleanup
709
- function ExportBasedOnMyViewsSelectField() {
710
- const _useTheme = designSystem.useTheme(),
711
- themedValue = _useTheme.themedValue;
712
- return jsxRuntime.jsxs(uiKit.Spacings.Inline, {
713
- scale: "m",
714
- alignItems: "center",
715
- children: [jsxRuntime.jsx(uiKit.Text.Body, {
716
- intlMessage: messages.exportBasedOnMyViewsMessage
717
- }), jsxRuntime.jsx(uiKit.Text.Body, {
718
- intlMessage: messages.myViews
719
- }), jsxRuntime.jsx(uiKit.Constraints.Horizontal, {
720
- max: themedValue(4, 7),
721
- children: jsxRuntime.jsx(uiKit.SelectInput, {
722
- isDisabled: true,
723
- placeholder: "Default"
724
- })
725
- })]
726
- });
727
- }
728
-
729
- function ownKeys$7(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
730
- function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$7(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$7(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
542
+ function ownKeys$9(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
543
+ function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$9(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$9(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
731
544
  const IconPlaceholder = /*#__PURE__*/_styled__default["default"]("div", {
732
- target: "e1nl5t3e0"
545
+ target: "e1oion860"
733
546
  } )("width:", uiKit.customProperties.spacingM, ";" + ("" ));
734
547
  function AppliedSearchTerms(_ref) {
735
548
  let appliedSearchTerms = _ref.appliedSearchTerms;
@@ -739,7 +552,7 @@ function AppliedSearchTerms(_ref) {
739
552
  condensed: true,
740
553
  isDefaultClosed: !Boolean(appliedSearchTerms.length),
741
554
  header: jsxRuntime.jsx(uiKit.Text.Body, {
742
- intlMessage: _objectSpread$7(_objectSpread$7({}, messages.appliedSearchTermsMessage), {}, {
555
+ intlMessage: _objectSpread$9(_objectSpread$9({}, messages.appliedSearchTermsMessage), {}, {
743
556
  values: {
744
557
  searchTermsCount: appliedSearchTerms.length
745
558
  }
@@ -760,7 +573,7 @@ function AppliedSearchTerms(_ref) {
760
573
  color: "neutral60"
761
574
  }), jsxRuntime.jsx(uiKit.Text.Body, {
762
575
  isBold: true,
763
- intlMessage: _objectSpread$7(_objectSpread$7({}, messages.appliedSearchTermsMessage), {}, {
576
+ intlMessage: _objectSpread$9(_objectSpread$9({}, messages.appliedSearchTermsMessage), {}, {
764
577
  values: {
765
578
  searchTermsCount: appliedSearchTerms.length
766
579
  }
@@ -777,6 +590,172 @@ function AppliedSearchTerms(_ref) {
777
590
  }
778
591
  AppliedSearchTerms.propTypes = {};
779
592
 
593
+ // TODO: @redesign cleanup
594
+ function ExportBasedOnMyViewsSelectField() {
595
+ const _useTheme = designSystem.useTheme(),
596
+ themedValue = _useTheme.themedValue;
597
+ return jsxRuntime.jsxs(uiKit.Spacings.Inline, {
598
+ scale: "m",
599
+ alignItems: "center",
600
+ children: [jsxRuntime.jsx(uiKit.Text.Body, {
601
+ intlMessage: messages.exportBasedOnMyViewsMessage
602
+ }), jsxRuntime.jsx(uiKit.Text.Body, {
603
+ intlMessage: messages.myViews
604
+ }), jsxRuntime.jsx(uiKit.Constraints.Horizontal, {
605
+ max: themedValue(4, 7),
606
+ children: jsxRuntime.jsx(uiKit.SelectInput, {
607
+ isDisabled: true,
608
+ placeholder: "Default"
609
+ })
610
+ })]
611
+ });
612
+ }
613
+
614
+ function ownKeys$8(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
615
+ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$8(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$8(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
616
+ function renderFileNameError(key) {
617
+ switch (key) {
618
+ case 'missing':
619
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$8({}, messages.missingFileNameError));
620
+ case 'invalidInput':
621
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$8({}, messages.invalidFileNameError));
622
+ default:
623
+ return null;
624
+ }
625
+ }
626
+ function renderLanguageError(key) {
627
+ switch (key) {
628
+ case 'missing':
629
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$8({}, messages.missingLanguageError));
630
+ default:
631
+ return null;
632
+ }
633
+ }
634
+
635
+ function useExportResourcesContext() {
636
+ const context = React.useContext(ExportResourcesContext);
637
+ if (!context) {
638
+ throw new MissingExportResourceProviderError();
639
+ }
640
+ return context;
641
+ }
642
+
643
+ async function createExportOperation(_ref) {
644
+ let projectKey = _ref.projectKey,
645
+ graphQuery = _ref.graphQuery,
646
+ asyncDispatchFn = _ref.asyncDispatchFn;
647
+ const uri = "/proxy/export/".concat(projectKey, "/export-operations");
648
+ const response = await asyncDispatchFn(sdk.actions.post({
649
+ // FIXME: EXPORT is undefined
650
+ mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.EXPORT,
651
+ uri: uri,
652
+ headers: {
653
+ accept: 'application/json'
654
+ },
655
+ payload: {
656
+ query: graphQuery
657
+ }
658
+ }));
659
+ return response;
660
+ }
661
+
662
+ function ownKeys$7(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
663
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$7(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$7(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
664
+ function ExportConfirmationModal(props) {
665
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => {
666
+ var _applicationContext$p, _applicationContext$p2;
667
+ return {
668
+ projectName: (_applicationContext$p = applicationContext.project) === null || _applicationContext$p === void 0 ? void 0 : _applicationContext$p.name,
669
+ projectKey: (_applicationContext$p2 = applicationContext.project) === null || _applicationContext$p2 === void 0 ? void 0 : _applicationContext$p2.key
670
+ };
671
+ }),
672
+ projectName = _useApplicationContex.projectName,
673
+ projectKey = _useApplicationContex.projectKey;
674
+ const _useExportResourcesCo = useExportResourcesContext(),
675
+ formik = _useExportResourcesCo.formik,
676
+ allResourcesCount = _useExportResourcesCo.allResourcesCount,
677
+ matchingResourcesCount = _useExportResourcesCo.matchingResourcesCount,
678
+ selectedResourceIds = _useExportResourcesCo.selectedResourceIds,
679
+ resourceType = _useExportResourcesCo.resourceType,
680
+ setExportOperationStarted = _useExportResourcesCo.setExportOperationStarted;
681
+ const intl = reactIntl.useIntl();
682
+ const asyncDispatch = sdk.useAsyncDispatch();
683
+ const resourceTypePlural = resourceTypeToPlural({
684
+ resourceType: props.resourceType
685
+ });
686
+ const countInConfirmationMessage = () => {
687
+ switch (_valuesInstanceProperty__default["default"](formik).exportSelectionType) {
688
+ case EXPORT_SELECTION_TYPES.ALL_RESOURCES:
689
+ return allResourcesCount;
690
+ case EXPORT_SELECTION_TYPES.ONLY_MATCHING:
691
+ return matchingResourcesCount;
692
+ case EXPORT_SELECTION_TYPES.ONLY_SELECTED:
693
+ return selectedResourceIds.length;
694
+ default:
695
+ throw new UnexpectedSelectionTypeError(_valuesInstanceProperty__default["default"](formik).exportSelectionType);
696
+ }
697
+ };
698
+ return jsxRuntime.jsx(applicationComponents.ConfirmationDialog, {
699
+ dataAttributesPrimaryButton: {
700
+ 'data-testid': 'confirm-export-button'
701
+ },
702
+ title: intl.formatMessage(messages.confirmationTitle, {
703
+ resourceType: resourceTypePlural
704
+ }),
705
+ labelPrimary: intl.formatMessage(messages.exportConfirmationLabel, {
706
+ resourceType: resourceTypePlural
707
+ }),
708
+ isOpen: props.isOpen,
709
+ onClose: props.closeModal,
710
+ onCancel: props.closeModal,
711
+ onConfirm: async () => {
712
+ setExportOperationStarted(false);
713
+ const graphQuery = buildGraphQuery({
714
+ resourceType: resourceType,
715
+ selectedResourceIds: selectedResourceIds,
716
+ fields: _valuesInstanceProperty__default["default"](formik).fields,
717
+ exportSelectionType: _valuesInstanceProperty__default["default"](formik).exportSelectionType,
718
+ languages: _valuesInstanceProperty__default["default"](formik).languages
719
+ });
720
+ props.closeModal();
721
+ try {
722
+ const response = await createExportOperation({
723
+ projectKey,
724
+ graphQuery,
725
+ asyncDispatchFn: asyncDispatch
726
+ });
727
+ switch (response.state) {
728
+ case EXPORT_OPERATION_STATES.PROCESSING:
729
+ case EXPORT_OPERATION_STATES.COMPLETED:
730
+ setExportOperationStarted(true);
731
+ break;
732
+ default:
733
+ throw new UnexpectedExportOperationStateError(response.state);
734
+ }
735
+ } catch (errors) {
736
+ actionsGlobal.showApiErrorNotification({
737
+ errors
738
+ });
739
+ }
740
+ },
741
+ children: jsxRuntime.jsxs("div", {
742
+ children: [jsxRuntime.jsx(uiKit.Text.Body, {
743
+ intlMessage: _objectSpread$7(_objectSpread$7({}, messages.confirmationBodyPlan), {}, {
744
+ values: {
745
+ resourceType: resourceTypePlural,
746
+ projectName: projectName,
747
+ count: countInConfirmationMessage(),
748
+ bold: getBold
749
+ }
750
+ })
751
+ }), jsxRuntime.jsx(uiKit.Text.Body, {
752
+ intlMessage: messages.confirmationBodyQuestion
753
+ })]
754
+ })
755
+ });
756
+ }
757
+ ExportConfirmationModal.propTypes = {};
758
+
780
759
  function ownKeys$6(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
781
760
  function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$6(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$6(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
782
761
  function normalizeFields(fields) {
@@ -825,29 +804,144 @@ function ExportFields(_ref2) {
825
804
  fields: fields
826
805
  })
827
806
  });
828
- return jsxRuntime.jsxs(uiKit.Spacings.Stack, {
829
- scale: "s",
830
- children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
831
- scale: "s",
832
- alignItems: "flex-start",
833
- children: [jsxRuntime.jsx(uiKit.AngleRightIcon, {
834
- "data-testid": "test-arrowRight",
835
- size: "medium",
836
- color: "neutral60"
837
- }), jsxRuntime.jsx(uiKit.Text.Body, {
838
- isBold: true,
839
- intlMessage: _objectSpread$6(_objectSpread$6({}, messages.columnsMessage), {}, {
807
+ return jsxRuntime.jsxs(uiKit.Spacings.Stack, {
808
+ scale: "s",
809
+ children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
810
+ scale: "s",
811
+ alignItems: "flex-start",
812
+ children: [jsxRuntime.jsx(uiKit.AngleRightIcon, {
813
+ "data-testid": "test-arrowRight",
814
+ size: "medium",
815
+ color: "neutral60"
816
+ }), jsxRuntime.jsx(uiKit.Text.Body, {
817
+ isBold: true,
818
+ intlMessage: _objectSpread$6(_objectSpread$6({}, messages.columnsMessage), {}, {
819
+ values: {
820
+ columnsCount: fields.length
821
+ }
822
+ })
823
+ })]
824
+ }), jsxRuntime.jsx(FieldsRenderer, {
825
+ fields: fields
826
+ })]
827
+ });
828
+ }
829
+ ExportFields.propTypes = {};
830
+
831
+ function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
832
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
833
+ function ExportSelectionRadioButtons() {
834
+ const _useTheme = designSystem.useTheme(),
835
+ isNewTheme = _useTheme.isNewTheme;
836
+ const intl = reactIntl.useIntl();
837
+ const _useExportResourcesCo = useExportResourcesContext(),
838
+ formik = _useExportResourcesCo.formik,
839
+ resourceType = _useExportResourcesCo.resourceType,
840
+ allResourcesCount = _useExportResourcesCo.allResourcesCount,
841
+ matchingResourcesCount = _useExportResourcesCo.matchingResourcesCount,
842
+ selectedResourceIds = _useExportResourcesCo.selectedResourceIds;
843
+ const resourceTypePlural = resourceTypeToPlural({
844
+ resourceType: resourceType
845
+ });
846
+ return jsxRuntime.jsx(uiKit.Spacings.Inline, {
847
+ scale: "xl",
848
+ children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
849
+ name: "exportSelectionType",
850
+ value: _valuesInstanceProperty__default["default"](formik).exportSelectionType,
851
+ direction: "inline",
852
+ directionProps: {
853
+ scale: 'xl'
854
+ },
855
+ onChange: formik.handleChange,
856
+ children: [jsxRuntime.jsx(uiKit.RadioInput.Option, {
857
+ value: EXPORT_SELECTION_TYPES.ALL_RESOURCES,
858
+ "data-testid": 'test-all-resources',
859
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
860
+ isBold: !isNewTheme,
861
+ intlMessage: _objectSpread$5(_objectSpread$5({}, messages.exportAllResources), {}, {
862
+ values: {
863
+ resourceType: resourceTypePlural,
864
+ count: allResourcesCount
865
+ }
866
+ })
867
+ })
868
+ }), jsxRuntime.jsx(uiKit.RadioInput.Option, {
869
+ value: EXPORT_SELECTION_TYPES.ONLY_MATCHING,
870
+ "data-testid": 'test-only-matching',
871
+ isDisabled: !Boolean(matchingResourcesCount),
872
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
873
+ isBold: !isNewTheme,
874
+ intlMessage: _objectSpread$5(_objectSpread$5({}, messages.exportOnlyMatchingResources), {}, {
875
+ values: {
876
+ count: matchingResourcesCount || intl.formatMessage(messages.nothingApplied)
877
+ }
878
+ })
879
+ })
880
+ }), jsxRuntime.jsx(uiKit.RadioInput.Option, {
881
+ value: EXPORT_SELECTION_TYPES.ONLY_SELECTED,
882
+ "data-testid": 'test-only-selected',
883
+ isDisabled: !Boolean(selectedResourceIds.length),
884
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
885
+ isBold: !isNewTheme,
886
+ intlMessage: _objectSpread$5(_objectSpread$5({}, messages.exportOnlySelectedResources), {}, {
887
+ values: {
888
+ resourceType: resourceTypePlural,
889
+ count: selectedResourceIds.length
890
+ }
891
+ })
892
+ })
893
+ })]
894
+ })
895
+ });
896
+ }
897
+
898
+ function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
899
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$4(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
900
+ function ExportTextMessage() {
901
+ const _useExportResourcesCo = useExportResourcesContext(),
902
+ resourceType = _useExportResourcesCo.resourceType,
903
+ allResourcesCount = _useExportResourcesCo.allResourcesCount,
904
+ selectedResourceIds = _useExportResourcesCo.selectedResourceIds,
905
+ matchingResourcesCount = _useExportResourcesCo.matchingResourcesCount,
906
+ formik = _useExportResourcesCo.formik;
907
+ const resourceTypePlural = resourceTypeToPlural({
908
+ resourceType: resourceType
909
+ });
910
+ switch (_valuesInstanceProperty__default["default"](formik).exportSelectionType) {
911
+ case EXPORT_SELECTION_TYPES.ALL_RESOURCES:
912
+ return jsxRuntime.jsx(uiKit.Text.Body, {
913
+ intlMessage: _objectSpread$4(_objectSpread$4({}, messages.exportAllMessage), {}, {
840
914
  values: {
841
- columnsCount: fields.length
915
+ count: allResourcesCount,
916
+ resourceType: resourceTypePlural,
917
+ b: getBold
842
918
  }
843
919
  })
844
- })]
845
- }), jsxRuntime.jsx(FieldsRenderer, {
846
- fields: fields
847
- })]
848
- });
920
+ });
921
+ case EXPORT_SELECTION_TYPES.ONLY_MATCHING:
922
+ return jsxRuntime.jsx(uiKit.Text.Body, {
923
+ intlMessage: _objectSpread$4(_objectSpread$4({}, messages.exportMatchingMessage), {}, {
924
+ values: {
925
+ count: matchingResourcesCount,
926
+ resourceType: resourceTypePlural,
927
+ b: getBold
928
+ }
929
+ })
930
+ });
931
+ case EXPORT_SELECTION_TYPES.ONLY_SELECTED:
932
+ return jsxRuntime.jsx(uiKit.Text.Body, {
933
+ intlMessage: _objectSpread$4(_objectSpread$4({}, messages.exportSelectedMessage), {}, {
934
+ values: {
935
+ count: selectedResourceIds.length,
936
+ resourceType: resourceTypePlural,
937
+ b: getBold
938
+ }
939
+ })
940
+ });
941
+ default:
942
+ throw new UnexpectedSelectionTypeError(_valuesInstanceProperty__default["default"](formik).exportSelectionType);
943
+ }
849
944
  }
850
- ExportFields.propTypes = {};
851
945
 
852
946
  const ExportSelection = () => {
853
947
  const _useTheme = designSystem.useTheme(),
@@ -911,8 +1005,8 @@ const ExportSelection = () => {
911
1005
  });
912
1006
  };
913
1007
 
914
- function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
915
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1008
+ function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1009
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
916
1010
  const ExportProperties = props => {
917
1011
  const _useTheme = designSystem.useTheme(),
918
1012
  isNewTheme = _useTheme.isNewTheme;
@@ -929,36 +1023,15 @@ const ExportProperties = props => {
929
1023
  return jsxRuntime.jsx(uiKit.CollapsiblePanel, {
930
1024
  header: jsxRuntime.jsx(uiKit.Text.Body, {
931
1025
  isBold: true,
932
- intlMessage: _objectSpread$5({}, messages.propertiesPanelLabel)
1026
+ intlMessage: _objectSpread$3({}, messages.propertiesPanelLabel)
933
1027
  }),
934
1028
  children: props.renderProperties()
935
1029
  });
936
1030
  };
937
1031
  ExportProperties.propTypes = {};
938
1032
 
939
- function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
940
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$4(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
941
- function renderFileNameError(key) {
942
- switch (key) {
943
- case 'missing':
944
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.missingFileNameError));
945
- case 'invalidInput':
946
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.invalidFileNameError));
947
- default:
948
- return null;
949
- }
950
- }
951
- function renderLanguageError(key) {
952
- switch (key) {
953
- case 'missing':
954
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.missingLanguageError));
955
- default:
956
- return null;
957
- }
958
- }
959
-
960
- function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
961
- function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1033
+ function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1034
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$2(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
962
1035
  const outputFormatOptions = [{
963
1036
  value: OUTPUT_FORMATS.JSON,
964
1037
  label: 'JSON'
@@ -992,12 +1065,12 @@ function ExportFileSettings(props) {
992
1065
  children: [jsxRuntime.jsx(applicationComponents.PageContentNarrow, {
993
1066
  children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
994
1067
  scale: "xl",
995
- children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$3(_objectSpread$3({
1068
+ children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({
996
1069
  isDisabled: true
997
1070
  }, formik.getFieldProps('outputFormat')), {}, {
998
1071
  title: intl.formatMessage(messages.outputFormat),
999
1072
  options: outputFormatOptions
1000
- })), jsxRuntime.jsx(uiKit.TextField, _objectSpread$3(_objectSpread$3({
1073
+ })), jsxRuntime.jsx(uiKit.TextField, _objectSpread$2(_objectSpread$2({
1001
1074
  title: intl.formatMessage(messages.fileName)
1002
1075
  }, formik.getFieldProps('fileName')), {}, {
1003
1076
  touched: formik.touched.fileName,
@@ -1005,7 +1078,7 @@ function ExportFileSettings(props) {
1005
1078
  renderError: renderFileNameError
1006
1079
  })), jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1007
1080
  scale: "xs",
1008
- children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$3(_objectSpread$3({
1081
+ children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({
1009
1082
  id: "languages",
1010
1083
  title: intl.formatMessage(messages.localLanguage),
1011
1084
  options: mapLanguagesToOptions(languages),
@@ -1042,13 +1115,13 @@ function ExportFileSettings(props) {
1042
1115
  scale: "l",
1043
1116
  children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1044
1117
  scale: "l",
1045
- children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$3(_objectSpread$3({
1118
+ children: [jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({
1046
1119
  isDisabled: true
1047
1120
  }, formik.getFieldProps('outputFormat')), {}, {
1048
1121
  title: intl.formatMessage(messages.outputFormat),
1049
1122
  options: outputFormatOptions,
1050
1123
  horizontalConstraint: 7
1051
- })), jsxRuntime.jsx(uiKit.TextField, _objectSpread$3(_objectSpread$3({
1124
+ })), jsxRuntime.jsx(uiKit.TextField, _objectSpread$2(_objectSpread$2({
1052
1125
  title: intl.formatMessage(messages.fileName)
1053
1126
  }, formik.getFieldProps('fileName')), {}, {
1054
1127
  touched: formik.touched.fileName,
@@ -1057,7 +1130,7 @@ function ExportFileSettings(props) {
1057
1130
  horizontalConstraint: 7
1058
1131
  }))]
1059
1132
  }), jsxRuntime.jsx(uiKit.Spacings.Inline, {
1060
- children: jsxRuntime.jsx(uiKit.SelectField, _objectSpread$3(_objectSpread$3({
1133
+ children: jsxRuntime.jsx(uiKit.SelectField, _objectSpread$2(_objectSpread$2({
1061
1134
  id: "languages",
1062
1135
  title: jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1063
1136
  scale: "s",
@@ -1097,122 +1170,6 @@ function ExportFileSettings(props) {
1097
1170
  ExportFileSettings.displayName = 'ExportFileSettings';
1098
1171
  ExportFileSettings.propTypes = {};
1099
1172
 
1100
- async function createExportOperation(_ref) {
1101
- let projectKey = _ref.projectKey,
1102
- graphQuery = _ref.graphQuery,
1103
- asyncDispatchFn = _ref.asyncDispatchFn;
1104
- const uri = "/proxy/export/".concat(projectKey, "/export-operations");
1105
- const response = await asyncDispatchFn(sdk.actions.post({
1106
- // FIXME: EXPORT is undefined
1107
- mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.EXPORT,
1108
- uri: uri,
1109
- headers: {
1110
- accept: 'application/json'
1111
- },
1112
- payload: {
1113
- query: graphQuery
1114
- }
1115
- }));
1116
- return response;
1117
- }
1118
-
1119
- function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1120
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$2(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1121
- function ExportConfirmationModal(props) {
1122
- const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => {
1123
- var _applicationContext$p, _applicationContext$p2;
1124
- return {
1125
- projectName: (_applicationContext$p = applicationContext.project) === null || _applicationContext$p === void 0 ? void 0 : _applicationContext$p.name,
1126
- projectKey: (_applicationContext$p2 = applicationContext.project) === null || _applicationContext$p2 === void 0 ? void 0 : _applicationContext$p2.key
1127
- };
1128
- }),
1129
- projectName = _useApplicationContex.projectName,
1130
- projectKey = _useApplicationContex.projectKey;
1131
- const _useExportResourcesCo = useExportResourcesContext(),
1132
- formik = _useExportResourcesCo.formik,
1133
- allResourcesCount = _useExportResourcesCo.allResourcesCount,
1134
- matchingResourcesCount = _useExportResourcesCo.matchingResourcesCount,
1135
- selectedResourceIds = _useExportResourcesCo.selectedResourceIds,
1136
- resourceType = _useExportResourcesCo.resourceType,
1137
- setExportOperationStarted = _useExportResourcesCo.setExportOperationStarted;
1138
- const intl = reactIntl.useIntl();
1139
- const asyncDispatch = sdk.useAsyncDispatch();
1140
- const resourceTypePlural = resourceTypeToPlural({
1141
- resourceType: props.resourceType
1142
- });
1143
- const countInConfirmationMessage = () => {
1144
- switch (_valuesInstanceProperty__default["default"](formik).exportSelectionType) {
1145
- case EXPORT_SELECTION_TYPES.ALL_RESOURCES:
1146
- return allResourcesCount;
1147
- case EXPORT_SELECTION_TYPES.ONLY_MATCHING:
1148
- return matchingResourcesCount;
1149
- case EXPORT_SELECTION_TYPES.ONLY_SELECTED:
1150
- return selectedResourceIds.length;
1151
- default:
1152
- throw new UnexpectedSelectionTypeError(_valuesInstanceProperty__default["default"](formik).exportSelectionType);
1153
- }
1154
- };
1155
- return jsxRuntime.jsx(applicationComponents.ConfirmationDialog, {
1156
- dataAttributesPrimaryButton: {
1157
- 'data-testid': 'confirm-export-button'
1158
- },
1159
- title: intl.formatMessage(messages.confirmationTitle, {
1160
- resourceType: resourceTypePlural
1161
- }),
1162
- labelPrimary: intl.formatMessage(messages.exportConfirmationLabel, {
1163
- resourceType: resourceTypePlural
1164
- }),
1165
- isOpen: props.isOpen,
1166
- onClose: props.closeModal,
1167
- onCancel: props.closeModal,
1168
- onConfirm: async () => {
1169
- setExportOperationStarted(false);
1170
- const graphQuery = buildGraphQuery({
1171
- resourceType: resourceType,
1172
- selectedResourceIds: selectedResourceIds,
1173
- fields: _valuesInstanceProperty__default["default"](formik).fields,
1174
- exportSelectionType: _valuesInstanceProperty__default["default"](formik).exportSelectionType,
1175
- languages: _valuesInstanceProperty__default["default"](formik).languages
1176
- });
1177
- props.closeModal();
1178
- try {
1179
- const response = await createExportOperation({
1180
- projectKey,
1181
- graphQuery,
1182
- asyncDispatchFn: asyncDispatch
1183
- });
1184
- switch (response.state) {
1185
- case EXPORT_OPERATION_STATES.PROCESSING:
1186
- case EXPORT_OPERATION_STATES.COMPLETED:
1187
- setExportOperationStarted(true);
1188
- break;
1189
- default:
1190
- throw new UnexpectedExportOperationStateError(response.state);
1191
- }
1192
- } catch (errors) {
1193
- actionsGlobal.showApiErrorNotification({
1194
- errors
1195
- });
1196
- }
1197
- },
1198
- children: jsxRuntime.jsxs("div", {
1199
- children: [jsxRuntime.jsx(uiKit.Text.Body, {
1200
- intlMessage: _objectSpread$2(_objectSpread$2({}, messages.confirmationBodyPlan), {}, {
1201
- values: {
1202
- resourceType: resourceTypePlural,
1203
- projectName: projectName,
1204
- count: countInConfirmationMessage(),
1205
- bold: getBold
1206
- }
1207
- })
1208
- }), jsxRuntime.jsx(uiKit.Text.Body, {
1209
- intlMessage: messages.confirmationBodyQuestion
1210
- })]
1211
- })
1212
- });
1213
- }
1214
- ExportConfirmationModal.propTypes = {};
1215
-
1216
1173
  function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1217
1174
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$1(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$1(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1218
1175
  const getExportLogsLink = (projectKey, msg) => jsxRuntime.jsx(uiKit.Link, {
@@ -1247,6 +1204,76 @@ function ExportOperationSuccessMessage(_ref) {
1247
1204
  }
1248
1205
  ExportOperationSuccessMessage.propTypes = {};
1249
1206
 
1207
+ const ExportResourcesContext = /*#__PURE__*/React.createContext();
1208
+
1209
+ PropTypes__default["default"].shape({
1210
+ resourceType: PropTypes__default["default"].string.isRequired,
1211
+ outputFormat: PropTypes__default["default"].string,
1212
+ isOpen: PropTypes__default["default"].bool.isRequired,
1213
+ closeModal: PropTypes__default["default"].func.isRequired,
1214
+ allResourcesCount: PropTypes__default["default"].number.isRequired,
1215
+ matchingResourcesCount: PropTypes__default["default"].number,
1216
+ selectedResourceIds: PropTypes__default["default"].array,
1217
+ // TODO: Circular reference
1218
+ fields: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
1219
+ key: PropTypes__default["default"].string.isRequired,
1220
+ label: PropTypes__default["default"].string,
1221
+ isLocalized: PropTypes__default["default"].bool,
1222
+ fields: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
1223
+ key: PropTypes__default["default"].string.isRequired,
1224
+ label: PropTypes__default["default"].string,
1225
+ isLocalized: PropTypes__default["default"].bool
1226
+ }))
1227
+ })).isRequired,
1228
+ exportSelectionType: PropTypes__default["default"].string,
1229
+ appliedSearchTerms: PropTypes__default["default"].array,
1230
+ appliedFilters: PropTypes__default["default"].array,
1231
+ renderProperties: PropTypes__default["default"].func
1232
+ }).isRequired;
1233
+
1234
+ const ExportResourcesContextProvider = props => {
1235
+ var _context;
1236
+ const todayFormatted = moment__default["default"]().format('DD-MM-YY_HH-mm');
1237
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
1238
+ language: applicationContext.dataLocale
1239
+ })),
1240
+ language = _useApplicationContex.language;
1241
+ const formik$1 = formik.useFormik({
1242
+ initialValues: {
1243
+ outputFormat: props.outputFormat,
1244
+ fileName: _concatInstanceProperty__default["default"](_context = "".concat(resourceTypeToPlural({
1245
+ resourceType: props.resourceType,
1246
+ isUpperCase: true
1247
+ }), "_Export_")).call(_context, todayFormatted),
1248
+ languages: [language],
1249
+ fields: props.fields,
1250
+ appliedSearchTerms: props.appliedSearchTerms,
1251
+ appliedFilters: props.appliedFilters,
1252
+ exportSelectionType: props.exportSelectionType,
1253
+ isAllLanguagesChecked: false
1254
+ },
1255
+ validate
1256
+ });
1257
+ const _React$useState = React__default["default"].useState(false),
1258
+ _React$useState2 = _slicedToArray(_React$useState, 2),
1259
+ exportOperationStarted = _React$useState2[0],
1260
+ setExportOperationStarted = _React$useState2[1];
1261
+ return jsxRuntime.jsx(ExportResourcesContext.Provider, {
1262
+ value: {
1263
+ formik: formik$1,
1264
+ resourceType: props.resourceType,
1265
+ allResourcesCount: props.allResourcesCount,
1266
+ matchingResourcesCount: props.matchingResourcesCount,
1267
+ selectedResourceIds: props.selectedResourceIds,
1268
+ exportOperationStarted,
1269
+ setExportOperationStarted
1270
+ },
1271
+ children: props.children
1272
+ });
1273
+ };
1274
+ ExportResourcesContextProvider.displayName = 'ExportResourcesContextProvider';
1275
+ ExportResourcesContextProvider.propTypes = {};
1276
+
1250
1277
  const _excluded = ["renderProperties"];
1251
1278
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1252
1279
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }