@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
@@ -9,21 +9,17 @@ exports.GridToolbarQuickFilter = GridToolbarQuickFilter;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _clsx = _interopRequireDefault(require("clsx"));
13
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _styles = require("@mui/material/styles");
15
- var _utils = require("@mui/utils");
16
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
17
- var _OutlinedInput = require("@mui/material/OutlinedInput");
18
- var _cssVariables = require("../../constants/cssVariables");
14
+ var _system = require("@mui/system");
15
+ var _clsx = _interopRequireDefault(require("clsx"));
19
16
  var _constants = require("../../constants");
20
17
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
21
18
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
- var _useGridSelector = require("../../hooks/utils/useGridSelector");
23
- var _filter = require("../../hooks/features/filter");
24
- var _utils2 = require("../../utils/utils");
19
+ var _quickFilter = require("../quickFilter");
25
20
  var _jsxRuntime = require("react/jsx-runtime");
26
- const _excluded = ["quickFilterParser", "quickFilterFormatter", "debounceMs", "className", "slotProps"];
21
+ const _excluded = ["quickFilterParser", "quickFilterFormatter", "debounceMs", "className", "slotProps"],
22
+ _excluded2 = ["ref", "slotProps"]; // import { NotRendered } from '../../utils/assert';
27
23
  const useUtilityClasses = ownerState => {
28
24
  const {
29
25
  classes
@@ -33,98 +29,69 @@ const useUtilityClasses = ownerState => {
33
29
  };
34
30
  return (0, _composeClasses.default)(slots, _constants.getDataGridUtilityClass, classes);
35
31
  };
36
- const GridToolbarQuickFilterRoot = (0, _styles.styled)('div', {
32
+
33
+ // TODO: Use NotRendered from /utils/assert
34
+ // Currently causes react-docgen to fail
35
+ const GridToolbarQuickFilterRoot = (0, _system.styled)(_props => {
36
+ throw new Error('Failed assertion: should not be rendered');
37
+ }, {
37
38
  name: 'MuiDataGrid',
38
- slot: 'ToolbarQuickFilter',
39
- overridesResolver: (props, styles) => styles.toolbarQuickFilter
39
+ slot: 'ToolbarQuickFilter'
40
40
  })({
41
- [`.${_OutlinedInput.outlinedInputClasses.root}`]: {
42
- fontSize: _cssVariables.vars.typography.body.fontSize
43
- },
44
- [`& input[type="search"]::-webkit-search-decoration,
45
- & input[type="search"]::-webkit-search-cancel-button,
46
- & input[type="search"]::-webkit-search-results-button,
47
- & input[type="search"]::-webkit-search-results-decoration`]: {
48
- /* clears the 'X' icon from Chrome */
49
- display: 'none'
50
- }
41
+ width: 260,
42
+ marginLeft: 'auto'
51
43
  });
52
- const defaultSearchValueParser = searchText => searchText.split(' ').filter(word => word !== '');
53
- const defaultSearchValueFormatter = values => values.join(' ');
54
44
  function GridToolbarQuickFilter(props) {
55
45
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
56
46
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
57
47
  const classes = useUtilityClasses(rootProps);
58
- const quickFilterValues = (0, _useGridSelector.useGridSelector)(apiRef, _filter.gridQuickFilterValuesSelector);
59
48
  const {
60
- quickFilterParser = defaultSearchValueParser,
61
- quickFilterFormatter = defaultSearchValueFormatter,
62
- debounceMs = rootProps.filterDebounceMs,
49
+ quickFilterParser,
50
+ quickFilterFormatter,
51
+ debounceMs,
63
52
  className,
64
53
  slotProps
65
54
  } = props,
66
55
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
67
- const [searchValue, setSearchValue] = React.useState(() => quickFilterFormatter(quickFilterValues ?? []));
68
- const prevQuickFilterValuesRef = React.useRef(quickFilterValues);
69
- React.useEffect(() => {
70
- if (!(0, _utils2.isDeepEqual)(prevQuickFilterValuesRef.current, quickFilterValues)) {
71
- // The model of quick filter value has been updated
72
- prevQuickFilterValuesRef.current = quickFilterValues;
73
-
74
- // Update the input value if needed to match the new model
75
- setSearchValue(prevSearchValue => (0, _utils2.isDeepEqual)(quickFilterParser(prevSearchValue), quickFilterValues) ? prevSearchValue : quickFilterFormatter(quickFilterValues ?? []));
76
- }
77
- }, [quickFilterValues, quickFilterFormatter, quickFilterParser]);
78
- const updateSearchValue = React.useCallback(newSearchValue => {
79
- const newQuickFilterValues = quickFilterParser(newSearchValue);
80
- prevQuickFilterValuesRef.current = newQuickFilterValues;
81
- apiRef.current.setQuickFilterValues(newQuickFilterValues);
82
- }, [apiRef, quickFilterParser]);
83
- const debouncedUpdateSearchValue = React.useMemo(() => (0, _utils.unstable_debounce)(updateSearchValue, debounceMs), [updateSearchValue, debounceMs]);
84
- React.useEffect(() => debouncedUpdateSearchValue.clear, [debouncedUpdateSearchValue]);
85
- const handleSearchValueChange = React.useCallback(event => {
86
- const newSearchValue = event.target.value;
87
- setSearchValue(newSearchValue);
88
- debouncedUpdateSearchValue(newSearchValue);
89
- }, [debouncedUpdateSearchValue]);
90
- const handleSearchReset = React.useCallback(() => {
91
- setSearchValue('');
92
- updateSearchValue('');
93
- }, [updateSearchValue]);
94
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarQuickFilterRoot, (0, _extends2.default)({
95
- as: rootProps.slots.baseTextField,
96
- ownerState: rootProps,
97
- size: "small",
98
- value: searchValue,
99
- onChange: handleSearchValueChange,
100
- className: (0, _clsx.default)(classes.root, className),
101
- placeholder: apiRef.current.getLocaleText('toolbarQuickFilterPlaceholder'),
102
- "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterLabel'),
103
- type: "search"
104
- }, other, {
105
- slotProps: (0, _extends2.default)({}, slotProps?.root.slotProps, {
106
- input: (0, _extends2.default)({
107
- startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterIcon, {
108
- fontSize: "small"
109
- }),
110
- endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
111
- "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_quickFilter.QuickFilter, {
57
+ parser: quickFilterParser,
58
+ formatter: quickFilterFormatter,
59
+ debounceMs: debounceMs,
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_quickFilter.QuickFilterControl, {
61
+ render: _ref => {
62
+ let {
63
+ ref,
64
+ slotProps: controlSlotProps
65
+ } = _ref,
66
+ controlProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded2);
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarQuickFilterRoot, (0, _extends2.default)({
68
+ as: rootProps.slots.baseTextField,
69
+ className: (0, _clsx.default)(classes.root, className),
70
+ inputRef: ref,
71
+ "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterLabel'),
72
+ placeholder: apiRef.current.getLocaleText('toolbarQuickFilterPlaceholder'),
112
73
  size: "small",
113
- edge: "end",
114
- style: searchValue ? {
115
- visibility: 'visible'
116
- } : {
117
- visibility: 'hidden'
118
- },
119
- onClick: handleSearchReset
120
- }, rootProps.slotProps?.baseIconButton, {
121
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterClearIcon, {
122
- fontSize: "small"
123
- })
124
- }))
125
- }, slotProps?.root.slotProps?.input)
74
+ slotProps: (0, _extends2.default)({
75
+ input: (0, _extends2.default)({
76
+ startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterIcon, {
77
+ fontSize: "small"
78
+ }),
79
+ endAdornment: controlProps.value ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_quickFilter.QuickFilterClear, {
80
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, {
81
+ size: "small",
82
+ edge: "end",
83
+ "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
84
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterClearIcon, {
85
+ fontSize: "small"
86
+ })
87
+ })
88
+ }) : null
89
+ }, controlSlotProps?.input)
90
+ }, controlSlotProps)
91
+ }, rootProps.slotProps?.baseTextField, controlProps, slotProps?.root, other));
92
+ }
126
93
  })
127
- }, rootProps.slotProps?.baseTextField));
94
+ });
128
95
  }
129
96
  process.env.NODE_ENV !== "production" ? GridToolbarQuickFilter.propTypes = {
130
97
  // ----------------------------- Warning --------------------------------
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { GridSlotProps } from "../../models/gridSlotsComponentsProps.js";
3
+ interface GridToolbarInternalProps {
4
+ additionalExportMenuItems?: (onMenuItemClick: () => void) => React.ReactNode;
5
+ }
6
+ export type GridToolbarProps = GridSlotProps['toolbar'] & GridToolbarInternalProps;
7
+ declare function GridToolbar(props: GridToolbarProps): React.JSX.Element;
8
+ declare namespace GridToolbar {
9
+ var propTypes: any;
10
+ }
11
+ export { GridToolbar };
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.GridToolbar = GridToolbar;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
13
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
+ var _system = require("@mui/system");
15
+ var _Toolbar = require("./Toolbar");
16
+ var _ToolbarButton = require("./ToolbarButton");
17
+ var _filterPanel = require("../filterPanel");
18
+ var _columnsPanel = require("../columnsPanel");
19
+ var _export = require("../export");
20
+ var _GridToolbarQuickFilter = require("../toolbar/GridToolbarQuickFilter");
21
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
+ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
23
+ var _assert = require("../../utils/assert");
24
+ var _cssVariables = require("../../constants/cssVariables");
25
+ var _jsxRuntime = require("react/jsx-runtime");
26
+ const Divider = (0, _system.styled)(_assert.NotRendered, {
27
+ name: 'MuiDataGrid',
28
+ slot: 'ToolbarDivider'
29
+ })({
30
+ height: '50%',
31
+ margin: _cssVariables.vars.spacing(0, 0.5)
32
+ });
33
+ function GridToolbar(props) {
34
+ const {
35
+ showQuickFilter = true,
36
+ quickFilterProps,
37
+ csvOptions,
38
+ printOptions,
39
+ additionalExportMenuItems
40
+ } = props;
41
+ const apiRef = (0, _useGridApiContext.useGridApiContext)();
42
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
43
+ const [exportMenuOpen, setExportMenuOpen] = React.useState(false);
44
+ const exportMenuTriggerRef = React.useRef(null);
45
+ const exportMenuId = (0, _useId.default)();
46
+ const exportMenuTriggerId = (0, _useId.default)();
47
+ const showExportMenu = !csvOptions?.disableToolbarButton || !printOptions?.disableToolbarButton || additionalExportMenuItems;
48
+ const closeExportMenu = () => setExportMenuOpen(false);
49
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Toolbar.Toolbar, {
50
+ children: [!rootProps.disableColumnSelector && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
51
+ title: apiRef.current.getLocaleText('toolbarColumns'),
52
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_columnsPanel.ColumnsPanelTrigger, {
53
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarButton.ToolbarButton, {}),
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {
55
+ fontSize: "small"
56
+ })
57
+ })
58
+ }), !rootProps.disableColumnFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
59
+ title: apiRef.current.getLocaleText('toolbarFilters'),
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_filterPanel.FilterPanelTrigger, {
61
+ render: (triggerProps, state) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarButton.ToolbarButton, (0, _extends2.default)({}, triggerProps, {
62
+ color: "default",
63
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseBadge, {
64
+ badgeContent: state.filterCount,
65
+ color: "primary",
66
+ variant: "dot",
67
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.openFilterButtonIcon, {
68
+ fontSize: "small"
69
+ })
70
+ })
71
+ }))
72
+ })
73
+ }), showExportMenu && (!rootProps.disableColumnFilter || !rootProps.disableColumnSelector) && /*#__PURE__*/(0, _jsxRuntime.jsx)(Divider, {
74
+ as: rootProps.slots.baseDivider,
75
+ orientation: "vertical"
76
+ }), showExportMenu && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
77
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
78
+ title: apiRef.current.getLocaleText('toolbarExport'),
79
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarButton.ToolbarButton, {
80
+ ref: exportMenuTriggerRef,
81
+ id: exportMenuTriggerId,
82
+ "aria-controls": exportMenuId,
83
+ "aria-haspopup": "true",
84
+ "aria-expanded": exportMenuOpen ? 'true' : undefined,
85
+ onClick: () => setExportMenuOpen(true),
86
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.exportIcon, {
87
+ fontSize: "small"
88
+ })
89
+ })
90
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Menu.default, {
91
+ id: exportMenuId,
92
+ anchorEl: exportMenuTriggerRef.current,
93
+ open: exportMenuOpen,
94
+ onClose: closeExportMenu,
95
+ MenuListProps: {
96
+ 'aria-labelledby': exportMenuTriggerId
97
+ },
98
+ children: [!printOptions?.disableToolbarButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_export.ExportPrint, {
99
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({}, rootProps.slotProps?.baseMenuItem)),
100
+ options: printOptions,
101
+ onClick: closeExportMenu,
102
+ children: apiRef.current.getLocaleText('toolbarExportPrint')
103
+ }), !csvOptions?.disableToolbarButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_export.ExportCsv, {
104
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({}, rootProps.slotProps?.baseMenuItem)),
105
+ options: csvOptions,
106
+ onClick: closeExportMenu,
107
+ children: apiRef.current.getLocaleText('toolbarExportCSV')
108
+ }), additionalExportMenuItems?.(closeExportMenu)]
109
+ })]
110
+ }), showQuickFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarQuickFilter.GridToolbarQuickFilter, (0, _extends2.default)({}, quickFilterProps))]
111
+ });
112
+ }
113
+ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
114
+ // ----------------------------- Warning --------------------------------
115
+ // | These PropTypes are generated from the TypeScript type definitions |
116
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
117
+ // ----------------------------------------------------------------------
118
+ additionalExportMenuItems: _propTypes.default.func,
119
+ csvOptions: _propTypes.default.object,
120
+ printOptions: _propTypes.default.object,
121
+ /**
122
+ * Props passed to the quick filter component.
123
+ */
124
+ quickFilterProps: _propTypes.default.shape({
125
+ className: _propTypes.default.string,
126
+ debounceMs: _propTypes.default.number,
127
+ quickFilterFormatter: _propTypes.default.func,
128
+ quickFilterParser: _propTypes.default.func,
129
+ slotProps: _propTypes.default.object
130
+ }),
131
+ /**
132
+ * Show the quick filter component.
133
+ * @default true
134
+ */
135
+ showQuickFilter: _propTypes.default.bool,
136
+ /**
137
+ * The props used for each slot inside.
138
+ * @default {}
139
+ */
140
+ slotProps: _propTypes.default.object,
141
+ 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])
142
+ } : void 0;
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
3
+ import type { DataGridProcessedProps } from '../../models/props/DataGridProps';
4
+ export type ToolbarProps = React.HTMLAttributes<HTMLDivElement> & {
5
+ /**
6
+ * A function to customize rendering of the component.
7
+ */
8
+ render?: RenderProp<React.ComponentProps<typeof ToolbarRoot>>;
9
+ };
10
+ type OwnerState = DataGridProcessedProps;
11
+ declare const ToolbarRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
12
+ ownerState: OwnerState;
13
+ }, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
14
+ /**
15
+ * The top level Toolbar component that provides context to child components.
16
+ * It renders a styled `<div />` element.
17
+ *
18
+ * Demos:
19
+ *
20
+ * - [Toolbar](https://mui.com/x/react-data-grid/components/toolbar/)
21
+ *
22
+ * API:
23
+ *
24
+ * - [Toolbar API](https://mui.com/x/api/data-grid/toolbar/)
25
+ */
26
+ declare const Toolbar: React.ForwardRefExoticComponent<ToolbarProps> | React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
27
+ /**
28
+ * A function to customize rendering of the component.
29
+ */
30
+ render?: RenderProp<React.ComponentProps<typeof ToolbarRoot>>;
31
+ } & React.RefAttributes<HTMLDivElement>>;
32
+ export { Toolbar };
@@ -0,0 +1,132 @@
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.Toolbar = 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 _styles = require("@mui/material/styles");
14
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
+ var _clsx = _interopRequireDefault(require("clsx"));
16
+ var _forwardRef = require("@mui/x-internals/forwardRef");
17
+ var _cssVariables = require("../../constants/cssVariables");
18
+ var _gridClasses = require("../../constants/gridClasses");
19
+ var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
20
+ var _ToolbarContext = require("./ToolbarContext");
21
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ const _excluded = ["render", "className"];
24
+ const useUtilityClasses = ownerState => {
25
+ const {
26
+ classes
27
+ } = ownerState;
28
+ const slots = {
29
+ root: ['toolbar']
30
+ };
31
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
32
+ };
33
+ const ToolbarRoot = (0, _styles.styled)('div', {
34
+ name: 'MuiDataGrid',
35
+ slot: 'Toolbar'
36
+ })({
37
+ flex: 0,
38
+ display: 'flex',
39
+ alignItems: 'center',
40
+ gap: _cssVariables.vars.spacing(0.25),
41
+ padding: _cssVariables.vars.spacing(0.75),
42
+ borderBottom: `1px solid ${_cssVariables.vars.colors.border.base}`
43
+ });
44
+
45
+ /**
46
+ * The top level Toolbar component that provides context to child components.
47
+ * It renders a styled `<div />` element.
48
+ *
49
+ * Demos:
50
+ *
51
+ * - [Toolbar](https://mui.com/x/react-data-grid/components/toolbar/)
52
+ *
53
+ * API:
54
+ *
55
+ * - [Toolbar API](https://mui.com/x/api/data-grid/toolbar/)
56
+ */
57
+ const Toolbar = exports.Toolbar = (0, _forwardRef.forwardRef)(function Toolbar(props, ref) {
58
+ const {
59
+ render,
60
+ className
61
+ } = props,
62
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
63
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
64
+ const classes = useUtilityClasses(rootProps);
65
+ const [focusableItemId, setFocusableItemId] = React.useState(null);
66
+ const [items, setItems] = React.useState([]);
67
+ const registerItem = React.useCallback(item => {
68
+ setItems(prevItems => [...prevItems, item]);
69
+ }, []);
70
+ const unregisterItem = React.useCallback(item => {
71
+ setItems(prevItems => prevItems.filter(i => i !== item));
72
+ if (focusableItemId === item) {
73
+ setFocusableItemId(null);
74
+ }
75
+ }, [focusableItemId]);
76
+ const onItemKeyDown = React.useCallback(event => {
77
+ if (!focusableItemId) {
78
+ return;
79
+ }
80
+ if (event.key === 'ArrowRight') {
81
+ event.preventDefault();
82
+ const nextIndex = items.indexOf(focusableItemId) + 1;
83
+ setFocusableItemId(items[nextIndex < items.length ? nextIndex : 0]);
84
+ }
85
+ if (event.key === 'ArrowLeft') {
86
+ event.preventDefault();
87
+ const prevIndex = items.indexOf(focusableItemId) - 1;
88
+ setFocusableItemId(items[prevIndex < 0 ? items.length - 1 : prevIndex]);
89
+ }
90
+ if (event.key === 'Home') {
91
+ event.preventDefault();
92
+ setFocusableItemId(items[0]);
93
+ }
94
+ if (event.key === 'End') {
95
+ event.preventDefault();
96
+ setFocusableItemId(items[items.length - 1]);
97
+ }
98
+ }, [items, focusableItemId]);
99
+ const contextValue = React.useMemo(() => ({
100
+ focusableItemId,
101
+ registerItem,
102
+ unregisterItem,
103
+ onItemKeyDown
104
+ }), [registerItem, unregisterItem, focusableItemId, onItemKeyDown]);
105
+ const element = (0, _useGridComponentRenderer.useGridComponentRenderer)(ToolbarRoot, render, (0, _extends2.default)({
106
+ role: 'toolbar',
107
+ 'aria-orientation': 'horizontal',
108
+ className: (0, _clsx.default)(classes.root, className),
109
+ ownerState: rootProps
110
+ }, other, {
111
+ ref
112
+ }));
113
+ React.useEffect(() => {
114
+ if (items.length > 0) {
115
+ setFocusableItemId(items[0]);
116
+ }
117
+ }, [items]);
118
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarContext.ToolbarContext.Provider, {
119
+ value: contextValue,
120
+ children: element
121
+ });
122
+ });
123
+ process.env.NODE_ENV !== "production" ? Toolbar.propTypes = {
124
+ // ----------------------------- Warning --------------------------------
125
+ // | These PropTypes are generated from the TypeScript type definitions |
126
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
127
+ // ----------------------------------------------------------------------
128
+ /**
129
+ * A function to customize rendering of the component.
130
+ */
131
+ render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func])
132
+ } : void 0;
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
3
+ import type { GridSlotProps } from '../../models';
4
+ export type ToolbarButtonProps = GridSlotProps['baseIconButton'] & {
5
+ /**
6
+ * A function to customize rendering of the component.
7
+ */
8
+ render?: RenderProp<GridSlotProps['baseIconButton']>;
9
+ };
10
+ /**
11
+ * A button for performing actions from the toolbar.
12
+ * It renders the `baseIconButton` slot.
13
+ *
14
+ * Demos:
15
+ *
16
+ * - [Toolbar](https://mui.com/x/react-data-grid/components/toolbar/)
17
+ *
18
+ * API:
19
+ *
20
+ * - [ToolbarButton API](https://mui.com/x/api/data-grid/toolbar-button/)
21
+ */
22
+ declare const ToolbarButton: React.ForwardRefExoticComponent<ToolbarButtonProps> | React.ForwardRefExoticComponent<Omit<ToolbarButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
23
+ export { ToolbarButton };