@mui/x-data-grid 7.0.0-beta.0 → 7.0.0-beta.1
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 +247 -0
- package/DataGrid/useDataGridComponent.js +1 -1
- package/colDef/gridBooleanColDef.js +3 -6
- package/colDef/gridCheckboxSelectionColDef.js +4 -3
- package/colDef/gridDateColDef.d.ts +3 -4
- package/colDef/gridDateColDef.js +10 -16
- package/colDef/gridNumericColDef.js +1 -3
- package/colDef/gridSingleSelectColDef.js +7 -12
- package/components/cell/GridEditInputCell.js +1 -1
- package/components/columnsManagement/GridColumnsManagement.d.ts +7 -0
- package/components/columnsManagement/GridColumnsManagement.js +26 -21
- package/hooks/features/columns/useGridColumnSpanning.js +3 -1
- package/hooks/features/editing/useGridCellEditing.js +2 -5
- package/hooks/features/editing/useGridRowEditing.js +2 -5
- package/hooks/features/filter/gridFilterUtils.js +1 -1
- package/hooks/features/rows/useGridParamsApi.d.ts +1 -2
- package/hooks/features/rows/useGridParamsApi.js +14 -49
- package/index.js +1 -1
- package/legacy/DataGrid/useDataGridComponent.js +1 -1
- package/legacy/colDef/gridBooleanColDef.js +3 -5
- package/legacy/colDef/gridCheckboxSelectionColDef.js +4 -3
- package/legacy/colDef/gridDateColDef.js +10 -14
- package/legacy/colDef/gridNumericColDef.js +1 -2
- package/legacy/colDef/gridSingleSelectColDef.js +7 -10
- package/legacy/components/cell/GridEditInputCell.js +1 -1
- package/legacy/components/columnsManagement/GridColumnsManagement.js +38 -31
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +3 -1
- package/legacy/hooks/features/editing/useGridCellEditing.js +2 -5
- package/legacy/hooks/features/editing/useGridRowEditing.js +2 -5
- package/legacy/hooks/features/filter/gridFilterUtils.js +2 -2
- package/legacy/hooks/features/rows/useGridParamsApi.js +14 -47
- package/legacy/index.js +1 -1
- package/legacy/locales/heIL.js +7 -8
- package/locales/heIL.js +7 -8
- package/models/colDef/gridColDef.d.ts +11 -17
- package/models/colDef/index.d.ts +1 -1
- package/models/params/gridCellParams.d.ts +0 -26
- package/modern/DataGrid/useDataGridComponent.js +1 -1
- package/modern/colDef/gridBooleanColDef.js +3 -6
- package/modern/colDef/gridCheckboxSelectionColDef.js +4 -3
- package/modern/colDef/gridDateColDef.js +10 -16
- package/modern/colDef/gridNumericColDef.js +1 -3
- package/modern/colDef/gridSingleSelectColDef.js +7 -12
- package/modern/components/cell/GridEditInputCell.js +1 -1
- package/modern/components/columnsManagement/GridColumnsManagement.js +26 -21
- package/modern/hooks/features/columns/useGridColumnSpanning.js +3 -1
- package/modern/hooks/features/editing/useGridCellEditing.js +2 -5
- package/modern/hooks/features/editing/useGridRowEditing.js +2 -5
- package/modern/hooks/features/filter/gridFilterUtils.js +1 -1
- package/modern/hooks/features/rows/useGridParamsApi.js +14 -47
- package/modern/index.js +1 -1
- package/modern/locales/heIL.js +7 -8
- package/node/DataGrid/useDataGridComponent.js +1 -1
- package/node/colDef/gridBooleanColDef.js +3 -6
- package/node/colDef/gridCheckboxSelectionColDef.js +4 -3
- package/node/colDef/gridDateColDef.js +13 -19
- package/node/colDef/gridNumericColDef.js +1 -3
- package/node/colDef/gridSingleSelectColDef.js +7 -12
- package/node/components/cell/GridEditInputCell.js +1 -1
- package/node/components/columnsManagement/GridColumnsManagement.js +26 -21
- package/node/hooks/features/columns/useGridColumnSpanning.js +3 -1
- package/node/hooks/features/editing/useGridCellEditing.js +2 -5
- package/node/hooks/features/editing/useGridRowEditing.js +2 -5
- package/node/hooks/features/filter/gridFilterUtils.js +1 -1
- package/node/hooks/features/rows/useGridParamsApi.js +14 -47
- package/node/index.js +1 -1
- package/node/locales/heIL.js +7 -8
- package/package.json +4 -4
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { getGridCellElement, getGridColumnHeaderElement, getGridRowElement } from '../../../utils/domUtils';
|
|
3
|
-
import { GRID_ID_AUTOGENERATED } from './gridRowsUtils';
|
|
4
3
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
5
4
|
import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
|
|
6
5
|
export class MissingRowIdError extends Error {}
|
|
@@ -13,10 +12,7 @@ export class MissingRowIdError extends Error {}
|
|
|
13
12
|
* TODO: Impossible priority - useGridEditing also needs to be after useGridParamsApi
|
|
14
13
|
* TODO: Impossible priority - useGridFocus also needs to be after useGridParamsApi
|
|
15
14
|
*/
|
|
16
|
-
export function useGridParamsApi(apiRef
|
|
17
|
-
const {
|
|
18
|
-
getRowId
|
|
19
|
-
} = props;
|
|
15
|
+
export function useGridParamsApi(apiRef) {
|
|
20
16
|
const getColumnHeaderParams = React.useCallback(field => ({
|
|
21
17
|
field,
|
|
22
18
|
colDef: apiRef.current.getColumn(field)
|
|
@@ -33,28 +29,6 @@ export function useGridParamsApi(apiRef, props) {
|
|
|
33
29
|
};
|
|
34
30
|
return params;
|
|
35
31
|
}, [apiRef]);
|
|
36
|
-
const getBaseCellParams = React.useCallback((id, field) => {
|
|
37
|
-
const row = apiRef.current.getRow(id);
|
|
38
|
-
const rowNode = apiRef.current.getRowNode(id);
|
|
39
|
-
if (!row || !rowNode) {
|
|
40
|
-
throw new MissingRowIdError(`No row with id #${id} found`);
|
|
41
|
-
}
|
|
42
|
-
const cellFocus = gridFocusCellSelector(apiRef);
|
|
43
|
-
const cellTabIndex = gridTabIndexCellSelector(apiRef);
|
|
44
|
-
const params = {
|
|
45
|
-
id,
|
|
46
|
-
field,
|
|
47
|
-
row,
|
|
48
|
-
rowNode,
|
|
49
|
-
value: row[field],
|
|
50
|
-
colDef: apiRef.current.getColumn(field),
|
|
51
|
-
cellMode: apiRef.current.getCellMode(id, field),
|
|
52
|
-
api: apiRef.current,
|
|
53
|
-
hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,
|
|
54
|
-
tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1
|
|
55
|
-
};
|
|
56
|
-
return params;
|
|
57
|
-
}, [apiRef]);
|
|
58
32
|
const getCellParams = React.useCallback((id, field) => {
|
|
59
33
|
const colDef = apiRef.current.getColumn(field);
|
|
60
34
|
const value = apiRef.current.getCellValue(id, field);
|
|
@@ -79,12 +53,7 @@ export function useGridParamsApi(apiRef, props) {
|
|
|
79
53
|
isEditable: false
|
|
80
54
|
};
|
|
81
55
|
if (colDef && colDef.valueFormatter) {
|
|
82
|
-
params.formattedValue = colDef.valueFormatter(
|
|
83
|
-
id,
|
|
84
|
-
field: params.field,
|
|
85
|
-
value: params.value,
|
|
86
|
-
api: apiRef.current
|
|
87
|
-
});
|
|
56
|
+
params.formattedValue = colDef.valueFormatter(value, row, colDef, apiRef);
|
|
88
57
|
}
|
|
89
58
|
params.isEditable = colDef && apiRef.current.isCellEditable(params);
|
|
90
59
|
return params;
|
|
@@ -98,32 +67,28 @@ export function useGridParamsApi(apiRef, props) {
|
|
|
98
67
|
}
|
|
99
68
|
return rowModel[field];
|
|
100
69
|
}
|
|
101
|
-
|
|
102
|
-
|
|
70
|
+
const row = apiRef.current.getRow(id);
|
|
71
|
+
if (!row) {
|
|
72
|
+
throw new MissingRowIdError(`No row with id #${id} found`);
|
|
73
|
+
}
|
|
74
|
+
const value = row[colDef.field];
|
|
75
|
+
return colDef.valueGetter(value, row, colDef, apiRef);
|
|
76
|
+
}, [apiRef]);
|
|
103
77
|
const getRowValue = React.useCallback((row, colDef) => {
|
|
104
|
-
var _getRowId;
|
|
105
|
-
const id = GRID_ID_AUTOGENERATED in row ? row[GRID_ID_AUTOGENERATED] : (_getRowId = getRowId == null ? void 0 : getRowId(row)) != null ? _getRowId : row.id;
|
|
106
78
|
const field = colDef.field;
|
|
107
79
|
if (!colDef || !colDef.valueGetter) {
|
|
108
80
|
return row[field];
|
|
109
81
|
}
|
|
110
|
-
|
|
111
|
-
|
|
82
|
+
const value = row[colDef.field];
|
|
83
|
+
return colDef.valueGetter(value, row, colDef, apiRef);
|
|
84
|
+
}, [apiRef]);
|
|
112
85
|
const getRowFormattedValue = React.useCallback((row, colDef) => {
|
|
113
|
-
var _ref;
|
|
114
86
|
const value = getRowValue(row, colDef);
|
|
115
87
|
if (!colDef || !colDef.valueFormatter) {
|
|
116
88
|
return value;
|
|
117
89
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return colDef.valueFormatter({
|
|
121
|
-
id,
|
|
122
|
-
field,
|
|
123
|
-
value,
|
|
124
|
-
api: apiRef.current
|
|
125
|
-
});
|
|
126
|
-
}, [apiRef, getRowId, getRowValue]);
|
|
90
|
+
return colDef.valueFormatter(value, row, colDef, apiRef);
|
|
91
|
+
}, [apiRef, getRowValue]);
|
|
127
92
|
const getColumnHeaderElement = React.useCallback(field => {
|
|
128
93
|
if (!apiRef.current.rootElementRef.current) {
|
|
129
94
|
return null;
|
package/index.js
CHANGED
|
@@ -57,7 +57,7 @@ export var useDataGridComponent = function useDataGridComponent(inputApiRef, pro
|
|
|
57
57
|
useGridRowSelection(apiRef, props);
|
|
58
58
|
useGridColumns(apiRef, props);
|
|
59
59
|
useGridRows(apiRef, props);
|
|
60
|
-
useGridParamsApi(apiRef
|
|
60
|
+
useGridParamsApi(apiRef);
|
|
61
61
|
useGridColumnSpanning(apiRef);
|
|
62
62
|
useGridColumnGrouping(apiRef, props);
|
|
63
63
|
useGridEditing(apiRef, props);
|
|
@@ -4,11 +4,9 @@ import { renderBooleanCell } from '../components/cell/GridBooleanCell';
|
|
|
4
4
|
import { renderEditBooleanCell } from '../components/cell/GridEditBooleanCell';
|
|
5
5
|
import { gridNumberComparator } from '../hooks/features/sorting/gridSortingUtils';
|
|
6
6
|
import { getGridBooleanOperators } from './gridBooleanOperators';
|
|
7
|
-
function gridBooleanFormatter(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return value ? api.getLocaleText('booleanCellTrueLabel') : api.getLocaleText('booleanCellFalseLabel');
|
|
11
|
-
}
|
|
7
|
+
var gridBooleanFormatter = function gridBooleanFormatter(value, row, column, apiRef) {
|
|
8
|
+
return value ? apiRef.current.getLocaleText('booleanCellTrueLabel') : apiRef.current.getLocaleText('booleanCellFalseLabel');
|
|
9
|
+
};
|
|
12
10
|
var stringToBoolean = function stringToBoolean(value) {
|
|
13
11
|
switch (value.toLowerCase().trim()) {
|
|
14
12
|
case 'true':
|
|
@@ -19,9 +19,10 @@ export var GRID_CHECKBOX_SELECTION_COL_DEF = _extends({}, GRID_BOOLEAN_COL_DEF,
|
|
|
19
19
|
disableReorder: true,
|
|
20
20
|
disableExport: true,
|
|
21
21
|
getApplyQuickFilterFn: undefined,
|
|
22
|
-
valueGetter: function valueGetter(
|
|
23
|
-
var selectionLookup = selectedIdsLookupSelector(
|
|
24
|
-
|
|
22
|
+
valueGetter: function valueGetter(value, row, column, apiRef) {
|
|
23
|
+
var selectionLookup = selectedIdsLookupSelector(apiRef);
|
|
24
|
+
var rowId = apiRef.current.getRowId(row);
|
|
25
|
+
return selectionLookup[rowId] !== undefined;
|
|
25
26
|
},
|
|
26
27
|
renderHeader: function renderHeader(params) {
|
|
27
28
|
return /*#__PURE__*/_jsx(GridHeaderCheckbox, _extends({}, params));
|
|
@@ -12,36 +12,32 @@ function throwIfNotDateObject(_ref) {
|
|
|
12
12
|
throw new Error(["MUI X: `".concat(columnType, "` column type only accepts `Date` objects as values."), 'Use `valueGetter` to transform the value into a `Date` object.', "Row ID: ".concat(rowId, ", field: \"").concat(field, "\".")].join('\n'));
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
export function gridDateFormatter(
|
|
16
|
-
var value = _ref2.value,
|
|
17
|
-
field = _ref2.field,
|
|
18
|
-
id = _ref2.id;
|
|
15
|
+
export var gridDateFormatter = function gridDateFormatter(value, row, column, apiRef) {
|
|
19
16
|
if (!value) {
|
|
20
17
|
return '';
|
|
21
18
|
}
|
|
19
|
+
var rowId = apiRef.current.getRowId(row);
|
|
22
20
|
throwIfNotDateObject({
|
|
23
21
|
value: value,
|
|
24
22
|
columnType: 'date',
|
|
25
|
-
rowId:
|
|
26
|
-
field: field
|
|
23
|
+
rowId: rowId,
|
|
24
|
+
field: column.field
|
|
27
25
|
});
|
|
28
26
|
return value.toLocaleDateString();
|
|
29
|
-
}
|
|
30
|
-
export function gridDateTimeFormatter(
|
|
31
|
-
var value = _ref3.value,
|
|
32
|
-
field = _ref3.field,
|
|
33
|
-
id = _ref3.id;
|
|
27
|
+
};
|
|
28
|
+
export var gridDateTimeFormatter = function gridDateTimeFormatter(value, row, column, apiRef) {
|
|
34
29
|
if (!value) {
|
|
35
30
|
return '';
|
|
36
31
|
}
|
|
32
|
+
var rowId = apiRef.current.getRowId(row);
|
|
37
33
|
throwIfNotDateObject({
|
|
38
34
|
value: value,
|
|
39
35
|
columnType: 'dateTime',
|
|
40
|
-
rowId:
|
|
41
|
-
field: field
|
|
36
|
+
rowId: rowId,
|
|
37
|
+
field: column.field
|
|
42
38
|
});
|
|
43
39
|
return value.toLocaleString();
|
|
44
|
-
}
|
|
40
|
+
};
|
|
45
41
|
export var GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
46
42
|
type: 'date',
|
|
47
43
|
sortComparator: gridDateComparator,
|
|
@@ -11,8 +11,7 @@ export var GRID_NUMERIC_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
11
11
|
valueParser: function valueParser(value) {
|
|
12
12
|
return value === '' ? null : Number(value);
|
|
13
13
|
},
|
|
14
|
-
valueFormatter: function valueFormatter(
|
|
15
|
-
var value = _ref.value;
|
|
14
|
+
valueFormatter: function valueFormatter(value) {
|
|
16
15
|
return isNumber(value) ? value.toLocaleString() : value || '';
|
|
17
16
|
},
|
|
18
17
|
filterOperators: getGridNumericOperators(),
|
|
@@ -18,18 +18,15 @@ export var GRID_SINGLE_SELECT_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
18
18
|
type: 'singleSelect',
|
|
19
19
|
getOptionLabel: defaultGetOptionLabel,
|
|
20
20
|
getOptionValue: defaultGetOptionValue,
|
|
21
|
-
valueFormatter: function valueFormatter(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
value = params.value,
|
|
25
|
-
api = params.api;
|
|
26
|
-
var colDef = params.api.getColumn(field);
|
|
21
|
+
valueFormatter: function valueFormatter(value, row, colDef, apiRef) {
|
|
22
|
+
// const { id, field, value, api } = params;
|
|
23
|
+
var rowId = apiRef.current.getRowId(row);
|
|
27
24
|
if (!isSingleSelectColDef(colDef)) {
|
|
28
25
|
return '';
|
|
29
26
|
}
|
|
30
27
|
var valueOptions = getValueOptions(colDef, {
|
|
31
|
-
id:
|
|
32
|
-
row:
|
|
28
|
+
id: rowId,
|
|
29
|
+
row: row
|
|
33
30
|
});
|
|
34
31
|
if (value == null) {
|
|
35
32
|
return '';
|
|
@@ -48,8 +45,8 @@ export var GRID_SINGLE_SELECT_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
48
45
|
renderEditCell: renderEditSingleSelectCell,
|
|
49
46
|
filterOperators: getGridSingleSelectOperators(),
|
|
50
47
|
// @ts-ignore
|
|
51
|
-
pastedValueParser: function pastedValueParser(value,
|
|
52
|
-
var colDef =
|
|
48
|
+
pastedValueParser: function pastedValueParser(value, row, column) {
|
|
49
|
+
var colDef = column;
|
|
53
50
|
var valueOptions = getValueOptions(colDef) || [];
|
|
54
51
|
var getOptionValue = colDef.getOptionValue;
|
|
55
52
|
var valueOption = valueOptions.find(function (option) {
|
|
@@ -80,7 +80,7 @@ var GridEditInputCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
80
80
|
column = apiRef.current.getColumn(field);
|
|
81
81
|
parsedValue = newValue;
|
|
82
82
|
if (column.valueParser) {
|
|
83
|
-
parsedValue = column.valueParser(newValue, apiRef.current.
|
|
83
|
+
parsedValue = column.valueParser(newValue, apiRef.current.getRow(id), column, apiRef);
|
|
84
84
|
}
|
|
85
85
|
setValueState(parsedValue);
|
|
86
86
|
apiRef.current.setEditCellValue({
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
3
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
@@ -52,6 +51,8 @@ function GridColumnsManagement(props) {
|
|
|
52
51
|
disableShowHideToggle = _props$disableShowHid === void 0 ? false : _props$disableShowHid,
|
|
53
52
|
_props$disableResetBu = props.disableResetButton,
|
|
54
53
|
disableResetButton = _props$disableResetBu === void 0 ? false : _props$disableResetBu,
|
|
54
|
+
_props$toggleAllMode = props.toggleAllMode,
|
|
55
|
+
toggleAllMode = _props$toggleAllMode === void 0 ? 'all' : _props$toggleAllMode,
|
|
55
56
|
getTogglableColumns = props.getTogglableColumns;
|
|
56
57
|
var isResetDisabled = React.useMemo(function () {
|
|
57
58
|
return checkColumnVisibilityModelsSame(columnVisibilityModel, initialColumnVisibilityModel);
|
|
@@ -75,11 +76,24 @@ function GridColumnsManagement(props) {
|
|
|
75
76
|
field = _ref.name;
|
|
76
77
|
apiRef.current.setColumnVisibility(field, columnVisibilityModel[field] === false);
|
|
77
78
|
};
|
|
79
|
+
var currentColumns = React.useMemo(function () {
|
|
80
|
+
var togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;
|
|
81
|
+
var togglableSortedColumns = togglableColumns ? sortedColumns.filter(function (_ref2) {
|
|
82
|
+
var field = _ref2.field;
|
|
83
|
+
return togglableColumns.includes(field);
|
|
84
|
+
}) : sortedColumns;
|
|
85
|
+
if (!searchValue) {
|
|
86
|
+
return togglableSortedColumns;
|
|
87
|
+
}
|
|
88
|
+
return togglableSortedColumns.filter(function (column) {
|
|
89
|
+
return searchPredicate(column, searchValue.toLowerCase());
|
|
90
|
+
});
|
|
91
|
+
}, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);
|
|
78
92
|
var toggleAllColumns = React.useCallback(function (isVisible) {
|
|
79
93
|
var currentModel = gridColumnVisibilityModelSelector(apiRef);
|
|
80
94
|
var newModel = _extends({}, currentModel);
|
|
81
95
|
var togglableColumns = getTogglableColumns ? getTogglableColumns(columns) : null;
|
|
82
|
-
columns.forEach(function (col) {
|
|
96
|
+
(toggleAllMode === 'filteredOnly' ? currentColumns : columns).forEach(function (col) {
|
|
83
97
|
if (col.hideable && (togglableColumns == null || togglableColumns.includes(col.field))) {
|
|
84
98
|
if (isVisible) {
|
|
85
99
|
// delete the key from the model instead of setting it to `true`
|
|
@@ -90,23 +104,10 @@ function GridColumnsManagement(props) {
|
|
|
90
104
|
}
|
|
91
105
|
});
|
|
92
106
|
return apiRef.current.setColumnVisibilityModel(newModel);
|
|
93
|
-
}, [apiRef, columns, getTogglableColumns]);
|
|
107
|
+
}, [apiRef, columns, getTogglableColumns, toggleAllMode, currentColumns]);
|
|
94
108
|
var handleSearchValueChange = React.useCallback(function (event) {
|
|
95
109
|
setSearchValue(event.target.value);
|
|
96
110
|
}, []);
|
|
97
|
-
var currentColumns = React.useMemo(function () {
|
|
98
|
-
var togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;
|
|
99
|
-
var togglableSortedColumns = togglableColumns ? sortedColumns.filter(function (_ref2) {
|
|
100
|
-
var field = _ref2.field;
|
|
101
|
-
return togglableColumns.includes(field);
|
|
102
|
-
}) : sortedColumns;
|
|
103
|
-
if (!searchValue) {
|
|
104
|
-
return togglableSortedColumns;
|
|
105
|
-
}
|
|
106
|
-
return togglableSortedColumns.filter(function (column) {
|
|
107
|
-
return searchPredicate(column, searchValue.toLowerCase());
|
|
108
|
-
});
|
|
109
|
-
}, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);
|
|
110
111
|
var hideableColumns = React.useMemo(function () {
|
|
111
112
|
return currentColumns.filter(function (col) {
|
|
112
113
|
return col.hideable;
|
|
@@ -194,12 +195,11 @@ function GridColumnsManagement(props) {
|
|
|
194
195
|
onClick: function onClick() {
|
|
195
196
|
return toggleAllColumns(!allHideableColumnsVisible);
|
|
196
197
|
},
|
|
197
|
-
name: apiRef.current.getLocaleText('columnsManagementShowHideAllText')
|
|
198
|
+
name: apiRef.current.getLocaleText('columnsManagementShowHideAllText'),
|
|
199
|
+
sx: {
|
|
200
|
+
p: 0.5
|
|
201
|
+
}
|
|
198
202
|
}, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseCheckbox)),
|
|
199
|
-
sx: _defineProperty({}, ".MuiFormControlLabel-label", {
|
|
200
|
-
textTransform: 'uppercase',
|
|
201
|
-
fontSize: '14px'
|
|
202
|
-
}),
|
|
203
203
|
label: apiRef.current.getLocaleText('columnsManagementShowHideAllText')
|
|
204
204
|
}) : /*#__PURE__*/_jsx("span", {}), !disableResetButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
|
|
205
205
|
onClick: function onClick() {
|
|
@@ -243,7 +243,14 @@ process.env.NODE_ENV !== "production" ? GridColumnsManagement.propTypes = {
|
|
|
243
243
|
*/
|
|
244
244
|
getTogglableColumns: PropTypes.func,
|
|
245
245
|
searchPredicate: PropTypes.func,
|
|
246
|
-
sort: PropTypes.oneOf(['asc', 'desc'])
|
|
246
|
+
sort: PropTypes.oneOf(['asc', 'desc']),
|
|
247
|
+
/**
|
|
248
|
+
* Changes the behavior of the `Show/Hide All` toggle when the search field is used:
|
|
249
|
+
* - `all`: Will toggle all columns.
|
|
250
|
+
* - `filteredOnly`: Will only toggle columns that match the search criteria.
|
|
251
|
+
* @default 'all'
|
|
252
|
+
*/
|
|
253
|
+
toggleAllMode: PropTypes.oneOf(['all', 'filteredOnly'])
|
|
247
254
|
} : void 0;
|
|
248
255
|
var GridColumnsManagementBody = styled('div', {
|
|
249
256
|
name: 'MuiDataGrid',
|
|
@@ -251,8 +258,8 @@ var GridColumnsManagementBody = styled('div', {
|
|
|
251
258
|
overridesResolver: function overridesResolver(props, styles) {
|
|
252
259
|
return styles.columnsManagement;
|
|
253
260
|
}
|
|
254
|
-
})(function (
|
|
255
|
-
var theme =
|
|
261
|
+
})(function (_ref3) {
|
|
262
|
+
var theme = _ref3.theme;
|
|
256
263
|
return {
|
|
257
264
|
padding: theme.spacing(0, 3, 1.5),
|
|
258
265
|
display: 'flex',
|
|
@@ -269,8 +276,8 @@ var GridColumnsManagementHeader = styled('div', {
|
|
|
269
276
|
overridesResolver: function overridesResolver(props, styles) {
|
|
270
277
|
return styles.columnsManagementHeader;
|
|
271
278
|
}
|
|
272
|
-
})(function (
|
|
273
|
-
var theme =
|
|
279
|
+
})(function (_ref4) {
|
|
280
|
+
var theme = _ref4.theme;
|
|
274
281
|
return {
|
|
275
282
|
padding: theme.spacing(1.5, 3)
|
|
276
283
|
};
|
|
@@ -281,17 +288,17 @@ var GridColumnsManagementFooter = styled('div', {
|
|
|
281
288
|
overridesResolver: function overridesResolver(props, styles) {
|
|
282
289
|
return styles.columnsManagementFooter;
|
|
283
290
|
}
|
|
284
|
-
})(function (
|
|
285
|
-
var theme =
|
|
291
|
+
})(function (_ref5) {
|
|
292
|
+
var theme = _ref5.theme;
|
|
286
293
|
return {
|
|
287
|
-
padding: theme.spacing(0.5, 1, 0.5,
|
|
294
|
+
padding: theme.spacing(0.5, 1, 0.5, 3),
|
|
288
295
|
display: 'flex',
|
|
289
296
|
justifyContent: 'space-between',
|
|
290
297
|
borderTop: "1px solid ".concat(theme.palette.divider)
|
|
291
298
|
};
|
|
292
299
|
});
|
|
293
|
-
var GridColumnsManagementEmptyText = styled('div')(function (
|
|
294
|
-
var theme =
|
|
300
|
+
var GridColumnsManagementEmptyText = styled('div')(function (_ref6) {
|
|
301
|
+
var theme = _ref6.theme;
|
|
295
302
|
return {
|
|
296
303
|
padding: theme.spacing(0.5, 0),
|
|
297
304
|
color: theme.palette.grey[500]
|
|
@@ -57,7 +57,9 @@ function calculateCellColSpan(params) {
|
|
|
57
57
|
columns = params.columns;
|
|
58
58
|
var columnsLength = columns.length;
|
|
59
59
|
var column = columns[columnIndex];
|
|
60
|
-
var
|
|
60
|
+
var row = apiRef.current.getRow(rowId);
|
|
61
|
+
var value = apiRef.current.getRowValue(row, column);
|
|
62
|
+
var colSpan = typeof column.colSpan === 'function' ? column.colSpan(value, row, column, apiRef) : column.colSpan;
|
|
61
63
|
if (!colSpan || colSpan === 1) {
|
|
62
64
|
setCellColSpanInfo(lookup, rowId, columnIndex, {
|
|
63
65
|
spannedByColSpan: false,
|
|
@@ -340,7 +340,7 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
|
|
|
340
340
|
row = apiRef.current.getRow(id);
|
|
341
341
|
parsedValue = value;
|
|
342
342
|
if (column.valueParser && !skipValueParser) {
|
|
343
|
-
parsedValue = column.valueParser(value,
|
|
343
|
+
parsedValue = column.valueParser(value, row, column, apiRef);
|
|
344
344
|
}
|
|
345
345
|
editingState = gridEditRowsStateSelector(apiRef.current.state);
|
|
346
346
|
newProps = _extends({}, editingState[id][field], {
|
|
@@ -401,10 +401,7 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
|
|
|
401
401
|
return apiRef.current.getRow(id);
|
|
402
402
|
}
|
|
403
403
|
var value = editingState[id][field].value;
|
|
404
|
-
return column.valueSetter ? column.valueSetter({
|
|
405
|
-
value: value,
|
|
406
|
-
row: row
|
|
407
|
-
}) : _extends({}, row, _defineProperty({}, field, value));
|
|
404
|
+
return column.valueSetter ? column.valueSetter(value, row, column, apiRef) : _extends({}, row, _defineProperty({}, field, value));
|
|
408
405
|
}, [apiRef]);
|
|
409
406
|
var editingApi = {
|
|
410
407
|
getCellMode: getCellMode,
|
|
@@ -406,7 +406,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
|
406
406
|
var row = apiRef.current.getRow(id);
|
|
407
407
|
var parsedValue = value;
|
|
408
408
|
if (column.valueParser && !skipValueParser) {
|
|
409
|
-
parsedValue = column.valueParser(value,
|
|
409
|
+
parsedValue = column.valueParser(value, row, column, apiRef);
|
|
410
410
|
}
|
|
411
411
|
var editingState = gridEditRowsStateSelector(apiRef.current.state);
|
|
412
412
|
var newProps = _extends({}, editingState[id][field], {
|
|
@@ -514,10 +514,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
|
514
514
|
fieldProps = _ref4[1];
|
|
515
515
|
var column = apiRef.current.getColumn(field);
|
|
516
516
|
if (column.valueSetter) {
|
|
517
|
-
rowUpdate = column.valueSetter(
|
|
518
|
-
value: fieldProps.value,
|
|
519
|
-
row: rowUpdate
|
|
520
|
-
});
|
|
517
|
+
rowUpdate = column.valueSetter(fieldProps.value, rowUpdate, column, apiRef);
|
|
521
518
|
} else {
|
|
522
519
|
rowUpdate[field] = fieldProps.value;
|
|
523
520
|
}
|
|
@@ -100,8 +100,8 @@ var getFilterCallbackFromItem = function getFilterCallbackFromItem(filterItem, a
|
|
|
100
100
|
var _filterItem$value;
|
|
101
101
|
var parser = column.valueParser;
|
|
102
102
|
parsedValue = Array.isArray(filterItem.value) ? (_filterItem$value = filterItem.value) == null ? void 0 : _filterItem$value.map(function (x) {
|
|
103
|
-
return parser(x);
|
|
104
|
-
}) : parser(filterItem.value);
|
|
103
|
+
return parser(x, undefined, column, apiRef);
|
|
104
|
+
}) : parser(filterItem.value, undefined, column, apiRef);
|
|
105
105
|
} else {
|
|
106
106
|
parsedValue = filterItem.value;
|
|
107
107
|
}
|
|
@@ -8,7 +8,6 @@ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstruct
|
|
|
8
8
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
9
|
import * as React from 'react';
|
|
10
10
|
import { getGridCellElement, getGridColumnHeaderElement, getGridRowElement } from '../../../utils/domUtils';
|
|
11
|
-
import { GRID_ID_AUTOGENERATED } from './gridRowsUtils';
|
|
12
11
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
13
12
|
import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
|
|
14
13
|
export var MissingRowIdError = /*#__PURE__*/function (_Error) {
|
|
@@ -28,8 +27,7 @@ export var MissingRowIdError = /*#__PURE__*/function (_Error) {
|
|
|
28
27
|
* TODO: Impossible priority - useGridEditing also needs to be after useGridParamsApi
|
|
29
28
|
* TODO: Impossible priority - useGridFocus also needs to be after useGridParamsApi
|
|
30
29
|
*/
|
|
31
|
-
export function useGridParamsApi(apiRef
|
|
32
|
-
var getRowId = props.getRowId;
|
|
30
|
+
export function useGridParamsApi(apiRef) {
|
|
33
31
|
var getColumnHeaderParams = React.useCallback(function (field) {
|
|
34
32
|
return {
|
|
35
33
|
field: field,
|
|
@@ -48,28 +46,6 @@ export function useGridParamsApi(apiRef, props) {
|
|
|
48
46
|
};
|
|
49
47
|
return params;
|
|
50
48
|
}, [apiRef]);
|
|
51
|
-
var getBaseCellParams = React.useCallback(function (id, field) {
|
|
52
|
-
var row = apiRef.current.getRow(id);
|
|
53
|
-
var rowNode = apiRef.current.getRowNode(id);
|
|
54
|
-
if (!row || !rowNode) {
|
|
55
|
-
throw new MissingRowIdError("No row with id #".concat(id, " found"));
|
|
56
|
-
}
|
|
57
|
-
var cellFocus = gridFocusCellSelector(apiRef);
|
|
58
|
-
var cellTabIndex = gridTabIndexCellSelector(apiRef);
|
|
59
|
-
var params = {
|
|
60
|
-
id: id,
|
|
61
|
-
field: field,
|
|
62
|
-
row: row,
|
|
63
|
-
rowNode: rowNode,
|
|
64
|
-
value: row[field],
|
|
65
|
-
colDef: apiRef.current.getColumn(field),
|
|
66
|
-
cellMode: apiRef.current.getCellMode(id, field),
|
|
67
|
-
api: apiRef.current,
|
|
68
|
-
hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,
|
|
69
|
-
tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1
|
|
70
|
-
};
|
|
71
|
-
return params;
|
|
72
|
-
}, [apiRef]);
|
|
73
49
|
var getCellParams = React.useCallback(function (id, field) {
|
|
74
50
|
var colDef = apiRef.current.getColumn(field);
|
|
75
51
|
var value = apiRef.current.getCellValue(id, field);
|
|
@@ -94,12 +70,7 @@ export function useGridParamsApi(apiRef, props) {
|
|
|
94
70
|
isEditable: false
|
|
95
71
|
};
|
|
96
72
|
if (colDef && colDef.valueFormatter) {
|
|
97
|
-
params.formattedValue = colDef.valueFormatter(
|
|
98
|
-
id: id,
|
|
99
|
-
field: params.field,
|
|
100
|
-
value: params.value,
|
|
101
|
-
api: apiRef.current
|
|
102
|
-
});
|
|
73
|
+
params.formattedValue = colDef.valueFormatter(value, row, colDef, apiRef);
|
|
103
74
|
}
|
|
104
75
|
params.isEditable = colDef && apiRef.current.isCellEditable(params);
|
|
105
76
|
return params;
|
|
@@ -113,32 +84,28 @@ export function useGridParamsApi(apiRef, props) {
|
|
|
113
84
|
}
|
|
114
85
|
return rowModel[field];
|
|
115
86
|
}
|
|
116
|
-
|
|
117
|
-
|
|
87
|
+
var row = apiRef.current.getRow(id);
|
|
88
|
+
if (!row) {
|
|
89
|
+
throw new MissingRowIdError("No row with id #".concat(id, " found"));
|
|
90
|
+
}
|
|
91
|
+
var value = row[colDef.field];
|
|
92
|
+
return colDef.valueGetter(value, row, colDef, apiRef);
|
|
93
|
+
}, [apiRef]);
|
|
118
94
|
var getRowValue = React.useCallback(function (row, colDef) {
|
|
119
|
-
var _getRowId;
|
|
120
|
-
var id = GRID_ID_AUTOGENERATED in row ? row[GRID_ID_AUTOGENERATED] : (_getRowId = getRowId == null ? void 0 : getRowId(row)) != null ? _getRowId : row.id;
|
|
121
95
|
var field = colDef.field;
|
|
122
96
|
if (!colDef || !colDef.valueGetter) {
|
|
123
97
|
return row[field];
|
|
124
98
|
}
|
|
125
|
-
|
|
126
|
-
|
|
99
|
+
var value = row[colDef.field];
|
|
100
|
+
return colDef.valueGetter(value, row, colDef, apiRef);
|
|
101
|
+
}, [apiRef]);
|
|
127
102
|
var getRowFormattedValue = React.useCallback(function (row, colDef) {
|
|
128
|
-
var _ref;
|
|
129
103
|
var value = getRowValue(row, colDef);
|
|
130
104
|
if (!colDef || !colDef.valueFormatter) {
|
|
131
105
|
return value;
|
|
132
106
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return colDef.valueFormatter({
|
|
136
|
-
id: id,
|
|
137
|
-
field: field,
|
|
138
|
-
value: value,
|
|
139
|
-
api: apiRef.current
|
|
140
|
-
});
|
|
141
|
-
}, [apiRef, getRowId, getRowValue]);
|
|
107
|
+
return colDef.valueFormatter(value, row, colDef, apiRef);
|
|
108
|
+
}, [apiRef, getRowValue]);
|
|
142
109
|
var getColumnHeaderElement = React.useCallback(function (field) {
|
|
143
110
|
if (!apiRef.current.rootElementRef.current) {
|
|
144
111
|
return null;
|
package/legacy/index.js
CHANGED
package/legacy/locales/heIL.js
CHANGED
|
@@ -61,13 +61,12 @@ var heILGrid = {
|
|
|
61
61
|
filterOperatorIsEmpty: 'ריק',
|
|
62
62
|
filterOperatorIsNotEmpty: 'אינו ריק',
|
|
63
63
|
filterOperatorIsAnyOf: 'הוא אחד מ-',
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
64
|
+
'filterOperator=': '=',
|
|
65
|
+
'filterOperator!=': '!=',
|
|
66
|
+
'filterOperator>': '>',
|
|
67
|
+
'filterOperator>=': '>=',
|
|
68
|
+
'filterOperator<': '<',
|
|
69
|
+
'filterOperator<=': '<=',
|
|
71
70
|
// Header filter operators text
|
|
72
71
|
headerFilterOperatorContains: 'מכיל',
|
|
73
72
|
headerFilterOperatorEquals: 'שווה',
|
|
@@ -145,7 +144,7 @@ var heILGrid = {
|
|
|
145
144
|
return "\u05D4\u05E4\u05E1\u05E7 \u05DC\u05E7\u05D1\u05E5 \u05DC\u05E4\u05D9 ".concat(name);
|
|
146
145
|
},
|
|
147
146
|
// Master/detail
|
|
148
|
-
|
|
147
|
+
detailPanelToggle: 'הצג/הסתר פרטים',
|
|
149
148
|
expandDetailPanel: 'הרחב',
|
|
150
149
|
collapseDetailPanel: 'כווץ',
|
|
151
150
|
// Row reordering text
|
package/locales/heIL.js
CHANGED
|
@@ -59,13 +59,12 @@ const heILGrid = {
|
|
|
59
59
|
filterOperatorIsEmpty: 'ריק',
|
|
60
60
|
filterOperatorIsNotEmpty: 'אינו ריק',
|
|
61
61
|
filterOperatorIsAnyOf: 'הוא אחד מ-',
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
'filterOperator=': '=',
|
|
63
|
+
'filterOperator!=': '!=',
|
|
64
|
+
'filterOperator>': '>',
|
|
65
|
+
'filterOperator>=': '>=',
|
|
66
|
+
'filterOperator<': '<',
|
|
67
|
+
'filterOperator<=': '<=',
|
|
69
68
|
// Header filter operators text
|
|
70
69
|
headerFilterOperatorContains: 'מכיל',
|
|
71
70
|
headerFilterOperatorEquals: 'שווה',
|
|
@@ -133,7 +132,7 @@ const heILGrid = {
|
|
|
133
132
|
groupColumn: name => `קבץ לפי ${name}`,
|
|
134
133
|
unGroupColumn: name => `הפסק לקבץ לפי ${name}`,
|
|
135
134
|
// Master/detail
|
|
136
|
-
|
|
135
|
+
detailPanelToggle: 'הצג/הסתר פרטים',
|
|
137
136
|
expandDetailPanel: 'הרחב',
|
|
138
137
|
collapseDetailPanel: 'כווץ',
|
|
139
138
|
// Row reordering text
|