@mui/x-data-grid 5.17.21 → 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.
Files changed (37) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/components/toolbar/GridToolbarFilterButton.js +11 -8
  3. package/hooks/features/export/useGridPrintExport.js +12 -0
  4. package/hooks/features/rows/useGridRows.js +9 -4
  5. package/index.js +1 -1
  6. package/legacy/components/toolbar/GridToolbarFilterButton.js +10 -3
  7. package/legacy/hooks/features/export/useGridPrintExport.js +12 -0
  8. package/legacy/hooks/features/rows/useGridRows.js +8 -5
  9. package/legacy/index.js +1 -1
  10. package/legacy/locales/frFR.js +1 -1
  11. package/legacy/locales/index.js +1 -0
  12. package/legacy/locales/urPK.js +135 -0
  13. package/legacy/utils/domUtils.js +10 -8
  14. package/locales/frFR.js +1 -1
  15. package/locales/index.d.ts +1 -0
  16. package/locales/index.js +1 -0
  17. package/locales/urPK.d.ts +2 -0
  18. package/locales/urPK.js +123 -0
  19. package/models/gridFilterOperator.d.ts +6 -0
  20. package/modern/components/toolbar/GridToolbarFilterButton.js +8 -1
  21. package/modern/hooks/features/export/useGridPrintExport.js +12 -0
  22. package/modern/hooks/features/rows/useGridRows.js +9 -4
  23. package/modern/index.js +1 -1
  24. package/modern/locales/frFR.js +1 -1
  25. package/modern/locales/index.js +1 -0
  26. package/modern/locales/urPK.js +123 -0
  27. package/modern/utils/domUtils.js +10 -8
  28. package/node/components/toolbar/GridToolbarFilterButton.js +11 -8
  29. package/node/hooks/features/export/useGridPrintExport.js +12 -0
  30. package/node/hooks/features/rows/useGridRows.js +9 -4
  31. package/node/index.js +1 -1
  32. package/node/locales/frFR.js +1 -1
  33. package/node/locales/index.js +13 -0
  34. package/node/locales/urPK.js +133 -0
  35. package/node/utils/domUtils.js +9 -8
  36. package/package.json +1 -1
  37. package/utils/domUtils.js +10 -8
package/CHANGELOG.md CHANGED
@@ -3,6 +3,66 @@
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
+
40
+ ## v5.17.22
41
+
42
+ _Feb 2, 2023_
43
+
44
+ We'd like to offer a big thanks to the 4 contributors who made this release possible. Here are some highlights ✨:
45
+
46
+ - 🌍 Add Urdu (ur-PK) locale
47
+ - 🌍 Improve French (fr-FR) and Italian (it-IT) locales
48
+ - 🐞 Bugfixes
49
+
50
+ ### `@mui/x-data-grid@v5.17.22` / `@mui/x-data-grid-pro@v5.17.22` / `@mui/x-data-grid-premium@v5.17.22`
51
+
52
+ #### Changes
53
+
54
+ - [DataGrid] Fix an error when deleting pinned row using the buttons in the `actions` column (#7767) @cherniavskii
55
+ - [DataGrid] Fix print preview regression in Chrome browser (#7405) @cherniavskii
56
+ - [l10n] Add Urdu (ur-PK) locale (#7778) @MBilalShafi
57
+ - [l10n] Improve French (fr-FR) locale (#7795) @Vivek-Prajapatii
58
+
59
+ ### `@mui/x-date-pickers@v5.0.17` / `@mui/x-date-pickers-pro@v5.0.17`
60
+
61
+ #### Changes
62
+
63
+ - [TimePicker] Add missing `themeAugmentation` entry (#7732) @LukasTy
64
+ - [l10n] Improve Italian (it-IT) locale (#7761) @simonecervini
65
+
6
66
  ## v5.17.21
7
67
 
8
68
  _Jan 27, 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
- var _item$value;
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
- ${(_item$value = item.value) != null ? _item$value : ''}`
80
- }, index));
81
- })
83
+ ${item.value ? getFilterItemValue(item) : ''}`
84
+ }, index)))
82
85
  })]
83
86
  });
84
87
  }, [apiRef, preferencePanel.open, activeFilters, lookup, classes]);
@@ -21,6 +21,11 @@ function raf() {
21
21
  });
22
22
  }
23
23
 
24
+ function getChromeVersion() {
25
+ const raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
26
+ return raw ? parseInt(raw[2], 10) : null;
27
+ }
28
+
24
29
  /**
25
30
  * @requires useGridColumns (state)
26
31
  * @requires useGridFilter (state)
@@ -96,6 +101,13 @@ export const useGridPrintExport = (apiRef, props) => {
96
101
 
97
102
  const gridMain = gridClone.querySelector(`.${gridClasses.main}`);
98
103
  gridMain.style.overflow = 'visible';
104
+ const chromeVersion = getChromeVersion();
105
+
106
+ if (chromeVersion && chromeVersion >= 108) {
107
+ // See https://support.google.com/chrome/thread/191619088?hl=en&msgid=193009642
108
+ gridClone.style.contain = 'size';
109
+ }
110
+
99
111
  const columnHeaders = gridClone.querySelector(`.${gridClasses.columnHeaders}`);
100
112
  const columnHeadersInner = columnHeaders.querySelector(`.${gridClasses.columnHeadersInner}`);
101
113
  columnHeadersInner.style.width = '100%';
@@ -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 => _extends({}, state, {
303
- rows: _extends({}, state.rows, {
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
@@ -1,4 +1,4 @@
1
- /** @license MUI X v5.17.21
1
+ /** @license MUI X v5.17.23
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.
@@ -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((_item$value = item.value) != null ? _item$value : '')
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
  })]
@@ -24,6 +24,11 @@ function raf() {
24
24
  });
25
25
  }
26
26
 
27
+ function getChromeVersion() {
28
+ var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
29
+ return raw ? parseInt(raw[2], 10) : null;
30
+ }
31
+
27
32
  /**
28
33
  * @requires useGridColumns (state)
29
34
  * @requires useGridFilter (state)
@@ -103,6 +108,13 @@ export var useGridPrintExport = function useGridPrintExport(apiRef, props) {
103
108
 
104
109
  var gridMain = gridClone.querySelector(".".concat(gridClasses.main));
105
110
  gridMain.style.overflow = 'visible';
111
+ var chromeVersion = getChromeVersion();
112
+
113
+ if (chromeVersion && chromeVersion >= 108) {
114
+ // See https://support.google.com/chrome/thread/191619088?hl=en&msgid=193009642
115
+ gridClone.style.contain = 'size';
116
+ }
117
+
106
118
  var columnHeaders = gridClone.querySelector(".".concat(gridClasses.columnHeaders));
107
119
  var columnHeadersInner = columnHeaders.querySelector(".".concat(gridClasses.columnHeadersInner));
108
120
  columnHeadersInner.style.width = '100%';
@@ -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
- idRowsLookup: updatedIdRowsLookup,
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
@@ -1,4 +1,4 @@
1
- /** @license MUI X v5.17.21
1
+ /** @license MUI X v5.17.23
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.
@@ -62,7 +62,7 @@ var frFRGrid = {
62
62
  filterOperatorOnOrBefore: 'égal ou antérieur',
63
63
  filterOperatorIsEmpty: 'est vide',
64
64
  filterOperatorIsNotEmpty: "n'est pas vide",
65
- filterOperatorIsAnyOf: 'fait parti de',
65
+ filterOperatorIsAnyOf: 'fait partie de',
66
66
  // Filter values text
67
67
  filterValueAny: 'tous',
68
68
  filterValueTrue: 'vrai',
@@ -26,6 +26,7 @@ export * from './skSK';
26
26
  export * from './svSE';
27
27
  export * from './trTR';
28
28
  export * from './ukUA';
29
+ export * from './urPK';
29
30
  export * from './viVN';
30
31
  export * from './zhCN';
31
32
  export * from './zhTW';
@@ -0,0 +1,135 @@
1
+ import { urPKCore } from './coreLocales';
2
+ import { getGridLocalization } from '../utils/getGridLocalization';
3
+ var urPKGrid = {
4
+ // Root
5
+ noRowsLabel: 'کوئی قطاریں نہیں',
6
+ noResultsOverlayLabel: 'کوئی نتائج نہیں',
7
+ errorOverlayDefaultLabel: 'ایک مسئلہ ہو گیا',
8
+ // Density selector toolbar button text
9
+ toolbarDensity: 'کثافت',
10
+ toolbarDensityLabel: 'کثافت',
11
+ toolbarDensityCompact: 'تنگ',
12
+ toolbarDensityStandard: 'درمیانہ',
13
+ toolbarDensityComfortable: 'مناسب',
14
+ // Columns selector toolbar button text
15
+ toolbarColumns: 'کالمز',
16
+ toolbarColumnsLabel: 'کالمز کو منتخب کریں',
17
+ // Filters toolbar button text
18
+ toolbarFilters: 'فلٹرز',
19
+ toolbarFiltersLabel: 'فلٹرز دکھائیں',
20
+ toolbarFiltersTooltipHide: 'فلٹرز چھپائیں',
21
+ toolbarFiltersTooltipShow: 'فلٹرز دکھائیں',
22
+ toolbarFiltersTooltipActive: function toolbarFiltersTooltipActive(count) {
23
+ return count !== 1 ? "".concat(count, " \u0641\u0639\u0627\u0644 \u0641\u0644\u0679\u0631\u0632") : "".concat(count, " \u0641\u0644\u0679\u0631\u0632 \u0641\u0639\u0627\u0644");
24
+ },
25
+ // Quick filter toolbar field
26
+ toolbarQuickFilterPlaceholder: 'تلاش کریں۔۔۔',
27
+ toolbarQuickFilterLabel: 'تلاش کریں',
28
+ toolbarQuickFilterDeleteIconLabel: 'کلئیر کریں',
29
+ // Export selector toolbar button text
30
+ toolbarExport: 'ایکسپورٹ',
31
+ toolbarExportLabel: 'ایکسپورٹ',
32
+ toolbarExportCSV: 'CSV کے طور پر ڈاوٴنلوڈ کریں',
33
+ toolbarExportPrint: 'پرنٹ کریں',
34
+ toolbarExportExcel: 'ایکسل کے طور پر ڈاوٴنلوڈ کریں',
35
+ // Columns panel text
36
+ columnsPanelTextFieldLabel: 'کالم کو تلاش کریں',
37
+ columnsPanelTextFieldPlaceholder: 'کالم کا عنوان',
38
+ columnsPanelDragIconLabel: 'کالم کی ترتیب تبدیل کریں',
39
+ columnsPanelShowAllButton: 'سارے دکھائیں',
40
+ columnsPanelHideAllButton: 'سارے چھپائیں',
41
+ // Filter panel text
42
+ filterPanelAddFilter: 'نیا فلٹر',
43
+ filterPanelDeleteIconLabel: 'ختم کریں',
44
+ filterPanelLinkOperator: 'لاجک آپریٹر',
45
+ filterPanelOperators: 'آپریٹر',
46
+ // TODO v6: rename to filterPanelOperator
47
+ filterPanelOperatorAnd: 'اور',
48
+ filterPanelOperatorOr: 'یا',
49
+ filterPanelColumns: 'کالمز',
50
+ filterPanelInputLabel: 'ویلیو',
51
+ filterPanelInputPlaceholder: 'ویلیو کو فلٹر کریں',
52
+ // Filter operators text
53
+ filterOperatorContains: 'شامل ہے',
54
+ filterOperatorEquals: 'برابر ہے',
55
+ filterOperatorStartsWith: 'شروع ہوتا ہے',
56
+ filterOperatorEndsWith: 'ختم ہوتا ہے',
57
+ filterOperatorIs: 'ہے',
58
+ filterOperatorNot: 'نہیں',
59
+ filterOperatorAfter: 'بعد میں ہے',
60
+ filterOperatorOnOrAfter: 'پر یا بعد میں ہے',
61
+ filterOperatorBefore: 'پہلے ہے',
62
+ filterOperatorOnOrBefore: 'پر یا پہلے ہے',
63
+ filterOperatorIsEmpty: 'خالی ہے',
64
+ filterOperatorIsNotEmpty: 'خالی نہیں ہے',
65
+ filterOperatorIsAnyOf: 'ان میں سے کوئی ہے',
66
+ // Filter values text
67
+ filterValueAny: 'کوئی بھی',
68
+ filterValueTrue: 'صحیح',
69
+ filterValueFalse: 'غلط',
70
+ // Column menu text
71
+ columnMenuLabel: 'مینیو',
72
+ columnMenuShowColumns: 'کالم دکھائیں',
73
+ columnMenuFilter: 'فلٹر',
74
+ columnMenuHideColumn: 'چھپائیں',
75
+ columnMenuUnsort: 'sort ختم کریں',
76
+ columnMenuSortAsc: 'ترتیب صعودی',
77
+ columnMenuSortDesc: 'ترتیب نزولی',
78
+ // Column header text
79
+ columnHeaderFiltersTooltipActive: function columnHeaderFiltersTooltipActive(count) {
80
+ return count !== 1 ? "".concat(count, " \u0641\u0639\u0627\u0644 \u0641\u0644\u0679\u0631\u0632") : "".concat(count, " \u0641\u0644\u0679\u0631\u0632 \u0641\u0639\u0627\u0644");
81
+ },
82
+ columnHeaderFiltersLabel: 'فلٹرز دکھائیں',
83
+ columnHeaderSortIconLabel: 'Sort',
84
+ // Rows selected footer text
85
+ footerRowSelected: function footerRowSelected(count) {
86
+ return count !== 1 ? "".concat(count.toLocaleString(), " \u0645\u0646\u062A\u062E\u0628 \u0642\u0637\u0627\u0631\u06CC\u06BA") : "".concat(count.toLocaleString(), " \u0645\u0646\u062A\u062E\u0628 \u0642\u0637\u0627\u0631");
87
+ },
88
+ // Total row amount footer text
89
+ footerTotalRows: 'کل قطاریں:',
90
+ // Total visible row amount footer text
91
+ footerTotalVisibleRows: function footerTotalVisibleRows(visibleCount, totalCount) {
92
+ return "".concat(totalCount.toLocaleString(), " \u0645\u06CC\u06BA \u0633\u06D2 ").concat(visibleCount.toLocaleString());
93
+ },
94
+ // Checkbox selection text
95
+ checkboxSelectionHeaderName: 'چیک باکس منتخب کریں',
96
+ checkboxSelectionSelectAllRows: 'تمام قطاریں منتخب کریں',
97
+ checkboxSelectionUnselectAllRows: 'تمام قطاریں نامنتخب کریں ',
98
+ checkboxSelectionSelectRow: 'قطار منتخب کریں',
99
+ checkboxSelectionUnselectRow: 'قطار نامنتخب کریں',
100
+ // Boolean cell text
101
+ booleanCellTrueLabel: 'ہاں',
102
+ booleanCellFalseLabel: 'نہیں',
103
+ // Actions cell more text
104
+ actionsCellMore: 'ذیادہ',
105
+ // Column pinning text
106
+ pinToLeft: 'بائیں جانب pin کریں',
107
+ pinToRight: 'دائیں جانب pin کریں',
108
+ unpin: 'pin ختم کریں',
109
+ // Tree Data
110
+ treeDataGroupingHeaderName: 'گروپ',
111
+ treeDataExpand: 'شاخیں دیکھیں',
112
+ treeDataCollapse: 'شاخیں چھپائیں',
113
+ // Grouping columns
114
+ groupingColumnHeaderName: 'گروپ',
115
+ groupColumn: function groupColumn(name) {
116
+ return "".concat(name, " \u0633\u06D2 \u06AF\u0631\u0648\u067E \u06A9\u0631\u06CC\u06BA");
117
+ },
118
+ unGroupColumn: function unGroupColumn(name) {
119
+ return "".concat(name, " \u0633\u06D2 \u06AF\u0631\u0648\u067E \u062E\u062A\u0645 \u06A9\u0631\u06CC\u06BA");
120
+ },
121
+ // Master/detail
122
+ detailPanelToggle: 'ڈیٹیل پینل کھولیں / بند کریں',
123
+ expandDetailPanel: 'پھیلائیں',
124
+ collapseDetailPanel: 'تنگ کریں',
125
+ // Row reordering text
126
+ rowReorderingHeaderName: 'قطاروں کی ترتیب تبدیل کریں',
127
+ // Aggregation
128
+ aggregationMenuItemHeader: 'Aggregation',
129
+ aggregationFunctionLabelSum: 'sum',
130
+ aggregationFunctionLabelAvg: 'avg',
131
+ aggregationFunctionLabelMin: 'min',
132
+ aggregationFunctionLabelMax: 'max',
133
+ aggregationFunctionLabelSize: 'size'
134
+ };
135
+ export var urPK = getGridLocalization(urPKGrid, urPKCore);
@@ -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(".".concat(gridClasses.row, "[data-id=\"").concat(escapeOperandAttributeSelector(String(id)), "\"]"));
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 row = getGridRowElement(root, id);
37
-
38
- if (!row) {
39
- return null;
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
  }
package/locales/frFR.js CHANGED
@@ -60,7 +60,7 @@ const frFRGrid = {
60
60
  filterOperatorOnOrBefore: 'égal ou antérieur',
61
61
  filterOperatorIsEmpty: 'est vide',
62
62
  filterOperatorIsNotEmpty: "n'est pas vide",
63
- filterOperatorIsAnyOf: 'fait parti de',
63
+ filterOperatorIsAnyOf: 'fait partie de',
64
64
  // Filter values text
65
65
  filterValueAny: 'tous',
66
66
  filterValueTrue: 'vrai',
@@ -25,6 +25,7 @@ export * from './skSK';
25
25
  export * from './svSE';
26
26
  export * from './trTR';
27
27
  export * from './ukUA';
28
+ export * from './urPK';
28
29
  export * from './viVN';
29
30
  export * from './zhCN';
30
31
  export * from './zhTW';
package/locales/index.js CHANGED
@@ -26,6 +26,7 @@ export * from './skSK';
26
26
  export * from './svSE';
27
27
  export * from './trTR';
28
28
  export * from './ukUA';
29
+ export * from './urPK';
29
30
  export * from './viVN';
30
31
  export * from './zhCN';
31
32
  export * from './zhTW';
@@ -0,0 +1,2 @@
1
+ import { Localization } from '../utils/getGridLocalization';
2
+ export declare const urPK: Localization;
@@ -0,0 +1,123 @@
1
+ import { urPKCore } from './coreLocales';
2
+ import { getGridLocalization } from '../utils/getGridLocalization';
3
+ const urPKGrid = {
4
+ // Root
5
+ noRowsLabel: 'کوئی قطاریں نہیں',
6
+ noResultsOverlayLabel: 'کوئی نتائج نہیں',
7
+ errorOverlayDefaultLabel: 'ایک مسئلہ ہو گیا',
8
+ // Density selector toolbar button text
9
+ toolbarDensity: 'کثافت',
10
+ toolbarDensityLabel: 'کثافت',
11
+ toolbarDensityCompact: 'تنگ',
12
+ toolbarDensityStandard: 'درمیانہ',
13
+ toolbarDensityComfortable: 'مناسب',
14
+ // Columns selector toolbar button text
15
+ toolbarColumns: 'کالمز',
16
+ toolbarColumnsLabel: 'کالمز کو منتخب کریں',
17
+ // Filters toolbar button text
18
+ toolbarFilters: 'فلٹرز',
19
+ toolbarFiltersLabel: 'فلٹرز دکھائیں',
20
+ toolbarFiltersTooltipHide: 'فلٹرز چھپائیں',
21
+ toolbarFiltersTooltipShow: 'فلٹرز دکھائیں',
22
+ toolbarFiltersTooltipActive: count => count !== 1 ? `${count} فعال فلٹرز` : `${count} فلٹرز فعال`,
23
+ // Quick filter toolbar field
24
+ toolbarQuickFilterPlaceholder: 'تلاش کریں۔۔۔',
25
+ toolbarQuickFilterLabel: 'تلاش کریں',
26
+ toolbarQuickFilterDeleteIconLabel: 'کلئیر کریں',
27
+ // Export selector toolbar button text
28
+ toolbarExport: 'ایکسپورٹ',
29
+ toolbarExportLabel: 'ایکسپورٹ',
30
+ toolbarExportCSV: 'CSV کے طور پر ڈاوٴنلوڈ کریں',
31
+ toolbarExportPrint: 'پرنٹ کریں',
32
+ toolbarExportExcel: 'ایکسل کے طور پر ڈاوٴنلوڈ کریں',
33
+ // Columns panel text
34
+ columnsPanelTextFieldLabel: 'کالم کو تلاش کریں',
35
+ columnsPanelTextFieldPlaceholder: 'کالم کا عنوان',
36
+ columnsPanelDragIconLabel: 'کالم کی ترتیب تبدیل کریں',
37
+ columnsPanelShowAllButton: 'سارے دکھائیں',
38
+ columnsPanelHideAllButton: 'سارے چھپائیں',
39
+ // Filter panel text
40
+ filterPanelAddFilter: 'نیا فلٹر',
41
+ filterPanelDeleteIconLabel: 'ختم کریں',
42
+ filterPanelLinkOperator: 'لاجک آپریٹر',
43
+ filterPanelOperators: 'آپریٹر',
44
+ // TODO v6: rename to filterPanelOperator
45
+ filterPanelOperatorAnd: 'اور',
46
+ filterPanelOperatorOr: 'یا',
47
+ filterPanelColumns: 'کالمز',
48
+ filterPanelInputLabel: 'ویلیو',
49
+ filterPanelInputPlaceholder: 'ویلیو کو فلٹر کریں',
50
+ // Filter operators text
51
+ filterOperatorContains: 'شامل ہے',
52
+ filterOperatorEquals: 'برابر ہے',
53
+ filterOperatorStartsWith: 'شروع ہوتا ہے',
54
+ filterOperatorEndsWith: 'ختم ہوتا ہے',
55
+ filterOperatorIs: 'ہے',
56
+ filterOperatorNot: 'نہیں',
57
+ filterOperatorAfter: 'بعد میں ہے',
58
+ filterOperatorOnOrAfter: 'پر یا بعد میں ہے',
59
+ filterOperatorBefore: 'پہلے ہے',
60
+ filterOperatorOnOrBefore: 'پر یا پہلے ہے',
61
+ filterOperatorIsEmpty: 'خالی ہے',
62
+ filterOperatorIsNotEmpty: 'خالی نہیں ہے',
63
+ filterOperatorIsAnyOf: 'ان میں سے کوئی ہے',
64
+ // Filter values text
65
+ filterValueAny: 'کوئی بھی',
66
+ filterValueTrue: 'صحیح',
67
+ filterValueFalse: 'غلط',
68
+ // Column menu text
69
+ columnMenuLabel: 'مینیو',
70
+ columnMenuShowColumns: 'کالم دکھائیں',
71
+ columnMenuFilter: 'فلٹر',
72
+ columnMenuHideColumn: 'چھپائیں',
73
+ columnMenuUnsort: 'sort ختم کریں',
74
+ columnMenuSortAsc: 'ترتیب صعودی',
75
+ columnMenuSortDesc: 'ترتیب نزولی',
76
+ // Column header text
77
+ columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} فعال فلٹرز` : `${count} فلٹرز فعال`,
78
+ columnHeaderFiltersLabel: 'فلٹرز دکھائیں',
79
+ columnHeaderSortIconLabel: 'Sort',
80
+ // Rows selected footer text
81
+ footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} منتخب قطاریں` : `${count.toLocaleString()} منتخب قطار`,
82
+ // Total row amount footer text
83
+ footerTotalRows: 'کل قطاریں:',
84
+ // Total visible row amount footer text
85
+ footerTotalVisibleRows: (visibleCount, totalCount) => `${totalCount.toLocaleString()} میں سے ${visibleCount.toLocaleString()}`,
86
+ // Checkbox selection text
87
+ checkboxSelectionHeaderName: 'چیک باکس منتخب کریں',
88
+ checkboxSelectionSelectAllRows: 'تمام قطاریں منتخب کریں',
89
+ checkboxSelectionUnselectAllRows: 'تمام قطاریں نامنتخب کریں ',
90
+ checkboxSelectionSelectRow: 'قطار منتخب کریں',
91
+ checkboxSelectionUnselectRow: 'قطار نامنتخب کریں',
92
+ // Boolean cell text
93
+ booleanCellTrueLabel: 'ہاں',
94
+ booleanCellFalseLabel: 'نہیں',
95
+ // Actions cell more text
96
+ actionsCellMore: 'ذیادہ',
97
+ // Column pinning text
98
+ pinToLeft: 'بائیں جانب pin کریں',
99
+ pinToRight: 'دائیں جانب pin کریں',
100
+ unpin: 'pin ختم کریں',
101
+ // Tree Data
102
+ treeDataGroupingHeaderName: 'گروپ',
103
+ treeDataExpand: 'شاخیں دیکھیں',
104
+ treeDataCollapse: 'شاخیں چھپائیں',
105
+ // Grouping columns
106
+ groupingColumnHeaderName: 'گروپ',
107
+ groupColumn: name => `${name} سے گروپ کریں`,
108
+ unGroupColumn: name => `${name} سے گروپ ختم کریں`,
109
+ // Master/detail
110
+ detailPanelToggle: 'ڈیٹیل پینل کھولیں / بند کریں',
111
+ expandDetailPanel: 'پھیلائیں',
112
+ collapseDetailPanel: 'تنگ کریں',
113
+ // Row reordering text
114
+ rowReorderingHeaderName: 'قطاروں کی ترتیب تبدیل کریں',
115
+ // Aggregation
116
+ aggregationMenuItemHeader: 'Aggregation',
117
+ aggregationFunctionLabelSum: 'sum',
118
+ aggregationFunctionLabelAvg: 'avg',
119
+ aggregationFunctionLabelMin: 'min',
120
+ aggregationFunctionLabelMax: 'max',
121
+ aggregationFunctionLabelSize: 'size'
122
+ };
123
+ export const urPK = getGridLocalization(urPKGrid, urPKCore);
@@ -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
  });
@@ -21,6 +21,11 @@ function raf() {
21
21
  });
22
22
  }
23
23
 
24
+ function getChromeVersion() {
25
+ const raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
26
+ return raw ? parseInt(raw[2], 10) : null;
27
+ }
28
+
24
29
  /**
25
30
  * @requires useGridColumns (state)
26
31
  * @requires useGridFilter (state)
@@ -94,6 +99,13 @@ export const useGridPrintExport = (apiRef, props) => {
94
99
 
95
100
  const gridMain = gridClone.querySelector(`.${gridClasses.main}`);
96
101
  gridMain.style.overflow = 'visible';
102
+ const chromeVersion = getChromeVersion();
103
+
104
+ if (chromeVersion && chromeVersion >= 108) {
105
+ // See https://support.google.com/chrome/thread/191619088?hl=en&msgid=193009642
106
+ gridClone.style.contain = 'size';
107
+ }
108
+
97
109
  const columnHeaders = gridClone.querySelector(`.${gridClasses.columnHeaders}`);
98
110
  const columnHeadersInner = columnHeaders.querySelector(`.${gridClasses.columnHeadersInner}`);
99
111
  columnHeadersInner.style.width = '100%';
@@ -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 => _extends({}, state, {
295
- rows: _extends({}, state.rows, {
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
@@ -1,4 +1,4 @@
1
- /** @license MUI X v5.17.21
1
+ /** @license MUI X v5.17.23
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.
@@ -60,7 +60,7 @@ const frFRGrid = {
60
60
  filterOperatorOnOrBefore: 'égal ou antérieur',
61
61
  filterOperatorIsEmpty: 'est vide',
62
62
  filterOperatorIsNotEmpty: "n'est pas vide",
63
- filterOperatorIsAnyOf: 'fait parti de',
63
+ filterOperatorIsAnyOf: 'fait partie de',
64
64
  // Filter values text
65
65
  filterValueAny: 'tous',
66
66
  filterValueTrue: 'vrai',
@@ -26,6 +26,7 @@ export * from './skSK';
26
26
  export * from './svSE';
27
27
  export * from './trTR';
28
28
  export * from './ukUA';
29
+ export * from './urPK';
29
30
  export * from './viVN';
30
31
  export * from './zhCN';
31
32
  export * from './zhTW';
@@ -0,0 +1,123 @@
1
+ import { urPKCore } from './coreLocales';
2
+ import { getGridLocalization } from '../utils/getGridLocalization';
3
+ const urPKGrid = {
4
+ // Root
5
+ noRowsLabel: 'کوئی قطاریں نہیں',
6
+ noResultsOverlayLabel: 'کوئی نتائج نہیں',
7
+ errorOverlayDefaultLabel: 'ایک مسئلہ ہو گیا',
8
+ // Density selector toolbar button text
9
+ toolbarDensity: 'کثافت',
10
+ toolbarDensityLabel: 'کثافت',
11
+ toolbarDensityCompact: 'تنگ',
12
+ toolbarDensityStandard: 'درمیانہ',
13
+ toolbarDensityComfortable: 'مناسب',
14
+ // Columns selector toolbar button text
15
+ toolbarColumns: 'کالمز',
16
+ toolbarColumnsLabel: 'کالمز کو منتخب کریں',
17
+ // Filters toolbar button text
18
+ toolbarFilters: 'فلٹرز',
19
+ toolbarFiltersLabel: 'فلٹرز دکھائیں',
20
+ toolbarFiltersTooltipHide: 'فلٹرز چھپائیں',
21
+ toolbarFiltersTooltipShow: 'فلٹرز دکھائیں',
22
+ toolbarFiltersTooltipActive: count => count !== 1 ? `${count} فعال فلٹرز` : `${count} فلٹرز فعال`,
23
+ // Quick filter toolbar field
24
+ toolbarQuickFilterPlaceholder: 'تلاش کریں۔۔۔',
25
+ toolbarQuickFilterLabel: 'تلاش کریں',
26
+ toolbarQuickFilterDeleteIconLabel: 'کلئیر کریں',
27
+ // Export selector toolbar button text
28
+ toolbarExport: 'ایکسپورٹ',
29
+ toolbarExportLabel: 'ایکسپورٹ',
30
+ toolbarExportCSV: 'CSV کے طور پر ڈاوٴنلوڈ کریں',
31
+ toolbarExportPrint: 'پرنٹ کریں',
32
+ toolbarExportExcel: 'ایکسل کے طور پر ڈاوٴنلوڈ کریں',
33
+ // Columns panel text
34
+ columnsPanelTextFieldLabel: 'کالم کو تلاش کریں',
35
+ columnsPanelTextFieldPlaceholder: 'کالم کا عنوان',
36
+ columnsPanelDragIconLabel: 'کالم کی ترتیب تبدیل کریں',
37
+ columnsPanelShowAllButton: 'سارے دکھائیں',
38
+ columnsPanelHideAllButton: 'سارے چھپائیں',
39
+ // Filter panel text
40
+ filterPanelAddFilter: 'نیا فلٹر',
41
+ filterPanelDeleteIconLabel: 'ختم کریں',
42
+ filterPanelLinkOperator: 'لاجک آپریٹر',
43
+ filterPanelOperators: 'آپریٹر',
44
+ // TODO v6: rename to filterPanelOperator
45
+ filterPanelOperatorAnd: 'اور',
46
+ filterPanelOperatorOr: 'یا',
47
+ filterPanelColumns: 'کالمز',
48
+ filterPanelInputLabel: 'ویلیو',
49
+ filterPanelInputPlaceholder: 'ویلیو کو فلٹر کریں',
50
+ // Filter operators text
51
+ filterOperatorContains: 'شامل ہے',
52
+ filterOperatorEquals: 'برابر ہے',
53
+ filterOperatorStartsWith: 'شروع ہوتا ہے',
54
+ filterOperatorEndsWith: 'ختم ہوتا ہے',
55
+ filterOperatorIs: 'ہے',
56
+ filterOperatorNot: 'نہیں',
57
+ filterOperatorAfter: 'بعد میں ہے',
58
+ filterOperatorOnOrAfter: 'پر یا بعد میں ہے',
59
+ filterOperatorBefore: 'پہلے ہے',
60
+ filterOperatorOnOrBefore: 'پر یا پہلے ہے',
61
+ filterOperatorIsEmpty: 'خالی ہے',
62
+ filterOperatorIsNotEmpty: 'خالی نہیں ہے',
63
+ filterOperatorIsAnyOf: 'ان میں سے کوئی ہے',
64
+ // Filter values text
65
+ filterValueAny: 'کوئی بھی',
66
+ filterValueTrue: 'صحیح',
67
+ filterValueFalse: 'غلط',
68
+ // Column menu text
69
+ columnMenuLabel: 'مینیو',
70
+ columnMenuShowColumns: 'کالم دکھائیں',
71
+ columnMenuFilter: 'فلٹر',
72
+ columnMenuHideColumn: 'چھپائیں',
73
+ columnMenuUnsort: 'sort ختم کریں',
74
+ columnMenuSortAsc: 'ترتیب صعودی',
75
+ columnMenuSortDesc: 'ترتیب نزولی',
76
+ // Column header text
77
+ columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} فعال فلٹرز` : `${count} فلٹرز فعال`,
78
+ columnHeaderFiltersLabel: 'فلٹرز دکھائیں',
79
+ columnHeaderSortIconLabel: 'Sort',
80
+ // Rows selected footer text
81
+ footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} منتخب قطاریں` : `${count.toLocaleString()} منتخب قطار`,
82
+ // Total row amount footer text
83
+ footerTotalRows: 'کل قطاریں:',
84
+ // Total visible row amount footer text
85
+ footerTotalVisibleRows: (visibleCount, totalCount) => `${totalCount.toLocaleString()} میں سے ${visibleCount.toLocaleString()}`,
86
+ // Checkbox selection text
87
+ checkboxSelectionHeaderName: 'چیک باکس منتخب کریں',
88
+ checkboxSelectionSelectAllRows: 'تمام قطاریں منتخب کریں',
89
+ checkboxSelectionUnselectAllRows: 'تمام قطاریں نامنتخب کریں ',
90
+ checkboxSelectionSelectRow: 'قطار منتخب کریں',
91
+ checkboxSelectionUnselectRow: 'قطار نامنتخب کریں',
92
+ // Boolean cell text
93
+ booleanCellTrueLabel: 'ہاں',
94
+ booleanCellFalseLabel: 'نہیں',
95
+ // Actions cell more text
96
+ actionsCellMore: 'ذیادہ',
97
+ // Column pinning text
98
+ pinToLeft: 'بائیں جانب pin کریں',
99
+ pinToRight: 'دائیں جانب pin کریں',
100
+ unpin: 'pin ختم کریں',
101
+ // Tree Data
102
+ treeDataGroupingHeaderName: 'گروپ',
103
+ treeDataExpand: 'شاخیں دیکھیں',
104
+ treeDataCollapse: 'شاخیں چھپائیں',
105
+ // Grouping columns
106
+ groupingColumnHeaderName: 'گروپ',
107
+ groupColumn: name => `${name} سے گروپ کریں`,
108
+ unGroupColumn: name => `${name} سے گروپ ختم کریں`,
109
+ // Master/detail
110
+ detailPanelToggle: 'ڈیٹیل پینل کھولیں / بند کریں',
111
+ expandDetailPanel: 'پھیلائیں',
112
+ collapseDetailPanel: 'تنگ کریں',
113
+ // Row reordering text
114
+ rowReorderingHeaderName: 'قطاروں کی ترتیب تبدیل کریں',
115
+ // Aggregation
116
+ aggregationMenuItemHeader: 'Aggregation',
117
+ aggregationFunctionLabelSum: 'sum',
118
+ aggregationFunctionLabelAvg: 'avg',
119
+ aggregationFunctionLabelMin: 'min',
120
+ aggregationFunctionLabelMax: 'max',
121
+ aggregationFunctionLabelSize: 'size'
122
+ };
123
+ export const urPK = getGridLocalization(urPKGrid, urPKCore);
@@ -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(`.${gridClasses.row}[data-id="${escapeOperandAttributeSelector(String(id))}"]`);
36
+ return root.querySelector(getGridRowElementSelector(id));
32
37
  }
33
38
  export function getGridCellElement(root, {
34
39
  id,
35
40
  field
36
41
  }) {
37
- const row = getGridRowElement(root, id);
38
-
39
- if (!row) {
40
- return null;
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
- var _item$value;
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
- ${(_item$value = item.value) != null ? _item$value : ''}`
108
- }, index));
109
- })
111
+ ${item.value ? getFilterItemValue(item) : ''}`
112
+ }, index)))
110
113
  })]
111
114
  });
112
115
  }, [apiRef, preferencePanel.open, activeFilters, lookup, classes]);
@@ -47,6 +47,11 @@ function raf() {
47
47
  });
48
48
  }
49
49
 
50
+ function getChromeVersion() {
51
+ const raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
52
+ return raw ? parseInt(raw[2], 10) : null;
53
+ }
54
+
50
55
  /**
51
56
  * @requires useGridColumns (state)
52
57
  * @requires useGridFilter (state)
@@ -121,6 +126,13 @@ const useGridPrintExport = (apiRef, props) => {
121
126
 
122
127
  const gridMain = gridClone.querySelector(`.${_gridClasses.gridClasses.main}`);
123
128
  gridMain.style.overflow = 'visible';
129
+ const chromeVersion = getChromeVersion();
130
+
131
+ if (chromeVersion && chromeVersion >= 108) {
132
+ // See https://support.google.com/chrome/thread/191619088?hl=en&msgid=193009642
133
+ gridClone.style.contain = 'size';
134
+ }
135
+
124
136
  const columnHeaders = gridClone.querySelector(`.${_gridClasses.gridClasses.columnHeaders}`);
125
137
  const columnHeadersInner = columnHeaders.querySelector(`.${_gridClasses.gridClasses.columnHeadersInner}`);
126
138
  columnHeadersInner.style.width = '100%';
@@ -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 => (0, _extends2.default)({}, state, {
325
- rows: (0, _extends2.default)({}, state.rows, {
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
@@ -1,4 +1,4 @@
1
- /** @license MUI X v5.17.21
1
+ /** @license MUI X v5.17.23
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.
@@ -69,7 +69,7 @@ const frFRGrid = {
69
69
  filterOperatorOnOrBefore: 'égal ou antérieur',
70
70
  filterOperatorIsEmpty: 'est vide',
71
71
  filterOperatorIsNotEmpty: "n'est pas vide",
72
- filterOperatorIsAnyOf: 'fait parti de',
72
+ filterOperatorIsAnyOf: 'fait partie de',
73
73
  // Filter values text
74
74
  filterValueAny: 'tous',
75
75
  filterValueTrue: 'vrai',
@@ -355,6 +355,19 @@ Object.keys(_ukUA).forEach(function (key) {
355
355
  });
356
356
  });
357
357
 
358
+ var _urPK = require("./urPK");
359
+
360
+ Object.keys(_urPK).forEach(function (key) {
361
+ if (key === "default" || key === "__esModule") return;
362
+ if (key in exports && exports[key] === _urPK[key]) return;
363
+ Object.defineProperty(exports, key, {
364
+ enumerable: true,
365
+ get: function () {
366
+ return _urPK[key];
367
+ }
368
+ });
369
+ });
370
+
358
371
  var _viVN = require("./viVN");
359
372
 
360
373
  Object.keys(_viVN).forEach(function (key) {
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.urPK = void 0;
7
+
8
+ var _coreLocales = require("./coreLocales");
9
+
10
+ var _getGridLocalization = require("../utils/getGridLocalization");
11
+
12
+ const urPKGrid = {
13
+ // Root
14
+ noRowsLabel: 'کوئی قطاریں نہیں',
15
+ noResultsOverlayLabel: 'کوئی نتائج نہیں',
16
+ errorOverlayDefaultLabel: 'ایک مسئلہ ہو گیا',
17
+ // Density selector toolbar button text
18
+ toolbarDensity: 'کثافت',
19
+ toolbarDensityLabel: 'کثافت',
20
+ toolbarDensityCompact: 'تنگ',
21
+ toolbarDensityStandard: 'درمیانہ',
22
+ toolbarDensityComfortable: 'مناسب',
23
+ // Columns selector toolbar button text
24
+ toolbarColumns: 'کالمز',
25
+ toolbarColumnsLabel: 'کالمز کو منتخب کریں',
26
+ // Filters toolbar button text
27
+ toolbarFilters: 'فلٹرز',
28
+ toolbarFiltersLabel: 'فلٹرز دکھائیں',
29
+ toolbarFiltersTooltipHide: 'فلٹرز چھپائیں',
30
+ toolbarFiltersTooltipShow: 'فلٹرز دکھائیں',
31
+ toolbarFiltersTooltipActive: count => count !== 1 ? `${count} فعال فلٹرز` : `${count} فلٹرز فعال`,
32
+ // Quick filter toolbar field
33
+ toolbarQuickFilterPlaceholder: 'تلاش کریں۔۔۔',
34
+ toolbarQuickFilterLabel: 'تلاش کریں',
35
+ toolbarQuickFilterDeleteIconLabel: 'کلئیر کریں',
36
+ // Export selector toolbar button text
37
+ toolbarExport: 'ایکسپورٹ',
38
+ toolbarExportLabel: 'ایکسپورٹ',
39
+ toolbarExportCSV: 'CSV کے طور پر ڈاوٴنلوڈ کریں',
40
+ toolbarExportPrint: 'پرنٹ کریں',
41
+ toolbarExportExcel: 'ایکسل کے طور پر ڈاوٴنلوڈ کریں',
42
+ // Columns panel text
43
+ columnsPanelTextFieldLabel: 'کالم کو تلاش کریں',
44
+ columnsPanelTextFieldPlaceholder: 'کالم کا عنوان',
45
+ columnsPanelDragIconLabel: 'کالم کی ترتیب تبدیل کریں',
46
+ columnsPanelShowAllButton: 'سارے دکھائیں',
47
+ columnsPanelHideAllButton: 'سارے چھپائیں',
48
+ // Filter panel text
49
+ filterPanelAddFilter: 'نیا فلٹر',
50
+ filterPanelDeleteIconLabel: 'ختم کریں',
51
+ filterPanelLinkOperator: 'لاجک آپریٹر',
52
+ filterPanelOperators: 'آپریٹر',
53
+ // TODO v6: rename to filterPanelOperator
54
+ filterPanelOperatorAnd: 'اور',
55
+ filterPanelOperatorOr: 'یا',
56
+ filterPanelColumns: 'کالمز',
57
+ filterPanelInputLabel: 'ویلیو',
58
+ filterPanelInputPlaceholder: 'ویلیو کو فلٹر کریں',
59
+ // Filter operators text
60
+ filterOperatorContains: 'شامل ہے',
61
+ filterOperatorEquals: 'برابر ہے',
62
+ filterOperatorStartsWith: 'شروع ہوتا ہے',
63
+ filterOperatorEndsWith: 'ختم ہوتا ہے',
64
+ filterOperatorIs: 'ہے',
65
+ filterOperatorNot: 'نہیں',
66
+ filterOperatorAfter: 'بعد میں ہے',
67
+ filterOperatorOnOrAfter: 'پر یا بعد میں ہے',
68
+ filterOperatorBefore: 'پہلے ہے',
69
+ filterOperatorOnOrBefore: 'پر یا پہلے ہے',
70
+ filterOperatorIsEmpty: 'خالی ہے',
71
+ filterOperatorIsNotEmpty: 'خالی نہیں ہے',
72
+ filterOperatorIsAnyOf: 'ان میں سے کوئی ہے',
73
+ // Filter values text
74
+ filterValueAny: 'کوئی بھی',
75
+ filterValueTrue: 'صحیح',
76
+ filterValueFalse: 'غلط',
77
+ // Column menu text
78
+ columnMenuLabel: 'مینیو',
79
+ columnMenuShowColumns: 'کالم دکھائیں',
80
+ columnMenuFilter: 'فلٹر',
81
+ columnMenuHideColumn: 'چھپائیں',
82
+ columnMenuUnsort: 'sort ختم کریں',
83
+ columnMenuSortAsc: 'ترتیب صعودی',
84
+ columnMenuSortDesc: 'ترتیب نزولی',
85
+ // Column header text
86
+ columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} فعال فلٹرز` : `${count} فلٹرز فعال`,
87
+ columnHeaderFiltersLabel: 'فلٹرز دکھائیں',
88
+ columnHeaderSortIconLabel: 'Sort',
89
+ // Rows selected footer text
90
+ footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} منتخب قطاریں` : `${count.toLocaleString()} منتخب قطار`,
91
+ // Total row amount footer text
92
+ footerTotalRows: 'کل قطاریں:',
93
+ // Total visible row amount footer text
94
+ footerTotalVisibleRows: (visibleCount, totalCount) => `${totalCount.toLocaleString()} میں سے ${visibleCount.toLocaleString()}`,
95
+ // Checkbox selection text
96
+ checkboxSelectionHeaderName: 'چیک باکس منتخب کریں',
97
+ checkboxSelectionSelectAllRows: 'تمام قطاریں منتخب کریں',
98
+ checkboxSelectionUnselectAllRows: 'تمام قطاریں نامنتخب کریں ',
99
+ checkboxSelectionSelectRow: 'قطار منتخب کریں',
100
+ checkboxSelectionUnselectRow: 'قطار نامنتخب کریں',
101
+ // Boolean cell text
102
+ booleanCellTrueLabel: 'ہاں',
103
+ booleanCellFalseLabel: 'نہیں',
104
+ // Actions cell more text
105
+ actionsCellMore: 'ذیادہ',
106
+ // Column pinning text
107
+ pinToLeft: 'بائیں جانب pin کریں',
108
+ pinToRight: 'دائیں جانب pin کریں',
109
+ unpin: 'pin ختم کریں',
110
+ // Tree Data
111
+ treeDataGroupingHeaderName: 'گروپ',
112
+ treeDataExpand: 'شاخیں دیکھیں',
113
+ treeDataCollapse: 'شاخیں چھپائیں',
114
+ // Grouping columns
115
+ groupingColumnHeaderName: 'گروپ',
116
+ groupColumn: name => `${name} سے گروپ کریں`,
117
+ unGroupColumn: name => `${name} سے گروپ ختم کریں`,
118
+ // Master/detail
119
+ detailPanelToggle: 'ڈیٹیل پینل کھولیں / بند کریں',
120
+ expandDetailPanel: 'پھیلائیں',
121
+ collapseDetailPanel: 'تنگ کریں',
122
+ // Row reordering text
123
+ rowReorderingHeaderName: 'قطاروں کی ترتیب تبدیل کریں',
124
+ // Aggregation
125
+ aggregationMenuItemHeader: 'Aggregation',
126
+ aggregationFunctionLabelSum: 'sum',
127
+ aggregationFunctionLabelAvg: 'avg',
128
+ aggregationFunctionLabelMin: 'min',
129
+ aggregationFunctionLabelMax: 'max',
130
+ aggregationFunctionLabelSize: 'size'
131
+ };
132
+ const urPK = (0, _getGridLocalization.getGridLocalization)(urPKGrid, _coreLocales.urPKCore);
133
+ exports.urPK = urPK;
@@ -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(`.${_gridClasses.gridClasses.row}[data-id="${escapeOperandAttributeSelector(String(id))}"]`);
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 row = getGridRowElement(root, id);
59
-
60
- if (!row) {
61
- return null;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "5.17.21",
3
+ "version": "5.17.23",
4
4
  "description": "The community edition of the data grid component (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
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(`.${gridClasses.row}[data-id="${escapeOperandAttributeSelector(String(id))}"]`);
36
+ return root.querySelector(getGridRowElementSelector(id));
32
37
  }
33
38
  export function getGridCellElement(root, {
34
39
  id,
35
40
  field
36
41
  }) {
37
- const row = getGridRowElement(root, id);
38
-
39
- if (!row) {
40
- return null;
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
  }