@mui/x-data-grid-generator 6.0.0-alpha.1 → 6.0.0-alpha.10

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 +1306 -149
  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 +11 -43
  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 +38 -77
  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 +32 -20
  19. package/legacy/renderer/renderEditCurrency.js +32 -20
  20. package/legacy/renderer/renderEditIncoterm.js +36 -26
  21. package/legacy/renderer/renderEditProgress.js +10 -20
  22. package/legacy/renderer/renderEditRating.js +32 -23
  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 +11 -41
  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 +6 -13
  46. package/modern/renderer/renderEditCurrency.js +6 -13
  47. package/modern/renderer/renderEditIncoterm.js +7 -16
  48. package/modern/renderer/renderEditProgress.js +3 -10
  49. package/modern/renderer/renderEditRating.js +7 -17
  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 +13 -57
  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 +6 -26
  76. package/node/renderer/renderEditCurrency.js +6 -26
  77. package/node/renderer/renderEditIncoterm.js +7 -28
  78. package/node/renderer/renderEditProgress.js +4 -24
  79. package/node/renderer/renderEditRating.js +7 -26
  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 +7 -7
  97. package/renderer/renderAvatar.js +0 -1
  98. package/renderer/renderCountry.js +3 -4
  99. package/renderer/renderEditCountry.js +6 -13
  100. package/renderer/renderEditCurrency.js +6 -13
  101. package/renderer/renderEditIncoterm.js +7 -16
  102. package/renderer/renderEditProgress.js +3 -10
  103. package/renderer/renderEditRating.js +7 -17
  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
@@ -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,45 +43,38 @@ 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);
57
49
 
50
+ // Freeze properties before freezing self
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 => {
74
65
  var _options$visibleField;
75
-
76
66
  return (_options$visibleField = options.visibleFields) != null && _options$visibleField.includes(col.field) ? col : _extends({}, col, {
77
67
  hide: true
78
68
  });
79
69
  });
80
70
  }
81
-
82
71
  if (options.maxColumns) {
83
72
  columns = columns.slice(0, options.maxColumns);
84
73
  }
85
-
86
74
  return columns;
87
75
  };
88
76
  export const getInitialState = (options, columns) => {
89
77
  var _options$treeData;
90
-
91
78
  const columnVisibilityModel = {};
92
79
  columns.forEach(col => {
93
80
  if (col.hide) {
@@ -95,11 +82,9 @@ export const getInitialState = (options, columns) => {
95
82
  }
96
83
  });
97
84
  const groupingField = (_options$treeData = options.treeData) == null ? void 0 : _options$treeData.groupingField;
98
-
99
85
  if (groupingField) {
100
86
  columnVisibilityModel[groupingField] = false;
101
87
  }
102
-
103
88
  return {
104
89
  columns: {
105
90
  columnVisibilityModel
@@ -108,7 +93,6 @@ export const getInitialState = (options, columns) => {
108
93
  };
109
94
  export const useDemoData = options => {
110
95
  var _options$treeData5, _options$treeData6, _options$treeData7;
111
-
112
96
  const [rowLength, setRowLength] = React.useState(options.rowLength);
113
97
  const [index, setIndex] = React.useState(0);
114
98
  const [loading, setLoading] = React.useState(true);
@@ -128,50 +112,44 @@ export const useDemoData = options => {
128
112
  }, options.treeData);
129
113
  });
130
114
  React.useEffect(() => {
131
- const cacheKey = `${options.dataSet}-${rowLength}-${index}-${options.maxColumns}`; // Cache to allow fast switch between the JavaScript and TypeScript version
132
- // of the demos.
115
+ const cacheKey = `${options.dataSet}-${rowLength}-${index}-${options.maxColumns}`;
133
116
 
117
+ // Cache to allow fast switch between the JavaScript and TypeScript version
118
+ // of the demos.
134
119
  if (dataCache.has(cacheKey)) {
135
120
  const newData = dataCache.get(cacheKey);
136
121
  setData(newData);
137
122
  setLoading(false);
138
123
  return undefined;
139
124
  }
140
-
141
125
  let active = true;
142
-
143
126
  (async () => {
144
127
  var _options$treeData2, _options$treeData3, _options$treeData4;
145
-
146
128
  setLoading(true);
147
129
  let newData;
148
-
149
130
  if (rowLength > 1000) {
150
131
  newData = await getRealGridData(1000, columns);
151
132
  newData = await extrapolateSeed(rowLength, newData);
152
133
  } else {
153
134
  newData = await getRealGridData(rowLength, columns);
154
135
  }
155
-
156
136
  if (!active) {
157
137
  return;
158
138
  }
159
-
160
139
  newData = addTreeDataOptionsToDemoData(newData, {
161
140
  maxDepth: (_options$treeData2 = options.treeData) == null ? void 0 : _options$treeData2.maxDepth,
162
141
  groupingField: (_options$treeData3 = options.treeData) == null ? void 0 : _options$treeData3.groupingField,
163
142
  averageChildren: (_options$treeData4 = options.treeData) == null ? void 0 : _options$treeData4.averageChildren
164
- }); // It's quite slow. No need for it in production.
143
+ });
165
144
 
145
+ // It's quite slow. No need for it in production.
166
146
  if (process.env.NODE_ENV !== 'production') {
167
147
  deepFreeze(newData);
168
148
  }
169
-
170
149
  dataCache.set(cacheKey, newData);
171
150
  setData(newData);
172
151
  setLoading(false);
173
152
  })();
174
-
175
153
  return () => {
176
154
  active = false;
177
155
  };
@@ -3,6 +3,7 @@ export declare type Movie = {
3
3
  id: number;
4
4
  title: string;
5
5
  gross: number;
6
+ budget: number;
6
7
  director: string;
7
8
  company: string;
8
9
  year: number;
@@ -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
  }, {
@@ -46,6 +45,7 @@ const ROWS = [{
46
45
  id: 0,
47
46
  title: 'Avatar',
48
47
  gross: 2847246203,
48
+ budget: 237000000,
49
49
  director: 'James Cameron',
50
50
  company: '20th Century Fox',
51
51
  year: 2009,
@@ -57,6 +57,7 @@ const ROWS = [{
57
57
  id: 1,
58
58
  title: 'Avengers: Endgame',
59
59
  gross: 2797501328,
60
+ budget: 356000000,
60
61
  director: 'Anthony & Joe Russo',
61
62
  company: 'Disney Studios',
62
63
  year: 2019,
@@ -69,6 +70,7 @@ const ROWS = [{
69
70
  id: 2,
70
71
  title: 'Titanic',
71
72
  gross: 2187425379,
73
+ budget: 200000000,
72
74
  director: 'James Cameron',
73
75
  company: '20th Century Fox',
74
76
  year: 1997,
@@ -80,6 +82,7 @@ const ROWS = [{
80
82
  id: 3,
81
83
  title: 'Star Wars: The Force Awakens',
82
84
  gross: 2068223624,
85
+ budget: 306000000,
83
86
  director: 'J. J. Abrams',
84
87
  company: 'Disney Studios',
85
88
  year: 2015,
@@ -92,6 +95,7 @@ const ROWS = [{
92
95
  id: 4,
93
96
  title: 'Avengers: Infinity War',
94
97
  gross: 2048359754,
98
+ budget: 321000000,
95
99
  director: 'Anthony & Joe Russo',
96
100
  company: 'Disney Studios',
97
101
  year: 2018,
@@ -104,6 +108,7 @@ const ROWS = [{
104
108
  id: 5,
105
109
  title: 'Spider-Man: No Way Home',
106
110
  gross: 1892768346,
111
+ budget: 200000000,
107
112
  director: 'Jon Watts',
108
113
  company: 'Disney Studios',
109
114
  year: 2021,
@@ -116,6 +121,7 @@ const ROWS = [{
116
121
  id: 6,
117
122
  title: 'Jurassic World',
118
123
  gross: 1671713208,
124
+ budget: 150000000,
119
125
  director: 'Colin Trevorrow',
120
126
  company: 'Universal Pictures',
121
127
  year: 2015,
@@ -128,6 +134,7 @@ const ROWS = [{
128
134
  id: 7,
129
135
  title: 'The Lion King',
130
136
  gross: 1656943394,
137
+ budget: 260000000,
131
138
  director: 'Jon Favreau',
132
139
  company: 'Disney Studios',
133
140
  year: 2019,
@@ -139,6 +146,7 @@ const ROWS = [{
139
146
  id: 8,
140
147
  title: 'The Avengers',
141
148
  gross: 1518812988,
149
+ budget: 220000000,
142
150
  director: 'Joss Whedon',
143
151
  company: 'Disney Studios',
144
152
  year: 2012,
@@ -151,6 +159,7 @@ const ROWS = [{
151
159
  id: 9,
152
160
  title: 'Furious 7',
153
161
  gross: 1516045911,
162
+ budget: 190000000,
154
163
  director: 'James Wan',
155
164
  company: 'Universal Pictures',
156
165
  year: 2015,
@@ -163,6 +172,7 @@ const ROWS = [{
163
172
  id: 10,
164
173
  title: 'Frozen II',
165
174
  gross: 1450026933,
175
+ budget: 150000000,
166
176
  director: 'Chris Buck & Jennifer Lee',
167
177
  company: 'Disney Studios',
168
178
  year: 2019,
@@ -175,6 +185,7 @@ const ROWS = [{
175
185
  id: 11,
176
186
  title: 'Avengers: Age of Ultron',
177
187
  gross: 1402804868,
188
+ budget: 280000000,
178
189
  director: 'Joss Whedon',
179
190
  company: 'Disney Studios',
180
191
  year: 2015,
@@ -187,6 +198,7 @@ const ROWS = [{
187
198
  id: 12,
188
199
  title: 'Black Panther',
189
200
  gross: 1347280838,
201
+ budget: 200000000,
190
202
  director: 'Ryan Coogler',
191
203
  company: 'Disney Studios',
192
204
  year: 2018,
@@ -199,6 +211,7 @@ const ROWS = [{
199
211
  id: 13,
200
212
  title: 'Harry Potter and the Deathly Hallows – Part 2',
201
213
  gross: 1342025430,
214
+ budget: 125000000,
202
215
  director: 'David Yates',
203
216
  company: 'Warner Bros. Pictures',
204
217
  year: 2011,
@@ -211,6 +224,7 @@ const ROWS = [{
211
224
  id: 14,
212
225
  title: 'Star Wars: The Last Jedi',
213
226
  gross: 1332539889,
227
+ budget: 317000000,
214
228
  director: 'Rian Johnson',
215
229
  company: 'Disney Studios',
216
230
  year: 2017,
@@ -223,6 +237,7 @@ const ROWS = [{
223
237
  id: 15,
224
238
  title: 'Jurassic World: Fallen Kingdom',
225
239
  gross: 1309484461,
240
+ budget: 170000000,
226
241
  director: 'J. A. Bayona',
227
242
  company: 'Universal Pictures',
228
243
  year: 2018,
@@ -235,6 +250,7 @@ const ROWS = [{
235
250
  id: 16,
236
251
  title: 'Frozen',
237
252
  gross: 1290000000,
253
+ budget: 150000000,
238
254
  director: 'Chris Buck & Jennifer Lee',
239
255
  company: 'Disney Studios',
240
256
  year: 2013,
@@ -247,6 +263,7 @@ const ROWS = [{
247
263
  id: 17,
248
264
  title: 'Beauty and the Beast',
249
265
  gross: 1263521136,
266
+ budget: 160000000,
250
267
  director: 'Bill Condon',
251
268
  company: 'Disney Studios',
252
269
  year: 2017,
@@ -258,6 +275,7 @@ const ROWS = [{
258
275
  id: 18,
259
276
  title: 'Incredibles 2',
260
277
  gross: 1242805359,
278
+ budget: 200000000,
261
279
  director: 'Brad Bird',
262
280
  company: 'Disney Studios',
263
281
  year: 2018,
@@ -269,6 +287,7 @@ const ROWS = [{
269
287
  id: 19,
270
288
  title: 'The Fate of the Furious',
271
289
  gross: 1238764765,
290
+ budget: 250000000,
272
291
  director: 'F. Gary Gray',
273
292
  company: 'Universal Pictures',
274
293
  year: 2017,
@@ -281,6 +300,7 @@ const ROWS = [{
281
300
  id: 20,
282
301
  title: 'Iron Man 3',
283
302
  gross: 1214811252,
303
+ budget: 200000000,
284
304
  director: 'Shane Black',
285
305
  company: 'Disney Studios',
286
306
  year: 2013,
@@ -293,6 +313,7 @@ const ROWS = [{
293
313
  id: 21,
294
314
  title: 'Minions',
295
315
  gross: 1159398397,
316
+ budget: 74000000,
296
317
  director: 'Pierre Coffin & Kyle Balda',
297
318
  company: 'Universal Pictures',
298
319
  year: 2015,
@@ -304,6 +325,7 @@ const ROWS = [{
304
325
  id: 22,
305
326
  title: 'Captain America: Civil War',
306
327
  gross: 1153329473,
328
+ budget: 250000000,
307
329
  director: 'Anthony & Joe Russo',
308
330
  company: 'Disney Studios',
309
331
  year: 2016,
@@ -316,6 +338,7 @@ const ROWS = [{
316
338
  id: 23,
317
339
  title: 'Aquaman',
318
340
  gross: 1148485886,
341
+ budget: 160000000,
319
342
  director: 'James Wan',
320
343
  company: 'Warner Bros. Pictures',
321
344
  year: 2018,
@@ -328,6 +351,7 @@ const ROWS = [{
328
351
  id: 24,
329
352
  title: 'The Lord of the Rings: The Return of the King',
330
353
  gross: 1146030912,
354
+ budget: 94000000,
331
355
  director: 'Peter Jackson',
332
356
  company: 'New Line Cinema',
333
357
  year: 2003,
@@ -340,6 +364,7 @@ const ROWS = [{
340
364
  id: 25,
341
365
  title: 'Spider-Man: Far From Home',
342
366
  gross: 1131927996,
367
+ budget: 160000000,
343
368
  director: 'Jon Watts',
344
369
  company: 'Disney Studios',
345
370
  year: 2019,
@@ -352,6 +377,7 @@ const ROWS = [{
352
377
  id: 26,
353
378
  title: 'Captain Marvel',
354
379
  gross: 1128274794,
380
+ budget: 152000000,
355
381
  director: 'Anna Boden & Ryan Fleck',
356
382
  company: 'Disney Studios',
357
383
  year: 2019,
@@ -364,6 +390,7 @@ const ROWS = [{
364
390
  id: 27,
365
391
  title: 'Transformers: Dark of the Moon',
366
392
  gross: 1123794079,
393
+ budget: 195000000,
367
394
  director: 'Michael Bay',
368
395
  company: 'Paramount Pictures',
369
396
  year: 2011,
@@ -376,6 +403,7 @@ const ROWS = [{
376
403
  id: 28,
377
404
  title: 'Skyfall',
378
405
  gross: 1108561013,
406
+ budget: 200000000,
379
407
  director: 'Sam Mendes',
380
408
  company: '20th Century Fox',
381
409
  year: 2012,
@@ -388,6 +416,7 @@ const ROWS = [{
388
416
  id: 29,
389
417
  title: 'Transformers: Age of Extinction',
390
418
  gross: 1104054072,
419
+ budget: 210000000,
391
420
  director: 'Michael Bay',
392
421
  company: 'Paramount Pictures',
393
422
  year: 2014,
@@ -400,6 +429,7 @@ const ROWS = [{
400
429
  id: 30,
401
430
  title: 'The Dark Knight Rises',
402
431
  gross: 1081142612,
432
+ budget: 250000000,
403
433
  director: 'Christopher Nolan',
404
434
  company: 'Warner Bros. Pictures',
405
435
  year: 2012,
@@ -412,6 +442,7 @@ const ROWS = [{
412
442
  id: 31,
413
443
  title: 'Joker',
414
444
  gross: 1074251311,
445
+ budget: 55000000,
415
446
  director: 'Todd Phillips',
416
447
  company: 'Warner Bros. Pictures',
417
448
  year: 2019,
@@ -424,6 +455,7 @@ const ROWS = [{
424
455
  id: 32,
425
456
  title: 'Star Wars: The Rise of Skywalker',
426
457
  gross: 1074144248,
458
+ budget: 275000000,
427
459
  director: 'J. J. Abrams',
428
460
  company: 'Disney Studios',
429
461
  year: 2019,
@@ -436,6 +468,7 @@ const ROWS = [{
436
468
  id: 33,
437
469
  title: 'Toy Story 4',
438
470
  gross: 1073394593,
471
+ budget: 200000000,
439
472
  director: 'Josh Cooley',
440
473
  company: 'Disney Studios',
441
474
  year: 2019,
@@ -448,6 +481,7 @@ const ROWS = [{
448
481
  id: 34,
449
482
  title: 'Toy Story 3',
450
483
  gross: 1066969703,
484
+ budget: 200000000,
451
485
  director: 'Lee Unkrich',
452
486
  company: 'Disney Studios',
453
487
  year: 2010,
package/hooks/useQuery.js CHANGED
@@ -3,27 +3,22 @@ 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
  var _colDef$valueGetter;
9
-
10
8
  const params = {
11
9
  id: row.id,
12
10
  row,
13
11
  field,
14
12
  rowNode: {}
15
- }; // @ts-ignore
16
-
13
+ };
14
+ // @ts-ignore
17
15
  return ((_colDef$valueGetter = colDef.valueGetter) == null ? void 0 : _colDef$valueGetter.call(colDef, params)) || row[field];
18
16
  };
19
-
20
17
  const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
21
18
  if (!sortModel) {
22
19
  const comparator = () => 0;
23
-
24
20
  return comparator;
25
21
  }
26
-
27
22
  const sortOperators = sortModel.map(sortItem => {
28
23
  const columnField = sortItem.field;
29
24
  const colDef = columnsWithDefaultColDef.find(({
@@ -34,7 +29,6 @@ const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
34
29
  sortComparator: colDef.sortComparator
35
30
  });
36
31
  });
37
-
38
32
  const comparator = (row1, row2) => sortOperators.reduce((acc, {
39
33
  valueGetter,
40
34
  sort,
@@ -43,51 +37,39 @@ const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
43
37
  if (acc !== 0) {
44
38
  return acc;
45
39
  }
46
-
47
40
  const v1 = valueGetter(row1);
48
41
  const v2 = valueGetter(row2);
49
42
  return sort === 'desc' ? -1 * sortComparator(v1, v2) : sortComparator(v1, v2);
50
43
  }, 0);
51
-
52
44
  return comparator;
53
45
  };
54
-
55
46
  const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
56
47
  if (filterModel === undefined || filterModel.items.length === 0) {
57
48
  return rows;
58
49
  }
59
-
60
50
  const valueGetters = filterModel.items.map(({
61
- columnField
62
- }) => simplifiedValueGetter(columnField, columnsWithDefaultColDef.find(({
63
51
  field
64
- }) => field === columnField)));
52
+ }) => simplifiedValueGetter(field, columnsWithDefaultColDef.find(column => column.field === field)));
65
53
  const filterFunctions = filterModel.items.map(filterItem => {
66
54
  const {
67
- columnField,
68
- operatorValue
55
+ field,
56
+ operator
69
57
  } = filterItem;
70
- const colDef = columnsWithDefaultColDef.find(({
71
- field
72
- }) => field === columnField);
58
+ const colDef = columnsWithDefaultColDef.find(column => column.field === field);
73
59
  const filterOperator = colDef.filterOperators.find(({
74
60
  value
75
- }) => operatorValue === value);
61
+ }) => operator === value);
76
62
  let parsedValue = filterItem.value;
77
-
78
63
  if (colDef.valueParser) {
79
64
  var _filterItem$value;
80
-
81
65
  const parser = colDef.valueParser;
82
66
  parsedValue = Array.isArray(filterItem.value) ? (_filterItem$value = filterItem.value) == null ? void 0 : _filterItem$value.map(x => parser(x)) : parser(filterItem.value);
83
67
  }
84
-
85
68
  return filterOperator == null ? void 0 : filterOperator.getApplyFilterFn({
86
69
  filterItem,
87
70
  value: parsedValue
88
71
  }, colDef);
89
72
  });
90
-
91
73
  if (filterModel.linkOperator === GridLinkOperator.Or) {
92
74
  return rows.filter(row => filterModel.items.some((_, index) => {
93
75
  const value = valueGetters[index](row);
@@ -96,7 +78,6 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
96
78
  });
97
79
  }));
98
80
  }
99
-
100
81
  return rows.filter(row => filterModel.items.every((_, index) => {
101
82
  const value = valueGetters[index](row);
102
83
  return filterFunctions[index] === null ? true : filterFunctions[index]({
@@ -104,22 +85,19 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
104
85
  });
105
86
  }));
106
87
  };
88
+
107
89
  /**
108
90
  * Simulates server data loading
109
91
  */
110
-
111
-
112
92
  export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultColDef) => {
113
93
  const {
114
94
  minDelay = 100,
115
95
  maxDelay = 300,
116
96
  useCursorPagination
117
97
  } = serverOptions;
118
-
119
98
  if (maxDelay < minDelay) {
120
99
  throw new Error('serverOptions.minDelay is larger than serverOptions.maxDelay ');
121
100
  }
122
-
123
101
  const delay = Math.random() * (maxDelay - minDelay) + minDelay;
124
102
  const {
125
103
  cursor,
@@ -133,7 +111,6 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
133
111
  const rowComparator = getRowComparator(queryOptions.sortModel, columnsWithDefaultColDef);
134
112
  filteredRows = [...filteredRows].sort(rowComparator);
135
113
  const totalRowCount = filteredRows.length;
136
-
137
114
  if (!pageSize) {
138
115
  firstRowIndex = 0;
139
116
  lastRowIndex = filteredRows.length;
@@ -142,14 +119,12 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
142
119
  id
143
120
  }) => id === cursor) : 0;
144
121
  firstRowIndex = Math.max(firstRowIndex, 0); // if cursor not found return 0
145
-
146
122
  lastRowIndex = firstRowIndex + pageSize;
147
123
  nextCursor = lastRowIndex >= filteredRows.length ? undefined : filteredRows[lastRowIndex].id;
148
124
  } else {
149
125
  firstRowIndex = page * pageSize;
150
126
  lastRowIndex = (page + 1) * pageSize;
151
127
  }
152
-
153
128
  const response = {
154
129
  returnedRows: filteredRows.slice(firstRowIndex, lastRowIndex),
155
130
  nextCursor,
@@ -161,6 +136,7 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
161
136
  }, delay); // simulate network latency
162
137
  });
163
138
  };
139
+
164
140
  const DEFAULT_DATASET_OPTIONS = {
165
141
  dataSet: 'Commodity',
166
142
  rowLength: 100,
@@ -174,14 +150,11 @@ const DEFAULT_SERVER_OPTIONS = {
174
150
  };
175
151
  export const createFakeServer = (dataSetOptions, serverOptions) => {
176
152
  const dataSetOptionsWithDefault = _extends({}, DEFAULT_DATASET_OPTIONS, dataSetOptions);
177
-
178
153
  const serverOptionsWithDefault = _extends({}, DEFAULT_SERVER_OPTIONS, serverOptions);
179
-
180
154
  const columns = getColumnsFromOptions(dataSetOptionsWithDefault);
181
155
  const initialState = getInitialState(dataSetOptionsWithDefault, columns);
182
156
  const defaultColDef = getGridDefaultColumnTypes();
183
157
  const columnsWithDefaultColDef = columns.map(column => _extends({}, defaultColDef[column.type || 'string'], column));
184
-
185
158
  const useQuery = queryOptions => {
186
159
  const {
187
160
  data: {
@@ -200,25 +173,21 @@ export const createFakeServer = (dataSetOptions, serverOptions) => {
200
173
  // dataset is not ready
201
174
  return () => {};
202
175
  }
203
-
204
176
  queryOptionsRef.current = queryOptions;
205
177
  let active = true;
206
178
  setIsLoading(true);
207
179
  setResponse(prev => Object.keys(prev.pageInfo).length === 0 ? prev : _extends({}, prev, {
208
180
  pageInfo: {}
209
181
  }));
210
-
211
182
  (async function fetchData() {
212
183
  const {
213
184
  returnedRows,
214
185
  nextCursor,
215
186
  totalRowCount
216
187
  } = await loadServerRows(rows, queryOptions, serverOptionsWithDefault, columnsWithDefaultColDef);
217
-
218
188
  if (!active) {
219
189
  return;
220
190
  }
221
-
222
191
  const newRep = {
223
192
  rows: returnedRows,
224
193
  pageInfo: {
@@ -230,18 +199,17 @@ export const createFakeServer = (dataSetOptions, serverOptions) => {
230
199
  setResponse(prev => isDeepEqual(prev, newRep) ? prev : newRep);
231
200
  setIsLoading(false);
232
201
  })();
233
-
234
202
  return () => {
235
203
  active = false;
236
204
  };
237
- }, [dataGenerationIsLoading, queryOptions, rows]); // We use queryOptions pointer to be sure that isLoading===true as soon as the options change
205
+ }, [dataGenerationIsLoading, queryOptions, rows]);
238
206
 
207
+ // We use queryOptions pointer to be sure that isLoading===true as soon as the options change
239
208
  const effectShouldStart = queryOptionsRef.current !== queryOptions;
240
209
  return _extends({
241
210
  isLoading: isLoading || effectShouldStart
242
211
  }, response);
243
212
  };
244
-
245
213
  return {
246
214
  columns,
247
215
  columnsWithDefaultColDef,
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v6.0.0-alpha.1
1
+ /** @license MUI v6.0.0-alpha.10
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.
@@ -184,7 +184,6 @@ export var getCommodityColumns = function getCommodityColumns() {
184
184
  return country.value === value;
185
185
  });
186
186
  }
187
-
188
187
  return value;
189
188
  },
190
189
  valueFormatter: function valueFormatter(_ref4) {
@@ -134,11 +134,9 @@ export var getEmployeeColumns = function getEmployeeColumns() {
134
134
  type: 'number',
135
135
  valueFormatter: function valueFormatter(_ref2) {
136
136
  var value = _ref2.value;
137
-
138
137
  if (!value || typeof value !== 'number') {
139
138
  return value;
140
139
  }
141
-
142
140
  return "".concat(value.toLocaleString(), "$");
143
141
  }
144
142
  }];