@mui/x-data-grid-generator 6.0.0-alpha.0 → 6.0.0-alpha.10
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 +1428 -138
- package/columns/commodities.columns.js +6 -10
- package/columns/employees.columns.js +1 -2
- package/hooks/useDemoData.js +9 -31
- package/hooks/useMovieData.d.ts +1 -0
- package/hooks/useMovieData.js +35 -1
- package/hooks/useQuery.d.ts +6 -6
- package/hooks/useQuery.js +11 -43
- package/index.js +1 -1
- package/legacy/columns/commodities.columns.js +6 -10
- package/legacy/columns/employees.columns.js +1 -3
- package/legacy/hooks/useBasicDemoData.js +6 -7
- package/legacy/hooks/useDemoData.js +28 -70
- package/legacy/hooks/useMovieData.js +35 -2
- package/legacy/hooks/useQuery.js +38 -77
- package/legacy/index.js +1 -1
- package/legacy/renderer/renderAvatar.js +0 -1
- package/legacy/renderer/renderCountry.js +3 -4
- package/legacy/renderer/renderEditCountry.js +32 -20
- package/legacy/renderer/renderEditCurrency.js +32 -20
- package/legacy/renderer/renderEditIncoterm.js +36 -26
- package/legacy/renderer/renderEditProgress.js +10 -20
- package/legacy/renderer/renderEditRating.js +32 -23
- package/legacy/renderer/renderEditStatus.js +2 -15
- package/legacy/renderer/renderEmail.js +0 -1
- package/legacy/renderer/renderIncoterm.js +0 -2
- package/legacy/renderer/renderLink.js +1 -3
- package/legacy/renderer/renderPnl.js +0 -3
- package/legacy/renderer/renderProgress.js +4 -5
- package/legacy/renderer/renderRating.js +3 -4
- package/legacy/renderer/renderStatus.js +9 -14
- package/legacy/renderer/renderTotalPrice.js +5 -6
- package/legacy/services/asyncWorker.js +4 -7
- package/legacy/services/basic-data-service.js +0 -5
- package/legacy/services/random-generator.js +6 -20
- package/legacy/services/real-data-service.js +0 -9
- package/legacy/services/tree-data-generator.js +6 -22
- package/modern/columns/commodities.columns.js +6 -10
- package/modern/columns/employees.columns.js +1 -2
- package/modern/hooks/useDemoData.js +9 -27
- package/modern/hooks/useMovieData.js +35 -1
- package/modern/hooks/useQuery.js +11 -41
- package/modern/index.js +1 -1
- package/modern/renderer/renderAvatar.js +0 -1
- package/modern/renderer/renderCountry.js +3 -4
- package/modern/renderer/renderEditCountry.js +6 -13
- package/modern/renderer/renderEditCurrency.js +6 -13
- package/modern/renderer/renderEditIncoterm.js +7 -16
- package/modern/renderer/renderEditProgress.js +3 -10
- package/modern/renderer/renderEditRating.js +7 -17
- package/modern/renderer/renderEditStatus.js +0 -10
- package/modern/renderer/renderIncoterm.js +0 -2
- package/modern/renderer/renderLink.js +1 -3
- package/modern/renderer/renderPnl.js +0 -3
- package/modern/renderer/renderProgress.js +4 -5
- package/modern/renderer/renderRating.js +3 -4
- package/modern/renderer/renderStatus.js +9 -14
- package/modern/renderer/renderTotalPrice.js +5 -6
- package/modern/services/asyncWorker.js +2 -4
- package/modern/services/basic-data-service.js +0 -5
- package/modern/services/random-generator.js +6 -19
- package/modern/services/real-data-service.js +0 -9
- package/modern/services/tree-data-generator.js +0 -14
- package/node/columns/commodities.columns.js +7 -17
- package/node/columns/employees.columns.js +2 -9
- package/node/columns/index.js +0 -4
- package/node/hooks/index.js +0 -8
- package/node/hooks/useBasicDemoData.js +0 -6
- package/node/hooks/useDemoData.js +17 -62
- package/node/hooks/useMovieData.js +35 -3
- package/node/hooks/useQuery.js +13 -57
- package/node/index.js +1 -9
- package/node/renderer/index.js +0 -32
- package/node/renderer/renderAvatar.js +0 -8
- package/node/renderer/renderCountry.js +3 -12
- package/node/renderer/renderEditCountry.js +6 -26
- package/node/renderer/renderEditCurrency.js +6 -26
- package/node/renderer/renderEditIncoterm.js +7 -28
- package/node/renderer/renderEditProgress.js +4 -24
- package/node/renderer/renderEditRating.js +7 -26
- package/node/renderer/renderEditStatus.js +0 -26
- package/node/renderer/renderEmail.js +1 -9
- package/node/renderer/renderIncoterm.js +0 -12
- package/node/renderer/renderLink.js +1 -10
- package/node/renderer/renderPnl.js +0 -12
- package/node/renderer/renderProgress.js +4 -14
- package/node/renderer/renderRating.js +3 -13
- package/node/renderer/renderStatus.js +9 -27
- package/node/renderer/renderTotalPrice.js +5 -15
- package/node/services/asyncWorker.js +2 -5
- package/node/services/basic-data-service.js +0 -7
- package/node/services/index.js +0 -8
- package/node/services/random-generator.js +7 -105
- package/node/services/real-data-service.js +0 -12
- package/node/services/static-data.js +0 -2
- package/node/services/tree-data-generator.js +1 -22
- package/package.json +7 -7
- package/renderer/renderAvatar.js +0 -1
- package/renderer/renderCountry.js +3 -4
- package/renderer/renderEditCountry.js +6 -13
- package/renderer/renderEditCurrency.js +6 -13
- package/renderer/renderEditIncoterm.js +7 -16
- package/renderer/renderEditProgress.js +3 -10
- package/renderer/renderEditRating.js +7 -17
- package/renderer/renderEditStatus.js +0 -10
- package/renderer/renderEmail.js +0 -1
- package/renderer/renderIncoterm.js +0 -2
- package/renderer/renderLink.js +1 -3
- package/renderer/renderPnl.js +0 -3
- package/renderer/renderProgress.js +4 -5
- package/renderer/renderRating.js +3 -4
- package/renderer/renderStatus.js +9 -14
- package/renderer/renderTotalPrice.js +5 -6
- package/services/asyncWorker.js +2 -4
- package/services/basic-data-service.js +0 -5
- package/services/random-generator.js +6 -20
- package/services/real-data-service.js +0 -9
- package/services/tree-data-generator.js +0 -15
package/node/hooks/useQuery.js
CHANGED
|
@@ -1,46 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.loadServerRows = exports.createFakeServer = void 0;
|
|
9
|
-
|
|
10
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var React = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
10
|
var _xDataGridPro = require("@mui/x-data-grid-pro");
|
|
15
|
-
|
|
16
11
|
var _internals = require("@mui/x-data-grid/internals");
|
|
17
|
-
|
|
18
12
|
var _useDemoData = require("./useDemoData");
|
|
19
|
-
|
|
20
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
|
|
22
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
|
|
24
15
|
const simplifiedValueGetter = (field, colDef) => row => {
|
|
25
|
-
var _colDef$valueGetter;
|
|
26
|
-
|
|
27
16
|
const params = {
|
|
28
17
|
id: row.id,
|
|
29
18
|
row,
|
|
30
19
|
field,
|
|
31
20
|
rowNode: {}
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
return
|
|
21
|
+
};
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
return colDef.valueGetter?.(params) || row[field];
|
|
35
24
|
};
|
|
36
|
-
|
|
37
25
|
const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
|
|
38
26
|
if (!sortModel) {
|
|
39
27
|
const comparator = () => 0;
|
|
40
|
-
|
|
41
28
|
return comparator;
|
|
42
29
|
}
|
|
43
|
-
|
|
44
30
|
const sortOperators = sortModel.map(sortItem => {
|
|
45
31
|
const columnField = sortItem.field;
|
|
46
32
|
const colDef = columnsWithDefaultColDef.find(({
|
|
@@ -51,7 +37,6 @@ const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
|
|
|
51
37
|
sortComparator: colDef.sortComparator
|
|
52
38
|
});
|
|
53
39
|
});
|
|
54
|
-
|
|
55
40
|
const comparator = (row1, row2) => sortOperators.reduce((acc, {
|
|
56
41
|
valueGetter,
|
|
57
42
|
sort,
|
|
@@ -60,51 +45,38 @@ const getRowComparator = (sortModel, columnsWithDefaultColDef) => {
|
|
|
60
45
|
if (acc !== 0) {
|
|
61
46
|
return acc;
|
|
62
47
|
}
|
|
63
|
-
|
|
64
48
|
const v1 = valueGetter(row1);
|
|
65
49
|
const v2 = valueGetter(row2);
|
|
66
50
|
return sort === 'desc' ? -1 * sortComparator(v1, v2) : sortComparator(v1, v2);
|
|
67
51
|
}, 0);
|
|
68
|
-
|
|
69
52
|
return comparator;
|
|
70
53
|
};
|
|
71
|
-
|
|
72
54
|
const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
|
|
73
55
|
if (filterModel === undefined || filterModel.items.length === 0) {
|
|
74
56
|
return rows;
|
|
75
57
|
}
|
|
76
|
-
|
|
77
58
|
const valueGetters = filterModel.items.map(({
|
|
78
|
-
columnField
|
|
79
|
-
}) => simplifiedValueGetter(columnField, columnsWithDefaultColDef.find(({
|
|
80
59
|
field
|
|
81
|
-
}) => field ===
|
|
60
|
+
}) => simplifiedValueGetter(field, columnsWithDefaultColDef.find(column => column.field === field)));
|
|
82
61
|
const filterFunctions = filterModel.items.map(filterItem => {
|
|
83
62
|
const {
|
|
84
|
-
|
|
85
|
-
|
|
63
|
+
field,
|
|
64
|
+
operator
|
|
86
65
|
} = filterItem;
|
|
87
|
-
const colDef = columnsWithDefaultColDef.find(
|
|
88
|
-
field
|
|
89
|
-
}) => field === columnField);
|
|
66
|
+
const colDef = columnsWithDefaultColDef.find(column => column.field === field);
|
|
90
67
|
const filterOperator = colDef.filterOperators.find(({
|
|
91
68
|
value
|
|
92
|
-
}) =>
|
|
69
|
+
}) => operator === value);
|
|
93
70
|
let parsedValue = filterItem.value;
|
|
94
|
-
|
|
95
71
|
if (colDef.valueParser) {
|
|
96
|
-
var _filterItem$value;
|
|
97
|
-
|
|
98
72
|
const parser = colDef.valueParser;
|
|
99
|
-
parsedValue = Array.isArray(filterItem.value) ?
|
|
73
|
+
parsedValue = Array.isArray(filterItem.value) ? filterItem.value?.map(x => parser(x)) : parser(filterItem.value);
|
|
100
74
|
}
|
|
101
|
-
|
|
102
|
-
return filterOperator == null ? void 0 : filterOperator.getApplyFilterFn({
|
|
75
|
+
return filterOperator?.getApplyFilterFn({
|
|
103
76
|
filterItem,
|
|
104
77
|
value: parsedValue
|
|
105
78
|
}, colDef);
|
|
106
79
|
});
|
|
107
|
-
|
|
108
80
|
if (filterModel.linkOperator === _xDataGridPro.GridLinkOperator.Or) {
|
|
109
81
|
return rows.filter(row => filterModel.items.some((_, index) => {
|
|
110
82
|
const value = valueGetters[index](row);
|
|
@@ -113,7 +85,6 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
|
|
|
113
85
|
});
|
|
114
86
|
}));
|
|
115
87
|
}
|
|
116
|
-
|
|
117
88
|
return rows.filter(row => filterModel.items.every((_, index) => {
|
|
118
89
|
const value = valueGetters[index](row);
|
|
119
90
|
return filterFunctions[index] === null ? true : filterFunctions[index]({
|
|
@@ -121,22 +92,19 @@ const getFilteredRows = (rows, filterModel, columnsWithDefaultColDef) => {
|
|
|
121
92
|
});
|
|
122
93
|
}));
|
|
123
94
|
};
|
|
95
|
+
|
|
124
96
|
/**
|
|
125
97
|
* Simulates server data loading
|
|
126
98
|
*/
|
|
127
|
-
|
|
128
|
-
|
|
129
99
|
const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultColDef) => {
|
|
130
100
|
const {
|
|
131
101
|
minDelay = 100,
|
|
132
102
|
maxDelay = 300,
|
|
133
103
|
useCursorPagination
|
|
134
104
|
} = serverOptions;
|
|
135
|
-
|
|
136
105
|
if (maxDelay < minDelay) {
|
|
137
106
|
throw new Error('serverOptions.minDelay is larger than serverOptions.maxDelay ');
|
|
138
107
|
}
|
|
139
|
-
|
|
140
108
|
const delay = Math.random() * (maxDelay - minDelay) + minDelay;
|
|
141
109
|
const {
|
|
142
110
|
cursor,
|
|
@@ -150,7 +118,6 @@ const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultCol
|
|
|
150
118
|
const rowComparator = getRowComparator(queryOptions.sortModel, columnsWithDefaultColDef);
|
|
151
119
|
filteredRows = [...filteredRows].sort(rowComparator);
|
|
152
120
|
const totalRowCount = filteredRows.length;
|
|
153
|
-
|
|
154
121
|
if (!pageSize) {
|
|
155
122
|
firstRowIndex = 0;
|
|
156
123
|
lastRowIndex = filteredRows.length;
|
|
@@ -159,14 +126,12 @@ const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultCol
|
|
|
159
126
|
id
|
|
160
127
|
}) => id === cursor) : 0;
|
|
161
128
|
firstRowIndex = Math.max(firstRowIndex, 0); // if cursor not found return 0
|
|
162
|
-
|
|
163
129
|
lastRowIndex = firstRowIndex + pageSize;
|
|
164
130
|
nextCursor = lastRowIndex >= filteredRows.length ? undefined : filteredRows[lastRowIndex].id;
|
|
165
131
|
} else {
|
|
166
132
|
firstRowIndex = page * pageSize;
|
|
167
133
|
lastRowIndex = (page + 1) * pageSize;
|
|
168
134
|
}
|
|
169
|
-
|
|
170
135
|
const response = {
|
|
171
136
|
returnedRows: filteredRows.slice(firstRowIndex, lastRowIndex),
|
|
172
137
|
nextCursor,
|
|
@@ -178,7 +143,6 @@ const loadServerRows = (rows, queryOptions, serverOptions, columnsWithDefaultCol
|
|
|
178
143
|
}, delay); // simulate network latency
|
|
179
144
|
});
|
|
180
145
|
};
|
|
181
|
-
|
|
182
146
|
exports.loadServerRows = loadServerRows;
|
|
183
147
|
const DEFAULT_DATASET_OPTIONS = {
|
|
184
148
|
dataSet: 'Commodity',
|
|
@@ -191,7 +155,6 @@ const DEFAULT_SERVER_OPTIONS = {
|
|
|
191
155
|
maxDelay: disableDelay ? 0 : 300,
|
|
192
156
|
useCursorPagination: true
|
|
193
157
|
};
|
|
194
|
-
|
|
195
158
|
const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
196
159
|
const dataSetOptionsWithDefault = (0, _extends2.default)({}, DEFAULT_DATASET_OPTIONS, dataSetOptions);
|
|
197
160
|
const serverOptionsWithDefault = (0, _extends2.default)({}, DEFAULT_SERVER_OPTIONS, serverOptions);
|
|
@@ -199,7 +162,6 @@ const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
|
199
162
|
const initialState = (0, _useDemoData.getInitialState)(dataSetOptionsWithDefault, columns);
|
|
200
163
|
const defaultColDef = (0, _xDataGridPro.getGridDefaultColumnTypes)();
|
|
201
164
|
const columnsWithDefaultColDef = columns.map(column => (0, _extends2.default)({}, defaultColDef[column.type || 'string'], column));
|
|
202
|
-
|
|
203
165
|
const useQuery = queryOptions => {
|
|
204
166
|
const {
|
|
205
167
|
data: {
|
|
@@ -218,25 +180,21 @@ const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
|
218
180
|
// dataset is not ready
|
|
219
181
|
return () => {};
|
|
220
182
|
}
|
|
221
|
-
|
|
222
183
|
queryOptionsRef.current = queryOptions;
|
|
223
184
|
let active = true;
|
|
224
185
|
setIsLoading(true);
|
|
225
186
|
setResponse(prev => Object.keys(prev.pageInfo).length === 0 ? prev : (0, _extends2.default)({}, prev, {
|
|
226
187
|
pageInfo: {}
|
|
227
188
|
}));
|
|
228
|
-
|
|
229
189
|
(async function fetchData() {
|
|
230
190
|
const {
|
|
231
191
|
returnedRows,
|
|
232
192
|
nextCursor,
|
|
233
193
|
totalRowCount
|
|
234
194
|
} = await loadServerRows(rows, queryOptions, serverOptionsWithDefault, columnsWithDefaultColDef);
|
|
235
|
-
|
|
236
195
|
if (!active) {
|
|
237
196
|
return;
|
|
238
197
|
}
|
|
239
|
-
|
|
240
198
|
const newRep = {
|
|
241
199
|
rows: returnedRows,
|
|
242
200
|
pageInfo: {
|
|
@@ -248,18 +206,17 @@ const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
|
248
206
|
setResponse(prev => (0, _internals.isDeepEqual)(prev, newRep) ? prev : newRep);
|
|
249
207
|
setIsLoading(false);
|
|
250
208
|
})();
|
|
251
|
-
|
|
252
209
|
return () => {
|
|
253
210
|
active = false;
|
|
254
211
|
};
|
|
255
|
-
}, [dataGenerationIsLoading, queryOptions, rows]);
|
|
212
|
+
}, [dataGenerationIsLoading, queryOptions, rows]);
|
|
256
213
|
|
|
214
|
+
// We use queryOptions pointer to be sure that isLoading===true as soon as the options change
|
|
257
215
|
const effectShouldStart = queryOptionsRef.current !== queryOptions;
|
|
258
216
|
return (0, _extends2.default)({
|
|
259
217
|
isLoading: isLoading || effectShouldStart
|
|
260
218
|
}, response);
|
|
261
219
|
};
|
|
262
|
-
|
|
263
220
|
return {
|
|
264
221
|
columns,
|
|
265
222
|
columnsWithDefaultColDef,
|
|
@@ -267,5 +224,4 @@ const createFakeServer = (dataSetOptions, serverOptions) => {
|
|
|
267
224
|
useQuery
|
|
268
225
|
};
|
|
269
226
|
};
|
|
270
|
-
|
|
271
227
|
exports.createFakeServer = createFakeServer;
|
package/node/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MUI v6.0.0-alpha.
|
|
1
|
+
/** @license MUI v6.0.0-alpha.10
|
|
2
2
|
*
|
|
3
3
|
* This source code is licensed under the MIT license found in the
|
|
4
4
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -8,9 +8,7 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", {
|
|
9
9
|
value: true
|
|
10
10
|
});
|
|
11
|
-
|
|
12
11
|
var _renderer = require("./renderer");
|
|
13
|
-
|
|
14
12
|
Object.keys(_renderer).forEach(function (key) {
|
|
15
13
|
if (key === "default" || key === "__esModule") return;
|
|
16
14
|
if (key in exports && exports[key] === _renderer[key]) return;
|
|
@@ -21,9 +19,7 @@ Object.keys(_renderer).forEach(function (key) {
|
|
|
21
19
|
}
|
|
22
20
|
});
|
|
23
21
|
});
|
|
24
|
-
|
|
25
22
|
var _services = require("./services");
|
|
26
|
-
|
|
27
23
|
Object.keys(_services).forEach(function (key) {
|
|
28
24
|
if (key === "default" || key === "__esModule") return;
|
|
29
25
|
if (key in exports && exports[key] === _services[key]) return;
|
|
@@ -34,9 +30,7 @@ Object.keys(_services).forEach(function (key) {
|
|
|
34
30
|
}
|
|
35
31
|
});
|
|
36
32
|
});
|
|
37
|
-
|
|
38
33
|
var _columns = require("./columns");
|
|
39
|
-
|
|
40
34
|
Object.keys(_columns).forEach(function (key) {
|
|
41
35
|
if (key === "default" || key === "__esModule") return;
|
|
42
36
|
if (key in exports && exports[key] === _columns[key]) return;
|
|
@@ -47,9 +41,7 @@ Object.keys(_columns).forEach(function (key) {
|
|
|
47
41
|
}
|
|
48
42
|
});
|
|
49
43
|
});
|
|
50
|
-
|
|
51
44
|
var _hooks = require("./hooks");
|
|
52
|
-
|
|
53
45
|
Object.keys(_hooks).forEach(function (key) {
|
|
54
46
|
if (key === "default" || key === "__esModule") return;
|
|
55
47
|
if (key in exports && exports[key] === _hooks[key]) return;
|
package/node/renderer/index.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _renderAvatar = require("./renderAvatar");
|
|
8
|
-
|
|
9
7
|
Object.keys(_renderAvatar).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _renderAvatar[key]) return;
|
|
@@ -16,9 +14,7 @@ Object.keys(_renderAvatar).forEach(function (key) {
|
|
|
16
14
|
}
|
|
17
15
|
});
|
|
18
16
|
});
|
|
19
|
-
|
|
20
17
|
var _renderCountry = require("./renderCountry");
|
|
21
|
-
|
|
22
18
|
Object.keys(_renderCountry).forEach(function (key) {
|
|
23
19
|
if (key === "default" || key === "__esModule") return;
|
|
24
20
|
if (key in exports && exports[key] === _renderCountry[key]) return;
|
|
@@ -29,9 +25,7 @@ Object.keys(_renderCountry).forEach(function (key) {
|
|
|
29
25
|
}
|
|
30
26
|
});
|
|
31
27
|
});
|
|
32
|
-
|
|
33
28
|
var _renderEmail = require("./renderEmail");
|
|
34
|
-
|
|
35
29
|
Object.keys(_renderEmail).forEach(function (key) {
|
|
36
30
|
if (key === "default" || key === "__esModule") return;
|
|
37
31
|
if (key in exports && exports[key] === _renderEmail[key]) return;
|
|
@@ -42,9 +36,7 @@ Object.keys(_renderEmail).forEach(function (key) {
|
|
|
42
36
|
}
|
|
43
37
|
});
|
|
44
38
|
});
|
|
45
|
-
|
|
46
39
|
var _renderIncoterm = require("./renderIncoterm");
|
|
47
|
-
|
|
48
40
|
Object.keys(_renderIncoterm).forEach(function (key) {
|
|
49
41
|
if (key === "default" || key === "__esModule") return;
|
|
50
42
|
if (key in exports && exports[key] === _renderIncoterm[key]) return;
|
|
@@ -55,9 +47,7 @@ Object.keys(_renderIncoterm).forEach(function (key) {
|
|
|
55
47
|
}
|
|
56
48
|
});
|
|
57
49
|
});
|
|
58
|
-
|
|
59
50
|
var _renderLink = require("./renderLink");
|
|
60
|
-
|
|
61
51
|
Object.keys(_renderLink).forEach(function (key) {
|
|
62
52
|
if (key === "default" || key === "__esModule") return;
|
|
63
53
|
if (key in exports && exports[key] === _renderLink[key]) return;
|
|
@@ -68,9 +58,7 @@ Object.keys(_renderLink).forEach(function (key) {
|
|
|
68
58
|
}
|
|
69
59
|
});
|
|
70
60
|
});
|
|
71
|
-
|
|
72
61
|
var _renderPnl = require("./renderPnl");
|
|
73
|
-
|
|
74
62
|
Object.keys(_renderPnl).forEach(function (key) {
|
|
75
63
|
if (key === "default" || key === "__esModule") return;
|
|
76
64
|
if (key in exports && exports[key] === _renderPnl[key]) return;
|
|
@@ -81,9 +69,7 @@ Object.keys(_renderPnl).forEach(function (key) {
|
|
|
81
69
|
}
|
|
82
70
|
});
|
|
83
71
|
});
|
|
84
|
-
|
|
85
72
|
var _renderProgress = require("./renderProgress");
|
|
86
|
-
|
|
87
73
|
Object.keys(_renderProgress).forEach(function (key) {
|
|
88
74
|
if (key === "default" || key === "__esModule") return;
|
|
89
75
|
if (key in exports && exports[key] === _renderProgress[key]) return;
|
|
@@ -94,9 +80,7 @@ Object.keys(_renderProgress).forEach(function (key) {
|
|
|
94
80
|
}
|
|
95
81
|
});
|
|
96
82
|
});
|
|
97
|
-
|
|
98
83
|
var _renderRating = require("./renderRating");
|
|
99
|
-
|
|
100
84
|
Object.keys(_renderRating).forEach(function (key) {
|
|
101
85
|
if (key === "default" || key === "__esModule") return;
|
|
102
86
|
if (key in exports && exports[key] === _renderRating[key]) return;
|
|
@@ -107,9 +91,7 @@ Object.keys(_renderRating).forEach(function (key) {
|
|
|
107
91
|
}
|
|
108
92
|
});
|
|
109
93
|
});
|
|
110
|
-
|
|
111
94
|
var _renderStatus = require("./renderStatus");
|
|
112
|
-
|
|
113
95
|
Object.keys(_renderStatus).forEach(function (key) {
|
|
114
96
|
if (key === "default" || key === "__esModule") return;
|
|
115
97
|
if (key in exports && exports[key] === _renderStatus[key]) return;
|
|
@@ -120,9 +102,7 @@ Object.keys(_renderStatus).forEach(function (key) {
|
|
|
120
102
|
}
|
|
121
103
|
});
|
|
122
104
|
});
|
|
123
|
-
|
|
124
105
|
var _renderTotalPrice = require("./renderTotalPrice");
|
|
125
|
-
|
|
126
106
|
Object.keys(_renderTotalPrice).forEach(function (key) {
|
|
127
107
|
if (key === "default" || key === "__esModule") return;
|
|
128
108
|
if (key in exports && exports[key] === _renderTotalPrice[key]) return;
|
|
@@ -133,9 +113,7 @@ Object.keys(_renderTotalPrice).forEach(function (key) {
|
|
|
133
113
|
}
|
|
134
114
|
});
|
|
135
115
|
});
|
|
136
|
-
|
|
137
116
|
var _renderEditCurrency = require("./renderEditCurrency");
|
|
138
|
-
|
|
139
117
|
Object.keys(_renderEditCurrency).forEach(function (key) {
|
|
140
118
|
if (key === "default" || key === "__esModule") return;
|
|
141
119
|
if (key in exports && exports[key] === _renderEditCurrency[key]) return;
|
|
@@ -146,9 +124,7 @@ Object.keys(_renderEditCurrency).forEach(function (key) {
|
|
|
146
124
|
}
|
|
147
125
|
});
|
|
148
126
|
});
|
|
149
|
-
|
|
150
127
|
var _renderEditProgress = require("./renderEditProgress");
|
|
151
|
-
|
|
152
128
|
Object.keys(_renderEditProgress).forEach(function (key) {
|
|
153
129
|
if (key === "default" || key === "__esModule") return;
|
|
154
130
|
if (key in exports && exports[key] === _renderEditProgress[key]) return;
|
|
@@ -159,9 +135,7 @@ Object.keys(_renderEditProgress).forEach(function (key) {
|
|
|
159
135
|
}
|
|
160
136
|
});
|
|
161
137
|
});
|
|
162
|
-
|
|
163
138
|
var _renderEditStatus = require("./renderEditStatus");
|
|
164
|
-
|
|
165
139
|
Object.keys(_renderEditStatus).forEach(function (key) {
|
|
166
140
|
if (key === "default" || key === "__esModule") return;
|
|
167
141
|
if (key in exports && exports[key] === _renderEditStatus[key]) return;
|
|
@@ -172,9 +146,7 @@ Object.keys(_renderEditStatus).forEach(function (key) {
|
|
|
172
146
|
}
|
|
173
147
|
});
|
|
174
148
|
});
|
|
175
|
-
|
|
176
149
|
var _renderEditIncoterm = require("./renderEditIncoterm");
|
|
177
|
-
|
|
178
150
|
Object.keys(_renderEditIncoterm).forEach(function (key) {
|
|
179
151
|
if (key === "default" || key === "__esModule") return;
|
|
180
152
|
if (key in exports && exports[key] === _renderEditIncoterm[key]) return;
|
|
@@ -185,9 +157,7 @@ Object.keys(_renderEditIncoterm).forEach(function (key) {
|
|
|
185
157
|
}
|
|
186
158
|
});
|
|
187
159
|
});
|
|
188
|
-
|
|
189
160
|
var _renderEditRating = require("./renderEditRating");
|
|
190
|
-
|
|
191
161
|
Object.keys(_renderEditRating).forEach(function (key) {
|
|
192
162
|
if (key === "default" || key === "__esModule") return;
|
|
193
163
|
if (key in exports && exports[key] === _renderEditRating[key]) return;
|
|
@@ -198,9 +168,7 @@ Object.keys(_renderEditRating).forEach(function (key) {
|
|
|
198
168
|
}
|
|
199
169
|
});
|
|
200
170
|
});
|
|
201
|
-
|
|
202
171
|
var _renderEditCountry = require("./renderEditCountry");
|
|
203
|
-
|
|
204
172
|
Object.keys(_renderEditCountry).forEach(function (key) {
|
|
205
173
|
if (key === "default" || key === "__esModule") return;
|
|
206
174
|
if (key in exports && exports[key] === _renderEditCountry[key]) return;
|
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.renderAvatar = renderAvatar;
|
|
9
|
-
|
|
10
8
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _Avatar = _interopRequireDefault(require("@mui/material/Avatar"));
|
|
13
|
-
|
|
14
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
|
|
16
11
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
12
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
|
|
20
13
|
function renderAvatar(params) {
|
|
21
14
|
if (params.value == null) {
|
|
22
15
|
return '';
|
|
23
16
|
}
|
|
24
|
-
|
|
25
17
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
|
|
26
18
|
style: {
|
|
27
19
|
backgroundColor: params.value.color
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.renderCountry = renderCountry;
|
|
9
|
-
|
|
10
8
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
13
|
-
|
|
14
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
|
|
16
11
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
12
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
|
|
20
13
|
const Country = /*#__PURE__*/React.memo(function Country(props) {
|
|
21
14
|
const {
|
|
22
15
|
value
|
|
@@ -48,18 +41,16 @@ const Country = /*#__PURE__*/React.memo(function Country(props) {
|
|
|
48
41
|
})]
|
|
49
42
|
});
|
|
50
43
|
});
|
|
51
|
-
|
|
52
44
|
function renderCountry(params) {
|
|
53
45
|
if (params.value == null) {
|
|
54
46
|
return '';
|
|
55
|
-
}
|
|
56
|
-
// Then we fall back to the default rendering based on `valueGetter` instead of rendering the total price UI.
|
|
57
|
-
|
|
47
|
+
}
|
|
58
48
|
|
|
49
|
+
// If the aggregated value does not have the same unit as the other cell
|
|
50
|
+
// Then we fall back to the default rendering based on `valueGetter` instead of rendering the total price UI.
|
|
59
51
|
if (params.aggregation && !params.aggregation.hasCellUnit) {
|
|
60
52
|
return null;
|
|
61
53
|
}
|
|
62
|
-
|
|
63
54
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Country, {
|
|
64
55
|
value: params.value
|
|
65
56
|
});
|
|
@@ -1,34 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.renderEditCountry = renderEditCountry;
|
|
9
|
-
|
|
10
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var React = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
10
|
var _xDataGridPremium = require("@mui/x-data-grid-premium");
|
|
15
|
-
|
|
16
11
|
var _Autocomplete = _interopRequireWildcard(require("@mui/material/Autocomplete"));
|
|
17
|
-
|
|
18
12
|
var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
|
|
19
|
-
|
|
20
13
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
21
|
-
|
|
22
14
|
var _styles = require("@mui/material/styles");
|
|
23
|
-
|
|
24
15
|
var _staticData = require("../services/static-data");
|
|
25
|
-
|
|
26
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
|
-
|
|
28
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
32
19
|
const StyledAutocomplete = (0, _styles.styled)(_Autocomplete.default)(({
|
|
33
20
|
theme
|
|
34
21
|
}) => ({
|
|
@@ -42,7 +29,6 @@ const StyledAutocomplete = (0, _styles.styled)(_Autocomplete.default)(({
|
|
|
42
29
|
}
|
|
43
30
|
})
|
|
44
31
|
}));
|
|
45
|
-
|
|
46
32
|
function EditCountry(props) {
|
|
47
33
|
const {
|
|
48
34
|
id,
|
|
@@ -50,20 +36,16 @@ function EditCountry(props) {
|
|
|
50
36
|
field
|
|
51
37
|
} = props;
|
|
52
38
|
const apiRef = (0, _xDataGridPremium.useGridApiContext)();
|
|
53
|
-
const handleChange = React.useCallback((event, newValue) => {
|
|
54
|
-
apiRef.current.setEditCellValue({
|
|
39
|
+
const handleChange = React.useCallback(async (event, newValue) => {
|
|
40
|
+
await apiRef.current.setEditCellValue({
|
|
55
41
|
id,
|
|
56
42
|
field,
|
|
57
43
|
value: newValue
|
|
58
44
|
}, event);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
field
|
|
64
|
-
});
|
|
65
|
-
apiRef.current.setCellMode(id, field, 'view');
|
|
66
|
-
}
|
|
45
|
+
apiRef.current.stopCellEditMode({
|
|
46
|
+
id,
|
|
47
|
+
field
|
|
48
|
+
});
|
|
67
49
|
}, [apiRef, field, id]);
|
|
68
50
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledAutocomplete, {
|
|
69
51
|
value: value,
|
|
@@ -97,12 +79,10 @@ function EditCountry(props) {
|
|
|
97
79
|
id: params.id,
|
|
98
80
|
inputProps: (0, _extends2.default)({}, params.inputProps, {
|
|
99
81
|
autoComplete: 'new-password' // disable autocomplete and autofill
|
|
100
|
-
|
|
101
82
|
})
|
|
102
83
|
}, params.InputProps))
|
|
103
84
|
});
|
|
104
85
|
}
|
|
105
|
-
|
|
106
86
|
function renderEditCountry(params) {
|
|
107
87
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditCountry, (0, _extends2.default)({}, params));
|
|
108
88
|
}
|
|
@@ -1,34 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.renderEditCurrency = renderEditCurrency;
|
|
9
|
-
|
|
10
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var React = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
10
|
var _xDataGridPremium = require("@mui/x-data-grid-premium");
|
|
15
|
-
|
|
16
11
|
var _Autocomplete = _interopRequireWildcard(require("@mui/material/Autocomplete"));
|
|
17
|
-
|
|
18
12
|
var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
|
|
19
|
-
|
|
20
13
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
21
|
-
|
|
22
14
|
var _styles = require("@mui/material/styles");
|
|
23
|
-
|
|
24
15
|
var _staticData = require("../services/static-data");
|
|
25
|
-
|
|
26
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
|
-
|
|
28
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
32
19
|
const StyledAutocomplete = (0, _styles.styled)(_Autocomplete.default)(({
|
|
33
20
|
theme
|
|
34
21
|
}) => ({
|
|
@@ -42,7 +29,6 @@ const StyledAutocomplete = (0, _styles.styled)(_Autocomplete.default)(({
|
|
|
42
29
|
}
|
|
43
30
|
})
|
|
44
31
|
}));
|
|
45
|
-
|
|
46
32
|
function EditCurrency(props) {
|
|
47
33
|
const {
|
|
48
34
|
id,
|
|
@@ -50,20 +36,16 @@ function EditCurrency(props) {
|
|
|
50
36
|
field
|
|
51
37
|
} = props;
|
|
52
38
|
const apiRef = (0, _xDataGridPremium.useGridApiContext)();
|
|
53
|
-
const handleChange = React.useCallback((event, newValue) => {
|
|
54
|
-
apiRef.current.setEditCellValue({
|
|
39
|
+
const handleChange = React.useCallback(async (event, newValue) => {
|
|
40
|
+
await apiRef.current.setEditCellValue({
|
|
55
41
|
id,
|
|
56
42
|
field,
|
|
57
43
|
value: newValue.toUpperCase()
|
|
58
44
|
}, event);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
field
|
|
64
|
-
});
|
|
65
|
-
apiRef.current.setCellMode(id, field, 'view');
|
|
66
|
-
}
|
|
45
|
+
apiRef.current.stopCellEditMode({
|
|
46
|
+
id,
|
|
47
|
+
field
|
|
48
|
+
});
|
|
67
49
|
}, [apiRef, field, id]);
|
|
68
50
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledAutocomplete, {
|
|
69
51
|
value: value,
|
|
@@ -96,12 +78,10 @@ function EditCurrency(props) {
|
|
|
96
78
|
id: params.id,
|
|
97
79
|
inputProps: (0, _extends2.default)({}, params.inputProps, {
|
|
98
80
|
autoComplete: 'new-password' // disable autocomplete and autofill
|
|
99
|
-
|
|
100
81
|
})
|
|
101
82
|
}, params.InputProps))
|
|
102
83
|
});
|
|
103
84
|
}
|
|
104
|
-
|
|
105
85
|
function renderEditCurrency(params) {
|
|
106
86
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditCurrency, (0, _extends2.default)({}, params));
|
|
107
87
|
}
|