@mui/x-data-grid-premium
Version:
The Premium plan edition of the data grid component (MUI X).
990 lines (749 loc) β’ 185 kB
Markdown
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## v5.11.0
_May 13, 2022_
We'd like to offer a big thanks to the 15 contributors who made this release possible. Here are some highlights β¨:
- π Premium plan release
Weβre happy to announce that the Premium plan is [finally out](https://mui.com/blog/premium-plan-release/)!
With it, MUI X officially steps up to the next level, supporting the most advanced use cases for UI components.
This plan is available through the new `@mui/x-data-grid-premium` package, which contains the row grouping and the Excel export features.
If you were already using the row grouping feature, you can upgrade by [installing](https://mui.com/x/react-data-grid/getting-started/#installation) `@mui/x-data-grid-premium` and replace `DataGridPro` with `DataGridPremium`, as follows.
Note that the experimental flag is not required anymore to use the row grouping.
```diff
-import { DataGridPro } from '@mui/x-data-grid-pro';
+import { DataGridPremium } from '@mui/x-data-grid-premium';
-<DataGridPro experimentalFeatures={{ rowGrouping: true }} />
+<DataGridPremium />
```
For more information about the revised pricing model please have a look at the [blog post](https://mui.com/blog/premium-plan-release/#the-new-licensing-model).
- π Add Excel export
- π Quick filtering
You can now add a quick filtering search bar to your grid.
To do so, either pass `showQuickFilter` prop to the `<GridToolbar />` or use the `<GridToolbarQuickFilter />` component in your custom toolbar.
More information about how to customize the filtering logic is in the [documentation](https://mui.com/x/react-data-grid/filtering/#quick-filter)

- π Bugs fixes
### `@mui/x-data-grid@v5.11.0` / `@mui/x-data-grid-pro@v5.11.0` / `@mui/x-data-grid-premium@v5.11.0`
#### Breaking changes
- Moving row grouping to premium package
The use of `rowGrouping` in the `@mui/x-data-grid-pro` package is deprecated. The experimental flag will be removed in an upcoming release.
#### Changes
- [DataGrid] Add TypeScript support to the `sx` prop in inner components (#4743) @lindapaiste
- [DataGrid] Add props to control cell mode (#4210) @m4theushw
- [DataGrid] Add quick filtering engine (#4317) @alexfauquette
- [DataGrid] Check focus validity whenever the rows in state changes (#4683) @flaviendelangle
- [DataGrid] Fix infinite scroll when dragging column header cell over row cell (#4735) @DjoSmer
- [DataGrid] Fix scroll jump when using keyboard navigation (#4515) @cherniavskii
- [DataGrid] Improve sorting accessibility (#4379) @cherniavskii
- [DataGrid] New `getRowGroupChildren` API method (#4304) @flaviendelangle
- [DataGrid] Publish `preferencePanelClose` event only once when clicking on another panel button (#4810) @flaviendelangle
- [DataGrid] Update focused action if the currently focused one is removed (#4694) @m4theushw
- [DataGrid] Add `onChange` callback to edit components (#4621) @m4theushw
- [DataGrid] Add `keepNonExistentRowsSelected` prop (#4786) @willsoto
- [DataGrid] Prevent crash if row is removed with click (#4831) @m4theushw
- [DataGridPro] Fix detail panel not taking full width (#4610) @cherniavskii
- [DataGridPremium] Add Excel export (#3981) @alexfauquette
- [DataGridPremium] Bootstrap `@mui/x-data-grid-premium` (#4223) @flaviendelangle
- [DataGridPremium] Fix Excel date serialization when row grouping is enabled (#4774) @cherniavskii
- [l10n] Improve German (de-DE) locale (#4748) @sebastianfrey
- [l10n] Improve German (de-DE) locale (#4668) @izu-co
### `@mui/x-date-pickers@5.0.0-alpha.3` / `@mui/x-date-pickers-pro@5.0.0-alpha.3`
#### Breaking changes
- Rework the auto-closing behavior of the pickers.
The `disableCloseOnSelect` prop has been replaced by a new `closeOnSelect` prop which has the opposite behavior.
The default behavior remains the same (close after the last step on desktop but not on mobile).
```diff
// If you don't want to close after the last step
-<DatePicker disableCloseOnSelect={false} />
+<DatePicker closeOnSelect />
// If you want to close after the last step
-<DatePicker disableCloseOnSelect />
+<DatePicker closeOnSelect={false} />
```
#### Changes
- [DatePicker] Ignore <kbd>Escape</kbd> when the picker is already closed (#4770) @mikewolfd
- [DatePicker] Make month year order changeable in header (#4695) @gky360
- [DateRangePicker] Open view on click, <kbd>Enter</kbd> or <kbd>Space</kbd> instead of focus (#4747) @alexfauquette
- [DateRangePicker] Refactor tests (#4745) @flaviendelangle
- [DateRangePicker] Remove `orientation` prop (#4665) @m4theushw
- [DateTimePicker] `Toolbar` should be visible by default on mobile (#4833) @flaviendelangle
- [MonthPicker] New prop `shouldDisableMonth` (#4708) @someone635
- [TimePicker] Disable and invalidate date with minutes not matching `minutesStep` (#4726) @flaviendelangle
- [TimePicker] Don't merge with previous value when new value is not valid (#4847) @flaviendelangle
- [TimePicker] Refactor `isTimeDisabled` method (#4688) @flaviendelangle
- [pickers] Add details in invalid mask error (#4501) @alexfauquette
- [pickers] Add explicit interfaces for components slots and components slots props (#4589) @flaviendelangle
- [pickers] Add missing `peerDependencies` for `yarn pnp` users (#4763) @nate-summercook
- [pickers] Add overrides to `PickersArrowSwitcher` (#4672) @m4theushw
- [pickers] Clean component interfaces and remove non-implemented props (#4758) @flaviendelangle
- [pickers] Do not apply the current time when no date provided in `DayPicker` (#4649) @flaviendelangle
- [pickers] Document and refacto the value manager (#4701) @flaviendelangle
- [pickers] Drop `allowSameDateSelection` prop (#4808) @flaviendelangle
- [pickers] Enable mask by default when using `ampm=true` (#4731) @alexfauquette
- [pickers] Fix `disabled` and `readOnly` behavior on calendar and clock (#4645) @alexfauquette
- [pickers] Invalid character does not delete last digit (#4839) @alexfauquette
- [pickers] Rename prop `date` into `parsedValue` when it can contain a range (#4736) @flaviendelangle
- [pickers] Rework `TDate`, `TInputDate`, `TValue` and `TInputValue` generics (#4617) @flaviendelangle
- [pickers] Rework the date lifecycle in `usePickerState` (#4408) @flaviendelangle
### Docs
- [docs] Add `scopePathNames` property to column page (#4811) @flaviendelangle
- [docs] Add label to each demo (#4667) @m4theushw
- [docs] Correctly capitalize <kbd>Ctrl</kbd> (#4707) @oliviertassinari
- [docs] Fix documentation on `ampm` prop (#4846) @alexfauquette
- [docs] Generate the event documentation from `GridEventLookup` (#4725) @flaviendelangle
- [docs] Keep columns section expanded when switching between pages (#4816) @cherniavskii
- [docs] Move `useKeepGroupingColumnsHidden` on `@mui/x-data-grid-premium` (#4319) @flaviendelangle
- [docs] Remove legacy pages for old URLs (#4575) @m4theushw
- [docs] Remove remaining pages in `docs/pages/api-docs` folder (#4709) @m4theushw
- [docs] SEO fixes (#4711) @oliviertassinari
- [docs] Set type number to movie column year (#4753) @flaviendelangle
- [docs] Simplify server examples (#4186) @alexfauquette
- [docs] Small typo (#4670) @flaviendelangle
- [docs] Split the 'Columns' page (#4600) @flaviendelangle
- [docs] Stop using `GridEvents` enum in documentation (#4699) @flaviendelangle
- [docs] Update mono repo to get copy code block (#4691) @siriwatknp
- [docs] Update the feature table in the Getting Started page of the data grid (#4619) @flaviendelangle
- [docs] Add demo for Premium (#4750) @m4theushw
### Core
- [core] Check if `process` is available (#4193) @m4theushw
- [core] Fix naming collision (#4853) @alexfauquette
- [core] Prevent out-of-memory when type-checking in CI (#4697) @flaviendelangle
- [core] Remove `rowsCache` from state (#4480) @m4theushw
- [core] Rework `DayPicker` api (#4783) @flaviendelangle
- [core] Update `x-license-pro` license to handle premium package (#4315) @DanailH
- [core] Update monorepo & version (#4789) @oliviertassinari
- [core] Update monorepo (#4772) @flaviendelangle
- [core] Stop using `GridEvents` enum (#4698, #4696, #4685) @flaviendelangle
- [core] Update monorepo (#4854) @cherniavskii
- [license] Allow to limit some packages to a specific license plan (#4651) @flaviendelangle
- [test] Fix path to detect `DataGrid` tests (#4752) @m4theushw
- [test] Reset cleanup tracking on Karma tests (#4679) @m4theushw
- [test] Restore `sinon` sandbox after each `karma` test (#4689) @m4theushw
## v5.10.0
_Apr 25, 2022_
We'd like to offer a big thanks to the 6 contributors who made this release possible. Here are some highlights β¨:
- π Introduce [Row reorder](https://mui.com/x/react-data-grid/rows/#row-reorder) (#4034) @DanailH
<img src="https://user-images.githubusercontent.com/5858539/165091263-23472fbb-a989-44b8-849a-d2185adfe13b.gif" width="800">
- π Bug fixes
### `@mui/x-data-grid@v5.10.0` / `@mui/x-data-grid-pro@v5.10.0`
- [DataGrid] Don't close column menu when updating rows (#4498) @m4theushw
- [DataGridPro] Introduce row reorder (#4034) @DanailH
### `@mui/x-date-pickers@5.0.0-alpha.2` / `@mui/x-date-pickers-pro@5.0.0-alpha.2`
- [pickers] Pass `PaperProps` to `DesktopWrapper` component (#4584) @alexfauquette
- [TimePicker] Fix bug when time picker clear value (#4582) @alexfauquette
- [DateRangePicker] Fix missing `clearable` and `clearText` props (#4511) @zigang93
### Docs
- [docs] Add plan in the nav bar for pro-only and premium-only pages (#4591) @flaviendelangle
- [docs] Clarify where to install the license (#4452) @oliviertassinari
- [docs] Fix CodeSandbox links for demo with pickers (#4570) @alexfauquette
- [docs] Include date-fns dependency when opening demos in CodeSandbox (#4508) @m4theushw
- [docs] Split the 'Group & Pivot' page (#4441) @flaviendelangle
### Core
- [core] Fix the README of the X packages (#4590) @flaviendelangle
- [test] Fix test to not depend on screen resolution (#4587) @m4theushw
## v5.9.0
_Apr 14, 2022_
We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights β¨:
- β‘ Update peer dependencies to support React 18 (#4332) @m4theushw
Now the data grid and pickers components support the concurrent mode.
- π Add support for [Column spanning](https://mui.com/x/react-data-grid/column-spanning/) (#4020) @cherniavskii
<img src="https://user-images.githubusercontent.com/13808724/162926746-93bcb180-3c9d-4eb9-afc7-c3908a5c6406.png" width="788">
- π New standalone documentation for MUI X (#4313) @siriwatknp
Each MUI product now has its own documentation.
More information on our [blog post](https://mui.com/blog/docs-restructure-2022/).
- π Add Hungarian (hu-HU) locale (#4458) @x22tri
- π Bug fixes
### `@mui/x-data-grid@v5.9.0` / `@mui/x-data-grid-pro@v5.9.0`
- [DataGrid] Add indexes relative to the filtered rows and the current page to the `getRowClassName` and `getRowSpacing` props (#3882) @flaviendelangle
- [DataGrid] Add React 18 to peer dependencies (#4332) @m4theushw
- [DataGrid] Add support for column spanning (#4020) @cherniavskii
- [DataGrid] Apply filtering before sorting (#4359) @flaviendelangle
- [DataGrid] Enable using non-native Select in filter panel (#4361) @kyeongsoosoo
- [DataGrid] Fix `api` prop leaking to DOM (#4384) @m4theushw
- [DataGrid] Fix column dimensions import/export with flex and resizing (#4311) @flaviendelangle
- [DataGrid] Fix focus after stopping row edit mode with pagination enabled (#4326) @m4theushw
- [DataGrid] Fix inconsistent overlay when changing the `loading` prop (#4334) @m4theushw
- [DataGrid] Fix scrollbar grabbing issue in Safari (#4405) @cherniavskii
- [DataGrid] `GridCellParams.formattedValue` should be nullable (#4376) @flaviendelangle
- [DataGrid] Improve accessibility of the `actions` column (#4325) @m4theushw
- [DataGrid] Pass updated row to edit components (#4392) @m4theushw
- [DataGrid] Prevent column header scroll (#4280) @m4theushw
- [DataGridPro] Fix toggling detail panel using keyboard (#4409) @cherniavskii
- [l10n] Add Hungarian (hu-HU) locale (#4458) @x22tri
### `@mui/x-date-pickers@5.0.0-alpha.1` / `@mui/x-date-pickers-pro@5.0.0-alpha.1`
- [ClockPicker] Should call `shouldDisableTime` with the hours with meridiem (#4404) @flaviendelangle
- [MonthPicker] Clicking on a `PickersMonth` button should not trigger the form submit (#4402) @flaviendelangle
- [TimePicker] Do not update date when updating input in `TimePicker` (#4398) @flaviendelangle
- [pickers] Add react-dom to pickers peer deps to satisfy react-transition-group (#4411) @CarsonF
- [pickers] Add `TDate` generic to `CalendarOrClockPicker` component (#4465) @flaviendelangle
- [pickers] Fix default props behavior on all pickers (#4451) @flaviendelangle
- [pickers] Export `MuiPickersAdapterContext` (#4367) @flaviendelangle
### Docs
- [docs] Avoid redirections (#4365) @oliviertassinari
- [docs] Fix docs about date adapter (#4386) @alexfauquette
- [docs] Fix small external links issue (#4436) @oliviertassinari
- [docs] Fix some links to date picker docs (#4362) @oliviertassinari
- [docs] Fix wrong URL (#4415) @siriwatknp
- [docs] Go live with the new URLs (#4313) @siriwatknp
- [docs] Update the product names to be in sync @oliviertassinari
### Core
- [core] Add technical doc for pipe processing and family processing (#4322) @flaviendelangle
- [core] Don't upgrade CircleCI node (#4457) @m4theushw
- [core] Fix flaky e2e-website tests in CI (#4136) @cherniavskii
- [core] Fix license file copying during build (#4462) @flaviendelangle
- [core] Fix links on v5.8.0 (#4464) @oliviertassinari
- [core] Fix npm page description mistake (#4364) @oliviertassinari
- [core] Fix typos and JSDoc (#4406) @flaviendelangle
- [core] Move away for the event system to trigger pipe processings (#4378) @flaviendelangle
- [core] Small fixes TS on pickers (#4461) @flaviendelangle
- [core] Unify tests (#4368) @flaviendelangle
- [core] Enforce `noImplicitAny` in `docs` folder (#4412) @cherniavskii
## 5.8.0
_Apr 4, 2022_
We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights β¨:
- π Expose new methods to save and restore the grid state (#4028) @flaviendelangle
The different methods to save and restore the data-grid state are now [documented](https://mui.com/x/react-data-grid/state/#save-and-restore-the-state).
- βοΈ Move date and time picker components from the lab (#3451) @flaviendelangle
Date and time picker components have been moved to the MUI X repository.
They are now accessible in their own packages: `@mui/x-date-pickers` and `@mui/x-date-pickers-pro`.
For more information, you can read the [blog article](https://mui.com/blog/lab-date-pickers-to-mui-x/) and the [migration guide](https://mui.com/x/react-date-pickers/migration-lab/).
- π Add `onProcessRowUpdateError` prop to simplify error management in edit mode (#4267) @m4theushw
- β¨ Add generic typing to `GridColDef` and derived interfaces (#4064) @flaviendelangle
You can now strongly type all the objects related to the row and the cell values.
Here is an example, you can find out more in the description of #4064.
```tsx
const rows: Movie[] = [];
return (
<DataGrid
rows={rows}
columns={[
{
// typeof params.row => Movie (R)
valueGetter: (params) => params.row.year,
},
]}
/>
);
```
### `@mui/x-data-grid@v5.8.0` / `@mui/x-data-grid-pro@v5.8.0`
#### Changes
- [DataGrid] Add `onProcessRowUpdateError` prop (#4267) @m4theushw
- [DataGrid] Add generic typing to `GridColDef` and derived interfaces (#4064) @flaviendelangle
- [DataGrid] Add missing classes on `gridClasses` and `gridPanelClasses` (#4273) @flaviendelangle
- [DataGrid] Add `onPreferencePanelClose`/`onPreferencePanelOpen` props (#4265) @kyeongsoosoo
- [DataGrid] Add slot for filter icon button (#4276) @m4theushw
- [DataGrid] Add the documentation of the portable state (#4028) @flaviendelangle
- [DataGrid] Allow to use keyboard navigation even with no rows (#4302) @alexfauquette
- [DataGrid] Fix inconsistency in the border of the last column (#4224) @alexfauquette
- [DataGrid] Fix overlay blocking scrollbar when rows is empty (#4281) @m4theushw
- [DataGrid] Improve selection with keyboard (#4157) @flaviendelangle
- [DataGrid] Scroll to the top of the page when changing page (#4272) @flaviendelangle
- [l10n] Improve Danish (da-DK) locale (#4271) @simplenotezy
### `@mui/x-date-pickers@v5.0.0-alpha.0` / `@mui/x-date-pickers-pro@v5.0.0-alpha.0`
#### Changes
- [DatePicker] Import date-picker components from the lab (#3451) @flaviendelangle
### Docs
- [docs] Create an home page for "Advanced Components" (#4298) @flaviendelangle
- [docs] Update installation docs (#4259) @cherniavskii
- [docs] New page for the migration of date and time pickers from the lab (#4327) @flaviendelangle
### Core
- [core] Fix typo in issue template @oliviertassinari
- [core] Move last variables outside of the models folder (#4303) @flaviendelangle
- [core] Remove dead code (#4283) @oliviertassinari
- [core] Rename the "pre-processing" concept "pipe-processing" (#4261) @flaviendelangle
- [core] Reuse previous state when updating the columns prop (#4229) @m4theushw
- [core] Fix Argos flakyness for pickers tests (#4312) @flaviendelangle
## 5.7.0
_Mar 24, 2022_
We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights β¨:
- β Add a new editing API with better support for server-side persistence and validation (#3963, #4060) @m4theushw
The new API is stable, but to avoid any breaking changes or conflicts with the old API, you must add the following flag to access it:
```tsx
<DataGrid experimentalFeatures={{ newEditingApi: true }} />
```
β Users relying on the old API (legacy) don't need to worry as it will continue to work until v6.
The new API also features brand new documentation with more useful demos and guides explaining how to create custom edit components.
Visit the new [documentation](https://mui.com/x/react-data-grid/editing/) for more information.
- π Documentation improvements
- π Bug and typo fixes
### `@mui/x-data-grid@v5.7.0` / `@mui/x-data-grid-pro@v5.7.0`
#### Changes
- [DataGrid] Add column order and dimensions to the portable state (#3816) @flaviendelangle
- [DataGrid] Add new editing API (#3963) @m4theushw
- [DataGrid] Allow to customize `ColumnsPanel` with `componentsProps` prop (#4207) @alexfauquette
- [DataGrid] Do not unselect row when <kbd>Shift</kbd> + click on the last selected row of a range (#4196) @flaviendelangle
- [DataGrid] Fix `showCellRightBorder` not working in the last row (#4140) @cherniavskii
- [DataGrid] Fix error overlay not visible when `autoHeight` is enabled (#4110) @cherniavskii
- [DataGrid] Fix white blank when scrolling (#4158) @alexfauquette
- [DataGrid] Adjust type of the `description` prop in `GridColumnHeaderTitle` (#4247) @baahrens
- [DataGrid] Fix focus after stopping row edit mode (#4252) @m4theushw
- [DataGridPro] Fix pinned columns edge overflow with custom `borderRadius` (#4188) @socramm9
- [DataGridPro] Fix tab switching order with pinned columns and `editMode="row"` (#4198) @cherniavskii
- [l10n] Improve Persian (fa-IR) locale (#4227) @SaeedZhiany
- [l10n] Improve Polish (pl-PL) locale (#4153) @pbmchc
- [l10n] Improve Arabic (ar-SD) locale (#4212) @shadigaafar
- [l10n] Improve Korean (ko-KR) locale (#4245) @kyeongsoosoo
### Docs
- [docs] Clean demo (#4073) @alexfauquette
- [docs] Delete restore state demos (#4220) @flaviendelangle
- [docs] Document Print export `X-Frame-Options` limitation (#4222) @DanailH
- [docs] Add docs for the new editing API (#4060) @m4theushw
- [docs] Explain how to use `printOptions.pageStyle` (#4138) @alexfauquette
- [docs] Fix 301 links (#4165) @oliviertassinari
- [docs] Fix 404 API links (#4164) @oliviertassinari
- [docs] Fix broken anchor links (#4162) @alexfauquette
- [docs] Remove useless `apiRef` from demos (#4221) @flaviendelangle
- [docs] Sync the headers with core (#4195) @oliviertassinari
### Core
- [core] Add CLI to decode license key (#4126) @flaviendelangle
- [core] Fix Lerna package change detection (#4202) @oliviertassinari
- [core] Implement strategy pattern for pre-processors (#4030) @flaviendelangle
- [core] Keep same reference to the column visibility model if no column has changed (#4154) @m4theushw
- [core] Prepare `@mui/x-license-pro` for date pickers (#4123) @flaviendelangle
- [core] Remove datagen from `@mui/x-data-grid-generator` bundle (#4163) @m4theushw
- [core] Remove lodash `isDeepEqual` (#4159) @flaviendelangle
- [core] Use a pipe processor for `GridPreferencePanel` children (#4216) @flaviendelangle
- [core] Add markdown documentation for contributors (#3447) @alexfauquette
- [test] Add regression test for `showCellRightBorder` (#4191) @cherniavskii
- [test] Mock `getComputedStyle` to speed up unit tests (#4142) @m4theushw
- [test] Upgrade CircleCI convenience image (#4143) @m4theushw
## 5.6.1
_Mar 10, 2022_
We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights β¨:
- β¨ Allow to add margins or borders between rows (#3848) @m4theushw
```tsx
<DataGrid getRowSpacing={() => ({ top: 10, bottom: 10 })} />
```
Check the [documentation](https://mui.com/x/react-data-grid/rows/#row-spacing) for more information.
### `@mui/x-data-grid@v5.6.1` / `@mui/x-data-grid-pro@v5.6.1`
#### Changes
- [DataGrid] Display column's filter icon if a filter is applied (#4120) @DanailH
- [DataGrid] Do not loop through rows to compute top level rows count when the tree is flat (#4081) @flaviendelangle
- [DataGrid] Rename API method (#4148) @m4theushw
- [DataGrid] Support extending built-in column types (#4114) @cherniavskii
- [DataGridPro] Re-export the components removed by mistake during bundle split (#4134) @flaviendelangle
### Docs
- [docs] Fix links to prevent duplicate search result (#4130) @siriwatknp
- [docs] Fix outdated links to `localeTextConstants.ts` (#4080) @patilvishal755
- [docs] Neglect e2e tests related to search (#4118) @siriwatknp
- [docs] Use regex instead of specific url in e2e-website-tests (#4121) @siriwatknp
### Core
- [core] Enforce `noImplicitAny` (#4084) @cherniavskii
- [core] Improve the Pro support issue template (#4082) @oliviertassinari
- [core] Initialize remaining states before feature hooks (#4036) @m4theushw
- [core] Merge `page` and `pageSize` state initializer into a single `pagination` state initializer (#4087) @flaviendelangle
- [core] Prepare `yarn docs:api:build` scripts for multi packages support (#4111) @flaviendelangle
- [core] Upgrade `@mui/monorepo` (#4149) @cherniavskii
- [core] Use `buildWarning` and `wrapWithWarningOnCall` for deprecated methods and wrong usages (#4056) @flaviendelangle
- [test] Make focus state out-of-sync warning opt-in (#4129) @m4theushw
- [test] Only test custom input keyboard event in edit mode (#4075) @alexfauquette
## 5.6.0
_Mar 4, 2022_
We'd like to offer a big thanks to the 15 contributors who made this release possible. Here are some highlights β¨:
- π¦ Use the same bundling scripts as those in the [material-ui](https://github.com/mui/material-ui) repository (#3965) @flaviendelangle
The code structure and the bundling strategy have been modified to provide better isolation between components.
The bundle size is slightly reduced, but with tree shaking, the doors are open for significant gains in the future. π
We predict that such modifications could potentially impact edge cases.
If you encounter problems with your build, please open an issue.
These issues will have high priority as part of our risk mitigation strategy.
- π§Ό Clean and document the column selectors (#4010) @flaviendelangle
Column selectors have been renamed to improve clarity.
The old names have been deprecated and will be removed in v6.
Here are the new names and the modifications needed to get the same information with the new selectors.
| Old name | New name |
| ------------------------------- | ----------------------------------------- |
| `allGridColumnsFieldsSelector` | `gridColumnFieldsSelector` |
| `allGridColumnsSelector` | `gridColumnDefinitionsSelector` |
| `visibleGridColumnsSelector` | `gridVisibleColumnDefinitionsSelector` |
| `filterableGridColumnsSelector` | `gridFilterableColumnDefinitionsSelector` |
```diff
-const { all, lookup, columnVisibilityModel } = gridColumnsSelector(apiRef)
+const all = gridColumnFieldsSelector(apiRef)
+const lookup = gridColumnLookupSelector(apiRef)
+const columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef)
-const filterableFields = filterableGridColumnsIdsSelector(apiRef);
+const lookup = gridFilterableColumnLookupSelector(apiRef);
+const filterableFields = gridColumnFieldsSelector(apiRef).filter(field => lookup[field]);
-const visibleColumnsNumber = visibleGridColumnsLengthSelector(apiRef);
+const visibleColumnsNumber = gridVisibleColumnDefinitionsSelector(apiRef).length;
-const { totalWidth, positions } = gridColumnsMetaSelector(apiRef);
+const totalWidth = gridColumnsTotalWidthSelector(apiRef);
+const positions = gridColumnPositionsSelector(apiRef);
```
- π Documentation improvements
- π Bug and typo fixes
### `@mui/x-data-grid@v5.6.0` / `@mui/x-data-grid-pro@v5.6.0`
#### Changes
- [DataGrid] Add slot for filter panel delete icon (#4069) @Hameezr
- [DataGrid] Add specific label for `linkOperator` (#3915) @alexfauquette
- [DataGrid] Allow for truncated and multiline content in grid cells (#3955) @DanailH
- [DataGrid] Allow to navigate between cells with keyboard once inside an `actions` column (#3375) @m4theushw
- [DataGrid] Fix desynchronization between rows and header when sorting (#4058) @alexfauquette
- [DataGrid] Clean and document the columns selector (#4010) @flaviendelangle
- [DataGrid] Deprecate and stop typing the api params of `GridCellParams`/`GridValueGetterParams` and affiliated (#4089) @ flaviendelangle
- [DataGrid] Differentiate the Pro and Community versions of `GridState`, `GridApi` and `GridApiRef` (#3648) @flaviendelangle
- [DataGrid] Fix column selection for print export (#3917) @alexfauquette
- [DataGrid] Fix horizontal scroll not working on empty grid (#3821) @cherniavskii
- [DataGrid] Fix input element in custom header (#3624) @alexfauquette
- [DataGrid] Improve `singleSelect` filter performance (#3956) @cherniavskii
- [DataGrid] Improve custom overlay slots positioning (#3832) @cherniavskii
- [DataGrid] Improve `flex` implementation match the W3C standard (#4006) @cherniavskii
- [DataGrid] Improve the invalid `sortModel` and `filterModel` warnings (#3671) @flaviendelangle
- [DataGrid] Memoize `Popper` modifiers passed to panel (#3975) @m4theushw
- [DataGrid] Prevent focus while `Popper` is not fully positioned (#4067) @m4theushw
- [DataGrid] Remove `GridCell`'s `borderBottom` when it is the last row (#3519) @DanailH
- [DataGrid] Remove padding from the header title (#3691) @valenfv
- [DataGrid] Reuse previous `rowNode` when building tree and the new `rowNode` is equal to the previous one (#3961) @flaviendelangle
- [DataGrid] Remove last filter item when no value to clean and close the filter panel (#3910) @alexfauquette
- [DataGrid] Send warning when the `rowCount` is not provided while using server pagination (#3902) @alexfauquette
- [DataGrid] Stop checkbox ripple on blur (#3835) @m4theushw
- [DataGrid] Stop calling `onRowClick` when clicking in cells with interactive elements (#3929) @m4theushw
- [DataGrid] Use only `headerName` when available to search column (#3959) @pkratz
- [DataGrid] Use the bundling scripts as the packages published by the [https://github.com/mui/material-ui](material-ui) repository (#3965) @flaviendelangle
- [DataGridPro] Add `unstable_setRowHeight` method to `apiRef` (#3751) @cherniavskii
- [DataGridPro] Always export the `pageSize` and `page` when it has been initialized or is being controlled (#3908) @flaviendelangle
- [DataGridPro] Disable export for detail panel column (#4057) @gustavhagland
- [DataGridPremium] Support `valueFormatter` on the grouping column (#4022) @flaviendelangle
- [l10n] Improve Bulgarian (bg-BG) locale (#3949) @DanailH
- [l10n] Improve German (de-DE) locale (#4077) @sebastianfrey
- [l10n] Improve Hebrew (he-IL) locale (#3930) @ColdAtNight
### Docs
- [docs] Add example of custom operator based on built-in ones (#3911) @flaviendelangle
- [docs] Add missing words in the filtering page (#4079) @flaviendelangle
- [docs] Avoid crash in demos using row grouping and custom formatted cells (#4065) @m4theushw
- [docs] Fix `Commodity` and `Employee` CSV export of the `country` column (#3912) @DanailH
- [docs] Fix links to the GitHub repository (#4005) @oliviertassinari
- [docs] Fix typo (#3923) @oliviertassinari
- [docs] Fix typo (#4016) @MathisBurger
- [docs] Fix typo in client-side validation example (#4066) @krallj
- [docs] Remove useless hide id column (#4021) @alexfauquette
### Core
- [core] Allows to add custom export item (#3891) @alexfauquette
- [core] Remove the `_modules_` folder (#3953) @flaviendelangle
- [core] Fix typo in `useGridScroll.ts` (#3973) @HexM7
- [core] Fix typos, improve wordings and other various fixes (#4062) @flaviendelangle
- [core] Initialize states before feature hooks (#3896) @m4theushw
- [code] Make `@mui/x-data-grid-pro` import shared code from `@mui/x-data-grid` (#3688) @flaviendelangle
- [core] Migrate `@mui/x-license-pro` to the new bundling strategy (#3738) @flaviendelangle
- [core] Reduce usage of `useGridSelector` inside feature hooks (#3978) @flaviendelangle
- [core] Retry l10n CI if 502 returned (#3977) @alexfauquette
- [core] Update release instructions (#3920) @cherniavskii
- [core] Use international locale format (#3921) @oliviertassinari
- [core] Fix license generating script (#4055) @Janpot
- [test] Add screenshot of the filter panel (#4072) @alexfauquette
- [test] Reduce memory usage to run unit tests (#4031) @m4theushw
- [test] Skip test on Firefox (#3926) @m4theushw
## 5.5.1
_Feb 10, 2022_
A big thanks to the 6 contributors who made this release possible. Here are some highlights β¨:
- π Add props to customize the behavior of the filter panel (#3497) @alexfauquette
```tsx
<DataGrid
componentsProps={{
filterPanel: { columnsSort: 'asc' },
}}
/>
```
Check the [documentation](https://mui.com/x/react-data-grid/filtering/#customize-the-filter-panel-content) to see all available props.
- π Documentation improvements
- π Bugfixes
### `@mui/x-data-grid@v5.5.1` / `@mui/x-data-grid-pro@v5.5.1`
- [DataGrid] Add `debounceMs` option to `setEditCellValue` method (#3825) @m4theushw
- [DataGrid] Allow to translate `checkboxSelection` labels (#3846) @m4theushw
- [DataGrid] Customize the filter panel with props (#3497) @alexfauquette
- [DataGrid] Fix filtering of string columns for `value = 0` (#3843) @flaviendelangle
- [DataGrid] Fix focus when `blur` event rerenders the grid (#3718) @alexfauquette
- [DataGridPro] Add clear error when the tree data has duplicated paths (#3840) @flaviendelangle
- [DataGridPro] Avoid imports from `@mui/base` (#3903) @cherniavskii
- [DataGridPro] Register column pinning after selection (#3887) @m4theushw
- [l10n] Improve Turkish (tr-TR) locale (#3842) @atillaaliyev
### Docs
- [docs] Update v5 migration docs (#3847) @oliviertassinari
- [docs] Fix sorting feature link (#3877) @alexfauquette
- [docs] Migrate content to the new location (#3730) @siriwatknp
- [docs] Unify multi-filtering introduction with the multi-sorting introduction (#3766) @flaviendelangle
- [docs] Move row grouping to Premium plan (#3827) @alexfauquette
- [docs] Reorganize export docs to prepare Excel export doc (#3822) @alexfauquette
### Core
- [core] Add hook `useGridPagination` to call `onGridPage` and `onGridPageSize` (#3880) @flaviendelangle
- [core] Fix docs deploy script (#3874) @oliviertassinari
- [core] Move the git repository to a new location (#3872) @oliviertassinari
- [test] Add `codecov` (#3873) @oliviertassinari
## 5.5.0
_Feb 3, 2022_
A big thanks to the 10 contributors who made this release possible. Here are some highlights β¨:
- π Add support for [master/detail](https://mui.com/x/react-data-grid/group-pivot/#master-detail) (#3387) @m4theushw
<img src="https://user-images.githubusercontent.com/42154031/152379354-47120aac-2b37-4a90-b311-64b4522283b9.gif" width="814">
- π Add Danish (da-DK) locale (#3800) @kasperfilstrup
- π Documentation improvements
- π Bugfixes
### `@mui/x-data-grid@v5.5.0` / `@mui/x-data-grid-pro@v5.5.0`
#### Changes
- [DataGrid] Add methods to import and export the state (#3593) @flaviendelangle
- [DataGrid] Fix <kbd>PageUp</kbd> jumping directly to the column header skipping the first row (#3761) @cherniavskii
- [DataGrid] Throw an error if incorrect column type is used (#3757) @DanailH
- [DataGridPro] Add support for master/detail (#3387) @m4theushw
- [l10n] Add Danish (da-DK) locale (#3800) @kasperfilstrup
- [l10n] Improve Dutch (nl-NL) locale (#3724) @MatthijsKok
- [l10n] Improve Hebrew (he-IL) locale (#3775) @ColdAtNight
- [l10n] Improve Russian (ru-RU) locale (#3818) @Leniorko
### Docs
- [docs] Add default value for `Row` slot (#3807) @cherniavskii
- [docs] Extend full width (#3815) @m4theushw
- [docs] Fix country column sorting not working (#3740) @cherniavskii
- [docs] Fix custom render cell when row is auto generated (#3810) @alexfauquette
- [docs] Fix flag layout shift (#3773) @oliviertassinari
- [docs] Mention row `id` requirement and document `getRowId` prop (#3765) @cherniavskii
- [docs] Refresh the license key documentation (#3529) @oliviertassinari
### Core
- [core] Clean `filtering.DataGrid.test.tsx` (#3768) @flaviendelangle
- [core] Improve GitHub label workflows (#3680) @DanailH
- [core] Isolate selectors called without `useGridSelector` (#3774) @m4theushw
- [core] Prepare infra for pickers migration (#3714) @flaviendelangle
- [core] Remove none code related instructions from git (#3794) @oliviertassinari
- [core] Remove remaining usages of `@mui/styles` (#3769) @m4theushw
- [core] Remove Stylelint (#3811) @m4theushw
- [core] Split cell / row editing into different hooks (#3219) @m4theushw
- [core] Stop using an enum for `GridPreProcessingGroup` (#3798) @flaviendelangle
- [core] Fix failing tests (#3817) @cherniavskii
- [code] Fix `docs:api` silent crash (#3808) @cherniavskii
- [test] Increase timeout for Firefox (#3813) @m4theushw
## 5.4.0
_Jan 28, 2022_
A big thanks to the 9 contributors who made this release possible. Here are some highlights β¨:
- π£ Introduce [variable row height](https://mui.com/x/react-data-grid/rows/#variable-row-height) (#438) @DanailH
Allows for setting a row-specific height.
By default, all rows have the same height, but now you can set the height on a per-row basis.
```tsx
<DataGrid getRowHeight={({ id }: GridRowHeightParams) => (id % 2 === 0 ? 100 : null)} />
```
- π Add new CSV export option: [`getRowsToExport`](https://mui.com/x/react-data-grid/export/#custom-exported-content) (#3687) @flaviendelangle
- π Documentation improvements
- π Bugfixes
### `@mui/x-data-grid@v5.4.0` / `@mui/x-data-grid-pro@v5.4.0`
#### Changes
- [DataGrid] Add l10n support for `is any of` (#3746) @alexfauquette
- [DataGrid] Add new CSV `getRowsToExport` option (#3687) @flaviendelangle
- [DataGrid] Clean params of `onCellEditCommit` (#3693) @valenfv
- [DataGrid] Create a new lookup with all the filtered rows, collapsed or not (#3736) @flaviendelangle
- [DataGrid] Fix Alt+c being ignored on some systems (#3660) @cherniavskii
- [DataGrid] Fix `isRowSelectable` when `paginationMode='server'` (#3647) @flaviendelangle
- [DataGrid] Fix browser keyboard shortcuts not working when header cell is focused (#3692) @valenfv
- [DataGrid] Fix focus on checkbox cells (#3501) @alexfauquette
- [DataGrid] Only update the visibility status of the updated columns when calling `apiRef.current.updateRows` (#3735) @flaviendelangle
- [DataGrid] Prevent commit if `preProcessEditCellProps` resolves with an error (#3612) @m4theushw
- [DataGrid] Update selected rows when turning off `checkboxSelection` (#3684) @m4theushw
- [DataGrid] Variable row height (#3218) @DanailH
- [DataGridPro] Call `useGridColumnPinning` before `useGridColumns` (#3676) @flaviendelangle
- [DataGridPro] Fix grid cell losing focus when scrolling with keyboard (#3667) @cherniavskii
- [DataGridPro] Fix missing `styleOverrides` on pinned columns (#3733) @alexfauquette
- [DataGridPro] Remove function overloading for `useGridApiRef` (#3666) @flaviendelangle
- [l10n] Improve French (fr-FR) locale (#3739) @flaviendelangle
- [l10n] Improve Italian (it-IT) locale (#3744) @destegabry
### Docs
- [docs] Fix broken code example on the localization page (#3742) @flaviendelangle
- [docs] Fix typo in column visibility example (#3734) @flaviendelangle
- [docs] Fix typo on `columnVisibilityModel` (#3723) @alexfauquette
- [docs] Improve sorting documentation page (#3564) @flaviendelangle
- [docs] Improve `v5.3.0` release notes (#3722) @cherniavskii
- [docs] Prepare scripts and E2E tests for migration (#3515) @siriwatknp
- [docs] Clarify what is the professional support (#3530) @oliviertassinari
### Core
- [core] Add ESLint rule to force default export equals to filename in documentation (#3674) @alexfauquette
- [core] Fix `l10n` script not updating `cs-CZ` locale (#3748) @cherniavskii
- [core] Generate CHANGELOG from GitHub API (#3313) @alexfauquette
- [core] Isolate selectors from different grid instances (#3663) @m4theushw
- [test] Improve test detection (#3728) @m4theushw
- [test] Include module augmentation for Chai custom matchers (#3754) @m4theushw
- [test] Remove a useless `async` (#3675) @alexfauquette
- [test] Remove remaining `@ts-expect-error` (#3762) @m4theushw
- [test] Skip test on Firefox (#3752) @m4theushw
- [test] Wait for flags to load before creating snapshots (#3726) @m4theushw
- [test] Warn when focusing cells without syncing the state (#3486) @m4theushw
## 5.3.0
_Jan 21, 2022_
A big thanks to the 9 contributors who made this release possible. Here are some highlights β¨:
- π Allow to group rows based on column value (#3277) @flaviendelangle
β οΈ This feature is temporarily available on the Pro plan until the release of the Premium plan.
To avoid future regression for users of the Pro plan, the feature needs to be explicitly activated using the rowGrouping experimental feature flag.
```tsx
// To fully control
<DataGridPro
rowGroupingModel={rowGroupingModel}
onRowGroupingModel={newModel => setRowGroupingModel(newModel)}
experimentalFeatures={{ rowGrouping: true }}
/>
// To initialize without controlling
<DataGridPro
initialState={{
rowGrouping: {
model: rowGroupingModel,
},
}}
experimentalFeatures={{ rowGrouping: true }}
/>
```
For more details see the [introduction blog post](https://mui.com/blog/introducing-the-row-grouping-feature/) and [documentation](https://mui.com/x/react-data-grid/group-pivot/#row-grouping).
- β‘ Add `is any of` filter operator (#2874) @alexfauquette
The new filter operator `is any of` allows the user to provide multiple values. It opens access to complex filtering pattern mixing `AND` and `OR` logic connectors, such as `status is any of filled or rejected, and currency is any of EUR or USD`.
<img src="https://user-images.githubusercontent.com/45398769/150486348-996a938f-db24-426f-bfe3-c06337f71807.gif" width="770">
- β¨ Introduce a `maxWidth` property in `GridColDef` (#3550) @flaviendelangle
You can now limit the width of the flex columns and the resizable columns with the new `maxWidth` property on `GridColDef`.
```tsx
const columns: GridColDef[] = [
{ field: 'director', flex: 1, maxWidth: 200 }, // will take the free space up to 200px and will not be resizable above 200px
{ field: 'year', maxWidth: 150 }, // will not be resizable above 150px
];
```
- π Add component slots for a subset of used `@mui/material` components (#3490) @DanailH
To make the grid more flexible we added component slots for base `@mui/material` components that we use. Those component slots are prefixed with `Base` to differentiate them from the other grid specific components
For more information check the documentation [documentation](https://mui.com/x/api/data-grid/data-grid/#slots).
- π₯ Allow to pass `csvOptions` and `printOptions` to `toolbar` component prop (#3623) @flaviendelangle
```tsx
const CustomDataGrid = (props: DataGridProps) => {
return (
<DataGrid {...props} componentsProps={{ toolbar: { csvOptions: { delimiter: ';' } } }} />
);
};
```
- π Add controlled behavior for the visible columns (#3554) @flaviendelangle
```tsx
// To fully control
<DataGrid
columnVisibilityModel={columnVisibilityModel}
onColumnVisilibilityModelChange={newModel => setColumnVisibilityModel(newModel)}
/>
// To initialize without controlling
<DataGrid
initialState={{
columns: {
columnVisibilityModel
}
}}
/>
```
See the [documentation](https://mui.com/x/react-data-grid/column-visibility/) for more details.
The `hide` property from `GridColDef` still works but has been deprecated.
- π Documentation improvements
- π Bugfixes
### `@mui/x-data-grid@v5.3.0` / `@mui/x-data-grid-pro@v5.3.0`
#### Changes
- [DataGrid] Add component slots for a subset of used `@mui/material` components (#3490) @DanailH
- [DataGrid] Add controlled behavior for the visible columns (#3554) @flaviendelangle
- [DataGrid] Add debounce to text input (#3617) @m4theushw
- [DataGrid] Add `is any of` filter operator (#2874) @alexfauquette
- [DataGrid] Allow to pass `csvOptions` and `printOptions` to `GridToolbar` (#3623) @flaviendelangle
- [DataGrid] Disable `Hide` button if there's only one visible column (#3607) @cherniavskii
- [DataGrid] Fix line break characters breaking CSV rows (#3590) @cherniavskii
- [DataGrid] Fix potential memory leak warning (#3558) @m4theushw
- [DataGrid] Introduce a `maxWidth` property in `GridColDef` (#3550) @flaviendelangle
- [DataGrid] Make row editing work with `preProcessEditCellProps` (#3562) @flaviendelangle
- [DataGridPro] Export the column pinning selector (#3594) @flaviendelangle
- [DataGridPro] Keep row children expansion when updating the rows (#3604) @flaviendelangle
- [DataGridPro] Keep tree data grouping column width when regenerating the columns (#3603) @flaviendelangle
- [DataGridPremium] Allow to group rows based on column value (#3277) @flaviendelangle
- [l10n] Improve Finnish (fi-FI) locale (#3621) @MijMa
- [l10n] Improve Ukrainian (uk-UA) locale (#3586) @Neonin
- [l10n] Improve Czech (cs-CZ) and Slovak (sk-SK) locale (#3678) @Haaxor1689
### Docs
- [docs] Add doc example for tree data children lazy loading (#3657) @flaviendelangle
- [docs] Fix typo exchanging `false` and `true` on columns hiding section (#3561) @alexfauquette
- [docs] Improve filtering documentation page (#3437) @flaviendelangle
- [docs] Include header badges as in the other components (#3606) @oliviertassinari
- [docs] Lint markdown in the CI (#3504) @oliviertassinari
- [docs] Make inputs to extend full height of the cell (#3567) @m4theushw
- [docs] Add documentation page about the grid state (#3431) @flaviendelangle
- [docs] Replace `@mui/styles` in `x-data-grid-generator` (#3560) @m4theushw
- [docs] Update usage of prop/property naming (#3649) @cherniavskii
### Core
- [core] Log the output of the script (#3527) @oliviertassinari
- [core] Add ESLint rule to prevent direct state access (#3521) @m4theushw
- [core] Add language to markdown code block (#3651) @m4theushw
- [core] Add typing to the pre-processors methods (#3595) @flaviendelangle
- [core] Don't bump peer dependency ranges on dependency updates (#3646) @oliviertassinari
- [core] Rename more instances of Material UI to MUI (#3525) @oliviertassinari
- [core] Renovate should not try to update node (#3645) @oliviertassinari
- [core] Report performance test results on each PR (#3551) @m4theushw
- [core] Update monorepo (#3653) @m4theushw
- [core] Update `l10n` issue with a single command line (#3588) @alexfauquette
- [test] Wait for promise to resolve before expect (#3597) @m4theushw
- [test] Split cell/row editing tests (#3618) @m4theushw
- [test] Skip tests on Safari (#3679) @m4theushw
## 5.2.2
_Jan 6, 2022_
A big thanks to the 9 contributors who made this release possible. Here are some highlights β¨:
- π Add `hideable` option to `GridColDef` (#3433) @m4theushw
- β‘ Add support for column-based `sortingOrder` with the new `sortingOrder` option in `GridColDef` (#3449) @Quppa
- β¨ Allow to initialize the `page` and `pageSize` without controlling them with the `initialState` prop (#3495) @flaviendelangle
- π Allow to precisely control which children rows to expand with the new `isGroupExpandedByDefault` prop (#3444) @flaviendelangle
- π Add Finnish (fi-FI) locale (#3485) @kurkle
- π Documentation improvements
- π Bugfixes
### `@mui/x-data-grid@v5.2.2` / `@mui/x-data-grid-pro@v5.2.2`
#### Changes
- [DataGrid] Add `hideable` option to GridColDef (#3433) @alexfauquette
- [DataGrid] Add `sortingOrder` to GridColDef (#3449) @Quppa
- [DataGrid] Add the page and pageSize to the initialState prop (#3495) @flaviendelangle
- [DataGrid] Avoid re-render when pressing key inside already focused cell (#3484) @m4theushw
- [DataGrid] Close other actions menus when opening a new one (#3492) @m4theushw
- [DataGrid] Deprecate `getValue` param from the cell and row params (#3369) @flaviendelangle
- [DataGrid] Fix value parsing in date input (#3307) @alexfauquette
- [DataGrid] Fix can't enter 0 on numeric column (#3491) @m4theushw
- [DataGrid] Fix scrolling bug when an action is focused (#3483) @alexfauquette
- [DataGrid] Remove `line-height` from `GridCell` (#3446) @DanailH
- [DataGridPro] Block edition for auto-generated rows (#3547) @flaviendelangle
- [DataGridPro] Expose the field of the tree data grouping column as a constant (#3549) @flaviendelangle
- [DataGridPro] Fix resizing of right pinned columns (#3502) @m4theushw
- [DataGridPro] Add new prop `isGroupExpandedByDefault` (#3444) @flaviendelangle
- [l10n] Add Finnish (fi-FI) locale (#3485) @kurkle
- [l10n] Improve French (fr-FR) locale (#3494) @Zenoo
- [l10n] Improve Italian (it-IT) locale (#3452) @destegabry
- [l10n] Improve Vietnamese (vi-VN) locale (#3493) @hckhanh
### Docs
- [docs] Generate imports dynamically from the packages export list (#3488) @flaviendelangle
- [docs] Make demos compatible with `preProcessEditCellProps` (#3453) @m4theushw
### Core
- [test] Add test for row checkbox toggling using the Space key (#3262) @alexfauquette
- [core] Increase CI efficiency (#3441) @oliviertassinari
- [core] Refactor sorting comparator (#3390) @flaviendelangle
- [core] Update dependency on the core (#3526) @oliviertassinari
- [core] Update tweet example in release readme (#3481) @DanailH
## 5.2.1
_Dec 17, 2021_
A big thanks to the 8 contributors who made this release possible. Here are some highlights β¨:
- π¨οΈ Improve the print export to break the pages correctly (#3302) @flaviendelangle
- π Add `pinnable` option to `GridColDef` (#3425) @m4theushw
- π Documentation improvements
- π Bugfixes
### `@mui/x-data-grid@v5.2.1` / `@mui/x-data-grid-pro@v5.2.1`
#### Changes
- [DataGridPro] Add `pinnable` option (#3425) @m4theushw
- [DataGridPro] Avoid filtering columns if no column is pinned (#3438) @m4theushw
- [DataGrid] Avoid page break inside a row in the Print Export (#3302) @flaviendelangle
- [DataGrid] Fix `GridEditDateCell` to handle `editRowsModel` correctly (#3267) @alexfauquette
- [DataGrid] Refactor keyboard/click event management (#3275) @alexfauquette
- [DataGrid] Fire change event when the state changes, instead of when the prop changes (#3388) @flaviendelangle
- [DataGrid] Unsubscribe event listeners registered in uncommitted renders (#3310) @m4theushw
- [DataGrid] Rework state update methods and deprecate `useGridApi` and `useGridState` (#3325) @flaviendelangle
- [l10n] Improve German (de-DE) locale (#3430) @sebastianfrey
- [l10n] Improve Hebrew (he-IL) locale (#3445) @ColdAtNight
- [l10n] Improve Dutch (nl-NL) locale (#3429) @jaapjr
### Docs
- [docs] Improve pagination documentation page (#3424) @flaviendelangle
- [docs] Include @mui/x-data-grid as dependency in the CodeSandbox (#3396) @m4theushw
- [docs] Stop using TypeDoc to generate the API documentation (#3320) @flaviendelangle
- [docs] Remove column pinning from "Upcoming features" (#3443) @alexfauquette
### Core
- [core] Add sections to some of the feature hooks (#3391) @flaviendelangle
- [core] Generate exports snapshot for both `x-data-grid` and `x-data-grid-pro` packages (#3427) @flaviendelangle
- [core] Remove 'x-data-grid' folder from DataGridPro bundle (#3394) @m4theushw
- [core] Add link to OpenCollective (#3392) @oliviertassinari
## 5.2.0
_Dec 9, 2021_
A big thanks to the 5 contributors who made this release possible. Here are some highlights β¨:
### `@mui/x-data-grid@v5.2.0` / `@mui/x-data-grid-pro@v5.2.0`
- π Introduce the [column pinning](https://mui.com/x/react-data-grid/column-pinning/) feature (#2946) @m4theushw
<img src="https://user-images.githubusercontent.com/42154031/145425635-b6314fbe-2f1e-4b73-908f-33ee1fda20c7.gif" width="964" height="657">
- π₯ Add ability to disable export options (#3270) @alexfauquette
You can disable either export options by set