@mui/x-data-grid 5.11.1 → 5.12.2
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 +199 -20
- package/DataGrid/DataGrid.js +26 -1
- package/README.md +2 -2
- package/colDef/gridCheckboxSelectionColDef.d.ts +1 -0
- package/colDef/gridCheckboxSelectionColDef.js +2 -1
- package/colDef/gridDateOperators.d.ts +1 -1
- package/colDef/gridNumericColDef.js +1 -1
- package/components/GridRow.d.ts +1 -1
- package/components/GridRow.js +51 -12
- package/components/cell/GridActionsCellItem.d.ts +1 -1
- package/components/cell/GridCell.d.ts +2 -1
- package/components/cell/GridCell.js +12 -7
- package/components/columnHeaders/GridColumnHeaderItem.js +9 -6
- package/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
- package/components/columnSelection/GridHeaderCheckbox.js +0 -1
- package/components/containers/GridRootStyles.js +8 -3
- package/components/menu/GridMenu.js +9 -2
- package/components/panel/GridColumnsPanel.js +12 -7
- package/components/panel/GridPanelWrapper.d.ts +1 -1
- package/components/panel/GridPanelWrapper.js +3 -3
- package/components/panel/filterPanel/GridFilterForm.d.ts +61 -4
- package/components/panel/filterPanel/GridFilterForm.js +88 -8
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/components/panel/filterPanel/GridFilterPanel.d.ts +8 -5
- package/components/panel/filterPanel/GridFilterPanel.js +26 -11
- package/components/toolbar/GridToolbarColumnsButton.js +0 -1
- package/components/toolbar/GridToolbarDensitySelector.js +0 -1
- package/components/toolbar/GridToolbarExportContainer.js +0 -1
- package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
- package/components/toolbar/GridToolbarFilterButton.js +0 -1
- package/components/toolbar/GridToolbarQuickFilter.d.ts +7 -0
- package/components/toolbar/GridToolbarQuickFilter.js +57 -4
- package/constants/defaultGridSlotsComponents.js +2 -1
- package/constants/gridClasses.d.ts +4 -0
- package/constants/gridClasses.js +1 -1
- package/constants/localeTextConstants.js +1 -0
- package/hooks/core/useGridStateInitialization.js +19 -6
- package/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
- package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -0
- package/hooks/features/columns/useGridColumnSpanning.d.ts +1 -1
- package/hooks/features/columns/useGridColumnSpanning.js +1 -1
- package/hooks/features/columns/useGridColumns.d.ts +1 -1
- package/hooks/features/columns/useGridColumns.js +13 -15
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
- package/hooks/features/dimensions/useGridDimensions.js +9 -8
- package/hooks/features/editRows/useGridCellEditing.new.js +11 -4
- package/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/hooks/features/editRows/useGridRowEditing.new.js +10 -4
- package/hooks/features/events/useGridEvents.d.ts +1 -1
- package/hooks/features/events/useGridEvents.js +2 -0
- package/hooks/features/filter/gridFilterSelector.d.ts +5 -0
- package/hooks/features/filter/gridFilterSelector.js +6 -0
- package/hooks/features/filter/gridFilterState.d.ts +1 -1
- package/hooks/features/filter/gridFilterUtils.d.ts +10 -2
- package/hooks/features/filter/gridFilterUtils.js +3 -6
- package/hooks/features/filter/useGridFilter.d.ts +1 -1
- package/hooks/features/filter/useGridFilter.js +29 -12
- package/hooks/features/pagination/useGridPage.js +1 -1
- package/hooks/features/pagination/useGridPageSize.js +1 -1
- package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
- package/hooks/features/rows/useGridRowsMeta.js +133 -67
- package/hooks/features/selection/useGridSelection.js +1 -1
- package/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
- package/hooks/features/sorting/useGridSorting.d.ts +1 -1
- package/hooks/features/sorting/useGridSorting.js +1 -1
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +65 -11
- package/index.js +1 -1
- package/internals/index.d.ts +1 -0
- package/legacy/DataGrid/DataGrid.js +26 -1
- package/legacy/colDef/gridCheckboxSelectionColDef.js +2 -1
- package/legacy/colDef/gridNumericColDef.js +1 -1
- package/legacy/components/GridRow.js +56 -12
- package/legacy/components/cell/GridCell.js +12 -7
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +11 -6
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
- package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -1
- package/legacy/components/containers/GridRootStyles.js +10 -7
- package/legacy/components/menu/GridMenu.js +9 -2
- package/legacy/components/panel/GridColumnsPanel.js +14 -7
- package/legacy/components/panel/GridPanelWrapper.js +3 -3
- package/legacy/components/panel/filterPanel/GridFilterForm.js +89 -8
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +28 -12
- package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -1
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -1
- package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -1
- package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -1
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +67 -6
- package/legacy/constants/defaultGridSlotsComponents.js +2 -1
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/localeTextConstants.js +1 -0
- package/legacy/hooks/core/useGridStateInitialization.js +18 -6
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +1 -1
- package/legacy/hooks/features/columns/useGridColumns.js +13 -15
- package/legacy/hooks/features/dimensions/useGridDimensions.js +9 -8
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +14 -7
- package/legacy/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +10 -4
- package/legacy/hooks/features/events/useGridEvents.js +2 -0
- package/legacy/hooks/features/filter/gridFilterSelector.js +8 -0
- package/legacy/hooks/features/filter/gridFilterUtils.js +4 -7
- package/legacy/hooks/features/filter/useGridFilter.js +33 -12
- package/legacy/hooks/features/pagination/useGridPage.js +1 -1
- package/legacy/hooks/features/pagination/useGridPageSize.js +1 -1
- package/legacy/hooks/features/rows/useGridRowsMeta.js +133 -66
- package/legacy/hooks/features/selection/useGridSelection.js +1 -1
- package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
- package/legacy/hooks/features/sorting/useGridSorting.js +1 -1
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +84 -26
- package/legacy/index.js +1 -1
- package/legacy/locales/arSD.js +1 -0
- package/legacy/locales/bgBG.js +1 -0
- package/legacy/locales/csCZ.js +1 -0
- package/legacy/locales/daDK.js +1 -0
- package/legacy/locales/deDE.js +1 -0
- package/legacy/locales/elGR.js +1 -0
- package/legacy/locales/esES.js +1 -0
- package/legacy/locales/faIR.js +1 -0
- package/legacy/locales/fiFI.js +1 -0
- package/legacy/locales/frFR.js +1 -0
- package/legacy/locales/heIL.js +10 -9
- package/legacy/locales/huHU.js +1 -0
- package/legacy/locales/itIT.js +1 -0
- package/legacy/locales/jaJP.js +29 -24
- package/legacy/locales/koKR.js +1 -0
- package/legacy/locales/nbNO.js +128 -0
- package/legacy/locales/nlNL.js +1 -0
- package/legacy/locales/plPL.js +1 -0
- package/legacy/locales/ptBR.js +1 -0
- package/legacy/locales/ruRU.js +7 -6
- package/legacy/locales/skSK.js +1 -0
- package/legacy/locales/trTR.js +8 -7
- package/legacy/locales/ukUA.js +1 -0
- package/legacy/locales/viVN.js +1 -0
- package/legacy/locales/zhCN.js +1 -0
- package/legacy/models/events/gridEvents.js +2 -0
- package/legacy/models/gridApiCaches.js +1 -0
- package/legacy/models/params/gridMenuParams.js +1 -0
- package/legacy/models/params/index.js +2 -1
- package/locales/arSD.js +1 -0
- package/locales/bgBG.js +1 -0
- package/locales/csCZ.js +1 -0
- package/locales/daDK.js +1 -0
- package/locales/deDE.js +1 -0
- package/locales/elGR.js +1 -0
- package/locales/esES.js +1 -0
- package/locales/faIR.js +1 -0
- package/locales/fiFI.js +1 -0
- package/locales/frFR.js +1 -0
- package/locales/heIL.js +10 -9
- package/locales/huHU.js +1 -0
- package/locales/itIT.js +1 -0
- package/locales/jaJP.js +25 -24
- package/locales/koKR.js +1 -0
- package/locales/nbNO.d.ts +2 -0
- package/locales/nbNO.js +116 -0
- package/locales/nlNL.js +1 -0
- package/locales/plPL.js +1 -0
- package/locales/ptBR.js +1 -0
- package/locales/ruRU.js +7 -6
- package/locales/skSK.js +1 -0
- package/locales/trTR.js +8 -7
- package/locales/ukUA.js +1 -0
- package/locales/viVN.js +1 -0
- package/locales/zhCN.js +1 -0
- package/models/api/gridCallbackDetails.d.ts +6 -1
- package/models/api/gridCoreApi.d.ts +2 -6
- package/models/api/gridFilterApi.d.ts +8 -1
- package/models/api/gridLocaleTextApi.d.ts +1 -0
- package/models/api/gridRowsMetaApi.d.ts +24 -0
- package/models/api/gridStateApi.d.ts +14 -3
- package/models/colDef/gridColDef.d.ts +4 -4
- package/models/events/gridEventLookup.d.ts +16 -1
- package/models/events/gridEvents.d.ts +3 -1
- package/models/events/gridEvents.js +2 -0
- package/models/gridApiCaches.d.ts +6 -0
- package/models/gridApiCaches.js +1 -0
- package/models/gridIconSlotsComponent.d.ts +5 -0
- package/models/params/gridMenuParams.d.ts +7 -0
- package/models/params/gridMenuParams.js +1 -0
- package/models/params/gridRowParams.d.ts +1 -1
- package/models/params/index.d.ts +1 -0
- package/models/params/index.js +2 -1
- package/models/props/DataGridProps.d.ts +24 -2
- package/modern/DataGrid/DataGrid.js +26 -1
- package/modern/colDef/gridCheckboxSelectionColDef.js +2 -1
- package/modern/colDef/gridNumericColDef.js +1 -1
- package/modern/components/GridRow.js +51 -12
- package/modern/components/cell/GridCell.js +12 -7
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +9 -6
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
- package/modern/components/columnSelection/GridHeaderCheckbox.js +0 -1
- package/modern/components/containers/GridRootStyles.js +8 -3
- package/modern/components/menu/GridMenu.js +9 -2
- package/modern/components/panel/GridColumnsPanel.js +12 -7
- package/modern/components/panel/GridPanelWrapper.js +3 -3
- package/modern/components/panel/filterPanel/GridFilterForm.js +88 -8
- package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/modern/components/panel/filterPanel/GridFilterPanel.js +26 -11
- package/modern/components/toolbar/GridToolbarColumnsButton.js +0 -1
- package/modern/components/toolbar/GridToolbarDensitySelector.js +0 -1
- package/modern/components/toolbar/GridToolbarExportContainer.js +0 -1
- package/modern/components/toolbar/GridToolbarFilterButton.js +0 -1
- package/modern/components/toolbar/GridToolbarQuickFilter.js +57 -4
- package/modern/constants/defaultGridSlotsComponents.js +2 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/localeTextConstants.js +1 -0
- package/modern/hooks/core/useGridStateInitialization.js +19 -6
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
- package/modern/hooks/features/columns/useGridColumnSpanning.js +1 -1
- package/modern/hooks/features/columns/useGridColumns.js +12 -14
- package/modern/hooks/features/dimensions/useGridDimensions.js +9 -8
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +10 -3
- package/modern/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +9 -3
- package/modern/hooks/features/events/useGridEvents.js +2 -0
- package/modern/hooks/features/filter/gridFilterSelector.js +6 -0
- package/modern/hooks/features/filter/gridFilterUtils.js +3 -6
- package/modern/hooks/features/filter/useGridFilter.js +29 -12
- package/modern/hooks/features/pagination/useGridPage.js +1 -1
- package/modern/hooks/features/pagination/useGridPageSize.js +1 -1
- package/modern/hooks/features/rows/useGridRowsMeta.js +129 -59
- package/modern/hooks/features/selection/useGridSelection.js +1 -1
- package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
- package/modern/hooks/features/sorting/useGridSorting.js +1 -1
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +65 -11
- package/modern/index.js +1 -1
- package/modern/locales/arSD.js +1 -0
- package/modern/locales/bgBG.js +1 -0
- package/modern/locales/csCZ.js +1 -0
- package/modern/locales/daDK.js +1 -0
- package/modern/locales/deDE.js +1 -0
- package/modern/locales/elGR.js +1 -0
- package/modern/locales/esES.js +1 -0
- package/modern/locales/faIR.js +1 -0
- package/modern/locales/fiFI.js +1 -0
- package/modern/locales/frFR.js +1 -0
- package/modern/locales/heIL.js +10 -9
- package/modern/locales/huHU.js +1 -0
- package/modern/locales/itIT.js +1 -0
- package/modern/locales/jaJP.js +25 -24
- package/modern/locales/koKR.js +1 -0
- package/modern/locales/nbNO.js +116 -0
- package/modern/locales/nlNL.js +1 -0
- package/modern/locales/plPL.js +1 -0
- package/modern/locales/ptBR.js +1 -0
- package/modern/locales/ruRU.js +7 -6
- package/modern/locales/skSK.js +1 -0
- package/modern/locales/trTR.js +8 -7
- package/modern/locales/ukUA.js +1 -0
- package/modern/locales/viVN.js +1 -0
- package/modern/locales/zhCN.js +1 -0
- package/modern/models/events/gridEvents.js +2 -0
- package/modern/models/gridApiCaches.js +1 -0
- package/modern/models/params/gridMenuParams.js +1 -0
- package/modern/models/params/index.js +2 -1
- package/node/DataGrid/DataGrid.js +26 -1
- package/node/colDef/gridCheckboxSelectionColDef.js +4 -2
- package/node/colDef/gridNumericColDef.js +1 -1
- package/node/components/GridRow.js +53 -12
- package/node/components/cell/GridCell.js +12 -7
- package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -6
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
- package/node/components/columnSelection/GridHeaderCheckbox.js +0 -1
- package/node/components/containers/GridRootStyles.js +8 -3
- package/node/components/menu/GridMenu.js +10 -2
- package/node/components/panel/GridColumnsPanel.js +12 -7
- package/node/components/panel/GridPanelWrapper.js +5 -3
- package/node/components/panel/filterPanel/GridFilterForm.js +91 -9
- package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/node/components/panel/filterPanel/GridFilterPanel.js +28 -11
- package/node/components/toolbar/GridToolbarColumnsButton.js +0 -1
- package/node/components/toolbar/GridToolbarDensitySelector.js +0 -1
- package/node/components/toolbar/GridToolbarExportContainer.js +0 -1
- package/node/components/toolbar/GridToolbarFilterButton.js +0 -1
- package/node/components/toolbar/GridToolbarQuickFilter.js +61 -4
- package/node/constants/defaultGridSlotsComponents.js +2 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/localeTextConstants.js +1 -0
- package/node/hooks/core/useGridStateInitialization.js +19 -6
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +23 -0
- package/node/hooks/features/columns/useGridColumnSpanning.js +11 -16
- package/node/hooks/features/columns/useGridColumns.js +13 -15
- package/node/hooks/features/dimensions/useGridDimensions.js +9 -8
- package/node/hooks/features/editRows/useGridCellEditing.new.js +11 -4
- package/node/hooks/features/editRows/useGridEditing.old.js +1 -1
- package/node/hooks/features/editRows/useGridRowEditing.new.js +10 -4
- package/node/hooks/features/events/useGridEvents.js +2 -0
- package/node/hooks/features/filter/gridFilterSelector.js +9 -2
- package/node/hooks/features/filter/gridFilterUtils.js +4 -5
- package/node/hooks/features/filter/useGridFilter.js +28 -11
- package/node/hooks/features/pagination/useGridPage.js +1 -1
- package/node/hooks/features/pagination/useGridPageSize.js +1 -1
- package/node/hooks/features/rows/useGridRowsMeta.js +136 -69
- package/node/hooks/features/selection/useGridSelection.js +1 -1
- package/node/hooks/features/selection/useGridSelectionPreProcessors.js +7 -5
- package/node/hooks/features/sorting/useGridSorting.js +1 -1
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +65 -12
- package/node/index.js +1 -1
- package/node/locales/arSD.js +1 -0
- package/node/locales/bgBG.js +1 -0
- package/node/locales/csCZ.js +1 -0
- package/node/locales/daDK.js +1 -0
- package/node/locales/deDE.js +1 -0
- package/node/locales/elGR.js +1 -0
- package/node/locales/esES.js +1 -0
- package/node/locales/faIR.js +1 -0
- package/node/locales/fiFI.js +1 -0
- package/node/locales/frFR.js +1 -0
- package/node/locales/heIL.js +10 -9
- package/node/locales/huHU.js +1 -0
- package/node/locales/itIT.js +1 -0
- package/node/locales/jaJP.js +25 -24
- package/node/locales/koKR.js +1 -0
- package/node/locales/nbNO.js +126 -0
- package/node/locales/nlNL.js +1 -0
- package/node/locales/plPL.js +1 -0
- package/node/locales/ptBR.js +1 -0
- package/node/locales/ruRU.js +7 -6
- package/node/locales/skSK.js +1 -0
- package/node/locales/trTR.js +8 -7
- package/node/locales/ukUA.js +1 -0
- package/node/locales/viVN.js +1 -0
- package/node/locales/zhCN.js +1 -0
- package/node/models/events/gridEvents.js +2 -0
- package/node/models/gridApiCaches.js +5 -0
- package/node/models/params/gridMenuParams.js +5 -0
- package/node/models/params/index.js +13 -0
- package/package.json +6 -5
|
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
|
+
var _utils = require("@mui/material/utils");
|
|
15
|
+
|
|
14
16
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
15
17
|
|
|
16
18
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
@@ -47,68 +49,101 @@ exports.rowsMetaStateInitializer = rowsMetaStateInitializer;
|
|
|
47
49
|
|
|
48
50
|
const useGridRowsMeta = (apiRef, props) => {
|
|
49
51
|
const {
|
|
50
|
-
getRowHeight,
|
|
51
|
-
getRowSpacing
|
|
52
|
+
getRowHeight: getRowHeightProp,
|
|
53
|
+
getRowSpacing,
|
|
54
|
+
getEstimatedRowHeight
|
|
52
55
|
} = props;
|
|
53
|
-
const rowsHeightLookup = React.useRef({});
|
|
54
|
-
|
|
56
|
+
const rowsHeightLookup = React.useRef({}); // Inspired by https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/utils/CellSizeAndPositionManager.js
|
|
57
|
+
|
|
58
|
+
const lastMeasuredRowIndex = React.useRef(-1);
|
|
59
|
+
const hasRowWithAutoHeight = React.useRef(false);
|
|
60
|
+
const rowHeightFromDensity = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityRowHeightSelector);
|
|
55
61
|
const filterState = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterStateSelector);
|
|
56
62
|
const paginationState = (0, _useGridSelector.useGridSelector)(apiRef, _gridPaginationSelector.gridPaginationSelector);
|
|
57
63
|
const sortingState = (0, _useGridSelector.useGridSelector)(apiRef, _gridSortingSelector.gridSortingStateSelector);
|
|
58
64
|
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
|
|
59
65
|
const hydrateRowsMeta = React.useCallback(() => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
positions.push(acc);
|
|
66
|
-
let baseRowHeight;
|
|
67
|
-
const isResized = rowsHeightLookup.current[row.id] && rowsHeightLookup.current[row.id].isResized || false;
|
|
68
|
-
|
|
69
|
-
if (isResized) {
|
|
70
|
-
// do not recalculate resized row height and use the value from the lookup
|
|
71
|
-
baseRowHeight = rowsHeightLookup.current[row.id].value;
|
|
72
|
-
} else {
|
|
73
|
-
baseRowHeight = currentRowHeight;
|
|
66
|
+
hasRowWithAutoHeight.current = false;
|
|
67
|
+
const densityFactor = (0, _densitySelector.gridDensityFactorSelector)(apiRef.current.state, apiRef.current.instanceId);
|
|
68
|
+
const positions = [];
|
|
69
|
+
const currentPageTotalHeight = currentPage.rows.reduce((acc, row) => {
|
|
70
|
+
positions.push(acc);
|
|
74
71
|
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
if (!rowsHeightLookup.current[row.id]) {
|
|
73
|
+
rowsHeightLookup.current[row.id] = {
|
|
74
|
+
sizes: {
|
|
75
|
+
base: rowHeightFromDensity
|
|
76
|
+
},
|
|
77
|
+
isResized: false,
|
|
78
|
+
autoHeight: false,
|
|
79
|
+
needsFirstMeasurement: true // Assume all rows will need to be measured by default
|
|
77
80
|
|
|
78
|
-
|
|
79
|
-
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const {
|
|
85
|
+
isResized,
|
|
86
|
+
needsFirstMeasurement,
|
|
87
|
+
sizes
|
|
88
|
+
} = rowsHeightLookup.current[row.id];
|
|
89
|
+
let baseRowHeight = rowHeightFromDensity;
|
|
90
|
+
const existingBaseRowHeight = sizes.base;
|
|
91
|
+
|
|
92
|
+
if (isResized) {
|
|
93
|
+
// Do not recalculate resized row height and use the value from the lookup
|
|
94
|
+
baseRowHeight = existingBaseRowHeight;
|
|
95
|
+
} else if (getRowHeightProp) {
|
|
96
|
+
const rowHeightFromUser = getRowHeightProp((0, _extends2.default)({}, row, {
|
|
97
|
+
densityFactor
|
|
98
|
+
}));
|
|
99
|
+
|
|
100
|
+
if (rowHeightFromUser === 'auto') {
|
|
101
|
+
if (needsFirstMeasurement) {
|
|
102
|
+
const estimatedRowHeight = getEstimatedRowHeight ? getEstimatedRowHeight((0, _extends2.default)({}, row, {
|
|
80
103
|
densityFactor
|
|
81
|
-
}))
|
|
82
|
-
}
|
|
83
|
-
} // We use an object to make simple to check if a height is already added or not
|
|
84
|
-
|
|
104
|
+
})) : rowHeightFromDensity; // If the row was not measured yet use the estimated row height
|
|
85
105
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
106
|
+
baseRowHeight = estimatedRowHeight != null ? estimatedRowHeight : rowHeightFromDensity;
|
|
107
|
+
} else {
|
|
108
|
+
baseRowHeight = existingBaseRowHeight;
|
|
109
|
+
}
|
|
89
110
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
indexRelativeToCurrentPage
|
|
98
|
-
}));
|
|
99
|
-
initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;
|
|
100
|
-
initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;
|
|
111
|
+
hasRowWithAutoHeight.current = true;
|
|
112
|
+
rowsHeightLookup.current[row.id].autoHeight = true;
|
|
113
|
+
} else {
|
|
114
|
+
// Default back to base rowHeight if getRowHeight returns null or undefined.
|
|
115
|
+
baseRowHeight = rowHeightFromUser != null ? rowHeightFromUser : rowHeightFromDensity;
|
|
116
|
+
rowsHeightLookup.current[row.id].needsFirstMeasurement = false;
|
|
117
|
+
rowsHeightLookup.current[row.id].autoHeight = false;
|
|
101
118
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
119
|
+
} else {
|
|
120
|
+
rowsHeightLookup.current[row.id].needsFirstMeasurement = false;
|
|
121
|
+
} // We use an object to make simple to check if a height is already added or not
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
const initialHeights = {
|
|
125
|
+
base: baseRowHeight
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
if (getRowSpacing) {
|
|
129
|
+
var _spacing$top, _spacing$bottom;
|
|
130
|
+
|
|
131
|
+
const indexRelativeToCurrentPage = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
|
|
132
|
+
const spacing = getRowSpacing((0, _extends2.default)({}, row, {
|
|
133
|
+
isFirstVisible: indexRelativeToCurrentPage === 0,
|
|
134
|
+
isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,
|
|
135
|
+
indexRelativeToCurrentPage
|
|
136
|
+
}));
|
|
137
|
+
initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;
|
|
138
|
+
initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const processedSizes = apiRef.current.unstable_applyPipeProcessors('rowHeight', initialHeights, row);
|
|
142
|
+
rowsHeightLookup.current[row.id].sizes = processedSizes;
|
|
143
|
+
const finalRowHeight = Object.values(processedSizes).reduce((acc2, value) => acc2 + value, 0);
|
|
144
|
+
return acc + finalRowHeight;
|
|
145
|
+
}, 0);
|
|
146
|
+
apiRef.current.setState(state => {
|
|
112
147
|
return (0, _extends2.default)({}, state, {
|
|
113
148
|
rowsMeta: {
|
|
114
149
|
currentPageTotalHeight,
|
|
@@ -116,41 +151,73 @@ const useGridRowsMeta = (apiRef, props) => {
|
|
|
116
151
|
}
|
|
117
152
|
});
|
|
118
153
|
});
|
|
119
|
-
apiRef.current.forceUpdate();
|
|
120
|
-
}, [apiRef, currentPage.rows, getRowSpacing, getRowHeight]);
|
|
121
154
|
|
|
122
|
-
|
|
123
|
-
|
|
155
|
+
if (!hasRowWithAutoHeight.current) {
|
|
156
|
+
// No row has height=auto, so all rows are already measured
|
|
157
|
+
lastMeasuredRowIndex.current = Infinity;
|
|
158
|
+
}
|
|
124
159
|
|
|
125
|
-
|
|
126
|
-
};
|
|
160
|
+
apiRef.current.forceUpdate();
|
|
161
|
+
}, [apiRef, currentPage.rows, rowHeightFromDensity, getRowHeightProp, getRowSpacing, getEstimatedRowHeight]);
|
|
162
|
+
const getRowHeight = React.useCallback(rowId => {
|
|
163
|
+
const height = rowsHeightLookup.current[rowId];
|
|
164
|
+
return height ? height.sizes.base : rowHeightFromDensity;
|
|
165
|
+
}, [rowHeightFromDensity]);
|
|
127
166
|
|
|
128
167
|
const getRowInternalSizes = rowId => {
|
|
129
|
-
var _rowsHeightLookup$
|
|
168
|
+
var _rowsHeightLookup$cur;
|
|
130
169
|
|
|
131
|
-
return (_rowsHeightLookup$
|
|
170
|
+
return (_rowsHeightLookup$cur = rowsHeightLookup.current[rowId]) == null ? void 0 : _rowsHeightLookup$cur.sizes;
|
|
132
171
|
};
|
|
133
172
|
|
|
134
173
|
const setRowHeight = React.useCallback((id, height) => {
|
|
135
|
-
rowsHeightLookup.current[id] =
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
sizes: (0, _extends2.default)({}, rowsHeightLookup.current[id].sizes, {
|
|
139
|
-
base: height
|
|
140
|
-
})
|
|
141
|
-
};
|
|
174
|
+
rowsHeightLookup.current[id].sizes.base = height;
|
|
175
|
+
rowsHeightLookup.current[id].isResized = true;
|
|
176
|
+
rowsHeightLookup.current[id].needsFirstMeasurement = false;
|
|
142
177
|
hydrateRowsMeta();
|
|
143
|
-
}, [hydrateRowsMeta]);
|
|
178
|
+
}, [hydrateRowsMeta]);
|
|
179
|
+
const debouncedHydrateRowsMeta = React.useMemo(() => (0, _utils.debounce)(hydrateRowsMeta), [hydrateRowsMeta]);
|
|
180
|
+
const storeMeasuredRowHeight = React.useCallback((id, height) => {
|
|
181
|
+
if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
|
|
182
|
+
return;
|
|
183
|
+
} // Only trigger hydration if the value is different, otherwise we trigger a loop
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
const needsHydration = rowsHeightLookup.current[id].sizes.base !== height;
|
|
187
|
+
rowsHeightLookup.current[id].needsFirstMeasurement = false;
|
|
188
|
+
rowsHeightLookup.current[id].sizes.base = height;
|
|
189
|
+
|
|
190
|
+
if (needsHydration) {
|
|
191
|
+
debouncedHydrateRowsMeta();
|
|
192
|
+
}
|
|
193
|
+
}, [debouncedHydrateRowsMeta]);
|
|
194
|
+
const rowHasAutoHeight = React.useCallback(id => {
|
|
195
|
+
var _rowsHeightLookup$cur2;
|
|
196
|
+
|
|
197
|
+
return ((_rowsHeightLookup$cur2 = rowsHeightLookup.current[id]) == null ? void 0 : _rowsHeightLookup$cur2.autoHeight) || false;
|
|
198
|
+
}, []);
|
|
199
|
+
const getLastMeasuredRowIndex = React.useCallback(() => {
|
|
200
|
+
return lastMeasuredRowIndex.current;
|
|
201
|
+
}, []);
|
|
202
|
+
const setLastMeasuredRowIndex = React.useCallback(index => {
|
|
203
|
+
if (hasRowWithAutoHeight.current && index > lastMeasuredRowIndex.current) {
|
|
204
|
+
lastMeasuredRowIndex.current = index;
|
|
205
|
+
}
|
|
206
|
+
}, []); // The effect is used to build the rows meta data - currentPageTotalHeight and positions.
|
|
144
207
|
// Because of variable row height this is needed for the virtualization
|
|
145
208
|
|
|
146
209
|
React.useEffect(() => {
|
|
147
210
|
hydrateRowsMeta();
|
|
148
|
-
}, [
|
|
211
|
+
}, [rowHeightFromDensity, filterState, paginationState, sortingState, hydrateRowsMeta]);
|
|
149
212
|
(0, _pipeProcessing.useGridRegisterPipeApplier)(apiRef, 'rowHeight', hydrateRowsMeta);
|
|
150
213
|
const rowsMetaApi = {
|
|
151
|
-
|
|
214
|
+
unstable_getLastMeasuredRowIndex: getLastMeasuredRowIndex,
|
|
215
|
+
unstable_setLastMeasuredRowIndex: setLastMeasuredRowIndex,
|
|
216
|
+
unstable_rowHasAutoHeight: rowHasAutoHeight,
|
|
217
|
+
unstable_getRowHeight: getRowHeight,
|
|
152
218
|
unstable_getRowInternalSizes: getRowInternalSizes,
|
|
153
|
-
unstable_setRowHeight: setRowHeight
|
|
219
|
+
unstable_setRowHeight: setRowHeight,
|
|
220
|
+
unstable_storeRowHeightMeasurement: storeMeasuredRowHeight
|
|
154
221
|
};
|
|
155
222
|
(0, _useGridApiMethod.useGridApiMethod)(apiRef, rowsMetaApi, 'GridRowsMetaApi');
|
|
156
223
|
};
|
|
@@ -80,7 +80,7 @@ const useGridSelection = (apiRef, props) => {
|
|
|
80
80
|
return getSelectionModelPropValue(props.selectionModel, (0, _gridSelectionSelector.gridSelectionStateSelector)(apiRef.current.state));
|
|
81
81
|
}, [apiRef, props.selectionModel]);
|
|
82
82
|
const lastRowToggled = React.useRef(null);
|
|
83
|
-
apiRef.current.
|
|
83
|
+
apiRef.current.unstable_registerControlState({
|
|
84
84
|
stateId: 'selection',
|
|
85
85
|
propModel: propSelectionModel,
|
|
86
86
|
propOnChange: props.onSelectionModelChange,
|
|
@@ -48,14 +48,16 @@ const useGridSelectionPreProcessors = (apiRef, props) => {
|
|
|
48
48
|
headerName: apiRef.current.getLocaleText('checkboxSelectionHeaderName')
|
|
49
49
|
});
|
|
50
50
|
const shouldHaveSelectionColumn = props.checkboxSelection;
|
|
51
|
-
const haveSelectionColumn = columnsState.lookup[
|
|
51
|
+
const haveSelectionColumn = columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD] != null;
|
|
52
52
|
|
|
53
53
|
if (shouldHaveSelectionColumn && !haveSelectionColumn) {
|
|
54
|
-
columnsState.lookup[
|
|
55
|
-
columnsState.all = [
|
|
54
|
+
columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD] = selectionColumn;
|
|
55
|
+
columnsState.all = [_colDef.GRID_CHECKBOX_SELECTION_FIELD, ...columnsState.all];
|
|
56
56
|
} else if (!shouldHaveSelectionColumn && haveSelectionColumn) {
|
|
57
|
-
delete columnsState.lookup[
|
|
58
|
-
columnsState.all = columnsState.all.filter(field => field !==
|
|
57
|
+
delete columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD];
|
|
58
|
+
columnsState.all = columnsState.all.filter(field => field !== _colDef.GRID_CHECKBOX_SELECTION_FIELD);
|
|
59
|
+
} else if (shouldHaveSelectionColumn && haveSelectionColumn) {
|
|
60
|
+
columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD] = (0, _extends2.default)({}, selectionColumn, columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD]);
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
return columnsState;
|
|
@@ -60,7 +60,7 @@ exports.sortingStateInitializer = sortingStateInitializer;
|
|
|
60
60
|
|
|
61
61
|
const useGridSorting = (apiRef, props) => {
|
|
62
62
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridSorting');
|
|
63
|
-
apiRef.current.
|
|
63
|
+
apiRef.current.unstable_registerControlState({
|
|
64
64
|
stateId: 'sortModel',
|
|
65
65
|
propModel: props.sortModel,
|
|
66
66
|
propOnChange: props.onSortModelChange,
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.binarySearch = binarySearch;
|
|
9
9
|
exports.useGridVirtualScroller = exports.getRenderableIndexes = void 0;
|
|
10
10
|
|
|
11
11
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
@@ -53,7 +53,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
53
53
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
54
54
|
|
|
55
55
|
// Uses binary search to avoid looping through all possible positions
|
|
56
|
-
function
|
|
56
|
+
function binarySearch(offset, positions, sliceStart = 0, sliceEnd = positions.length) {
|
|
57
57
|
if (positions.length <= 0) {
|
|
58
58
|
return -1;
|
|
59
59
|
}
|
|
@@ -64,7 +64,18 @@ function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd = positi
|
|
|
64
64
|
|
|
65
65
|
const pivot = sliceStart + Math.floor((sliceEnd - sliceStart) / 2);
|
|
66
66
|
const itemOffset = positions[pivot];
|
|
67
|
-
return offset <= itemOffset ?
|
|
67
|
+
return offset <= itemOffset ? binarySearch(offset, positions, sliceStart, pivot) : binarySearch(offset, positions, pivot + 1, sliceEnd);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function exponentialSearch(offset, positions, index) {
|
|
71
|
+
let interval = 1;
|
|
72
|
+
|
|
73
|
+
while (index < positions.length && positions[index] < offset) {
|
|
74
|
+
index += interval;
|
|
75
|
+
interval *= 2;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return binarySearch(offset, positions, Math.floor(index / 2), Math.min(index, positions.length));
|
|
68
79
|
}
|
|
69
80
|
|
|
70
81
|
const getRenderableIndexes = ({
|
|
@@ -111,6 +122,22 @@ const useGridVirtualScroller = props => {
|
|
|
111
122
|
});
|
|
112
123
|
const [containerWidth, setContainerWidth] = React.useState(null);
|
|
113
124
|
const prevTotalWidth = React.useRef(columnsTotalWidth);
|
|
125
|
+
const getNearestIndexToRender = React.useCallback(offset => {
|
|
126
|
+
const lastMeasuredIndex = Math.max(0, apiRef.current.unstable_getLastMeasuredRowIndex());
|
|
127
|
+
const allRowsMeasured = lastMeasuredIndex === Infinity;
|
|
128
|
+
|
|
129
|
+
if (allRowsMeasured || rowsMeta.positions[lastMeasuredIndex] >= offset) {
|
|
130
|
+
// If all rows were measured (when no row has "auto" as height) or all rows before the offset
|
|
131
|
+
// were measured, then use a binary search because it's faster.
|
|
132
|
+
return binarySearch(offset, rowsMeta.positions);
|
|
133
|
+
} // Otherwise, use an exponential search.
|
|
134
|
+
// If rows have "auto" as height, their positions will be based on estimated heights.
|
|
135
|
+
// In this case, we can skip several steps until we find a position higher than the offset.
|
|
136
|
+
// Inspired by https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/utils/CellSizeAndPositionManager.js
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
return exponentialSearch(offset, rowsMeta.positions, lastMeasuredIndex);
|
|
140
|
+
}, [apiRef, rowsMeta.positions]);
|
|
114
141
|
const computeRenderContext = React.useCallback(() => {
|
|
115
142
|
if (disableVirtualization) {
|
|
116
143
|
return {
|
|
@@ -124,18 +151,39 @@ const useGridVirtualScroller = props => {
|
|
|
124
151
|
const {
|
|
125
152
|
top,
|
|
126
153
|
left
|
|
127
|
-
} = scrollPosition.current;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const
|
|
131
|
-
const
|
|
154
|
+
} = scrollPosition.current; // Clamp the value because the search may return an index out of bounds.
|
|
155
|
+
// In the last index, this is not needed because Array.slice doesn't include it.
|
|
156
|
+
|
|
157
|
+
const firstRowIndex = Math.min(getNearestIndexToRender(top), rowsMeta.positions.length - 1);
|
|
158
|
+
const lastRowIndex = rootProps.autoHeight ? firstRowIndex + currentPage.rows.length : getNearestIndexToRender(top + rootRef.current.clientHeight);
|
|
159
|
+
let hasRowWithAutoHeight = false;
|
|
160
|
+
let firstColumnIndex = 0;
|
|
161
|
+
let lastColumnIndex = columnPositions.length;
|
|
162
|
+
const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
|
|
163
|
+
firstIndex: firstRowIndex,
|
|
164
|
+
lastIndex: lastRowIndex,
|
|
165
|
+
minFirstIndex: 0,
|
|
166
|
+
maxLastIndex: currentPage.rows.length,
|
|
167
|
+
buffer: rootProps.rowBuffer
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
for (let i = firstRowToRender; i < lastRowToRender && !hasRowWithAutoHeight; i += 1) {
|
|
171
|
+
const row = currentPage.rows[i];
|
|
172
|
+
hasRowWithAutoHeight = apiRef.current.unstable_rowHasAutoHeight(row.id);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (!hasRowWithAutoHeight) {
|
|
176
|
+
firstColumnIndex = binarySearch(left, columnPositions);
|
|
177
|
+
lastColumnIndex = binarySearch(left + containerWidth, columnPositions);
|
|
178
|
+
}
|
|
179
|
+
|
|
132
180
|
return {
|
|
133
181
|
firstRowIndex,
|
|
134
182
|
lastRowIndex,
|
|
135
183
|
firstColumnIndex,
|
|
136
184
|
lastColumnIndex
|
|
137
185
|
};
|
|
138
|
-
}, [disableVirtualization, rowsMeta.positions, rootProps.autoHeight, currentPage.rows
|
|
186
|
+
}, [disableVirtualization, getNearestIndexToRender, rowsMeta.positions.length, rootProps.autoHeight, rootProps.rowBuffer, currentPage.rows, columnPositions, visibleColumns.length, apiRef, containerWidth]);
|
|
139
187
|
React.useEffect(() => {
|
|
140
188
|
if (disableVirtualization) {
|
|
141
189
|
renderZoneRef.current.style.transform = `translate3d(0px, 0px, 0px)`;
|
|
@@ -266,7 +314,8 @@ const useGridVirtualScroller = props => {
|
|
|
266
314
|
renderContext: nextRenderContext,
|
|
267
315
|
minFirstColumn = renderZoneMinColumnIndex,
|
|
268
316
|
maxLastColumn = renderZoneMaxColumnIndex,
|
|
269
|
-
availableSpace = containerWidth
|
|
317
|
+
availableSpace = containerWidth,
|
|
318
|
+
ignoreAutoHeight
|
|
270
319
|
} = params;
|
|
271
320
|
|
|
272
321
|
if (!currentPage.range || !nextRenderContext || availableSpace == null) {
|
|
@@ -319,7 +368,7 @@ const useGridVirtualScroller = props => {
|
|
|
319
368
|
model
|
|
320
369
|
} = renderedRows[i];
|
|
321
370
|
const lastVisibleRowIndex = firstRowToRender + i === currentPage.rows.length - 1;
|
|
322
|
-
const
|
|
371
|
+
const baseRowHeight = !apiRef.current.unstable_rowHasAutoHeight(id) || ignoreAutoHeight ? apiRef.current.unstable_getRowHeight(id) : 'auto';
|
|
323
372
|
let isSelected;
|
|
324
373
|
|
|
325
374
|
if (selectedRowsLookup[id] == null) {
|
|
@@ -333,7 +382,7 @@ const useGridVirtualScroller = props => {
|
|
|
333
382
|
rows.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.Row, (0, _extends2.default)({
|
|
334
383
|
row: model,
|
|
335
384
|
rowId: id,
|
|
336
|
-
rowHeight:
|
|
385
|
+
rowHeight: baseRowHeight,
|
|
337
386
|
cellFocus: cellFocus // TODO move to inside the row
|
|
338
387
|
,
|
|
339
388
|
cellTabIndex: cellTabIndex // TODO move to inside the row
|
|
@@ -392,6 +441,10 @@ const useGridVirtualScroller = props => {
|
|
|
392
441
|
rootStyle.overflowX = 'hidden';
|
|
393
442
|
}
|
|
394
443
|
|
|
444
|
+
if (rootProps.autoHeight) {
|
|
445
|
+
rootStyle.overflowY = 'hidden';
|
|
446
|
+
}
|
|
447
|
+
|
|
395
448
|
const getRenderContext = React.useCallback(() => {
|
|
396
449
|
return prevRenderContext.current;
|
|
397
450
|
}, []);
|
package/node/index.js
CHANGED
package/node/locales/arSD.js
CHANGED
|
@@ -116,6 +116,7 @@ const arSDGrid = {
|
|
|
116
116
|
groupColumn: name => `تجميع حسب ${name}`,
|
|
117
117
|
unGroupColumn: name => `إيقاف التجميع حسب ${name}`,
|
|
118
118
|
// Master/detail
|
|
119
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
119
120
|
expandDetailPanel: 'توسيع',
|
|
120
121
|
collapseDetailPanel: 'طوي' // Row reordering text
|
|
121
122
|
// rowReorderingHeaderName: 'Row reordering',
|
package/node/locales/bgBG.js
CHANGED
|
@@ -116,6 +116,7 @@ const bgBGGrid = {
|
|
|
116
116
|
groupColumn: name => `Групирай по ${name}`,
|
|
117
117
|
unGroupColumn: name => `Спри групиране по ${name}`,
|
|
118
118
|
// Master/detail
|
|
119
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
119
120
|
expandDetailPanel: 'Разгъване',
|
|
120
121
|
collapseDetailPanel: 'Свиване' // Row reordering text
|
|
121
122
|
// rowReorderingHeaderName: 'Row reordering',
|
package/node/locales/csCZ.js
CHANGED
|
@@ -150,6 +150,7 @@ const csCZGrid = {
|
|
|
150
150
|
groupingColumnHeaderName: 'Skupina',
|
|
151
151
|
groupColumn: name => `Zoskupit podle ${name}`,
|
|
152
152
|
unGroupColumn: name => `Přestat zoskupovat podle ${name}` // Master/detail
|
|
153
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
153
154
|
// expandDetailPanel: 'Expand',
|
|
154
155
|
// collapseDetailPanel: 'Collapse',
|
|
155
156
|
// Row reordering text
|
package/node/locales/daDK.js
CHANGED
|
@@ -116,6 +116,7 @@ const daDKGrid = {
|
|
|
116
116
|
groupColumn: name => `Gruppér efter ${name}`,
|
|
117
117
|
unGroupColumn: name => `Fjern gruppéring efter ${name}`,
|
|
118
118
|
// Master/detail
|
|
119
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
119
120
|
expandDetailPanel: 'Udvid',
|
|
120
121
|
collapseDetailPanel: 'Kollaps' // Row reordering text
|
|
121
122
|
// rowReorderingHeaderName: 'Row reordering',
|
package/node/locales/deDE.js
CHANGED
|
@@ -116,6 +116,7 @@ const deDEGrid = {
|
|
|
116
116
|
groupColumn: name => `Gruppieren nach ${name}`,
|
|
117
117
|
unGroupColumn: name => `Gruppierung nach ${name} aufheben`,
|
|
118
118
|
// Master/detail
|
|
119
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
119
120
|
expandDetailPanel: 'Aufklappen',
|
|
120
121
|
collapseDetailPanel: 'Zuklappen',
|
|
121
122
|
// Row reordering text
|
package/node/locales/elGR.js
CHANGED
|
@@ -113,6 +113,7 @@ const elGRGrid = {
|
|
|
113
113
|
// groupColumn: name => `Group by ${name}`,
|
|
114
114
|
// unGroupColumn: name => `Stop grouping by ${name}`,
|
|
115
115
|
// Master/detail
|
|
116
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
116
117
|
// expandDetailPanel: 'Expand',
|
|
117
118
|
// collapseDetailPanel: 'Collapse',
|
|
118
119
|
// Row reordering text
|
package/node/locales/esES.js
CHANGED
|
@@ -115,6 +115,7 @@ const esESGrid = {
|
|
|
115
115
|
// groupColumn: name => `Group by ${name}`,
|
|
116
116
|
// unGroupColumn: name => `Stop grouping by ${name}`,
|
|
117
117
|
// Master/detail
|
|
118
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
118
119
|
// expandDetailPanel: 'Expand',
|
|
119
120
|
// collapseDetailPanel: 'Collapse',
|
|
120
121
|
// Row reordering text
|
package/node/locales/faIR.js
CHANGED
|
@@ -116,6 +116,7 @@ const faIRGrid = {
|
|
|
116
116
|
groupColumn: name => `گروهبندی براساس ${name}`,
|
|
117
117
|
unGroupColumn: name => `لغو گروهبندی براساس ${name}`,
|
|
118
118
|
// Master/detail
|
|
119
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
119
120
|
expandDetailPanel: 'بازکردن پنل جزئیات',
|
|
120
121
|
collapseDetailPanel: 'بستن پنل جزئیات' // Row reordering text
|
|
121
122
|
// rowReorderingHeaderName: 'Row reordering',
|
package/node/locales/fiFI.js
CHANGED
|
@@ -115,6 +115,7 @@ const fiFIGrid = {
|
|
|
115
115
|
// groupColumn: name => `Group by ${name}`,
|
|
116
116
|
// unGroupColumn: name => `Stop grouping by ${name}`,
|
|
117
117
|
// Master/detail
|
|
118
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
118
119
|
// expandDetailPanel: 'Expand',
|
|
119
120
|
// collapseDetailPanel: 'Collapse',
|
|
120
121
|
// Row reordering text
|
package/node/locales/frFR.js
CHANGED
|
@@ -115,6 +115,7 @@ const frFRGrid = {
|
|
|
115
115
|
groupingColumnHeaderName: 'Groupe',
|
|
116
116
|
groupColumn: name => `Grouper par ${name}`,
|
|
117
117
|
unGroupColumn: name => `Arrêter de grouper par ${name}` // Master/detail
|
|
118
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
118
119
|
// expandDetailPanel: 'Expand',
|
|
119
120
|
// collapseDetailPanel: 'Collapse',
|
|
120
121
|
// Row reordering text
|
package/node/locales/heIL.js
CHANGED
|
@@ -30,15 +30,15 @@ const heILGrid = {
|
|
|
30
30
|
toolbarFiltersTooltipShow: 'הצג מסננים',
|
|
31
31
|
toolbarFiltersTooltipActive: count => count !== 1 ? `${count} מסננים פעילים` : `מסנן אחד פעיל`,
|
|
32
32
|
// Quick filter toolbar field
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
toolbarQuickFilterPlaceholder: 'חיפוש...',
|
|
34
|
+
toolbarQuickFilterLabel: 'חיפוש',
|
|
35
|
+
toolbarQuickFilterDeleteIconLabel: 'ניקוי',
|
|
36
36
|
// Export selector toolbar button text
|
|
37
37
|
toolbarExport: 'ייצוא',
|
|
38
38
|
toolbarExportLabel: 'ייצוא',
|
|
39
|
-
toolbarExportCSV: '
|
|
39
|
+
toolbarExportCSV: 'ייצוא ל- CSV',
|
|
40
40
|
toolbarExportPrint: 'הדפסה',
|
|
41
|
-
|
|
41
|
+
toolbarExportExcel: 'ייצוא ל- Excel',
|
|
42
42
|
// Columns panel text
|
|
43
43
|
columnsPanelTextFieldLabel: 'חפש עמודה',
|
|
44
44
|
columnsPanelTextFieldPlaceholder: 'כותרת עמודה',
|
|
@@ -48,7 +48,7 @@ const heILGrid = {
|
|
|
48
48
|
// Filter panel text
|
|
49
49
|
filterPanelAddFilter: 'הוסף מסנן',
|
|
50
50
|
filterPanelDeleteIconLabel: 'מחק',
|
|
51
|
-
|
|
51
|
+
filterPanelLinkOperator: 'אופרטור לוגי',
|
|
52
52
|
filterPanelOperators: 'אופרטור',
|
|
53
53
|
// TODO v6: rename to filterPanelOperator
|
|
54
54
|
filterPanelOperatorAnd: 'וגם',
|
|
@@ -116,10 +116,11 @@ const heILGrid = {
|
|
|
116
116
|
groupColumn: name => `קבץ לפי ${name}`,
|
|
117
117
|
unGroupColumn: name => `הפסק לקבץ לפי ${name}`,
|
|
118
118
|
// Master/detail
|
|
119
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
119
120
|
expandDetailPanel: 'הרחב',
|
|
120
|
-
collapseDetailPanel: 'כווץ'
|
|
121
|
-
//
|
|
122
|
-
|
|
121
|
+
collapseDetailPanel: 'כווץ',
|
|
122
|
+
// Row reordering text
|
|
123
|
+
rowReorderingHeaderName: 'סידור שורות'
|
|
123
124
|
};
|
|
124
125
|
const heIL = (0, _getGridLocalization.getGridLocalization)(heILGrid, _locale.heIL);
|
|
125
126
|
exports.heIL = heIL;
|
package/node/locales/huHU.js
CHANGED
|
@@ -116,6 +116,7 @@ const huHUGrid = {
|
|
|
116
116
|
groupColumn: name => `Csoportosítás ${name} szerint`,
|
|
117
117
|
unGroupColumn: name => `${name} szerinti csoportosítás törlése`,
|
|
118
118
|
// Master/detail
|
|
119
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
119
120
|
expandDetailPanel: 'Kibontás',
|
|
120
121
|
collapseDetailPanel: 'Összecsukás' // Row reordering text
|
|
121
122
|
// rowReorderingHeaderName: 'Row reordering',
|
package/node/locales/itIT.js
CHANGED
|
@@ -115,6 +115,7 @@ const itITGrid = {
|
|
|
115
115
|
groupingColumnHeaderName: 'Gruppo',
|
|
116
116
|
groupColumn: name => `Raggruppa per ${name}`,
|
|
117
117
|
unGroupColumn: name => `Annulla raggruppamento per ${name}` // Master/detail
|
|
118
|
+
// detailPanelToggle: 'Detail panel toggle',
|
|
118
119
|
// expandDetailPanel: 'Expand',
|
|
119
120
|
// collapseDetailPanel: 'Collapse',
|
|
120
121
|
// Row reordering text
|