@mui/x-data-grid-generator 6.0.0-alpha.7 → 6.0.0-alpha.9

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 (117) hide show
  1. package/CHANGELOG.md +255 -15
  2. package/columns/commodities.columns.js +0 -1
  3. package/columns/employees.columns.js +0 -1
  4. package/hooks/useDemoData.js +9 -31
  5. package/hooks/useMovieData.d.ts +1 -0
  6. package/hooks/useMovieData.js +35 -1
  7. package/hooks/useQuery.js +6 -34
  8. package/index.js +1 -1
  9. package/legacy/columns/commodities.columns.js +0 -1
  10. package/legacy/columns/employees.columns.js +0 -2
  11. package/legacy/hooks/useBasicDemoData.js +6 -7
  12. package/legacy/hooks/useDemoData.js +28 -70
  13. package/legacy/hooks/useMovieData.js +35 -2
  14. package/legacy/hooks/useQuery.js +27 -64
  15. package/legacy/index.js +1 -1
  16. package/legacy/renderer/renderAvatar.js +0 -1
  17. package/legacy/renderer/renderCountry.js +3 -4
  18. package/legacy/renderer/renderEditCountry.js +2 -8
  19. package/legacy/renderer/renderEditCurrency.js +2 -8
  20. package/legacy/renderer/renderEditIncoterm.js +2 -10
  21. package/legacy/renderer/renderEditProgress.js +8 -18
  22. package/legacy/renderer/renderEditRating.js +2 -10
  23. package/legacy/renderer/renderEditStatus.js +2 -15
  24. package/legacy/renderer/renderEmail.js +0 -1
  25. package/legacy/renderer/renderIncoterm.js +0 -2
  26. package/legacy/renderer/renderLink.js +0 -2
  27. package/legacy/renderer/renderPnl.js +0 -3
  28. package/legacy/renderer/renderProgress.js +4 -5
  29. package/legacy/renderer/renderRating.js +3 -4
  30. package/legacy/renderer/renderStatus.js +8 -13
  31. package/legacy/renderer/renderTotalPrice.js +5 -6
  32. package/legacy/services/asyncWorker.js +4 -7
  33. package/legacy/services/basic-data-service.js +0 -5
  34. package/legacy/services/random-generator.js +6 -20
  35. package/legacy/services/real-data-service.js +0 -9
  36. package/legacy/services/tree-data-generator.js +6 -22
  37. package/modern/columns/commodities.columns.js +0 -1
  38. package/modern/columns/employees.columns.js +0 -1
  39. package/modern/hooks/useDemoData.js +9 -27
  40. package/modern/hooks/useMovieData.js +35 -1
  41. package/modern/hooks/useQuery.js +6 -32
  42. package/modern/index.js +1 -1
  43. package/modern/renderer/renderAvatar.js +0 -1
  44. package/modern/renderer/renderCountry.js +3 -4
  45. package/modern/renderer/renderEditCountry.js +0 -3
  46. package/modern/renderer/renderEditCurrency.js +0 -3
  47. package/modern/renderer/renderEditIncoterm.js +0 -5
  48. package/modern/renderer/renderEditProgress.js +1 -8
  49. package/modern/renderer/renderEditRating.js +0 -5
  50. package/modern/renderer/renderEditStatus.js +0 -10
  51. package/modern/renderer/renderIncoterm.js +0 -2
  52. package/modern/renderer/renderLink.js +0 -2
  53. package/modern/renderer/renderPnl.js +0 -3
  54. package/modern/renderer/renderProgress.js +4 -5
  55. package/modern/renderer/renderRating.js +3 -4
  56. package/modern/renderer/renderStatus.js +8 -13
  57. package/modern/renderer/renderTotalPrice.js +5 -6
  58. package/modern/services/asyncWorker.js +2 -4
  59. package/modern/services/basic-data-service.js +0 -5
  60. package/modern/services/random-generator.js +6 -19
  61. package/modern/services/real-data-service.js +0 -9
  62. package/modern/services/tree-data-generator.js +0 -14
  63. package/node/columns/commodities.columns.js +1 -8
  64. package/node/columns/employees.columns.js +1 -8
  65. package/node/columns/index.js +0 -4
  66. package/node/hooks/index.js +0 -8
  67. package/node/hooks/useBasicDemoData.js +0 -6
  68. package/node/hooks/useDemoData.js +17 -62
  69. package/node/hooks/useMovieData.js +35 -3
  70. package/node/hooks/useQuery.js +8 -48
  71. package/node/index.js +1 -9
  72. package/node/renderer/index.js +0 -32
  73. package/node/renderer/renderAvatar.js +0 -8
  74. package/node/renderer/renderCountry.js +3 -12
  75. package/node/renderer/renderEditCountry.js +0 -16
  76. package/node/renderer/renderEditCurrency.js +0 -16
  77. package/node/renderer/renderEditIncoterm.js +0 -17
  78. package/node/renderer/renderEditProgress.js +2 -22
  79. package/node/renderer/renderEditRating.js +0 -14
  80. package/node/renderer/renderEditStatus.js +0 -26
  81. package/node/renderer/renderEmail.js +1 -9
  82. package/node/renderer/renderIncoterm.js +0 -12
  83. package/node/renderer/renderLink.js +0 -9
  84. package/node/renderer/renderPnl.js +0 -12
  85. package/node/renderer/renderProgress.js +4 -14
  86. package/node/renderer/renderRating.js +3 -13
  87. package/node/renderer/renderStatus.js +8 -26
  88. package/node/renderer/renderTotalPrice.js +5 -15
  89. package/node/services/asyncWorker.js +2 -5
  90. package/node/services/basic-data-service.js +0 -7
  91. package/node/services/index.js +0 -8
  92. package/node/services/random-generator.js +7 -105
  93. package/node/services/real-data-service.js +0 -12
  94. package/node/services/static-data.js +0 -2
  95. package/node/services/tree-data-generator.js +1 -22
  96. package/package.json +5 -5
  97. package/renderer/renderAvatar.js +0 -1
  98. package/renderer/renderCountry.js +3 -4
  99. package/renderer/renderEditCountry.js +0 -3
  100. package/renderer/renderEditCurrency.js +0 -3
  101. package/renderer/renderEditIncoterm.js +0 -5
  102. package/renderer/renderEditProgress.js +1 -8
  103. package/renderer/renderEditRating.js +0 -5
  104. package/renderer/renderEditStatus.js +0 -10
  105. package/renderer/renderEmail.js +0 -1
  106. package/renderer/renderIncoterm.js +0 -2
  107. package/renderer/renderLink.js +0 -2
  108. package/renderer/renderPnl.js +0 -3
  109. package/renderer/renderProgress.js +4 -5
  110. package/renderer/renderRating.js +3 -4
  111. package/renderer/renderStatus.js +8 -13
  112. package/renderer/renderTotalPrice.js +5 -6
  113. package/services/asyncWorker.js +2 -4
  114. package/services/basic-data-service.js +0 -5
  115. package/services/random-generator.js +6 -20
  116. package/services/real-data-service.js +0 -9
  117. package/services/tree-data-generator.js +0 -15
@@ -8,7 +8,6 @@ import ListItemText from '@mui/material/ListItemText';
8
8
  import { INCOTERM_OPTIONS } from '../services/static-data';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
11
-
12
11
  function EditIncoterm(props) {
13
12
  const {
14
13
  id,
@@ -16,7 +15,6 @@ function EditIncoterm(props) {
16
15
  field
17
16
  } = props;
18
17
  const apiRef = useGridApiContext();
19
-
20
18
  const handleChange = async event => {
21
19
  await apiRef.current.setEditCellValue({
22
20
  id,
@@ -28,7 +26,6 @@ function EditIncoterm(props) {
28
26
  field
29
27
  });
30
28
  };
31
-
32
29
  const handleClose = (event, reason) => {
33
30
  if (reason === 'backdropClick') {
34
31
  apiRef.current.stopCellEditMode({
@@ -37,7 +34,6 @@ function EditIncoterm(props) {
37
34
  });
38
35
  }
39
36
  };
40
-
41
37
  return /*#__PURE__*/_jsx(Select, {
42
38
  value: value,
43
39
  onChange: handleChange,
@@ -75,7 +71,6 @@ function EditIncoterm(props) {
75
71
  })
76
72
  });
77
73
  }
78
-
79
74
  export function renderEditIncoterm(params) {
80
75
  return /*#__PURE__*/_jsx(EditIncoterm, _extends({}, params));
81
76
  }
@@ -4,7 +4,7 @@ import clsx from 'clsx';
4
4
  import { useGridApiContext } from '@mui/x-data-grid-premium';
5
5
  import Slider, { sliderClasses } from '@mui/material/Slider';
6
6
  import Tooltip from '@mui/material/Tooltip';
7
- import { debounce } from '@mui/material/utils';
7
+ import { unstable_debounce as debounce } from '@mui/utils';
8
8
  import { alpha, styled } from '@mui/material/styles';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const StyledSlider = styled(Slider)(({
@@ -44,7 +44,6 @@ const StyledSlider = styled(Slider)(({
44
44
  backgroundColor: alpha('#000000', 0.2)
45
45
  }
46
46
  }));
47
-
48
47
  function ValueLabelComponent(props) {
49
48
  const {
50
49
  children,
@@ -59,7 +58,6 @@ function ValueLabelComponent(props) {
59
58
  children: children
60
59
  });
61
60
  }
62
-
63
61
  function EditProgress(props) {
64
62
  const {
65
63
  id,
@@ -76,22 +74,18 @@ function EditProgress(props) {
76
74
  });
77
75
  }, [apiRef, field, id]);
78
76
  const debouncedUpdateCellEditProps = React.useMemo(() => debounce(updateCellEditProps, 60), [updateCellEditProps]);
79
-
80
77
  const handleChange = (event, newValue) => {
81
78
  setValueState(newValue);
82
79
  debouncedUpdateCellEditProps(newValue);
83
80
  };
84
-
85
81
  React.useEffect(() => {
86
82
  setValueState(Number(value));
87
83
  }, [value]);
88
-
89
84
  const handleRef = element => {
90
85
  if (element) {
91
86
  element.querySelector('[type="range"]').focus();
92
87
  }
93
88
  };
94
-
95
89
  return /*#__PURE__*/_jsx(StyledSlider, {
96
90
  ref: handleRef,
97
91
  classes: {
@@ -108,7 +102,6 @@ function EditProgress(props) {
108
102
  valueLabelFormat: newValue => `${(newValue * 100).toLocaleString()} %`
109
103
  });
110
104
  }
111
-
112
105
  export function renderEditProgress(params) {
113
106
  return /*#__PURE__*/_jsx(EditProgress, _extends({}, params));
114
107
  }
@@ -5,7 +5,6 @@ import Rating from '@mui/material/Rating';
5
5
  import { useGridApiContext } from '@mui/x-data-grid-premium';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
-
9
8
  function EditRating(props) {
10
9
  const {
11
10
  id,
@@ -13,7 +12,6 @@ function EditRating(props) {
13
12
  field
14
13
  } = props;
15
14
  const apiRef = useGridApiContext();
16
-
17
15
  const handleChange = async event => {
18
16
  await apiRef.current.setEditCellValue({
19
17
  id,
@@ -25,13 +23,11 @@ function EditRating(props) {
25
23
  field
26
24
  });
27
25
  };
28
-
29
26
  const handleRef = element => {
30
27
  if (element) {
31
28
  element.querySelector(`input[value="${value}"]`).focus();
32
29
  }
33
30
  };
34
-
35
31
  return /*#__PURE__*/_jsxs(Box, {
36
32
  sx: {
37
33
  display: 'flex',
@@ -52,7 +48,6 @@ function EditRating(props) {
52
48
  }), Number(value)]
53
49
  });
54
50
  }
55
-
56
51
  export function renderEditRating(params) {
57
52
  return /*#__PURE__*/_jsx(EditRating, _extends({}, params));
58
53
  }
@@ -12,7 +12,6 @@ import DoneIcon from '@mui/icons-material/Done';
12
12
  import { STATUS_OPTIONS } from '../services/static-data';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
15
-
16
15
  function EditStatus(props) {
17
16
  const {
18
17
  id,
@@ -21,14 +20,12 @@ function EditStatus(props) {
21
20
  } = props;
22
21
  const rootProps = useGridRootProps();
23
22
  const apiRef = useGridApiContext();
24
-
25
23
  const handleChange = async event => {
26
24
  const isValid = await apiRef.current.setEditCellValue({
27
25
  id,
28
26
  field,
29
27
  value: event.target.value
30
28
  });
31
-
32
29
  if (isValid && rootProps.editMode === GridEditModes.Cell) {
33
30
  apiRef.current.stopCellEditMode({
34
31
  id,
@@ -37,7 +34,6 @@ function EditStatus(props) {
37
34
  });
38
35
  }
39
36
  };
40
-
41
37
  const handleClose = (event, reason) => {
42
38
  if (reason === 'backdropClick') {
43
39
  apiRef.current.stopCellEditMode({
@@ -47,7 +43,6 @@ function EditStatus(props) {
47
43
  });
48
44
  }
49
45
  };
50
-
51
46
  return /*#__PURE__*/_jsx(Select, {
52
47
  value: value,
53
48
  onChange: handleChange,
@@ -67,7 +62,6 @@ function EditStatus(props) {
67
62
  open: true,
68
63
  children: STATUS_OPTIONS.map(option => {
69
64
  let IconComponent = null;
70
-
71
65
  if (option === 'Rejected') {
72
66
  IconComponent = ReportProblemIcon;
73
67
  } else if (option === 'Open') {
@@ -77,13 +71,10 @@ function EditStatus(props) {
77
71
  } else if (option === 'Filled') {
78
72
  IconComponent = DoneIcon;
79
73
  }
80
-
81
74
  let label = option;
82
-
83
75
  if (option === 'PartiallyFilled') {
84
76
  label = 'Partially Filled';
85
77
  }
86
-
87
78
  return /*#__PURE__*/_jsxs(MenuItem, {
88
79
  value: option,
89
80
  children: [/*#__PURE__*/_jsx(ListItemIcon, {
@@ -103,7 +94,6 @@ function EditStatus(props) {
103
94
  })
104
95
  });
105
96
  }
106
-
107
97
  export function renderEditStatus(params) {
108
98
  return /*#__PURE__*/_jsx(EditStatus, _extends({}, params));
109
99
  }
@@ -8,11 +8,9 @@ const Incoterm = /*#__PURE__*/React.memo(function Incoterm(props) {
8
8
  const {
9
9
  value
10
10
  } = props;
11
-
12
11
  if (!value) {
13
12
  return null;
14
13
  }
15
-
16
14
  const valueStr = value.toString();
17
15
  const tooltip = valueStr.slice(valueStr.indexOf('(') + 1, valueStr.indexOf(')'));
18
16
  const code = valueStr.slice(0, valueStr.indexOf('(')).trim();
@@ -12,7 +12,6 @@ export const DemoLink = /*#__PURE__*/React.memo(function DemoLink(props) {
12
12
  event.preventDefault();
13
13
  event.stopPropagation();
14
14
  };
15
-
16
15
  return /*#__PURE__*/_jsx(Link, {
17
16
  tabIndex: props.tabIndex,
18
17
  onClick: handleClick,
@@ -24,7 +23,6 @@ export function renderLink(params) {
24
23
  if (params.value == null) {
25
24
  return '';
26
25
  }
27
-
28
26
  return /*#__PURE__*/_jsx(DemoLink, {
29
27
  href: params.value,
30
28
  tabIndex: params.tabIndex,
@@ -14,11 +14,9 @@ const Value = styled('div')(({
14
14
  color: theme.palette.mode === 'light' ? theme.palette.error.dark : theme.palette.error.light
15
15
  }
16
16
  }));
17
-
18
17
  function pnlFormatter(value) {
19
18
  return value < 0 ? `(${Math.abs(value).toLocaleString()})` : value.toLocaleString();
20
19
  }
21
-
22
20
  const Pnl = /*#__PURE__*/React.memo(function Pnl(props) {
23
21
  const {
24
22
  value
@@ -32,7 +30,6 @@ export function renderPnl(params) {
32
30
  if (params.value == null) {
33
31
  return '';
34
32
  }
35
-
36
33
  return /*#__PURE__*/_jsx(Pnl, {
37
34
  value: params.value
38
35
  });
@@ -6,7 +6,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
6
6
  const Root = styled('div')(({
7
7
  theme
8
8
  }) => ({
9
- border: `1px solid ${theme.palette.divider}`,
9
+ border: `1px solid ${(theme.vars || theme).palette.divider}`,
10
10
  position: 'relative',
11
11
  overflow: 'hidden',
12
12
  width: '100%',
@@ -51,14 +51,13 @@ const ProgressBar = /*#__PURE__*/React.memo(function ProgressBar(props) {
51
51
  export function renderProgress(params) {
52
52
  if (params.value == null) {
53
53
  return '';
54
- } // If the aggregated value does not have the same unit as the other cell
55
- // Then we fall back to the default rendering based on `valueGetter` instead of rendering a progress bar.
56
-
54
+ }
57
55
 
56
+ // If the aggregated value does not have the same unit as the other cell
57
+ // Then we fall back to the default rendering based on `valueGetter` instead of rendering a progress bar.
58
58
  if (params.aggregation && !params.aggregation.hasCellUnit) {
59
59
  return null;
60
60
  }
61
-
62
61
  return /*#__PURE__*/_jsx(ProgressBar, {
63
62
  value: params.value
64
63
  });
@@ -26,14 +26,13 @@ const RatingValue = /*#__PURE__*/React.memo(function RatingValue(props) {
26
26
  export function renderRating(params) {
27
27
  if (params.value == null) {
28
28
  return '';
29
- } // If the aggregated value does not have the same unit as the other cell
30
- // Then we fall back to the default rendering based on `valueGetter` instead of rendering the total price UI.
31
-
29
+ }
32
30
 
31
+ // If the aggregated value does not have the same unit as the other cell
32
+ // Then we fall back to the default rendering based on `valueGetter` instead of rendering the total price UI.
33
33
  if (params.aggregation && !params.aggregation.hasCellUnit) {
34
34
  return null;
35
35
  }
36
-
37
36
  return /*#__PURE__*/_jsx(RatingValue, {
38
37
  value: params.value
39
38
  });
@@ -14,20 +14,20 @@ const StyledChip = styled(Chip)(({
14
14
  color: 'inherit'
15
15
  },
16
16
  '&.Open': {
17
- color: theme.palette.info.dark,
18
- border: `1px solid ${theme.palette.info.main}`
17
+ color: (theme.vars || theme).palette.info.dark,
18
+ border: `1px solid ${(theme.vars || theme).palette.info.main}`
19
19
  },
20
20
  '&.Filled': {
21
- color: theme.palette.success.dark,
22
- border: `1px solid ${theme.palette.success.main}`
21
+ color: (theme.vars || theme).palette.success.dark,
22
+ border: `1px solid ${(theme.vars || theme).palette.success.main}`
23
23
  },
24
24
  '&.PartiallyFilled': {
25
- color: theme.palette.warning.dark,
26
- border: `1px solid ${theme.palette.warning.main}`
25
+ color: (theme.vars || theme).palette.warning.dark,
26
+ border: `1px solid ${(theme.vars || theme).palette.warning.main}`
27
27
  },
28
28
  '&.Rejected': {
29
- color: theme.palette.error.dark,
30
- border: `1px solid ${theme.palette.error.main}`
29
+ color: (theme.vars || theme).palette.error.dark,
30
+ border: `1px solid ${(theme.vars || theme).palette.error.main}`
31
31
  }
32
32
  }));
33
33
  const Status = /*#__PURE__*/React.memo(props => {
@@ -35,7 +35,6 @@ const Status = /*#__PURE__*/React.memo(props => {
35
35
  status
36
36
  } = props;
37
37
  let icon = null;
38
-
39
38
  if (status === 'Rejected') {
40
39
  icon = /*#__PURE__*/_jsx(ReportProblemIcon, {
41
40
  className: "icon"
@@ -53,13 +52,10 @@ const Status = /*#__PURE__*/React.memo(props => {
53
52
  className: "icon"
54
53
  });
55
54
  }
56
-
57
55
  let label = status;
58
-
59
56
  if (status === 'PartiallyFilled') {
60
57
  label = 'Partially Filled';
61
58
  }
62
-
63
59
  return /*#__PURE__*/_jsx(StyledChip, {
64
60
  className: status,
65
61
  icon: icon,
@@ -72,7 +68,6 @@ export function renderStatus(params) {
72
68
  if (params.value == null) {
73
69
  return '';
74
70
  }
75
-
76
71
  return /*#__PURE__*/_jsx(Status, {
77
72
  status: params.value
78
73
  });
@@ -14,10 +14,10 @@ const Value = styled('div')(({
14
14
  alignItems: 'center',
15
15
  justifyContent: 'flex-end',
16
16
  '&.good': {
17
- backgroundColor: alpha(theme.palette.success.main, 0.3)
17
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.success.mainChannel} / 0.3)` : alpha(theme.palette.success.main, 0.3)
18
18
  },
19
19
  '&.bad': {
20
- backgroundColor: alpha(theme.palette.error.main, 0.3)
20
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.error.mainChannel} / 0.3)` : alpha(theme.palette.error.main, 0.3)
21
21
  }
22
22
  }));
23
23
  const currencyFormatter = new Intl.NumberFormat('en-US', {
@@ -36,14 +36,13 @@ const TotalPrice = /*#__PURE__*/React.memo(function TotalPrice(props) {
36
36
  export function renderTotalPrice(params) {
37
37
  if (params.value == null) {
38
38
  return '';
39
- } // If the aggregated value does not have the same unit as the other cell
40
- // Then we fall back to the default rendering based on `valueGetter` instead of rendering the total price UI.
41
-
39
+ }
42
40
 
41
+ // If the aggregated value does not have the same unit as the other cell
42
+ // Then we fall back to the default rendering based on `valueGetter` instead of rendering the total price UI.
43
43
  if (params.aggregation && !params.aggregation.hasCellUnit) {
44
44
  return null;
45
45
  }
46
-
47
46
  return /*#__PURE__*/_jsx(TotalPrice, {
48
47
  value: params.value
49
48
  });
@@ -8,22 +8,20 @@ export default function asyncWorker({
8
8
  while ((deadline.timeRemaining() > 0 || deadline.didTimeout) && tasks.current > 0) {
9
9
  work();
10
10
  }
11
-
12
11
  if (tasks.current > 0) {
13
12
  requestIdleCallback(myNonEssentialWork);
14
13
  } else {
15
14
  done();
16
15
  }
17
- }; // Don't use requestIdleCallback if the time is mock, better to run synchronously in such case.
18
-
16
+ };
19
17
 
18
+ // Don't use requestIdleCallback if the time is mock, better to run synchronously in such case.
20
19
  if (typeof requestIdleCallback === 'function' && !requestIdleCallback.clock) {
21
20
  requestIdleCallback(myNonEssentialWork);
22
21
  } else {
23
22
  while (tasks.current > 0) {
24
23
  work();
25
24
  }
26
-
27
25
  done();
28
26
  }
29
27
  }
@@ -2,21 +2,18 @@ export const currencyPairs = ['USDGBP', 'USDEUR', 'GBPEUR', 'JPYUSD', 'MXNUSD',
2
2
  export const getBasicGridData = (rowLength, colLength) => {
3
3
  const data = [];
4
4
  const pricesColLength = colLength - 2;
5
-
6
5
  for (let i = 0; i < rowLength; i += 1) {
7
6
  const idx = i >= currencyPairs.length ? i % currencyPairs.length : i;
8
7
  const model = {
9
8
  id: i,
10
9
  currencyPair: currencyPairs[idx]
11
10
  };
12
-
13
11
  for (let j = 1; j <= pricesColLength; j += 1) {
14
12
  model[`price${j}M`] = Number(`${i.toString()}${j}`); // randomPrice(0.7, 2);
15
13
  }
16
14
 
17
15
  data.push(model);
18
16
  }
19
-
20
17
  const columns = [{
21
18
  field: 'id',
22
19
  headerName: 'id',
@@ -25,7 +22,6 @@ export const getBasicGridData = (rowLength, colLength) => {
25
22
  field: 'currencyPair',
26
23
  headerName: 'Currency Pair'
27
24
  }];
28
-
29
25
  for (let j = 1; j <= pricesColLength; j += 1) {
30
26
  // const y = Math.floor(j / 12);
31
27
  columns.push({
@@ -36,7 +32,6 @@ export const getBasicGridData = (rowLength, colLength) => {
36
32
  }
37
33
 
38
34
  columns.length = colLength; // we cut the array in case < 2;
39
-
40
35
  return {
41
36
  columns,
42
37
  rows: data
@@ -2,84 +2,71 @@ import globalChance from 'chance';
2
2
  import { COLORS, COMMODITY_OPTIONS, CONTRACT_TYPE_OPTIONS, COUNTRY_ISO_OPTIONS, CURRENCY_OPTIONS, INCOTERM_OPTIONS, RATE_TYPE_OPTIONS, STATUS_OPTIONS, TAXCODE_OPTIONS } from './static-data';
3
3
  const chanceId = globalChance();
4
4
  let chance;
5
-
6
5
  if (typeof DISABLE_CHANCE_RANDOM !== 'undefined' && DISABLE_CHANCE_RANDOM) {
7
6
  chance = globalChance(() => 0.5);
8
7
  } else {
9
8
  chance = chanceId;
10
9
  }
11
-
12
10
  /**
13
11
  * Wrap a data generator that returns a string and add a prefix if the value generated has already been given
14
12
  */
15
13
  const uniquenessHandler = generator => (data, context) => {
16
14
  const rawValue = generator(data, context);
17
-
18
15
  if (!context.values) {
19
16
  return rawValue;
20
17
  }
21
-
22
18
  const valueCount = (context.values[rawValue] ?? 0) + 1;
23
19
  context.values[rawValue] = valueCount + 1;
24
-
25
20
  if (valueCount > 1) {
26
21
  return `${rawValue} ${valueCount}`;
27
22
  }
28
-
29
23
  return rawValue;
30
24
  };
31
-
32
25
  function dateFuture(years, refDate) {
33
26
  let date = new Date();
34
-
35
27
  if (typeof refDate !== 'undefined') {
36
28
  date = new Date(Date.parse(refDate));
37
29
  }
38
-
39
30
  const range = {
40
31
  min: 1000,
41
32
  max: (years || 1) * 365 * 24 * 3600 * 1000
42
- }; // some time from now to N years later, in milliseconds
33
+ };
43
34
 
35
+ // some time from now to N years later, in milliseconds
44
36
  const past = date.getTime() + chance.integer(range);
45
37
  date.setTime(past);
46
38
  return date;
47
39
  }
48
-
49
40
  function dateRecent(days, refDate) {
50
41
  let date = new Date();
51
-
52
42
  if (typeof refDate !== 'undefined') {
53
43
  date = new Date(Date.parse(refDate));
54
44
  }
55
-
56
45
  const range = {
57
46
  min: 1000,
58
47
  max: (days || 1) * 24 * 3600 * 1000
59
- }; // some time from now to N days ago, in milliseconds
48
+ };
60
49
 
50
+ // some time from now to N days ago, in milliseconds
61
51
  const past = date.getTime() - chance.integer(range);
62
52
  date.setTime(past);
63
53
  return date;
64
54
  }
65
-
66
55
  function datePast(years, refDate) {
67
56
  let date = new Date();
68
-
69
57
  if (typeof refDate !== 'undefined') {
70
58
  date = new Date(Date.parse(refDate));
71
59
  }
72
-
73
60
  const range = {
74
61
  min: 1000,
75
62
  max: (years || 1) * 365 * 24 * 3600 * 1000
76
- }; // some time from now to N years ago, in milliseconds
63
+ };
77
64
 
65
+ // some time from now to N years ago, in milliseconds
78
66
  const past = date.getTime() - chance.integer(range);
79
67
  date.setTime(past);
80
68
  return date;
81
69
  }
82
-
83
70
  export const random = (min, max) => chance.floating({
84
71
  min,
85
72
  max
@@ -6,35 +6,26 @@ export function getRealGridData(rowLength, columns) {
6
6
  };
7
7
  const rows = [];
8
8
  const indexedValues = {};
9
-
10
9
  function work() {
11
10
  const row = {};
12
-
13
11
  for (let j = 0; j < columns.length; j += 1) {
14
12
  const column = columns[j];
15
-
16
13
  if (column.generateData) {
17
14
  const context = {};
18
-
19
15
  if (column.dataGeneratorUniquenessEnabled) {
20
16
  let fieldValues = indexedValues[column.field];
21
-
22
17
  if (!fieldValues) {
23
18
  fieldValues = {};
24
19
  indexedValues[column.field] = fieldValues;
25
20
  }
26
-
27
21
  context.values = fieldValues;
28
22
  }
29
-
30
23
  row[column.field] = column.generateData(row, context);
31
24
  }
32
25
  }
33
-
34
26
  rows.push(row);
35
27
  tasks.current -= 1;
36
28
  }
37
-
38
29
  const columnVisibilityModel = {};
39
30
  columns.forEach(col => {
40
31
  if (col.hide) {
@@ -7,44 +7,35 @@ export const addTreeDataOptionsToDemoData = (data, options = {}) => {
7
7
  groupingField
8
8
  } = options;
9
9
  const hasTreeData = maxDepth > 1 && groupingField != null;
10
-
11
10
  if (!hasTreeData) {
12
11
  return data;
13
12
  }
14
-
15
13
  if (data.rows.length > 1000) {
16
14
  throw new Error('MUI: useDemoData tree data mode only works up to 1000 rows.');
17
15
  }
18
-
19
16
  const rowsByTreeDepth = {};
20
17
  const rowsCount = data.rows.length;
21
18
  const groupingCol = data.columns.find(col => col.field === options.groupingField);
22
-
23
19
  if (!groupingCol) {
24
20
  throw new Error('MUI: The tree data grouping field does not exist');
25
21
  }
26
-
27
22
  data.initialState.columns.columnVisibilityModel[groupingField] = false;
28
-
29
23
  for (let i = 0; i < rowsCount; i += 1) {
30
24
  const row = data.rows[i];
31
25
  const currentChunk = Math.floor(i * (averageChildren ** maxDepth - 1) / rowsCount) + 1;
32
26
  const currentDepth = Math.floor(Math.log(currentChunk) / Math.log(averageChildren));
33
-
34
27
  if (!rowsByTreeDepth[currentDepth]) {
35
28
  rowsByTreeDepth[currentDepth] = {
36
29
  rows: {},
37
30
  rowIndexes: []
38
31
  };
39
32
  }
40
-
41
33
  rowsByTreeDepth[currentDepth].rows[i] = {
42
34
  value: row,
43
35
  parentIndex: null
44
36
  };
45
37
  rowsByTreeDepth[currentDepth].rowIndexes.push(i);
46
38
  }
47
-
48
39
  Object.entries(rowsByTreeDepth).forEach(([depthStr, {
49
40
  rows
50
41
  }]) => {
@@ -52,24 +43,19 @@ export const addTreeDataOptionsToDemoData = (data, options = {}) => {
52
43
  Object.values(rows).forEach(row => {
53
44
  const path = [];
54
45
  let previousRow = null;
55
-
56
46
  for (let k = depth; k >= 0; k -= 1) {
57
47
  let rowTemp;
58
-
59
48
  if (k === depth) {
60
49
  if (depth > 0) {
61
50
  row.parentIndex = Number(randomArrayItem(rowsByTreeDepth[depth - 1].rowIndexes));
62
51
  }
63
-
64
52
  rowTemp = row;
65
53
  } else {
66
54
  rowTemp = rowsByTreeDepth[k].rows[previousRow.parentIndex];
67
55
  }
68
-
69
56
  path.unshift(rowTemp.value[groupingField]);
70
57
  previousRow = rowTemp;
71
58
  }
72
-
73
59
  row.value.path = path;
74
60
  });
75
61
  });
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getCommodityColumns = void 0;
7
-
8
7
  var _xDataGridPremium = require("@mui/x-data-grid-premium");
9
-
10
8
  var _services = require("../services");
11
-
12
9
  var _renderer = require("../renderer");
13
-
14
10
  var _staticData = require("../services/static-data");
15
-
16
11
  const getCommodityColumns = (editable = false) => [{
17
12
  field: 'id',
18
13
  generateData: _services.randomId,
@@ -182,12 +177,11 @@ const getCommodityColumns = (editable = false) => [{
182
177
  if (typeof value === 'string') {
183
178
  return _staticData.COUNTRY_ISO_OPTIONS_SORTED.find(country => country.value === value);
184
179
  }
185
-
186
180
  return value;
187
181
  },
188
182
  valueFormatter: ({
189
183
  value
190
- }) => value == null ? void 0 : value.label,
184
+ }) => value?.label,
191
185
  groupingValueGetter: params => params.value.code,
192
186
  sortComparator: (v1, v2, param1, param2) => (0, _xDataGridPremium.gridStringOrNumberComparator)(v1.label, v2.label, param1, param2),
193
187
  editable,
@@ -248,5 +242,4 @@ const getCommodityColumns = (editable = false) => [{
248
242
  width: 150,
249
243
  editable
250
244
  }];
251
-
252
245
  exports.getCommodityColumns = getCommodityColumns;