@mui/x-data-grid-pro 7.5.1 → 7.6.1
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 +112 -1
- package/DataGridPro/DataGridPro.js +1 -1
- package/components/GridColumnHeaders.d.ts +2 -2
- package/components/headerFiltering/GridHeaderFilterCell.js +8 -5
- package/esm/DataGridPro/DataGridPro.js +1 -1
- package/esm/components/headerFiltering/GridHeaderFilterCell.js +8 -5
- package/esm/utils/releaseInfo.js +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -1
- package/modern/DataGridPro/DataGridPro.js +1 -1
- package/modern/components/headerFiltering/GridHeaderFilterCell.js +8 -5
- package/modern/index.js +1 -1
- package/modern/utils/releaseInfo.js +1 -1
- package/package.json +5 -5
- package/utils/releaseInfo.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,117 @@
|
|
|
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
|
+
## 7.6.1
|
|
7
|
+
|
|
8
|
+
_May 31, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 2 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
🐞 Address the `@mui/internal-test-utils` added as a direct dependency to `@mui/x-data-grid` by mistake.
|
|
13
|
+
|
|
14
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
15
|
+
|
|
16
|
+
### Data Grid
|
|
17
|
+
|
|
18
|
+
#### `@mui/x-data-grid@7.6.1`
|
|
19
|
+
|
|
20
|
+
- [DataGrid] Fix column resize not working with special character (#13069) @oukunan
|
|
21
|
+
- [DataGrid] Move `@mui/internal-test-utils` to dev dependency (#13318) @LukasTy
|
|
22
|
+
|
|
23
|
+
#### `@mui/x-data-grid-pro@7.6.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
24
|
+
|
|
25
|
+
Same changes as in `@mui/x-data-grid@7.6.1`.
|
|
26
|
+
|
|
27
|
+
#### `@mui/x-data-grid-premium@7.6.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
28
|
+
|
|
29
|
+
Same changes as in `@mui/x-data-grid-pro@7.6.1`.
|
|
30
|
+
|
|
31
|
+
## 7.6.0
|
|
32
|
+
|
|
33
|
+
_May 30, 2024_
|
|
34
|
+
|
|
35
|
+
We'd like to offer a big thanks to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
36
|
+
|
|
37
|
+
- 🎁 Allow to define and customize the indentation of nested items in the Tree View
|
|
38
|
+
- ✨ Allow charts highlights to be controlled
|
|
39
|
+
- 🌍 Improve Persian (fa-IR) locale on the Data Grid
|
|
40
|
+
- 🐞 Bugfixes
|
|
41
|
+
- 📚 Documentation improvements
|
|
42
|
+
|
|
43
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
44
|
+
|
|
45
|
+
### Data Grid
|
|
46
|
+
|
|
47
|
+
#### `@mui/x-data-grid@7.6.0`
|
|
48
|
+
|
|
49
|
+
- [DataGrid] Avoid re-rendering all cells on column change (#12980) @romgrk
|
|
50
|
+
- [DataGrid] Export `GridColumnHeadersProps` (#13229) @cherniavskii
|
|
51
|
+
- [DataGrid] Fix header filters' issue with custom filters (#13255) @MBilalShafi
|
|
52
|
+
- [DataGrid] Remove dead logic to support Safari < 13 (#13249) @oliviertassinari
|
|
53
|
+
- [l10n] Improve Persian (fa-IR) locale (#12994) @amiryxe
|
|
54
|
+
|
|
55
|
+
#### `@mui/x-data-grid-pro@7.6.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
56
|
+
|
|
57
|
+
Same changes as in `@mui/x-data-grid@7.6.0`.
|
|
58
|
+
|
|
59
|
+
#### `@mui/x-data-grid-premium@7.6.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
60
|
+
|
|
61
|
+
Same changes as in `@mui/x-data-grid-pro@7.6.0`, plus:
|
|
62
|
+
|
|
63
|
+
- [DataGridPremium] Fix excel export causing column with wrong width (#13191) @romgrk
|
|
64
|
+
|
|
65
|
+
### Date and Time Pickers
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-date-pickers@7.6.0`
|
|
68
|
+
|
|
69
|
+
- [pickers] Fix `DateBuilderReturnType` when the date is `undefined` (#13244) @alexey-kozlenkov
|
|
70
|
+
|
|
71
|
+
#### `@mui/x-date-pickers-pro@7.6.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
72
|
+
|
|
73
|
+
Same changes as in `@mui/x-date-pickers@7.6.0`.
|
|
74
|
+
|
|
75
|
+
### Charts
|
|
76
|
+
|
|
77
|
+
#### `@mui/x-charts@7.6.0`
|
|
78
|
+
|
|
79
|
+
- [charts] Allow charts highlights to be controlled (#12828) @JCQuintas
|
|
80
|
+
- [charts] Refactor axis band scaleType check (#13295) @JCQuintas
|
|
81
|
+
- [charts] Refactor checkScaleErrors to improve readability and simplify axis message logic (#13305) @JCQuintas
|
|
82
|
+
|
|
83
|
+
### Tree View
|
|
84
|
+
|
|
85
|
+
#### `@mui/x-tree-view@7.6.0`
|
|
86
|
+
|
|
87
|
+
- [TreeView] Add JSDoc to every instance method (#13219) @flaviendelangle
|
|
88
|
+
- [TreeView] Allow to customize the indentation of nested items (#13225) @flaviendelangle
|
|
89
|
+
- [TreeView] Allow to define indentation at the item level (#13126) @flaviendelangle
|
|
90
|
+
|
|
91
|
+
### Docs
|
|
92
|
+
|
|
93
|
+
- [docs] Add Bulk editing demo for the Community plan (#12800) @cherniavskii
|
|
94
|
+
- [docs] Add conditional label formatting on tooltip page and link to label page (#13235) @JCQuintas
|
|
95
|
+
- [docs] Add information about key combinations on a11y sections (#13234) @arthurbalduini
|
|
96
|
+
- [docs] Cleanup of the Tree View demos (#13237) @flaviendelangle
|
|
97
|
+
- [docs] Document how to customize a subsection of a line chart (#13210) @alexfauquette
|
|
98
|
+
- [docs] Fix Pickers FAQ callout (#13238) @LukasTy
|
|
99
|
+
- [docs] Fix Vale errors @oliviertassinari
|
|
100
|
+
- [docs] Fix a small typo in property comment (#13245) @Janpot
|
|
101
|
+
- [docs] Improve the Data Grid FAQ page (#13258) @MBilalShafi
|
|
102
|
+
- [docs] Removes unused lines in TreeItem2 styling (#13264) @arthurbalduini
|
|
103
|
+
- [docs] Small improvements on accessibility data grid doc (#13233) @arthurbalduini
|
|
104
|
+
- [docs] Update Pickers demo configurations (#13303) @LukasTy
|
|
105
|
+
|
|
106
|
+
### Core
|
|
107
|
+
|
|
108
|
+
- [core] Add comment on why logic to sync column header (#13248) @oliviertassinari
|
|
109
|
+
- [core] Fix `l10n` script execution with arguments (#13297) @LukasTy
|
|
110
|
+
- [core] Prevent "Add reviewers" workflow from triggering since it doesn't work (#13236) @JCQuintas
|
|
111
|
+
- [docs-infra] Fix `@mui/material` version used in sandboxes (#13260) @LukasTy
|
|
112
|
+
- [test] Use `describeTreeView` for keyboard navigation tests on disabled items (#13184) @flaviendelangle
|
|
113
|
+
- [test] Use `describeTreeView` for remaining items tests (#13262) @flaviendelangle
|
|
114
|
+
- [test] Use test-utils from npm (#12880) @michaldudak
|
|
115
|
+
- [typescript] Remove duplicate `DateRangePosition` type in favor of `RangePosition` (#13288) @LukasTy
|
|
116
|
+
|
|
6
117
|
## v7.5.1
|
|
7
118
|
|
|
8
119
|
_May 23, 2024_
|
|
@@ -339,7 +450,7 @@ Same changes as in `@mui/x-date-pickers@7.3.1`.
|
|
|
339
450
|
### Core
|
|
340
451
|
|
|
341
452
|
- [core] Fix `l10n` GH workflow (#12895) @LukasTy
|
|
342
|
-
- [core] Match Base
|
|
453
|
+
- [core] Match Base UI and Toolpad @oliviertassinari
|
|
343
454
|
- [core] Remove redundant `setupFiles` entries in `package.json` (#12899) @LukasTy
|
|
344
455
|
- [core] Use `describeTreeView` for focus tests (#12698) @flaviendelangle
|
|
345
456
|
- [core] Use `describeTreeView` for type-ahead tests (#12811) @flaviendelangle
|
|
@@ -73,7 +73,7 @@ DataGridProRaw.propTypes = {
|
|
|
73
73
|
*/
|
|
74
74
|
'aria-labelledby': _propTypes.default.string,
|
|
75
75
|
/**
|
|
76
|
-
* If `true`, the Data Grid height is dynamic and
|
|
76
|
+
* If `true`, the Data Grid height is dynamic and follows the number of rows in the Data Grid.
|
|
77
77
|
* @default false
|
|
78
78
|
*/
|
|
79
79
|
autoHeight: _propTypes.default.bool,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { UseGridColumnHeadersProps } from '@mui/x-data-grid/internals';
|
|
3
|
-
interface
|
|
3
|
+
export interface GridColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, UseGridColumnHeadersProps {
|
|
4
4
|
}
|
|
5
|
-
declare const GridColumnHeaders: React.ForwardRefExoticComponent<
|
|
5
|
+
declare const GridColumnHeaders: React.ForwardRefExoticComponent<GridColumnHeadersProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
6
|
export { GridColumnHeaders };
|
|
@@ -70,7 +70,12 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
70
70
|
const isMenuOpen = menuOpenField === colDef.field;
|
|
71
71
|
|
|
72
72
|
// TODO: Support for `isAnyOf` operator
|
|
73
|
-
const filterOperators =
|
|
73
|
+
const filterOperators = React.useMemo(() => {
|
|
74
|
+
if (!colDef.filterOperators) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
return colDef.filterOperators.filter(operator => operator.value !== 'isAnyOf');
|
|
78
|
+
}, [colDef.filterOperators]);
|
|
74
79
|
const filterModel = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridFilterModelSelector);
|
|
75
80
|
const filterableColumnsLookup = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridFilterableColumnLookupSelector);
|
|
76
81
|
const isFilterReadOnly = React.useMemo(() => {
|
|
@@ -80,7 +85,7 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
80
85
|
const filterModelItem = filterModel.items.find(it => it.field === colDef.field);
|
|
81
86
|
return filterModelItem ? !filterableColumnsLookup[filterModelItem.field] : false;
|
|
82
87
|
}, [colDef.field, filterModel, filterableColumnsLookup]);
|
|
83
|
-
const currentOperator = filterOperators[0];
|
|
88
|
+
const currentOperator = React.useMemo(() => filterOperators.find(operator => operator.value === item.operator) ?? filterOperators[0], [item.operator, filterOperators]);
|
|
84
89
|
const InputComponent = colDef.filterable || isFilterReadOnly ? currentOperator.InputComponent : null;
|
|
85
90
|
const applyFilterChanges = React.useCallback(updatedItem => {
|
|
86
91
|
if (item.value && !updatedItem.value) {
|
|
@@ -181,9 +186,7 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
181
186
|
showRightBorder
|
|
182
187
|
});
|
|
183
188
|
const classes = useUtilityClasses(ownerState);
|
|
184
|
-
const isNoInputOperator =
|
|
185
|
-
value
|
|
186
|
-
}) => item.operator === value)?.requiresFilterValue === false;
|
|
189
|
+
const isNoInputOperator = currentOperator.requiresFilterValue === false;
|
|
187
190
|
const isApplied = Boolean(item?.value) || isNoInputOperator;
|
|
188
191
|
const label = currentOperator.headerLabel ?? apiRef.current.getLocaleText(`headerFilterOperator${(0, _utils.unstable_capitalize)(item.operator)}`);
|
|
189
192
|
const isFilterActive = isApplied || hasFocus;
|
|
@@ -65,7 +65,7 @@ DataGridProRaw.propTypes = {
|
|
|
65
65
|
*/
|
|
66
66
|
'aria-labelledby': PropTypes.string,
|
|
67
67
|
/**
|
|
68
|
-
* If `true`, the Data Grid height is dynamic and
|
|
68
|
+
* If `true`, the Data Grid height is dynamic and follows the number of rows in the Data Grid.
|
|
69
69
|
* @default false
|
|
70
70
|
*/
|
|
71
71
|
autoHeight: PropTypes.bool,
|
|
@@ -61,7 +61,12 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
61
61
|
const isMenuOpen = menuOpenField === colDef.field;
|
|
62
62
|
|
|
63
63
|
// TODO: Support for `isAnyOf` operator
|
|
64
|
-
const filterOperators =
|
|
64
|
+
const filterOperators = React.useMemo(() => {
|
|
65
|
+
if (!colDef.filterOperators) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
return colDef.filterOperators.filter(operator => operator.value !== 'isAnyOf');
|
|
69
|
+
}, [colDef.filterOperators]);
|
|
65
70
|
const filterModel = useGridSelector(apiRef, gridFilterModelSelector);
|
|
66
71
|
const filterableColumnsLookup = useGridSelector(apiRef, gridFilterableColumnLookupSelector);
|
|
67
72
|
const isFilterReadOnly = React.useMemo(() => {
|
|
@@ -71,7 +76,7 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
71
76
|
const filterModelItem = filterModel.items.find(it => it.field === colDef.field);
|
|
72
77
|
return filterModelItem ? !filterableColumnsLookup[filterModelItem.field] : false;
|
|
73
78
|
}, [colDef.field, filterModel, filterableColumnsLookup]);
|
|
74
|
-
const currentOperator = filterOperators[0];
|
|
79
|
+
const currentOperator = React.useMemo(() => filterOperators.find(operator => operator.value === item.operator) ?? filterOperators[0], [item.operator, filterOperators]);
|
|
75
80
|
const InputComponent = colDef.filterable || isFilterReadOnly ? currentOperator.InputComponent : null;
|
|
76
81
|
const applyFilterChanges = React.useCallback(updatedItem => {
|
|
77
82
|
if (item.value && !updatedItem.value) {
|
|
@@ -172,9 +177,7 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
172
177
|
showRightBorder
|
|
173
178
|
});
|
|
174
179
|
const classes = useUtilityClasses(ownerState);
|
|
175
|
-
const isNoInputOperator =
|
|
176
|
-
value
|
|
177
|
-
}) => item.operator === value)?.requiresFilterValue === false;
|
|
180
|
+
const isNoInputOperator = currentOperator.requiresFilterValue === false;
|
|
178
181
|
const isApplied = Boolean(item?.value) || isNoInputOperator;
|
|
179
182
|
const label = currentOperator.headerLabel ?? apiRef.current.getLocaleText(`headerFilterOperator${capitalize(item.operator)}`);
|
|
180
183
|
const isFilterActive = isApplied || hasFocus;
|
package/esm/utils/releaseInfo.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTcxNzEwMjgwMDAwMA==";
|
|
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
|
package/index.d.ts
CHANGED
|
@@ -24,3 +24,4 @@ export { useGridApiContext, useGridApiRef, useGridRootProps } from './typeOverlo
|
|
|
24
24
|
export type { GridApi, GridInitialState, GridState } from './typeOverloads/reexports';
|
|
25
25
|
export { GridColumnMenu, GRID_COLUMN_MENU_SLOTS, GRID_COLUMN_MENU_SLOT_PROPS, } from './components/reexports';
|
|
26
26
|
export { GridColumnHeaders } from './components/GridColumnHeaders';
|
|
27
|
+
export type { GridColumnHeadersProps } from './components/GridColumnHeaders';
|
package/index.js
CHANGED
|
@@ -65,7 +65,7 @@ DataGridProRaw.propTypes = {
|
|
|
65
65
|
*/
|
|
66
66
|
'aria-labelledby': PropTypes.string,
|
|
67
67
|
/**
|
|
68
|
-
* If `true`, the Data Grid height is dynamic and
|
|
68
|
+
* If `true`, the Data Grid height is dynamic and follows the number of rows in the Data Grid.
|
|
69
69
|
* @default false
|
|
70
70
|
*/
|
|
71
71
|
autoHeight: PropTypes.bool,
|
|
@@ -61,7 +61,12 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
61
61
|
const isMenuOpen = menuOpenField === colDef.field;
|
|
62
62
|
|
|
63
63
|
// TODO: Support for `isAnyOf` operator
|
|
64
|
-
const filterOperators =
|
|
64
|
+
const filterOperators = React.useMemo(() => {
|
|
65
|
+
if (!colDef.filterOperators) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
return colDef.filterOperators.filter(operator => operator.value !== 'isAnyOf');
|
|
69
|
+
}, [colDef.filterOperators]);
|
|
65
70
|
const filterModel = useGridSelector(apiRef, gridFilterModelSelector);
|
|
66
71
|
const filterableColumnsLookup = useGridSelector(apiRef, gridFilterableColumnLookupSelector);
|
|
67
72
|
const isFilterReadOnly = React.useMemo(() => {
|
|
@@ -71,7 +76,7 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
71
76
|
const filterModelItem = filterModel.items.find(it => it.field === colDef.field);
|
|
72
77
|
return filterModelItem ? !filterableColumnsLookup[filterModelItem.field] : false;
|
|
73
78
|
}, [colDef.field, filterModel, filterableColumnsLookup]);
|
|
74
|
-
const currentOperator = filterOperators[0];
|
|
79
|
+
const currentOperator = React.useMemo(() => filterOperators.find(operator => operator.value === item.operator) ?? filterOperators[0], [item.operator, filterOperators]);
|
|
75
80
|
const InputComponent = colDef.filterable || isFilterReadOnly ? currentOperator.InputComponent : null;
|
|
76
81
|
const applyFilterChanges = React.useCallback(updatedItem => {
|
|
77
82
|
if (item.value && !updatedItem.value) {
|
|
@@ -172,9 +177,7 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
172
177
|
showRightBorder
|
|
173
178
|
});
|
|
174
179
|
const classes = useUtilityClasses(ownerState);
|
|
175
|
-
const isNoInputOperator =
|
|
176
|
-
value
|
|
177
|
-
}) => item.operator === value)?.requiresFilterValue === false;
|
|
180
|
+
const isNoInputOperator = currentOperator.requiresFilterValue === false;
|
|
178
181
|
const isApplied = Boolean(item?.value) || isNoInputOperator;
|
|
179
182
|
const label = currentOperator.headerLabel ?? apiRef.current.getLocaleText(`headerFilterOperator${capitalize(item.operator)}`);
|
|
180
183
|
const isFilterActive = isApplied || hasFocus;
|
package/modern/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTcxNzEwMjgwMDAwMA==";
|
|
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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-pro",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.6.1",
|
|
4
4
|
"description": "The Pro plan edition of the Data Grid components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
"directory": "packages/x-data-grid-pro"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@babel/runtime": "^7.24.
|
|
37
|
-
"@mui/system": "^5.15.
|
|
36
|
+
"@babel/runtime": "^7.24.6",
|
|
37
|
+
"@mui/system": "^5.15.15",
|
|
38
38
|
"@mui/utils": "^5.15.14",
|
|
39
39
|
"@types/format-util": "^1.0.4",
|
|
40
40
|
"clsx": "^2.1.1",
|
|
41
41
|
"prop-types": "^15.8.1",
|
|
42
42
|
"reselect": "^4.1.8",
|
|
43
|
-
"@mui/x-data-grid": "7.
|
|
44
|
-
"@mui/x-license": "7.
|
|
43
|
+
"@mui/x-data-grid": "7.6.1",
|
|
44
|
+
"@mui/x-license": "7.6.1"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@mui/material": "^5.15.14",
|
package/utils/releaseInfo.js
CHANGED
|
@@ -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 = "
|
|
9
|
+
const releaseInfo = "MTcxNzEwMjgwMDAwMA==";
|
|
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
|