@mui/x-data-grid-generator 7.0.0-beta.2 → 7.0.0-beta.4

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 (46) hide show
  1. package/CHANGELOG.md +298 -23
  2. package/columns/employees.columns.js +2 -0
  3. package/hooks/useQuery.d.ts +3 -0
  4. package/index.js +1 -1
  5. package/modern/columns/employees.columns.js +2 -0
  6. package/modern/index.js +1 -1
  7. package/modern/renderer/renderProgress.js +11 -4
  8. package/node/columns/employees.columns.js +2 -0
  9. package/node/index.js +1 -1
  10. package/node/renderer/renderProgress.js +11 -4
  11. package/package.json +3 -3
  12. package/renderer/renderProgress.js +11 -4
  13. package/legacy/columns/commodities.columns.js +0 -253
  14. package/legacy/columns/employees.columns.js +0 -141
  15. package/legacy/columns/index.js +0 -2
  16. package/legacy/hooks/index.js +0 -4
  17. package/legacy/hooks/useBasicDemoData.js +0 -7
  18. package/legacy/hooks/useDemoData.js +0 -235
  19. package/legacy/hooks/useMovieData.js +0 -497
  20. package/legacy/hooks/useQuery.js +0 -262
  21. package/legacy/index.js +0 -11
  22. package/legacy/renderer/index.js +0 -16
  23. package/legacy/renderer/renderAvatar.js +0 -14
  24. package/legacy/renderer/renderCountry.js +0 -47
  25. package/legacy/renderer/renderEditCountry.js +0 -102
  26. package/legacy/renderer/renderEditCurrency.js +0 -99
  27. package/legacy/renderer/renderEditIncoterm.js +0 -91
  28. package/legacy/renderer/renderEditProgress.js +0 -110
  29. package/legacy/renderer/renderEditRating.js +0 -68
  30. package/legacy/renderer/renderEditStatus.js +0 -116
  31. package/legacy/renderer/renderEmail.js +0 -12
  32. package/legacy/renderer/renderIncoterm.js +0 -39
  33. package/legacy/renderer/renderLink.js +0 -31
  34. package/legacy/renderer/renderPnl.js +0 -35
  35. package/legacy/renderer/renderProgress.js +0 -63
  36. package/legacy/renderer/renderRating.js +0 -37
  37. package/legacy/renderer/renderStatus.js +0 -73
  38. package/legacy/renderer/renderTotalPrice.js +0 -48
  39. package/legacy/services/asyncWorker.js +0 -26
  40. package/legacy/services/basic-data-service.js +0 -37
  41. package/legacy/services/gridColDefGenerator.js +0 -1
  42. package/legacy/services/index.js +0 -4
  43. package/legacy/services/random-generator.js +0 -213
  44. package/legacy/services/real-data-service.js +0 -51
  45. package/legacy/services/static-data.js +0 -1260
  46. package/legacy/services/tree-data-generator.js +0 -78
@@ -1,253 +0,0 @@
1
- import { gridStringOrNumberComparator } from '@mui/x-data-grid-premium';
2
- import { randomCommodity, randomDesk, randomEmail, randomFeeRate, generateFilledQuantity, randomId, randomIncoterm, generateIsFilled, randomQuantity, randomTraderName, randomUnitPrice, randomUnitPriceCurrency, randomStatusOptions, randomPnL, randomTradeDate, randomMaturityDate, randomBrokerId, randomCompanyName, randomCountry, randomCurrency, randomAddress, randomCity, randomUpdatedDate, randomCreatedDate, randomRateType, randomContractType, randomTaxCode } from '../services';
3
- import { renderCountry, renderEmail, renderIncoterm, renderPnl, renderProgress, renderStatus, renderTotalPrice, renderEditCurrency, renderEditProgress, renderEditStatus, renderEditIncoterm } from '../renderer';
4
- import { CONTRACT_TYPE_OPTIONS, COUNTRY_ISO_OPTIONS_SORTED, CURRENCY_OPTIONS, INCOTERM_OPTIONS, RATE_TYPE_OPTIONS, STATUS_OPTIONS, TAXCODE_OPTIONS } from '../services/static-data';
5
- export var getCommodityColumns = function getCommodityColumns() {
6
- var editable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7
- return [{
8
- field: 'id',
9
- generateData: randomId,
10
- hide: true
11
- }, {
12
- field: 'desk',
13
- headerName: 'Desk',
14
- generateData: randomDesk,
15
- width: 110
16
- }, {
17
- field: 'commodity',
18
- headerName: 'Commodity',
19
- generateData: randomCommodity,
20
- width: 180,
21
- editable: editable
22
- }, {
23
- field: 'traderName',
24
- headerName: 'Trader Name',
25
- generateData: randomTraderName,
26
- width: 120,
27
- editable: editable
28
- }, {
29
- field: 'traderEmail',
30
- headerName: 'Trader Email',
31
- generateData: randomEmail,
32
- renderCell: renderEmail,
33
- width: 150,
34
- editable: editable
35
- }, {
36
- field: 'quantity',
37
- headerName: 'Quantity',
38
- type: 'number',
39
- width: 140,
40
- generateData: randomQuantity,
41
- editable: editable,
42
- valueParser: function valueParser(value) {
43
- return Number(value);
44
- }
45
- }, {
46
- field: 'filledQuantity',
47
- headerName: 'Filled Quantity',
48
- generateData: generateFilledQuantity,
49
- renderCell: renderProgress,
50
- renderEditCell: renderEditProgress,
51
- availableAggregationFunctions: ['min', 'max', 'avg', 'size'],
52
- type: 'number',
53
- width: 120,
54
- editable: editable
55
- }, {
56
- field: 'isFilled',
57
- headerName: 'Is Filled',
58
- align: 'center',
59
- generateData: generateIsFilled,
60
- type: 'boolean',
61
- width: 80,
62
- editable: editable
63
- }, {
64
- field: 'status',
65
- headerName: 'Status',
66
- generateData: randomStatusOptions,
67
- renderCell: renderStatus,
68
- renderEditCell: renderEditStatus,
69
- type: 'singleSelect',
70
- valueOptions: STATUS_OPTIONS,
71
- width: 150,
72
- editable: editable
73
- }, {
74
- field: 'unitPrice',
75
- headerName: 'Unit Price',
76
- generateData: randomUnitPrice,
77
- type: 'number',
78
- editable: editable,
79
- valueParser: function valueParser(value) {
80
- return Number(value);
81
- }
82
- }, {
83
- field: 'unitPriceCurrency',
84
- headerName: 'Unit Price Currency',
85
- generateData: randomUnitPriceCurrency,
86
- renderEditCell: renderEditCurrency,
87
- type: 'singleSelect',
88
- valueOptions: CURRENCY_OPTIONS,
89
- width: 120,
90
- editable: editable
91
- }, {
92
- field: 'subTotal',
93
- headerName: 'Sub Total',
94
- valueGetter: function valueGetter(value, row) {
95
- return row.quantity == null || row.unitPrice == null ? null : row.quantity * row.unitPrice;
96
- },
97
- type: 'number',
98
- width: 120
99
- }, {
100
- field: 'feeRate',
101
- headerName: 'Fee Rate',
102
- generateData: randomFeeRate,
103
- type: 'number',
104
- width: 80,
105
- editable: editable,
106
- valueParser: function valueParser(value) {
107
- return Number(value);
108
- }
109
- }, {
110
- field: 'feeAmount',
111
- headerName: 'Fee Amount',
112
- valueGetter: function valueGetter(value, row) {
113
- return row.feeRate == null || row.quantity == null || row.unitPrice == null ? null : row.feeRate * row.quantity * row.unitPrice;
114
- },
115
- type: 'number',
116
- width: 120
117
- }, {
118
- field: 'incoTerm',
119
- generateData: randomIncoterm,
120
- renderCell: renderIncoterm,
121
- renderEditCell: renderEditIncoterm,
122
- type: 'singleSelect',
123
- valueOptions: INCOTERM_OPTIONS,
124
- editable: editable
125
- }, {
126
- field: 'totalPrice',
127
- headerName: 'Total in USD',
128
- valueGetter: function valueGetter(value, row) {
129
- return row.feeRate == null || row.quantity == null || row.unitPrice == null ? null : row.feeRate + row.quantity * row.unitPrice;
130
- },
131
- renderCell: renderTotalPrice,
132
- type: 'number',
133
- width: 160
134
- }, {
135
- field: 'pnl',
136
- headerName: 'PnL',
137
- generateData: randomPnL,
138
- renderCell: renderPnl,
139
- type: 'number',
140
- width: 140
141
- }, {
142
- field: 'maturityDate',
143
- headerName: 'Maturity Date',
144
- generateData: randomMaturityDate,
145
- type: 'date',
146
- editable: editable
147
- }, {
148
- field: 'tradeDate',
149
- headerName: 'Trade Date',
150
- generateData: randomTradeDate,
151
- type: 'date',
152
- editable: editable
153
- }, {
154
- field: 'brokerId',
155
- headerName: 'Broker Id',
156
- generateData: randomBrokerId,
157
- hide: true,
158
- editable: editable
159
- }, {
160
- field: 'brokerName',
161
- headerName: 'Broker Name',
162
- generateData: randomCompanyName,
163
- width: 140,
164
- editable: editable
165
- }, {
166
- field: 'counterPartyName',
167
- headerName: 'Counterparty',
168
- generateData: randomCompanyName,
169
- width: 180,
170
- editable: editable
171
- }, {
172
- field: 'counterPartyCountry',
173
- headerName: 'Counterparty Country',
174
- type: 'singleSelect',
175
- generateData: randomCountry,
176
- renderCell: renderCountry,
177
- valueOptions: COUNTRY_ISO_OPTIONS_SORTED,
178
- valueParser: function valueParser(value) {
179
- if (typeof value === 'string') {
180
- return COUNTRY_ISO_OPTIONS_SORTED.find(function (country) {
181
- return country.value === value;
182
- });
183
- }
184
- return value;
185
- },
186
- valueFormatter: function valueFormatter(value) {
187
- return value == null ? void 0 : value.label;
188
- },
189
- groupingValueGetter: function groupingValueGetter(value) {
190
- return value.code;
191
- },
192
- sortComparator: function sortComparator(v1, v2, param1, param2) {
193
- return gridStringOrNumberComparator(v1.label, v2.label, param1, param2);
194
- },
195
- editable: editable,
196
- width: 120
197
- }, {
198
- field: 'counterPartyCurrency',
199
- headerName: 'Counterparty Currency',
200
- generateData: randomCurrency,
201
- renderEditCell: renderEditCurrency,
202
- type: 'singleSelect',
203
- valueOptions: CURRENCY_OPTIONS,
204
- editable: editable
205
- }, {
206
- field: 'counterPartyAddress',
207
- headerName: 'Counterparty Address',
208
- generateData: randomAddress,
209
- width: 200,
210
- editable: editable
211
- }, {
212
- field: 'counterPartyCity',
213
- headerName: 'Counterparty City',
214
- generateData: randomCity,
215
- width: 120,
216
- editable: editable
217
- }, {
218
- field: 'taxCode',
219
- headerName: 'Tax Code',
220
- generateData: randomTaxCode,
221
- type: 'singleSelect',
222
- valueOptions: TAXCODE_OPTIONS,
223
- editable: editable
224
- }, {
225
- field: 'contractType',
226
- headerName: 'Contract Type',
227
- generateData: randomContractType,
228
- type: 'singleSelect',
229
- valueOptions: CONTRACT_TYPE_OPTIONS,
230
- editable: editable
231
- }, {
232
- field: 'rateType',
233
- headerName: 'Rate Type',
234
- generateData: randomRateType,
235
- type: 'singleSelect',
236
- valueOptions: RATE_TYPE_OPTIONS,
237
- editable: editable
238
- }, {
239
- field: 'lastUpdated',
240
- headerName: 'Updated on',
241
- generateData: randomUpdatedDate,
242
- type: 'dateTime',
243
- width: 180,
244
- editable: editable
245
- }, {
246
- field: 'dateCreated',
247
- headerName: 'Created on',
248
- generateData: randomCreatedDate,
249
- type: 'date',
250
- width: 150,
251
- editable: editable
252
- }];
253
- };
@@ -1,141 +0,0 @@
1
- import { gridStringOrNumberComparator } from '@mui/x-data-grid-premium';
2
- import { randomCity, randomCompanyName, randomCountry, randomCreatedDate, randomEmail, randomId, randomJobTitle, randomPhoneNumber, randomRating, randomUpdatedDate, randomUrl, randomUserName, randomBoolean, randomName, randomColor, randomInt } from '../services';
3
- import { renderAvatar, renderCountry, renderEmail, renderLink, renderRating, renderEditRating, renderEditCountry } from '../renderer';
4
- import { COUNTRY_ISO_OPTIONS_SORTED } from '../services/static-data';
5
- export var getEmployeeColumns = function getEmployeeColumns() {
6
- return [{
7
- field: 'id',
8
- generateData: randomId,
9
- hide: true
10
- }, {
11
- field: 'avatar',
12
- headerName: 'Avatar',
13
- generateData: randomColor,
14
- renderCell: renderAvatar,
15
- valueGetter: function valueGetter(value, row) {
16
- return row.name == null || row.avatar == null ? null : {
17
- name: row.name,
18
- color: row.avatar
19
- };
20
- },
21
- sortable: false,
22
- filterable: false,
23
- groupable: false,
24
- aggregable: false,
25
- disableExport: true
26
- }, {
27
- field: 'name',
28
- headerName: 'Name',
29
- generateData: randomName,
30
- dataGeneratorUniquenessEnabled: true,
31
- width: 120,
32
- editable: true,
33
- groupable: false,
34
- aggregable: false
35
- }, {
36
- field: 'website',
37
- headerName: 'Website',
38
- generateData: randomUrl,
39
- renderCell: renderLink,
40
- width: 160,
41
- editable: true,
42
- groupable: false,
43
- aggregable: false
44
- }, {
45
- field: 'rating',
46
- headerName: 'Rating',
47
- generateData: randomRating,
48
- renderCell: renderRating,
49
- renderEditCell: renderEditRating,
50
- width: 180,
51
- type: 'number',
52
- editable: true,
53
- availableAggregationFunctions: ['avg', 'min', 'max', 'size']
54
- }, {
55
- field: 'email',
56
- headerName: 'Email',
57
- generateData: randomEmail,
58
- renderCell: renderEmail,
59
- width: 150,
60
- editable: true
61
- }, {
62
- field: 'phone',
63
- headerName: 'Phone',
64
- generateData: randomPhoneNumber,
65
- width: 150,
66
- editable: true
67
- }, {
68
- field: 'username',
69
- headerName: 'Username',
70
- generateData: randomUserName,
71
- width: 150,
72
- editable: true
73
- }, {
74
- field: 'city',
75
- headerName: 'City',
76
- generateData: randomCity,
77
- editable: true
78
- }, {
79
- field: 'country',
80
- headerName: 'Country',
81
- type: 'singleSelect',
82
- valueOptions: COUNTRY_ISO_OPTIONS_SORTED,
83
- valueFormatter: function valueFormatter(value) {
84
- return value == null ? void 0 : value.label;
85
- },
86
- generateData: randomCountry,
87
- renderCell: renderCountry,
88
- renderEditCell: renderEditCountry,
89
- sortComparator: function sortComparator(v1, v2, param1, param2) {
90
- return gridStringOrNumberComparator(v1.label, v2.label, param1, param2);
91
- },
92
- width: 150,
93
- editable: true
94
- }, {
95
- field: 'company',
96
- headerName: 'Company',
97
- generateData: randomCompanyName,
98
- width: 180,
99
- editable: true
100
- }, {
101
- field: 'position',
102
- headerName: 'Position',
103
- generateData: randomJobTitle,
104
- width: 180,
105
- editable: true
106
- }, {
107
- field: 'lastUpdated',
108
- headerName: 'Updated on',
109
- generateData: randomUpdatedDate,
110
- type: 'dateTime',
111
- width: 180,
112
- editable: true
113
- }, {
114
- field: 'dateCreated',
115
- headerName: 'Created on',
116
- generateData: randomCreatedDate,
117
- type: 'date',
118
- width: 120,
119
- editable: true
120
- }, {
121
- field: 'isAdmin',
122
- headerName: 'Is admin?',
123
- generateData: randomBoolean,
124
- type: 'boolean',
125
- width: 150,
126
- editable: true
127
- }, {
128
- field: 'salary',
129
- headerName: 'Salary',
130
- generateData: function generateData() {
131
- return randomInt(30000, 80000);
132
- },
133
- type: 'number',
134
- valueFormatter: function valueFormatter(value) {
135
- if (!value || typeof value !== 'number') {
136
- return value;
137
- }
138
- return "".concat(value.toLocaleString(), "$");
139
- }
140
- }];
141
- };
@@ -1,2 +0,0 @@
1
- export * from './commodities.columns';
2
- export * from './employees.columns';
@@ -1,4 +0,0 @@
1
- export * from './useDemoData';
2
- export * from './useBasicDemoData';
3
- export * from './useMovieData';
4
- export * from './useQuery';
@@ -1,7 +0,0 @@
1
- import * as React from 'react';
2
- import { getBasicGridData } from '../services';
3
- export var useBasicDemoData = function useBasicDemoData(nbRows, nbCols) {
4
- return React.useMemo(function () {
5
- return getBasicGridData(nbRows, nbCols);
6
- }, [nbRows, nbCols]);
7
- };
@@ -1,235 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import _typeof from "@babel/runtime/helpers/esm/typeof";
4
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
5
- import _regeneratorRuntime from "@babel/runtime/regenerator";
6
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
7
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
- import * as React from 'react';
10
- import LRUCache from 'lru-cache';
11
- import { getRealGridData } from '../services/real-data-service';
12
- import { getCommodityColumns } from '../columns/commodities.columns';
13
- import { getEmployeeColumns } from '../columns/employees.columns';
14
- import asyncWorker from '../services/asyncWorker';
15
- import { addTreeDataOptionsToDemoData } from '../services/tree-data-generator';
16
- var dataCache = new LRUCache({
17
- max: 10,
18
- ttl: 60 * 5 * 1e3 // 5 minutes
19
- });
20
- // Generate fake data from a seed.
21
- // It's about x20 faster than getRealData.
22
- function extrapolateSeed(_x, _x2) {
23
- return _extrapolateSeed.apply(this, arguments);
24
- }
25
- function _extrapolateSeed() {
26
- _extrapolateSeed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(rowLength, data) {
27
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
28
- while (1) switch (_context2.prev = _context2.next) {
29
- case 0:
30
- return _context2.abrupt("return", new Promise(function (resolve) {
31
- var seed = data.rows;
32
- var rows = data.rows.slice();
33
- var tasks = {
34
- current: rowLength - seed.length
35
- };
36
- function work() {
37
- var row = {};
38
- for (var j = 0; j < data.columns.length; j += 1) {
39
- var column = data.columns[j];
40
- var index = Math.round(Math.random() * (seed.length - 1));
41
- if (column.field === 'id') {
42
- row.id = "id-".concat(tasks.current + seed.length);
43
- } else {
44
- row[column.field] = seed[index][column.field];
45
- }
46
- }
47
- rows.push(row);
48
- tasks.current -= 1;
49
- }
50
- asyncWorker({
51
- work: work,
52
- done: function done() {
53
- return resolve(_extends({}, data, {
54
- rows: rows
55
- }));
56
- },
57
- tasks: tasks
58
- });
59
- }));
60
- case 1:
61
- case "end":
62
- return _context2.stop();
63
- }
64
- }, _callee2);
65
- }));
66
- return _extrapolateSeed.apply(this, arguments);
67
- }
68
- var deepFreeze = function deepFreeze(object) {
69
- // Retrieve the property names defined on object
70
- var propNames = Object.getOwnPropertyNames(object);
71
-
72
- // Freeze properties before freezing self
73
-
74
- // eslint-disable-next-line no-restricted-syntax
75
- var _iterator = _createForOfIteratorHelper(propNames),
76
- _step;
77
- try {
78
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
79
- var name = _step.value;
80
- var value = object[name];
81
- if (value && _typeof(value) === 'object') {
82
- deepFreeze(value);
83
- }
84
- }
85
- } catch (err) {
86
- _iterator.e(err);
87
- } finally {
88
- _iterator.f();
89
- }
90
- return Object.freeze(object);
91
- };
92
- export var getColumnsFromOptions = function getColumnsFromOptions(options) {
93
- var columns = options.dataSet === 'Commodity' ? getCommodityColumns(options.editable) : getEmployeeColumns();
94
- if (options.visibleFields) {
95
- columns = columns.map(function (col) {
96
- var _options$visibleField;
97
- return (_options$visibleField = options.visibleFields) != null && _options$visibleField.includes(col.field) ? col : _extends({}, col, {
98
- hide: true
99
- });
100
- });
101
- }
102
- if (options.maxColumns) {
103
- columns = columns.slice(0, options.maxColumns);
104
- }
105
- return columns;
106
- };
107
- export var getInitialState = function getInitialState(options, columns) {
108
- var _options$treeData;
109
- var columnVisibilityModel = {};
110
- columns.forEach(function (col) {
111
- if (col.hide) {
112
- columnVisibilityModel[col.field] = false;
113
- }
114
- });
115
- var groupingField = (_options$treeData = options.treeData) == null ? void 0 : _options$treeData.groupingField;
116
- if (groupingField) {
117
- columnVisibilityModel[groupingField] = false;
118
- }
119
- return {
120
- columns: {
121
- columnVisibilityModel: columnVisibilityModel
122
- }
123
- };
124
- };
125
- export var useDemoData = function useDemoData(options) {
126
- var _options$treeData5, _options$treeData6, _options$treeData7;
127
- var _React$useState = React.useState(options.rowLength),
128
- _React$useState2 = _slicedToArray(_React$useState, 2),
129
- rowLength = _React$useState2[0],
130
- setRowLength = _React$useState2[1];
131
- var _React$useState3 = React.useState(0),
132
- _React$useState4 = _slicedToArray(_React$useState3, 2),
133
- index = _React$useState4[0],
134
- setIndex = _React$useState4[1];
135
- var _React$useState5 = React.useState(true),
136
- _React$useState6 = _slicedToArray(_React$useState5, 2),
137
- loading = _React$useState6[0],
138
- setLoading = _React$useState6[1];
139
- var columns = React.useMemo(function () {
140
- return getColumnsFromOptions({
141
- dataSet: options.dataSet,
142
- editable: options.editable,
143
- maxColumns: options.maxColumns,
144
- visibleFields: options.visibleFields
145
- });
146
- }, [options.dataSet, options.editable, options.maxColumns, options.visibleFields]);
147
- var _React$useState7 = React.useState(function () {
148
- return addTreeDataOptionsToDemoData({
149
- columns: columns,
150
- rows: [],
151
- initialState: getInitialState(options, columns)
152
- }, options.treeData);
153
- }),
154
- _React$useState8 = _slicedToArray(_React$useState7, 2),
155
- data = _React$useState8[0],
156
- setData = _React$useState8[1];
157
- React.useEffect(function () {
158
- var cacheKey = "".concat(options.dataSet, "-").concat(rowLength, "-").concat(index, "-").concat(options.maxColumns);
159
-
160
- // Cache to allow fast switch between the JavaScript and TypeScript version
161
- // of the demos.
162
- if (dataCache.has(cacheKey)) {
163
- var newData = dataCache.get(cacheKey);
164
- setData(newData);
165
- setLoading(false);
166
- return undefined;
167
- }
168
- var active = true;
169
- _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
170
- var _options$treeData2, _options$treeData3, _options$treeData4;
171
- var newData;
172
- return _regeneratorRuntime.wrap(function _callee$(_context) {
173
- while (1) switch (_context.prev = _context.next) {
174
- case 0:
175
- setLoading(true);
176
- if (!(rowLength > 1000)) {
177
- _context.next = 10;
178
- break;
179
- }
180
- _context.next = 4;
181
- return getRealGridData(1000, columns);
182
- case 4:
183
- newData = _context.sent;
184
- _context.next = 7;
185
- return extrapolateSeed(rowLength, newData);
186
- case 7:
187
- newData = _context.sent;
188
- _context.next = 13;
189
- break;
190
- case 10:
191
- _context.next = 12;
192
- return getRealGridData(rowLength, columns);
193
- case 12:
194
- newData = _context.sent;
195
- case 13:
196
- if (active) {
197
- _context.next = 15;
198
- break;
199
- }
200
- return _context.abrupt("return");
201
- case 15:
202
- newData = addTreeDataOptionsToDemoData(newData, {
203
- maxDepth: (_options$treeData2 = options.treeData) == null ? void 0 : _options$treeData2.maxDepth,
204
- groupingField: (_options$treeData3 = options.treeData) == null ? void 0 : _options$treeData3.groupingField,
205
- averageChildren: (_options$treeData4 = options.treeData) == null ? void 0 : _options$treeData4.averageChildren
206
- });
207
-
208
- // It's quite slow. No need for it in production.
209
- if (process.env.NODE_ENV !== 'production') {
210
- deepFreeze(newData);
211
- }
212
- dataCache.set(cacheKey, newData);
213
- setData(newData);
214
- setLoading(false);
215
- case 20:
216
- case "end":
217
- return _context.stop();
218
- }
219
- }, _callee);
220
- }))();
221
- return function () {
222
- active = false;
223
- };
224
- }, [rowLength, options.dataSet, options.maxColumns, (_options$treeData5 = options.treeData) == null ? void 0 : _options$treeData5.maxDepth, (_options$treeData6 = options.treeData) == null ? void 0 : _options$treeData6.groupingField, (_options$treeData7 = options.treeData) == null ? void 0 : _options$treeData7.averageChildren, index, columns]);
225
- return {
226
- data: data,
227
- loading: loading,
228
- setRowLength: setRowLength,
229
- loadNewData: function loadNewData() {
230
- setIndex(function (oldIndex) {
231
- return oldIndex + 1;
232
- });
233
- }
234
- };
235
- };