@mui/x-data-grid 8.0.0-alpha.13 → 8.0.0-alpha.14

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.
Files changed (198) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/colDef/gridActionsColDef.js +1 -1
  3. package/colDef/gridBooleanColDef.js +1 -1
  4. package/colDef/gridCheckboxSelectionColDef.js +1 -1
  5. package/components/columnsManagement/GridColumnsManagement.js +1 -0
  6. package/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  7. package/components/columnsPanel/ColumnsPanelTrigger.js +209 -0
  8. package/components/columnsPanel/index.d.ts +1 -0
  9. package/components/columnsPanel/index.js +16 -0
  10. package/components/export/ExportCsv.d.ts +30 -0
  11. package/components/export/ExportCsv.js +196 -0
  12. package/components/export/ExportPrint.d.ts +30 -0
  13. package/components/export/ExportPrint.js +196 -0
  14. package/components/export/index.d.ts +2 -0
  15. package/components/export/index.js +27 -0
  16. package/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  17. package/components/filterPanel/FilterPanelTrigger.js +212 -0
  18. package/components/filterPanel/index.d.ts +1 -0
  19. package/components/filterPanel/index.js +16 -0
  20. package/components/index.d.ts +6 -1
  21. package/components/index.js +60 -0
  22. package/components/quickFilter/QuickFilter.d.ts +41 -0
  23. package/components/quickFilter/QuickFilter.js +110 -0
  24. package/components/quickFilter/QuickFilterClear.d.ts +28 -0
  25. package/components/quickFilter/QuickFilterClear.js +161 -0
  26. package/components/quickFilter/QuickFilterContext.d.ts +13 -0
  27. package/components/quickFilter/QuickFilterContext.js +17 -0
  28. package/components/quickFilter/QuickFilterControl.d.ts +28 -0
  29. package/components/quickFilter/QuickFilterControl.js +104 -0
  30. package/components/quickFilter/index.d.ts +3 -0
  31. package/components/quickFilter/index.js +38 -0
  32. package/components/toolbar/GridToolbar.d.ts +1 -1
  33. package/components/toolbar/GridToolbar.js +2 -2
  34. package/components/toolbar/GridToolbarQuickFilter.js +54 -87
  35. package/components/toolbarV8/GridToolbar.d.ts +11 -0
  36. package/components/toolbarV8/GridToolbar.js +142 -0
  37. package/components/toolbarV8/Toolbar.d.ts +32 -0
  38. package/components/toolbarV8/Toolbar.js +132 -0
  39. package/components/toolbarV8/ToolbarButton.d.ts +23 -0
  40. package/components/toolbarV8/ToolbarButton.js +179 -0
  41. package/components/toolbarV8/ToolbarContext.d.ts +9 -0
  42. package/components/toolbarV8/ToolbarContext.js +17 -0
  43. package/components/toolbarV8/index.d.ts +2 -0
  44. package/components/toolbarV8/index.js +27 -0
  45. package/components/virtualization/GridVirtualScrollbar.js +7 -1
  46. package/constants/defaultGridSlotsComponents.js +2 -1
  47. package/constants/gridClasses.d.ts +4 -0
  48. package/esm/colDef/gridActionsColDef.js +1 -1
  49. package/esm/colDef/gridBooleanColDef.js +1 -1
  50. package/esm/colDef/gridCheckboxSelectionColDef.js +1 -1
  51. package/esm/components/columnsManagement/GridColumnsManagement.js +1 -0
  52. package/esm/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  53. package/esm/components/columnsPanel/ColumnsPanelTrigger.js +202 -0
  54. package/esm/components/columnsPanel/index.d.ts +1 -0
  55. package/esm/components/columnsPanel/index.js +1 -0
  56. package/esm/components/export/ExportCsv.d.ts +30 -0
  57. package/esm/components/export/ExportCsv.js +189 -0
  58. package/esm/components/export/ExportPrint.d.ts +30 -0
  59. package/esm/components/export/ExportPrint.js +189 -0
  60. package/esm/components/export/index.d.ts +2 -0
  61. package/esm/components/export/index.js +2 -0
  62. package/esm/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  63. package/esm/components/filterPanel/FilterPanelTrigger.js +205 -0
  64. package/esm/components/filterPanel/index.d.ts +1 -0
  65. package/esm/components/filterPanel/index.js +1 -0
  66. package/esm/components/index.d.ts +6 -1
  67. package/esm/components/index.js +6 -1
  68. package/esm/components/quickFilter/QuickFilter.d.ts +41 -0
  69. package/esm/components/quickFilter/QuickFilter.js +103 -0
  70. package/esm/components/quickFilter/QuickFilterClear.d.ts +28 -0
  71. package/esm/components/quickFilter/QuickFilterClear.js +154 -0
  72. package/esm/components/quickFilter/QuickFilterContext.d.ts +13 -0
  73. package/esm/components/quickFilter/QuickFilterContext.js +9 -0
  74. package/esm/components/quickFilter/QuickFilterControl.d.ts +28 -0
  75. package/esm/components/quickFilter/QuickFilterControl.js +97 -0
  76. package/esm/components/quickFilter/index.d.ts +3 -0
  77. package/esm/components/quickFilter/index.js +3 -0
  78. package/esm/components/toolbar/GridToolbar.d.ts +1 -1
  79. package/esm/components/toolbar/GridToolbar.js +2 -2
  80. package/esm/components/toolbar/GridToolbarQuickFilter.js +56 -87
  81. package/esm/components/toolbarV8/GridToolbar.d.ts +11 -0
  82. package/esm/components/toolbarV8/GridToolbar.js +135 -0
  83. package/esm/components/toolbarV8/Toolbar.d.ts +32 -0
  84. package/esm/components/toolbarV8/Toolbar.js +125 -0
  85. package/esm/components/toolbarV8/ToolbarButton.d.ts +23 -0
  86. package/esm/components/toolbarV8/ToolbarButton.js +172 -0
  87. package/esm/components/toolbarV8/ToolbarContext.d.ts +9 -0
  88. package/esm/components/toolbarV8/ToolbarContext.js +9 -0
  89. package/esm/components/toolbarV8/index.d.ts +2 -0
  90. package/esm/components/toolbarV8/index.js +2 -0
  91. package/esm/components/virtualization/GridVirtualScrollbar.js +7 -1
  92. package/esm/constants/defaultGridSlotsComponents.js +2 -1
  93. package/esm/constants/gridClasses.d.ts +4 -0
  94. package/esm/hooks/features/rows/useGridRowsMeta.js +8 -0
  95. package/esm/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  96. package/esm/hooks/features/virtualization/useGridVirtualScroller.js +0 -2
  97. package/esm/hooks/utils/index.d.ts +2 -1
  98. package/esm/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  99. package/esm/hooks/utils/useGridComponentRenderer.js +36 -0
  100. package/esm/index.js +1 -1
  101. package/esm/internals/demo/TailwindDemoContainer.d.ts +11 -0
  102. package/esm/internals/demo/TailwindDemoContainer.js +55 -0
  103. package/esm/internals/demo/index.d.ts +1 -0
  104. package/esm/internals/demo/index.js +1 -0
  105. package/esm/internals/index.d.ts +4 -0
  106. package/esm/internals/index.js +3 -0
  107. package/esm/material/icons/index.d.ts +3 -3
  108. package/esm/material/icons/index.js +6 -6
  109. package/esm/material/index.js +3 -3
  110. package/esm/models/gridBaseSlots.d.ts +5 -1
  111. package/esm/models/gridIconSlotsComponent.d.ts +1 -1
  112. package/esm/models/gridSlotsComponent.d.ts +1 -2
  113. package/hooks/features/rows/useGridRowsMeta.js +8 -0
  114. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  115. package/hooks/features/virtualization/useGridVirtualScroller.js +0 -2
  116. package/hooks/utils/index.d.ts +2 -1
  117. package/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  118. package/hooks/utils/useGridComponentRenderer.js +44 -0
  119. package/index.js +1 -1
  120. package/internals/demo/TailwindDemoContainer.d.ts +11 -0
  121. package/internals/demo/TailwindDemoContainer.js +63 -0
  122. package/internals/demo/index.d.ts +1 -0
  123. package/internals/demo/index.js +12 -0
  124. package/internals/index.d.ts +4 -0
  125. package/internals/index.js +28 -0
  126. package/material/icons/index.d.ts +3 -3
  127. package/material/icons/index.js +7 -7
  128. package/material/index.js +2 -2
  129. package/models/gridBaseSlots.d.ts +5 -1
  130. package/models/gridIconSlotsComponent.d.ts +1 -1
  131. package/models/gridSlotsComponent.d.ts +1 -2
  132. package/modern/colDef/gridActionsColDef.js +1 -1
  133. package/modern/colDef/gridBooleanColDef.js +1 -1
  134. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -1
  135. package/modern/components/columnsManagement/GridColumnsManagement.js +1 -0
  136. package/modern/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  137. package/modern/components/columnsPanel/ColumnsPanelTrigger.js +202 -0
  138. package/modern/components/columnsPanel/index.d.ts +1 -0
  139. package/modern/components/columnsPanel/index.js +1 -0
  140. package/modern/components/export/ExportCsv.d.ts +30 -0
  141. package/modern/components/export/ExportCsv.js +189 -0
  142. package/modern/components/export/ExportPrint.d.ts +30 -0
  143. package/modern/components/export/ExportPrint.js +189 -0
  144. package/modern/components/export/index.d.ts +2 -0
  145. package/modern/components/export/index.js +2 -0
  146. package/modern/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  147. package/modern/components/filterPanel/FilterPanelTrigger.js +205 -0
  148. package/modern/components/filterPanel/index.d.ts +1 -0
  149. package/modern/components/filterPanel/index.js +1 -0
  150. package/modern/components/index.d.ts +6 -1
  151. package/modern/components/index.js +6 -1
  152. package/modern/components/quickFilter/QuickFilter.d.ts +41 -0
  153. package/modern/components/quickFilter/QuickFilter.js +103 -0
  154. package/modern/components/quickFilter/QuickFilterClear.d.ts +28 -0
  155. package/modern/components/quickFilter/QuickFilterClear.js +154 -0
  156. package/modern/components/quickFilter/QuickFilterContext.d.ts +13 -0
  157. package/modern/components/quickFilter/QuickFilterContext.js +9 -0
  158. package/modern/components/quickFilter/QuickFilterControl.d.ts +28 -0
  159. package/modern/components/quickFilter/QuickFilterControl.js +97 -0
  160. package/modern/components/quickFilter/index.d.ts +3 -0
  161. package/modern/components/quickFilter/index.js +3 -0
  162. package/modern/components/toolbar/GridToolbar.d.ts +1 -1
  163. package/modern/components/toolbar/GridToolbar.js +2 -2
  164. package/modern/components/toolbar/GridToolbarQuickFilter.js +56 -87
  165. package/modern/components/toolbarV8/GridToolbar.d.ts +11 -0
  166. package/modern/components/toolbarV8/GridToolbar.js +135 -0
  167. package/modern/components/toolbarV8/Toolbar.d.ts +32 -0
  168. package/modern/components/toolbarV8/Toolbar.js +125 -0
  169. package/modern/components/toolbarV8/ToolbarButton.d.ts +23 -0
  170. package/modern/components/toolbarV8/ToolbarButton.js +172 -0
  171. package/modern/components/toolbarV8/ToolbarContext.d.ts +9 -0
  172. package/modern/components/toolbarV8/ToolbarContext.js +9 -0
  173. package/modern/components/toolbarV8/index.d.ts +2 -0
  174. package/modern/components/toolbarV8/index.js +2 -0
  175. package/modern/components/virtualization/GridVirtualScrollbar.js +7 -1
  176. package/modern/constants/defaultGridSlotsComponents.js +2 -1
  177. package/modern/constants/gridClasses.d.ts +4 -0
  178. package/modern/hooks/features/rows/useGridRowsMeta.js +8 -0
  179. package/modern/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  180. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +0 -2
  181. package/modern/hooks/utils/index.d.ts +2 -1
  182. package/modern/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  183. package/modern/hooks/utils/useGridComponentRenderer.js +36 -0
  184. package/modern/index.js +1 -1
  185. package/modern/internals/demo/TailwindDemoContainer.d.ts +11 -0
  186. package/modern/internals/demo/TailwindDemoContainer.js +55 -0
  187. package/modern/internals/demo/index.d.ts +1 -0
  188. package/modern/internals/demo/index.js +1 -0
  189. package/modern/internals/index.d.ts +4 -0
  190. package/modern/internals/index.js +3 -0
  191. package/modern/material/icons/index.d.ts +3 -3
  192. package/modern/material/icons/index.js +6 -6
  193. package/modern/material/index.js +3 -3
  194. package/modern/models/gridBaseSlots.d.ts +5 -1
  195. package/modern/models/gridIconSlotsComponent.d.ts +1 -1
  196. package/modern/models/gridSlotsComponent.d.ts +1 -2
  197. package/package.json +1 -1
  198. package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,137 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.0.0-alpha.14
9
+
10
+ _Mar 7, 2025_
11
+
12
+ We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🚀📊 New Pro Chart: It is now possible to create Funnel charts—perfect for visualizing conversions, sales pipelines and more!
15
+ <img width="418" alt="Screenshot 2025-01-31 at 12 22 31" src="https://github.com/user-attachments/assets/8cd26821-5f11-46bf-a9bb-34d212880a47" />
16
+ - 🎁 The first iteration of the radar chart is available. Features and refinements will be added in the coming weeks.
17
+ - 🛠️ New and improved [Toolbar component](https://next.mui.com/x/react-data-grid/components/toolbar/) for the data grid
18
+ - 🐞 Bugfixes
19
+
20
+ Special thanks go out to the community member for their valuable contributions:
21
+ @vadimka123.
22
+
23
+ Following are all team members who have contributed to this release:
24
+ @alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @michelengelen, @noraleonte, @oliviertassinari.
25
+
26
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
27
+
28
+ ### Data Grid
29
+
30
+ #### Breaking changes
31
+
32
+ - The density selector has been removed from the toolbar. It is still possible to set the density programmatically via the `density` prop. A density selector can be added to a custom toolbar passed to `slots.toolbar`. See [Toolbar component—Settings menu](https://next.mui.com/x/react-data-grid/components/toolbar/#settings-menu) for an example.
33
+ - The quick filter is now shown in the toolbar by default. Use `slotProps={{ toolbar: { showQuickFilter: false } }}` to hide it.
34
+ - The `<GridSaveAltIcon />` icon is not exported anymore. Import `SaveAlt` from `@mui/icons-material` instead.
35
+
36
+ #### `@mui/x-data-grid@8.0.0-alpha.14`
37
+
38
+ - [DataGrid] Fix `aria-hidden` console error when scrollbar is dragged (#16829) @arminmeh
39
+ - [DataGrid] Fix scroll jump with dynamic row height (#16763) @cherniavskii
40
+ - [DataGrid] New `<Toolbar />` component (#14611) @KenanYusuf
41
+ - [DataGrid] Use new toolbar by default (#16814) @KenanYusuf
42
+ - [DataGrid] Remove the quick filtering on a given column (#16738) @vadimka123
43
+
44
+ #### `@mui/x-data-grid-pro@8.0.0-alpha.14` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
45
+
46
+ Same changes as in `@mui/x-data-grid@8.0.0-alpha.14`.
47
+
48
+ #### `@mui/x-data-grid-premium@8.0.0-alpha.14` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
49
+
50
+ Same changes as in `@mui/x-data-grid-pro@8.0.0-alpha.14`.
51
+
52
+ ### Date and Time Pickers
53
+
54
+ #### Breaking changes
55
+
56
+ - All Date Time Picker variants now use Digital Clock for time editing.
57
+ - Stop passing invalid date to `onChange` when the date is partially filled — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#treat-partially-filled-date-as-null-in-onchange).
58
+
59
+ #### `@mui/x-date-pickers@8.0.0-alpha.14`
60
+
61
+ - [DateTimePicker] Use Digital Clock in all component variants (#16678) @LukasTy
62
+ - [fields] Always use `props.value` as the source of truth when defined (#15875) @flaviendelangle
63
+ - [fields] Fix Fields aria relationship with `helperText` (#16821) @LukasTy
64
+ - [pickers] Add `TValidationProps` generic to the `PickerManager` interface (#16832) @flaviendelangle
65
+ - [pickers] Fix `edge` property setting in different button position cases (#16838) @LukasTy
66
+ - [pickers] Fix typo in JSDoc (#16831) @flaviendelangle
67
+ - [pickers] Refactor the files in the `usePicker` folder (#16680) @flaviendelangle
68
+
69
+ #### `@mui/x-date-pickers-pro@8.0.0-alpha.14` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
70
+
71
+ Same changes as in `@mui/x-date-pickers@8.0.0-alpha.14`.
72
+
73
+ ### Charts
74
+
75
+ #### `@mui/x-charts@8.0.0-alpha.14`
76
+
77
+ - [charts] Fix `undefined` behaving differently from missing value for axis size (#16844) @bernardobelchior
78
+ - [charts] Fix x-axis text anchor default when language is RTL (#16836) @bernardobelchior
79
+ - [charts] Add Radar chart (#16406) @alexfauquette
80
+ - [charts] Move series default color generation in the series config (#16752) @alexfauquette
81
+ - [charts] Render axis title within axis size (#16730) @bernardobelchior
82
+ - [charts] Split `defaultizeAxis` function into two (#16745) @bernardobelchior
83
+ - [charts] Warn if axes data don't have enough elements (#16830) @alexfauquette
84
+ - [charts] XAxis: Add defaults for `textAnchor` and `dominantBaseline` based on `angle` (#16817) @bernardobelchior
85
+
86
+ #### `@mui/x-charts-pro@8.0.0-alpha.14` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
87
+
88
+ Same changes as in `@mui/x-charts@8.0.0-alpha.14`, plus:
89
+
90
+ - [charts] Add Funnel chart (#14804) @JCQuintas
91
+
92
+ ### Tree View
93
+
94
+ #### Breaking changes
95
+
96
+ - The `selectItem` method has been renamed `setItemSelection`:
97
+
98
+ ```diff
99
+ const { publicAPI } = useTreeItemUtils();
100
+
101
+ const handleSelectItem() {
102
+ - publicAPI.selectItem({ event, itemId: props.itemId, shouldBeSelected: true })
103
+ + publicAPI.setItemSelection({ event, itemId: props.itemId, shouldBeSelected: true })
104
+ }
105
+ ```
106
+
107
+ - The `setItemExpansion` method now receives a single object instead of a list of parameters:
108
+
109
+ ```diff
110
+ const { publicAPI } = useTreeItemUtils();
111
+
112
+ const handleExpandItem() {
113
+ - publicAPI.setItemExpansion(event, props.itemId, true)
114
+ + publicAPI.setItemExpansion({ event, itemId: props.itemId, shouldBeExpanded: true })
115
+ }
116
+ ```
117
+
118
+ #### `@mui/x-tree-view@8.0.0-alpha.14`
119
+
120
+ - [TreeView] Clean the expansion and selection API methods (#16795) @flaviendelangle
121
+
122
+ #### `@mui/x-tree-view-pro@8.0.0-alpha.14` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
123
+
124
+ Same changes as in `@mui/x-tree-view@8.0.0-alpha.14`.
125
+
126
+ ### Docs
127
+
128
+ - [docs] Fix padding package install on mobile (#16794) @oliviertassinari
129
+ - [docs] Typo fixes (#16835) @alexfauquette
130
+
131
+ ### Core
132
+
133
+ - [code-infra] Fix console warning in telemetry package (#16816) @JCQuintas
134
+ - [code-infra] Split date-picker test files (#16825) @JCQuintas
135
+ - [infra] Replace PR label check workflow with reusable version (#16762) @michelengelen
136
+ - [infra] Update label in priority-support issue template (#16767) @michelengelen
137
+ - [test] Add timeout to flaky screenshot tests (#16852) @LukasTy
138
+
8
139
  ## 8.0.0-alpha.13
9
140
 
10
141
  _Feb 28, 2025_
@@ -22,5 +22,5 @@ const GRID_ACTIONS_COL_DEF = exports.GRID_ACTIONS_COL_DEF = (0, _extends2.defaul
22
22
  disableColumnMenu: true,
23
23
  disableExport: true,
24
24
  renderCell: _GridActionsCell.renderActionsCell,
25
- getApplyQuickFilterFn: undefined
25
+ getApplyQuickFilterFn: () => null
26
26
  });
@@ -40,7 +40,7 @@ const GRID_BOOLEAN_COL_DEF = exports.GRID_BOOLEAN_COL_DEF = (0, _extends2.defaul
40
40
  sortComparator: _gridSortingUtils.gridNumberComparator,
41
41
  valueFormatter: gridBooleanFormatter,
42
42
  filterOperators: (0, _gridBooleanOperators.getGridBooleanOperators)(),
43
- getApplyQuickFilterFn: undefined,
43
+ getApplyQuickFilterFn: () => null,
44
44
  // @ts-ignore
45
45
  aggregable: false,
46
46
  // @ts-ignore
@@ -26,7 +26,7 @@ const GRID_CHECKBOX_SELECTION_COL_DEF = exports.GRID_CHECKBOX_SELECTION_COL_DEF
26
26
  disableColumnMenu: true,
27
27
  disableReorder: true,
28
28
  disableExport: true,
29
- getApplyQuickFilterFn: undefined,
29
+ getApplyQuickFilterFn: () => null,
30
30
  display: 'flex',
31
31
  valueGetter: (value, row, column, apiRef) => {
32
32
  const rowId = (0, _gridPropsSelectors.gridRowIdSelector)(apiRef, row);
@@ -255,6 +255,7 @@ process.env.NODE_ENV !== "production" ? GridColumnsManagement.propTypes = {
255
255
  onChange: _propTypes.default.func,
256
256
  onKeyDown: _propTypes.default.func,
257
257
  placeholder: _propTypes.default.string,
258
+ role: _propTypes.default.string,
258
259
  size: _propTypes.default.oneOf(['medium', 'small']),
259
260
  slotProps: _propTypes.default.object,
260
261
  style: _propTypes.default.object,
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
3
+ import type { GridSlotProps } from '../../models';
4
+ export interface ColumnsPanelState {
5
+ /**
6
+ * If `true`, the columns panel is open.
7
+ */
8
+ open: boolean;
9
+ }
10
+ export type ColumnsPanelTriggerProps = Omit<GridSlotProps['baseButton'], 'className'> & {
11
+ /**
12
+ * A function to customize rendering of the component.
13
+ */
14
+ render?: RenderProp<GridSlotProps['baseButton'], ColumnsPanelState>;
15
+ /**
16
+ * Override or extend the styles applied to the component.
17
+ */
18
+ className?: string | ((state: ColumnsPanelState) => string);
19
+ };
20
+ /**
21
+ * A button that opens and closes the columns panel.
22
+ * It renders the `baseButton` slot.
23
+ *
24
+ * Demos:
25
+ *
26
+ * - [Columns Panel](https://mui.com/x/react-data-grid/components/columns-panel/)
27
+ *
28
+ * API:
29
+ *
30
+ * - [ColumnsPanelTrigger API](https://mui.com/x/api/data-grid/columns-panel-trigger/)
31
+ */
32
+ declare const ColumnsPanelTrigger: React.ForwardRefExoticComponent<ColumnsPanelTriggerProps> | React.ForwardRefExoticComponent<Omit<ColumnsPanelTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
33
+ export { ColumnsPanelTrigger };
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ColumnsPanelTrigger = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
+ var _forwardRef = require("@mui/x-internals/forwardRef");
15
+ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
16
+ var _hooks = require("../../hooks");
17
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
18
+ var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ const _excluded = ["render", "className", "onClick", "onPointerUp"];
21
+ /**
22
+ * A button that opens and closes the columns panel.
23
+ * It renders the `baseButton` slot.
24
+ *
25
+ * Demos:
26
+ *
27
+ * - [Columns Panel](https://mui.com/x/react-data-grid/components/columns-panel/)
28
+ *
29
+ * API:
30
+ *
31
+ * - [ColumnsPanelTrigger API](https://mui.com/x/api/data-grid/columns-panel-trigger/)
32
+ */
33
+ const ColumnsPanelTrigger = exports.ColumnsPanelTrigger = (0, _forwardRef.forwardRef)(function ColumnsPanelTrigger(props, ref) {
34
+ const {
35
+ render,
36
+ className,
37
+ onClick,
38
+ onPointerUp
39
+ } = props,
40
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
41
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
42
+ const buttonId = (0, _useId.default)();
43
+ const panelId = (0, _useId.default)();
44
+ const apiRef = (0, _useGridApiContext.useGridApiContext)();
45
+ const panelState = (0, _hooks.useGridSelector)(apiRef, _hooks.gridPreferencePanelStateSelector);
46
+ const open = panelState.open && panelState.openedPanelValue === _hooks.GridPreferencePanelsValue.columns;
47
+ const state = {
48
+ open
49
+ };
50
+ const resolvedClassName = typeof className === 'function' ? className(state) : className;
51
+ const handleClick = event => {
52
+ if (open) {
53
+ apiRef.current.hidePreferences();
54
+ } else {
55
+ apiRef.current.showPreferences(_hooks.GridPreferencePanelsValue.columns, panelId, buttonId);
56
+ }
57
+ onClick?.(event);
58
+ };
59
+ const handlePointerUp = event => {
60
+ if (open) {
61
+ event.stopPropagation();
62
+ }
63
+ onPointerUp?.(event);
64
+ };
65
+ const element = (0, _useGridComponentRenderer.useGridComponentRenderer)(rootProps.slots.baseButton, render, (0, _extends2.default)({}, rootProps.slotProps?.baseButton, {
66
+ id: buttonId,
67
+ 'aria-haspopup': 'true',
68
+ 'aria-expanded': open ? 'true' : undefined,
69
+ 'aria-controls': open ? panelId : undefined,
70
+ onClick: handleClick,
71
+ onPointerUp: handlePointerUp,
72
+ className: resolvedClassName
73
+ }, other, {
74
+ ref
75
+ }), state);
76
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
77
+ children: element
78
+ });
79
+ });
80
+ process.env.NODE_ENV !== "production" ? ColumnsPanelTrigger.propTypes = {
81
+ // ----------------------------- Warning --------------------------------
82
+ // | These PropTypes are generated from the TypeScript type definitions |
83
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
84
+ // ----------------------------------------------------------------------
85
+ /**
86
+ * A ref for imperative actions.
87
+ * It currently only supports `focusVisible()` action.
88
+ */
89
+ action: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
90
+ current: _propTypes.default.shape({
91
+ focusVisible: _propTypes.default.func.isRequired
92
+ })
93
+ })]),
94
+ /**
95
+ * If `true`, the ripples are centered.
96
+ * They won't start at the cursor interaction position.
97
+ * @default false
98
+ */
99
+ centerRipple: _propTypes.default.bool,
100
+ /**
101
+ * Override or extend the styles applied to the component.
102
+ */
103
+ className: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),
104
+ /**
105
+ * The color of the component.
106
+ * It supports both default and custom theme colors, which can be added as shown in the
107
+ * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
108
+ * @default 'primary'
109
+ */
110
+ color: _propTypes.default.oneOf(['error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']),
111
+ component: _propTypes.default.elementType,
112
+ /**
113
+ * If `true`, the component is disabled.
114
+ */
115
+ disabled: _propTypes.default.bool,
116
+ /**
117
+ * If `true`, no elevation is used.
118
+ * @default false
119
+ */
120
+ disableElevation: _propTypes.default.bool,
121
+ /**
122
+ * If `true`, the keyboard focus ripple is disabled.
123
+ * @default false
124
+ */
125
+ disableFocusRipple: _propTypes.default.bool,
126
+ /**
127
+ * If `true`, the ripple effect is disabled.
128
+ *
129
+ * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
130
+ * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
131
+ * @default false
132
+ */
133
+ disableRipple: _propTypes.default.bool,
134
+ /**
135
+ * If `true`, the touch ripple effect is disabled.
136
+ * @default false
137
+ */
138
+ disableTouchRipple: _propTypes.default.bool,
139
+ /**
140
+ * Element placed after the children.
141
+ */
142
+ endIcon: _propTypes.default.node,
143
+ /**
144
+ * If `true`, the base button will have a keyboard focus ripple.
145
+ * @default false
146
+ */
147
+ focusRipple: _propTypes.default.bool,
148
+ /**
149
+ * This prop can help identify which element has keyboard focus.
150
+ * The class name will be applied when the element gains the focus through keyboard interaction.
151
+ * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
152
+ * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
153
+ * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
154
+ * if needed.
155
+ */
156
+ focusVisibleClassName: _propTypes.default.string,
157
+ /**
158
+ * If `true`, the button will take up the full width of its container.
159
+ * @default false
160
+ */
161
+ fullWidth: _propTypes.default.bool,
162
+ /**
163
+ * The URL to link to when the button is clicked.
164
+ * If defined, an `a` element will be used as the root node.
165
+ */
166
+ href: _propTypes.default.string,
167
+ /**
168
+ * The component used to render a link when the `href` prop is provided.
169
+ * @default 'a'
170
+ */
171
+ LinkComponent: _propTypes.default.elementType,
172
+ /**
173
+ * Callback fired when the component is focused with a keyboard.
174
+ * We trigger a `onFocus` callback too.
175
+ */
176
+ onFocusVisible: _propTypes.default.func,
177
+ /**
178
+ * A function to customize rendering of the component.
179
+ */
180
+ render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),
181
+ /**
182
+ * The size of the component.
183
+ * `small` is equivalent to the dense button styling.
184
+ */
185
+ size: _propTypes.default.oneOf(['large', 'medium', 'small']),
186
+ /**
187
+ * Element placed before the children.
188
+ */
189
+ startIcon: _propTypes.default.node,
190
+ style: _propTypes.default.object,
191
+ /**
192
+ * The system prop that allows defining system overrides as well as additional CSS styles.
193
+ */
194
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
195
+ tabIndex: _propTypes.default.number,
196
+ /**
197
+ * Props applied to the `TouchRipple` element.
198
+ */
199
+ TouchRippleProps: _propTypes.default.object,
200
+ /**
201
+ * A ref that points to the `TouchRipple` element.
202
+ */
203
+ touchRippleRef: _propTypes.default.any,
204
+ /**
205
+ * The variant to use.
206
+ * @default 'text'
207
+ */
208
+ variant: _propTypes.default.oneOf(['contained', 'outlined', 'text'])
209
+ } : void 0;
@@ -0,0 +1 @@
1
+ export * from "./ColumnsPanelTrigger.js";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _ColumnsPanelTrigger = require("./ColumnsPanelTrigger");
7
+ Object.keys(_ColumnsPanelTrigger).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _ColumnsPanelTrigger[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _ColumnsPanelTrigger[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
3
+ import { GridCsvExportOptions } from "../../models/gridExport.js";
4
+ import type { GridSlotProps } from '../../models';
5
+ export type ExportCsvProps = GridSlotProps['baseButton'] & {
6
+ /**
7
+ * A function to customize rendering of the component.
8
+ */
9
+ render?: RenderProp<GridSlotProps['baseButton']>;
10
+ /**
11
+ * The options to apply on the CSV export.
12
+ * @demos
13
+ * - [CSV export](/x/react-data-grid/export/#csv-export)
14
+ */
15
+ options?: GridCsvExportOptions;
16
+ };
17
+ /**
18
+ * A button that triggers a CSV export.
19
+ * It renders the `baseButton` slot.
20
+ *
21
+ * Demos:
22
+ *
23
+ * - [Export](https://mui.com/x/react-data-grid/components/export/)
24
+ *
25
+ * API:
26
+ *
27
+ * - [ExportCsv API](https://mui.com/x/api/data-grid/export-csv/)
28
+ */
29
+ declare const ExportCsv: React.ForwardRefExoticComponent<ExportCsvProps> | React.ForwardRefExoticComponent<Omit<ExportCsvProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
30
+ export { ExportCsv };
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ExportCsv = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _forwardRef = require("@mui/x-internals/forwardRef");
14
+ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
15
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
+ var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ const _excluded = ["render", "options", "onClick"];
19
+ /**
20
+ * A button that triggers a CSV export.
21
+ * It renders the `baseButton` slot.
22
+ *
23
+ * Demos:
24
+ *
25
+ * - [Export](https://mui.com/x/react-data-grid/components/export/)
26
+ *
27
+ * API:
28
+ *
29
+ * - [ExportCsv API](https://mui.com/x/api/data-grid/export-csv/)
30
+ */
31
+ const ExportCsv = exports.ExportCsv = (0, _forwardRef.forwardRef)(function ExportCsv(props, ref) {
32
+ const {
33
+ render,
34
+ options,
35
+ onClick
36
+ } = props,
37
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
38
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
39
+ const apiRef = (0, _useGridApiContext.useGridApiContext)();
40
+ const handleClick = event => {
41
+ apiRef.current.exportDataAsCsv(options);
42
+ onClick?.(event);
43
+ };
44
+ const element = (0, _useGridComponentRenderer.useGridComponentRenderer)(rootProps.slots.baseButton, render, (0, _extends2.default)({}, rootProps.slotProps?.baseButton, {
45
+ onClick: handleClick
46
+ }, other, {
47
+ ref
48
+ }));
49
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
50
+ children: element
51
+ });
52
+ });
53
+ process.env.NODE_ENV !== "production" ? ExportCsv.propTypes = {
54
+ // ----------------------------- Warning --------------------------------
55
+ // | These PropTypes are generated from the TypeScript type definitions |
56
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
57
+ // ----------------------------------------------------------------------
58
+ /**
59
+ * A ref for imperative actions.
60
+ * It currently only supports `focusVisible()` action.
61
+ */
62
+ action: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
63
+ current: _propTypes.default.shape({
64
+ focusVisible: _propTypes.default.func.isRequired
65
+ })
66
+ })]),
67
+ /**
68
+ * If `true`, the ripples are centered.
69
+ * They won't start at the cursor interaction position.
70
+ * @default false
71
+ */
72
+ centerRipple: _propTypes.default.bool,
73
+ className: _propTypes.default.string,
74
+ /**
75
+ * The color of the component.
76
+ * It supports both default and custom theme colors, which can be added as shown in the
77
+ * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
78
+ * @default 'primary'
79
+ */
80
+ color: _propTypes.default.oneOf(['error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']),
81
+ component: _propTypes.default.elementType,
82
+ /**
83
+ * If `true`, the component is disabled.
84
+ */
85
+ disabled: _propTypes.default.bool,
86
+ /**
87
+ * If `true`, no elevation is used.
88
+ * @default false
89
+ */
90
+ disableElevation: _propTypes.default.bool,
91
+ /**
92
+ * If `true`, the keyboard focus ripple is disabled.
93
+ * @default false
94
+ */
95
+ disableFocusRipple: _propTypes.default.bool,
96
+ /**
97
+ * If `true`, the ripple effect is disabled.
98
+ *
99
+ * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
100
+ * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
101
+ * @default false
102
+ */
103
+ disableRipple: _propTypes.default.bool,
104
+ /**
105
+ * If `true`, the touch ripple effect is disabled.
106
+ * @default false
107
+ */
108
+ disableTouchRipple: _propTypes.default.bool,
109
+ /**
110
+ * Element placed after the children.
111
+ */
112
+ endIcon: _propTypes.default.node,
113
+ /**
114
+ * If `true`, the base button will have a keyboard focus ripple.
115
+ * @default false
116
+ */
117
+ focusRipple: _propTypes.default.bool,
118
+ /**
119
+ * This prop can help identify which element has keyboard focus.
120
+ * The class name will be applied when the element gains the focus through keyboard interaction.
121
+ * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
122
+ * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
123
+ * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
124
+ * if needed.
125
+ */
126
+ focusVisibleClassName: _propTypes.default.string,
127
+ /**
128
+ * If `true`, the button will take up the full width of its container.
129
+ * @default false
130
+ */
131
+ fullWidth: _propTypes.default.bool,
132
+ /**
133
+ * The URL to link to when the button is clicked.
134
+ * If defined, an `a` element will be used as the root node.
135
+ */
136
+ href: _propTypes.default.string,
137
+ /**
138
+ * The component used to render a link when the `href` prop is provided.
139
+ * @default 'a'
140
+ */
141
+ LinkComponent: _propTypes.default.elementType,
142
+ /**
143
+ * Callback fired when the component is focused with a keyboard.
144
+ * We trigger a `onFocus` callback too.
145
+ */
146
+ onFocusVisible: _propTypes.default.func,
147
+ /**
148
+ * The options to apply on the CSV export.
149
+ * @demos
150
+ * - [CSV export](/x/react-data-grid/export/#csv-export)
151
+ */
152
+ options: _propTypes.default.shape({
153
+ allColumns: _propTypes.default.bool,
154
+ delimiter: _propTypes.default.string,
155
+ escapeFormulas: _propTypes.default.bool,
156
+ fields: _propTypes.default.arrayOf(_propTypes.default.string),
157
+ fileName: _propTypes.default.string,
158
+ getRowsToExport: _propTypes.default.func,
159
+ includeColumnGroupsHeaders: _propTypes.default.bool,
160
+ includeHeaders: _propTypes.default.bool,
161
+ shouldAppendQuotes: _propTypes.default.bool,
162
+ utf8WithBom: _propTypes.default.bool
163
+ }),
164
+ /**
165
+ * A function to customize rendering of the component.
166
+ */
167
+ render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),
168
+ /**
169
+ * The size of the component.
170
+ * `small` is equivalent to the dense button styling.
171
+ */
172
+ size: _propTypes.default.oneOf(['large', 'medium', 'small']),
173
+ /**
174
+ * Element placed before the children.
175
+ */
176
+ startIcon: _propTypes.default.node,
177
+ style: _propTypes.default.object,
178
+ /**
179
+ * The system prop that allows defining system overrides as well as additional CSS styles.
180
+ */
181
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
182
+ tabIndex: _propTypes.default.number,
183
+ /**
184
+ * Props applied to the `TouchRipple` element.
185
+ */
186
+ TouchRippleProps: _propTypes.default.object,
187
+ /**
188
+ * A ref that points to the `TouchRipple` element.
189
+ */
190
+ touchRippleRef: _propTypes.default.any,
191
+ /**
192
+ * The variant to use.
193
+ * @default 'text'
194
+ */
195
+ variant: _propTypes.default.oneOf(['contained', 'outlined', 'text'])
196
+ } : void 0;