@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.
- package/CHANGELOG.md +298 -23
- package/columns/employees.columns.js +2 -0
- package/hooks/useQuery.d.ts +3 -0
- package/index.js +1 -1
- package/modern/columns/employees.columns.js +2 -0
- package/modern/index.js +1 -1
- package/modern/renderer/renderProgress.js +11 -4
- package/node/columns/employees.columns.js +2 -0
- package/node/index.js +1 -1
- package/node/renderer/renderProgress.js +11 -4
- package/package.json +3 -3
- package/renderer/renderProgress.js +11 -4
- package/legacy/columns/commodities.columns.js +0 -253
- package/legacy/columns/employees.columns.js +0 -141
- package/legacy/columns/index.js +0 -2
- package/legacy/hooks/index.js +0 -4
- package/legacy/hooks/useBasicDemoData.js +0 -7
- package/legacy/hooks/useDemoData.js +0 -235
- package/legacy/hooks/useMovieData.js +0 -497
- package/legacy/hooks/useQuery.js +0 -262
- package/legacy/index.js +0 -11
- package/legacy/renderer/index.js +0 -16
- package/legacy/renderer/renderAvatar.js +0 -14
- package/legacy/renderer/renderCountry.js +0 -47
- package/legacy/renderer/renderEditCountry.js +0 -102
- package/legacy/renderer/renderEditCurrency.js +0 -99
- package/legacy/renderer/renderEditIncoterm.js +0 -91
- package/legacy/renderer/renderEditProgress.js +0 -110
- package/legacy/renderer/renderEditRating.js +0 -68
- package/legacy/renderer/renderEditStatus.js +0 -116
- package/legacy/renderer/renderEmail.js +0 -12
- package/legacy/renderer/renderIncoterm.js +0 -39
- package/legacy/renderer/renderLink.js +0 -31
- package/legacy/renderer/renderPnl.js +0 -35
- package/legacy/renderer/renderProgress.js +0 -63
- package/legacy/renderer/renderRating.js +0 -37
- package/legacy/renderer/renderStatus.js +0 -73
- package/legacy/renderer/renderTotalPrice.js +0 -48
- package/legacy/services/asyncWorker.js +0 -26
- package/legacy/services/basic-data-service.js +0 -37
- package/legacy/services/gridColDefGenerator.js +0 -1
- package/legacy/services/index.js +0 -4
- package/legacy/services/random-generator.js +0 -213
- package/legacy/services/real-data-service.js +0 -51
- package/legacy/services/static-data.js +0 -1260
- 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
|
-
};
|
package/legacy/columns/index.js
DELETED
package/legacy/hooks/index.js
DELETED
|
@@ -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
|
-
};
|