@mui/x-data-grid 5.17.22 → 5.17.23
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 +34 -0
- package/components/toolbar/GridToolbarFilterButton.js +11 -8
- package/hooks/features/rows/useGridRows.js +9 -4
- package/index.js +1 -1
- package/legacy/components/toolbar/GridToolbarFilterButton.js +10 -3
- package/legacy/hooks/features/rows/useGridRows.js +8 -5
- package/legacy/index.js +1 -1
- package/legacy/utils/domUtils.js +10 -8
- package/models/gridFilterOperator.d.ts +6 -0
- package/modern/components/toolbar/GridToolbarFilterButton.js +8 -1
- package/modern/hooks/features/rows/useGridRows.js +9 -4
- package/modern/index.js +1 -1
- package/modern/utils/domUtils.js +10 -8
- package/node/components/toolbar/GridToolbarFilterButton.js +11 -8
- package/node/hooks/features/rows/useGridRows.js +9 -4
- package/node/index.js +1 -1
- package/node/utils/domUtils.js +9 -8
- package/package.json +1 -1
- package/utils/domUtils.js +10 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,40 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 5.17.23
|
|
7
|
+
|
|
8
|
+
_Feb 9, 2023_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 6 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🌍 Improve Brazilian Portuguese (pt-BR) locale
|
|
13
|
+
- 🎉 Add banner and callouts to inform about MUI X v6 beta
|
|
14
|
+
- 🐞 Bugfixes
|
|
15
|
+
|
|
16
|
+
### `@mui/x-data-grid@v5.17.23` / `@mui/x-data-grid-pro@v5.17.23` / `@mui/x-data-grid-premium@v5.17.23`
|
|
17
|
+
|
|
18
|
+
#### Changes
|
|
19
|
+
|
|
20
|
+
- [DataGrid] Allow to customize the value displayed in the filter button tooltip (#7816) @ithrforu
|
|
21
|
+
- [DataGrid] Fix `getCellElement` method not working with pinned columns (#7844) @yaredtsy
|
|
22
|
+
- [DataGrid] Fix stale rows issue in `unstable_replaceRows` (#7694) @MBilalShafi
|
|
23
|
+
- [l10n] Improve Brazilian Portuguese (pt-BR) locale (#7850) @ed-ateixeira
|
|
24
|
+
|
|
25
|
+
### `@mui/x-date-pickers@v_5.0.18` / `@mui/x-date-pickers-pro@v_5.0.18`
|
|
26
|
+
|
|
27
|
+
#### Changes
|
|
28
|
+
|
|
29
|
+
- [pickers] Update pickers when new value has a distinct timezone (#7853) @alexfauquette
|
|
30
|
+
|
|
31
|
+
### Docs
|
|
32
|
+
|
|
33
|
+
- [docs] Add messages in v5 doc to inform people about v6 (#7838) @flaviendelangle
|
|
34
|
+
- [docs] Fix 301 link @oliviertassinari
|
|
35
|
+
|
|
36
|
+
### Core
|
|
37
|
+
|
|
38
|
+
- [core] Upgrade monorepo (#7849) @cherniavskii
|
|
39
|
+
|
|
6
40
|
## v5.17.22
|
|
7
41
|
|
|
8
42
|
_Feb 2, 2023_
|
|
@@ -67,18 +67,21 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
|
|
|
67
67
|
|
|
68
68
|
const getOperatorLabel = item => lookup[item.columnField].filterOperators.find(operator => operator.value === item.operatorValue).label || apiRef.current.getLocaleText(`filterOperator${capitalize(item.operatorValue)}`).toString();
|
|
69
69
|
|
|
70
|
+
const getFilterItemValue = item => {
|
|
71
|
+
const {
|
|
72
|
+
getValueAsString
|
|
73
|
+
} = lookup[item.columnField].filterOperators.find(operator => operator.value === item.operatorValue);
|
|
74
|
+
return getValueAsString ? getValueAsString(item.value) : item.value;
|
|
75
|
+
};
|
|
76
|
+
|
|
70
77
|
return /*#__PURE__*/_jsxs("div", {
|
|
71
78
|
children: [apiRef.current.getLocaleText('toolbarFiltersTooltipActive')(activeFilters.length), /*#__PURE__*/_jsx(GridToolbarFilterListRoot, {
|
|
72
79
|
className: classes.root,
|
|
73
|
-
children: activeFilters.map((item, index) => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return _extends({}, lookup[item.columnField] && /*#__PURE__*/_jsx("li", {
|
|
77
|
-
children: `${lookup[item.columnField].headerName || item.columnField}
|
|
80
|
+
children: activeFilters.map((item, index) => _extends({}, lookup[item.columnField] && /*#__PURE__*/_jsx("li", {
|
|
81
|
+
children: `${lookup[item.columnField].headerName || item.columnField}
|
|
78
82
|
${getOperatorLabel(item)}
|
|
79
|
-
${
|
|
80
|
-
|
|
81
|
-
})
|
|
83
|
+
${item.value ? getFilterItemValue(item) : ''}`
|
|
84
|
+
}, index)))
|
|
82
85
|
})]
|
|
83
86
|
});
|
|
84
87
|
}, [apiRef, preferencePanel.open, activeFilters, lookup, classes]);
|
|
@@ -299,14 +299,19 @@ export const useGridRows = (apiRef, props) => {
|
|
|
299
299
|
apiRef.current.unstable_caches.rows.idRowsLookup = updatedIdRowsLookup;
|
|
300
300
|
apiRef.current.unstable_caches.rows.idToIdLookup = updatedIdToIdLookup;
|
|
301
301
|
apiRef.current.unstable_caches.rows.ids = updatedRows;
|
|
302
|
-
apiRef.current.setState(state =>
|
|
303
|
-
|
|
302
|
+
apiRef.current.setState(state => {
|
|
303
|
+
const newRowsState = {
|
|
304
304
|
idRowsLookup: updatedIdRowsLookup,
|
|
305
305
|
idToIdLookup: updatedIdToIdLookup,
|
|
306
306
|
tree: updatedTree,
|
|
307
307
|
ids: updatedRows
|
|
308
|
-
}
|
|
309
|
-
|
|
308
|
+
};
|
|
309
|
+
return _extends({}, state, {
|
|
310
|
+
rows: _extends({}, state.rows, newRowsState, {
|
|
311
|
+
groupingResponseBeforeRowHydration: _extends({}, state.rows.groupingResponseBeforeRowHydration, newRowsState)
|
|
312
|
+
})
|
|
313
|
+
});
|
|
314
|
+
});
|
|
310
315
|
apiRef.current.publishEvent('rowsSet');
|
|
311
316
|
}, [apiRef, props.signature, props.getRowId]);
|
|
312
317
|
const rowApi = {
|
package/index.js
CHANGED
|
@@ -71,14 +71,21 @@ var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbar
|
|
|
71
71
|
}).label || apiRef.current.getLocaleText("filterOperator".concat(capitalize(item.operatorValue))).toString();
|
|
72
72
|
};
|
|
73
73
|
|
|
74
|
+
var getFilterItemValue = function getFilterItemValue(item) {
|
|
75
|
+
var _ref2 = lookup[item.columnField].filterOperators.find(function (operator) {
|
|
76
|
+
return operator.value === item.operatorValue;
|
|
77
|
+
}),
|
|
78
|
+
getValueAsString = _ref2.getValueAsString;
|
|
79
|
+
|
|
80
|
+
return getValueAsString ? getValueAsString(item.value) : item.value;
|
|
81
|
+
};
|
|
82
|
+
|
|
74
83
|
return /*#__PURE__*/_jsxs("div", {
|
|
75
84
|
children: [apiRef.current.getLocaleText('toolbarFiltersTooltipActive')(activeFilters.length), /*#__PURE__*/_jsx(GridToolbarFilterListRoot, {
|
|
76
85
|
className: classes.root,
|
|
77
86
|
children: activeFilters.map(function (item, index) {
|
|
78
|
-
var _item$value;
|
|
79
|
-
|
|
80
87
|
return _extends({}, lookup[item.columnField] && /*#__PURE__*/_jsx("li", {
|
|
81
|
-
children: "".concat(lookup[item.columnField].headerName || item.columnField, "\n ").concat(getOperatorLabel(item), "\n ").concat(
|
|
88
|
+
children: "".concat(lookup[item.columnField].headerName || item.columnField, "\n ").concat(getOperatorLabel(item), "\n ").concat(item.value ? getFilterItemValue(item) : '')
|
|
82
89
|
}, index));
|
|
83
90
|
})
|
|
84
91
|
})]
|
|
@@ -329,12 +329,15 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
329
329
|
apiRef.current.unstable_caches.rows.idToIdLookup = updatedIdToIdLookup;
|
|
330
330
|
apiRef.current.unstable_caches.rows.ids = updatedRows;
|
|
331
331
|
apiRef.current.setState(function (state) {
|
|
332
|
+
var newRowsState = {
|
|
333
|
+
idRowsLookup: updatedIdRowsLookup,
|
|
334
|
+
idToIdLookup: updatedIdToIdLookup,
|
|
335
|
+
tree: updatedTree,
|
|
336
|
+
ids: updatedRows
|
|
337
|
+
};
|
|
332
338
|
return _extends({}, state, {
|
|
333
|
-
rows: _extends({}, state.rows, {
|
|
334
|
-
|
|
335
|
-
idToIdLookup: updatedIdToIdLookup,
|
|
336
|
-
tree: updatedTree,
|
|
337
|
-
ids: updatedRows
|
|
339
|
+
rows: _extends({}, state.rows, newRowsState, {
|
|
340
|
+
groupingResponseBeforeRowHydration: _extends({}, state.rows.groupingResponseBeforeRowHydration, newRowsState)
|
|
338
341
|
})
|
|
339
342
|
});
|
|
340
343
|
});
|
package/legacy/index.js
CHANGED
package/legacy/utils/domUtils.js
CHANGED
|
@@ -27,17 +27,19 @@ function escapeOperandAttributeSelector(operand) {
|
|
|
27
27
|
export function getGridColumnHeaderElement(root, field) {
|
|
28
28
|
return root.querySelector("[role=\"columnheader\"][data-field=\"".concat(escapeOperandAttributeSelector(field), "\"]"));
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
function getGridRowElementSelector(id) {
|
|
32
|
+
return ".".concat(gridClasses.row, "[data-id=\"").concat(escapeOperandAttributeSelector(String(id)), "\"]");
|
|
33
|
+
}
|
|
34
|
+
|
|
30
35
|
export function getGridRowElement(root, id) {
|
|
31
|
-
return root.querySelector(
|
|
36
|
+
return root.querySelector(getGridRowElementSelector(id));
|
|
32
37
|
}
|
|
33
38
|
export function getGridCellElement(root, _ref) {
|
|
34
39
|
var id = _ref.id,
|
|
35
40
|
field = _ref.field;
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return row.querySelector(".".concat(gridClasses.cell, "[data-field=\"").concat(escapeOperandAttributeSelector(field), "\"]"));
|
|
41
|
+
var rowSelector = getGridRowElementSelector(id);
|
|
42
|
+
var cellSelector = ".".concat(gridClasses.cell, "[data-field=\"").concat(escapeOperandAttributeSelector(field), "\"]");
|
|
43
|
+
var selector = "".concat(rowSelector, " ").concat(cellSelector);
|
|
44
|
+
return root.querySelector(selector);
|
|
43
45
|
}
|
|
@@ -35,6 +35,12 @@ export interface GridFilterOperator<R extends GridValidRowModel = any, V = any,
|
|
|
35
35
|
* The props to pass to the input component in the filter panel for this filter operator.
|
|
36
36
|
*/
|
|
37
37
|
InputComponentProps?: Record<string, any>;
|
|
38
|
+
/**
|
|
39
|
+
* Converts the value of a filter item to a human-readable form.
|
|
40
|
+
* @param {GridFilterItem['value']} value The filter item value.
|
|
41
|
+
* @returns {string} The value formatted to be displayed in the UI of filter button tooltip.
|
|
42
|
+
*/
|
|
43
|
+
getValueAsString?: (value: GridFilterItem['value']) => string;
|
|
38
44
|
/**
|
|
39
45
|
* If `false`, filter operator doesn't require user-entered value to work.
|
|
40
46
|
* Usually should be set to `false` for filter operators that don't have `InputComponent` (for example `isEmpty`)
|
|
@@ -65,13 +65,20 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
|
|
|
65
65
|
|
|
66
66
|
const getOperatorLabel = item => lookup[item.columnField].filterOperators.find(operator => operator.value === item.operatorValue).label || apiRef.current.getLocaleText(`filterOperator${capitalize(item.operatorValue)}`).toString();
|
|
67
67
|
|
|
68
|
+
const getFilterItemValue = item => {
|
|
69
|
+
const {
|
|
70
|
+
getValueAsString
|
|
71
|
+
} = lookup[item.columnField].filterOperators.find(operator => operator.value === item.operatorValue);
|
|
72
|
+
return getValueAsString ? getValueAsString(item.value) : item.value;
|
|
73
|
+
};
|
|
74
|
+
|
|
68
75
|
return /*#__PURE__*/_jsxs("div", {
|
|
69
76
|
children: [apiRef.current.getLocaleText('toolbarFiltersTooltipActive')(activeFilters.length), /*#__PURE__*/_jsx(GridToolbarFilterListRoot, {
|
|
70
77
|
className: classes.root,
|
|
71
78
|
children: activeFilters.map((item, index) => _extends({}, lookup[item.columnField] && /*#__PURE__*/_jsx("li", {
|
|
72
79
|
children: `${lookup[item.columnField].headerName || item.columnField}
|
|
73
80
|
${getOperatorLabel(item)}
|
|
74
|
-
${item.value
|
|
81
|
+
${item.value ? getFilterItemValue(item) : ''}`
|
|
75
82
|
}, index)))
|
|
76
83
|
})]
|
|
77
84
|
});
|
|
@@ -291,14 +291,19 @@ export const useGridRows = (apiRef, props) => {
|
|
|
291
291
|
apiRef.current.unstable_caches.rows.idRowsLookup = updatedIdRowsLookup;
|
|
292
292
|
apiRef.current.unstable_caches.rows.idToIdLookup = updatedIdToIdLookup;
|
|
293
293
|
apiRef.current.unstable_caches.rows.ids = updatedRows;
|
|
294
|
-
apiRef.current.setState(state =>
|
|
295
|
-
|
|
294
|
+
apiRef.current.setState(state => {
|
|
295
|
+
const newRowsState = {
|
|
296
296
|
idRowsLookup: updatedIdRowsLookup,
|
|
297
297
|
idToIdLookup: updatedIdToIdLookup,
|
|
298
298
|
tree: updatedTree,
|
|
299
299
|
ids: updatedRows
|
|
300
|
-
}
|
|
301
|
-
|
|
300
|
+
};
|
|
301
|
+
return _extends({}, state, {
|
|
302
|
+
rows: _extends({}, state.rows, newRowsState, {
|
|
303
|
+
groupingResponseBeforeRowHydration: _extends({}, state.rows.groupingResponseBeforeRowHydration, newRowsState)
|
|
304
|
+
})
|
|
305
|
+
});
|
|
306
|
+
});
|
|
302
307
|
apiRef.current.publishEvent('rowsSet');
|
|
303
308
|
}, [apiRef, props.signature, props.getRowId]);
|
|
304
309
|
const rowApi = {
|
package/modern/index.js
CHANGED
package/modern/utils/domUtils.js
CHANGED
|
@@ -27,18 +27,20 @@ function escapeOperandAttributeSelector(operand) {
|
|
|
27
27
|
export function getGridColumnHeaderElement(root, field) {
|
|
28
28
|
return root.querySelector(`[role="columnheader"][data-field="${escapeOperandAttributeSelector(field)}"]`);
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
function getGridRowElementSelector(id) {
|
|
32
|
+
return `.${gridClasses.row}[data-id="${escapeOperandAttributeSelector(String(id))}"]`;
|
|
33
|
+
}
|
|
34
|
+
|
|
30
35
|
export function getGridRowElement(root, id) {
|
|
31
|
-
return root.querySelector(
|
|
36
|
+
return root.querySelector(getGridRowElementSelector(id));
|
|
32
37
|
}
|
|
33
38
|
export function getGridCellElement(root, {
|
|
34
39
|
id,
|
|
35
40
|
field
|
|
36
41
|
}) {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return row.querySelector(`.${gridClasses.cell}[data-field="${escapeOperandAttributeSelector(field)}"]`);
|
|
42
|
+
const rowSelector = getGridRowElementSelector(id);
|
|
43
|
+
const cellSelector = `.${gridClasses.cell}[data-field="${escapeOperandAttributeSelector(field)}"]`;
|
|
44
|
+
const selector = `${rowSelector} ${cellSelector}`;
|
|
45
|
+
return root.querySelector(selector);
|
|
44
46
|
}
|
|
@@ -95,18 +95,21 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
|
|
|
95
95
|
|
|
96
96
|
const getOperatorLabel = item => lookup[item.columnField].filterOperators.find(operator => operator.value === item.operatorValue).label || apiRef.current.getLocaleText(`filterOperator${(0, _utils.capitalize)(item.operatorValue)}`).toString();
|
|
97
97
|
|
|
98
|
+
const getFilterItemValue = item => {
|
|
99
|
+
const {
|
|
100
|
+
getValueAsString
|
|
101
|
+
} = lookup[item.columnField].filterOperators.find(operator => operator.value === item.operatorValue);
|
|
102
|
+
return getValueAsString ? getValueAsString(item.value) : item.value;
|
|
103
|
+
};
|
|
104
|
+
|
|
98
105
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
99
106
|
children: [apiRef.current.getLocaleText('toolbarFiltersTooltipActive')(activeFilters.length), /*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarFilterListRoot, {
|
|
100
107
|
className: classes.root,
|
|
101
|
-
children: activeFilters.map((item, index) => {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return (0, _extends2.default)({}, lookup[item.columnField] && /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
|
|
105
|
-
children: `${lookup[item.columnField].headerName || item.columnField}
|
|
108
|
+
children: activeFilters.map((item, index) => (0, _extends2.default)({}, lookup[item.columnField] && /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
|
|
109
|
+
children: `${lookup[item.columnField].headerName || item.columnField}
|
|
106
110
|
${getOperatorLabel(item)}
|
|
107
|
-
${
|
|
108
|
-
|
|
109
|
-
})
|
|
111
|
+
${item.value ? getFilterItemValue(item) : ''}`
|
|
112
|
+
}, index)))
|
|
110
113
|
})]
|
|
111
114
|
});
|
|
112
115
|
}, [apiRef, preferencePanel.open, activeFilters, lookup, classes]);
|
|
@@ -321,14 +321,19 @@ const useGridRows = (apiRef, props) => {
|
|
|
321
321
|
apiRef.current.unstable_caches.rows.idRowsLookup = updatedIdRowsLookup;
|
|
322
322
|
apiRef.current.unstable_caches.rows.idToIdLookup = updatedIdToIdLookup;
|
|
323
323
|
apiRef.current.unstable_caches.rows.ids = updatedRows;
|
|
324
|
-
apiRef.current.setState(state =>
|
|
325
|
-
|
|
324
|
+
apiRef.current.setState(state => {
|
|
325
|
+
const newRowsState = {
|
|
326
326
|
idRowsLookup: updatedIdRowsLookup,
|
|
327
327
|
idToIdLookup: updatedIdToIdLookup,
|
|
328
328
|
tree: updatedTree,
|
|
329
329
|
ids: updatedRows
|
|
330
|
-
}
|
|
331
|
-
|
|
330
|
+
};
|
|
331
|
+
return (0, _extends2.default)({}, state, {
|
|
332
|
+
rows: (0, _extends2.default)({}, state.rows, newRowsState, {
|
|
333
|
+
groupingResponseBeforeRowHydration: (0, _extends2.default)({}, state.rows.groupingResponseBeforeRowHydration, newRowsState)
|
|
334
|
+
})
|
|
335
|
+
});
|
|
336
|
+
});
|
|
332
337
|
apiRef.current.publishEvent('rowsSet');
|
|
333
338
|
}, [apiRef, props.signature, props.getRowId]);
|
|
334
339
|
const rowApi = {
|
package/node/index.js
CHANGED
package/node/utils/domUtils.js
CHANGED
|
@@ -47,19 +47,20 @@ function getGridColumnHeaderElement(root, field) {
|
|
|
47
47
|
return root.querySelector(`[role="columnheader"][data-field="${escapeOperandAttributeSelector(field)}"]`);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
function getGridRowElementSelector(id) {
|
|
51
|
+
return `.${_gridClasses.gridClasses.row}[data-id="${escapeOperandAttributeSelector(String(id))}"]`;
|
|
52
|
+
}
|
|
53
|
+
|
|
50
54
|
function getGridRowElement(root, id) {
|
|
51
|
-
return root.querySelector(
|
|
55
|
+
return root.querySelector(getGridRowElementSelector(id));
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
function getGridCellElement(root, {
|
|
55
59
|
id,
|
|
56
60
|
field
|
|
57
61
|
}) {
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return row.querySelector(`.${_gridClasses.gridClasses.cell}[data-field="${escapeOperandAttributeSelector(field)}"]`);
|
|
62
|
+
const rowSelector = getGridRowElementSelector(id);
|
|
63
|
+
const cellSelector = `.${_gridClasses.gridClasses.cell}[data-field="${escapeOperandAttributeSelector(field)}"]`;
|
|
64
|
+
const selector = `${rowSelector} ${cellSelector}`;
|
|
65
|
+
return root.querySelector(selector);
|
|
65
66
|
}
|
package/package.json
CHANGED
package/utils/domUtils.js
CHANGED
|
@@ -27,18 +27,20 @@ function escapeOperandAttributeSelector(operand) {
|
|
|
27
27
|
export function getGridColumnHeaderElement(root, field) {
|
|
28
28
|
return root.querySelector(`[role="columnheader"][data-field="${escapeOperandAttributeSelector(field)}"]`);
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
function getGridRowElementSelector(id) {
|
|
32
|
+
return `.${gridClasses.row}[data-id="${escapeOperandAttributeSelector(String(id))}"]`;
|
|
33
|
+
}
|
|
34
|
+
|
|
30
35
|
export function getGridRowElement(root, id) {
|
|
31
|
-
return root.querySelector(
|
|
36
|
+
return root.querySelector(getGridRowElementSelector(id));
|
|
32
37
|
}
|
|
33
38
|
export function getGridCellElement(root, {
|
|
34
39
|
id,
|
|
35
40
|
field
|
|
36
41
|
}) {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return row.querySelector(`.${gridClasses.cell}[data-field="${escapeOperandAttributeSelector(field)}"]`);
|
|
42
|
+
const rowSelector = getGridRowElementSelector(id);
|
|
43
|
+
const cellSelector = `.${gridClasses.cell}[data-field="${escapeOperandAttributeSelector(field)}"]`;
|
|
44
|
+
const selector = `${rowSelector} ${cellSelector}`;
|
|
45
|
+
return root.querySelector(selector);
|
|
44
46
|
}
|