@mui/x-data-grid-pro 6.3.0 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,109 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## v6.4.0
7
+
8
+ _May 12, 2023_
9
+
10
+ We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🎁 Introduce clipboard paste support for `DataGridPremium`:
13
+
14
+ https://github.com/mui/mui-x/assets/13808724/abfcb5c6-9db6-4677-9ba7-ae97de441080
15
+
16
+ See [the documentation](https://mui.com/x/react-data-grid/clipboard/#clipboard-paste) for more information
17
+
18
+ - 🌍 Improve French (fr-FR), German (de-DE), Portuguese (pt-BR) and Ukrainian (uk-UA) locales on the data grid
19
+ - 🌍 Add Slovak (sk-SK) locale on the pickers
20
+ - 🐞 Bugfixes
21
+ - 📚 Documentation improvements
22
+
23
+ ### `@mui/x-data-grid@v6.4.0` / `@mui/x-data-grid-pro@v6.4.0` / `@mui/x-data-grid-premium@v6.4.0`
24
+
25
+ #### Changes
26
+
27
+ - [DataGrid] Fix DataGrid rendering in JSDOM (#8968) @cherniavskii
28
+ - [DataGrid] Fix layout when rendered inside a parent with `display: grid` (#8577) @cherniavskii
29
+ - [DataGrid] Add Joy UI icon slots (#8940) @siriwatknp
30
+ - [DataGrid] Add Joy UI pagination slot (#8871) @cherniavskii
31
+ - [DataGrid] Extract `baseChip` slot (#8748) @cherniavskii
32
+ - [DataGridPremium] Implement Clipboard import (#7389) @cherniavskii
33
+ - [l10n] Improve French (fr-FR) locale (#8825) @vallereaugabriel
34
+ - [l10n] Improve German (de-DE) locale (#8898) @marcauberer
35
+ - [l10n] Improve Portuguese (pt-BR) locale (#8960) @Sorriso337
36
+ - [l10n] Improve Ukrainian (uk-UA) locale (#8863) @Neonin
37
+
38
+ ### `@mui/x-date-pickers@v6.4.0` / `@mui/x-date-pickers-pro@v6.4.0`
39
+
40
+ #### Changes
41
+
42
+ - [pickers] Fix trailing zeros inconsistency in `LuxonAdapter` (#8955) @alexfauquette
43
+ - [pickers] Stop using deprecated adapter methods (#8735) @flaviendelangle
44
+ - [pickers] Strictly type the `adapterLocale` prop of `LocalizationProvider` (#8780) @flaviendelangle
45
+ - [l10n] Add Slovak (sk-SK) locale (#8875) @MatejFacko
46
+
47
+ ### Docs
48
+
49
+ - [docs] Fix date pickers typo in the docs (#8939) @richbustos
50
+ - [docs] Fix master detail demo (#8894) @m4theushw
51
+ - [docs] Fix typo in clipboard docs (#8971) @MBilalShafi
52
+ - [docs] Reduce list of dependencies in Codesandbox/Stackblitz demos (#8535) @cherniavskii
53
+
54
+ ### Core
55
+
56
+ - [core] Improve testing of the adapters (#8789) @flaviendelangle
57
+ - [core] Update license key for tests (#8917) @LukasTy
58
+ - [charts] Make introduction docs pages for each chart (#8869) @alexfauquette
59
+ - [charts] Document Tooltip and Highlighs (#8867) @alexfauquette
60
+ - [test] Cover row grouping regression with a unit test (#8870) @cherniavskii
61
+ - [test] Fix flaky regression tests (#8954) @cherniavskii
62
+
63
+ ## 6.3.1
64
+
65
+ _May 5, 2023_
66
+
67
+ We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
68
+
69
+ - 🐞 Bugfixes
70
+ - 📚 Documentation improvements
71
+
72
+ ### `@mui/x-data-grid@v6.3.1` / `@mui/x-data-grid-pro@v6.3.1` / `@mui/x-data-grid-premium@v6.3.1`
73
+
74
+ #### Changes
75
+
76
+ - [DataGrid] Fix broken filtering in the value formatter demo (#8621) @cherniavskii
77
+ - [DataGrid] Fix falsy filter values not showing in filter button tooltip (#8550) @ithrforu
78
+ - [DataGrid] Fix missing watermark in Pro and Premium packages (#8797) @cherniavskii
79
+ - [DataGrid] Remove unwarranted warning log (#8847) @romgrk
80
+ - [DataGrid] Add Joy UI slots (`Select`, `SelectOption`, `InputLabel`, `FormControl`) (#8747) @cherniavskii
81
+ - [DataGridPremium] Fix expanded groups being collapsed after calling `updateRows` (#8823) @cherniavskii
82
+
83
+ ### `@mui/x-date-pickers@v6.3.1` / `@mui/x-date-pickers-pro@v6.3.1`
84
+
85
+ #### Changes
86
+
87
+ - [pickers] Fix `minutesStep` validation prop behavior (#8794) @LukasTy
88
+ - [pickers] Fix time picker `viewRenderers` overriding (#8830) @LukasTy
89
+ - [pickers] Remove last additional character when using LTR (#8848) @alexfauquette
90
+
91
+ ### Docs
92
+
93
+ - [docs] Fix controlled mode demo on Editing page (#8800) @yaredtsy
94
+ - [docs] Fix scrolling demo not working with React 18 (#6489) @cherniavskii
95
+ - [docs] Update demo to support agregation on popular feature cell (#8617) @BalaM314
96
+ - [docs] Clarify what `<path>` is (#8764) @alexfauquette
97
+
98
+ ### Core
99
+
100
+ - [core] Do not include playground pages in `yarn typescript` script (#8822) @cherniavskii
101
+ - [core] Limit `typescript:ci` step memory limit (#8796) @LukasTy
102
+ - [core] Upgrade monorepo (#8835) @cherniavskii
103
+ - [test] Use `fake` clock on `MobileDateRangePicker` (#8861) @LukasTy
104
+ - [charts] Clean some styling (#8778) @alexfauquette
105
+ - [charts] Improve tooltip (#8792) @alexfauquette
106
+ - [charts] Improvement and docs on axis (#8654) @alexfauquette
107
+ - [charts] Defaultize attributes (#8788) @alexfauquette
108
+
6
109
  ## 6.3.0
7
110
 
8
111
  _Apr 28, 2023_
@@ -264,9 +367,9 @@ We'd like to offer a big thanks to the 9 contributors who made this release poss
264
367
 
265
368
  - [fields] Add missing tokens to `AdapterDateFnsJalali` (#8402) @flaviendelangle
266
369
  - [fields] Clean the active date manager (#8370) @flaviendelangle
267
- - [fields] Cleanup `useFieldState` (#8292) @flaviendelangle
370
+ - [fields] Cleanup `useFieldState` (#8292) @flaviendelangle
268
371
  - [fields] Only add RTL characters when needed (#8325) @flaviendelangle
269
- - [pickers] Add support for single input fields in range pickers (#7927) @flaviendelangle
372
+ - [pickers] Add support for single input fields in range pickers (#7927) @flaviendelangle
270
373
  - [pickers] Allows non token characters in format (#8256) @alexfauquette
271
374
  - [pickers] Avoid root imports and move public models to the models folder (#8337) @flaviendelangle
272
375
  - [pickers] Update `view` when `views` or `openTo` changes (#8361) @LukasTy
@@ -91,6 +91,11 @@ DataGridProRaw.propTypes = {
91
91
  * Override or extend the styles applied to the component.
92
92
  */
93
93
  classes: PropTypes.object,
94
+ /**
95
+ * The character used to separate cell values when copying to the clipboard.
96
+ * @default '\t'
97
+ */
98
+ clipboardCopyCellDelimiter: PropTypes.string,
94
99
  /**
95
100
  * Number of extra columns to be rendered before/after the visible slice.
96
101
  * @default 3
@@ -443,6 +448,11 @@ DataGridProRaw.propTypes = {
443
448
  * @param {GridCallbackDetails} details Additional details for this callback.
444
449
  */
445
450
  onCellModesModelChange: PropTypes.func,
451
+ /**
452
+ * Callback called when the data is copied to the clipboard.
453
+ * @param {string} data The data copied to the clipboard.
454
+ */
455
+ onClipboardCopy: PropTypes.func,
446
456
  /**
447
457
  * Callback fired when a click event comes from a column header element.
448
458
  * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].
@@ -816,5 +826,14 @@ DataGridProRaw.propTypes = {
816
826
  * If `true`, the rows will be gathered in a tree structure according to the `getTreeDataPath` prop.
817
827
  * @default false
818
828
  */
819
- treeData: PropTypes.bool
829
+ treeData: PropTypes.bool,
830
+ /**
831
+ * If `true`, the grid will not use `valueFormatter` when exporting to CSV or copying to clipboard.
832
+ * If an object is provided, you can choose to ignore the `valueFormatter` for CSV export or clipboard export.
833
+ * @default: false
834
+ */
835
+ unstable_ignoreValueFormatterDuringExport: PropTypes.oneOfType([PropTypes.shape({
836
+ clipboardExport: PropTypes.bool,
837
+ csvExport: PropTypes.bool
838
+ }), PropTypes.bool])
820
839
  };
@@ -79,9 +79,9 @@ export const useDataGridProComponent = (inputApiRef, props) => {
79
79
  useGridInfiniteLoader(apiRef, props);
80
80
  useGridLazyLoader(apiRef, props);
81
81
  useGridColumnMenu(apiRef);
82
- useGridCsvExport(apiRef);
82
+ useGridCsvExport(apiRef, props);
83
83
  useGridPrintExport(apiRef, props);
84
- useGridClipboard(apiRef);
84
+ useGridClipboard(apiRef, props);
85
85
  useGridDimensions(apiRef, props);
86
86
  useGridEvents(apiRef, props);
87
87
  useGridStatePersistence(apiRef);
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-pro v6.3.0
2
+ * @mui/x-data-grid-pro v6.4.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -91,6 +91,11 @@ DataGridProRaw.propTypes = {
91
91
  * Override or extend the styles applied to the component.
92
92
  */
93
93
  classes: PropTypes.object,
94
+ /**
95
+ * The character used to separate cell values when copying to the clipboard.
96
+ * @default '\t'
97
+ */
98
+ clipboardCopyCellDelimiter: PropTypes.string,
94
99
  /**
95
100
  * Number of extra columns to be rendered before/after the visible slice.
96
101
  * @default 3
@@ -443,6 +448,11 @@ DataGridProRaw.propTypes = {
443
448
  * @param {GridCallbackDetails} details Additional details for this callback.
444
449
  */
445
450
  onCellModesModelChange: PropTypes.func,
451
+ /**
452
+ * Callback called when the data is copied to the clipboard.
453
+ * @param {string} data The data copied to the clipboard.
454
+ */
455
+ onClipboardCopy: PropTypes.func,
446
456
  /**
447
457
  * Callback fired when a click event comes from a column header element.
448
458
  * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].
@@ -816,5 +826,14 @@ DataGridProRaw.propTypes = {
816
826
  * If `true`, the rows will be gathered in a tree structure according to the `getTreeDataPath` prop.
817
827
  * @default false
818
828
  */
819
- treeData: PropTypes.bool
829
+ treeData: PropTypes.bool,
830
+ /**
831
+ * If `true`, the grid will not use `valueFormatter` when exporting to CSV or copying to clipboard.
832
+ * If an object is provided, you can choose to ignore the `valueFormatter` for CSV export or clipboard export.
833
+ * @default: false
834
+ */
835
+ unstable_ignoreValueFormatterDuringExport: PropTypes.oneOfType([PropTypes.shape({
836
+ clipboardExport: PropTypes.bool,
837
+ csvExport: PropTypes.bool
838
+ }), PropTypes.bool])
820
839
  };
@@ -79,9 +79,9 @@ export var useDataGridProComponent = function useDataGridProComponent(inputApiRe
79
79
  useGridInfiniteLoader(apiRef, props);
80
80
  useGridLazyLoader(apiRef, props);
81
81
  useGridColumnMenu(apiRef);
82
- useGridCsvExport(apiRef);
82
+ useGridCsvExport(apiRef, props);
83
83
  useGridPrintExport(apiRef, props);
84
- useGridClipboard(apiRef);
84
+ useGridClipboard(apiRef, props);
85
85
  useGridDimensions(apiRef, props);
86
86
  useGridEvents(apiRef, props);
87
87
  useGridStatePersistence(apiRef);
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-pro v6.3.0
2
+ * @mui/x-data-grid-pro v6.4.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export var getReleaseInfo = function getReleaseInfo() {
3
- var releaseInfo = "MTY4MjYyOTIwMDAwMA==";
3
+ var releaseInfo = "MTY4Mzg0MjQwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -17,11 +17,12 @@ export var getNodePathInTree = function getNodePathInTree(_ref) {
17
17
  var node = tree[id];
18
18
  while (node.id !== GRID_ROOT_GROUP_ID) {
19
19
  path.push({
20
- field: node.groupingField,
20
+ field: node.type === 'leaf' ? null : node.groupingField,
21
21
  key: node.groupingKey
22
22
  });
23
23
  node = tree[node.parent];
24
24
  }
25
+ path.reverse();
25
26
  return path;
26
27
  };
27
28
  export var addGroupDefaultExpansion = function addGroupDefaultExpansion(_ref2) {
@@ -91,6 +91,11 @@ DataGridProRaw.propTypes = {
91
91
  * Override or extend the styles applied to the component.
92
92
  */
93
93
  classes: PropTypes.object,
94
+ /**
95
+ * The character used to separate cell values when copying to the clipboard.
96
+ * @default '\t'
97
+ */
98
+ clipboardCopyCellDelimiter: PropTypes.string,
94
99
  /**
95
100
  * Number of extra columns to be rendered before/after the visible slice.
96
101
  * @default 3
@@ -443,6 +448,11 @@ DataGridProRaw.propTypes = {
443
448
  * @param {GridCallbackDetails} details Additional details for this callback.
444
449
  */
445
450
  onCellModesModelChange: PropTypes.func,
451
+ /**
452
+ * Callback called when the data is copied to the clipboard.
453
+ * @param {string} data The data copied to the clipboard.
454
+ */
455
+ onClipboardCopy: PropTypes.func,
446
456
  /**
447
457
  * Callback fired when a click event comes from a column header element.
448
458
  * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].
@@ -816,5 +826,14 @@ DataGridProRaw.propTypes = {
816
826
  * If `true`, the rows will be gathered in a tree structure according to the `getTreeDataPath` prop.
817
827
  * @default false
818
828
  */
819
- treeData: PropTypes.bool
829
+ treeData: PropTypes.bool,
830
+ /**
831
+ * If `true`, the grid will not use `valueFormatter` when exporting to CSV or copying to clipboard.
832
+ * If an object is provided, you can choose to ignore the `valueFormatter` for CSV export or clipboard export.
833
+ * @default: false
834
+ */
835
+ unstable_ignoreValueFormatterDuringExport: PropTypes.oneOfType([PropTypes.shape({
836
+ clipboardExport: PropTypes.bool,
837
+ csvExport: PropTypes.bool
838
+ }), PropTypes.bool])
820
839
  };
@@ -79,9 +79,9 @@ export const useDataGridProComponent = (inputApiRef, props) => {
79
79
  useGridInfiniteLoader(apiRef, props);
80
80
  useGridLazyLoader(apiRef, props);
81
81
  useGridColumnMenu(apiRef);
82
- useGridCsvExport(apiRef);
82
+ useGridCsvExport(apiRef, props);
83
83
  useGridPrintExport(apiRef, props);
84
- useGridClipboard(apiRef);
84
+ useGridClipboard(apiRef, props);
85
85
  useGridDimensions(apiRef, props);
86
86
  useGridEvents(apiRef, props);
87
87
  useGridStatePersistence(apiRef);
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-pro v6.3.0
2
+ * @mui/x-data-grid-pro v6.4.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTY4MjYyOTIwMDAwMA==";
3
+ const releaseInfo = "MTY4Mzg0MjQwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -14,11 +14,12 @@ export const getNodePathInTree = ({
14
14
  let node = tree[id];
15
15
  while (node.id !== GRID_ROOT_GROUP_ID) {
16
16
  path.push({
17
- field: node.groupingField,
17
+ field: node.type === 'leaf' ? null : node.groupingField,
18
18
  key: node.groupingKey
19
19
  });
20
20
  node = tree[node.parent];
21
21
  }
22
+ path.reverse();
22
23
  return path;
23
24
  };
24
25
  export const addGroupDefaultExpansion = ({
@@ -100,6 +100,11 @@ DataGridProRaw.propTypes = {
100
100
  * Override or extend the styles applied to the component.
101
101
  */
102
102
  classes: _propTypes.default.object,
103
+ /**
104
+ * The character used to separate cell values when copying to the clipboard.
105
+ * @default '\t'
106
+ */
107
+ clipboardCopyCellDelimiter: _propTypes.default.string,
103
108
  /**
104
109
  * Number of extra columns to be rendered before/after the visible slice.
105
110
  * @default 3
@@ -452,6 +457,11 @@ DataGridProRaw.propTypes = {
452
457
  * @param {GridCallbackDetails} details Additional details for this callback.
453
458
  */
454
459
  onCellModesModelChange: _propTypes.default.func,
460
+ /**
461
+ * Callback called when the data is copied to the clipboard.
462
+ * @param {string} data The data copied to the clipboard.
463
+ */
464
+ onClipboardCopy: _propTypes.default.func,
455
465
  /**
456
466
  * Callback fired when a click event comes from a column header element.
457
467
  * @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].
@@ -825,5 +835,14 @@ DataGridProRaw.propTypes = {
825
835
  * If `true`, the rows will be gathered in a tree structure according to the `getTreeDataPath` prop.
826
836
  * @default false
827
837
  */
828
- treeData: _propTypes.default.bool
838
+ treeData: _propTypes.default.bool,
839
+ /**
840
+ * If `true`, the grid will not use `valueFormatter` when exporting to CSV or copying to clipboard.
841
+ * If an object is provided, you can choose to ignore the `valueFormatter` for CSV export or clipboard export.
842
+ * @default: false
843
+ */
844
+ unstable_ignoreValueFormatterDuringExport: _propTypes.default.oneOfType([_propTypes.default.shape({
845
+ clipboardExport: _propTypes.default.bool,
846
+ csvExport: _propTypes.default.bool
847
+ }), _propTypes.default.bool])
829
848
  };
@@ -86,9 +86,9 @@ const useDataGridProComponent = (inputApiRef, props) => {
86
86
  (0, _useGridInfiniteLoader.useGridInfiniteLoader)(apiRef, props);
87
87
  (0, _useGridLazyLoader.useGridLazyLoader)(apiRef, props);
88
88
  (0, _internals.useGridColumnMenu)(apiRef);
89
- (0, _internals.useGridCsvExport)(apiRef);
89
+ (0, _internals.useGridCsvExport)(apiRef, props);
90
90
  (0, _internals.useGridPrintExport)(apiRef, props);
91
- (0, _internals.useGridClipboard)(apiRef);
91
+ (0, _internals.useGridClipboard)(apiRef, props);
92
92
  (0, _internals.useGridDimensions)(apiRef, props);
93
93
  (0, _internals.useGridEvents)(apiRef, props);
94
94
  (0, _internals.useGridStatePersistence)(apiRef);
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-pro v6.3.0
2
+ * @mui/x-data-grid-pro v6.4.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getReleaseInfo = void 0;
7
7
  var _utils = require("@mui/utils");
8
8
  const getReleaseInfo = () => {
9
- const releaseInfo = "MTY4MjYyOTIwMDAwMA==";
9
+ const releaseInfo = "MTY4Mzg0MjQwMDAwMA==";
10
10
  if (process.env.NODE_ENV !== 'production') {
11
11
  // A simple hack to set the value in the test environment (has no build step).
12
12
  // eslint-disable-next-line no-useless-concat
@@ -22,11 +22,12 @@ const getNodePathInTree = ({
22
22
  let node = tree[id];
23
23
  while (node.id !== _xDataGrid.GRID_ROOT_GROUP_ID) {
24
24
  path.push({
25
- field: node.groupingField,
25
+ field: node.type === 'leaf' ? null : node.groupingField,
26
26
  key: node.groupingKey
27
27
  });
28
28
  node = tree[node.parent];
29
29
  }
30
+ path.reverse();
30
31
  return path;
31
32
  };
32
33
  exports.getNodePathInTree = getNodePathInTree;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid-pro",
3
- "version": "6.3.0",
3
+ "version": "6.4.0",
4
4
  "description": "The Pro plan edition of the data grid component (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -32,8 +32,8 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@babel/runtime": "^7.21.0",
35
- "@mui/utils": "^5.12.0",
36
- "@mui/x-data-grid": "6.3.0",
35
+ "@mui/utils": "^5.12.3",
36
+ "@mui/x-data-grid": "6.4.0",
37
37
  "@mui/x-license-pro": "6.0.4",
38
38
  "@types/format-util": "^1.0.2",
39
39
  "clsx": "^1.2.1",
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTY4MjYyOTIwMDAwMA==";
3
+ const releaseInfo = "MTY4Mzg0MjQwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -14,11 +14,12 @@ export const getNodePathInTree = ({
14
14
  let node = tree[id];
15
15
  while (node.id !== GRID_ROOT_GROUP_ID) {
16
16
  path.push({
17
- field: node.groupingField,
17
+ field: node.type === 'leaf' ? null : node.groupingField,
18
18
  key: node.groupingKey
19
19
  });
20
20
  node = tree[node.parent];
21
21
  }
22
+ path.reverse();
22
23
  return path;
23
24
  };
24
25
  export const addGroupDefaultExpansion = ({