@commercetools-frontend-extensions/export-resources-modal 4.2.1 → 4.3.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.
@@ -26,7 +26,6 @@ var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
26
26
  var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
27
27
  var _wrapNativeSuper = require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
28
28
  var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
29
- var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
30
29
  var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
31
30
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
32
31
  var omitEmpty = require('omit-empty-es');
@@ -36,14 +35,15 @@ var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
36
35
  var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
37
36
  var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
38
37
  var moment = require('moment');
38
+ var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
39
+ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
40
+ var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
39
41
  var experimentalComponents = require('@commercetools-frontend/experimental-components');
40
42
  var sdk = require('@commercetools-frontend/sdk');
41
43
  var actionsGlobal = require('@commercetools-frontend/actions-global');
42
44
  var constants = require('@commercetools-frontend/constants');
43
45
  var _styled = require('@emotion/styled/base');
44
- var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
45
46
  var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
46
- var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
47
47
  var throttle = require('lodash/throttle');
48
48
  var react = require('@emotion/react');
49
49
  var get = require('lodash/get');
@@ -65,7 +65,6 @@ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defin
65
65
  var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
66
66
  var React__default = /*#__PURE__*/_interopDefault(React);
67
67
  var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
68
- var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
69
68
  var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
70
69
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
71
70
  var omitEmpty__default = /*#__PURE__*/_interopDefault(omitEmpty);
@@ -75,10 +74,11 @@ var _Set__default = /*#__PURE__*/_interopDefault(_Set);
75
74
  var _sortInstanceProperty__default = /*#__PURE__*/_interopDefault(_sortInstanceProperty);
76
75
  var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfInstanceProperty);
77
76
  var moment__default = /*#__PURE__*/_interopDefault(moment);
78
- var _styled__default = /*#__PURE__*/_interopDefault(_styled);
77
+ var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
78
+ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
79
79
  var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
80
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
80
81
  var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
81
- var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
82
82
  var throttle__default = /*#__PURE__*/_interopDefault(throttle);
83
83
  var get__default = /*#__PURE__*/_interopDefault(get);
84
84
 
@@ -268,17 +268,22 @@ var messages = reactIntl.defineMessages({
268
268
  id: 'ExportResourcesModal.exportSettings',
269
269
  description: 'Label for Export Settings',
270
270
  defaultMessage: 'Settings'
271
+ },
272
+ selected: {
273
+ id: 'ExportResourcesModal.selected',
274
+ description: 'Label for total Selected',
275
+ defaultMessage: '{total} selected'
271
276
  }
272
277
  });
273
278
 
274
- 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; }
275
- 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; }
279
+ function ownKeys$7(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; }
280
+ function _objectSpread$7(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$7(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$7(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
276
281
  function renderFileNameError(key) {
277
282
  switch (key) {
278
283
  case 'missing':
279
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.missingFileNameError));
284
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$7({}, messages.missingFileNameError));
280
285
  case 'invalidInput':
281
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.invalidFileNameError));
286
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$7({}, messages.invalidFileNameError));
282
287
  default:
283
288
  return null;
284
289
  }
@@ -286,7 +291,7 @@ function renderFileNameError(key) {
286
291
  function renderLocaleError(key) {
287
292
  switch (key) {
288
293
  case 'missing':
289
- return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.missingLocaleError));
294
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$7({}, messages.missingLocaleError));
290
295
  default:
291
296
  return null;
292
297
  }
@@ -356,10 +361,10 @@ function useExportResourcesContext() {
356
361
  return context;
357
362
  }
358
363
 
359
- function checkAtLeastOneFieldChecked$1(fields) {
360
- return _someInstanceProperty__default["default"](fields).call(fields, field => {
364
+ function checkAtLeastOneFieldChecked(fields) {
365
+ return fields?.some(field => {
361
366
  if (field.fields) {
362
- return field.isChecked || checkAtLeastOneFieldChecked$1(field.fields);
367
+ return field.isChecked || checkAtLeastOneFieldChecked(field.fields);
363
368
  }
364
369
  return field.isChecked;
365
370
  });
@@ -389,7 +394,7 @@ function validate(_ref) {
389
394
  if (step === 2) {
390
395
  const allFields = _reduceInstanceProperty__default["default"](groups).call(groups, (acc, group) => _concatInstanceProperty__default["default"](acc).call(acc, group.fields), []);
391
396
  const checkedFieldsCount = _filterInstanceProperty__default["default"](allFields).call(allFields, field => {
392
- if (field.fields) return checkAtLeastOneFieldChecked$1(field.fields);
397
+ if (field.fields) return checkAtLeastOneFieldChecked(field.fields);
393
398
  return !field.isRequired && !field.isReadOnly && field.isChecked;
394
399
  }).length;
395
400
  if (checkedFieldsCount < 1) {
@@ -402,6 +407,7 @@ function validate(_ref) {
402
407
 
403
408
  const Z_INDEX_DROPDOWN = 30000;
404
409
  const OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION = 'OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION';
410
+ const OPERATIONS_EXPORT_RESOURCES_MODAL_EXPANDED_GROUP = 'OPERATIONS_EXPORT_RESOURCES_MODAL_EXPANDED_GROUP';
405
411
 
406
412
  const EXPORT_OPERATION_STATES = {
407
413
  PROCESSING: 'processing',
@@ -539,8 +545,8 @@ function tmpBuildFilters(selectedResourceIds) {
539
545
  return [`id in (${formattedIds})`];
540
546
  }
541
547
 
542
- 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; }
543
- 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; }
548
+ function ownKeys$6(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; }
549
+ function _objectSpread$6(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$6(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$6(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
544
550
  const updateFieldGroupsWithIsCheckedValue = (groups, cachedSelectedGroups) => {
545
551
  const updateFields = (fields, parentChecked, fieldName) => {
546
552
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
@@ -561,14 +567,14 @@ const updateFieldGroupsWithIsCheckedValue = (groups, cachedSelectedGroups) => {
561
567
  isChecked = false;
562
568
  field.fields = updatedFields;
563
569
  }
564
- return _objectSpread$4(_objectSpread$4({}, field), {}, {
570
+ return _objectSpread$6(_objectSpread$6({}, field), {}, {
565
571
  isChecked
566
572
  });
567
573
  });
568
574
  };
569
575
  return _mapInstanceProperty__default["default"](groups).call(groups, group => {
570
576
  const updatedFields = updateFields(group.fields, false, group.groupLabel);
571
- return _objectSpread$4(_objectSpread$4({}, group), {}, {
577
+ return _objectSpread$6(_objectSpread$6({}, group), {}, {
572
578
  fields: updatedFields
573
579
  });
574
580
  });
@@ -580,19 +586,83 @@ const updateFieldGroupWithAdditionalFieldExtensions = groups => {
580
586
  if (field.fields) {
581
587
  field.fields = updateAdditionalFieldExtensions(field.fields, updatedAdditionalFieldExtensions);
582
588
  }
583
- return _objectSpread$4(_objectSpread$4({}, field), {}, {
589
+ return _objectSpread$6(_objectSpread$6({}, field), {}, {
584
590
  additionalFieldExtensions: updatedAdditionalFieldExtensions
585
591
  });
586
592
  });
587
593
  }
594
+ function combineDependentGroupNames(fields) {
595
+ return _reduceInstanceProperty__default["default"](fields).call(fields, (acc, field) => {
596
+ if (field.dependentGroupNames) {
597
+ acc = [...acc, ...field.dependentGroupNames];
598
+ }
599
+ if (field.fields) {
600
+ acc = [...acc, ...combineDependentGroupNames(field.fields)];
601
+ }
602
+ return acc;
603
+ }, []);
604
+ }
588
605
  return _mapInstanceProperty__default["default"](groups).call(groups, group => {
589
- return _objectSpread$4(_objectSpread$4({}, group), {}, {
606
+ return _objectSpread$6(_objectSpread$6({}, group), {}, {
607
+ dependentGroupNames: combineDependentGroupNames(group.fields),
590
608
  fields: updateAdditionalFieldExtensions(group.fields, group.additionalFieldExtensions || [])
591
609
  });
592
610
  });
593
611
  };
612
+ const updateFieldGroupsWithIsExpandedValue = (groups, cachedExpandedGroups) => {
613
+ function updateFields(fields, groupName) {
614
+ return _mapInstanceProperty__default["default"](fields).call(fields, field => {
615
+ let isExpanded = null;
616
+ if (field.isExpandable) {
617
+ isExpanded = cachedExpandedGroups[`${groupName}.${field.name}`] ?? field.isExpanded ?? false;
618
+ }
619
+ if (field.fields) {
620
+ field.fields = updateFields(field.fields, groupName);
621
+ }
622
+ if (isExpanded !== null) {
623
+ return _objectSpread$6(_objectSpread$6({}, field), {}, {
624
+ isExpanded
625
+ });
626
+ }
627
+ return field;
628
+ });
629
+ }
630
+ return _mapInstanceProperty__default["default"](groups).call(groups, group => {
631
+ const updatedFields = updateFields(group.fields, group.groupName);
632
+ return _objectSpread$6(_objectSpread$6({}, group), {}, {
633
+ isExpanded: cachedExpandedGroups[group.groupName] ?? group.isExpanded ?? false,
634
+ fields: updatedFields
635
+ });
636
+ });
637
+ };
638
+
639
+ const isRequiredGroupChecked = function () {
640
+ let dependentGroupNames = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
641
+ let formik = arguments.length > 1 ? arguments[1] : undefined;
642
+ let result = false;
643
+ if (dependentGroupNames?.length) {
644
+ _someInstanceProperty__default["default"](dependentGroupNames).call(dependentGroupNames, dependentGroupName => {
645
+ var _context;
646
+ const dependentGroup = _findInstanceProperty__default["default"](_context = _valuesInstanceProperty__default["default"](formik).groups).call(_context, group => group.groupName === dependentGroupName);
647
+ if (dependentGroup) {
648
+ result = checkAtLeastOneFieldChecked(dependentGroup.fields);
649
+ }
650
+ return result;
651
+ });
652
+ }
653
+ return result;
654
+ };
655
+ const checkAllFieldsSelected = fields => {
656
+ return _everyInstanceProperty__default["default"](fields).call(fields, field => {
657
+ if (field.fields) {
658
+ return checkAllFieldsSelected(field.fields);
659
+ }
660
+ return field.isChecked || field.isRequired || field.isReadOnly;
661
+ });
662
+ };
594
663
 
595
664
  const useInitialValues = props => {
665
+ var _context;
596
666
  const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
597
667
  locale: applicationContext.dataLocale
598
668
  })),
@@ -604,8 +674,17 @@ const useInitialValues = props => {
604
674
  const _useStorage = experimentalComponents.useStorage(`${projectKey}/${OPERATIONS_EXPORT_RESOURCES_MODAL_SELECTION}`, {}),
605
675
  _useStorage2 = _slicedToArray(_useStorage, 1),
606
676
  cachedSelectedGroups = _useStorage2[0];
677
+ const _useStorage3 = experimentalComponents.useStorage(`${projectKey}/${OPERATIONS_EXPORT_RESOURCES_MODAL_EXPANDED_GROUP}`, {
678
+ [props.resourceType]: _reduceInstanceProperty__default["default"](_context = props.fieldGroups).call(_context, (acc, group) => {
679
+ acc[group.groupName] = group.isExpanded;
680
+ return acc;
681
+ }, {})
682
+ }),
683
+ _useStorage4 = _slicedToArray(_useStorage3, 1),
684
+ cachedExpandedGroups = _useStorage4[0];
607
685
  return React__default["default"].useMemo(() => {
608
- const groups = updateFieldGroupsWithIsCheckedValue(props.fieldGroups, cachedSelectedGroups[props.resourceType] || {});
686
+ let groups = updateFieldGroupsWithIsCheckedValue(props.fieldGroups, cachedSelectedGroups[props.resourceType] || {});
687
+ groups = updateFieldGroupsWithIsExpandedValue(groups, cachedExpandedGroups[props.resourceType] || {});
609
688
  return {
610
689
  outputFormat: props.outputFormat,
611
690
  fileName: `${resourceTypeToFileName({
@@ -616,7 +695,7 @@ const useInitialValues = props => {
616
695
  locales: [locale],
617
696
  groups: updateFieldGroupWithAdditionalFieldExtensions(groups)
618
697
  };
619
- }, [props.fieldGroups, props.outputFormat, props.resourceType, cachedSelectedGroups, locale]);
698
+ }, [props.fieldGroups, props.resourceType, props.outputFormat, cachedSelectedGroups, cachedExpandedGroups, locale]);
620
699
  };
621
700
 
622
701
  async function createExportOperation(_ref) {
@@ -726,8 +805,8 @@ const useStartExportOperation = props => {
726
805
  };
727
806
  };
728
807
 
729
- 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; }
730
- 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; }
808
+ 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; }
809
+ 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; }
731
810
  function ExportScopeSection() {
732
811
  const _useExportResourcesCo = useExportResourcesContext(),
733
812
  exportType = _useExportResourcesCo.exportType,
@@ -749,7 +828,7 @@ function ExportScopeSection() {
749
828
  children: [jsxRuntime.jsx(uiKit.RadioInput.Option, {
750
829
  value: EXPORT_TYPES.ALL,
751
830
  children: jsxRuntime.jsx(uiKit.Text.Body, {
752
- intlMessage: _objectSpread$3(_objectSpread$3({}, resourceTypeMessages[resourceType].exportScopeAll), {}, {
831
+ intlMessage: _objectSpread$5(_objectSpread$5({}, resourceTypeMessages[resourceType].exportScopeAll), {}, {
753
832
  values: {
754
833
  total: new Intl.NumberFormat().format(totalResourcesCount)
755
834
  }
@@ -760,7 +839,7 @@ function ExportScopeSection() {
760
839
  isDisabled: !originalSelectedResourceIds?.length,
761
840
  children: jsxRuntime.jsx(uiKit.Text.Body, {
762
841
  tone: !originalSelectedResourceIds?.length ? 'tertiary' : undefined,
763
- intlMessage: originalSelectedResourceIds?.length ? _objectSpread$3(_objectSpread$3({}, resourceTypeMessages[resourceType].exportScopeSelected), {}, {
842
+ intlMessage: originalSelectedResourceIds?.length ? _objectSpread$5(_objectSpread$5({}, resourceTypeMessages[resourceType].exportScopeSelected), {}, {
764
843
  values: {
765
844
  total: new Intl.NumberFormat().format(originalSelectedResourceIds?.length ?? 0)
766
845
  }
@@ -861,7 +940,7 @@ const ExportFileSettingsStep = () => {
861
940
  });
862
941
  };
863
942
 
864
- var _ref = {
943
+ var _ref$1 = {
865
944
  name: "ti75j2",
866
945
  styles: "margin:0"
867
946
  } ;
@@ -877,7 +956,7 @@ const NoSearchResults = () => {
877
956
  intlMessage: messages.suggestions
878
957
  })]
879
958
  }), jsxRuntime.jsxs("ul", {
880
- css: _ref,
959
+ css: _ref$1,
881
960
  children: [jsxRuntime.jsx("li", {
882
961
  children: jsxRuntime.jsx(uiKit.Text.Body, {
883
962
  intlMessage: messages.checkTheSpelling
@@ -891,158 +970,342 @@ const NoSearchResults = () => {
891
970
  });
892
971
  };
893
972
 
894
- 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; }
895
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context6, _context7; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context6 = ownKeys$2(Object(t), !0)).call(_context6, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context7 = ownKeys$2(Object(t))).call(_context7, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
896
- const StyledGridCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
897
- target: "e3xiyhb2"
973
+ 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; }
974
+ 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; }
975
+ const exportFieldSelectionContextDefaultValues = {
976
+ updateExpandedGroups: (_name, _value) => {}
977
+ };
978
+ const ExportFieldSelectionContext = /*#__PURE__*/React.createContext(exportFieldSelectionContextDefaultValues);
979
+ const ExportFieldSelectionProvider = _ref => {
980
+ let resourceType = _ref.resourceType,
981
+ children = _ref.children;
982
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(context => ({
983
+ projectKey: context.project?.key
984
+ })),
985
+ projectKey = _useApplicationContex.projectKey;
986
+ const _useStorage = experimentalComponents.useStorage(`${projectKey}/${OPERATIONS_EXPORT_RESOURCES_MODAL_EXPANDED_GROUP}`, {}),
987
+ _useStorage2 = _slicedToArray(_useStorage, 2),
988
+ cachedExpandedGroups = _useStorage2[0],
989
+ setCachedExpandedGroups = _useStorage2[1];
990
+ const updateExpandedGroups = React.useCallback((name, value) => {
991
+ setCachedExpandedGroups({
992
+ [resourceType]: _objectSpread$4(_objectSpread$4({}, cachedExpandedGroups[resourceType] || {}), {}, {
993
+ [name]: value
994
+ })
995
+ });
996
+ }, [cachedExpandedGroups, resourceType, setCachedExpandedGroups]);
997
+ return jsxRuntime.jsx(ExportFieldSelectionContext.Provider, {
998
+ value: {
999
+ updateExpandedGroups
1000
+ },
1001
+ children: children
1002
+ });
1003
+ };
1004
+ const useExportFieldSelectionContext = () => {
1005
+ return React.useContext(ExportFieldSelectionContext);
1006
+ };
1007
+
1008
+ const calculateTotalSelectedFields = (group, formik) => {
1009
+ let result = 0;
1010
+ // Check `isChecked` fields
1011
+ function countSelectedFields(fields) {
1012
+ _forEachInstanceProperty__default["default"](fields).call(fields, field => {
1013
+ if (field.fields) {
1014
+ countSelectedFields(field.fields);
1015
+ } else if (field.isChecked) {
1016
+ result += 1;
1017
+ }
1018
+ });
1019
+ }
1020
+ countSelectedFields(group.fields);
1021
+ // check `isReadOnly` fields
1022
+ function countReadOnlyDependentFields(fields) {
1023
+ _forEachInstanceProperty__default["default"](fields).call(fields, field => {
1024
+ if (field.fields) {
1025
+ countReadOnlyDependentFields(field.fields);
1026
+ } else if (field.dependentGroupNames?.length && isRequiredGroupChecked(field.dependentGroupNames, formik)) {
1027
+ result += 1;
1028
+ }
1029
+ });
1030
+ }
1031
+ function countReadOnlyFields(fields) {
1032
+ _forEachInstanceProperty__default["default"](fields).call(fields, field => {
1033
+ if (field.fields) {
1034
+ countReadOnlyFields(field.fields);
1035
+ } else if (field.isReadOnly && !field.dependentGroupNames?.length) {
1036
+ result += 1;
1037
+ }
1038
+ });
1039
+ }
1040
+ if (result > 0) {
1041
+ countReadOnlyFields(group.fields);
1042
+ }
1043
+ if (group.dependentGroupNames) {
1044
+ countReadOnlyDependentFields(group.fields);
1045
+ }
1046
+ return result;
1047
+ };
1048
+ const ExportFieldSelectionStamp = _ref => {
1049
+ let group = _ref.group;
1050
+ const _useExportResourcesCo = useExportResourcesContext(),
1051
+ formik = _useExportResourcesCo.formik;
1052
+ const _useIntl = reactIntl.useIntl(),
1053
+ formatMessage = _useIntl.formatMessage;
1054
+ return jsxRuntime.jsx(uiKit.Card, {
1055
+ type: "flat",
1056
+ insetScale: "m",
1057
+ children: jsxRuntime.jsx(uiKit.Spacings.Inline, {
1058
+ justifyContent: "flex-end",
1059
+ children: jsxRuntime.jsx(uiKit.Stamp, {
1060
+ tone: "secondary",
1061
+ isCondensed: true,
1062
+ label: formatMessage(messages.selected, {
1063
+ total: calculateTotalSelectedFields(group, formik)
1064
+ })
1065
+ })
1066
+ })
1067
+ });
1068
+ };
1069
+
1070
+ const FieldWrapper = /*#__PURE__*/_styled__default["default"]("div", {
1071
+ target: "e1judmlm0"
898
1072
  } )({
899
- name: "1lf8z6",
900
- styles: "max-height:50vh;overflow:auto"
1073
+ name: "bjn8wh",
1074
+ styles: "position:relative"
901
1075
  } );
902
- const StyledGroupCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
903
- target: "e3xiyhb1"
904
- } )("border-right:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";background-color:", uiKit.designTokens.colorNeutral98, ";height:100%;border-radius:0;", props => props.showTopBorder && /*#__PURE__*/react.css("border-top:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";" + ("" ), "" ), ";" + ("" ));
905
- const StyledFieldsCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
906
- target: "e3xiyhb0"
907
- } )("border-radius:0;", props => props.showTopBorder && /*#__PURE__*/react.css("border-top:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";" + ("" ), "" ), ";" + ("" ));
908
- const FieldSections = _ref => {
909
- let fields = _ref.fields,
910
- parentKeys = _ref.parentKeys,
911
- formik = _ref.formik,
912
- isAnySiblingChecked = _ref.isAnySiblingChecked;
1076
+ const CollapsibleFieldWrapper = _ref => {
1077
+ let isForceExpanded = _ref.isForceExpanded,
1078
+ field = _ref.field,
1079
+ children = _ref.children;
1080
+ if (field.isExpandable) return jsxRuntime.jsx(uiKit.CollapsibleMotion, {
1081
+ isDefaultClosed: isForceExpanded ? false : !field.isExpanded,
1082
+ children: _ref2 => {
1083
+ let isOpen = _ref2.isOpen,
1084
+ toggle = _ref2.toggle,
1085
+ registerContentNode = _ref2.registerContentNode;
1086
+ return children({
1087
+ isOpen,
1088
+ toggle,
1089
+ registerContentNode
1090
+ });
1091
+ }
1092
+ }, `${isForceExpanded}`);
1093
+ return children({
1094
+ isOpen: true,
1095
+ toggle: () => {},
1096
+ registerContentNode: () => {}
1097
+ });
1098
+ };
1099
+ const FieldSection = _ref3 => {
1100
+ let fields = _ref3.fields,
1101
+ parentKeys = _ref3.parentKeys,
1102
+ formik = _ref3.formik,
1103
+ isAnySiblingChecked = _ref3.isAnySiblingChecked,
1104
+ isForceExpanded = _ref3.isForceExpanded,
1105
+ groupName = _ref3.groupName;
1106
+ const _useExportFieldSelect = useExportFieldSelectionContext(),
1107
+ updateExpandedGroups = _useExportFieldSelect.updateExpandedGroups;
913
1108
  return jsxRuntime.jsx(uiKit.Spacings.Stack, {
914
1109
  scale: "s",
915
1110
  children: fields?.map((field, index) => {
916
- const isAtleastOneChildChecked = () => {
917
- function checkAtLeastOneFieldChecked(fields) {
918
- return fields?.some(field => {
919
- if (field.fields) {
920
- return field.isChecked || checkAtLeastOneFieldChecked(field.fields);
921
- }
922
- return field.isChecked;
923
- });
924
- }
925
- return checkAtLeastOneFieldChecked(field.fields);
926
- };
927
- const isAnyOfTheChildFieldsChecked = isAtleastOneChildChecked();
1111
+ const isAnyOfTheChildFieldsChecked = checkAtLeastOneFieldChecked(field.fields);
928
1112
  if (field.isHidden) return null;
929
- return jsxRuntime.jsxs(React__default["default"].Fragment, {
930
- children: [jsxRuntime.jsxs(uiKit.CheckboxInput, {
931
- isChecked: field.isReadOnly ? isAnySiblingChecked : isAnyOfTheChildFieldsChecked || field.isChecked,
932
- isReadOnly: field.isReadOnly || field.isRequired,
933
- onChange: e => {
934
- const path = `${parentKeys.join('.')}.fields[${index}]`;
935
- // Update all child fields
936
- const updateAllChildFieldsChecked = (path, checked) => {
937
- const item = get__default["default"](_valuesInstanceProperty__default["default"](formik), path);
938
- if (item && item.fields) {
939
- var _context;
940
- _forEachInstanceProperty__default["default"](_context = item.fields).call(_context, (field, i) => {
941
- const fieldPath = `${path}.fields[${i}]`;
942
- if (!field.fields?.length) {
943
- formik.setFieldValue(`${fieldPath}.isChecked`, checked,
944
- // pass `false` to avoid revalidating the form with intermediate values
945
- false);
1113
+ return jsxRuntime.jsx(CollapsibleFieldWrapper, {
1114
+ isForceExpanded: isForceExpanded,
1115
+ field: field,
1116
+ children: _ref4 => {
1117
+ let isOpen = _ref4.isOpen,
1118
+ toggle = _ref4.toggle,
1119
+ registerContentNode = _ref4.registerContentNode;
1120
+ return jsxRuntime.jsxs(React.Fragment, {
1121
+ children: [jsxRuntime.jsxs(FieldWrapper, {
1122
+ children: [field.isExpandable && jsxRuntime.jsx(uiKit.IconButton, {
1123
+ size: "20",
1124
+ style: {
1125
+ position: 'absolute',
1126
+ left: `calc(-1 * ${uiKit.designTokens.spacingXl})`
1127
+ },
1128
+ onClick: () => {
1129
+ if (!isForceExpanded) {
1130
+ updateExpandedGroups(`${groupName}.${field.name}`, !isOpen);
946
1131
  }
947
- updateAllChildFieldsChecked(fieldPath, checked);
948
- });
949
- }
950
- };
951
- if (!field.fields?.length) {
952
- formik.setFieldValue(`${path}.isChecked`, e.target.checked,
953
- // pass `false` to avoid revalidating the form with intermediate values
954
- false);
955
- }
956
- updateAllChildFieldsChecked(path, e.target.checked);
957
- },
958
- children: [field.label, " ", field.isRequired && '*']
959
- }), field.fields && field.fields?.length > 0 && jsxRuntime.jsxs(uiKit.Spacings.Inline, {
960
- scale: "l",
961
- children: [jsxRuntime.jsx("div", {}), jsxRuntime.jsx(FieldSections, {
962
- fields: field.fields,
963
- formik: formik,
964
- parentKeys: [...parentKeys, `fields[${index}]`],
965
- isAnySiblingChecked: isAnySiblingChecked
966
- })]
967
- })]
968
- }, `${field.name}-${index}`);
1132
+ toggle();
1133
+ },
1134
+ icon: isOpen ? jsxRuntime.jsx(uiKit.AngleDownIcon, {}) : jsxRuntime.jsx(uiKit.AngleRightIcon, {}),
1135
+ label: ""
1136
+ }), jsxRuntime.jsx(uiKit.Spacings.Inline, {
1137
+ scale: "s",
1138
+ alignItems: "center",
1139
+ children: jsxRuntime.jsxs(uiKit.CheckboxInput, {
1140
+ isChecked: field.isReadOnly ? field.dependentGroupNames ? isRequiredGroupChecked(field.dependentGroupNames, formik) : isAnySiblingChecked : isAnyOfTheChildFieldsChecked || field.isChecked,
1141
+ isReadOnly: field.isReadOnly || field.isRequired,
1142
+ onChange: e => {
1143
+ const path = `${parentKeys.join('.')}.fields[${index}]`;
1144
+ // Update all child fields
1145
+ const updateAllChildFieldsChecked = (path, checked) => {
1146
+ const item = get__default["default"](_valuesInstanceProperty__default["default"](formik), path);
1147
+ if (item && item.fields) {
1148
+ var _context;
1149
+ _forEachInstanceProperty__default["default"](_context = item.fields).call(_context, (field, i) => {
1150
+ const fieldPath = `${path}.fields[${i}]`;
1151
+ if (!field.fields?.length) {
1152
+ formik.setFieldValue(`${fieldPath}.isChecked`, checked,
1153
+ // pass `false` to avoid revalidating the form with intermediate values
1154
+ false);
1155
+ }
1156
+ updateAllChildFieldsChecked(fieldPath, checked);
1157
+ });
1158
+ }
1159
+ };
1160
+ if (!field.fields?.length) {
1161
+ formik.setFieldValue(`${path}.isChecked`, e.target.checked,
1162
+ // pass `false` to avoid revalidating the form with intermediate values
1163
+ false);
1164
+ }
1165
+ updateAllChildFieldsChecked(path, e.target.checked);
1166
+ },
1167
+ children: [field.label, " ", field.isRequired && '*']
1168
+ })
1169
+ })]
1170
+ }), field.fields && field.fields?.length > 0 && jsxRuntime.jsx(StyledExpandableContent, {
1171
+ ref: registerContentNode,
1172
+ isOpen: isOpen,
1173
+ children: jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1174
+ scale: "xl",
1175
+ children: [jsxRuntime.jsx("div", {}), jsxRuntime.jsx(FieldSection, {
1176
+ fields: field.fields,
1177
+ formik: formik,
1178
+ parentKeys: [...parentKeys, `fields[${index}]`],
1179
+ isAnySiblingChecked: isAnySiblingChecked,
1180
+ isForceExpanded: isForceExpanded,
1181
+ groupName: groupName
1182
+ })]
1183
+ })
1184
+ })]
1185
+ }, `${field.name}-${index}`);
1186
+ }
1187
+ }, `${field.name}.${isForceExpanded}`);
969
1188
  })
970
1189
  });
971
1190
  };
972
- function checkAllFieldsSelected(fields) {
973
- return _everyInstanceProperty__default["default"](fields).call(fields, field => {
974
- if (field.fields) {
975
- return checkAllFieldsSelected(field.fields);
976
- }
977
- return field.isChecked || field.isRequired || field.isReadOnly;
978
- });
979
- }
980
- function checkAtLeastOneFieldChecked(fields) {
981
- return _someInstanceProperty__default["default"](fields).call(fields, field => {
982
- if (field.fields) {
983
- return field.isChecked || checkAtLeastOneFieldChecked(field.fields);
984
- }
985
- return field.isChecked;
986
- });
987
- }
1191
+
1192
+ 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; }
1193
+ 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; }
1194
+ const StyledGroupCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
1195
+ target: "e1igkh7t2"
1196
+ } )("height:100%;border-radius:0;", props => props.showTopBorder && /*#__PURE__*/react.css("border-top:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";" + ("" ), "" ), ";" + ("" ));
1197
+ const StyledFieldsCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
1198
+ target: "e1igkh7t1"
1199
+ } )("border-radius:0;", props => props.showTopBorder && /*#__PURE__*/react.css("border-top:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";" + ("" ), "" ), ";" + ("" ));
1200
+ var _ref = {
1201
+ name: "2ce4ng",
1202
+ styles: "overflow:hidden;height:0;margin-top:0!important"
1203
+ } ;
1204
+ const StyledExpandableContent = /*#__PURE__*/_styled__default["default"]("div", {
1205
+ target: "e1igkh7t0"
1206
+ } )(props => !props.isOpen && _ref, " ", props => !props.isOpen && props.showTopBorder && /*#__PURE__*/react.css("border-top:", uiKit.designTokens.borderWidth1, " solid ", uiKit.designTokens.colorNeutral90, ";" + ("" ), "" ), ";" + ("" ));
988
1207
  const FieldGroupSection = _ref2 => {
989
1208
  let group = _ref2.group,
990
1209
  index = _ref2.index,
991
- formik = _ref2.formik;
992
- const allAllFieldsSelected = React__default["default"].useMemo(() => checkAllFieldsSelected(group.fields), [group.fields]);
993
- const isAtleastOneFieldChecked = React__default["default"].useMemo(() => checkAtLeastOneFieldChecked(group.fields), [group.fields]);
1210
+ formik = _ref2.formik,
1211
+ isForceExpanded = _ref2.isForceExpanded;
1212
+ const allAllFieldsSelected = React.useMemo(() => checkAllFieldsSelected(group.fields), [group.fields]);
1213
+ const isAtleastOneFieldChecked = React.useMemo(() => checkAtLeastOneFieldChecked(group.fields), [group.fields]);
1214
+ const _useExportFieldSelect = useExportFieldSelectionContext(),
1215
+ updateExpandedGroups = _useExportFieldSelect.updateExpandedGroups;
994
1216
  const parentKey = `groups[${index}]`;
995
1217
  const handleChangeAllFields = e => {
996
1218
  const item = get__default["default"](_valuesInstanceProperty__default["default"](formik), parentKey);
997
1219
  function updateAllFields(fields, checked) {
998
1220
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
999
1221
  if (field.fields) {
1000
- return _objectSpread$2(_objectSpread$2({}, field), {}, {
1222
+ return _objectSpread$3(_objectSpread$3({}, field), {}, {
1001
1223
  fields: updateAllFields(field.fields, checked)
1002
1224
  });
1003
1225
  }
1004
1226
  if (field.isReadOnly || field.isRequired) return field;
1005
- return _objectSpread$2(_objectSpread$2({}, field), {}, {
1227
+ return _objectSpread$3(_objectSpread$3({}, field), {}, {
1006
1228
  isChecked: checked
1007
1229
  });
1008
1230
  });
1009
1231
  }
1010
- formik.setFieldValue(parentKey, _objectSpread$2(_objectSpread$2({}, item), {}, {
1232
+ formik.setFieldValue(parentKey, _objectSpread$3(_objectSpread$3({}, item), {}, {
1011
1233
  fields: updateAllFields(item.fields, e.target.checked)
1012
1234
  }));
1013
1235
  };
1014
1236
  if (group.isHidden) return null;
1015
- return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1016
- children: [jsxRuntime.jsx(uiKit.Grid.Item, {
1017
- children: jsxRuntime.jsx(StyledGroupCard, {
1018
- type: "flat",
1019
- insetScale: "l",
1020
- showTopBorder: true,
1021
- children: jsxRuntime.jsx(uiKit.CheckboxInput, {
1022
- isIndeterminate: !allAllFieldsSelected && isAtleastOneFieldChecked,
1023
- isChecked: allAllFieldsSelected,
1024
- onChange: handleChangeAllFields,
1025
- children: group.groupLabel
1026
- })
1027
- })
1028
- }), jsxRuntime.jsx(uiKit.Grid.Item, {
1029
- children: jsxRuntime.jsx(StyledFieldsCard, {
1030
- type: "flat",
1031
- insetScale: "l",
1032
- showTopBorder: true,
1033
- children: jsxRuntime.jsx(uiKit.Spacings.Stack, {
1034
- scale: "s",
1035
- children: jsxRuntime.jsx(FieldSections, {
1036
- fields: group.fields,
1037
- formik: formik,
1038
- parentKeys: [parentKey],
1039
- isAnySiblingChecked: isAtleastOneFieldChecked
1237
+ return jsxRuntime.jsx(uiKit.CollapsibleMotion, {
1238
+ isDefaultClosed: isForceExpanded ? false : !group.isExpanded,
1239
+ children: _ref3 => {
1240
+ let isOpen = _ref3.isOpen,
1241
+ toggle = _ref3.toggle,
1242
+ registerContentNode = _ref3.registerContentNode;
1243
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1244
+ children: [jsxRuntime.jsx(uiKit.Grid.Item, {
1245
+ children: jsxRuntime.jsx(StyledGroupCard, {
1246
+ type: "flat",
1247
+ insetScale: "m",
1248
+ showTopBorder: index > 0,
1249
+ children: jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1250
+ scale: "s",
1251
+ alignItems: "center",
1252
+ children: [jsxRuntime.jsx(uiKit.IconButton, {
1253
+ size: "20",
1254
+ onClick: () => {
1255
+ if (!isForceExpanded) {
1256
+ updateExpandedGroups(group.groupName, !isOpen);
1257
+ }
1258
+ toggle();
1259
+ },
1260
+ icon: isOpen ? jsxRuntime.jsx(uiKit.AngleDownIcon, {}) : jsxRuntime.jsx(uiKit.AngleRightIcon, {}),
1261
+ label: ""
1262
+ }), jsxRuntime.jsx(uiKit.CheckboxInput, {
1263
+ isIndeterminate: !allAllFieldsSelected && (isAtleastOneFieldChecked || isRequiredGroupChecked(group.dependentGroupNames, formik)),
1264
+ isChecked: allAllFieldsSelected,
1265
+ onChange: handleChangeAllFields,
1266
+ children: group.groupLabel
1267
+ })]
1268
+ })
1040
1269
  })
1041
- })
1042
- })
1043
- })]
1044
- });
1270
+ }), jsxRuntime.jsx(uiKit.Grid.Item, {
1271
+ children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
1272
+ children: [jsxRuntime.jsx(StyledExpandableContent, {
1273
+ ref: registerContentNode,
1274
+ isOpen: isOpen,
1275
+ showTopBorder: index > 0,
1276
+ children: jsxRuntime.jsx(StyledFieldsCard, {
1277
+ type: "flat",
1278
+ insetScale: "m",
1279
+ showTopBorder: true,
1280
+ children: jsxRuntime.jsx(uiKit.Spacings.Stack, {
1281
+ scale: "s",
1282
+ children: jsxRuntime.jsx(FieldSection, {
1283
+ fields: group.fields,
1284
+ formik: formik,
1285
+ parentKeys: [parentKey],
1286
+ isAnySiblingChecked: isAtleastOneFieldChecked,
1287
+ groupName: group.groupName
1288
+ })
1289
+ })
1290
+ })
1291
+ }), !isOpen && jsxRuntime.jsx(ExportFieldSelectionStamp, {
1292
+ group: group
1293
+ })]
1294
+ })
1295
+ })]
1296
+ });
1297
+ }
1298
+ }, `${isForceExpanded}`);
1045
1299
  };
1300
+
1301
+ 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; }
1302
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys$2(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys$2(Object(t))).call(_context6, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1303
+ const StyledGridCard = /*#__PURE__*/_styled__default["default"](uiKit.Card, {
1304
+ target: "e5mvpn60"
1305
+ } )({
1306
+ name: "1lf8z6",
1307
+ styles: "max-height:50vh;overflow:auto"
1308
+ } );
1046
1309
  const ExportFieldsSelectionStep = () => {
1047
1310
  const intl = reactIntl.useIntl();
1048
1311
  const _React$useState = React__default["default"].useState(''),
@@ -1063,18 +1326,18 @@ const ExportFieldsSelectionStep = () => {
1063
1326
  resourceType = _useExportResourcesCo.resourceType,
1064
1327
  onClose = _useExportResourcesCo.onClose;
1065
1328
  React__default["default"].useEffect(() => {
1066
- var _context3;
1329
+ var _context2;
1067
1330
  formik.validateForm();
1068
1331
  const selectedFields = {};
1069
1332
  function getSelectedFields(field, groupName) {
1070
1333
  const fieldName = field.name ? `${groupName}.${field.name}` : groupName;
1071
1334
  if (field.fields) {
1072
- var _context2;
1073
- return _forEachInstanceProperty__default["default"](_context2 = field.fields).call(_context2, f => getSelectedFields(f, fieldName));
1335
+ var _context;
1336
+ return _forEachInstanceProperty__default["default"](_context = field.fields).call(_context, f => getSelectedFields(f, fieldName));
1074
1337
  }
1075
1338
  selectedFields[fieldName] = field.isChecked;
1076
1339
  }
1077
- _forEachInstanceProperty__default["default"](_context3 = _valuesInstanceProperty__default["default"](formik).groups).call(_context3, group => getSelectedFields(group, group.groupLabel));
1340
+ _forEachInstanceProperty__default["default"](_context2 = _valuesInstanceProperty__default["default"](formik).groups).call(_context2, group => getSelectedFields(group, group.groupLabel));
1078
1341
  setCachedSelectedGroups({
1079
1342
  [resourceType]: selectedFields
1080
1343
  });
@@ -1082,11 +1345,11 @@ const ExportFieldsSelectionStep = () => {
1082
1345
  }, [_valuesInstanceProperty__default["default"](formik).groups]);
1083
1346
  // adds `isHidden` property to each field based on search term
1084
1347
  const filteredGroups = React__default["default"].useMemo(() => {
1085
- var _context5;
1348
+ var _context4;
1086
1349
  const updateFields = (fields, parentMatches) => {
1087
1350
  return _mapInstanceProperty__default["default"](fields).call(fields, field => {
1088
- var _context4;
1089
- const matches = _includesInstanceProperty__default["default"](_context4 = field.label.toLowerCase()).call(_context4, fieldSearchTerm.toLowerCase());
1351
+ var _context3;
1352
+ const matches = _includesInstanceProperty__default["default"](_context3 = field.label.toLowerCase()).call(_context3, fieldSearchTerm.toLowerCase());
1090
1353
  let isHidden = !matches && !parentMatches;
1091
1354
  if (field.fields) {
1092
1355
  const updatedFields = updateFields(field.fields, matches);
@@ -1101,7 +1364,7 @@ const ExportFieldsSelectionStep = () => {
1101
1364
  });
1102
1365
  };
1103
1366
  if (!fieldSearchTerm?.trim()?.length) return _valuesInstanceProperty__default["default"](formik).groups;
1104
- return _mapInstanceProperty__default["default"](_context5 = _valuesInstanceProperty__default["default"](formik).groups).call(_context5, group => {
1367
+ return _mapInstanceProperty__default["default"](_context4 = _valuesInstanceProperty__default["default"](formik).groups).call(_context4, group => {
1105
1368
  const updatedFields = updateFields(group.fields, false);
1106
1369
  const isHidden = _everyInstanceProperty__default["default"](updatedFields).call(updatedFields, field => field.isHidden);
1107
1370
  return _objectSpread$2(_objectSpread$2({}, group), {}, {
@@ -1120,7 +1383,7 @@ const ExportFieldsSelectionStep = () => {
1120
1383
  };
1121
1384
  return jsxRuntime.jsx(applicationComponents.FormDialog, {
1122
1385
  isOpen: true,
1123
- title: intl.formatMessage(messages[`modalTitle.${resourceType}`]),
1386
+ title: intl.formatMessage(messages.selectFieldsToExport),
1124
1387
  labelPrimary: intl.formatMessage(messages.startExport),
1125
1388
  onPrimaryButtonClick: formik.submitForm,
1126
1389
  isPrimaryButtonDisabled: !formik.isValid,
@@ -1128,40 +1391,42 @@ const ExportFieldsSelectionStep = () => {
1128
1391
  onSecondaryButtonClick: () => setCurrentStep(1),
1129
1392
  onClose: onClose,
1130
1393
  size: 16,
1131
- children: jsxRuntime.jsx(uiKit.Spacings.Stack, {
1132
- scale: "xl",
1133
- children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1134
- scale: "m",
1135
- children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1136
- justifyContent: "space-between",
1137
- children: [jsxRuntime.jsx(uiKit.Text.Body, {
1138
- intlMessage: messages.selectFieldsToExport
1139
- }), jsxRuntime.jsx(uiKit.Link, {
1140
- isExternal: true,
1141
- tone: "secondary",
1142
- intlMessage: messages.fieldDefinitions,
1143
- to: FIELD_DEFINITIONS_URLS[resourceType]
1144
- })]
1145
- }), jsxRuntime.jsx(uiKit.SearchTextInput, {
1146
- placeholder: intl.formatMessage(messages.searchForFields),
1147
- value: fieldSearchTerm,
1148
- onChange: onSearchChangeThrottled,
1149
- onReset: onSearchReset
1150
- // TODO: `SearchTextInput` props to be improved. The `onSubmit` callback shouldn't be mandatory
1151
- ,
1152
- onSubmit: () => {}
1153
- }), hasResults ? jsxRuntime.jsx(StyledGridCard, {
1154
- insetScale: "none",
1155
- children: jsxRuntime.jsx(uiKit.Grid, {
1156
- gridAutoFlow: "row",
1157
- gridTemplateColumns: `${uiKit.designTokens.constraint5} auto`,
1158
- children: _mapInstanceProperty__default["default"](filteredGroups).call(filteredGroups, (group, index) => jsxRuntime.jsx(FieldGroupSection, {
1159
- group: group,
1160
- index: index,
1161
- formik: formik
1162
- }, group.groupLabel))
1163
- })
1164
- }) : jsxRuntime.jsx(NoSearchResults, {})]
1394
+ children: jsxRuntime.jsx(ExportFieldSelectionProvider, {
1395
+ resourceType: resourceType,
1396
+ children: jsxRuntime.jsx(uiKit.Spacings.Stack, {
1397
+ scale: "xl",
1398
+ children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1399
+ scale: "m",
1400
+ children: [jsxRuntime.jsx(uiKit.Spacings.Inline, {
1401
+ justifyContent: "flex-end",
1402
+ children: jsxRuntime.jsx(uiKit.Link, {
1403
+ isExternal: true,
1404
+ tone: "secondary",
1405
+ intlMessage: messages.fieldDefinitions,
1406
+ to: FIELD_DEFINITIONS_URLS[resourceType]
1407
+ })
1408
+ }), jsxRuntime.jsx(uiKit.SearchTextInput, {
1409
+ placeholder: intl.formatMessage(messages.searchForFields),
1410
+ value: fieldSearchTerm,
1411
+ onChange: onSearchChangeThrottled,
1412
+ onReset: onSearchReset
1413
+ // TODO: `SearchTextInput` props to be improved. The `onSubmit` callback shouldn't be mandatory
1414
+ ,
1415
+ onSubmit: () => {}
1416
+ }), hasResults ? jsxRuntime.jsx(StyledGridCard, {
1417
+ insetScale: "none",
1418
+ children: jsxRuntime.jsx(uiKit.Grid, {
1419
+ gridAutoFlow: "row",
1420
+ gridTemplateColumns: `calc(${uiKit.designTokens.spacingL} + ${uiKit.designTokens.constraint5} + ${uiKit.designTokens.spacingL}) auto`,
1421
+ children: _mapInstanceProperty__default["default"](filteredGroups).call(filteredGroups, (group, index) => jsxRuntime.jsx(FieldGroupSection, {
1422
+ group: group,
1423
+ index: index,
1424
+ formik: formik,
1425
+ isForceExpanded: fieldSearchTerm?.trim()?.length > 0
1426
+ }, group.groupLabel))
1427
+ })
1428
+ }) : jsxRuntime.jsx(NoSearchResults, {})]
1429
+ })
1165
1430
  })
1166
1431
  })
1167
1432
  });