@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.
- package/CHANGELOG.md +255 -15
- package/columns/commodities.columns.js +0 -1
- package/columns/employees.columns.js +0 -1
- package/hooks/useDemoData.js +9 -31
- package/hooks/useMovieData.d.ts +1 -0
- package/hooks/useMovieData.js +35 -1
- package/hooks/useQuery.js +6 -34
- package/index.js +1 -1
- package/legacy/columns/commodities.columns.js +0 -1
- package/legacy/columns/employees.columns.js +0 -2
- package/legacy/hooks/useBasicDemoData.js +6 -7
- package/legacy/hooks/useDemoData.js +28 -70
- package/legacy/hooks/useMovieData.js +35 -2
- package/legacy/hooks/useQuery.js +27 -64
- package/legacy/index.js +1 -1
- package/legacy/renderer/renderAvatar.js +0 -1
- package/legacy/renderer/renderCountry.js +3 -4
- package/legacy/renderer/renderEditCountry.js +2 -8
- package/legacy/renderer/renderEditCurrency.js +2 -8
- package/legacy/renderer/renderEditIncoterm.js +2 -10
- package/legacy/renderer/renderEditProgress.js +8 -18
- package/legacy/renderer/renderEditRating.js +2 -10
- package/legacy/renderer/renderEditStatus.js +2 -15
- package/legacy/renderer/renderEmail.js +0 -1
- package/legacy/renderer/renderIncoterm.js +0 -2
- package/legacy/renderer/renderLink.js +0 -2
- package/legacy/renderer/renderPnl.js +0 -3
- package/legacy/renderer/renderProgress.js +4 -5
- package/legacy/renderer/renderRating.js +3 -4
- package/legacy/renderer/renderStatus.js +8 -13
- package/legacy/renderer/renderTotalPrice.js +5 -6
- package/legacy/services/asyncWorker.js +4 -7
- package/legacy/services/basic-data-service.js +0 -5
- package/legacy/services/random-generator.js +6 -20
- package/legacy/services/real-data-service.js +0 -9
- package/legacy/services/tree-data-generator.js +6 -22
- package/modern/columns/commodities.columns.js +0 -1
- package/modern/columns/employees.columns.js +0 -1
- package/modern/hooks/useDemoData.js +9 -27
- package/modern/hooks/useMovieData.js +35 -1
- package/modern/hooks/useQuery.js +6 -32
- package/modern/index.js +1 -1
- package/modern/renderer/renderAvatar.js +0 -1
- package/modern/renderer/renderCountry.js +3 -4
- package/modern/renderer/renderEditCountry.js +0 -3
- package/modern/renderer/renderEditCurrency.js +0 -3
- package/modern/renderer/renderEditIncoterm.js +0 -5
- package/modern/renderer/renderEditProgress.js +1 -8
- package/modern/renderer/renderEditRating.js +0 -5
- package/modern/renderer/renderEditStatus.js +0 -10
- package/modern/renderer/renderIncoterm.js +0 -2
- package/modern/renderer/renderLink.js +0 -2
- package/modern/renderer/renderPnl.js +0 -3
- package/modern/renderer/renderProgress.js +4 -5
- package/modern/renderer/renderRating.js +3 -4
- package/modern/renderer/renderStatus.js +8 -13
- package/modern/renderer/renderTotalPrice.js +5 -6
- package/modern/services/asyncWorker.js +2 -4
- package/modern/services/basic-data-service.js +0 -5
- package/modern/services/random-generator.js +6 -19
- package/modern/services/real-data-service.js +0 -9
- package/modern/services/tree-data-generator.js +0 -14
- package/node/columns/commodities.columns.js +1 -8
- package/node/columns/employees.columns.js +1 -8
- package/node/columns/index.js +0 -4
- package/node/hooks/index.js +0 -8
- package/node/hooks/useBasicDemoData.js +0 -6
- package/node/hooks/useDemoData.js +17 -62
- package/node/hooks/useMovieData.js +35 -3
- package/node/hooks/useQuery.js +8 -48
- package/node/index.js +1 -9
- package/node/renderer/index.js +0 -32
- package/node/renderer/renderAvatar.js +0 -8
- package/node/renderer/renderCountry.js +3 -12
- package/node/renderer/renderEditCountry.js +0 -16
- package/node/renderer/renderEditCurrency.js +0 -16
- package/node/renderer/renderEditIncoterm.js +0 -17
- package/node/renderer/renderEditProgress.js +2 -22
- package/node/renderer/renderEditRating.js +0 -14
- package/node/renderer/renderEditStatus.js +0 -26
- package/node/renderer/renderEmail.js +1 -9
- package/node/renderer/renderIncoterm.js +0 -12
- package/node/renderer/renderLink.js +0 -9
- package/node/renderer/renderPnl.js +0 -12
- package/node/renderer/renderProgress.js +4 -14
- package/node/renderer/renderRating.js +3 -13
- package/node/renderer/renderStatus.js +8 -26
- package/node/renderer/renderTotalPrice.js +5 -15
- package/node/services/asyncWorker.js +2 -5
- package/node/services/basic-data-service.js +0 -7
- package/node/services/index.js +0 -8
- package/node/services/random-generator.js +7 -105
- package/node/services/real-data-service.js +0 -12
- package/node/services/static-data.js +0 -2
- package/node/services/tree-data-generator.js +1 -22
- package/package.json +5 -5
- package/renderer/renderAvatar.js +0 -1
- package/renderer/renderCountry.js +3 -4
- package/renderer/renderEditCountry.js +0 -3
- package/renderer/renderEditCurrency.js +0 -3
- package/renderer/renderEditIncoterm.js +0 -5
- package/renderer/renderEditProgress.js +1 -8
- package/renderer/renderEditRating.js +0 -5
- package/renderer/renderEditStatus.js +0 -10
- package/renderer/renderEmail.js +0 -1
- package/renderer/renderIncoterm.js +0 -2
- package/renderer/renderLink.js +0 -2
- package/renderer/renderPnl.js +0 -3
- package/renderer/renderProgress.js +4 -5
- package/renderer/renderRating.js +3 -4
- package/renderer/renderStatus.js +8 -13
- package/renderer/renderTotalPrice.js +5 -6
- package/services/asyncWorker.js +2 -4
- package/services/basic-data-service.js +0 -5
- package/services/random-generator.js +6 -20
- package/services/real-data-service.js +0 -9
- package/services/tree-data-generator.js +0 -15
package/hooks/useMovieData.js
CHANGED
|
@@ -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
|
-
};
|
|
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,20 +37,16 @@ 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
51
|
columnField
|
|
62
52
|
}) => simplifiedValueGetter(columnField, columnsWithDefaultColDef.find(({
|
|
@@ -74,20 +64,16 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
|
|
|
74
64
|
value
|
|
75
65
|
}) => operatorValue === value);
|
|
76
66
|
let parsedValue = filterItem.value;
|
|
77
|
-
|
|
78
67
|
if (colDef.valueParser) {
|
|
79
68
|
var _filterItem$value;
|
|
80
|
-
|
|
81
69
|
const parser = colDef.valueParser;
|
|
82
70
|
parsedValue = Array.isArray(filterItem.value) ? (_filterItem$value = filterItem.value) == null ? void 0 : _filterItem$value.map(x => parser(x)) : parser(filterItem.value);
|
|
83
71
|
}
|
|
84
|
-
|
|
85
72
|
return filterOperator == null ? void 0 : filterOperator.getApplyFilterFn({
|
|
86
73
|
filterItem,
|
|
87
74
|
value: parsedValue
|
|
88
75
|
}, colDef);
|
|
89
76
|
});
|
|
90
|
-
|
|
91
77
|
if (filterModel.linkOperator === GridLinkOperator.Or) {
|
|
92
78
|
return rows.filter(row => filterModel.items.some((_, index) => {
|
|
93
79
|
const value = valueGetters[index](row);
|
|
@@ -96,7 +82,6 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
|
|
|
96
82
|
});
|
|
97
83
|
}));
|
|
98
84
|
}
|
|
99
|
-
|
|
100
85
|
return rows.filter(row => filterModel.items.every((_, index) => {
|
|
101
86
|
const value = valueGetters[index](row);
|
|
102
87
|
return filterFunctions[index] === null ? true : filterFunctions[index]({
|
|
@@ -104,22 +89,19 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
|
|
|
104
89
|
});
|
|
105
90
|
}));
|
|
106
91
|
};
|
|
92
|
+
|
|
107
93
|
/**
|
|
108
94
|
* Simulates server data loading
|
|
109
95
|
*/
|
|
110
|
-
|
|
111
|
-
|
|
112
96
|
export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultColDef) => {
|
|
113
97
|
const {
|
|
114
98
|
minDelay = 100,
|
|
115
99
|
maxDelay = 300,
|
|
116
100
|
useCursorPagination
|
|
117
101
|
} = serverOptions;
|
|
118
|
-
|
|
119
102
|
if (maxDelay < minDelay) {
|
|
120
103
|
throw new Error('serverOptions.minDelay is larger than serverOptions.maxDelay ');
|
|
121
104
|
}
|
|
122
|
-
|
|
123
105
|
const delay = Math.random() * (maxDelay - minDelay) + minDelay;
|
|
124
106
|
const {
|
|
125
107
|
cursor,
|
|
@@ -133,7 +115,6 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
|
|
|
133
115
|
const rowComparator = getRowComparator(queryOptions.sortModel, columnsWithDefaultColDef);
|
|
134
116
|
filteredRows = [...filteredRows].sort(rowComparator);
|
|
135
117
|
const totalRowCount = filteredRows.length;
|
|
136
|
-
|
|
137
118
|
if (!pageSize) {
|
|
138
119
|
firstRowIndex = 0;
|
|
139
120
|
lastRowIndex = filteredRows.length;
|
|
@@ -142,14 +123,12 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
|
|
|
142
123
|
id
|
|
143
124
|
}) => id === cursor) : 0;
|
|
144
125
|
firstRowIndex = Math.max(firstRowIndex, 0); // if cursor not found return 0
|
|
145
|
-
|
|
146
126
|
lastRowIndex = firstRowIndex + pageSize;
|
|
147
127
|
nextCursor = lastRowIndex >= filteredRows.length ? undefined : filteredRows[lastRowIndex].id;
|
|
148
128
|
} else {
|
|
149
129
|
firstRowIndex = page * pageSize;
|
|
150
130
|
lastRowIndex = (page + 1) * pageSize;
|
|
151
131
|
}
|
|
152
|
-
|
|
153
132
|
const response = {
|
|
154
133
|
returnedRows: filteredRows.slice(firstRowIndex, lastRowIndex),
|
|
155
134
|
nextCursor,
|
|
@@ -161,6 +140,7 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
|
|
|
161
140
|
}, delay); // simulate network latency
|
|
162
141
|
});
|
|
163
142
|
};
|
|
143
|
+
|
|
164
144
|
const DEFAULT_DATASET_OPTIONS = {
|
|
165
145
|
dataSet: 'Commodity',
|
|
166
146
|
rowLength: 100,
|
|
@@ -174,14 +154,11 @@ const DEFAULT_SERVER_OPTIONS = {
|
|
|
174
154
|
};
|
|
175
155
|
export const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
176
156
|
const dataSetOptionsWithDefault = _extends({}, DEFAULT_DATASET_OPTIONS, dataSetOptions);
|
|
177
|
-
|
|
178
157
|
const serverOptionsWithDefault = _extends({}, DEFAULT_SERVER_OPTIONS, serverOptions);
|
|
179
|
-
|
|
180
158
|
const columns = getColumnsFromOptions(dataSetOptionsWithDefault);
|
|
181
159
|
const initialState = getInitialState(dataSetOptionsWithDefault, columns);
|
|
182
160
|
const defaultColDef = getGridDefaultColumnTypes();
|
|
183
161
|
const columnsWithDefaultColDef = columns.map(column => _extends({}, defaultColDef[column.type || 'string'], column));
|
|
184
|
-
|
|
185
162
|
const useQuery = queryOptions => {
|
|
186
163
|
const {
|
|
187
164
|
data: {
|
|
@@ -200,25 +177,21 @@ export const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
|
200
177
|
// dataset is not ready
|
|
201
178
|
return () => {};
|
|
202
179
|
}
|
|
203
|
-
|
|
204
180
|
queryOptionsRef.current = queryOptions;
|
|
205
181
|
let active = true;
|
|
206
182
|
setIsLoading(true);
|
|
207
183
|
setResponse(prev => Object.keys(prev.pageInfo).length === 0 ? prev : _extends({}, prev, {
|
|
208
184
|
pageInfo: {}
|
|
209
185
|
}));
|
|
210
|
-
|
|
211
186
|
(async function fetchData() {
|
|
212
187
|
const {
|
|
213
188
|
returnedRows,
|
|
214
189
|
nextCursor,
|
|
215
190
|
totalRowCount
|
|
216
191
|
} = await loadServerRows(rows, queryOptions, serverOptionsWithDefault, columnsWithDefaultColDef);
|
|
217
|
-
|
|
218
192
|
if (!active) {
|
|
219
193
|
return;
|
|
220
194
|
}
|
|
221
|
-
|
|
222
195
|
const newRep = {
|
|
223
196
|
rows: returnedRows,
|
|
224
197
|
pageInfo: {
|
|
@@ -230,18 +203,17 @@ export const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
|
230
203
|
setResponse(prev => isDeepEqual(prev, newRep) ? prev : newRep);
|
|
231
204
|
setIsLoading(false);
|
|
232
205
|
})();
|
|
233
|
-
|
|
234
206
|
return () => {
|
|
235
207
|
active = false;
|
|
236
208
|
};
|
|
237
|
-
}, [dataGenerationIsLoading, queryOptions, rows]);
|
|
209
|
+
}, [dataGenerationIsLoading, queryOptions, rows]);
|
|
238
210
|
|
|
211
|
+
// We use queryOptions pointer to be sure that isLoading===true as soon as the options change
|
|
239
212
|
const effectShouldStart = queryOptionsRef.current !== queryOptions;
|
|
240
213
|
return _extends({
|
|
241
214
|
isLoading: isLoading || effectShouldStart
|
|
242
215
|
}, response);
|
|
243
216
|
};
|
|
244
|
-
|
|
245
217
|
return {
|
|
246
218
|
columns,
|
|
247
219
|
columnsWithDefaultColDef,
|
package/index.js
CHANGED
|
@@ -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
|
}];
|
|
@@ -3,13 +3,12 @@ import * as React from 'react';
|
|
|
3
3
|
import { getBasicGridData } from '../services';
|
|
4
4
|
export var useBasicDemoData = function useBasicDemoData(nbRows, nbCols) {
|
|
5
5
|
var _React$useState = React.useState({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
rows: [],
|
|
7
|
+
columns: []
|
|
8
|
+
}),
|
|
9
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
10
|
+
data = _React$useState2[0],
|
|
11
|
+
setData = _React$useState2[1];
|
|
13
12
|
React.useEffect(function () {
|
|
14
13
|
var newData = getBasicGridData(nbRows, nbCols);
|
|
15
14
|
setData(newData);
|