@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
package/CHANGELOG.md CHANGED
@@ -3,6 +3,82 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 6.0.0-alpha.9
7
+
8
+ _Nov 24, 2022_
9
+
10
+ We'd like to offer a big thanks to the 14 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🎁 Introduce the v6 pickers, built on top of the field components [DatePicker](https://next.mui.com/x/react-date-pickers/date-picker/), [TimePicker](https://next.mui.com/x/react-date-pickers/time-picker/), [DateTimePicker](https://next.mui.com/x/react-date-pickers/date-time-picker/), [DateRangePicker](https://next.mui.com/x/react-date-pickers/date-range-picker/).
13
+
14
+ The old (legacy) components will be removed at the end of the v6 beta.
15
+
16
+ - 💅 Add support for `theme.vars` in the pickers and the DataGrid (#6784, #6778) @alexfauquette
17
+ - ✨ Improve DataGrid theme augmentation (#5818) @iigrik
18
+ - 📚 Documentation improvements
19
+ - 🐞 Bugfixes
20
+
21
+ ### `@mui/x-data-grid@v6.0.0-alpha.9` / `@mui/x-data-grid-pro@v6.0.0-alpha.9` / `@mui/x-data-grid-premium@v6.0.0-alpha.9`
22
+
23
+ ### Breaking changes
24
+
25
+ - <kbd>Ctrl</kbd> + <kbd>Enter</kbd> will no longer toggle the master detail panel (#6945) @MBilalShafi
26
+ You can restore the old behavior by listening to `cellKeyDown` and calling `apiRef.current.toggleDetailPanel()`.
27
+
28
+ - Remove unnecessary keyboard navigation events (#6863) @m4theushw
29
+ The `cellNavigationKeyDown` event was removed. Use `cellKeyDown` and check the key provided in the event argument.
30
+ The `columnHeaderNavigationKeyDown` event was removed. Use `columnHeaderKeyDown` and check the key provided in the event argument.
31
+
32
+ - Rename `rowsScroll` event to `scrollPositionChange` (#6957) @DanailH
33
+
34
+ #### Changes
35
+
36
+ - [DataGrid] Add spacing in `GridToolbar` for better visibility (#6904) @MBilalShafi
37
+ - [DataGrid] Improve typing for the theme in `styleOverrides` (#5818) @iigrik
38
+ - [DataGrid] Prevents master detail panel toggle with <kbd>Ctrl</kbd> + <kbd>Enter</kbd> (#6945) @MBilalShafi
39
+ - [DataGrid] Remove unnecessary keyboard navigation events (#6863) @m4theushw
40
+ - [DataGrid] Rename `ErrorOverlay` to `GridErrorOverlay` (#6946) @MBilalShafi
41
+ - [DataGrid] Stop exporting root base state selectors (#6912) @DanailH
42
+ - [DataGrid] Support `theme.vars` (#6784) @alexfauquette
43
+ - [DataGrid] Rename `rowsScroll` event to `scrollPositionChange` (#6957) @DanailH
44
+ - [DataGridPro] Fix lazy-loaded rows not working with `updateRows` API method (#6976) @cherniavskii
45
+ - [DataGridPremium] Improve typing for theme in `styleOverrides` (#6920) @m4theushw
46
+ - [l10n] Fix translation of `filterOperatorBefore` in Arabic (ar-SD) locale (#6884) @HassanGhazy
47
+
48
+ ### `@mui/x-date-pickers@v6.0.0-alpha.9` / `@mui/x-date-pickers-pro@v6.0.0-alpha.9`
49
+
50
+ #### Changes
51
+
52
+ - [DatePicker] Display week number (#6144) @alexfauquette
53
+ - [pickers] Clean `PickersCalendarHeader` slots (#6943) @flaviendelangle
54
+ - [pickers] Do not loose the translations when using nested `LocalizationProvider` with each a `localeText` prop (#6895) @flaviendelangle
55
+ - [pickers] Fix calendar header switch view button hover circle (#6938) @rajendraarora16
56
+ - [pickers] Fix focus management (#6914) @alexfauquette
57
+ - [pickers] Fix usage with Shadow DOM (#6952) @flaviendelangle
58
+ - [pickers] New `MobileDateRangePicker`, `DesktopDateRangePicker`, `DateRangePicker` and `StaticDateRangePicker` based on `MultiInputDateRangeField` (#6888) @flaviendelangle
59
+ - [pickers] Support `theme.vars` (#6778) @alexfauquette
60
+
61
+ ### Docs
62
+
63
+ - [docs] Add new "Expired package version" error type (#6937) @oliviertassinari
64
+ - [docs] Add support for API pages of unstable components (#6981) @flaviendelangle
65
+ - [docs] Create docs for the new date pickers (#6902) @flaviendelangle
66
+ - [docs] Create docs for the new time, date time and date range pickers (#6958) @flaviendelangle
67
+ - [docs] Fix demos live edit (#6975) @oliviertassinari
68
+ - [docs] Fix toggle button bug in demos in Custom Components page (#6913) @01zulfi
69
+ - [docs] Remove partial Portuguese and Chinese translations of the pickers pages (#6893) @flaviendelangle
70
+
71
+ ### Core
72
+
73
+ - [core] Cleanup `describeValidation` (#6942) @flaviendelangle
74
+ - [core] Group renovate GitHub Action dependency updates @oliviertassinari
75
+ - [core] Introduce `x-codemod` package (#6876) @LukasTy
76
+ - [core] Update minimum supported version of Node.js to 14.0.0 (#6966) @cherniavskii
77
+ - [core] Upgrade monorepo (#6905) @cherniavskii
78
+ - [core] Upgrade node to v14.21 (#6916) @piwysocki
79
+ - [core] Upgrade ESLint (#6738) @Janpot
80
+ - [test] Test validation on date range view (#6941) @alexfauquette
81
+
6
82
  ## 6.0.0-alpha.8
7
83
 
8
84
  _Nov 17, 2022_
@@ -304,7 +380,7 @@ We'd like to offer a big thanks to the 9 contributors who made this release poss
304
380
  The renamed props are the following:
305
381
 
306
382
  | Old name | New name |
307
- |----------------------------|-------------------------------|
383
+ | -------------------------- | ----------------------------- |
308
384
  | `selectionModel` | `rowSelectionModel` |
309
385
  | `onSelectionModelChange` | `onRowSelectionModelChange` |
310
386
  | `disableSelectionOnClick` | `disableRowSelectionOnClick` |
@@ -425,9 +501,10 @@ We'd like to offer a big thanks to the 8 contributors who made this release poss
425
501
 
426
502
  - ⌚️ New components to edit date and time with <kbd>keyboard</kbd>—without using any modal or dropdown UI.
427
503
  Please check out our [documentation](https://next.mui.com/x/react-date-pickers/fields/) to discover those new components.
504
+
428
505
  - [`DateField`](https://next.mui.com/x/react-date-pickers/date-field/) to edit date
429
- - [`TimeField`](https://next.mui.com/x/react-date-pickers/time-field/) to edit time
430
- - [`DateTimeField`](https://next.mui.com/x/react-date-pickers/date-time-field/) to edit date and time
506
+ - [`TimeField`](https://next.mui.com/x/react-date-pickers/time-field/) to edit time
507
+ - [`DateTimeField`](https://next.mui.com/x/react-date-pickers/date-time-field/) to edit date and time
431
508
  - [`MultiInputDateRangeField` / `SingleInputDateRangeField`](https://next.mui.com/x/react-date-pickers/date-range-field/) to edit date range
432
509
  - [`MultiInputTimeRangeField`](https://next.mui.com/x/react-date-pickers/time-range-field/) to edit time range with two inputs
433
510
  - [`MultiInputDateTimeRangeField`](https://next.mui.com/x/react-date-pickers/date-time-range-field/) to edit date and time range with two inputs
@@ -788,19 +865,19 @@ We'd like to offer a big thanks to the 8 contributors who made this release poss
788
865
 
789
866
  ```tsx
790
867
  // Date-fns
791
- <DatePicker value={new Date()} />
868
+ <DatePicker value={new Date()} />;
792
869
 
793
870
  // Dayjs
794
- import dayjs from 'dayjs'
795
- <DatePicker value={dayjs()} />
871
+ import dayjs from 'dayjs';
872
+ <DatePicker value={dayjs()} />;
796
873
 
797
874
  // Moment
798
- import moment from 'moment'
799
- <DatePicker value={moment()} />
875
+ import moment from 'moment';
876
+ <DatePicker value={moment()} />;
800
877
 
801
878
  // Luxon
802
- import { DateTime } from 'luxon'
803
- <DatePicker value={DateTime.now()} />
879
+ import { DateTime } from 'luxon';
880
+ <DatePicker value={DateTime.now()} />;
804
881
  ```
805
882
 
806
883
  #### Changes
@@ -813,7 +890,7 @@ We'd like to offer a big thanks to the 8 contributors who made this release poss
813
890
  - [pickers] Allow to control the selected sections (#6209, #6307) @flaviendelangle
814
891
  - [pickers] Do not loose the value of date sections not present in the format in the new field components (#6141) @flaviendelangle
815
892
  - [pickers] Do not support unparsed date formats anymore (#6170) @flaviendelangle
816
- - [pickers] Support slots on the `DateField` component (#6048) @flaviendelangle
893
+ - [pickers] Support slots on the `DateField` component (#6048) @flaviendelangle
817
894
  - [pickers] Support Luxon v3 in `AdapterLuxon` (#6069) @alexfauquette
818
895
  - [pickers] New components `TimeField` and `DateTimeField` (#6312) @flaviendelangle
819
896
  - [pickers] Support basic mobile edition on new field components (#5958) @flaviendelangle
@@ -891,7 +968,7 @@ We'd like to offer a big thanks to the 12 contributors who made this release pos
891
968
  You can now use the `localText` prop available on all picker components:
892
969
 
893
970
  | Removed prop | Property in the new `localText` prop |
894
- |------------------------------|-----------------------------------------------------------------------------------|
971
+ | ---------------------------- | --------------------------------------------------------------------------------- |
895
972
  | `endText` | `end` |
896
973
  | `getClockLabelText` | `clockLabelText` |
897
974
  | `getHoursClockNumberText` | `hoursClockNumberText` |
@@ -950,7 +1027,7 @@ You can find more information about the new api, including how to set those tran
950
1027
  />
951
1028
  ```
952
1029
 
953
- - The `date` prop has been renamed `value` on `MonthPicker` / `YearPicker`, `ClockPicker` and `CalendarPicker`.
1030
+ - The `date` prop has been renamed `value` on `MonthPicker` / `YearPicker`, `ClockPicker` and `CalendarPicker`.
954
1031
 
955
1032
  ```diff
956
1033
  -<MonthPicker date={dayjs()} onChange={handleMonthChange} />
@@ -982,7 +1059,7 @@ You can find more information about the new api, including how to set those tran
982
1059
  - [pickers] Remove `valueStr` from the field state (#6142) @flaviendelangle
983
1060
  - [pickers] Remove remaining deprecated locale props (#6233) @flaviendelangle
984
1061
  - [pickers] Rename the `date` prop `value` on `MonthPicker` / `YearPicker`, `ClockPicker` and `CalendarPicker` (#6128) @flaviendelangle
985
- - [pickers] Rename the `onClose` prop of `PickersPopper` `onDismiss` to simplify typing (#6155) @flaviendelangle
1062
+ - [pickers] Rename the `onClose` prop of `PickersPopper` `onDismiss` to simplify typing (#6155) @flaviendelangle
986
1063
  - [pickers] Support the `sx` prop on all public component with a root HTML elements (#5944) @flaviendelangle
987
1064
  - [pickers] Unify `PickersMonth` and `PickersYear` behaviors (#6034) @flaviendelangle
988
1065
  - [pickers] Use `shouldDisableMonth` and `shouldDisableYear` for date validation (#6066) @flaviendelangle
@@ -1019,6 +1096,43 @@ You can find more information about the new api, including how to set those tran
1019
1096
  - [test] Skip tests for column pinning and dynamic row height (#5997) @m4theushw
1020
1097
  - [website] Improve security header @oliviertassinari
1021
1098
 
1099
+ ## 5.17.13
1100
+
1101
+ _Nov 24, 2022_
1102
+
1103
+ We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
1104
+
1105
+ - 🚀 Fix support of the pickers to Shadow DOM (#6971) @flaviendelangle
1106
+ - 💅 Improve DataGrid theme augmentation (#6980) @iigrik
1107
+ - 🐞 Bugfixes
1108
+
1109
+ ### `@mui/x-data-grid@v5.17.13` / `@mui/x-data-grid-pro@v5.17.13` / `@mui/x-data-grid-premium@v5.17.13`
1110
+
1111
+ #### Changes
1112
+
1113
+ - [DataGrid] Fix `ErrorOverlay` not receiving defined input props (#6885) @banoth-ravinder
1114
+ - [DataGrid] Improve typing for `styleOverrides` (#6980) @iigrik
1115
+ - [DataGridPro] Fix lazy-loaded rows not working with `updateRows` API method (#6875) @cherniavskii
1116
+ - [l10n] Fix translation of `filterOperatorBefore` in Arabic (ar-SD) locale (#6917) @HassanGhazy
1117
+
1118
+ ### `@mui/x-date-pickers@v5.0.9` / `@mui/x-date-pickers-pro@v5.0.9`
1119
+
1120
+ #### Changes
1121
+
1122
+ - [pickers] Fix usage with Shadow DOM (#6971) @flaviendelangle
1123
+
1124
+ ### Docs
1125
+
1126
+ - [docs] Add new "Expired package version" error type (#6937) @oliviertassinari
1127
+ - [docs] Enforce values for installation options in Date / Time pickers Getting Started page (#6896) @01zulfi
1128
+ - [docs] Fix live edit @oliviertassinari
1129
+ - [docs] Upgrade to Next 13 (#6911) @cherniavskii
1130
+
1131
+ ### Core
1132
+
1133
+ - [core] Upgrade monorepo (#6906) @cherniavskii
1134
+ - [core] Upgrade node to v14.21 (#6939) @piwysocki
1135
+
1022
1136
  ## 5.17.12
1023
1137
 
1024
1138
  _Nov 17, 2022_
@@ -1374,7 +1488,7 @@ We'd like to offer a big thanks to the 3 contributors who made this release poss
1374
1488
 
1375
1489
  _Sep 2, 2022_
1376
1490
 
1377
- 🎉 We are excited to finally introduce a stable release (v5.0.0) for the `@mui/x-date-pickers` and `@mui/x-date-pickers-pro` packages!
1491
+ 🎉 We are excited to finally introduce a stable release (v5.0.0) for the `@mui/x-date-pickers` and `@mui/x-date-pickers-pro` packages!
1378
1492
 
1379
1493
  If you are still using picker components from the `lab`, take a look at the [migration guide](https://mui.com/x/react-date-pickers/migration-lab/).
1380
1494
 
@@ -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
  };
@@ -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
  }, {
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,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]); // We use queryOptions pointer to be sure that isLoading===true as soon as the options change
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
@@ -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.
@@ -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
  }];
@@ -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
- rows: [],
7
- columns: []
8
- }),
9
- _React$useState2 = _slicedToArray(_React$useState, 2),
10
- data = _React$useState2[0],
11
- setData = _React$useState2[1];
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);