@mui/x-data-grid-generator 8.0.0-alpha.9 → 8.0.0-beta.0
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 +1446 -0
- package/columns/commodities.columns.d.ts +2 -2
- package/columns/commodities.columns.js +63 -56
- package/columns/employees.columns.d.ts +2 -2
- package/columns/employees.columns.js +38 -31
- package/columns/index.d.ts +2 -2
- package/columns/index.js +27 -2
- package/constants/prompts.d.ts +1 -1
- package/constants/prompts.js +7 -1
- package/esm/columns/commodities.columns.d.ts +2 -0
- package/{node → esm}/columns/commodities.columns.js +56 -63
- package/esm/columns/employees.columns.d.ts +2 -0
- package/{node → esm}/columns/employees.columns.js +31 -38
- package/esm/columns/index.d.ts +2 -0
- package/esm/columns/index.js +2 -0
- package/esm/constants/prompts.d.ts +2 -0
- package/{node → esm}/constants/prompts.js +1 -7
- package/esm/hooks/index.d.ts +8 -0
- package/esm/hooks/index.js +6 -0
- package/esm/hooks/serverUtils.d.ts +61 -0
- package/{node → esm}/hooks/serverUtils.js +26 -36
- package/esm/hooks/useBasicDemoData.d.ts +2 -0
- package/esm/hooks/useBasicDemoData.js +5 -0
- package/esm/hooks/useDemoData.d.ts +30 -0
- package/{node → esm}/hooks/useDemoData.js +23 -36
- package/esm/hooks/useMockServer.d.ts +31 -0
- package/{node → esm}/hooks/useMockServer.js +44 -51
- package/esm/hooks/useMovieData.d.ts +21 -0
- package/{node → esm}/hooks/useMovieData.js +4 -13
- package/esm/hooks/useQuery.d.ts +169 -0
- package/esm/hooks/useQuery.js +84 -0
- package/esm/index.d.ts +4 -0
- package/esm/index.js +11 -0
- package/esm/package.json +1 -0
- package/esm/renderer/index.d.ts +16 -0
- package/esm/renderer/index.js +16 -0
- package/esm/renderer/renderAvatar.d.ts +6 -0
- package/esm/renderer/renderAvatar.js +14 -0
- package/esm/renderer/renderCountry.d.ts +4 -0
- package/esm/renderer/renderCountry.js +57 -0
- package/esm/renderer/renderEditCountry.d.ts +4 -0
- package/esm/renderer/renderEditCountry.js +80 -0
- package/esm/renderer/renderEditCurrency.d.ts +3 -0
- package/esm/renderer/renderEditCurrency.js +78 -0
- package/esm/renderer/renderEditIncoterm.d.ts +3 -0
- package/esm/renderer/renderEditIncoterm.js +75 -0
- package/esm/renderer/renderEditProgress.d.ts +3 -0
- package/{node → esm}/renderer/renderEditProgress.js +21 -28
- package/esm/renderer/renderEditRating.d.ts +3 -0
- package/{node → esm}/renderer/renderEditRating.js +11 -19
- package/esm/renderer/renderEditStatus.d.ts +3 -0
- package/esm/renderer/renderEditStatus.js +98 -0
- package/esm/renderer/renderEmail.d.ts +3 -0
- package/esm/renderer/renderEmail.js +11 -0
- package/esm/renderer/renderIncoterm.d.ts +3 -0
- package/esm/renderer/renderIncoterm.js +40 -0
- package/esm/renderer/renderLink.d.ts +10 -0
- package/esm/renderer/renderLink.js +31 -0
- package/esm/renderer/renderPnl.d.ts +3 -0
- package/esm/renderer/renderPnl.js +41 -0
- package/esm/renderer/renderProgress.d.ts +3 -0
- package/{node → esm}/renderer/renderProgress.js +15 -23
- package/esm/renderer/renderRating.d.ts +3 -0
- package/esm/renderer/renderRating.js +38 -0
- package/esm/renderer/renderStatus.d.ts +3 -0
- package/{node → esm}/renderer/renderStatus.js +16 -24
- package/esm/renderer/renderTotalPrice.d.ts +3 -0
- package/{node → esm}/renderer/renderTotalPrice.js +11 -19
- package/esm/services/asyncWorker.d.ts +11 -0
- package/{node → esm}/services/asyncWorker.js +1 -7
- package/esm/services/basic-data-service.d.ts +13 -0
- package/esm/services/basic-data-service.js +37 -0
- package/esm/services/gridColDefGenerator.d.ts +23 -0
- package/esm/services/gridColDefGenerator.js +1 -0
- package/esm/services/index.d.ts +5 -0
- package/esm/services/index.js +5 -0
- package/esm/services/prompt-resolver.d.ts +2 -0
- package/esm/services/prompt-resolver.js +13 -0
- package/esm/services/random-generator.d.ts +49 -0
- package/esm/services/random-generator.js +124 -0
- package/esm/services/real-data-service.d.ts +8 -0
- package/{node → esm}/services/real-data-service.js +3 -10
- package/esm/services/static-data.d.ts +18 -0
- package/{node → esm}/services/static-data.js +12 -18
- package/esm/services/tree-data-generator.d.ts +21 -0
- package/{node → esm}/services/tree-data-generator.js +6 -14
- package/hooks/index.d.ts +7 -7
- package/hooks/index.js +71 -6
- package/hooks/serverUtils.d.ts +33 -33
- package/hooks/serverUtils.js +36 -26
- package/hooks/useBasicDemoData.d.ts +2 -2
- package/hooks/useBasicDemoData.js +13 -5
- package/hooks/useDemoData.d.ts +18 -19
- package/hooks/useDemoData.js +36 -23
- package/hooks/useMockServer.d.ts +25 -23
- package/hooks/useMockServer.js +52 -43
- package/hooks/useMovieData.d.ts +15 -15
- package/hooks/useMovieData.js +13 -4
- package/hooks/useQuery.d.ts +164 -164
- package/hooks/useQuery.js +27 -19
- package/index.d.ts +4 -4
- package/index.js +50 -5
- package/modern/columns/commodities.columns.d.ts +2 -0
- package/modern/columns/employees.columns.d.ts +2 -0
- package/modern/columns/index.d.ts +2 -0
- package/modern/constants/prompts.d.ts +2 -0
- package/modern/hooks/index.d.ts +8 -0
- package/modern/hooks/serverUtils.d.ts +61 -0
- package/modern/hooks/useBasicDemoData.d.ts +2 -0
- package/modern/hooks/useDemoData.d.ts +30 -0
- package/modern/hooks/useMockServer.d.ts +31 -0
- package/modern/hooks/useMockServer.js +2 -1
- package/modern/hooks/useMovieData.d.ts +21 -0
- package/modern/hooks/useQuery.d.ts +169 -0
- package/modern/index.d.ts +4 -0
- package/modern/index.js +1 -1
- package/modern/package.json +1 -0
- package/modern/renderer/index.d.ts +16 -0
- package/modern/renderer/renderAvatar.d.ts +6 -0
- package/modern/renderer/renderCountry.d.ts +4 -0
- package/modern/renderer/renderCountry.js +11 -2
- package/modern/renderer/renderEditCountry.d.ts +4 -0
- package/modern/renderer/renderEditCurrency.d.ts +3 -0
- package/modern/renderer/renderEditIncoterm.d.ts +3 -0
- package/modern/renderer/renderEditProgress.d.ts +3 -0
- package/modern/renderer/renderEditRating.d.ts +3 -0
- package/modern/renderer/renderEditStatus.d.ts +3 -0
- package/modern/renderer/renderEmail.d.ts +3 -0
- package/modern/renderer/renderIncoterm.d.ts +3 -0
- package/modern/renderer/renderLink.d.ts +10 -0
- package/modern/renderer/renderPnl.d.ts +3 -0
- package/modern/renderer/renderProgress.d.ts +3 -0
- package/modern/renderer/renderRating.d.ts +3 -0
- package/modern/renderer/renderStatus.d.ts +3 -0
- package/modern/renderer/renderTotalPrice.d.ts +3 -0
- package/modern/services/asyncWorker.d.ts +11 -0
- package/modern/services/basic-data-service.d.ts +13 -0
- package/modern/services/gridColDefGenerator.d.ts +23 -0
- package/modern/services/index.d.ts +5 -0
- package/modern/services/prompt-resolver.d.ts +2 -0
- package/modern/services/random-generator.d.ts +49 -0
- package/modern/services/real-data-service.d.ts +8 -0
- package/modern/services/static-data.d.ts +18 -0
- package/modern/services/tree-data-generator.d.ts +21 -0
- package/package.json +54 -7
- package/renderer/index.d.ts +16 -16
- package/renderer/index.js +181 -16
- package/renderer/renderAvatar.d.ts +3 -3
- package/renderer/renderAvatar.js +13 -5
- package/renderer/renderCountry.d.ts +2 -2
- package/renderer/renderCountry.js +27 -10
- package/renderer/renderEditCountry.d.ts +2 -2
- package/renderer/renderEditCountry.js +29 -21
- package/renderer/renderEditCurrency.d.ts +1 -1
- package/renderer/renderEditCurrency.js +28 -20
- package/renderer/renderEditIncoterm.d.ts +1 -1
- package/renderer/renderEditIncoterm.js +25 -17
- package/renderer/renderEditProgress.d.ts +1 -1
- package/renderer/renderEditProgress.js +28 -21
- package/renderer/renderEditRating.d.ts +1 -1
- package/renderer/renderEditRating.js +19 -11
- package/renderer/renderEditStatus.d.ts +1 -1
- package/renderer/renderEditStatus.js +36 -28
- package/renderer/renderEmail.d.ts +1 -1
- package/renderer/renderEmail.js +12 -5
- package/renderer/renderIncoterm.d.ts +1 -1
- package/renderer/renderIncoterm.js +19 -11
- package/renderer/renderLink.d.ts +4 -4
- package/renderer/renderLink.js +16 -8
- package/renderer/renderPnl.d.ts +1 -1
- package/renderer/renderPnl.js +20 -12
- package/renderer/renderProgress.d.ts +1 -1
- package/renderer/renderProgress.js +23 -15
- package/renderer/renderRating.d.ts +1 -1
- package/renderer/renderRating.js +16 -8
- package/renderer/renderStatus.d.ts +1 -1
- package/renderer/renderStatus.js +24 -16
- package/renderer/renderTotalPrice.d.ts +1 -1
- package/renderer/renderTotalPrice.js +19 -11
- package/services/asyncWorker.d.ts +11 -7
- package/services/asyncWorker.js +7 -1
- package/services/basic-data-service.d.ts +6 -6
- package/services/basic-data-service.js +10 -3
- package/services/gridColDefGenerator.d.ts +19 -19
- package/services/gridColDefGenerator.js +5 -1
- package/services/index.d.ts +5 -5
- package/services/index.js +60 -5
- package/services/prompt-resolver.d.ts +1 -1
- package/services/prompt-resolver.js +11 -4
- package/services/random-generator.d.ts +5 -5
- package/services/random-generator.js +92 -46
- package/services/real-data-service.d.ts +5 -5
- package/services/real-data-service.js +10 -3
- package/services/static-data.d.ts +6 -6
- package/services/static-data.js +18 -12
- package/services/tree-data-generator.d.ts +18 -19
- package/services/tree-data-generator.js +14 -6
- package/tsconfig.build.tsbuildinfo +1 -0
- package/columns/package.json +0 -6
- package/hooks/package.json +0 -6
- package/node/columns/index.js +0 -27
- package/node/hooks/index.js +0 -71
- package/node/hooks/useBasicDemoData.js +0 -13
- package/node/hooks/useQuery.js +0 -92
- package/node/index.js +0 -56
- package/node/renderer/index.js +0 -181
- package/node/renderer/renderAvatar.js +0 -22
- package/node/renderer/renderCountry.js +0 -56
- package/node/renderer/renderEditCountry.js +0 -88
- package/node/renderer/renderEditCurrency.js +0 -86
- package/node/renderer/renderEditIncoterm.js +0 -83
- package/node/renderer/renderEditStatus.js +0 -106
- package/node/renderer/renderEmail.js +0 -18
- package/node/renderer/renderIncoterm.js +0 -48
- package/node/renderer/renderLink.js +0 -39
- package/node/renderer/renderPnl.js +0 -49
- package/node/renderer/renderRating.js +0 -46
- package/node/services/basic-data-service.js +0 -44
- package/node/services/gridColDefGenerator.js +0 -5
- package/node/services/index.js +0 -60
- package/node/services/prompt-resolver.js +0 -20
- package/node/services/random-generator.js +0 -170
- package/renderer/package.json +0 -6
- package/services/package.json +0 -6
package/hooks/serverUtils.d.ts
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
import { GridRowModel, GridFilterModel, GridSortModel, GridColDef, GridRowId, GridPaginationModel, GridValidRowModel, GridAggregationModel } from '@mui/x-data-grid-premium';
|
|
2
2
|
export interface FakeServerResponse {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
returnedRows: GridRowModel[];
|
|
4
|
+
aggregateRow?: GridValidRowModel;
|
|
5
|
+
nextCursor?: string;
|
|
6
|
+
hasNextPage?: boolean;
|
|
7
|
+
totalRowCount: number;
|
|
8
8
|
}
|
|
9
9
|
export interface PageInfo {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
totalRowCount?: number;
|
|
11
|
+
nextCursor?: string;
|
|
12
|
+
hasNextPage?: boolean;
|
|
13
|
+
pageSize?: number;
|
|
14
14
|
}
|
|
15
15
|
export interface DefaultServerOptions {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
minDelay: number;
|
|
17
|
+
maxDelay: number;
|
|
18
|
+
useCursorPagination?: boolean;
|
|
19
19
|
}
|
|
20
20
|
export type ServerOptions = Partial<DefaultServerOptions>;
|
|
21
21
|
export interface QueryOptions {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
cursor?: GridRowId;
|
|
23
|
+
page?: number;
|
|
24
|
+
pageSize?: number;
|
|
25
|
+
filterModel?: GridFilterModel;
|
|
26
|
+
aggregationModel?: GridAggregationModel;
|
|
27
|
+
sortModel?: GridSortModel;
|
|
28
|
+
start?: number;
|
|
29
|
+
end?: number;
|
|
30
30
|
}
|
|
31
31
|
export interface ServerSideQueryOptions {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
cursor?: GridRowId;
|
|
33
|
+
paginationModel?: GridPaginationModel;
|
|
34
|
+
groupKeys?: string[];
|
|
35
|
+
filterModel?: GridFilterModel;
|
|
36
|
+
sortModel?: GridSortModel;
|
|
37
|
+
aggregationModel?: GridAggregationModel;
|
|
38
|
+
start?: number;
|
|
39
|
+
end?: number;
|
|
40
|
+
groupFields?: string[];
|
|
41
41
|
}
|
|
42
42
|
export declare const disableDelay: any;
|
|
43
43
|
export declare const DEFAULT_SERVER_OPTIONS: DefaultServerOptions;
|
|
@@ -46,9 +46,9 @@ export declare const DEFAULT_SERVER_OPTIONS: DefaultServerOptions;
|
|
|
46
46
|
*/
|
|
47
47
|
export declare const loadServerRows: (rows: GridRowModel[], queryOptions: QueryOptions, serverOptions: ServerOptions, columnsWithDefaultColDef: GridColDef[]) => Promise<FakeServerResponse>;
|
|
48
48
|
interface NestedDataRowsResponse {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
rows: GridRowModel[];
|
|
50
|
+
rootRowCount: number;
|
|
51
|
+
aggregateRow?: GridRowModel;
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Simulates server data for tree-data feature
|
|
@@ -58,4 +58,4 @@ export declare const processTreeDataRows: (rows: GridRowModel[], queryOptions: S
|
|
|
58
58
|
* Simulates server data for row grouping feature
|
|
59
59
|
*/
|
|
60
60
|
export declare const processRowGroupingRows: (rows: GridValidRowModel[], queryOptions: ServerSideQueryOptions, serverOptions: ServerOptions, columnsWithDefaultColDef: GridColDef[]) => Promise<NestedDataRowsResponse>;
|
|
61
|
-
export {};
|
|
61
|
+
export {};
|
package/hooks/serverUtils.js
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.processTreeDataRows = exports.processRowGroupingRows = exports.loadServerRows = exports.disableDelay = exports.DEFAULT_SERVER_OPTIONS = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _xDataGridPremium = require("@mui/x-data-grid-premium");
|
|
10
|
+
var _randomGenerator = require("../services/random-generator");
|
|
4
11
|
const getAvailableAggregationFunctions = columnType => {
|
|
5
12
|
const availableAggregationFunctions = new Map();
|
|
6
|
-
Object.keys(GRID_AGGREGATION_FUNCTIONS).forEach(functionName => {
|
|
7
|
-
const columnTypes = GRID_AGGREGATION_FUNCTIONS[functionName].columnTypes;
|
|
13
|
+
Object.keys(_xDataGridPremium.GRID_AGGREGATION_FUNCTIONS).forEach(functionName => {
|
|
14
|
+
const columnTypes = _xDataGridPremium.GRID_AGGREGATION_FUNCTIONS[functionName].columnTypes;
|
|
8
15
|
if (!columnTypes || columnTypes.includes(columnType ?? 'string')) {
|
|
9
|
-
availableAggregationFunctions.set(functionName, GRID_AGGREGATION_FUNCTIONS[functionName]);
|
|
16
|
+
availableAggregationFunctions.set(functionName, _xDataGridPremium.GRID_AGGREGATION_FUNCTIONS[functionName]);
|
|
10
17
|
}
|
|
11
18
|
});
|
|
12
19
|
return availableAggregationFunctions;
|
|
13
20
|
};
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
const disableDelay = exports.disableDelay = typeof DISABLE_CHANCE_RANDOM !== 'undefined' && DISABLE_CHANCE_RANDOM;
|
|
22
|
+
const DEFAULT_SERVER_OPTIONS = exports.DEFAULT_SERVER_OPTIONS = {
|
|
16
23
|
minDelay: disableDelay ? 0 : 100,
|
|
17
24
|
maxDelay: disableDelay ? 0 : 300,
|
|
18
25
|
useCursorPagination: true
|
|
@@ -31,7 +38,7 @@ const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
|
|
|
31
38
|
const colDef = columnsWithDefaultColDef.find(({
|
|
32
39
|
field
|
|
33
40
|
}) => field === columnField);
|
|
34
|
-
return
|
|
41
|
+
return (0, _extends2.default)({}, sortItem, {
|
|
35
42
|
valueGetter: simplifiedValueGetter(columnField, colDef),
|
|
36
43
|
sortComparator: colDef.sortComparator
|
|
37
44
|
});
|
|
@@ -120,7 +127,7 @@ const getQuicklyFilteredRows = (rows, filterModel, columnsWithDefaultColDef) =>
|
|
|
120
127
|
if (isRowMatchingQuickFilter) {
|
|
121
128
|
return rows.filter(row => {
|
|
122
129
|
const result = isRowMatchingQuickFilter(row);
|
|
123
|
-
return filterModel.quickFilterLogicOperator === GridLogicOperator.And ? Object.values(result).every(Boolean) : Object.values(result).some(Boolean);
|
|
130
|
+
return filterModel.quickFilterLogicOperator === _xDataGridPremium.GridLogicOperator.And ? Object.values(result).every(Boolean) : Object.values(result).some(Boolean);
|
|
124
131
|
});
|
|
125
132
|
}
|
|
126
133
|
return rows;
|
|
@@ -154,7 +161,7 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
|
|
|
154
161
|
value: parsedValue
|
|
155
162
|
}, colDef);
|
|
156
163
|
});
|
|
157
|
-
if (filterModel.logicOperator === GridLogicOperator.Or) {
|
|
164
|
+
if (filterModel.logicOperator === _xDataGridPremium.GridLogicOperator.Or) {
|
|
158
165
|
return rows.filter(row => filterModel.items.some((_, index) => {
|
|
159
166
|
const value = valueGetters[index](row);
|
|
160
167
|
return filterFunctions[index] === null ? true : filterFunctions[index](value);
|
|
@@ -199,7 +206,7 @@ const applyAggregation = (aggregationModel, colDefs, rows, groupId = 'root') =>
|
|
|
199
206
|
/**
|
|
200
207
|
* Simulates server data loading
|
|
201
208
|
*/
|
|
202
|
-
|
|
209
|
+
const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultColDef) => {
|
|
203
210
|
const {
|
|
204
211
|
minDelay = 100,
|
|
205
212
|
maxDelay = 300,
|
|
@@ -208,7 +215,7 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
|
|
|
208
215
|
if (maxDelay < minDelay) {
|
|
209
216
|
throw new Error('serverOptions.minDelay is larger than serverOptions.maxDelay ');
|
|
210
217
|
}
|
|
211
|
-
const delay = randomInt(minDelay, maxDelay);
|
|
218
|
+
const delay = (0, _randomGenerator.randomInt)(minDelay, maxDelay);
|
|
212
219
|
const {
|
|
213
220
|
cursor,
|
|
214
221
|
page = 0,
|
|
@@ -245,7 +252,7 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
|
|
|
245
252
|
lastRowIndex = (page + 1) * pageSize - 1;
|
|
246
253
|
}
|
|
247
254
|
const hasNextPage = lastRowIndex < filteredRows.length - 1;
|
|
248
|
-
const response =
|
|
255
|
+
const response = (0, _extends2.default)({
|
|
249
256
|
returnedRows: filteredRows.slice(firstRowIndex, lastRowIndex + 1),
|
|
250
257
|
hasNextPage,
|
|
251
258
|
nextCursor,
|
|
@@ -259,6 +266,7 @@ export const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDef
|
|
|
259
266
|
}, delay); // simulate network latency
|
|
260
267
|
});
|
|
261
268
|
};
|
|
269
|
+
exports.loadServerRows = loadServerRows;
|
|
262
270
|
const findTreeDataRowChildren = (allRows, parentPath, pathKey = 'path', depth = 1, rowQualifier) => {
|
|
263
271
|
const parentDepth = parentPath.length;
|
|
264
272
|
const children = [];
|
|
@@ -336,7 +344,7 @@ const getTreeDataFilteredRows = (rows, filterModel, columnsWithDefaultColDef) =>
|
|
|
336
344
|
/**
|
|
337
345
|
* Simulates server data for tree-data feature
|
|
338
346
|
*/
|
|
339
|
-
|
|
347
|
+
const processTreeDataRows = (rows, queryOptions, serverOptions, columnsWithDefaultColDef) => {
|
|
340
348
|
const {
|
|
341
349
|
minDelay = 100,
|
|
342
350
|
maxDelay = 300
|
|
@@ -349,7 +357,7 @@ export const processTreeDataRows = (rows, queryOptions, serverOptions, columnsWi
|
|
|
349
357
|
if (queryOptions.groupKeys == null) {
|
|
350
358
|
throw new Error('serverOptions.groupKeys must be defined to compute tree data ');
|
|
351
359
|
}
|
|
352
|
-
const delay = randomInt(minDelay, maxDelay);
|
|
360
|
+
const delay = (0, _randomGenerator.randomInt)(minDelay, maxDelay);
|
|
353
361
|
|
|
354
362
|
// apply plain filtering
|
|
355
363
|
const filteredRows = getTreeDataFilteredRows(rows, queryOptions.filterModel, columnsWithDefaultColDef);
|
|
@@ -364,11 +372,11 @@ export const processTreeDataRows = (rows, queryOptions, serverOptions, columnsWi
|
|
|
364
372
|
const descendantCount = descendants.length;
|
|
365
373
|
if (descendantCount > 0 && queryOptions.aggregationModel) {
|
|
366
374
|
// Parent row, compute aggregation
|
|
367
|
-
return
|
|
375
|
+
return (0, _extends2.default)({}, row, {
|
|
368
376
|
descendantCount
|
|
369
377
|
}, applyAggregation(queryOptions.aggregationModel, columnsWithDefaultColDef, descendants, row.id));
|
|
370
378
|
}
|
|
371
|
-
return
|
|
379
|
+
return (0, _extends2.default)({}, row, {
|
|
372
380
|
descendantCount
|
|
373
381
|
});
|
|
374
382
|
});
|
|
@@ -405,7 +413,8 @@ export const processTreeDataRows = (rows, queryOptions, serverOptions, columnsWi
|
|
|
405
413
|
/**
|
|
406
414
|
* Simulates server data for row grouping feature
|
|
407
415
|
*/
|
|
408
|
-
|
|
416
|
+
exports.processTreeDataRows = processTreeDataRows;
|
|
417
|
+
const processRowGroupingRows = (rows, queryOptions, serverOptions, columnsWithDefaultColDef) => {
|
|
409
418
|
const {
|
|
410
419
|
minDelay = 100,
|
|
411
420
|
maxDelay = 300
|
|
@@ -420,7 +429,7 @@ export const processRowGroupingRows = (rows, queryOptions, serverOptions, column
|
|
|
420
429
|
if (queryOptions.groupFields == null) {
|
|
421
430
|
throw new Error('serverOptions.groupFields must be defined to compute row grouping data');
|
|
422
431
|
}
|
|
423
|
-
const delay = randomInt(minDelay, maxDelay);
|
|
432
|
+
const delay = (0, _randomGenerator.randomInt)(minDelay, maxDelay);
|
|
424
433
|
const pathsToAutogenerate = new Set();
|
|
425
434
|
let rowsWithPaths = rows;
|
|
426
435
|
const rowsWithMissingGroups = [];
|
|
@@ -434,7 +443,7 @@ export const processRowGroupingRows = (rows, queryOptions, serverOptions, column
|
|
|
434
443
|
const value = partialPath[index];
|
|
435
444
|
if (value === undefined) {
|
|
436
445
|
if (index === 0) {
|
|
437
|
-
rowsWithMissingGroups.push(
|
|
446
|
+
rowsWithMissingGroups.push((0, _extends2.default)({}, row, {
|
|
438
447
|
group: false
|
|
439
448
|
}));
|
|
440
449
|
}
|
|
@@ -446,13 +455,13 @@ export const processRowGroupingRows = (rows, queryOptions, serverOptions, column
|
|
|
446
455
|
pathsToAutogenerate.add(strigifiedPath);
|
|
447
456
|
}
|
|
448
457
|
}
|
|
449
|
-
acc.push(
|
|
458
|
+
acc.push((0, _extends2.default)({}, row, {
|
|
450
459
|
path: [...partialPath, '']
|
|
451
460
|
}));
|
|
452
461
|
return acc;
|
|
453
462
|
}, []);
|
|
454
463
|
} else {
|
|
455
|
-
rowsWithPaths = rows.map(row =>
|
|
464
|
+
rowsWithPaths = rows.map(row => (0, _extends2.default)({}, row, {
|
|
456
465
|
path: ['']
|
|
457
466
|
}));
|
|
458
467
|
}
|
|
@@ -487,11 +496,11 @@ export const processRowGroupingRows = (rows, queryOptions, serverOptions, column
|
|
|
487
496
|
const descendantCount = descendants.length;
|
|
488
497
|
if (descendantCount > 0 && queryOptions.aggregationModel) {
|
|
489
498
|
// Parent row, compute aggregation
|
|
490
|
-
return
|
|
499
|
+
return (0, _extends2.default)({}, row, {
|
|
491
500
|
descendantCount
|
|
492
501
|
}, applyAggregation(queryOptions.aggregationModel, columnsWithDefaultColDef, descendants, row.id));
|
|
493
502
|
}
|
|
494
|
-
return
|
|
503
|
+
return (0, _extends2.default)({}, row, {
|
|
495
504
|
descendantCount
|
|
496
505
|
});
|
|
497
506
|
});
|
|
@@ -524,4 +533,5 @@ export const processRowGroupingRows = (rows, queryOptions, serverOptions, column
|
|
|
524
533
|
});
|
|
525
534
|
}, delay); // simulate network latency
|
|
526
535
|
});
|
|
527
|
-
};
|
|
536
|
+
};
|
|
537
|
+
exports.processRowGroupingRows = processRowGroupingRows;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GridBasicData } from
|
|
2
|
-
export declare const useBasicDemoData: (nbRows: number, nbCols: number) => GridBasicData;
|
|
1
|
+
import { GridBasicData } from "../services/index.js";
|
|
2
|
+
export declare const useBasicDemoData: (nbRows: number, nbCols: number) => GridBasicData;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useBasicDemoData = void 0;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _services = require("../services");
|
|
10
|
+
const useBasicDemoData = (nbRows, nbCols) => {
|
|
11
|
+
return React.useMemo(() => (0, _services.getBasicGridData)(nbRows, nbCols), [nbRows, nbCols]);
|
|
12
|
+
};
|
|
13
|
+
exports.useBasicDemoData = useBasicDemoData;
|
package/hooks/useDemoData.d.ts
CHANGED
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
import { GridColumnVisibilityModel } from '@mui/x-data-grid-premium';
|
|
2
|
-
import { GridDemoData } from
|
|
3
|
-
import { GridColDefGenerator } from
|
|
4
|
-
import { AddPathToDemoDataOptions, DemoTreeDataValue } from
|
|
2
|
+
import { GridDemoData } from "../services/real-data-service.js";
|
|
3
|
+
import { GridColDefGenerator } from "../services/gridColDefGenerator.js";
|
|
4
|
+
import { AddPathToDemoDataOptions, DemoTreeDataValue } from "../services/tree-data-generator.js";
|
|
5
5
|
export type DemoDataReturnType = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
data: DemoTreeDataValue;
|
|
7
|
+
loading: boolean;
|
|
8
|
+
setRowLength: (count: number) => void;
|
|
9
|
+
loadNewData: () => void;
|
|
10
10
|
};
|
|
11
11
|
type DataSet = 'Commodity' | 'Employee';
|
|
12
12
|
export interface UseDemoDataOptions {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
dataSet: DataSet;
|
|
14
|
+
rowLength: number;
|
|
15
|
+
maxColumns?: number;
|
|
16
|
+
visibleFields?: string[];
|
|
17
|
+
editable?: boolean;
|
|
18
|
+
treeData?: AddPathToDemoDataOptions;
|
|
19
19
|
}
|
|
20
20
|
export declare function extrapolateSeed(rowLength: number, data: GridDemoData): Promise<GridDemoData>;
|
|
21
21
|
export declare const deepFreeze: <T>(object: T) => T;
|
|
22
|
-
export interface ColumnsOptions extends Pick<UseDemoDataOptions, 'dataSet' | 'editable' | 'maxColumns' | 'visibleFields'> {
|
|
23
|
-
}
|
|
22
|
+
export interface ColumnsOptions extends Pick<UseDemoDataOptions, 'dataSet' | 'editable' | 'maxColumns' | 'visibleFields'> {}
|
|
24
23
|
export declare const getColumnsFromOptions: (options: ColumnsOptions) => GridColDefGenerator[];
|
|
25
24
|
export declare const getInitialState: (options: UseDemoDataOptions, columns: GridColDefGenerator[]) => {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
columns: {
|
|
26
|
+
columnVisibilityModel: GridColumnVisibilityModel;
|
|
27
|
+
};
|
|
29
28
|
};
|
|
30
29
|
export declare const useDemoData: (options: UseDemoDataOptions) => DemoDataReturnType;
|
|
31
|
-
export {};
|
|
30
|
+
export {};
|
package/hooks/useDemoData.js
CHANGED
|
@@ -1,20 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
'use client';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.deepFreeze = void 0;
|
|
10
|
+
exports.extrapolateSeed = extrapolateSeed;
|
|
11
|
+
exports.useDemoData = exports.getInitialState = exports.getColumnsFromOptions = void 0;
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
var React = _interopRequireWildcard(require("react"));
|
|
14
|
+
var _lruCache = require("lru-cache");
|
|
15
|
+
var _realDataService = require("../services/real-data-service");
|
|
16
|
+
var _commodities = require("../columns/commodities.columns");
|
|
17
|
+
var _employees = require("../columns/employees.columns");
|
|
18
|
+
var _asyncWorker = _interopRequireDefault(require("../services/asyncWorker"));
|
|
19
|
+
var _treeDataGenerator = require("../services/tree-data-generator");
|
|
20
|
+
const dataCache = new _lruCache.LRUCache({
|
|
12
21
|
max: 10,
|
|
13
22
|
ttl: 60 * 5 * 1e3 // 5 minutes
|
|
14
23
|
});
|
|
15
24
|
// Generate fake data from a seed.
|
|
16
25
|
// It's about x20 faster than getRealData.
|
|
17
|
-
|
|
26
|
+
async function extrapolateSeed(rowLength, data) {
|
|
18
27
|
return new Promise(resolve => {
|
|
19
28
|
const seed = data.rows;
|
|
20
29
|
const rows = data.rows.slice();
|
|
@@ -35,16 +44,16 @@ export async function extrapolateSeed(rowLength, data) {
|
|
|
35
44
|
rows.push(row);
|
|
36
45
|
tasks.current -= 1;
|
|
37
46
|
}
|
|
38
|
-
|
|
47
|
+
(0, _asyncWorker.default)({
|
|
39
48
|
work,
|
|
40
|
-
done: () => resolve(
|
|
49
|
+
done: () => resolve((0, _extends2.default)({}, data, {
|
|
41
50
|
rows
|
|
42
51
|
})),
|
|
43
52
|
tasks
|
|
44
53
|
});
|
|
45
54
|
});
|
|
46
55
|
}
|
|
47
|
-
|
|
56
|
+
const deepFreeze = object => {
|
|
48
57
|
// Retrieve the property names defined on object
|
|
49
58
|
const propNames = Object.getOwnPropertyNames(object);
|
|
50
59
|
|
|
@@ -58,10 +67,11 @@ export const deepFreeze = object => {
|
|
|
58
67
|
}
|
|
59
68
|
return Object.freeze(object);
|
|
60
69
|
};
|
|
61
|
-
|
|
62
|
-
|
|
70
|
+
exports.deepFreeze = deepFreeze;
|
|
71
|
+
const getColumnsFromOptions = options => {
|
|
72
|
+
let columns = options.dataSet === 'Commodity' ? (0, _commodities.getCommodityColumns)(options.editable) : (0, _employees.getEmployeeColumns)();
|
|
63
73
|
if (options.visibleFields) {
|
|
64
|
-
columns = columns.map(col => options.visibleFields?.includes(col.field) ? col :
|
|
74
|
+
columns = columns.map(col => options.visibleFields?.includes(col.field) ? col : (0, _extends2.default)({}, col, {
|
|
65
75
|
hide: true
|
|
66
76
|
}));
|
|
67
77
|
}
|
|
@@ -70,7 +80,8 @@ export const getColumnsFromOptions = options => {
|
|
|
70
80
|
}
|
|
71
81
|
return columns;
|
|
72
82
|
};
|
|
73
|
-
|
|
83
|
+
exports.getColumnsFromOptions = getColumnsFromOptions;
|
|
84
|
+
const getInitialState = (options, columns) => {
|
|
74
85
|
const columnVisibilityModel = {};
|
|
75
86
|
columns.forEach(col => {
|
|
76
87
|
if (col.hide) {
|
|
@@ -87,7 +98,8 @@ export const getInitialState = (options, columns) => {
|
|
|
87
98
|
}
|
|
88
99
|
};
|
|
89
100
|
};
|
|
90
|
-
|
|
101
|
+
exports.getInitialState = getInitialState;
|
|
102
|
+
const useDemoData = options => {
|
|
91
103
|
const [rowLength, setRowLength] = React.useState(options.rowLength);
|
|
92
104
|
const [index, setIndex] = React.useState(0);
|
|
93
105
|
const [loading, setLoading] = React.useState(true);
|
|
@@ -100,7 +112,7 @@ export const useDemoData = options => {
|
|
|
100
112
|
});
|
|
101
113
|
}, [options.dataSet, options.editable, options.maxColumns, options.visibleFields]);
|
|
102
114
|
const [data, setData] = React.useState(() => {
|
|
103
|
-
return addTreeDataOptionsToDemoData({
|
|
115
|
+
return (0, _treeDataGenerator.addTreeDataOptionsToDemoData)({
|
|
104
116
|
columns,
|
|
105
117
|
rows: [],
|
|
106
118
|
initialState: getInitialState(options, columns)
|
|
@@ -122,15 +134,15 @@ export const useDemoData = options => {
|
|
|
122
134
|
setLoading(true);
|
|
123
135
|
let newData;
|
|
124
136
|
if (rowLength > 1000) {
|
|
125
|
-
newData = await getRealGridData(1000, columns);
|
|
137
|
+
newData = await (0, _realDataService.getRealGridData)(1000, columns);
|
|
126
138
|
newData = await extrapolateSeed(rowLength, newData);
|
|
127
139
|
} else {
|
|
128
|
-
newData = await getRealGridData(rowLength, columns);
|
|
140
|
+
newData = await (0, _realDataService.getRealGridData)(rowLength, columns);
|
|
129
141
|
}
|
|
130
142
|
if (!active) {
|
|
131
143
|
return;
|
|
132
144
|
}
|
|
133
|
-
newData = addTreeDataOptionsToDemoData(newData, {
|
|
145
|
+
newData = (0, _treeDataGenerator.addTreeDataOptionsToDemoData)(newData, {
|
|
134
146
|
maxDepth: options.treeData?.maxDepth,
|
|
135
147
|
groupingField: options.treeData?.groupingField,
|
|
136
148
|
averageChildren: options.treeData?.averageChildren
|
|
@@ -156,4 +168,5 @@ export const useDemoData = options => {
|
|
|
156
168
|
setIndex(oldIndex => oldIndex + 1);
|
|
157
169
|
}
|
|
158
170
|
};
|
|
159
|
-
};
|
|
171
|
+
};
|
|
172
|
+
exports.useDemoData = useDemoData;
|
package/hooks/useMockServer.d.ts
CHANGED
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { GridGetRowsResponse } from '@mui/x-data-grid';
|
|
2
|
+
import { type GridRowModel, type GridColDef, type GridInitialState } from '@mui/x-data-grid-premium';
|
|
3
|
+
import { AddPathToDemoDataOptions } from "../services/tree-data-generator.js";
|
|
3
4
|
import type { ServerOptions } from './serverUtils';
|
|
4
5
|
export declare const BASE_URL = "https://mui.com/x/api/data-grid";
|
|
5
|
-
type UseMockServerResponse = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
type UseMockServerResponse<T> = {
|
|
7
|
+
columns: GridColDef[];
|
|
8
|
+
initialState: GridInitialState;
|
|
9
|
+
getGroupKey?: (row: GridRowModel) => string;
|
|
10
|
+
getChildrenCount?: (row: GridRowModel) => number;
|
|
11
|
+
fetchRows: (url: string) => Promise<T>;
|
|
12
|
+
loadNewData: () => void;
|
|
13
|
+
isReady: boolean;
|
|
12
14
|
};
|
|
13
15
|
type DataSet = 'Commodity' | 'Employee' | 'Movies';
|
|
14
16
|
interface UseMockServerOptions {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
dataSet: DataSet;
|
|
18
|
+
/**
|
|
19
|
+
* Has no effect when DataSet='Movies'
|
|
20
|
+
*/
|
|
21
|
+
rowLength: number;
|
|
22
|
+
maxColumns?: number;
|
|
23
|
+
visibleFields?: string[];
|
|
24
|
+
editable?: boolean;
|
|
25
|
+
treeData?: AddPathToDemoDataOptions;
|
|
26
|
+
rowGrouping?: boolean;
|
|
25
27
|
}
|
|
26
|
-
export declare const useMockServer: (dataSetOptions?: Partial<UseMockServerOptions>, serverOptions?: ServerOptions & {
|
|
27
|
-
|
|
28
|
-
}, shouldRequestsFail?: boolean) => UseMockServerResponse
|
|
29
|
-
export {};
|
|
28
|
+
export declare const useMockServer: <T extends GridGetRowsResponse>(dataSetOptions?: Partial<UseMockServerOptions>, serverOptions?: ServerOptions & {
|
|
29
|
+
verbose?: boolean;
|
|
30
|
+
}, shouldRequestsFail?: boolean) => UseMockServerResponse<T>;
|
|
31
|
+
export {};
|