@mui/x-data-grid-generator 6.0.0-alpha.8 → 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 (116) hide show
  1. package/CHANGELOG.md +129 -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.js +0 -1
  6. package/hooks/useQuery.js +6 -34
  7. package/index.js +1 -1
  8. package/legacy/columns/commodities.columns.js +0 -1
  9. package/legacy/columns/employees.columns.js +0 -2
  10. package/legacy/hooks/useBasicDemoData.js +6 -7
  11. package/legacy/hooks/useDemoData.js +28 -70
  12. package/legacy/hooks/useMovieData.js +0 -2
  13. package/legacy/hooks/useQuery.js +27 -64
  14. package/legacy/index.js +1 -1
  15. package/legacy/renderer/renderAvatar.js +0 -1
  16. package/legacy/renderer/renderCountry.js +3 -4
  17. package/legacy/renderer/renderEditCountry.js +2 -8
  18. package/legacy/renderer/renderEditCurrency.js +2 -8
  19. package/legacy/renderer/renderEditIncoterm.js +2 -10
  20. package/legacy/renderer/renderEditProgress.js +7 -17
  21. package/legacy/renderer/renderEditRating.js +2 -10
  22. package/legacy/renderer/renderEditStatus.js +2 -15
  23. package/legacy/renderer/renderEmail.js +0 -1
  24. package/legacy/renderer/renderIncoterm.js +0 -2
  25. package/legacy/renderer/renderLink.js +0 -2
  26. package/legacy/renderer/renderPnl.js +0 -3
  27. package/legacy/renderer/renderProgress.js +4 -5
  28. package/legacy/renderer/renderRating.js +3 -4
  29. package/legacy/renderer/renderStatus.js +8 -13
  30. package/legacy/renderer/renderTotalPrice.js +5 -6
  31. package/legacy/services/asyncWorker.js +4 -7
  32. package/legacy/services/basic-data-service.js +0 -5
  33. package/legacy/services/random-generator.js +6 -20
  34. package/legacy/services/real-data-service.js +0 -9
  35. package/legacy/services/tree-data-generator.js +6 -22
  36. package/modern/columns/commodities.columns.js +0 -1
  37. package/modern/columns/employees.columns.js +0 -1
  38. package/modern/hooks/useDemoData.js +9 -27
  39. package/modern/hooks/useMovieData.js +0 -1
  40. package/modern/hooks/useQuery.js +6 -32
  41. package/modern/index.js +1 -1
  42. package/modern/renderer/renderAvatar.js +0 -1
  43. package/modern/renderer/renderCountry.js +3 -4
  44. package/modern/renderer/renderEditCountry.js +0 -3
  45. package/modern/renderer/renderEditCurrency.js +0 -3
  46. package/modern/renderer/renderEditIncoterm.js +0 -5
  47. package/modern/renderer/renderEditProgress.js +0 -7
  48. package/modern/renderer/renderEditRating.js +0 -5
  49. package/modern/renderer/renderEditStatus.js +0 -10
  50. package/modern/renderer/renderIncoterm.js +0 -2
  51. package/modern/renderer/renderLink.js +0 -2
  52. package/modern/renderer/renderPnl.js +0 -3
  53. package/modern/renderer/renderProgress.js +4 -5
  54. package/modern/renderer/renderRating.js +3 -4
  55. package/modern/renderer/renderStatus.js +8 -13
  56. package/modern/renderer/renderTotalPrice.js +5 -6
  57. package/modern/services/asyncWorker.js +2 -4
  58. package/modern/services/basic-data-service.js +0 -5
  59. package/modern/services/random-generator.js +6 -19
  60. package/modern/services/real-data-service.js +0 -9
  61. package/modern/services/tree-data-generator.js +0 -14
  62. package/node/columns/commodities.columns.js +1 -8
  63. package/node/columns/employees.columns.js +1 -8
  64. package/node/columns/index.js +0 -4
  65. package/node/hooks/index.js +0 -8
  66. package/node/hooks/useBasicDemoData.js +0 -6
  67. package/node/hooks/useDemoData.js +17 -62
  68. package/node/hooks/useMovieData.js +0 -3
  69. package/node/hooks/useQuery.js +8 -48
  70. package/node/index.js +1 -9
  71. package/node/renderer/index.js +0 -32
  72. package/node/renderer/renderAvatar.js +0 -8
  73. package/node/renderer/renderCountry.js +3 -12
  74. package/node/renderer/renderEditCountry.js +0 -16
  75. package/node/renderer/renderEditCurrency.js +0 -16
  76. package/node/renderer/renderEditIncoterm.js +0 -17
  77. package/node/renderer/renderEditProgress.js +0 -20
  78. package/node/renderer/renderEditRating.js +0 -14
  79. package/node/renderer/renderEditStatus.js +0 -26
  80. package/node/renderer/renderEmail.js +1 -9
  81. package/node/renderer/renderIncoterm.js +0 -12
  82. package/node/renderer/renderLink.js +0 -9
  83. package/node/renderer/renderPnl.js +0 -12
  84. package/node/renderer/renderProgress.js +4 -14
  85. package/node/renderer/renderRating.js +3 -13
  86. package/node/renderer/renderStatus.js +8 -26
  87. package/node/renderer/renderTotalPrice.js +5 -15
  88. package/node/services/asyncWorker.js +2 -5
  89. package/node/services/basic-data-service.js +0 -7
  90. package/node/services/index.js +0 -8
  91. package/node/services/random-generator.js +7 -105
  92. package/node/services/real-data-service.js +0 -12
  93. package/node/services/static-data.js +0 -2
  94. package/node/services/tree-data-generator.js +1 -22
  95. package/package.json +4 -4
  96. package/renderer/renderAvatar.js +0 -1
  97. package/renderer/renderCountry.js +3 -4
  98. package/renderer/renderEditCountry.js +0 -3
  99. package/renderer/renderEditCurrency.js +0 -3
  100. package/renderer/renderEditIncoterm.js +0 -5
  101. package/renderer/renderEditProgress.js +0 -7
  102. package/renderer/renderEditRating.js +0 -5
  103. package/renderer/renderEditStatus.js +0 -10
  104. package/renderer/renderEmail.js +0 -1
  105. package/renderer/renderIncoterm.js +0 -2
  106. package/renderer/renderLink.js +0 -2
  107. package/renderer/renderPnl.js +0 -3
  108. package/renderer/renderProgress.js +4 -5
  109. package/renderer/renderRating.js +3 -4
  110. package/renderer/renderStatus.js +8 -13
  111. package/renderer/renderTotalPrice.js +5 -6
  112. package/services/asyncWorker.js +2 -4
  113. package/services/basic-data-service.js +0 -5
  114. package/services/random-generator.js +6 -20
  115. package/services/real-data-service.js +0 -9
  116. package/services/tree-data-generator.js +0 -15
@@ -6,35 +6,26 @@ export function getRealGridData(rowLength, columns) {
6
6
  };
7
7
  var rows = [];
8
8
  var indexedValues = {};
9
-
10
9
  function work() {
11
10
  var row = {};
12
-
13
11
  for (var j = 0; j < columns.length; j += 1) {
14
12
  var column = columns[j];
15
-
16
13
  if (column.generateData) {
17
14
  var context = {};
18
-
19
15
  if (column.dataGeneratorUniquenessEnabled) {
20
16
  var 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
  var columnVisibilityModel = {};
39
30
  columns.forEach(function (col) {
40
31
  if (col.hide) {
@@ -3,81 +3,65 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import { randomArrayItem } from './random-generator';
4
4
  export var addTreeDataOptionsToDemoData = function addTreeDataOptionsToDemoData(data) {
5
5
  var _groupingCol$headerNa;
6
-
7
6
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
8
7
  var _options$averageChild = options.averageChildren,
9
- averageChildren = _options$averageChild === void 0 ? 2 : _options$averageChild,
10
- _options$maxDepth = options.maxDepth,
11
- maxDepth = _options$maxDepth === void 0 ? 1 : _options$maxDepth,
12
- groupingField = options.groupingField;
8
+ averageChildren = _options$averageChild === void 0 ? 2 : _options$averageChild,
9
+ _options$maxDepth = options.maxDepth,
10
+ maxDepth = _options$maxDepth === void 0 ? 1 : _options$maxDepth,
11
+ groupingField = options.groupingField;
13
12
  var hasTreeData = maxDepth > 1 && groupingField != null;
14
-
15
13
  if (!hasTreeData) {
16
14
  return data;
17
15
  }
18
-
19
16
  if (data.rows.length > 1000) {
20
17
  throw new Error('MUI: useDemoData tree data mode only works up to 1000 rows.');
21
18
  }
22
-
23
19
  var rowsByTreeDepth = {};
24
20
  var rowsCount = data.rows.length;
25
21
  var groupingCol = data.columns.find(function (col) {
26
22
  return col.field === options.groupingField;
27
23
  });
28
-
29
24
  if (!groupingCol) {
30
25
  throw new Error('MUI: The tree data grouping field does not exist');
31
26
  }
32
-
33
27
  data.initialState.columns.columnVisibilityModel[groupingField] = false;
34
-
35
28
  for (var i = 0; i < rowsCount; i += 1) {
36
29
  var row = data.rows[i];
37
30
  var currentChunk = Math.floor(i * (Math.pow(averageChildren, maxDepth) - 1) / rowsCount) + 1;
38
31
  var currentDepth = Math.floor(Math.log(currentChunk) / Math.log(averageChildren));
39
-
40
32
  if (!rowsByTreeDepth[currentDepth]) {
41
33
  rowsByTreeDepth[currentDepth] = {
42
34
  rows: {},
43
35
  rowIndexes: []
44
36
  };
45
37
  }
46
-
47
38
  rowsByTreeDepth[currentDepth].rows[i] = {
48
39
  value: row,
49
40
  parentIndex: null
50
41
  };
51
42
  rowsByTreeDepth[currentDepth].rowIndexes.push(i);
52
43
  }
53
-
54
44
  Object.entries(rowsByTreeDepth).forEach(function (_ref) {
55
45
  var _ref2 = _slicedToArray(_ref, 2),
56
- depthStr = _ref2[0],
57
- rows = _ref2[1].rows;
58
-
46
+ depthStr = _ref2[0],
47
+ rows = _ref2[1].rows;
59
48
  var depth = Number(depthStr);
60
49
  Object.values(rows).forEach(function (row) {
61
50
  var path = [];
62
51
  var previousRow = null;
63
-
64
52
  for (var k = depth; k >= 0; k -= 1) {
65
53
  var rowTemp = void 0;
66
-
67
54
  if (k === depth) {
68
55
  if (depth > 0) {
69
56
  row.parentIndex = Number(randomArrayItem(rowsByTreeDepth[depth - 1].rowIndexes));
70
57
  }
71
-
72
58
  rowTemp = row;
73
59
  } else {
74
60
  rowTemp = rowsByTreeDepth[k].rows[previousRow.parentIndex];
75
61
  }
76
-
77
62
  path.unshift(rowTemp.value[groupingField]);
78
63
  previousRow = rowTemp;
79
64
  }
80
-
81
65
  row.value.path = path;
82
66
  });
83
67
  });
@@ -171,7 +171,6 @@ export const getCommodityColumns = (editable = false) => [{
171
171
  if (typeof value === 'string') {
172
172
  return COUNTRY_ISO_OPTIONS_SORTED.find(country => country.value === value);
173
173
  }
174
-
175
174
  return value;
176
175
  },
177
176
  valueFormatter: ({
@@ -130,7 +130,6 @@ export const getEmployeeColumns = () => [{
130
130
  if (!value || typeof value !== 'number') {
131
131
  return value;
132
132
  }
133
-
134
133
  return `${value.toLocaleString()}$`;
135
134
  }
136
135
  }];
@@ -9,7 +9,6 @@ import { addTreeDataOptionsToDemoData } from '../services/tree-data-generator';
9
9
  const dataCache = new LRUCache({
10
10
  max: 10,
11
11
  ttl: 60 * 5 * 1e3 // 5 minutes
12
-
13
12
  });
14
13
 
15
14
  // Generate fake data from a seed.
@@ -21,25 +20,20 @@ async function extrapolateSeed(rowLength, data) {
21
20
  const tasks = {
22
21
  current: rowLength - seed.length
23
22
  };
24
-
25
23
  function work() {
26
24
  const row = {};
27
-
28
25
  for (let j = 0; j < data.columns.length; j += 1) {
29
26
  const column = data.columns[j];
30
27
  const index = Math.round(Math.random() * (seed.length - 1));
31
-
32
28
  if (column.field === 'id') {
33
29
  row.id = `id-${tasks.current + seed.length}`;
34
30
  } else {
35
31
  row[column.field] = seed[index][column.field];
36
32
  }
37
33
  }
38
-
39
34
  rows.push(row);
40
35
  tasks.current -= 1;
41
36
  }
42
-
43
37
  asyncWorker({
44
38
  work,
45
39
  done: () => resolve(_extends({}, data, {
@@ -49,36 +43,31 @@ async function extrapolateSeed(rowLength, data) {
49
43
  });
50
44
  });
51
45
  }
52
-
53
46
  const deepFreeze = object => {
54
47
  // Retrieve the property names defined on object
55
- const propNames = Object.getOwnPropertyNames(object); // Freeze properties before freezing self
56
- // eslint-disable-next-line no-restricted-syntax
48
+ const propNames = Object.getOwnPropertyNames(object);
49
+
50
+ // Freeze properties before freezing self
57
51
 
52
+ // eslint-disable-next-line no-restricted-syntax
58
53
  for (const name of propNames) {
59
54
  const value = object[name];
60
-
61
55
  if (value && typeof value === 'object') {
62
56
  deepFreeze(value);
63
57
  }
64
58
  }
65
-
66
59
  return Object.freeze(object);
67
60
  };
68
-
69
61
  export const getColumnsFromOptions = options => {
70
62
  let columns = options.dataSet === 'Commodity' ? getCommodityColumns(options.editable) : getEmployeeColumns();
71
-
72
63
  if (options.visibleFields) {
73
64
  columns = columns.map(col => options.visibleFields?.includes(col.field) ? col : _extends({}, col, {
74
65
  hide: true
75
66
  }));
76
67
  }
77
-
78
68
  if (options.maxColumns) {
79
69
  columns = columns.slice(0, options.maxColumns);
80
70
  }
81
-
82
71
  return columns;
83
72
  };
84
73
  export const getInitialState = (options, columns) => {
@@ -89,11 +78,9 @@ export const getInitialState = (options, columns) => {
89
78
  }
90
79
  });
91
80
  const groupingField = options.treeData?.groupingField;
92
-
93
81
  if (groupingField) {
94
82
  columnVisibilityModel[groupingField] = false;
95
83
  }
96
-
97
84
  return {
98
85
  columns: {
99
86
  columnVisibilityModel
@@ -120,48 +107,43 @@ export const useDemoData = options => {
120
107
  }, options.treeData);
121
108
  });
122
109
  React.useEffect(() => {
123
- const cacheKey = `${options.dataSet}-${rowLength}-${index}-${options.maxColumns}`; // Cache to allow fast switch between the JavaScript and TypeScript version
124
- // of the demos.
110
+ const cacheKey = `${options.dataSet}-${rowLength}-${index}-${options.maxColumns}`;
125
111
 
112
+ // Cache to allow fast switch between the JavaScript and TypeScript version
113
+ // of the demos.
126
114
  if (dataCache.has(cacheKey)) {
127
115
  const newData = dataCache.get(cacheKey);
128
116
  setData(newData);
129
117
  setLoading(false);
130
118
  return undefined;
131
119
  }
132
-
133
120
  let active = true;
134
-
135
121
  (async () => {
136
122
  setLoading(true);
137
123
  let newData;
138
-
139
124
  if (rowLength > 1000) {
140
125
  newData = await getRealGridData(1000, columns);
141
126
  newData = await extrapolateSeed(rowLength, newData);
142
127
  } else {
143
128
  newData = await getRealGridData(rowLength, columns);
144
129
  }
145
-
146
130
  if (!active) {
147
131
  return;
148
132
  }
149
-
150
133
  newData = addTreeDataOptionsToDemoData(newData, {
151
134
  maxDepth: options.treeData?.maxDepth,
152
135
  groupingField: options.treeData?.groupingField,
153
136
  averageChildren: options.treeData?.averageChildren
154
- }); // It's quite slow. No need for it in production.
137
+ });
155
138
 
139
+ // It's quite slow. No need for it in production.
156
140
  if (process.env.NODE_ENV !== 'production') {
157
141
  deepFreeze(newData);
158
142
  }
159
-
160
143
  dataCache.set(cacheKey, newData);
161
144
  setData(newData);
162
145
  setLoading(false);
163
146
  })();
164
-
165
147
  return () => {
166
148
  active = false;
167
149
  };
@@ -21,7 +21,6 @@ const COLUMNS = [{
21
21
  if (!value) {
22
22
  return '';
23
23
  }
24
-
25
24
  return currencyFormatter.format(value);
26
25
  }
27
26
  }, {
@@ -3,25 +3,21 @@ import * as React from 'react';
3
3
  import { getGridDefaultColumnTypes, GridLinkOperator } from '@mui/x-data-grid-pro';
4
4
  import { isDeepEqual } from '@mui/x-data-grid/internals';
5
5
  import { useDemoData, getColumnsFromOptions, getInitialState } from './useDemoData';
6
-
7
6
  const simplifiedValueGetter = (field, colDef) => row => {
8
7
  const params = {
9
8
  id: row.id,
10
9
  row,
11
10
  field,
12
11
  rowNode: {}
13
- }; // @ts-ignore
14
-
12
+ };
13
+ // @ts-ignore
15
14
  return colDef.valueGetter?.(params) || row[field];
16
15
  };
17
-
18
16
  const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
19
17
  if (!sortModel) {
20
18
  const comparator = () => 0;
21
-
22
19
  return comparator;
23
20
  }
24
-
25
21
  const sortOperators = sortModel.map(sortItem => {
26
22
  const columnField = sortItem.field;
27
23
  const colDef = columnsWithDefaultColDef.find(({
@@ -32,7 +28,6 @@ const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
32
28
  sortComparator: colDef.sortComparator
33
29
  });
34
30
  });
35
-
36
31
  const comparator = (row1, row2) => sortOperators.reduce((acc, {
37
32
  valueGetter,
38
33
  sort,
@@ -41,20 +36,16 @@ const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
41
36
  if (acc !== 0) {
42
37
  return acc;
43
38
  }
44
-
45
39
  const v1 = valueGetter(row1);
46
40
  const v2 = valueGetter(row2);
47
41
  return sort === 'desc' ? -1 * sortComparator(v1, v2) : sortComparator(v1, v2);
48
42
  }, 0);
49
-
50
43
  return comparator;
51
44
  };
52
-
53
45
  const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
54
46
  if (filterModel === undefined || filterModel.items.length === 0) {
55
47
  return rows;
56
48
  }
57
-
58
49
  const valueGetters = filterModel.items.map(({
59
50
  columnField
60
51
  }) => simplifiedValueGetter(columnField, columnsWithDefaultColDef.find(({
@@ -72,18 +63,15 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
72
63
  value
73
64
  }) => operatorValue === value);
74
65
  let parsedValue = filterItem.value;
75
-
76
66
  if (colDef.valueParser) {
77
67
  const parser = colDef.valueParser;
78
68
  parsedValue = Array.isArray(filterItem.value) ? filterItem.value?.map(x => parser(x)) : parser(filterItem.value);
79
69
  }
80
-
81
70
  return filterOperator?.getApplyFilterFn({
82
71
  filterItem,
83
72
  value: parsedValue
84
73
  }, colDef);
85
74
  });
86
-
87
75
  if (filterModel.linkOperator === GridLinkOperator.Or) {
88
76
  return rows.filter(row => filterModel.items.some((_, index) => {
89
77
  const value = valueGetters[index](row);
@@ -92,7 +80,6 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
92
80
  });
93
81
  }));
94
82
  }
95
-
96
83
  return rows.filter(row => filterModel.items.every((_, index) => {
97
84
  const value = valueGetters[index](row);
98
85
  return filterFunctions[index] === null ? true : filterFunctions[index]({
@@ -100,22 +87,19 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
100
87
  });
101
88
  }));
102
89
  };
90
+
103
91
  /**
104
92
  * Simulates server data loading
105
93
  */
106
-
107
-
108
94
  export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultColDef) => {
109
95
  const {
110
96
  minDelay = 100,
111
97
  maxDelay = 300,
112
98
  useCursorPagination
113
99
  } = serverOptions;
114
-
115
100
  if (maxDelay < minDelay) {
116
101
  throw new Error('serverOptions.minDelay is larger than serverOptions.maxDelay ');
117
102
  }
118
-
119
103
  const delay = Math.random() * (maxDelay - minDelay) + minDelay;
120
104
  const {
121
105
  cursor,
@@ -129,7 +113,6 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
129
113
  const rowComparator = getRowComparator(queryOptions.sortModel, columnsWithDefaultColDef);
130
114
  filteredRows = [...filteredRows].sort(rowComparator);
131
115
  const totalRowCount = filteredRows.length;
132
-
133
116
  if (!pageSize) {
134
117
  firstRowIndex = 0;
135
118
  lastRowIndex = filteredRows.length;
@@ -138,14 +121,12 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
138
121
  id
139
122
  }) => id === cursor) : 0;
140
123
  firstRowIndex = Math.max(firstRowIndex, 0); // if cursor not found return 0
141
-
142
124
  lastRowIndex = firstRowIndex + pageSize;
143
125
  nextCursor = lastRowIndex >= filteredRows.length ? undefined : filteredRows[lastRowIndex].id;
144
126
  } else {
145
127
  firstRowIndex = page * pageSize;
146
128
  lastRowIndex = (page + 1) * pageSize;
147
129
  }
148
-
149
130
  const response = {
150
131
  returnedRows: filteredRows.slice(firstRowIndex, lastRowIndex),
151
132
  nextCursor,
@@ -157,6 +138,7 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
157
138
  }, delay); // simulate network latency
158
139
  });
159
140
  };
141
+
160
142
  const DEFAULT_DATASET_OPTIONS = {
161
143
  dataSet: 'Commodity',
162
144
  rowLength: 100,
@@ -170,14 +152,11 @@ const DEFAULT_SERVER_OPTIONS = {
170
152
  };
171
153
  export const createFakeServer = (dataSetOptions, serverOptions) => {
172
154
  const dataSetOptionsWithDefault = _extends({}, DEFAULT_DATASET_OPTIONS, dataSetOptions);
173
-
174
155
  const serverOptionsWithDefault = _extends({}, DEFAULT_SERVER_OPTIONS, serverOptions);
175
-
176
156
  const columns = getColumnsFromOptions(dataSetOptionsWithDefault);
177
157
  const initialState = getInitialState(dataSetOptionsWithDefault, columns);
178
158
  const defaultColDef = getGridDefaultColumnTypes();
179
159
  const columnsWithDefaultColDef = columns.map(column => _extends({}, defaultColDef[column.type || 'string'], column));
180
-
181
160
  const useQuery = queryOptions => {
182
161
  const {
183
162
  data: {
@@ -196,25 +175,21 @@ export const createFakeServer = (dataSetOptions, serverOptions) => {
196
175
  // dataset is not ready
197
176
  return () => {};
198
177
  }
199
-
200
178
  queryOptionsRef.current = queryOptions;
201
179
  let active = true;
202
180
  setIsLoading(true);
203
181
  setResponse(prev => Object.keys(prev.pageInfo).length === 0 ? prev : _extends({}, prev, {
204
182
  pageInfo: {}
205
183
  }));
206
-
207
184
  (async function fetchData() {
208
185
  const {
209
186
  returnedRows,
210
187
  nextCursor,
211
188
  totalRowCount
212
189
  } = await loadServerRows(rows, queryOptions, serverOptionsWithDefault, columnsWithDefaultColDef);
213
-
214
190
  if (!active) {
215
191
  return;
216
192
  }
217
-
218
193
  const newRep = {
219
194
  rows: returnedRows,
220
195
  pageInfo: {
@@ -226,18 +201,17 @@ export const createFakeServer = (dataSetOptions, serverOptions) => {
226
201
  setResponse(prev => isDeepEqual(prev, newRep) ? prev : newRep);
227
202
  setIsLoading(false);
228
203
  })();
229
-
230
204
  return () => {
231
205
  active = false;
232
206
  };
233
- }, [dataGenerationIsLoading, queryOptions, rows]); // We use queryOptions pointer to be sure that isLoading===true as soon as the options change
207
+ }, [dataGenerationIsLoading, queryOptions, rows]);
234
208
 
209
+ // We use queryOptions pointer to be sure that isLoading===true as soon as the options change
235
210
  const effectShouldStart = queryOptionsRef.current !== queryOptions;
236
211
  return _extends({
237
212
  isLoading: isLoading || effectShouldStart
238
213
  }, response);
239
214
  };
240
-
241
215
  return {
242
216
  columns,
243
217
  columnsWithDefaultColDef,
package/modern/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v6.0.0-alpha.8
1
+ /** @license MUI v6.0.0-alpha.9
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -5,7 +5,6 @@ export function renderAvatar(params) {
5
5
  if (params.value == null) {
6
6
  return '';
7
7
  }
8
-
9
8
  return /*#__PURE__*/_jsx(Avatar, {
10
9
  style: {
11
10
  backgroundColor: params.value.color
@@ -36,14 +36,13 @@ const Country = /*#__PURE__*/React.memo(function Country(props) {
36
36
  export function renderCountry(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(Country, {
48
47
  value: params.value
49
48
  });
@@ -21,7 +21,6 @@ const StyledAutocomplete = styled(Autocomplete)(({
21
21
  }
22
22
  })
23
23
  }));
24
-
25
24
  function EditCountry(props) {
26
25
  const {
27
26
  id,
@@ -72,12 +71,10 @@ function EditCountry(props) {
72
71
  id: params.id,
73
72
  inputProps: _extends({}, params.inputProps, {
74
73
  autoComplete: 'new-password' // disable autocomplete and autofill
75
-
76
74
  })
77
75
  }, params.InputProps))
78
76
  });
79
77
  }
80
-
81
78
  export function renderEditCountry(params) {
82
79
  return /*#__PURE__*/_jsx(EditCountry, _extends({}, params));
83
80
  }
@@ -21,7 +21,6 @@ const StyledAutocomplete = styled(Autocomplete)(({
21
21
  }
22
22
  })
23
23
  }));
24
-
25
24
  function EditCurrency(props) {
26
25
  const {
27
26
  id,
@@ -71,12 +70,10 @@ function EditCurrency(props) {
71
70
  id: params.id,
72
71
  inputProps: _extends({}, params.inputProps, {
73
72
  autoComplete: 'new-password' // disable autocomplete and autofill
74
-
75
73
  })
76
74
  }, params.InputProps))
77
75
  });
78
76
  }
79
-
80
77
  export function renderEditCurrency(params) {
81
78
  return /*#__PURE__*/_jsx(EditCurrency, _extends({}, params));
82
79
  }
@@ -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
  }
@@ -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
  }