@mui/x-data-grid 7.0.0-beta.6 → 7.0.0
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 +311 -12
- package/DataGrid/DataGrid.js +57 -17
- package/DataGrid/useDataGridComponent.js +3 -0
- package/DataGrid/useDataGridProps.js +6 -7
- package/README.md +1 -1
- package/components/GridColumnHeaders.d.ts +1 -2
- package/components/GridColumnHeaders.js +6 -17
- package/components/GridFooter.js +2 -3
- package/components/GridHeader.js +1 -2
- package/components/GridHeaders.js +1 -4
- package/components/GridPagination.d.ts +6 -5
- package/components/GridPagination.js +14 -11
- package/components/GridRow.d.ts +1 -1
- package/components/GridRow.js +17 -36
- package/components/GridScrollArea.d.ts +10 -0
- package/components/GridScrollArea.js +150 -0
- package/components/base/GridFooterPlaceholder.js +1 -2
- package/components/base/GridOverlays.js +3 -6
- package/components/cell/GridActionsCell.js +4 -6
- package/components/cell/GridActionsCellItem.d.ts +8 -25
- package/components/cell/GridActionsCellItem.js +8 -5
- package/components/cell/GridBooleanCell.d.ts +1 -0
- package/components/cell/GridBooleanCell.js +3 -2
- package/components/cell/GridCell.d.ts +7 -0
- package/components/cell/GridCell.js +18 -11
- package/components/cell/GridEditBooleanCell.js +1 -2
- package/components/cell/GridEditDateCell.js +2 -3
- package/components/cell/GridEditInputCell.js +2 -2
- package/components/cell/GridEditSingleSelectCell.js +5 -8
- package/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -3
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -0
- package/components/columnHeaders/GridColumnGroupHeader.js +22 -13
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +2 -3
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +26 -12
- package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -2
- package/components/columnHeaders/GridColumnHeaderTitle.js +2 -3
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -0
- package/components/columnHeaders/GridGenericColumnHeaderItem.js +7 -6
- package/components/columnSelection/GridCellCheckboxRenderer.js +3 -5
- package/components/columnSelection/GridHeaderCheckbox.js +1 -2
- package/components/columnsManagement/GridColumnsManagement.js +17 -21
- package/components/containers/GridRoot.js +3 -3
- package/components/containers/GridRootStyles.js +12 -20
- package/components/menu/GridMenu.js +4 -6
- package/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +2 -3
- package/components/panel/GridColumnsPanel.js +1 -2
- package/components/panel/GridPanel.d.ts +1 -10
- package/components/panel/GridPanel.js +1 -2
- package/components/panel/GridPreferencesPanel.js +2 -3
- package/components/panel/filterPanel/GridFilterForm.js +24 -27
- package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
- package/components/panel/filterPanel/GridFilterInputDate.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputDate.js +3 -4
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +11 -15
- package/components/panel/filterPanel/GridFilterInputMultipleValue.js +10 -14
- package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +10 -11
- package/components/panel/filterPanel/GridFilterInputValue.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputValue.js +5 -7
- package/components/panel/filterPanel/GridFilterPanel.js +5 -9
- package/components/panel/filterPanel/filterPanelUtils.js +1 -1
- package/components/toolbar/GridToolbarColumnsButton.js +3 -5
- package/components/toolbar/GridToolbarDensitySelector.js +8 -10
- package/components/toolbar/GridToolbarExport.js +2 -2
- package/components/toolbar/GridToolbarExportContainer.js +3 -5
- package/components/toolbar/GridToolbarFilterButton.js +3 -5
- package/components/toolbar/GridToolbarQuickFilter.js +4 -5
- package/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/components/virtualization/GridVirtualScroller.js +6 -1
- package/components/virtualization/GridVirtualScrollerContent.js +1 -2
- package/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -2
- package/constants/gridClasses.d.ts +6 -32
- package/constants/gridClasses.js +1 -1
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +5 -1
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +1 -2
- package/hooks/core/useGridApiInitialization.js +4 -6
- package/hooks/features/clipboard/useGridClipboard.js +6 -5
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -16
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +4 -8
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +12 -23
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +23 -7
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +186 -101
- package/hooks/features/columnMenu/useGridColumnMenuSlots.js +2 -2
- package/hooks/features/columnResize/columnResizeSelector.d.ts +3 -0
- package/hooks/features/columnResize/columnResizeSelector.js +3 -0
- package/hooks/features/columnResize/columnResizeState.d.ts +3 -0
- package/hooks/features/columnResize/columnResizeState.js +1 -0
- package/hooks/features/columnResize/gridColumnResizeApi.d.ts +44 -0
- package/hooks/features/columnResize/gridColumnResizeApi.js +10 -0
- package/hooks/features/columnResize/index.d.ts +3 -0
- package/hooks/features/columnResize/index.js +3 -0
- package/hooks/features/columnResize/useGridColumnResize.d.ts +10 -0
- package/hooks/features/columnResize/useGridColumnResize.js +553 -0
- package/hooks/features/columns/gridColumnsSelector.js +1 -2
- package/hooks/features/columns/gridColumnsUtils.d.ts +0 -9
- package/hooks/features/columns/gridColumnsUtils.js +5 -22
- package/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/hooks/features/columns/useGridColumns.js +11 -19
- package/hooks/features/density/densitySelector.d.ts +4 -2
- package/hooks/features/density/densitySelector.js +8 -2
- package/hooks/features/density/densityState.d.ts +1 -4
- package/hooks/features/density/useGridDensity.d.ts +2 -4
- package/hooks/features/density/useGridDensity.js +21 -29
- package/hooks/features/dimensions/useGridDimensions.js +7 -10
- package/hooks/features/editing/useGridCellEditing.js +25 -8
- package/hooks/features/editing/useGridEditing.js +1 -2
- package/hooks/features/editing/useGridRowEditing.js +4 -6
- package/hooks/features/export/serializers/csvSerializer.d.ts +2 -0
- package/hooks/features/export/serializers/csvSerializer.js +25 -16
- package/hooks/features/export/useGridCsvExport.js +9 -10
- package/hooks/features/export/useGridPrintExport.js +17 -22
- package/hooks/features/export/utils.js +2 -3
- package/hooks/features/filter/gridFilterSelector.js +15 -22
- package/hooks/features/filter/gridFilterUtils.js +10 -16
- package/hooks/features/filter/useGridFilter.js +9 -15
- package/hooks/features/focus/useGridFocus.js +5 -6
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +1 -0
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -0
- package/hooks/features/headerFiltering/useGridHeaderFiltering.js +23 -5
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +1 -0
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +1 -2
- package/hooks/features/pagination/gridPaginationInterfaces.d.ts +19 -2
- package/hooks/features/pagination/gridPaginationSelector.d.ts +5 -0
- package/hooks/features/pagination/gridPaginationSelector.js +9 -4
- package/hooks/features/pagination/useGridPagination.d.ts +1 -6
- package/hooks/features/pagination/useGridPagination.js +9 -158
- package/hooks/features/pagination/useGridPaginationModel.d.ts +11 -0
- package/hooks/features/pagination/useGridPaginationModel.js +165 -0
- package/hooks/features/pagination/useGridRowCount.d.ts +8 -0
- package/hooks/features/pagination/useGridRowCount.js +94 -0
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +7 -12
- package/hooks/features/rowSelection/useGridRowSelection.js +11 -16
- package/hooks/features/rows/gridRowsSelector.js +11 -19
- package/hooks/features/rows/gridRowsUtils.js +7 -9
- package/hooks/features/rows/useGridParamsApi.js +1 -1
- package/hooks/features/rows/useGridRows.js +4 -13
- package/hooks/features/rows/useGridRowsMeta.js +7 -13
- package/hooks/features/scroll/useGridScroll.js +3 -4
- package/hooks/features/sorting/gridSortingSelector.js +4 -7
- package/hooks/features/sorting/useGridSorting.js +8 -14
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +4 -4
- package/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +3 -3
- package/hooks/features/virtualization/useGridVirtualScroller.js +220 -71
- package/hooks/utils/useGridApiEventHandler.js +5 -10
- package/hooks/utils/useGridNativeEventListener.js +1 -2
- package/hooks/utils/useLazyRef.d.ts +1 -2
- package/hooks/utils/useLazyRef.js +1 -11
- package/hooks/utils/useOnMount.d.ts +1 -2
- package/hooks/utils/useOnMount.js +1 -7
- package/hooks/utils/useTimeout.d.ts +1 -11
- package/hooks/utils/useTimeout.js +1 -36
- package/index.js +1 -1
- package/internals/index.d.ts +3 -1
- package/internals/index.js +2 -1
- package/internals/utils/getPinnedCellOffset.d.ts +3 -0
- package/internals/utils/getPinnedCellOffset.js +17 -0
- package/internals/utils/useProps.js +1 -2
- package/joy/joySlots.js +18 -63
- package/locales/jaJP.js +3 -4
- package/material/index.js +0 -2
- package/models/api/gridApiCommon.d.ts +3 -3
- package/models/api/gridCoreApi.d.ts +1 -5
- package/models/api/gridRowsMetaApi.d.ts +1 -1
- package/models/api/index.d.ts +1 -1
- package/models/api/index.js +0 -1
- package/models/events/gridEventLookup.d.ts +13 -0
- package/models/gridExport.d.ts +6 -0
- package/models/gridHeaderFilteringModel.d.ts +1 -0
- package/models/gridSlotsComponent.d.ts +0 -5
- package/models/gridStateCommunity.d.ts +3 -0
- package/models/params/gridScrollParams.d.ts +5 -3
- package/models/props/DataGridProps.d.ts +58 -28
- package/modern/DataGrid/DataGrid.js +57 -17
- package/modern/DataGrid/useDataGridComponent.js +3 -0
- package/modern/DataGrid/useDataGridProps.js +6 -7
- package/modern/components/GridColumnHeaders.js +6 -17
- package/modern/components/GridHeaders.js +1 -4
- package/modern/components/GridPagination.js +13 -6
- package/modern/components/GridRow.js +4 -19
- package/modern/components/GridScrollArea.js +150 -0
- package/modern/components/cell/GridActionsCell.js +1 -1
- package/modern/components/cell/GridActionsCellItem.js +4 -0
- package/modern/components/cell/GridBooleanCell.js +3 -2
- package/modern/components/cell/GridCell.js +11 -3
- package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +18 -8
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +21 -6
- package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
- package/modern/components/containers/GridRoot.js +3 -3
- package/modern/components/containers/GridRootStyles.js +12 -20
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterInputDate.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/modern/components/toolbar/GridToolbarDensitySelector.js +5 -5
- package/modern/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/modern/components/virtualization/GridVirtualScroller.js +6 -1
- package/modern/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/clipboard/useGridClipboard.js +4 -2
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +184 -97
- package/modern/hooks/features/columnResize/columnResizeSelector.js +3 -0
- package/modern/hooks/features/columnResize/columnResizeState.js +1 -0
- package/modern/hooks/features/columnResize/gridColumnResizeApi.js +10 -0
- package/modern/hooks/features/columnResize/index.js +3 -0
- package/modern/hooks/features/columnResize/useGridColumnResize.js +553 -0
- package/modern/hooks/features/columns/gridColumnsUtils.js +4 -20
- package/modern/hooks/features/density/densitySelector.js +8 -2
- package/modern/hooks/features/density/useGridDensity.js +21 -29
- package/modern/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/modern/hooks/features/editing/useGridCellEditing.js +22 -3
- package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
- package/modern/hooks/features/export/serializers/csvSerializer.js +23 -12
- package/modern/hooks/features/export/useGridCsvExport.js +2 -1
- package/modern/hooks/features/export/useGridPrintExport.js +8 -7
- package/modern/hooks/features/filter/gridFilterUtils.js +1 -1
- package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -0
- package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +21 -2
- package/modern/hooks/features/index.js +1 -0
- package/modern/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/modern/hooks/features/pagination/useGridPagination.js +8 -149
- package/modern/hooks/features/pagination/useGridPaginationModel.js +165 -0
- package/modern/hooks/features/pagination/useGridRowCount.js +94 -0
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +3 -2
- package/modern/hooks/features/scroll/useGridScroll.js +1 -1
- package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +211 -57
- package/modern/hooks/utils/useLazyRef.js +1 -11
- package/modern/hooks/utils/useOnMount.js +1 -7
- package/modern/hooks/utils/useTimeout.js +1 -36
- package/modern/index.js +1 -1
- package/modern/internals/index.js +2 -1
- package/modern/internals/utils/getPinnedCellOffset.js +17 -0
- package/modern/joy/joySlots.js +11 -50
- package/modern/locales/jaJP.js +3 -4
- package/modern/material/index.js +0 -2
- package/modern/models/api/index.js +0 -1
- package/modern/utils/cellBorderUtils.js +8 -0
- package/modern/utils/createSelector.js +1 -1
- package/modern/utils/domUtils.js +144 -0
- package/modern/utils/keyboardUtils.js +1 -1
- package/node/DataGrid/DataGrid.js +57 -17
- package/node/DataGrid/useDataGridComponent.js +3 -0
- package/node/DataGrid/useDataGridProps.js +6 -7
- package/node/components/GridColumnHeaders.js +6 -16
- package/node/components/GridHeaders.js +1 -4
- package/node/components/GridPagination.js +10 -4
- package/node/components/GridRow.js +3 -18
- package/node/components/GridScrollArea.js +158 -0
- package/node/components/cell/GridActionsCell.js +1 -1
- package/node/components/cell/GridActionsCellItem.js +4 -0
- package/node/components/cell/GridBooleanCell.js +3 -2
- package/node/components/cell/GridCell.js +12 -4
- package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/node/components/columnHeaders/GridColumnGroupHeader.js +18 -8
- package/node/components/columnHeaders/GridColumnHeaderItem.js +21 -6
- package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
- package/node/components/containers/GridRoot.js +2 -2
- package/node/components/containers/GridRootStyles.js +12 -20
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputDate.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/node/components/toolbar/GridToolbarDensitySelector.js +4 -4
- package/node/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/node/components/virtualization/GridVirtualScroller.js +6 -1
- package/node/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/clipboard/useGridClipboard.js +4 -2
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +190 -103
- package/node/hooks/features/columnResize/columnResizeSelector.js +10 -0
- package/node/hooks/features/columnResize/columnResizeState.js +5 -0
- package/node/hooks/features/columnResize/gridColumnResizeApi.js +16 -0
- package/node/hooks/features/columnResize/index.js +38 -0
- package/node/hooks/features/columnResize/useGridColumnResize.js +564 -0
- package/node/hooks/features/columns/gridColumnsUtils.js +4 -21
- package/node/hooks/features/density/densitySelector.js +9 -3
- package/node/hooks/features/density/useGridDensity.js +22 -30
- package/node/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/node/hooks/features/editing/useGridCellEditing.js +22 -3
- package/node/hooks/features/editing/useGridRowEditing.js +1 -1
- package/node/hooks/features/export/serializers/csvSerializer.js +23 -12
- package/node/hooks/features/export/useGridCsvExport.js +2 -1
- package/node/hooks/features/export/useGridPrintExport.js +8 -7
- package/node/hooks/features/filter/gridFilterUtils.js +1 -1
- package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +4 -1
- package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +21 -2
- package/node/hooks/features/index.js +11 -0
- package/node/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/node/hooks/features/pagination/useGridPagination.js +9 -153
- package/node/hooks/features/pagination/useGridPaginationModel.js +176 -0
- package/node/hooks/features/pagination/useGridRowCount.js +103 -0
- package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -1
- package/node/hooks/features/scroll/useGridScroll.js +1 -1
- package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +211 -57
- package/node/hooks/utils/useLazyRef.js +7 -13
- package/node/hooks/utils/useOnMount.js +8 -10
- package/node/hooks/utils/useTimeout.js +7 -37
- package/node/index.js +1 -1
- package/node/internals/index.js +27 -8
- package/node/internals/utils/getPinnedCellOffset.js +24 -0
- package/node/joy/joySlots.js +11 -50
- package/node/locales/jaJP.js +3 -4
- package/node/material/index.js +0 -2
- package/node/models/api/index.js +0 -11
- package/node/utils/cellBorderUtils.js +16 -0
- package/node/utils/createSelector.js +1 -1
- package/node/utils/domUtils.js +155 -0
- package/node/utils/keyboardUtils.js +1 -1
- package/package.json +4 -4
- package/utils/cellBorderUtils.d.ts +3 -0
- package/utils/cellBorderUtils.js +8 -0
- package/utils/createSelector.js +9 -9
- package/utils/domUtils.d.ts +14 -1
- package/utils/domUtils.js +144 -0
- package/utils/getGridLocalization.js +9 -12
- package/utils/keyboardUtils.js +1 -1
- package/components/columnHeaders/GridColumnHeadersInner.d.ts +0 -8
- package/components/columnHeaders/GridColumnHeadersInner.js +0 -58
- package/modern/components/columnHeaders/GridColumnHeadersInner.js +0 -58
- package/node/components/columnHeaders/GridColumnHeadersInner.js +0 -67
|
@@ -4,50 +4,42 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useGridDensity = exports.densityStateInitializer =
|
|
7
|
+
exports.useGridDensity = exports.densityStateInitializer = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
10
11
|
var _useGridLogger = require("../../utils/useGridLogger");
|
|
11
12
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
12
13
|
var _densitySelector = require("./densitySelector");
|
|
13
|
-
var _utils = require("../../../utils/utils");
|
|
14
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
15
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
-
const COMPACT_DENSITY_FACTOR = exports.COMPACT_DENSITY_FACTOR = 0.7;
|
|
17
|
-
const COMFORTABLE_DENSITY_FACTOR = exports.COMFORTABLE_DENSITY_FACTOR = 1.3;
|
|
18
|
-
const DENSITY_FACTORS = {
|
|
19
|
-
compact: COMPACT_DENSITY_FACTOR,
|
|
20
|
-
comfortable: COMFORTABLE_DENSITY_FACTOR,
|
|
21
|
-
standard: 1
|
|
22
|
-
};
|
|
23
16
|
const densityStateInitializer = (state, props) => (0, _extends2.default)({}, state, {
|
|
24
|
-
density:
|
|
25
|
-
value: props.density,
|
|
26
|
-
factor: DENSITY_FACTORS[props.density]
|
|
27
|
-
}
|
|
17
|
+
density: props.initialState?.density ?? props.density ?? 'standard'
|
|
28
18
|
});
|
|
29
19
|
exports.densityStateInitializer = densityStateInitializer;
|
|
30
20
|
const useGridDensity = (apiRef, props) => {
|
|
31
21
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useDensity');
|
|
32
|
-
|
|
22
|
+
apiRef.current.registerControlState({
|
|
23
|
+
stateId: 'density',
|
|
24
|
+
propModel: props.density,
|
|
25
|
+
propOnChange: props.onDensityChange,
|
|
26
|
+
stateSelector: _densitySelector.gridDensitySelector,
|
|
27
|
+
changeEvent: 'densityChange'
|
|
28
|
+
});
|
|
29
|
+
const setDensity = (0, _useEventCallback.default)(newDensity => {
|
|
30
|
+
const currentDensity = (0, _densitySelector.gridDensitySelector)(apiRef.current.state);
|
|
31
|
+
if (currentDensity === newDensity) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
33
34
|
logger.debug(`Set grid density to ${newDensity}`);
|
|
34
|
-
apiRef.current.setState(state => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
factor: DENSITY_FACTORS[newDensity]
|
|
39
|
-
};
|
|
40
|
-
if ((0, _utils.isDeepEqual)(currentDensityState, newDensityState)) {
|
|
41
|
-
return state;
|
|
42
|
-
}
|
|
43
|
-
return (0, _extends2.default)({}, state, {
|
|
44
|
-
density: newDensityState
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
apiRef.current.forceUpdate();
|
|
48
|
-
}, [logger, apiRef]);
|
|
35
|
+
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
36
|
+
density: newDensity
|
|
37
|
+
}));
|
|
38
|
+
});
|
|
49
39
|
React.useEffect(() => {
|
|
50
|
-
|
|
40
|
+
if (props.density) {
|
|
41
|
+
apiRef.current.setDensity(props.density);
|
|
42
|
+
}
|
|
51
43
|
}, [apiRef, props.density]);
|
|
52
44
|
const densityApi = {
|
|
53
45
|
setDensity
|
|
@@ -64,9 +64,7 @@ function useGridDimensions(apiRef, props) {
|
|
|
64
64
|
const rowHeight = Math.floor(props.rowHeight * densityFactor);
|
|
65
65
|
const headerHeight = Math.floor(props.columnHeaderHeight * densityFactor);
|
|
66
66
|
const columnsTotalWidth = roundToDecimalPlaces((0, _columns.gridColumnsTotalWidthSelector)(apiRef), 6);
|
|
67
|
-
|
|
68
|
-
const hasHeaderFilters = Boolean(props.headerFilters);
|
|
69
|
-
const headersTotalHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, props.columnHeaderHeight) + Number(hasHeaderFilters) * headerHeight;
|
|
67
|
+
const headersTotalHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, props.columnHeaderHeight);
|
|
70
68
|
const leftPinnedWidth = pinnedColumns.left.reduce((w, col) => w + col.computedWidth, 0);
|
|
71
69
|
const rightPinnedWidth = pinnedColumns.right.reduce((w, col) => w + col.computedWidth, 0);
|
|
72
70
|
const [savedSize, setSavedSize] = React.useState();
|
|
@@ -123,8 +121,9 @@ function useGridDimensions(apiRef, props) {
|
|
|
123
121
|
const scrollbarSize = measureScrollbarSize(rootElement, columnsTotalWidth, props.scrollbarSize);
|
|
124
122
|
const topContainerHeight = headersTotalHeight + pinnedRowsHeight.top;
|
|
125
123
|
const bottomContainerHeight = pinnedRowsHeight.bottom;
|
|
124
|
+
const nonPinnedColumnsTotalWidth = columnsTotalWidth - leftPinnedWidth - rightPinnedWidth;
|
|
126
125
|
const contentSize = {
|
|
127
|
-
width:
|
|
126
|
+
width: nonPinnedColumnsTotalWidth,
|
|
128
127
|
height: rowsMeta.currentPageTotalHeight
|
|
129
128
|
};
|
|
130
129
|
let viewportOuterSize;
|
|
@@ -173,7 +172,7 @@ function useGridDimensions(apiRef, props) {
|
|
|
173
172
|
}
|
|
174
173
|
const rowWidth = Math.max(viewportOuterSize.width, columnsTotalWidth + (hasScrollY ? scrollbarSize : 0));
|
|
175
174
|
const minimumSize = {
|
|
176
|
-
width:
|
|
175
|
+
width: columnsTotalWidth,
|
|
177
176
|
height: topContainerHeight + contentSize.height + bottomContainerHeight
|
|
178
177
|
};
|
|
179
178
|
const newDimensions = {
|
|
@@ -23,7 +23,7 @@ const _excluded = ["id", "field"],
|
|
|
23
23
|
_excluded2 = ["id", "field"];
|
|
24
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
25
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
26
|
-
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop,
|
|
26
|
+
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
27
27
|
const useGridCellEditing = (apiRef, props) => {
|
|
28
28
|
const [cellModesModel, setCellModesModel] = React.useState({});
|
|
29
29
|
const cellModesModelRef = React.useRef(cellModesModel);
|
|
@@ -243,8 +243,27 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
243
243
|
initialValue
|
|
244
244
|
} = params;
|
|
245
245
|
let newValue = apiRef.current.getCellValue(id, field);
|
|
246
|
-
if (deleteValue
|
|
247
|
-
|
|
246
|
+
if (deleteValue) {
|
|
247
|
+
const fieldType = apiRef.current.getColumn(field).type;
|
|
248
|
+
switch (fieldType) {
|
|
249
|
+
case 'boolean':
|
|
250
|
+
newValue = false;
|
|
251
|
+
break;
|
|
252
|
+
case 'date':
|
|
253
|
+
case 'dateTime':
|
|
254
|
+
case 'number':
|
|
255
|
+
newValue = undefined;
|
|
256
|
+
break;
|
|
257
|
+
case 'singleSelect':
|
|
258
|
+
newValue = null;
|
|
259
|
+
break;
|
|
260
|
+
case 'string':
|
|
261
|
+
default:
|
|
262
|
+
newValue = '';
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
} else if (initialValue) {
|
|
266
|
+
newValue = initialValue;
|
|
248
267
|
}
|
|
249
268
|
const newProps = {
|
|
250
269
|
value: newValue,
|
|
@@ -25,7 +25,7 @@ const _excluded = ["id"],
|
|
|
25
25
|
_excluded2 = ["id"];
|
|
26
26
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
27
27
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
28
|
-
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop,
|
|
28
|
+
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
29
29
|
const useGridRowEditing = (apiRef, props) => {
|
|
30
30
|
const [rowModesModel, setRowModesModel] = React.useState({});
|
|
31
31
|
const rowModesModelRef = React.useRef(rowModesModel);
|
|
@@ -7,11 +7,14 @@ exports.buildCSV = buildCSV;
|
|
|
7
7
|
exports.serializeCellValue = void 0;
|
|
8
8
|
var _colDef = require("../../../../colDef");
|
|
9
9
|
var _warning = require("../../../../utils/warning");
|
|
10
|
-
function sanitizeCellValue(value, delimiterCharacter) {
|
|
10
|
+
function sanitizeCellValue(value, delimiterCharacter, shouldAppendQuotes) {
|
|
11
11
|
if (typeof value === 'string') {
|
|
12
12
|
// Make sure value containing delimiter or line break won't be split into multiple rows
|
|
13
13
|
if ([delimiterCharacter, '\n', '\r', '"'].some(delimiter => value.includes(delimiter))) {
|
|
14
|
-
|
|
14
|
+
if (shouldAppendQuotes) {
|
|
15
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
16
|
+
}
|
|
17
|
+
return `${value.replace(/"/g, '""')}`;
|
|
15
18
|
}
|
|
16
19
|
return value;
|
|
17
20
|
}
|
|
@@ -20,7 +23,8 @@ function sanitizeCellValue(value, delimiterCharacter) {
|
|
|
20
23
|
const serializeCellValue = (cellParams, options) => {
|
|
21
24
|
const {
|
|
22
25
|
delimiterCharacter,
|
|
23
|
-
ignoreValueFormatter
|
|
26
|
+
ignoreValueFormatter,
|
|
27
|
+
shouldAppendQuotes
|
|
24
28
|
} = options;
|
|
25
29
|
let value;
|
|
26
30
|
if (ignoreValueFormatter) {
|
|
@@ -37,7 +41,7 @@ const serializeCellValue = (cellParams, options) => {
|
|
|
37
41
|
} else {
|
|
38
42
|
value = cellParams.formattedValue;
|
|
39
43
|
}
|
|
40
|
-
return sanitizeCellValue(value, delimiterCharacter);
|
|
44
|
+
return sanitizeCellValue(value, delimiterCharacter, shouldAppendQuotes);
|
|
41
45
|
};
|
|
42
46
|
exports.serializeCellValue = serializeCellValue;
|
|
43
47
|
const objectFormattedValueWarning = (0, _warning.buildWarning)(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
|
|
@@ -55,7 +59,7 @@ class CSVRow {
|
|
|
55
59
|
if (value === null || value === undefined) {
|
|
56
60
|
this.rowString += '';
|
|
57
61
|
} else if (typeof this.options.sanitizeCellValue === 'function') {
|
|
58
|
-
this.rowString += this.options.sanitizeCellValue(value, this.options.delimiterCharacter);
|
|
62
|
+
this.rowString += this.options.sanitizeCellValue(value, this.options.delimiterCharacter, this.options.shouldAppendQuotes);
|
|
59
63
|
} else {
|
|
60
64
|
this.rowString += value;
|
|
61
65
|
}
|
|
@@ -70,10 +74,12 @@ const serializeRow = ({
|
|
|
70
74
|
columns,
|
|
71
75
|
getCellParams,
|
|
72
76
|
delimiterCharacter,
|
|
73
|
-
ignoreValueFormatter
|
|
77
|
+
ignoreValueFormatter,
|
|
78
|
+
shouldAppendQuotes
|
|
74
79
|
}) => {
|
|
75
80
|
const row = new CSVRow({
|
|
76
|
-
delimiterCharacter
|
|
81
|
+
delimiterCharacter,
|
|
82
|
+
shouldAppendQuotes
|
|
77
83
|
});
|
|
78
84
|
columns.forEach(column => {
|
|
79
85
|
const cellParams = getCellParams(id, column.field);
|
|
@@ -84,7 +90,8 @@ const serializeRow = ({
|
|
|
84
90
|
}
|
|
85
91
|
row.addValue(serializeCellValue(cellParams, {
|
|
86
92
|
delimiterCharacter,
|
|
87
|
-
ignoreValueFormatter
|
|
93
|
+
ignoreValueFormatter,
|
|
94
|
+
shouldAppendQuotes
|
|
88
95
|
}));
|
|
89
96
|
});
|
|
90
97
|
return row.getRowString();
|
|
@@ -97,14 +104,16 @@ function buildCSV(options) {
|
|
|
97
104
|
includeHeaders,
|
|
98
105
|
includeColumnGroupsHeaders,
|
|
99
106
|
ignoreValueFormatter,
|
|
100
|
-
apiRef
|
|
107
|
+
apiRef,
|
|
108
|
+
shouldAppendQuotes
|
|
101
109
|
} = options;
|
|
102
110
|
const CSVBody = rowIds.reduce((acc, id) => `${acc}${serializeRow({
|
|
103
111
|
id,
|
|
104
112
|
columns,
|
|
105
113
|
getCellParams: apiRef.current.getCellParams,
|
|
106
114
|
delimiterCharacter,
|
|
107
|
-
ignoreValueFormatter
|
|
115
|
+
ignoreValueFormatter,
|
|
116
|
+
shouldAppendQuotes
|
|
108
117
|
})}\r\n`, '').trim();
|
|
109
118
|
if (!includeHeaders) {
|
|
110
119
|
return CSVBody;
|
|
@@ -123,7 +132,8 @@ function buildCSV(options) {
|
|
|
123
132
|
for (let i = 0; i < maxColumnGroupsDepth; i += 1) {
|
|
124
133
|
const headerGroupRow = new CSVRow({
|
|
125
134
|
delimiterCharacter,
|
|
126
|
-
sanitizeCellValue
|
|
135
|
+
sanitizeCellValue,
|
|
136
|
+
shouldAppendQuotes
|
|
127
137
|
});
|
|
128
138
|
headerRows.push(headerGroupRow);
|
|
129
139
|
filteredColumns.forEach(column => {
|
|
@@ -135,7 +145,8 @@ function buildCSV(options) {
|
|
|
135
145
|
}
|
|
136
146
|
const mainHeaderRow = new CSVRow({
|
|
137
147
|
delimiterCharacter,
|
|
138
|
-
sanitizeCellValue
|
|
148
|
+
sanitizeCellValue,
|
|
149
|
+
shouldAppendQuotes
|
|
139
150
|
});
|
|
140
151
|
filteredColumns.forEach(column => {
|
|
141
152
|
mainHeaderRow.addValue(column.headerName || column.field);
|
|
@@ -43,7 +43,8 @@ const useGridCsvExport = (apiRef, props) => {
|
|
|
43
43
|
includeHeaders: options.includeHeaders ?? true,
|
|
44
44
|
includeColumnGroupsHeaders: options.includeColumnGroupsHeaders ?? true,
|
|
45
45
|
ignoreValueFormatter,
|
|
46
|
-
apiRef
|
|
46
|
+
apiRef,
|
|
47
|
+
shouldAppendQuotes: options.shouldAppendQuotes ?? true
|
|
47
48
|
});
|
|
48
49
|
}, [logger, apiRef, ignoreValueFormatter]);
|
|
49
50
|
const exportDataAsCsv = React.useCallback(options => {
|
|
@@ -15,7 +15,7 @@ var _gridClasses = require("../../../constants/gridClasses");
|
|
|
15
15
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
16
16
|
var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
17
17
|
var _utils2 = require("./utils");
|
|
18
|
-
var
|
|
18
|
+
var _useGridPaginationModel = require("../pagination/useGridPaginationModel");
|
|
19
19
|
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
20
20
|
var _GridToolbarExport = require("../../../components/toolbar/GridToolbarExport");
|
|
21
21
|
var _gridColumnsUtils = require("../columns/gridColumnsUtils");
|
|
@@ -104,9 +104,6 @@ const useGridPrintExport = (apiRef, props) => {
|
|
|
104
104
|
|
|
105
105
|
// See https://support.google.com/chrome/thread/191619088?hl=en&msgid=193009642
|
|
106
106
|
gridClone.style.contain = 'size';
|
|
107
|
-
const columnHeaders = gridClone.querySelector(`.${_gridClasses.gridClasses.columnHeaders}`);
|
|
108
|
-
const columnHeadersInner = columnHeaders.querySelector(`.${_gridClasses.gridClasses.columnHeadersInner}`);
|
|
109
|
-
columnHeadersInner.style.width = '100%';
|
|
110
107
|
let gridToolbarElementHeight = gridRootElement.querySelector(`.${_gridClasses.gridClasses.toolbarContainer}`)?.offsetHeight || 0;
|
|
111
108
|
let gridFooterElementHeight = gridRootElement.querySelector(`.${_gridClasses.gridClasses.footerContainer}`)?.offsetHeight || 0;
|
|
112
109
|
if (normalizeOptions.hideToolbar) {
|
|
@@ -227,9 +224,13 @@ const useGridPrintExport = (apiRef, props) => {
|
|
|
227
224
|
page: 0,
|
|
228
225
|
pageSize: visibleRowCount
|
|
229
226
|
};
|
|
230
|
-
apiRef.current.
|
|
231
|
-
|
|
232
|
-
|
|
227
|
+
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
228
|
+
pagination: (0, _extends2.default)({}, state.pagination, {
|
|
229
|
+
paginationModel: (0, _useGridPaginationModel.getDerivedPaginationModel)(state.pagination,
|
|
230
|
+
// Using signature `DataGridPro` to allow more than 100 rows in the print export
|
|
231
|
+
'DataGridPro', paginationModel)
|
|
232
|
+
})
|
|
233
|
+
}));
|
|
233
234
|
apiRef.current.forceUpdate();
|
|
234
235
|
}
|
|
235
236
|
await updateGridColumnsForPrint(options?.fields, options?.allColumns, options?.includeCheckboxes);
|
|
@@ -167,7 +167,7 @@ const buildAggregatedFilterItemsApplier = (filterModel, apiRef, disableEval) =>
|
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
// We generate a new function with `new Function()` to avoid expensive patterns for JS engines
|
|
170
|
-
// such as a dynamic object assignment,
|
|
170
|
+
// such as a dynamic object assignment, for example `{ [dynamicKey]: value }`.
|
|
171
171
|
const filterItemCore = new Function('appliers', 'row', 'shouldApplyFilter', `"use strict";
|
|
172
172
|
${appliers.map((applier, i) => `const shouldApply${i} = !shouldApplyFilter || shouldApplyFilter(${JSON.stringify(applier.item.field)});`).join('\n')}
|
|
173
173
|
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridHeaderFilteringStateSelector = exports.gridHeaderFilteringMenuSelector = exports.gridHeaderFilteringEditFieldSelector = void 0;
|
|
6
|
+
exports.gridHeaderFilteringStateSelector = exports.gridHeaderFilteringMenuSelector = exports.gridHeaderFilteringEnabledSelector = exports.gridHeaderFilteringEditFieldSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
8
|
const gridHeaderFilteringStateSelector = state => state.headerFiltering;
|
|
9
9
|
exports.gridHeaderFilteringStateSelector = gridHeaderFilteringStateSelector;
|
|
10
|
+
const gridHeaderFilteringEnabledSelector = exports.gridHeaderFilteringEnabledSelector = (0, _createSelector.createSelector)(gridHeaderFilteringStateSelector,
|
|
11
|
+
// No initialization in MIT, so we need to default to false to be used by `getTotalHeaderHeight`
|
|
12
|
+
headerFilteringState => headerFilteringState?.enabled ?? false);
|
|
10
13
|
const gridHeaderFilteringEditFieldSelector = exports.gridHeaderFilteringEditFieldSelector = (0, _createSelector.createSelector)(gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.editing);
|
|
11
14
|
const gridHeaderFilteringMenuSelector = exports.gridHeaderFilteringMenuSelector = (0, _createSelector.createSelector)(gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.menuOpen);
|
|
@@ -12,8 +12,10 @@ var _utils = require("../../utils");
|
|
|
12
12
|
var _gridColumnsSelector = require("../columns/gridColumnsSelector");
|
|
13
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
-
const headerFilteringStateInitializer = state => (0, _extends2.default)({}, state, {
|
|
15
|
+
const headerFilteringStateInitializer = (state, props) => (0, _extends2.default)({}, state, {
|
|
16
|
+
// @ts-expect-error Access `Pro` prop in MIT
|
|
16
17
|
headerFiltering: {
|
|
18
|
+
enabled: props.headerFilters ?? false,
|
|
17
19
|
editing: null,
|
|
18
20
|
menuOpen: null
|
|
19
21
|
}
|
|
@@ -21,6 +23,8 @@ const headerFilteringStateInitializer = state => (0, _extends2.default)({}, stat
|
|
|
21
23
|
exports.headerFilteringStateInitializer = headerFilteringStateInitializer;
|
|
22
24
|
const useGridHeaderFiltering = (apiRef, props) => {
|
|
23
25
|
const logger = (0, _utils.useGridLogger)(apiRef, 'useGridHeaderFiltering');
|
|
26
|
+
// @ts-expect-error Access `Pro` prop in MIT
|
|
27
|
+
const isHeaderFilteringEnabled = props.headerFilters ?? false;
|
|
24
28
|
const setHeaderFilterState = React.useCallback(headerFilterState => {
|
|
25
29
|
apiRef.current.setState(state => {
|
|
26
30
|
// Safety check to avoid MIT users from using it
|
|
@@ -30,13 +34,14 @@ const useGridHeaderFiltering = (apiRef, props) => {
|
|
|
30
34
|
}
|
|
31
35
|
return (0, _extends2.default)({}, state, {
|
|
32
36
|
headerFiltering: {
|
|
37
|
+
enabled: isHeaderFilteringEnabled ?? false,
|
|
33
38
|
editing: headerFilterState.editing ?? null,
|
|
34
39
|
menuOpen: headerFilterState.menuOpen ?? null
|
|
35
40
|
}
|
|
36
41
|
});
|
|
37
42
|
});
|
|
38
43
|
apiRef.current.forceUpdate();
|
|
39
|
-
}, [apiRef, props.signature]);
|
|
44
|
+
}, [apiRef, props.signature, isHeaderFilteringEnabled]);
|
|
40
45
|
const startHeaderFilterEditMode = React.useCallback(field => {
|
|
41
46
|
logger.debug(`Starting edit mode on header filter for field: ${field}`);
|
|
42
47
|
apiRef.current.setHeaderFilterState({
|
|
@@ -97,5 +102,19 @@ const useGridHeaderFiltering = (apiRef, props) => {
|
|
|
97
102
|
};
|
|
98
103
|
(0, _useGridApiMethod.useGridApiMethod)(apiRef, headerFilterApi, 'public');
|
|
99
104
|
(0, _useGridApiMethod.useGridApiMethod)(apiRef, headerFilterPrivateApi, 'private');
|
|
105
|
+
|
|
106
|
+
/*
|
|
107
|
+
* EFFECTS
|
|
108
|
+
*/
|
|
109
|
+
const isFirstRender = React.useRef(true);
|
|
110
|
+
React.useEffect(() => {
|
|
111
|
+
if (isFirstRender.current) {
|
|
112
|
+
isFirstRender.current = false;
|
|
113
|
+
} else {
|
|
114
|
+
apiRef.current.setHeaderFilterState({
|
|
115
|
+
enabled: isHeaderFilteringEnabled
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}, [apiRef, isHeaderFilteringEnabled]);
|
|
100
119
|
};
|
|
101
120
|
exports.useGridHeaderFiltering = useGridHeaderFiltering;
|
|
@@ -36,6 +36,17 @@ Object.keys(_columnGrouping).forEach(function (key) {
|
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
|
+
var _columnResize = require("./columnResize");
|
|
40
|
+
Object.keys(_columnResize).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _columnResize[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _columnResize[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
39
50
|
var _density = require("./density");
|
|
40
51
|
Object.keys(_density).forEach(function (key) {
|
|
41
52
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridPaginationSelector = exports.gridPaginationRowRangeSelector = exports.gridPaginationModelSelector = exports.gridPaginatedVisibleSortedGridRowIdsSelector = exports.gridPaginatedVisibleSortedGridRowEntriesSelector = exports.gridPageSizeSelector = exports.gridPageSelector = exports.gridPageCountSelector = void 0;
|
|
6
|
+
exports.gridPaginationSelector = exports.gridPaginationRowRangeSelector = exports.gridPaginationRowCountSelector = exports.gridPaginationModelSelector = exports.gridPaginatedVisibleSortedGridRowIdsSelector = exports.gridPaginatedVisibleSortedGridRowEntriesSelector = exports.gridPageSizeSelector = exports.gridPageSelector = exports.gridPageCountSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
8
|
var _gridFilterSelector = require("../filter/gridFilterSelector");
|
|
9
9
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
@@ -21,6 +21,12 @@ const gridPaginationSelector = state => state.pagination;
|
|
|
21
21
|
exports.gridPaginationSelector = gridPaginationSelector;
|
|
22
22
|
const gridPaginationModelSelector = exports.gridPaginationModelSelector = (0, _createSelector.createSelector)(gridPaginationSelector, pagination => pagination.paginationModel);
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Get the row count
|
|
26
|
+
* @category Pagination
|
|
27
|
+
*/
|
|
28
|
+
const gridPaginationRowCountSelector = exports.gridPaginationRowCountSelector = (0, _createSelector.createSelector)(gridPaginationSelector, pagination => pagination.rowCount);
|
|
29
|
+
|
|
24
30
|
/**
|
|
25
31
|
* Get the index of the page to render if the pagination is enabled
|
|
26
32
|
* @category Pagination
|
|
@@ -37,7 +43,7 @@ const gridPageSizeSelector = exports.gridPageSizeSelector = (0, _createSelector.
|
|
|
37
43
|
* Get the amount of pages needed to display all the rows if the pagination is enabled
|
|
38
44
|
* @category Pagination
|
|
39
45
|
*/
|
|
40
|
-
const gridPageCountSelector = exports.gridPageCountSelector = (0, _createSelector.createSelector)(
|
|
46
|
+
const gridPageCountSelector = exports.gridPageCountSelector = (0, _createSelector.createSelector)(gridPageSizeSelector, gridPaginationRowCountSelector, (pageSize, rowCount) => (0, _gridPaginationUtils.getPageCount)(rowCount, pageSize));
|
|
41
47
|
|
|
42
48
|
/**
|
|
43
49
|
* Get the index of the first and the last row to include in the current page if the pagination is enabled.
|
|
@@ -4,174 +4,30 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useGridPagination = exports.paginationStateInitializer =
|
|
7
|
+
exports.useGridPagination = exports.paginationStateInitializer = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _filter = require("../filter");
|
|
11
|
-
var _density = require("../density");
|
|
12
|
-
var _utils = require("../../utils");
|
|
13
|
-
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
14
|
-
var _gridPaginationSelector = require("./gridPaginationSelector");
|
|
15
9
|
var _gridPaginationUtils = require("./gridPaginationUtils");
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
var _useGridPaginationModel = require("./useGridPaginationModel");
|
|
11
|
+
var _useGridRowCount = require("./useGridRowCount");
|
|
18
12
|
const paginationStateInitializer = (state, props) => {
|
|
19
13
|
const paginationModel = (0, _extends2.default)({}, (0, _gridPaginationUtils.getDefaultGridPaginationModel)(props.autoPageSize), props.paginationModel ?? props.initialState?.pagination?.paginationModel);
|
|
20
14
|
(0, _gridPaginationUtils.throwIfPageSizeExceedsTheLimit)(paginationModel.pageSize, props.signature);
|
|
15
|
+
const rowCount = props.rowCount ?? props.initialState?.pagination?.rowCount;
|
|
21
16
|
return (0, _extends2.default)({}, state, {
|
|
22
17
|
pagination: {
|
|
23
|
-
paginationModel
|
|
18
|
+
paginationModel,
|
|
19
|
+
rowCount
|
|
24
20
|
}
|
|
25
21
|
});
|
|
26
22
|
};
|
|
27
|
-
exports.paginationStateInitializer = paginationStateInitializer;
|
|
28
|
-
const mergeStateWithPaginationModel = (rowCount, signature, paginationModelProp) => paginationState => {
|
|
29
|
-
let paginationModel = paginationState.paginationModel;
|
|
30
|
-
const pageSize = paginationModelProp?.pageSize ?? paginationModel.pageSize;
|
|
31
|
-
const pageCount = (0, _gridPaginationUtils.getPageCount)(rowCount, pageSize);
|
|
32
|
-
if (paginationModelProp && (paginationModelProp?.page !== paginationModel.page || paginationModelProp?.pageSize !== paginationModel.pageSize)) {
|
|
33
|
-
paginationModel = paginationModelProp;
|
|
34
|
-
}
|
|
35
|
-
const validPage = (0, _gridPaginationUtils.getValidPage)(paginationModel.page, pageCount);
|
|
36
|
-
if (validPage !== paginationModel.page) {
|
|
37
|
-
paginationModel = (0, _extends2.default)({}, paginationModel, {
|
|
38
|
-
page: validPage
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
(0, _gridPaginationUtils.throwIfPageSizeExceedsTheLimit)(paginationModel.pageSize, signature);
|
|
42
|
-
return {
|
|
43
|
-
paginationModel
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
23
|
|
|
47
24
|
/**
|
|
48
25
|
* @requires useGridFilter (state)
|
|
49
26
|
* @requires useGridDimensions (event) - can be after
|
|
50
27
|
*/
|
|
51
|
-
exports.
|
|
28
|
+
exports.paginationStateInitializer = paginationStateInitializer;
|
|
52
29
|
const useGridPagination = (apiRef, props) => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const densityFactor = (0, _utils.useGridSelector)(apiRef, _density.gridDensityFactorSelector);
|
|
56
|
-
const rowHeight = Math.floor(props.rowHeight * densityFactor);
|
|
57
|
-
apiRef.current.registerControlState({
|
|
58
|
-
stateId: 'pagination',
|
|
59
|
-
propModel: props.paginationModel,
|
|
60
|
-
propOnChange: props.onPaginationModelChange,
|
|
61
|
-
stateSelector: _gridPaginationSelector.gridPaginationModelSelector,
|
|
62
|
-
changeEvent: 'paginationModelChange'
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* API METHODS
|
|
67
|
-
*/
|
|
68
|
-
const setPage = React.useCallback(page => {
|
|
69
|
-
const currentModel = (0, _gridPaginationSelector.gridPaginationModelSelector)(apiRef);
|
|
70
|
-
if (page === currentModel.page) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
logger.debug(`Setting page to ${page}`);
|
|
74
|
-
apiRef.current.setPaginationModel({
|
|
75
|
-
page,
|
|
76
|
-
pageSize: currentModel.pageSize
|
|
77
|
-
});
|
|
78
|
-
}, [apiRef, logger]);
|
|
79
|
-
const setPageSize = React.useCallback(pageSize => {
|
|
80
|
-
const currentModel = (0, _gridPaginationSelector.gridPaginationModelSelector)(apiRef);
|
|
81
|
-
if (pageSize === currentModel.pageSize) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
logger.debug(`Setting page size to ${pageSize}`);
|
|
85
|
-
apiRef.current.setPaginationModel({
|
|
86
|
-
pageSize,
|
|
87
|
-
page: currentModel.page
|
|
88
|
-
});
|
|
89
|
-
}, [apiRef, logger]);
|
|
90
|
-
const setPaginationModel = React.useCallback(paginationModel => {
|
|
91
|
-
const currentModel = (0, _gridPaginationSelector.gridPaginationModelSelector)(apiRef);
|
|
92
|
-
if (paginationModel === currentModel) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
logger.debug("Setting 'paginationModel' to", paginationModel);
|
|
96
|
-
apiRef.current.updateControlState('pagination', mergeStateWithPaginationModel(props.rowCount ?? visibleTopLevelRowCount, props.signature, paginationModel), 'setPaginationModel');
|
|
97
|
-
apiRef.current.forceUpdate();
|
|
98
|
-
}, [apiRef, logger, props.rowCount, props.signature, visibleTopLevelRowCount]);
|
|
99
|
-
const pageApi = {
|
|
100
|
-
setPage,
|
|
101
|
-
setPageSize,
|
|
102
|
-
setPaginationModel
|
|
103
|
-
};
|
|
104
|
-
(0, _utils.useGridApiMethod)(apiRef, pageApi, 'public');
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* PRE-PROCESSING
|
|
108
|
-
*/
|
|
109
|
-
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
110
|
-
const paginationModel = (0, _gridPaginationSelector.gridPaginationModelSelector)(apiRef);
|
|
111
|
-
const shouldExportPaginationModel =
|
|
112
|
-
// Always export if the `exportOnlyDirtyModels` property is not activated
|
|
113
|
-
!context.exportOnlyDirtyModels ||
|
|
114
|
-
// Always export if the `paginationModel` is controlled
|
|
115
|
-
props.paginationModel != null ||
|
|
116
|
-
// Always export if the `paginationModel` has been initialized
|
|
117
|
-
props.initialState?.pagination?.paginationModel != null ||
|
|
118
|
-
// Export if `page` or `pageSize` is not equal to the default value
|
|
119
|
-
paginationModel.page !== 0 && paginationModel.pageSize !== (0, _gridPaginationUtils.defaultPageSize)(props.autoPageSize);
|
|
120
|
-
if (!shouldExportPaginationModel) {
|
|
121
|
-
return prevState;
|
|
122
|
-
}
|
|
123
|
-
return (0, _extends2.default)({}, prevState, {
|
|
124
|
-
pagination: (0, _extends2.default)({}, prevState.pagination, {
|
|
125
|
-
paginationModel
|
|
126
|
-
})
|
|
127
|
-
});
|
|
128
|
-
}, [apiRef, props.paginationModel, props.initialState?.pagination?.paginationModel, props.autoPageSize]);
|
|
129
|
-
const stateRestorePreProcessing = React.useCallback((params, context) => {
|
|
130
|
-
const paginationModel = context.stateToRestore.pagination?.paginationModel ? (0, _extends2.default)({}, (0, _gridPaginationUtils.getDefaultGridPaginationModel)(props.autoPageSize), context.stateToRestore.pagination?.paginationModel) : (0, _gridPaginationSelector.gridPaginationModelSelector)(apiRef);
|
|
131
|
-
apiRef.current.updateControlState('pagination', mergeStateWithPaginationModel(props.rowCount ?? visibleTopLevelRowCount, props.signature, paginationModel), 'stateRestorePreProcessing');
|
|
132
|
-
return params;
|
|
133
|
-
}, [apiRef, props.autoPageSize, props.rowCount, props.signature, visibleTopLevelRowCount]);
|
|
134
|
-
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
|
|
135
|
-
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* EVENTS
|
|
139
|
-
*/
|
|
140
|
-
const handlePaginationModelChange = () => {
|
|
141
|
-
const paginationModel = (0, _gridPaginationSelector.gridPaginationModelSelector)(apiRef);
|
|
142
|
-
if (apiRef.current.virtualScrollerRef?.current) {
|
|
143
|
-
apiRef.current.scrollToIndexes({
|
|
144
|
-
rowIndex: paginationModel.page * paginationModel.pageSize
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
apiRef.current.forceUpdate();
|
|
148
|
-
};
|
|
149
|
-
const handleUpdateAutoPageSize = React.useCallback(() => {
|
|
150
|
-
if (!props.autoPageSize) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
const dimensions = apiRef.current.getRootDimensions();
|
|
154
|
-
const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);
|
|
155
|
-
apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);
|
|
156
|
-
}, [apiRef, props.autoPageSize, rowHeight]);
|
|
157
|
-
(0, _utils.useGridApiEventHandler)(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);
|
|
158
|
-
(0, _utils.useGridApiEventHandler)(apiRef, 'paginationModelChange', handlePaginationModelChange);
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* EFFECTS
|
|
162
|
-
*/
|
|
163
|
-
React.useEffect(() => {
|
|
164
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
165
|
-
if (props.paginationMode === 'server' && props.rowCount == null) {
|
|
166
|
-
(0, _gridPaginationUtils.noRowCountInServerMode)();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}, [props.rowCount, props.paginationMode]);
|
|
170
|
-
React.useEffect(() => {
|
|
171
|
-
apiRef.current.updateControlState('pagination', mergeStateWithPaginationModel(props.rowCount ?? visibleTopLevelRowCount, props.signature, props.paginationModel));
|
|
172
|
-
}, [apiRef, props.paginationModel, props.rowCount, props.paginationMode, visibleTopLevelRowCount, props.signature]);
|
|
173
|
-
React.useEffect(() => {
|
|
174
|
-
handleUpdateAutoPageSize();
|
|
175
|
-
}, [handleUpdateAutoPageSize]);
|
|
30
|
+
(0, _useGridPaginationModel.useGridPaginationModel)(apiRef, props);
|
|
31
|
+
(0, _useGridRowCount.useGridRowCount)(apiRef, props);
|
|
176
32
|
};
|
|
177
33
|
exports.useGridPagination = useGridPagination;
|