@mui/x-data-grid-generator 8.26.1 → 8.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CHANGELOG.md +138 -9
  2. package/columns/commodities.columns.d.ts +1 -1
  3. package/columns/commodities.columns.js +2 -0
  4. package/columns/employees.columns.d.ts +1 -1
  5. package/columns/employees.columns.js +1 -0
  6. package/constants/prompts.d.ts +1 -1
  7. package/esm/columns/commodities.columns.d.ts +1 -1
  8. package/esm/columns/commodities.columns.js +3 -1
  9. package/esm/columns/employees.columns.d.ts +1 -1
  10. package/esm/columns/employees.columns.js +2 -1
  11. package/esm/constants/prompts.d.ts +1 -1
  12. package/esm/hooks/serverUtils.d.ts +1 -1
  13. package/esm/hooks/useBasicDemoData.d.ts +1 -1
  14. package/esm/hooks/useDemoData.d.ts +4 -4
  15. package/esm/hooks/useEditDropdownState.d.ts +39 -0
  16. package/esm/hooks/useEditDropdownState.js +158 -0
  17. package/esm/hooks/useMockServer.d.ts +1 -1
  18. package/esm/hooks/useMovieData.d.ts +1 -1
  19. package/esm/hooks/useQuery.d.ts +2 -2
  20. package/esm/hooks/useRowEditHandlers.d.ts +25 -0
  21. package/esm/hooks/useRowEditHandlers.js +84 -0
  22. package/esm/index.js +1 -1
  23. package/esm/renderer/index.d.ts +2 -1
  24. package/esm/renderer/index.js +2 -1
  25. package/esm/renderer/renderAvatar.d.ts +1 -1
  26. package/esm/renderer/renderCountry.d.ts +2 -2
  27. package/esm/renderer/renderEditBoolean.d.ts +2 -0
  28. package/esm/renderer/renderEditBoolean.js +56 -0
  29. package/esm/renderer/renderEditCountry.d.ts +2 -2
  30. package/esm/renderer/renderEditCountry.js +68 -48
  31. package/esm/renderer/renderEditCurrency.d.ts +1 -1
  32. package/esm/renderer/renderEditCurrency.js +67 -47
  33. package/esm/renderer/renderEditIncoterm.d.ts +1 -1
  34. package/esm/renderer/renderEditIncoterm.js +30 -27
  35. package/esm/renderer/renderEditProgress.d.ts +1 -1
  36. package/esm/renderer/renderEditProgress.js +3 -2
  37. package/esm/renderer/renderEditRating.d.ts +1 -1
  38. package/esm/renderer/renderEditRating.js +3 -2
  39. package/esm/renderer/renderEditStatus.d.ts +1 -1
  40. package/esm/renderer/renderEditStatus.js +30 -28
  41. package/esm/renderer/renderEmail.d.ts +1 -1
  42. package/esm/renderer/renderIncoterm.d.ts +1 -1
  43. package/esm/renderer/renderLink.d.ts +1 -1
  44. package/esm/renderer/renderPnl.d.ts +1 -1
  45. package/esm/renderer/renderProgress.d.ts +1 -1
  46. package/esm/renderer/renderRating.d.ts +1 -1
  47. package/esm/renderer/renderStatus.d.ts +1 -1
  48. package/esm/renderer/renderTotalPrice.d.ts +1 -1
  49. package/esm/services/basic-data-service.d.ts +1 -1
  50. package/esm/services/gridColDefGenerator.d.ts +1 -1
  51. package/esm/services/prompt-resolver.d.ts +1 -1
  52. package/esm/services/random-generator.d.ts +1 -1
  53. package/esm/services/real-data-service.d.ts +2 -2
  54. package/esm/services/tree-data-generator.d.ts +2 -2
  55. package/hooks/serverUtils.d.ts +1 -1
  56. package/hooks/useBasicDemoData.d.ts +1 -1
  57. package/hooks/useDemoData.d.ts +4 -4
  58. package/hooks/useEditDropdownState.d.ts +39 -0
  59. package/hooks/useEditDropdownState.js +165 -0
  60. package/hooks/useMockServer.d.ts +1 -1
  61. package/hooks/useMovieData.d.ts +1 -1
  62. package/hooks/useQuery.d.ts +2 -2
  63. package/hooks/useRowEditHandlers.d.ts +25 -0
  64. package/hooks/useRowEditHandlers.js +90 -0
  65. package/index.js +1 -1
  66. package/package.json +4 -4
  67. package/renderer/index.d.ts +2 -1
  68. package/renderer/index.js +11 -0
  69. package/renderer/renderAvatar.d.ts +1 -1
  70. package/renderer/renderCountry.d.ts +2 -2
  71. package/renderer/renderEditBoolean.d.ts +2 -0
  72. package/renderer/renderEditBoolean.js +63 -0
  73. package/renderer/renderEditCountry.d.ts +2 -2
  74. package/renderer/renderEditCountry.js +67 -48
  75. package/renderer/renderEditCurrency.d.ts +1 -1
  76. package/renderer/renderEditCurrency.js +66 -47
  77. package/renderer/renderEditIncoterm.d.ts +1 -1
  78. package/renderer/renderEditIncoterm.js +30 -27
  79. package/renderer/renderEditProgress.d.ts +1 -1
  80. package/renderer/renderEditProgress.js +3 -2
  81. package/renderer/renderEditRating.d.ts +1 -1
  82. package/renderer/renderEditRating.js +3 -2
  83. package/renderer/renderEditStatus.d.ts +1 -1
  84. package/renderer/renderEditStatus.js +30 -28
  85. package/renderer/renderEmail.d.ts +1 -1
  86. package/renderer/renderIncoterm.d.ts +1 -1
  87. package/renderer/renderLink.d.ts +1 -1
  88. package/renderer/renderPnl.d.ts +1 -1
  89. package/renderer/renderProgress.d.ts +1 -1
  90. package/renderer/renderRating.d.ts +1 -1
  91. package/renderer/renderStatus.d.ts +1 -1
  92. package/renderer/renderTotalPrice.d.ts +1 -1
  93. package/services/basic-data-service.d.ts +1 -1
  94. package/services/gridColDefGenerator.d.ts +1 -1
  95. package/services/prompt-resolver.d.ts +1 -1
  96. package/services/random-generator.d.ts +1 -1
  97. package/services/real-data-service.d.ts +2 -2
  98. package/services/tree-data-generator.d.ts +2 -2
@@ -1,5 +1,5 @@
1
- import { GridRowModel, GridInitialState } from '@mui/x-data-grid-premium';
2
- import { GridColDefGenerator } from "./gridColDefGenerator.js";
1
+ import type { GridRowModel, GridInitialState } from '@mui/x-data-grid-premium';
2
+ import type { GridColDefGenerator } from "./gridColDefGenerator.js";
3
3
  export interface GridDemoData {
4
4
  rows: GridRowModel[];
5
5
  columns: GridColDefGenerator[];
@@ -1,5 +1,5 @@
1
- import { DataGridPremiumProps } from '@mui/x-data-grid-premium';
2
- import { GridDemoData } from "./real-data-service.js";
1
+ import type { DataGridPremiumProps } from '@mui/x-data-grid-premium';
2
+ import type { GridDemoData } from "./real-data-service.js";
3
3
  export interface AddPathToDemoDataOptions {
4
4
  /**
5
5
  * The field used to generate the path
@@ -1,4 +1,4 @@
1
- import { GridRowModel, GridFilterModel, GridSortModel, GridColDef, GridRowId, GridPaginationModel, GridValidRowModel, GridAggregationModel, GridPivotModel, GridGetRowsResponse } from '@mui/x-data-grid-premium';
1
+ import { type GridRowModel, type GridFilterModel, type GridSortModel, type GridColDef, type GridRowId, type GridPaginationModel, type GridValidRowModel, type GridAggregationModel, type GridPivotModel, type GridGetRowsResponse } from '@mui/x-data-grid-premium';
2
2
  export interface FakeServerResponse {
3
3
  returnedRows: GridRowModel[];
4
4
  aggregateRow?: GridValidRowModel;
@@ -1,2 +1,2 @@
1
- import { GridBasicData } from "../services/index.js";
1
+ import { type GridBasicData } from "../services/index.js";
2
2
  export declare const useBasicDemoData: (nbRows: number, nbCols: number) => GridBasicData;
@@ -1,7 +1,7 @@
1
- import { GridColumnVisibilityModel } from '@mui/x-data-grid-premium';
2
- import { GridDemoData } from "../services/real-data-service.js";
3
- import { GridColDefGenerator } from "../services/gridColDefGenerator.js";
4
- import { AddPathToDemoDataOptions, DemoTreeDataValue } from "../services/tree-data-generator.js";
1
+ import type { GridColumnVisibilityModel } from '@mui/x-data-grid-premium';
2
+ import { type GridDemoData } from "../services/real-data-service.js";
3
+ import type { GridColDefGenerator } from "../services/gridColDefGenerator.js";
4
+ import { type AddPathToDemoDataOptions, type DemoTreeDataValue } from "../services/tree-data-generator.js";
5
5
  export type DemoDataReturnType = {
6
6
  data: DemoTreeDataValue;
7
7
  loading: boolean;
@@ -0,0 +1,39 @@
1
+ import * as React from 'react';
2
+ import { type GridRowId } from '@mui/x-data-grid-premium';
3
+ interface UseEditDropdownStateParams {
4
+ id: GridRowId;
5
+ field: string;
6
+ hasFocus: boolean;
7
+ }
8
+ /**
9
+ * Hook that manages dropdown state and keyboard handling for custom edit cells
10
+ * with dropdowns (Select, Autocomplete).
11
+ *
12
+ * Provides:
13
+ * - Auto-open on mount if cell had focus when edit started
14
+ * - Focus management when tabbing into the cell
15
+ * - Keyboard handlers for Tab, Enter, Escape that work in both cell and row edit modes
16
+ * - Handlers for Select and Autocomplete components
17
+ */
18
+ export declare function useEditDropdownState(params: UseEditDropdownStateParams): {
19
+ open: boolean;
20
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
21
+ inputRef: React.RefObject<HTMLInputElement | null>;
22
+ shouldAutoOpen: boolean;
23
+ handleSelectKeyDown: (event: React.KeyboardEvent) => void;
24
+ handleSelectMenuClose: (event: object, reason: "escapeKeyDown" | "backdropClick" | "tabKeyDown") => void;
25
+ handleSelectMenuListKeyDown: (event: React.KeyboardEvent) => void;
26
+ createSelectChangeHandler: (getValue: (event: {
27
+ target: {
28
+ value: unknown;
29
+ };
30
+ }) => unknown) => (event: {
31
+ target: {
32
+ value: unknown;
33
+ };
34
+ }) => Promise<void>;
35
+ handleAutocompleteInputKeyDown: (event: React.KeyboardEvent) => void;
36
+ handleAutocompleteWrapperKeyDown: (event: React.KeyboardEvent) => void;
37
+ createAutocompleteChangeHandler: <T>(transformValue?: (value: T) => unknown) => (event: React.SyntheticEvent, newValue: T) => Promise<void>;
38
+ };
39
+ export {};
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.useEditDropdownState = useEditDropdownState;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
13
+ var _xDataGridPremium = require("@mui/x-data-grid-premium");
14
+ var _useRowEditHandlers = require("./useRowEditHandlers");
15
+ /**
16
+ * Hook that manages dropdown state and keyboard handling for custom edit cells
17
+ * with dropdowns (Select, Autocomplete).
18
+ *
19
+ * Provides:
20
+ * - Auto-open on mount if cell had focus when edit started
21
+ * - Focus management when tabbing into the cell
22
+ * - Keyboard handlers for Tab, Enter, Escape that work in both cell and row edit modes
23
+ * - Handlers for Select and Autocomplete components
24
+ */
25
+ function useEditDropdownState(params) {
26
+ const {
27
+ id,
28
+ field,
29
+ hasFocus
30
+ } = params;
31
+ const apiRef = (0, _xDataGridPremium.useGridApiContext)();
32
+ const rootProps = (0, _xDataGridPremium.useGridRootProps)();
33
+ const inputRef = React.useRef(null);
34
+
35
+ // Only auto-open if this cell had focus when edit started
36
+ const shouldAutoOpen = React.useRef(hasFocus).current;
37
+ const [open, setOpen] = React.useState(shouldAutoOpen);
38
+
39
+ // Track open state in a ref for event handlers that need current value
40
+ const openRef = React.useRef(open);
41
+ openRef.current = open;
42
+ const isRowEditMode = rootProps.editMode === _xDataGridPremium.GridEditModes.Row;
43
+ const closeMenu = React.useCallback(() => setOpen(false), []);
44
+ const {
45
+ handleTabKeyDown,
46
+ handleMenuKeyDown
47
+ } = (0, _useRowEditHandlers.useRowEditHandlers)({
48
+ id,
49
+ field,
50
+ onClose: closeMenu
51
+ });
52
+
53
+ // Focus input when hasFocus becomes true (e.g., when tabbing into this cell)
54
+ (0, _useEnhancedEffect.default)(() => {
55
+ if (hasFocus) {
56
+ inputRef.current?.focus();
57
+ }
58
+ }, [hasFocus]);
59
+
60
+ /**
61
+ * Handler for Select's onKeyDown - handles Tab when menu is closed
62
+ */
63
+ const handleSelectKeyDown = React.useCallback(event => {
64
+ if (event.key === 'Tab') {
65
+ handleTabKeyDown(event);
66
+ }
67
+ }, [handleTabKeyDown]);
68
+
69
+ /**
70
+ * Handler for Select's MenuProps.onClose - closes menu and exits cell edit on backdrop click
71
+ */
72
+ const handleSelectMenuClose = React.useCallback((event, reason) => {
73
+ setOpen(false);
74
+ if (reason === 'backdropClick' && rootProps.editMode === _xDataGridPremium.GridEditModes.Cell && apiRef.current.getCellMode(id, field) === 'edit') {
75
+ const cellParams = apiRef.current.getCellParams(id, field);
76
+ apiRef.current.publishEvent('cellEditStop', (0, _extends2.default)({}, cellParams, {
77
+ reason: _xDataGridPremium.GridCellEditStopReasons.cellFocusOut
78
+ }));
79
+ }
80
+ }, [apiRef, id, field, rootProps.editMode]);
81
+
82
+ /**
83
+ * Creates a change handler for Select that closes menu and optionally exits edit mode
84
+ */
85
+ const createSelectChangeHandler = React.useCallback(getValue => {
86
+ return async event => {
87
+ // Close menu after selection
88
+ setOpen(false);
89
+ const newValue = getValue(event);
90
+ const isValid = await apiRef.current.setEditCellValue({
91
+ id,
92
+ field,
93
+ value: newValue
94
+ }, event);
95
+
96
+ // In cell edit mode, selecting closes the menu and exits edit mode
97
+ // In row edit mode, selecting only closes the menu (already done above)
98
+ // Check if still in edit mode to avoid double-exit when Enter key also triggers grid's handler
99
+ if (isValid && !isRowEditMode && apiRef.current.getCellMode(id, field) === 'edit') {
100
+ const cellParams = apiRef.current.getCellParams(id, field);
101
+ apiRef.current.publishEvent('cellEditStop', (0, _extends2.default)({}, cellParams, {
102
+ reason: _xDataGridPremium.GridCellEditStopReasons.enterKeyDown
103
+ }));
104
+ }
105
+ };
106
+ }, [apiRef, id, field, isRowEditMode]);
107
+
108
+ /**
109
+ * Handler for Autocomplete's InputBase onKeyDown - handles Tab
110
+ */
111
+ const handleAutocompleteInputKeyDown = React.useCallback(event => {
112
+ if (event.key === 'Tab') {
113
+ handleTabKeyDown(event);
114
+ }
115
+ }, [handleTabKeyDown]);
116
+
117
+ /**
118
+ * Handler for Autocomplete's wrapper div - stops Enter/Escape only when dropdown is open
119
+ */
120
+ const handleAutocompleteWrapperKeyDown = React.useCallback(event => {
121
+ if (isRowEditMode && openRef.current && (event.key === 'Enter' || event.key === 'Escape')) {
122
+ event.stopPropagation();
123
+ }
124
+ }, [isRowEditMode]);
125
+
126
+ /**
127
+ * Creates a change handler for Autocomplete that optionally exits edit mode
128
+ */
129
+ const createAutocompleteChangeHandler = React.useCallback(transformValue => {
130
+ return async (event, newValue) => {
131
+ const valueToSet = transformValue ? transformValue(newValue) : newValue;
132
+ await apiRef.current.setEditCellValue({
133
+ id,
134
+ field,
135
+ value: valueToSet
136
+ }, event);
137
+
138
+ // In cell edit mode, selecting exits edit mode
139
+ // In row edit mode, selecting only closes the dropdown (Autocomplete handles this)
140
+ // Check if still in edit mode to avoid double-exit when Enter key also triggers grid's handler
141
+ if (!isRowEditMode && apiRef.current.getCellMode(id, field) === 'edit') {
142
+ apiRef.current.stopCellEditMode({
143
+ id,
144
+ field
145
+ });
146
+ }
147
+ };
148
+ }, [apiRef, id, field, isRowEditMode]);
149
+ return {
150
+ // State
151
+ open,
152
+ setOpen,
153
+ inputRef,
154
+ shouldAutoOpen,
155
+ // Select handlers
156
+ handleSelectKeyDown,
157
+ handleSelectMenuClose,
158
+ handleSelectMenuListKeyDown: handleMenuKeyDown,
159
+ createSelectChangeHandler,
160
+ // Autocomplete handlers
161
+ handleAutocompleteInputKeyDown,
162
+ handleAutocompleteWrapperKeyDown,
163
+ createAutocompleteChangeHandler
164
+ };
165
+ }
@@ -1,5 +1,5 @@
1
1
  import { type GridGetRowsResponse, type GridRowId, type GridRowModel, type GridColDef, type GridInitialState } from '@mui/x-data-grid-premium';
2
- import { AddPathToDemoDataOptions } from "../services/tree-data-generator.js";
2
+ import { type AddPathToDemoDataOptions } from "../services/tree-data-generator.js";
3
3
  import type { ServerOptions } from "./serverUtils.js";
4
4
  export declare const BASE_URL = "https://mui.com/x/api/data-grid";
5
5
  type UseMockServerResponse<T> = {
@@ -1,4 +1,4 @@
1
- import { GridColDef, GridRowModel } from '@mui/x-data-grid-premium';
1
+ import type { GridColDef, GridRowModel } from '@mui/x-data-grid-premium';
2
2
  export type Movie = {
3
3
  id: number;
4
4
  title: string;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { GridRowModel } from '@mui/x-data-grid-pro';
3
- import { UseDemoDataOptions } from "./useDemoData.js";
2
+ import { type GridRowModel } from '@mui/x-data-grid-pro';
3
+ import { type UseDemoDataOptions } from "./useDemoData.js";
4
4
  import type { ServerOptions, QueryOptions, PageInfo } from "./serverUtils.js";
5
5
  export declare const createFakeServer: (dataSetOptions?: Partial<UseDemoDataOptions>, serverOptions?: ServerOptions) => {
6
6
  columns: import("../index.js").GridColDefGenerator[];
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import { type GridRowId } from '@mui/x-data-grid-premium';
3
+ interface UseRowEditHandlersParams {
4
+ id: GridRowId;
5
+ field: string;
6
+ onClose?: () => void;
7
+ }
8
+ /**
9
+ * Hook that provides keyboard event handlers for custom edit cells
10
+ * to work correctly in both cell and row edit modes.
11
+ *
12
+ * In row edit mode:
13
+ * - Tab moves focus to the next/previous editable cell
14
+ * - Enter/Escape are stopped from propagating to prevent exiting row edit
15
+ *
16
+ * In cell edit mode:
17
+ * - Default behavior is preserved
18
+ */
19
+ export declare function useRowEditHandlers(params: UseRowEditHandlersParams): {
20
+ handleTabKeyDown: (event: React.KeyboardEvent) => void;
21
+ handleEnterEscapeKeyDown: (event: React.KeyboardEvent) => void;
22
+ handleMenuKeyDown: (event: React.KeyboardEvent) => void;
23
+ moveFocusToNextCell: (shiftKey: boolean) => void;
24
+ };
25
+ export {};
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useRowEditHandlers = useRowEditHandlers;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _xDataGridPremium = require("@mui/x-data-grid-premium");
11
+ /**
12
+ * Hook that provides keyboard event handlers for custom edit cells
13
+ * to work correctly in both cell and row edit modes.
14
+ *
15
+ * In row edit mode:
16
+ * - Tab moves focus to the next/previous editable cell
17
+ * - Enter/Escape are stopped from propagating to prevent exiting row edit
18
+ *
19
+ * In cell edit mode:
20
+ * - Default behavior is preserved
21
+ */
22
+ function useRowEditHandlers(params) {
23
+ const {
24
+ id,
25
+ field,
26
+ onClose
27
+ } = params;
28
+ const apiRef = (0, _xDataGridPremium.useGridApiContext)();
29
+ const rootProps = (0, _xDataGridPremium.useGridRootProps)();
30
+ const isRowEditMode = rootProps.editMode === _xDataGridPremium.GridEditModes.Row;
31
+ const moveFocusToNextCell = React.useCallback(shiftKey => {
32
+ const editableFields = apiRef.current.getVisibleColumns().filter(column => column.type === 'actions' || apiRef.current.isCellEditable(apiRef.current.getCellParams(id, column.field))).map(column => column.field);
33
+ const currentIndex = editableFields.indexOf(field);
34
+ if (currentIndex === -1) {
35
+ return;
36
+ }
37
+ const nextIndex = shiftKey ? currentIndex - 1 : currentIndex + 1;
38
+ if (nextIndex < 0 || nextIndex >= editableFields.length) {
39
+ // At boundary - exit row edit mode
40
+ apiRef.current.stopRowEditMode({
41
+ id,
42
+ field,
43
+ cellToFocusAfter: shiftKey ? 'left' : 'right'
44
+ });
45
+ return;
46
+ }
47
+ apiRef.current.setCellFocus(id, editableFields[nextIndex]);
48
+ }, [apiRef, id, field]);
49
+
50
+ /**
51
+ * Handle Tab key in row edit mode.
52
+ * Closes any open popup and moves focus to the next/previous editable cell.
53
+ */
54
+ const handleTabKeyDown = React.useCallback(event => {
55
+ if (!isRowEditMode || event.key !== 'Tab') {
56
+ return;
57
+ }
58
+ event.preventDefault();
59
+ event.stopPropagation();
60
+ onClose?.();
61
+ moveFocusToNextCell(event.shiftKey);
62
+ }, [isRowEditMode, onClose, moveFocusToNextCell]);
63
+
64
+ /**
65
+ * Prevent Enter/Escape from bubbling in row edit mode.
66
+ * This prevents the grid from exiting row edit when selecting from a dropdown.
67
+ */
68
+ const handleEnterEscapeKeyDown = React.useCallback(event => {
69
+ if (!isRowEditMode) {
70
+ return;
71
+ }
72
+ if (event.key === 'Enter' || event.key === 'Escape') {
73
+ event.stopPropagation();
74
+ }
75
+ }, [isRowEditMode]);
76
+
77
+ /**
78
+ * Combined handler for menus/listboxes that need to handle both Tab and Enter/Escape.
79
+ */
80
+ const handleMenuKeyDown = React.useCallback(event => {
81
+ handleEnterEscapeKeyDown(event);
82
+ handleTabKeyDown(event);
83
+ }, [handleEnterEscapeKeyDown, handleTabKeyDown]);
84
+ return {
85
+ handleTabKeyDown,
86
+ handleEnterEscapeKeyDown,
87
+ handleMenuKeyDown,
88
+ moveFocusToNextCell
89
+ };
90
+ }
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-generator v8.26.1
2
+ * @mui/x-data-grid-generator v8.27.1
3
3
  *
4
4
  * @license UNLICENSED
5
5
  * This source code is licensed under the UNLICENSED license found in the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid-generator",
3
- "version": "8.26.1",
3
+ "version": "8.27.1",
4
4
  "author": "MUI Team",
5
5
  "description": "Generate fake data for demo purposes only.",
6
6
  "license": "UNLICENSED",
@@ -25,10 +25,10 @@
25
25
  "chance": "^1.1.13",
26
26
  "clsx": "^2.1.1",
27
27
  "lru-cache": "^11.2.2",
28
- "@mui/x-data-grid-premium": "8.26.1",
29
- "@mui/x-data-grid": "8.26.0",
28
+ "@mui/x-data-grid": "8.27.1",
29
+ "@mui/x-data-grid-pro": "8.27.1",
30
30
  "@mui/x-internals": "8.26.0",
31
- "@mui/x-data-grid-pro": "8.26.0"
31
+ "@mui/x-data-grid-premium": "8.27.1"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@emotion/react": "^11.9.0",
@@ -13,4 +13,5 @@ export * from "./renderEditProgress.js";
13
13
  export * from "./renderEditStatus.js";
14
14
  export * from "./renderEditIncoterm.js";
15
15
  export * from "./renderEditRating.js";
16
- export * from "./renderEditCountry.js";
16
+ export * from "./renderEditCountry.js";
17
+ export * from "./renderEditBoolean.js";
package/renderer/index.js CHANGED
@@ -178,4 +178,15 @@ Object.keys(_renderEditCountry).forEach(function (key) {
178
178
  return _renderEditCountry[key];
179
179
  }
180
180
  });
181
+ });
182
+ var _renderEditBoolean = require("./renderEditBoolean");
183
+ Object.keys(_renderEditBoolean).forEach(function (key) {
184
+ if (key === "default" || key === "__esModule") return;
185
+ if (key in exports && exports[key] === _renderEditBoolean[key]) return;
186
+ Object.defineProperty(exports, key, {
187
+ enumerable: true,
188
+ get: function () {
189
+ return _renderEditBoolean[key];
190
+ }
191
+ });
181
192
  });
@@ -1,4 +1,4 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderAvatar(params: GridRenderCellParams<{
3
3
  name: string;
4
4
  color: string;
@@ -1,3 +1,3 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
- import { CountryIsoOption } from "../services/static-data.js";
1
+ import { type GridRenderCellParams } from '@mui/x-data-grid-premium';
2
+ import type { CountryIsoOption } from "../services/static-data.js";
3
3
  export declare function renderCountry(params: GridRenderCellParams<CountryIsoOption, any, any>): any;
@@ -0,0 +1,2 @@
1
+ import { type GridRenderEditCellParams } from '@mui/x-data-grid-premium';
2
+ export declare function renderEditBoolean(params: GridRenderEditCellParams<any, boolean>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.renderEditBoolean = renderEditBoolean;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
13
+ var _xDataGridPremium = require("@mui/x-data-grid-premium");
14
+ var _useRowEditHandlers = require("../hooks/useRowEditHandlers");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function EditBoolean(props) {
17
+ const {
18
+ id,
19
+ value,
20
+ field,
21
+ hasFocus
22
+ } = props;
23
+ const apiRef = (0, _xDataGridPremium.useGridApiContext)();
24
+ const rootProps = (0, _xDataGridPremium.useGridRootProps)();
25
+ const inputRef = React.useRef(null);
26
+ const {
27
+ handleTabKeyDown
28
+ } = (0, _useRowEditHandlers.useRowEditHandlers)({
29
+ id,
30
+ field
31
+ });
32
+ const handleChange = React.useCallback(async event => {
33
+ await apiRef.current.setEditCellValue({
34
+ id,
35
+ field,
36
+ value: event.target.checked
37
+ }, event);
38
+ }, [apiRef, field, id]);
39
+ (0, _useEnhancedEffect.default)(() => {
40
+ if (hasFocus) {
41
+ inputRef.current?.focus();
42
+ }
43
+ }, [hasFocus]);
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
45
+ onKeyDownCapture: handleTabKeyDown,
46
+ style: {
47
+ display: 'flex',
48
+ alignItems: 'center',
49
+ justifyContent: 'center',
50
+ width: '100%',
51
+ height: '100%'
52
+ },
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseCheckbox, (0, _extends2.default)({
54
+ inputRef: inputRef,
55
+ checked: Boolean(value),
56
+ onChange: handleChange,
57
+ size: "small"
58
+ }, rootProps.slotProps?.baseCheckbox))
59
+ });
60
+ }
61
+ function renderEditBoolean(params) {
62
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditBoolean, (0, _extends2.default)({}, params));
63
+ }
@@ -1,3 +1,3 @@
1
- import { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
2
- import { CountryIsoOption } from "../services/static-data.js";
1
+ import type { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
2
+ import { type CountryIsoOption } from "../services/static-data.js";
3
3
  export declare function renderEditCountry(params: GridRenderEditCellParams<CountryIsoOption>): import("react/jsx-runtime").JSX.Element;