@mui/x-data-grid-generator 7.7.1 → 7.8.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 +100 -1
- package/hooks/index.d.ts +3 -0
- package/hooks/index.js +3 -1
- package/hooks/serverUtils.d.ts +54 -0
- package/hooks/serverUtils.js +345 -0
- package/hooks/useDemoData.d.ts +3 -0
- package/hooks/useDemoData.js +2 -2
- package/hooks/useMockServer.d.ts +16 -0
- package/hooks/useMockServer.js +197 -0
- package/hooks/useQuery.d.ts +97 -128
- package/hooks/useQuery.js +2 -138
- package/index.js +1 -1
- package/modern/hooks/index.js +3 -1
- package/modern/hooks/serverUtils.js +345 -0
- package/modern/hooks/useDemoData.js +2 -2
- package/modern/hooks/useMockServer.js +197 -0
- package/modern/hooks/useQuery.js +2 -138
- package/modern/index.js +1 -1
- package/node/hooks/index.js +27 -1
- package/node/hooks/serverUtils.js +354 -0
- package/node/hooks/useDemoData.js +3 -0
- package/node/hooks/useMockServer.js +207 -0
- package/node/hooks/useQuery.js +5 -142
- package/node/index.js +1 -1
- package/package.json +2 -2
package/node/hooks/useQuery.js
CHANGED
|
@@ -4,155 +4,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.createFakeServer = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _xDataGridPro = require("@mui/x-data-grid-pro");
|
|
11
11
|
var _internals = require("@mui/x-data-grid/internals");
|
|
12
12
|
var _useDemoData = require("./useDemoData");
|
|
13
|
-
var
|
|
13
|
+
var _serverUtils = require("./serverUtils");
|
|
14
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
15
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
-
const apiRef = {};
|
|
17
|
-
const simplifiedValueGetter = (field, colDef) => row => {
|
|
18
|
-
return colDef.valueGetter?.(row[row.id], row, colDef, apiRef) || row[field];
|
|
19
|
-
};
|
|
20
|
-
const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
|
|
21
|
-
if (!sortModel) {
|
|
22
|
-
const comparator = () => 0;
|
|
23
|
-
return comparator;
|
|
24
|
-
}
|
|
25
|
-
const sortOperators = sortModel.map(sortItem => {
|
|
26
|
-
const columnField = sortItem.field;
|
|
27
|
-
const colDef = columnsWithDefaultColDef.find(({
|
|
28
|
-
field
|
|
29
|
-
}) => field === columnField);
|
|
30
|
-
return (0, _extends2.default)({}, sortItem, {
|
|
31
|
-
valueGetter: simplifiedValueGetter(columnField, colDef),
|
|
32
|
-
sortComparator: colDef.sortComparator
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
const comparator = (row1, row2) => sortOperators.reduce((acc, {
|
|
36
|
-
valueGetter,
|
|
37
|
-
sort,
|
|
38
|
-
sortComparator
|
|
39
|
-
}) => {
|
|
40
|
-
if (acc !== 0) {
|
|
41
|
-
return acc;
|
|
42
|
-
}
|
|
43
|
-
const v1 = valueGetter(row1);
|
|
44
|
-
const v2 = valueGetter(row2);
|
|
45
|
-
return sort === 'desc' ? -1 * sortComparator(v1, v2) : sortComparator(v1, v2);
|
|
46
|
-
}, 0);
|
|
47
|
-
return comparator;
|
|
48
|
-
};
|
|
49
|
-
const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
|
|
50
|
-
if (filterModel === undefined || filterModel.items.length === 0) {
|
|
51
|
-
return rows;
|
|
52
|
-
}
|
|
53
|
-
const valueGetters = filterModel.items.map(({
|
|
54
|
-
field
|
|
55
|
-
}) => simplifiedValueGetter(field, columnsWithDefaultColDef.find(column => column.field === field)));
|
|
56
|
-
const filterFunctions = filterModel.items.map(filterItem => {
|
|
57
|
-
const {
|
|
58
|
-
field,
|
|
59
|
-
operator
|
|
60
|
-
} = filterItem;
|
|
61
|
-
const colDef = columnsWithDefaultColDef.find(column => column.field === field);
|
|
62
|
-
const filterOperator = colDef.filterOperators.find(({
|
|
63
|
-
value
|
|
64
|
-
}) => operator === value);
|
|
65
|
-
let parsedValue = filterItem.value;
|
|
66
|
-
if (colDef.valueParser) {
|
|
67
|
-
const parser = colDef.valueParser;
|
|
68
|
-
parsedValue = Array.isArray(filterItem.value) ? filterItem.value?.map(x => parser(x)) : parser(filterItem.value);
|
|
69
|
-
}
|
|
70
|
-
return filterOperator?.getApplyFilterFn({
|
|
71
|
-
filterItem,
|
|
72
|
-
value: parsedValue
|
|
73
|
-
}, colDef);
|
|
74
|
-
});
|
|
75
|
-
if (filterModel.logicOperator === _xDataGridPro.GridLogicOperator.Or) {
|
|
76
|
-
return rows.filter(row => filterModel.items.some((_, index) => {
|
|
77
|
-
const value = valueGetters[index](row);
|
|
78
|
-
return filterFunctions[index] === null ? true : filterFunctions[index]({
|
|
79
|
-
value
|
|
80
|
-
});
|
|
81
|
-
}));
|
|
82
|
-
}
|
|
83
|
-
return rows.filter(row => filterModel.items.every((_, index) => {
|
|
84
|
-
const value = valueGetters[index](row);
|
|
85
|
-
return filterFunctions[index] === null ? true : filterFunctions[index](value);
|
|
86
|
-
}));
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Simulates server data loading
|
|
91
|
-
*/
|
|
92
|
-
const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultColDef) => {
|
|
93
|
-
const {
|
|
94
|
-
minDelay = 100,
|
|
95
|
-
maxDelay = 300,
|
|
96
|
-
useCursorPagination
|
|
97
|
-
} = serverOptions;
|
|
98
|
-
if (maxDelay < minDelay) {
|
|
99
|
-
throw new Error('serverOptions.minDelay is larger than serverOptions.maxDelay ');
|
|
100
|
-
}
|
|
101
|
-
const delay = (0, _randomGenerator.randomInt)(minDelay, maxDelay);
|
|
102
|
-
const {
|
|
103
|
-
cursor,
|
|
104
|
-
page = 0,
|
|
105
|
-
pageSize
|
|
106
|
-
} = queryOptions;
|
|
107
|
-
let nextCursor;
|
|
108
|
-
let firstRowIndex;
|
|
109
|
-
let lastRowIndex;
|
|
110
|
-
let filteredRows = getFilteredRows(rows, queryOptions.filterModel, columnsWithDefaultColDef);
|
|
111
|
-
const rowComparator = getRowComparator(queryOptions.sortModel, columnsWithDefaultColDef);
|
|
112
|
-
filteredRows = [...filteredRows].sort(rowComparator);
|
|
113
|
-
const totalRowCount = filteredRows.length;
|
|
114
|
-
if (!pageSize) {
|
|
115
|
-
firstRowIndex = 0;
|
|
116
|
-
lastRowIndex = filteredRows.length;
|
|
117
|
-
} else if (useCursorPagination) {
|
|
118
|
-
firstRowIndex = cursor ? filteredRows.findIndex(({
|
|
119
|
-
id
|
|
120
|
-
}) => id === cursor) : 0;
|
|
121
|
-
firstRowIndex = Math.max(firstRowIndex, 0); // if cursor not found return 0
|
|
122
|
-
lastRowIndex = firstRowIndex + pageSize;
|
|
123
|
-
nextCursor = lastRowIndex >= filteredRows.length ? undefined : filteredRows[lastRowIndex].id;
|
|
124
|
-
} else {
|
|
125
|
-
firstRowIndex = page * pageSize;
|
|
126
|
-
lastRowIndex = (page + 1) * pageSize;
|
|
127
|
-
}
|
|
128
|
-
const hasNextPage = lastRowIndex < filteredRows.length - 1;
|
|
129
|
-
const response = {
|
|
130
|
-
returnedRows: filteredRows.slice(firstRowIndex, lastRowIndex),
|
|
131
|
-
nextCursor,
|
|
132
|
-
hasNextPage,
|
|
133
|
-
totalRowCount
|
|
134
|
-
};
|
|
135
|
-
return new Promise(resolve => {
|
|
136
|
-
setTimeout(() => {
|
|
137
|
-
resolve(response);
|
|
138
|
-
}, delay); // simulate network latency
|
|
139
|
-
});
|
|
140
|
-
};
|
|
141
|
-
exports.loadServerRows = loadServerRows;
|
|
142
|
-
const DEFAULT_DATASET_OPTIONS = {
|
|
143
|
-
dataSet: 'Commodity',
|
|
144
|
-
rowLength: 100,
|
|
145
|
-
maxColumns: 6
|
|
146
|
-
};
|
|
147
|
-
const disableDelay = typeof DISABLE_CHANCE_RANDOM !== 'undefined' && DISABLE_CHANCE_RANDOM;
|
|
148
|
-
const DEFAULT_SERVER_OPTIONS = {
|
|
149
|
-
minDelay: disableDelay ? 0 : 100,
|
|
150
|
-
maxDelay: disableDelay ? 0 : 300,
|
|
151
|
-
useCursorPagination: true
|
|
152
|
-
};
|
|
153
16
|
const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
154
|
-
const dataSetOptionsWithDefault = (0, _extends2.default)({}, DEFAULT_DATASET_OPTIONS, dataSetOptions);
|
|
155
|
-
const serverOptionsWithDefault = (0, _extends2.default)({}, DEFAULT_SERVER_OPTIONS, serverOptions);
|
|
17
|
+
const dataSetOptionsWithDefault = (0, _extends2.default)({}, _serverUtils.DEFAULT_DATASET_OPTIONS, dataSetOptions);
|
|
18
|
+
const serverOptionsWithDefault = (0, _extends2.default)({}, _serverUtils.DEFAULT_SERVER_OPTIONS, serverOptions);
|
|
156
19
|
const columns = (0, _useDemoData.getColumnsFromOptions)(dataSetOptionsWithDefault);
|
|
157
20
|
const initialState = (0, _useDemoData.getInitialState)(dataSetOptionsWithDefault, columns);
|
|
158
21
|
const defaultColDef = (0, _xDataGridPro.getGridDefaultColumnTypes)();
|
|
@@ -187,7 +50,7 @@ const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
|
187
50
|
nextCursor,
|
|
188
51
|
totalRowCount,
|
|
189
52
|
hasNextPage
|
|
190
|
-
} = await loadServerRows(rows, queryOptions, serverOptionsWithDefault, columnsWithDefaultColDef);
|
|
53
|
+
} = await (0, _serverUtils.loadServerRows)(rows, queryOptions, serverOptionsWithDefault, columnsWithDefaultColDef);
|
|
191
54
|
if (!active) {
|
|
192
55
|
return;
|
|
193
56
|
}
|
package/node/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-generator",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.8.0",
|
|
4
4
|
"description": "Generate fake data for demo purposes only.",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./node/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"chance": "^1.1.11",
|
|
29
29
|
"clsx": "^2.1.1",
|
|
30
30
|
"lru-cache": "^7.18.3",
|
|
31
|
-
"@mui/x-data-grid-premium": "7.
|
|
31
|
+
"@mui/x-data-grid-premium": "7.8.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@mui/icons-material": "^5.4.1",
|