@mui/x-data-grid-generator 8.26.1 → 8.27.0
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.
- package/CHANGELOG.md +85 -9
- package/columns/commodities.columns.d.ts +1 -1
- package/columns/commodities.columns.js +2 -0
- package/columns/employees.columns.d.ts +1 -1
- package/columns/employees.columns.js +1 -0
- package/constants/prompts.d.ts +1 -1
- package/esm/columns/commodities.columns.d.ts +1 -1
- package/esm/columns/commodities.columns.js +3 -1
- package/esm/columns/employees.columns.d.ts +1 -1
- package/esm/columns/employees.columns.js +2 -1
- package/esm/constants/prompts.d.ts +1 -1
- package/esm/hooks/serverUtils.d.ts +1 -1
- package/esm/hooks/useBasicDemoData.d.ts +1 -1
- package/esm/hooks/useDemoData.d.ts +4 -4
- package/esm/hooks/useEditDropdownState.d.ts +39 -0
- package/esm/hooks/useEditDropdownState.js +158 -0
- package/esm/hooks/useMockServer.d.ts +1 -1
- package/esm/hooks/useMovieData.d.ts +1 -1
- package/esm/hooks/useQuery.d.ts +2 -2
- package/esm/hooks/useRowEditHandlers.d.ts +25 -0
- package/esm/hooks/useRowEditHandlers.js +84 -0
- package/esm/index.js +1 -1
- package/esm/renderer/index.d.ts +2 -1
- package/esm/renderer/index.js +2 -1
- package/esm/renderer/renderAvatar.d.ts +1 -1
- package/esm/renderer/renderCountry.d.ts +2 -2
- package/esm/renderer/renderEditBoolean.d.ts +2 -0
- package/esm/renderer/renderEditBoolean.js +56 -0
- package/esm/renderer/renderEditCountry.d.ts +2 -2
- package/esm/renderer/renderEditCountry.js +68 -48
- package/esm/renderer/renderEditCurrency.d.ts +1 -1
- package/esm/renderer/renderEditCurrency.js +67 -47
- package/esm/renderer/renderEditIncoterm.d.ts +1 -1
- package/esm/renderer/renderEditIncoterm.js +30 -27
- package/esm/renderer/renderEditProgress.d.ts +1 -1
- package/esm/renderer/renderEditProgress.js +3 -2
- package/esm/renderer/renderEditRating.d.ts +1 -1
- package/esm/renderer/renderEditRating.js +3 -2
- package/esm/renderer/renderEditStatus.d.ts +1 -1
- package/esm/renderer/renderEditStatus.js +30 -28
- package/esm/renderer/renderEmail.d.ts +1 -1
- package/esm/renderer/renderIncoterm.d.ts +1 -1
- package/esm/renderer/renderLink.d.ts +1 -1
- package/esm/renderer/renderPnl.d.ts +1 -1
- package/esm/renderer/renderProgress.d.ts +1 -1
- package/esm/renderer/renderRating.d.ts +1 -1
- package/esm/renderer/renderStatus.d.ts +1 -1
- package/esm/renderer/renderTotalPrice.d.ts +1 -1
- package/esm/services/basic-data-service.d.ts +1 -1
- package/esm/services/gridColDefGenerator.d.ts +1 -1
- package/esm/services/prompt-resolver.d.ts +1 -1
- package/esm/services/random-generator.d.ts +1 -1
- package/esm/services/real-data-service.d.ts +2 -2
- package/esm/services/tree-data-generator.d.ts +2 -2
- package/hooks/serverUtils.d.ts +1 -1
- package/hooks/useBasicDemoData.d.ts +1 -1
- package/hooks/useDemoData.d.ts +4 -4
- package/hooks/useEditDropdownState.d.ts +39 -0
- package/hooks/useEditDropdownState.js +165 -0
- package/hooks/useMockServer.d.ts +1 -1
- package/hooks/useMovieData.d.ts +1 -1
- package/hooks/useQuery.d.ts +2 -2
- package/hooks/useRowEditHandlers.d.ts +25 -0
- package/hooks/useRowEditHandlers.js +90 -0
- package/index.js +1 -1
- package/package.json +5 -5
- package/renderer/index.d.ts +2 -1
- package/renderer/index.js +11 -0
- package/renderer/renderAvatar.d.ts +1 -1
- package/renderer/renderCountry.d.ts +2 -2
- package/renderer/renderEditBoolean.d.ts +2 -0
- package/renderer/renderEditBoolean.js +63 -0
- package/renderer/renderEditCountry.d.ts +2 -2
- package/renderer/renderEditCountry.js +67 -48
- package/renderer/renderEditCurrency.d.ts +1 -1
- package/renderer/renderEditCurrency.js +66 -47
- package/renderer/renderEditIncoterm.d.ts +1 -1
- package/renderer/renderEditIncoterm.js +30 -27
- package/renderer/renderEditProgress.d.ts +1 -1
- package/renderer/renderEditProgress.js +3 -2
- package/renderer/renderEditRating.d.ts +1 -1
- package/renderer/renderEditRating.js +3 -2
- package/renderer/renderEditStatus.d.ts +1 -1
- package/renderer/renderEditStatus.js +30 -28
- package/renderer/renderEmail.d.ts +1 -1
- package/renderer/renderIncoterm.d.ts +1 -1
- package/renderer/renderLink.d.ts +1 -1
- package/renderer/renderPnl.d.ts +1 -1
- package/renderer/renderProgress.d.ts +1 -1
- package/renderer/renderRating.d.ts +1 -1
- package/renderer/renderStatus.d.ts +1 -1
- package/renderer/renderTotalPrice.d.ts +1 -1
- package/services/basic-data-service.d.ts +1 -1
- package/services/gridColDefGenerator.d.ts +1 -1
- package/services/prompt-resolver.d.ts +1 -1
- package/services/random-generator.d.ts +1 -1
- package/services/real-data-service.d.ts +2 -2
- package/services/tree-data-generator.d.ts +2 -2
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
|
|
6
|
+
import { useGridApiContext, useGridRootProps } from '@mui/x-data-grid-premium';
|
|
7
|
+
import { useRowEditHandlers } from "../hooks/useRowEditHandlers.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
function EditBoolean(props) {
|
|
10
|
+
const {
|
|
11
|
+
id,
|
|
12
|
+
value,
|
|
13
|
+
field,
|
|
14
|
+
hasFocus
|
|
15
|
+
} = props;
|
|
16
|
+
const apiRef = useGridApiContext();
|
|
17
|
+
const rootProps = useGridRootProps();
|
|
18
|
+
const inputRef = React.useRef(null);
|
|
19
|
+
const {
|
|
20
|
+
handleTabKeyDown
|
|
21
|
+
} = useRowEditHandlers({
|
|
22
|
+
id,
|
|
23
|
+
field
|
|
24
|
+
});
|
|
25
|
+
const handleChange = React.useCallback(async event => {
|
|
26
|
+
await apiRef.current.setEditCellValue({
|
|
27
|
+
id,
|
|
28
|
+
field,
|
|
29
|
+
value: event.target.checked
|
|
30
|
+
}, event);
|
|
31
|
+
}, [apiRef, field, id]);
|
|
32
|
+
useEnhancedEffect(() => {
|
|
33
|
+
if (hasFocus) {
|
|
34
|
+
inputRef.current?.focus();
|
|
35
|
+
}
|
|
36
|
+
}, [hasFocus]);
|
|
37
|
+
return /*#__PURE__*/_jsx("div", {
|
|
38
|
+
onKeyDownCapture: handleTabKeyDown,
|
|
39
|
+
style: {
|
|
40
|
+
display: 'flex',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
justifyContent: 'center',
|
|
43
|
+
width: '100%',
|
|
44
|
+
height: '100%'
|
|
45
|
+
},
|
|
46
|
+
children: /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
|
|
47
|
+
inputRef: inputRef,
|
|
48
|
+
checked: Boolean(value),
|
|
49
|
+
onChange: handleChange,
|
|
50
|
+
size: "small"
|
|
51
|
+
}, rootProps.slotProps?.baseCheckbox))
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export function renderEditBoolean(params) {
|
|
55
|
+
return /*#__PURE__*/_jsx(EditBoolean, _extends({}, params));
|
|
56
|
+
}
|
|
@@ -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;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import * as React from 'react';
|
|
3
|
-
import { useGridApiContext } from '@mui/x-data-grid-premium';
|
|
4
5
|
import Autocomplete, { autocompleteClasses } from '@mui/material/Autocomplete';
|
|
5
6
|
import InputBase from '@mui/material/InputBase';
|
|
6
7
|
import Box from '@mui/material/Box';
|
|
7
8
|
import { styled } from '@mui/material/styles';
|
|
8
9
|
import { COUNTRY_ISO_OPTIONS } from "../services/static-data.js";
|
|
10
|
+
import { useEditDropdownState } from "../hooks/useEditDropdownState.js";
|
|
9
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
12
|
import { createElement as _createElement } from "react";
|
|
11
13
|
const StyledAutocomplete = styled(Autocomplete)(({
|
|
@@ -25,55 +27,73 @@ function EditCountry(props) {
|
|
|
25
27
|
const {
|
|
26
28
|
id,
|
|
27
29
|
value,
|
|
28
|
-
field
|
|
30
|
+
field,
|
|
31
|
+
hasFocus
|
|
29
32
|
} = props;
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return /*#__PURE__*/_jsx(StyledAutocomplete, {
|
|
43
|
-
value: value,
|
|
44
|
-
onChange: handleChange,
|
|
45
|
-
options: COUNTRY_ISO_OPTIONS,
|
|
46
|
-
getOptionLabel: option => option.label,
|
|
47
|
-
autoHighlight: true,
|
|
48
|
-
fullWidth: true,
|
|
49
|
-
open: true,
|
|
50
|
-
disableClearable: true,
|
|
51
|
-
renderOption: (optionProps, option) => /*#__PURE__*/_createElement(Box, _extends({
|
|
52
|
-
component: "li",
|
|
53
|
-
sx: {
|
|
54
|
-
'& > img': {
|
|
55
|
-
mr: 1.5,
|
|
56
|
-
flexShrink: 0
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}, optionProps, {
|
|
60
|
-
key: option.code
|
|
61
|
-
}), /*#__PURE__*/_jsx("img", {
|
|
62
|
-
loading: "lazy",
|
|
63
|
-
width: "20",
|
|
64
|
-
src: `https://flagcdn.com/w20/${option.code.toLowerCase()}.png`,
|
|
65
|
-
srcSet: `https://flagcdn.com/w40/${option.code.toLowerCase()}.png 2x`,
|
|
66
|
-
alt: ""
|
|
67
|
-
}), option.label),
|
|
68
|
-
renderInput: params => /*#__PURE__*/_jsx(InputBase, _extends({
|
|
69
|
-
autoFocus: true,
|
|
70
|
-
fullWidth: true,
|
|
71
|
-
id: params.id,
|
|
72
|
-
inputProps: _extends({}, params.inputProps, {
|
|
73
|
-
autoComplete: 'new-password' // disable autocomplete and autofill
|
|
74
|
-
})
|
|
75
|
-
}, params.InputProps))
|
|
33
|
+
const {
|
|
34
|
+
open,
|
|
35
|
+
setOpen,
|
|
36
|
+
inputRef,
|
|
37
|
+
shouldAutoOpen,
|
|
38
|
+
handleAutocompleteInputKeyDown,
|
|
39
|
+
handleAutocompleteWrapperKeyDown,
|
|
40
|
+
createAutocompleteChangeHandler
|
|
41
|
+
} = useEditDropdownState({
|
|
42
|
+
id,
|
|
43
|
+
field,
|
|
44
|
+
hasFocus
|
|
76
45
|
});
|
|
46
|
+
const handleChange = createAutocompleteChangeHandler();
|
|
47
|
+
return (
|
|
48
|
+
/*#__PURE__*/
|
|
49
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
50
|
+
_jsx("div", {
|
|
51
|
+
onKeyDown: handleAutocompleteWrapperKeyDown,
|
|
52
|
+
style: {
|
|
53
|
+
height: '100%',
|
|
54
|
+
width: '100%'
|
|
55
|
+
},
|
|
56
|
+
children: /*#__PURE__*/_jsx(StyledAutocomplete, {
|
|
57
|
+
value: value,
|
|
58
|
+
onChange: handleChange,
|
|
59
|
+
options: COUNTRY_ISO_OPTIONS,
|
|
60
|
+
getOptionLabel: option => option.label,
|
|
61
|
+
autoHighlight: true,
|
|
62
|
+
fullWidth: true,
|
|
63
|
+
open: open,
|
|
64
|
+
onOpen: () => setOpen(true),
|
|
65
|
+
onClose: () => setOpen(false),
|
|
66
|
+
disableClearable: true,
|
|
67
|
+
renderOption: (optionProps, option) => /*#__PURE__*/_createElement(Box, _extends({
|
|
68
|
+
component: "li",
|
|
69
|
+
sx: {
|
|
70
|
+
'& > img': {
|
|
71
|
+
mr: 1.5,
|
|
72
|
+
flexShrink: 0
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}, optionProps, {
|
|
76
|
+
key: option.code
|
|
77
|
+
}), /*#__PURE__*/_jsx("img", {
|
|
78
|
+
loading: "lazy",
|
|
79
|
+
width: "20",
|
|
80
|
+
src: `https://flagcdn.com/w20/${option.code.toLowerCase()}.png`,
|
|
81
|
+
srcSet: `https://flagcdn.com/w40/${option.code.toLowerCase()}.png 2x`,
|
|
82
|
+
alt: ""
|
|
83
|
+
}), option.label),
|
|
84
|
+
renderInput: params => /*#__PURE__*/_jsx(InputBase, _extends({
|
|
85
|
+
autoFocus: shouldAutoOpen,
|
|
86
|
+
fullWidth: true,
|
|
87
|
+
id: params.id,
|
|
88
|
+
inputRef: inputRef,
|
|
89
|
+
onKeyDown: handleAutocompleteInputKeyDown,
|
|
90
|
+
inputProps: _extends({}, params.inputProps, {
|
|
91
|
+
autoComplete: 'new-password' // disable autocomplete and autofill
|
|
92
|
+
})
|
|
93
|
+
}, params.InputProps))
|
|
94
|
+
})
|
|
95
|
+
})
|
|
96
|
+
);
|
|
77
97
|
}
|
|
78
98
|
export function renderEditCountry(params) {
|
|
79
99
|
return /*#__PURE__*/_jsx(EditCountry, _extends({}, 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,11 +1,13 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import * as React from 'react';
|
|
3
|
-
import { useGridApiContext } from '@mui/x-data-grid-premium';
|
|
4
5
|
import Autocomplete, { autocompleteClasses } from '@mui/material/Autocomplete';
|
|
5
6
|
import InputBase from '@mui/material/InputBase';
|
|
6
7
|
import Box from '@mui/material/Box';
|
|
7
8
|
import { styled } from '@mui/material/styles';
|
|
8
9
|
import { CURRENCY_OPTIONS } from "../services/static-data.js";
|
|
10
|
+
import { useEditDropdownState } from "../hooks/useEditDropdownState.js";
|
|
9
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
12
|
const StyledAutocomplete = styled(Autocomplete)(({
|
|
11
13
|
theme
|
|
@@ -24,54 +26,72 @@ function EditCurrency(props) {
|
|
|
24
26
|
const {
|
|
25
27
|
id,
|
|
26
28
|
value,
|
|
27
|
-
field
|
|
29
|
+
field,
|
|
30
|
+
hasFocus
|
|
28
31
|
} = props;
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return /*#__PURE__*/_jsx(StyledAutocomplete, {
|
|
42
|
-
value: value,
|
|
43
|
-
onChange: handleChange,
|
|
44
|
-
options: CURRENCY_OPTIONS,
|
|
45
|
-
autoHighlight: true,
|
|
46
|
-
fullWidth: true,
|
|
47
|
-
open: true,
|
|
48
|
-
disableClearable: true,
|
|
49
|
-
renderOption: (optionProps, option) => /*#__PURE__*/_jsxs(Box, _extends({
|
|
50
|
-
component: "li",
|
|
51
|
-
sx: {
|
|
52
|
-
'& > img': {
|
|
53
|
-
mr: 1.5,
|
|
54
|
-
flexShrink: 0
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}, optionProps, {
|
|
58
|
-
children: [/*#__PURE__*/_jsx("img", {
|
|
59
|
-
loading: "lazy",
|
|
60
|
-
width: "20",
|
|
61
|
-
src: `https://flagcdn.com/w20/${option.slice(0, -1).toLowerCase()}.png`,
|
|
62
|
-
srcSet: `https://flagcdn.com/w40/${option.slice(0, -1).toLowerCase()}.png 2x`,
|
|
63
|
-
alt: ""
|
|
64
|
-
}), option]
|
|
65
|
-
})),
|
|
66
|
-
renderInput: params => /*#__PURE__*/_jsx(InputBase, _extends({
|
|
67
|
-
autoFocus: true,
|
|
68
|
-
fullWidth: true,
|
|
69
|
-
id: params.id,
|
|
70
|
-
inputProps: _extends({}, params.inputProps, {
|
|
71
|
-
autoComplete: 'new-password' // disable autocomplete and autofill
|
|
72
|
-
})
|
|
73
|
-
}, params.InputProps))
|
|
32
|
+
const {
|
|
33
|
+
open,
|
|
34
|
+
setOpen,
|
|
35
|
+
inputRef,
|
|
36
|
+
shouldAutoOpen,
|
|
37
|
+
handleAutocompleteInputKeyDown,
|
|
38
|
+
handleAutocompleteWrapperKeyDown,
|
|
39
|
+
createAutocompleteChangeHandler
|
|
40
|
+
} = useEditDropdownState({
|
|
41
|
+
id,
|
|
42
|
+
field,
|
|
43
|
+
hasFocus
|
|
74
44
|
});
|
|
45
|
+
const handleChange = createAutocompleteChangeHandler(val => val.toUpperCase());
|
|
46
|
+
return (
|
|
47
|
+
/*#__PURE__*/
|
|
48
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
49
|
+
_jsx("div", {
|
|
50
|
+
onKeyDown: handleAutocompleteWrapperKeyDown,
|
|
51
|
+
style: {
|
|
52
|
+
height: '100%',
|
|
53
|
+
width: '100%'
|
|
54
|
+
},
|
|
55
|
+
children: /*#__PURE__*/_jsx(StyledAutocomplete, {
|
|
56
|
+
value: value,
|
|
57
|
+
onChange: handleChange,
|
|
58
|
+
options: CURRENCY_OPTIONS,
|
|
59
|
+
autoHighlight: true,
|
|
60
|
+
fullWidth: true,
|
|
61
|
+
open: open,
|
|
62
|
+
onOpen: () => setOpen(true),
|
|
63
|
+
onClose: () => setOpen(false),
|
|
64
|
+
disableClearable: true,
|
|
65
|
+
renderOption: (optionProps, option) => /*#__PURE__*/_jsxs(Box, _extends({
|
|
66
|
+
component: "li",
|
|
67
|
+
sx: {
|
|
68
|
+
'& > img': {
|
|
69
|
+
mr: 1.5,
|
|
70
|
+
flexShrink: 0
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}, optionProps, {
|
|
74
|
+
children: [/*#__PURE__*/_jsx("img", {
|
|
75
|
+
loading: "lazy",
|
|
76
|
+
width: "20",
|
|
77
|
+
src: `https://flagcdn.com/w20/${option.slice(0, -1).toLowerCase()}.png`,
|
|
78
|
+
srcSet: `https://flagcdn.com/w40/${option.slice(0, -1).toLowerCase()}.png 2x`,
|
|
79
|
+
alt: ""
|
|
80
|
+
}), option]
|
|
81
|
+
})),
|
|
82
|
+
renderInput: params => /*#__PURE__*/_jsx(InputBase, _extends({
|
|
83
|
+
autoFocus: shouldAutoOpen,
|
|
84
|
+
fullWidth: true,
|
|
85
|
+
id: params.id,
|
|
86
|
+
inputRef: inputRef,
|
|
87
|
+
onKeyDown: handleAutocompleteInputKeyDown,
|
|
88
|
+
inputProps: _extends({}, params.inputProps, {
|
|
89
|
+
autoComplete: 'new-password' // disable autocomplete and autofill
|
|
90
|
+
})
|
|
91
|
+
}, params.InputProps))
|
|
92
|
+
})
|
|
93
|
+
})
|
|
94
|
+
);
|
|
75
95
|
}
|
|
76
96
|
export function renderEditCurrency(params) {
|
|
77
97
|
return /*#__PURE__*/_jsx(EditCurrency, _extends({}, 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,44 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import
|
|
4
|
+
import * as React from 'react';
|
|
3
5
|
import Select from '@mui/material/Select';
|
|
4
6
|
import MenuItem from '@mui/material/MenuItem';
|
|
5
7
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
6
8
|
import ListItemText from '@mui/material/ListItemText';
|
|
7
9
|
import { INCOTERM_OPTIONS } from "../services/static-data.js";
|
|
10
|
+
import { useEditDropdownState } from "../hooks/useEditDropdownState.js";
|
|
8
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
12
|
function EditIncoterm(props) {
|
|
10
13
|
const {
|
|
11
14
|
id,
|
|
12
15
|
value,
|
|
13
|
-
field
|
|
16
|
+
field,
|
|
17
|
+
hasFocus
|
|
14
18
|
} = props;
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
29
|
-
const
|
|
30
|
-
if (reason === 'backdropClick') {
|
|
31
|
-
const params = apiRef.current.getCellParams(id, field);
|
|
32
|
-
apiRef.current.publishEvent('cellEditStop', _extends({}, params, {
|
|
33
|
-
reason: GridCellEditStopReasons.cellFocusOut
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
};
|
|
19
|
+
const {
|
|
20
|
+
open,
|
|
21
|
+
setOpen,
|
|
22
|
+
inputRef,
|
|
23
|
+
shouldAutoOpen,
|
|
24
|
+
handleSelectKeyDown,
|
|
25
|
+
handleSelectMenuClose,
|
|
26
|
+
handleSelectMenuListKeyDown,
|
|
27
|
+
createSelectChangeHandler
|
|
28
|
+
} = useEditDropdownState({
|
|
29
|
+
id,
|
|
30
|
+
field,
|
|
31
|
+
hasFocus
|
|
32
|
+
});
|
|
33
|
+
const handleChange = createSelectChangeHandler(event => event.target.value);
|
|
37
34
|
return /*#__PURE__*/_jsx(Select, {
|
|
38
35
|
value: value,
|
|
39
36
|
onChange: handleChange,
|
|
37
|
+
onKeyDown: handleSelectKeyDown,
|
|
38
|
+
onOpen: () => setOpen(true),
|
|
39
|
+
inputRef: inputRef,
|
|
40
40
|
MenuProps: {
|
|
41
|
-
onClose:
|
|
41
|
+
onClose: handleSelectMenuClose,
|
|
42
|
+
MenuListProps: {
|
|
43
|
+
onKeyDown: handleSelectMenuListKeyDown
|
|
44
|
+
}
|
|
42
45
|
},
|
|
43
46
|
sx: {
|
|
44
47
|
height: '100%',
|
|
@@ -48,9 +51,9 @@ function EditIncoterm(props) {
|
|
|
48
51
|
pl: 1
|
|
49
52
|
}
|
|
50
53
|
},
|
|
51
|
-
autoFocus:
|
|
54
|
+
autoFocus: shouldAutoOpen,
|
|
52
55
|
fullWidth: true,
|
|
53
|
-
open:
|
|
56
|
+
open: open,
|
|
54
57
|
children: INCOTERM_OPTIONS.map(option => {
|
|
55
58
|
const tooltip = option.slice(option.indexOf('(') + 1, option.indexOf(')'));
|
|
56
59
|
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;
|
|
@@ -64,7 +64,8 @@ function EditProgress(props) {
|
|
|
64
64
|
const {
|
|
65
65
|
id,
|
|
66
66
|
value,
|
|
67
|
-
field
|
|
67
|
+
field,
|
|
68
|
+
hasFocus
|
|
68
69
|
} = props;
|
|
69
70
|
const [valueState, setValueState] = React.useState(Number(value));
|
|
70
71
|
const apiRef = useGridApiContext();
|
|
@@ -84,7 +85,7 @@ function EditProgress(props) {
|
|
|
84
85
|
setValueState(Number(value));
|
|
85
86
|
}, [value]);
|
|
86
87
|
const handleRef = element => {
|
|
87
|
-
if (element) {
|
|
88
|
+
if (element && hasFocus) {
|
|
88
89
|
element.querySelector('[type="range"]').focus();
|
|
89
90
|
}
|
|
90
91
|
};
|
|
@@ -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;
|
|
@@ -10,7 +10,8 @@ function EditRating(props) {
|
|
|
10
10
|
const {
|
|
11
11
|
id,
|
|
12
12
|
value,
|
|
13
|
-
field
|
|
13
|
+
field,
|
|
14
|
+
hasFocus
|
|
14
15
|
} = props;
|
|
15
16
|
const apiRef = useGridApiContext();
|
|
16
17
|
const changedThroughKeyboard = React.useRef(false);
|
|
@@ -29,7 +30,7 @@ function EditRating(props) {
|
|
|
29
30
|
changedThroughKeyboard.current = false;
|
|
30
31
|
};
|
|
31
32
|
const handleRef = element => {
|
|
32
|
-
if (element) {
|
|
33
|
+
if (element && hasFocus) {
|
|
33
34
|
if (value) {
|
|
34
35
|
element.querySelector(`input[value="${Math.round(value)}"]`).focus();
|
|
35
36
|
} 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,5 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import
|
|
4
|
+
import * as React from 'react';
|
|
3
5
|
import Select from '@mui/material/Select';
|
|
4
6
|
import MenuItem from '@mui/material/MenuItem';
|
|
5
7
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
@@ -9,41 +11,41 @@ import InfoIcon from '@mui/icons-material/Info';
|
|
|
9
11
|
import AutorenewIcon from '@mui/icons-material/Autorenew';
|
|
10
12
|
import DoneIcon from '@mui/icons-material/Done';
|
|
11
13
|
import { STATUS_OPTIONS } from "../services/static-data.js";
|
|
14
|
+
import { useEditDropdownState } from "../hooks/useEditDropdownState.js";
|
|
12
15
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
16
|
function EditStatus(props) {
|
|
14
17
|
const {
|
|
15
18
|
id,
|
|
16
19
|
value,
|
|
17
|
-
field
|
|
20
|
+
field,
|
|
21
|
+
hasFocus
|
|
18
22
|
} = props;
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const handleClose = (event, reason) => {
|
|
35
|
-
if (reason === 'backdropClick') {
|
|
36
|
-
const params = apiRef.current.getCellParams(id, field);
|
|
37
|
-
apiRef.current.publishEvent('cellEditStop', _extends({}, params, {
|
|
38
|
-
reason: GridCellEditStopReasons.cellFocusOut
|
|
39
|
-
}));
|
|
40
|
-
}
|
|
41
|
-
};
|
|
23
|
+
const {
|
|
24
|
+
open,
|
|
25
|
+
setOpen,
|
|
26
|
+
inputRef,
|
|
27
|
+
shouldAutoOpen,
|
|
28
|
+
handleSelectKeyDown,
|
|
29
|
+
handleSelectMenuClose,
|
|
30
|
+
handleSelectMenuListKeyDown,
|
|
31
|
+
createSelectChangeHandler
|
|
32
|
+
} = useEditDropdownState({
|
|
33
|
+
id,
|
|
34
|
+
field,
|
|
35
|
+
hasFocus
|
|
36
|
+
});
|
|
37
|
+
const handleChange = createSelectChangeHandler(event => event.target.value);
|
|
42
38
|
return /*#__PURE__*/_jsx(Select, {
|
|
43
39
|
value: value,
|
|
44
40
|
onChange: handleChange,
|
|
41
|
+
onKeyDown: handleSelectKeyDown,
|
|
42
|
+
onOpen: () => setOpen(true),
|
|
43
|
+
inputRef: inputRef,
|
|
45
44
|
MenuProps: {
|
|
46
|
-
onClose:
|
|
45
|
+
onClose: handleSelectMenuClose,
|
|
46
|
+
MenuListProps: {
|
|
47
|
+
onKeyDown: handleSelectMenuListKeyDown
|
|
48
|
+
}
|
|
47
49
|
},
|
|
48
50
|
sx: {
|
|
49
51
|
height: '100%',
|
|
@@ -53,9 +55,9 @@ function EditStatus(props) {
|
|
|
53
55
|
pl: 1
|
|
54
56
|
}
|
|
55
57
|
},
|
|
56
|
-
autoFocus:
|
|
58
|
+
autoFocus: shouldAutoOpen,
|
|
57
59
|
fullWidth: true,
|
|
58
|
-
open:
|
|
60
|
+
open: open,
|
|
59
61
|
children: STATUS_OPTIONS.map(option => {
|
|
60
62
|
let IconComponent = null;
|
|
61
63
|
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,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,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
|