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