@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,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
@@ -9,12 +10,12 @@ exports.renderEditCountry = renderEditCountry;
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var React = _react;
12
- var _xDataGridPremium = require("@mui/x-data-grid-premium");
13
13
  var _Autocomplete = _interopRequireWildcard(require("@mui/material/Autocomplete"));
14
14
  var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
15
15
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
16
16
  var _styles = require("@mui/material/styles");
17
17
  var _staticData = require("../services/static-data");
18
+ var _useEditDropdownState = require("../hooks/useEditDropdownState");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  const StyledAutocomplete = (0, _styles.styled)(_Autocomplete.default)(({
20
21
  theme
@@ -33,55 +34,73 @@ function EditCountry(props) {
33
34
  const {
34
35
  id,
35
36
  value,
36
- field
37
+ field,
38
+ hasFocus
37
39
  } = props;
38
- const apiRef = (0, _xDataGridPremium.useGridApiContext)();
39
- const handleChange = React.useCallback(async (event, newValue) => {
40
- await apiRef.current.setEditCellValue({
41
- id,
42
- field,
43
- value: newValue
44
- }, event);
45
- apiRef.current.stopCellEditMode({
46
- id,
47
- field
48
- });
49
- }, [apiRef, field, id]);
50
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledAutocomplete, {
51
- value: value,
52
- onChange: handleChange,
53
- options: _staticData.COUNTRY_ISO_OPTIONS,
54
- getOptionLabel: option => option.label,
55
- autoHighlight: true,
56
- fullWidth: true,
57
- open: true,
58
- disableClearable: true,
59
- renderOption: (optionProps, option) => /*#__PURE__*/(0, _react.createElement)(_Box.default, (0, _extends2.default)({
60
- component: "li",
61
- sx: {
62
- '& > img': {
63
- mr: 1.5,
64
- flexShrink: 0
65
- }
66
- }
67
- }, optionProps, {
68
- key: option.code
69
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
70
- loading: "lazy",
71
- width: "20",
72
- src: `https://flagcdn.com/w20/${option.code.toLowerCase()}.png`,
73
- srcSet: `https://flagcdn.com/w40/${option.code.toLowerCase()}.png 2x`,
74
- alt: ""
75
- }), option.label),
76
- renderInput: params => /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputBase.default, (0, _extends2.default)({
77
- autoFocus: true,
78
- fullWidth: true,
79
- id: params.id,
80
- inputProps: (0, _extends2.default)({}, params.inputProps, {
81
- autoComplete: 'new-password' // disable autocomplete and autofill
82
- })
83
- }, params.InputProps))
40
+ const {
41
+ open,
42
+ setOpen,
43
+ inputRef,
44
+ shouldAutoOpen,
45
+ handleAutocompleteInputKeyDown,
46
+ handleAutocompleteWrapperKeyDown,
47
+ createAutocompleteChangeHandler
48
+ } = (0, _useEditDropdownState.useEditDropdownState)({
49
+ id,
50
+ field,
51
+ hasFocus
84
52
  });
53
+ const handleChange = createAutocompleteChangeHandler();
54
+ return (
55
+ /*#__PURE__*/
56
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
57
+ (0, _jsxRuntime.jsx)("div", {
58
+ onKeyDown: handleAutocompleteWrapperKeyDown,
59
+ style: {
60
+ height: '100%',
61
+ width: '100%'
62
+ },
63
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledAutocomplete, {
64
+ value: value,
65
+ onChange: handleChange,
66
+ options: _staticData.COUNTRY_ISO_OPTIONS,
67
+ getOptionLabel: option => option.label,
68
+ autoHighlight: true,
69
+ fullWidth: true,
70
+ open: open,
71
+ onOpen: () => setOpen(true),
72
+ onClose: () => setOpen(false),
73
+ disableClearable: true,
74
+ renderOption: (optionProps, option) => /*#__PURE__*/(0, _react.createElement)(_Box.default, (0, _extends2.default)({
75
+ component: "li",
76
+ sx: {
77
+ '& > img': {
78
+ mr: 1.5,
79
+ flexShrink: 0
80
+ }
81
+ }
82
+ }, optionProps, {
83
+ key: option.code
84
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
85
+ loading: "lazy",
86
+ width: "20",
87
+ src: `https://flagcdn.com/w20/${option.code.toLowerCase()}.png`,
88
+ srcSet: `https://flagcdn.com/w40/${option.code.toLowerCase()}.png 2x`,
89
+ alt: ""
90
+ }), option.label),
91
+ renderInput: params => /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputBase.default, (0, _extends2.default)({
92
+ autoFocus: shouldAutoOpen,
93
+ fullWidth: true,
94
+ id: params.id,
95
+ inputRef: inputRef,
96
+ onKeyDown: handleAutocompleteInputKeyDown,
97
+ inputProps: (0, _extends2.default)({}, params.inputProps, {
98
+ autoComplete: 'new-password' // disable autocomplete and autofill
99
+ })
100
+ }, params.InputProps))
101
+ })
102
+ })
103
+ );
85
104
  }
86
105
  function renderEditCountry(params) {
87
106
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditCountry, (0, _extends2.default)({}, params));
@@ -1,2 +1,2 @@
1
- import { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderEditCurrency(params: GridRenderEditCellParams<any, string>): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
@@ -8,12 +9,12 @@ Object.defineProperty(exports, "__esModule", {
8
9
  exports.renderEditCurrency = renderEditCurrency;
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var React = _interopRequireWildcard(require("react"));
11
- var _xDataGridPremium = require("@mui/x-data-grid-premium");
12
12
  var _Autocomplete = _interopRequireWildcard(require("@mui/material/Autocomplete"));
13
13
  var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
14
14
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
15
15
  var _styles = require("@mui/material/styles");
16
16
  var _staticData = require("../services/static-data");
17
+ var _useEditDropdownState = require("../hooks/useEditDropdownState");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  const StyledAutocomplete = (0, _styles.styled)(_Autocomplete.default)(({
19
20
  theme
@@ -32,54 +33,72 @@ function EditCurrency(props) {
32
33
  const {
33
34
  id,
34
35
  value,
35
- field
36
+ field,
37
+ hasFocus
36
38
  } = props;
37
- const apiRef = (0, _xDataGridPremium.useGridApiContext)();
38
- const handleChange = React.useCallback(async (event, newValue) => {
39
- await apiRef.current.setEditCellValue({
40
- id,
41
- field,
42
- value: newValue.toUpperCase()
43
- }, event);
44
- apiRef.current.stopCellEditMode({
45
- id,
46
- field
47
- });
48
- }, [apiRef, field, id]);
49
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledAutocomplete, {
50
- value: value,
51
- onChange: handleChange,
52
- options: _staticData.CURRENCY_OPTIONS,
53
- autoHighlight: true,
54
- fullWidth: true,
55
- open: true,
56
- disableClearable: true,
57
- renderOption: (optionProps, option) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, (0, _extends2.default)({
58
- component: "li",
59
- sx: {
60
- '& > img': {
61
- mr: 1.5,
62
- flexShrink: 0
63
- }
64
- }
65
- }, optionProps, {
66
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
67
- loading: "lazy",
68
- width: "20",
69
- src: `https://flagcdn.com/w20/${option.slice(0, -1).toLowerCase()}.png`,
70
- srcSet: `https://flagcdn.com/w40/${option.slice(0, -1).toLowerCase()}.png 2x`,
71
- alt: ""
72
- }), option]
73
- })),
74
- renderInput: params => /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputBase.default, (0, _extends2.default)({
75
- autoFocus: true,
76
- fullWidth: true,
77
- id: params.id,
78
- inputProps: (0, _extends2.default)({}, params.inputProps, {
79
- autoComplete: 'new-password' // disable autocomplete and autofill
80
- })
81
- }, params.InputProps))
39
+ const {
40
+ open,
41
+ setOpen,
42
+ inputRef,
43
+ shouldAutoOpen,
44
+ handleAutocompleteInputKeyDown,
45
+ handleAutocompleteWrapperKeyDown,
46
+ createAutocompleteChangeHandler
47
+ } = (0, _useEditDropdownState.useEditDropdownState)({
48
+ id,
49
+ field,
50
+ hasFocus
82
51
  });
52
+ const handleChange = createAutocompleteChangeHandler(val => val.toUpperCase());
53
+ return (
54
+ /*#__PURE__*/
55
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
56
+ (0, _jsxRuntime.jsx)("div", {
57
+ onKeyDown: handleAutocompleteWrapperKeyDown,
58
+ style: {
59
+ height: '100%',
60
+ width: '100%'
61
+ },
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledAutocomplete, {
63
+ value: value,
64
+ onChange: handleChange,
65
+ options: _staticData.CURRENCY_OPTIONS,
66
+ autoHighlight: true,
67
+ fullWidth: true,
68
+ open: open,
69
+ onOpen: () => setOpen(true),
70
+ onClose: () => setOpen(false),
71
+ disableClearable: true,
72
+ renderOption: (optionProps, option) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, (0, _extends2.default)({
73
+ component: "li",
74
+ sx: {
75
+ '& > img': {
76
+ mr: 1.5,
77
+ flexShrink: 0
78
+ }
79
+ }
80
+ }, optionProps, {
81
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
82
+ loading: "lazy",
83
+ width: "20",
84
+ src: `https://flagcdn.com/w20/${option.slice(0, -1).toLowerCase()}.png`,
85
+ srcSet: `https://flagcdn.com/w40/${option.slice(0, -1).toLowerCase()}.png 2x`,
86
+ alt: ""
87
+ }), option]
88
+ })),
89
+ renderInput: params => /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputBase.default, (0, _extends2.default)({
90
+ autoFocus: shouldAutoOpen,
91
+ fullWidth: true,
92
+ id: params.id,
93
+ inputRef: inputRef,
94
+ onKeyDown: handleAutocompleteInputKeyDown,
95
+ inputProps: (0, _extends2.default)({}, params.inputProps, {
96
+ autoComplete: 'new-password' // disable autocomplete and autofill
97
+ })
98
+ }, params.InputProps))
99
+ })
100
+ })
101
+ );
83
102
  }
84
103
  function renderEditCurrency(params) {
85
104
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditCurrency, (0, _extends2.default)({}, params));
@@ -1,2 +1,2 @@
1
- import { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderEditIncoterm(params: GridRenderEditCellParams<any, string | null>): import("react/jsx-runtime").JSX.Element;
@@ -1,51 +1,54 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
6
  Object.defineProperty(exports, "__esModule", {
5
7
  value: true
6
8
  });
7
9
  exports.renderEditIncoterm = renderEditIncoterm;
8
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _xDataGridPremium = require("@mui/x-data-grid-premium");
11
+ var React = _interopRequireWildcard(require("react"));
10
12
  var _Select = _interopRequireDefault(require("@mui/material/Select"));
11
13
  var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
14
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
15
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
16
  var _staticData = require("../services/static-data");
17
+ var _useEditDropdownState = require("../hooks/useEditDropdownState");
15
18
  var _jsxRuntime = require("react/jsx-runtime");
16
19
  function EditIncoterm(props) {
17
20
  const {
18
21
  id,
19
22
  value,
20
- field
23
+ field,
24
+ hasFocus
21
25
  } = props;
22
- const apiRef = (0, _xDataGridPremium.useGridApiContext)();
23
- const handleChange = async event => {
24
- const isValid = await apiRef.current.setEditCellValue({
25
- id,
26
- field,
27
- value: event.target.value
28
- }, event);
29
- if (isValid) {
30
- const params = apiRef.current.getCellParams(id, field);
31
- apiRef.current.publishEvent('cellEditStop', (0, _extends2.default)({}, params, {
32
- reason: _xDataGridPremium.GridCellEditStopReasons.enterKeyDown
33
- }));
34
- }
35
- };
36
- const handleClose = (event, reason) => {
37
- if (reason === 'backdropClick') {
38
- const params = apiRef.current.getCellParams(id, field);
39
- apiRef.current.publishEvent('cellEditStop', (0, _extends2.default)({}, params, {
40
- reason: _xDataGridPremium.GridCellEditStopReasons.cellFocusOut
41
- }));
42
- }
43
- };
26
+ const {
27
+ open,
28
+ setOpen,
29
+ inputRef,
30
+ shouldAutoOpen,
31
+ handleSelectKeyDown,
32
+ handleSelectMenuClose,
33
+ handleSelectMenuListKeyDown,
34
+ createSelectChangeHandler
35
+ } = (0, _useEditDropdownState.useEditDropdownState)({
36
+ id,
37
+ field,
38
+ hasFocus
39
+ });
40
+ const handleChange = createSelectChangeHandler(event => event.target.value);
44
41
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, {
45
42
  value: value,
46
43
  onChange: handleChange,
44
+ onKeyDown: handleSelectKeyDown,
45
+ onOpen: () => setOpen(true),
46
+ inputRef: inputRef,
47
47
  MenuProps: {
48
- onClose: handleClose
48
+ onClose: handleSelectMenuClose,
49
+ MenuListProps: {
50
+ onKeyDown: handleSelectMenuListKeyDown
51
+ }
49
52
  },
50
53
  sx: {
51
54
  height: '100%',
@@ -55,9 +58,9 @@ function EditIncoterm(props) {
55
58
  pl: 1
56
59
  }
57
60
  },
58
- autoFocus: true,
61
+ autoFocus: shouldAutoOpen,
59
62
  fullWidth: true,
60
- open: true,
63
+ open: open,
61
64
  children: _staticData.INCOTERM_OPTIONS.map(option => {
62
65
  const tooltip = option.slice(option.indexOf('(') + 1, option.indexOf(')'));
63
66
  const code = option.slice(0, option.indexOf('(')).trim();
@@ -1,2 +1,2 @@
1
- import { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
1
+ import { type GridRenderEditCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderEditProgress(params: GridRenderEditCellParams<any, number>): import("react/jsx-runtime").JSX.Element;
@@ -71,7 +71,8 @@ function EditProgress(props) {
71
71
  const {
72
72
  id,
73
73
  value,
74
- field
74
+ field,
75
+ hasFocus
75
76
  } = props;
76
77
  const [valueState, setValueState] = React.useState(Number(value));
77
78
  const apiRef = (0, _xDataGridPremium.useGridApiContext)();
@@ -91,7 +92,7 @@ function EditProgress(props) {
91
92
  setValueState(Number(value));
92
93
  }, [value]);
93
94
  const handleRef = element => {
94
- if (element) {
95
+ if (element && hasFocus) {
95
96
  element.querySelector('[type="range"]').focus();
96
97
  }
97
98
  };
@@ -1,2 +1,2 @@
1
- import { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
1
+ import { type GridRenderEditCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderEditRating(params: GridRenderEditCellParams<any, number>): import("react/jsx-runtime").JSX.Element;
@@ -17,7 +17,8 @@ function EditRating(props) {
17
17
  const {
18
18
  id,
19
19
  value,
20
- field
20
+ field,
21
+ hasFocus
21
22
  } = props;
22
23
  const apiRef = (0, _xDataGridPremium.useGridApiContext)();
23
24
  const changedThroughKeyboard = React.useRef(false);
@@ -36,7 +37,7 @@ function EditRating(props) {
36
37
  changedThroughKeyboard.current = false;
37
38
  };
38
39
  const handleRef = element => {
39
- if (element) {
40
+ if (element && hasFocus) {
40
41
  if (value) {
41
42
  element.querySelector(`input[value="${Math.round(value)}"]`).focus();
42
43
  } else {
@@ -1,2 +1,2 @@
1
- import { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderEditCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderEditStatus(params: GridRenderEditCellParams<any, string>): import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
6
  Object.defineProperty(exports, "__esModule", {
5
7
  value: true
6
8
  });
7
9
  exports.renderEditStatus = renderEditStatus;
8
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _xDataGridPremium = require("@mui/x-data-grid-premium");
11
+ var React = _interopRequireWildcard(require("react"));
10
12
  var _Select = _interopRequireDefault(require("@mui/material/Select"));
11
13
  var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
14
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
@@ -16,41 +18,41 @@ var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
16
18
  var _Autorenew = _interopRequireDefault(require("@mui/icons-material/Autorenew"));
17
19
  var _Done = _interopRequireDefault(require("@mui/icons-material/Done"));
18
20
  var _staticData = require("../services/static-data");
21
+ var _useEditDropdownState = require("../hooks/useEditDropdownState");
19
22
  var _jsxRuntime = require("react/jsx-runtime");
20
23
  function EditStatus(props) {
21
24
  const {
22
25
  id,
23
26
  value,
24
- field
27
+ field,
28
+ hasFocus
25
29
  } = props;
26
- const rootProps = (0, _xDataGridPremium.useGridRootProps)();
27
- const apiRef = (0, _xDataGridPremium.useGridApiContext)();
28
- const handleChange = async event => {
29
- const isValid = await apiRef.current.setEditCellValue({
30
- id,
31
- field,
32
- value: event.target.value
33
- }, event);
34
- if (isValid && rootProps.editMode === _xDataGridPremium.GridEditModes.Cell) {
35
- const params = apiRef.current.getCellParams(id, field);
36
- apiRef.current.publishEvent('cellEditStop', (0, _extends2.default)({}, params, {
37
- reason: _xDataGridPremium.GridCellEditStopReasons.enterKeyDown
38
- }));
39
- }
40
- };
41
- const handleClose = (event, reason) => {
42
- if (reason === 'backdropClick') {
43
- const params = apiRef.current.getCellParams(id, field);
44
- apiRef.current.publishEvent('cellEditStop', (0, _extends2.default)({}, params, {
45
- reason: _xDataGridPremium.GridCellEditStopReasons.cellFocusOut
46
- }));
47
- }
48
- };
30
+ const {
31
+ open,
32
+ setOpen,
33
+ inputRef,
34
+ shouldAutoOpen,
35
+ handleSelectKeyDown,
36
+ handleSelectMenuClose,
37
+ handleSelectMenuListKeyDown,
38
+ createSelectChangeHandler
39
+ } = (0, _useEditDropdownState.useEditDropdownState)({
40
+ id,
41
+ field,
42
+ hasFocus
43
+ });
44
+ const handleChange = createSelectChangeHandler(event => event.target.value);
49
45
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, {
50
46
  value: value,
51
47
  onChange: handleChange,
48
+ onKeyDown: handleSelectKeyDown,
49
+ onOpen: () => setOpen(true),
50
+ inputRef: inputRef,
52
51
  MenuProps: {
53
- onClose: handleClose
52
+ onClose: handleSelectMenuClose,
53
+ MenuListProps: {
54
+ onKeyDown: handleSelectMenuListKeyDown
55
+ }
54
56
  },
55
57
  sx: {
56
58
  height: '100%',
@@ -60,9 +62,9 @@ function EditStatus(props) {
60
62
  pl: 1
61
63
  }
62
64
  },
63
- autoFocus: true,
65
+ autoFocus: shouldAutoOpen,
64
66
  fullWidth: true,
65
- open: true,
67
+ open: open,
66
68
  children: _staticData.STATUS_OPTIONS.map(option => {
67
69
  let IconComponent = null;
68
70
  if (option === 'Rejected') {
@@ -1,2 +1,2 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderEmail(params: GridRenderCellParams<any, string, any>): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderIncoterm(params: GridRenderCellParams<any, string | null, any>): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
3
3
  interface DemoLinkProps {
4
4
  href: string;
5
5
  children: string;
@@ -1,2 +1,2 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderPnl(params: GridRenderCellParams<any, number, any>): "" | import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderProgress(params: GridRenderCellParams<any, number, any>): string | import("react/jsx-runtime").JSX.Element | null;
@@ -1,2 +1,2 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderRating(params: GridRenderCellParams<any, number, any>): "" | import("react/jsx-runtime").JSX.Element | null;
@@ -1,2 +1,2 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderStatus(params: GridRenderCellParams<any, string>): "" | import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- import { GridRenderCellParams } from '@mui/x-data-grid-premium';
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid-premium';
2
2
  export declare function renderTotalPrice(params: GridRenderCellParams<any, number>): "" | import("react/jsx-runtime").JSX.Element | null;
@@ -1,4 +1,4 @@
1
- import { GridColDef, GridRowId } from '@mui/x-data-grid';
1
+ import type { GridColDef, GridRowId } from '@mui/x-data-grid';
2
2
  export declare const currencyPairs: string[];
3
3
  interface GridBasicRowModel {
4
4
  id: GridRowId;
@@ -1,4 +1,4 @@
1
- import { GridColDef } from '@mui/x-data-grid-pro';
1
+ import type { GridColDef } from '@mui/x-data-grid-pro';
2
2
  export interface GridDataGeneratorContext {
3
3
  /**
4
4
  * Values already attributed to this column.
@@ -1,2 +1,2 @@
1
- import { PromptResponse } from '@mui/x-data-grid-premium';
1
+ import type { PromptResponse } from '@mui/x-data-grid-premium';
2
2
  export declare const mockPromptResolver: (query: string, _: string) => Promise<PromptResponse>;
@@ -1,4 +1,4 @@
1
- import { GridDataGeneratorContext } from "./gridColDefGenerator.js";
1
+ import type { GridDataGeneratorContext } from "./gridColDefGenerator.js";
2
2
  type ColumnDataGenerator<Value> = (data: any, context: GridDataGeneratorContext) => Value;
3
3
  export declare const random: (min: number, max: number) => number;
4
4
  export declare const randomInt: (min: number, max: number) => number;
@@ -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